ryco-cli 0.1.30 → 0.1.31
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/dist/{AcpAdapter-DjP0IHpH.cjs → AcpAdapter-ByUp9-wk.cjs} +71 -51
- package/dist/{AcpAdapter-CKWzfB3Q.mjs → AcpAdapter-CY_ANTKu.mjs} +73 -53
- package/dist/{AcpNativeLogging-Do0LktDb.mjs → AcpNativeLogging-C7PC6imv.mjs} +30 -4
- package/dist/{AcpNativeLogging-5gTPK9Fq.cjs → AcpNativeLogging-OQeAya9d.cjs} +33 -1
- package/dist/{AcpRegistryDriver-BblCFfev.cjs → AcpRegistryDriver-CD9GN7rI.cjs} +3 -3
- package/dist/{AcpRegistryDriver-BzohT-PC.mjs → AcpRegistryDriver-DMZ5VBWJ.mjs} +4 -4
- package/dist/AzureDevOpsSourceControlProvider-5giVYoNi.mjs +2053 -0
- package/dist/AzureDevOpsSourceControlProvider-BKMXEUaN.cjs +2055 -0
- package/dist/{BitbucketSourceControlProvider-D5UVAc9z.mjs → BitbucketSourceControlProvider-BVUBsEUF.mjs} +63 -23
- package/dist/{BitbucketSourceControlProvider-Bvl_q1o2.cjs → BitbucketSourceControlProvider-BWnnrbch.cjs} +62 -22
- package/dist/{BunPTY-Dcl1Lp62.mjs → BunPTY-CMbDQ1Xb.mjs} +1 -1
- package/dist/{ClaudeDriver-DZkz0QPr.cjs → ClaudeDriver-DCrqouOR.cjs} +1373 -191
- package/dist/{ClaudeDriver-BuQ_azDw.mjs → ClaudeDriver-DVOss8cC.mjs} +1375 -193
- package/dist/{CodexDriver-6Ph2cjAW.cjs → CodexDriver-CBQPHJqU.cjs} +258 -28
- package/dist/{CodexDriver-Bi49RIL4.mjs → CodexDriver-DJoTky7Z.mjs} +261 -31
- package/dist/{CodexTextGeneration-C5TIspJA.mjs → CodexTextGeneration-BSgNgfZv.mjs} +6 -6
- package/dist/{CodexTextGeneration-sXPR9eld.cjs → CodexTextGeneration-C9MDQmZm.cjs} +7 -7
- package/dist/{CopilotDriver-Bcdpz6U_.mjs → CopilotDriver-CUkdPXcH.mjs} +78 -20
- package/dist/{CopilotDriver-D6P0xgRX.cjs → CopilotDriver-DbaMDH16.cjs} +76 -18
- package/dist/{CursorDriver-CRnDGwEv.mjs → CursorDriver-B-ZilXJB.mjs} +114 -97
- package/dist/{CursorDriver-DMJ7sGSx.cjs → CursorDriver-DKQqPbKH.cjs} +114 -97
- package/dist/{ForgejoSourceControlProvider-D4jGdaJX.cjs → ForgejoSourceControlProvider-CgpjFECj.cjs} +94 -60
- package/dist/{ForgejoSourceControlProvider-Dl_Fk3RY.mjs → ForgejoSourceControlProvider-DemMYUye.mjs} +95 -61
- package/dist/{GitHubSourceControlProvider-QMe-zymI.cjs → GitHubSourceControlProvider-C4un6hOK.cjs} +218 -119
- package/dist/{GitHubSourceControlProvider-DnwKf0ap.mjs → GitHubSourceControlProvider-CRSDYcjc.mjs} +206 -108
- package/dist/GitLabSourceControlProvider-D8W1ZLPh.cjs +2260 -0
- package/dist/GitLabSourceControlProvider-DpWkJ0M3.mjs +2258 -0
- package/dist/{GrokDriver-jy8JIvYY.cjs → GrokDriver-BQ6G_7ZZ.cjs} +6 -7
- package/dist/{GrokDriver-Bvq1jP3S.mjs → GrokDriver-Buvas9-q.mjs} +5 -6
- package/dist/{Metrics-CnmjpbWk.mjs → Metrics-C3vLS9rz.mjs} +123 -13
- package/dist/{Metrics-C0LSU8s7.cjs → Metrics-DjRPLE98.cjs} +170 -12
- package/dist/{NodePTY-D7tFWuQe.mjs → NodePTY-DgnuBruq.mjs} +1 -1
- package/dist/{OpenCodeDriver-DhyVaBMT.mjs → OpenCodeDriver-BWEZD841.mjs} +183 -49
- package/dist/{OpenCodeDriver-Bu5D19tl.cjs → OpenCodeDriver-qUiX0RLH.cjs} +183 -49
- package/dist/{SideQuestionIsolation-B-aE6aBz.mjs → SideQuestionIsolation-B1T-DsR0.mjs} +1 -1
- package/dist/{SideQuestionIsolation-CtJ4wX83.cjs → SideQuestionIsolation-BPC-Bxsz.cjs} +1 -1
- package/dist/bin.cjs +37021 -10253
- package/dist/bin.mjs +36892 -10178
- package/dist/client/assets/AccountSettings-B88Q_w9Y.js +1 -0
- package/dist/client/assets/AiFocusSettings-Bb0TrCPn.js +1 -0
- package/dist/client/assets/{AnimatedHeight-UXn4-nUd.js → AnimatedHeight-epXOsgdm.js} +1 -1
- package/dist/client/assets/AppearanceSettings-XS9WRVPU.js +1 -0
- package/dist/client/assets/AutomationsDialog-bZckh4Y3.js +1 -0
- package/dist/client/assets/AutomationsSummary-wPFZCF49.js +1 -0
- package/dist/client/assets/BranchToolbar.logic-DjzLKbbB.js +3 -0
- package/dist/client/assets/BrowserPanel-CdBLnnfz.js +1 -0
- package/dist/client/assets/ChatRightPanel-BCINd0vP.js +34 -0
- package/dist/client/assets/ChatThreadRouteView-BFZ0Si-l.js +1 -0
- package/dist/client/assets/ColorSwatchPicker-CGyo99o0.js +1 -0
- package/dist/client/assets/CommandPalette.logic-BIOMtnEQ.js +1 -0
- package/dist/client/assets/CommandPaletteDialog-Db4LH--z.js +2 -0
- package/dist/client/assets/CompositeRoot-DtnwMJKj.js +1 -0
- package/dist/client/assets/ComputerUseSettings-CkqCqDsU.js +1 -0
- package/dist/client/assets/ConnectionsSettings-B9mxExdG.js +7 -0
- package/dist/client/assets/CreatePullRequestDialog-CJ7pNCue.js +1 -0
- package/dist/client/assets/CreatePullRequestDialogHost-n4ZjdSr4.js +1 -0
- package/dist/client/assets/DiagnosticsSettings-f9rFG9re.js +2 -0
- package/dist/client/assets/DiagnosticsSettings.logic-Byf-Bu4S.js +1 -0
- package/dist/client/assets/DialogHandle-C0c_rK3I.js +1 -0
- package/dist/client/assets/{DialogPopup-NfwDyR5c.js → DialogPopup-BKW1PEEa.js} +1 -1
- package/dist/client/assets/DialogRoot-BIubqrv0.js +1 -0
- package/dist/client/assets/DialogTitle-BAX_FLoG.js +1 -0
- package/dist/client/assets/{DialogViewport-B6w_ROOE.js → DialogViewport-C2iOUx0O.js} +1 -1
- package/dist/client/assets/DiffPanel-BkqDt_SS.js +25 -0
- package/dist/client/assets/DisclosureRegion-B8556yU0.js +1 -0
- package/dist/client/assets/DraftChatThreadRouteView-BKgRKJ2w.js +1 -0
- package/dist/client/assets/{ExternalIdentityWeb.logic-BlKX8J9h.js → ExternalIdentityWeb.logic-Cu6suNrN.js} +1 -1
- package/dist/client/assets/GlassSurface-DLYYzRdP.js +1 -0
- package/dist/client/assets/HostedConnectionControls-CoVqtnrK.js +1 -0
- package/dist/client/assets/HostedHubRoot-CM2CwPUr.js +2 -0
- package/dist/client/assets/{HostedNativeAuthorizationRoute-j7oSlakZ.js → HostedNativeAuthorizationRoute-Bizmqrh_.js} +2 -2
- package/dist/client/assets/HostedNodeRenameDialog-SXWMsTO0.js +1 -0
- package/dist/client/assets/HostedRelayTrustNotice-BfTyrBi5.js +1 -0
- package/dist/client/assets/InboxStatusGlyph-BPTqzp7l.js +1 -0
- package/dist/client/assets/IntegrationsSettingsPanel-DAPvkV4i.js +1 -0
- package/dist/client/assets/KeybindingsSettings-B8g-YI2O.js +1 -0
- package/dist/client/assets/LazyBrowserPanel-Ds9cdOC_.js +2 -0
- package/dist/client/assets/McpServersSettings-Dw6G3ff3.js +6 -0
- package/dist/client/assets/MobileSheet-DfgXNWbd.js +1 -0
- package/dist/client/assets/ModelTuningDial-DQBAbuNL.js +1 -0
- package/dist/client/assets/NewWorktreeDialog-CDZAJmK6.js +4 -0
- package/dist/client/assets/NodeSecuritySettings-3MELA9ru.js +1 -0
- package/dist/client/assets/NullStore-gT_6_xZE.js +1 -0
- package/dist/client/assets/OnboardingDialog-CAAtNnJf.js +1 -0
- package/dist/client/assets/OpinionatedPluginsSettings-AiDB0Vl4.js +1 -0
- package/dist/client/assets/{PdfAttachmentPreview-C8-hT8KQ.js → PdfAttachmentPreview-BFNW2wjN.js} +2 -2
- package/dist/client/assets/{PhoneGetAppInterstitial-Zh0zpBgT.js → PhoneGetAppInterstitial-D8fwZ8E9.js} +1 -1
- package/dist/client/assets/PhoneHome-YHgHljA0.js +1 -0
- package/dist/client/assets/PhoneSettingsSurface-BVxJppvK.js +2 -0
- package/dist/client/assets/PreviewPanel-BYcEnkv9.js +643 -0
- package/dist/client/assets/ProjectScriptDialog-K34K2Kzm.js +1 -0
- package/dist/client/assets/ProjectsPage-DXnMYLjb.js +1 -0
- package/dist/client/assets/PromoteChatDialog-CAY7_wJ-.js +1 -0
- package/dist/client/assets/ProviderLimitWindow-CK04BSkM.js +1 -0
- package/dist/client/assets/ProviderUpdateLaunchNotification.logic-BMBrDDOC.js +1 -0
- package/dist/client/assets/ProvidersSettingsPanel-C85PX9Es.js +1 -0
- package/dist/client/assets/PullRequestsPage-C0rgfGwB.js +1 -0
- package/dist/client/assets/{QuitShortcutFeedback-Qs9XsuZ4.js → QuitShortcutFeedback-DSkKqETs.js} +1 -1
- package/dist/client/assets/RedactedSensitiveText-DQ0YveQd.js +1 -0
- package/dist/client/assets/RollingText-BzvpP5fa.js +1 -0
- package/dist/client/assets/RootAppShell-BYQ-eGNT.js +6 -0
- package/dist/client/assets/{Separator-B6Esv57Y.js → Separator-DpiW19Vw.js} +1 -1
- package/dist/client/assets/SettingsPage-BCFN7Ju2.js +2 -0
- package/dist/client/assets/SettingsPanels-CP6z2b1x.js +3 -0
- package/dist/client/assets/SettingsPanels.editor-D8U-TWWG.js +1 -0
- package/dist/client/assets/SettingsSelect-DEhNaz3E.js +1 -0
- package/dist/client/assets/Sidebar.logic-D_ODfSpl.js +1 -0
- package/dist/client/assets/SimulatorPanel-DCT6fZ0X.js +1 -0
- package/dist/client/assets/SourceControlSettings-DxUtvPMK.js +1 -0
- package/dist/client/assets/StatisticsPage-C9SrwtM4.js +1 -0
- package/dist/client/assets/StatisticsPanel-BMYLETs0.js +1 -0
- package/dist/client/assets/ThreadLinkList-BN5z5EpS.js +169 -0
- package/dist/client/assets/ThreadTerminalDrawer-CgIFOlR-.js +18 -0
- package/dist/client/assets/ThreadWorkspacePanel-DvXoqQPF.js +3 -0
- package/dist/client/assets/ToolbarRootContext-8FsV9Cpj.js +1 -0
- package/dist/client/assets/TraitsPicker-DcrpJahy.js +1 -0
- package/dist/client/assets/Virtualizer-CwXeUPla.js +1345 -0
- package/dist/client/assets/WorkspacePullRequestPanel-3mlcJn9G.js +1 -0
- package/dist/client/assets/WorkspaceReview-UGbCgXeK.js +2 -0
- package/dist/client/assets/{abnfDiagram-N423BO3Z-ByEe3mC0.js → abnfDiagram-N423BO3Z-DVEM6Scc.js} +1 -1
- package/dist/client/assets/{activity-CwTUF6lv.js → activity-DVCuAejY.js} +1 -1
- package/dist/client/assets/{alert-DQEkrtUJ.js → alert-FV7ZIit_.js} +1 -1
- package/dist/client/assets/alert-dialog-CgXR9tED.js +1 -0
- package/dist/client/assets/app-window-3xtwqZgI.js +1 -0
- package/dist/client/assets/appChrome-COCz-T7w.js +1 -0
- package/dist/client/assets/{appearancePreferences-nFx4MHoI.js → appearancePreferences-NnsvXwBe.js} +1 -1
- package/dist/client/assets/architecture-7GRP2DOG-DXXb_0_g.js +1 -0
- package/dist/client/assets/{architectureDiagram-T3A2C74G-Bd-yxaTr.js → architectureDiagram-T3A2C74G-B6pcKiCj.js} +1 -1
- package/dist/client/assets/{arrow-left-DUOpzEbP.js → arrow-left-Blu3LSE2.js} +1 -1
- package/dist/client/assets/{arrow-right-HOYJnPKw.js → arrow-right-CO3CH0ne.js} +1 -1
- package/dist/client/assets/arrow-up-B69gV2Bq.js +1 -0
- package/dist/client/assets/{arrow-up-right-DHnMKuVA.js → arrow-up-right-BbPGFOLA.js} +1 -1
- package/dist/client/assets/authorization-Ob6YwWiI.js +1 -0
- package/dist/client/assets/autocomplete-RVpjsrDv.js +1 -0
- package/dist/client/assets/ban-BIm2PVkE.js +1 -0
- package/dist/client/assets/{blockDiagram-VBNYF7ZC-CPDBonMC.js → blockDiagram-VBNYF7ZC-WNerGp9V.js} +1 -1
- package/dist/client/assets/{bot-DxjPA7Bw.js → bot-C9nWtaWq.js} +1 -1
- package/dist/client/assets/browserState-jt47YsqD.js +1 -0
- package/dist/client/assets/{c4Diagram-5PPSVZJV-BM6pAiqT.js → c4Diagram-5PPSVZJV-wp1ioOoM.js} +1 -1
- package/dist/client/assets/camera-C13VoW3c.js +1 -0
- package/dist/client/assets/capabilities-CfOhq009.js +1 -0
- package/dist/client/assets/channel-56r2qL2v.js +1 -0
- package/dist/client/assets/{chart-column-Cg7d41tb.js → chart-column-DRv0YtL_.js} +1 -1
- package/dist/client/assets/checkbox-CIIIY9FA.js +1 -0
- package/dist/client/assets/checks-Dw022Bvy.js +1 -0
- package/dist/client/assets/{chunk-2GRJ4B5K-DVKozJ41.js → chunk-2GRJ4B5K-DRl3ILpc.js} +1 -1
- package/dist/client/assets/{chunk-4I5QYGJK-BRoMwPkW.js → chunk-4I5QYGJK-CYTRl4bo.js} +1 -1
- package/dist/client/assets/{chunk-5RXB4S5H-DFMKyoqP.js → chunk-5RXB4S5H-VCNwRsOa.js} +1 -1
- package/dist/client/assets/{chunk-6Q2QTUOP-Ba6UENe9.js → chunk-6Q2QTUOP-DnSeKGPG.js} +1 -1
- package/dist/client/assets/{chunk-7Z6QIM7H-B87gYLWH.js → chunk-7Z6QIM7H-Cjilh9TF.js} +1 -1
- package/dist/client/assets/{chunk-GF5L2VYU-DZ840GRQ.js → chunk-GF5L2VYU-CGR7AW0t.js} +1 -1
- package/dist/client/assets/{chunk-I66GZJ75-BO6p4Aqg.js → chunk-I66GZJ75-CXSn8dDu.js} +1 -1
- package/dist/client/assets/{chunk-JQJVKLGR-5dTfVinz.js → chunk-JQJVKLGR-Dro-75lU.js} +1 -1
- package/dist/client/assets/{chunk-KBJHAD2P-BeWfBZdP.js → chunk-KBJHAD2P-BDqN2kVf.js} +1 -1
- package/dist/client/assets/{chunk-NSK5VX7P-DuRkdn5k.js → chunk-NSK5VX7P-DGo5UczH.js} +1 -1
- package/dist/client/assets/{chunk-QR6OTTB3-Duz4Y_uE.js → chunk-QR6OTTB3-RWuyWnBI.js} +1 -1
- package/dist/client/assets/{chunk-UBXNYLIW-D-z8URgN.js → chunk-UBXNYLIW-BPRzeB0w.js} +1 -1
- package/dist/client/assets/{chunk-W5SLKNZC-AGjFjjoJ.js → chunk-W5SLKNZC-DYWocTFi.js} +1 -1
- package/dist/client/assets/{chunk-WRU74C26-BgY3UiXB.js → chunk-WRU74C26-ChbB1jY3.js} +1 -1
- package/dist/client/assets/circle-stop-D8B4hRpY.js +1 -0
- package/dist/client/assets/circle-x-CNLfrTqR.js +1 -0
- package/dist/client/assets/classDiagram-JCYQIIEL-DGvmFev3.js +1 -0
- package/dist/client/assets/classDiagram-v2-OCEON4UE-DGvmFev3.js +1 -0
- package/dist/client/assets/{clipboard-copy-BWf3JuTE.js → clipboard-copy-DGi8FKNO.js} +1 -1
- package/dist/client/assets/clock-3-DmJ4_XPI.js +1 -0
- package/dist/client/assets/clock-DZIuPtNG.js +1 -0
- package/dist/client/assets/color-picker-BdBXje-a.js +1 -0
- package/dist/client/assets/columns-2-CWlMOClK.js +1 -0
- package/dist/client/assets/combobox-Dtjtf7AB.js +1 -0
- package/dist/client/assets/{cynefin-OW5HDTMX-BuOAGqlK.js → cynefin-OW5HDTMX-TuShvMuM.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-MW4NZA55-DqV0Aokp.js → cynefinDiagram-MW4NZA55-B0Edt2Em.js} +1 -1
- package/dist/client/assets/{dagre-VZM6K2ZE-D_GFquDW.js → dagre-VZM6K2ZE-D-eiuqHx.js} +1 -1
- package/dist/client/assets/{data-list-BJCq3CVP.js → data-list-BAx6jBY1.js} +1 -1
- package/dist/client/assets/desktopUpdateAtoms-BjrLa3tl.js +1 -0
- package/dist/client/assets/desktopWorkspace-C2wXVBhc.js +1 -0
- package/dist/client/assets/{deviceName-C2N8ZRX3.js → deviceName-B4youG0v.js} +1 -1
- package/dist/client/assets/{diagram-7IWD3JNH-B1wlsNg2.js → diagram-7IWD3JNH-DgM6lMlR.js} +1 -1
- package/dist/client/assets/{diagram-B4RE2ZJO-D-CYoym7.js → diagram-B4RE2ZJO-CyHNDjzV.js} +1 -1
- package/dist/client/assets/{diagram-LBJQPF4R-DqJ9NCqt.js → diagram-LBJQPF4R-DDzuLIN5.js} +1 -1
- package/dist/client/assets/{diagram-Q27KOJAE-3yp1D2u4.js → diagram-Q27KOJAE-BaBvK9QB.js} +1 -1
- package/dist/client/assets/{diagram-UB23O5K3-Byp25nGC.js → diagram-UB23O5K3-CzZ2ewuZ.js} +1 -1
- package/dist/client/assets/dialogWords-Cg0YkJVg.js +1 -0
- package/dist/client/assets/diffRouteSearch-D2MKN_ah.js +1 -0
- package/dist/client/assets/disclosureMotion-cbMJn5-z.js +1 -0
- package/dist/client/assets/{download-DsYNYJeu.js → download-TvtXS4hE.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-BXEA7PRR-B_IM1l6o.js → ebnfDiagram-BXEA7PRR-CL1vdOKi.js} +1 -1
- package/dist/client/assets/editorPreferences-DqKyA-2Z.js +1 -0
- package/dist/client/assets/ellipsis-CDK1dNFZ.js +1 -0
- package/dist/client/assets/ellipsis-vertical-CwzEUTwV.js +1 -0
- package/dist/client/assets/{empty-BbJHvskr.js → empty-BovKoxbn.js} +1 -1
- package/dist/client/assets/{erDiagram-JOGREHBK--OtcrCRJ.js → erDiagram-JOGREHBK-DmQR2if6.js} +1 -1
- package/dist/client/assets/eventmodeling-NTZA5JFV-D272GIcY.js +1 -0
- package/dist/client/assets/external-link-CJeVJZ7s.js +1 -0
- package/dist/client/assets/eye-BUmrXqzg.js +1 -0
- package/dist/client/assets/file-diff-BWc3mYsz.js +1 -0
- package/dist/client/assets/flowDiagram-UKHOOZJN-DLyS38Mm.js +1 -0
- package/dist/client/assets/folder-git-2-CPxg5wKP.js +1 -0
- package/dist/client/assets/folder-open-DcMymvp1.js +1 -0
- package/dist/client/assets/formatCount-B4KLI651.js +1 -0
- package/dist/client/assets/{ganttDiagram-PKOTCBZU-w0seBi3Q.js → ganttDiagram-PKOTCBZU-1q2nUL92.js} +1 -1
- package/dist/client/assets/git-pull-request-BFPwpm3c.js +1 -0
- package/dist/client/assets/{gitGraph-4MIJSDKK-BOJ0lcSW.js → gitGraph-4MIJSDKK-COtwmv2S.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-DS77QQ5N-BMfOCCYn.js → gitGraphDiagram-DS77QQ5N-ChsvaxX4.js} +1 -1
- package/dist/client/assets/{group-tVMKGp7Q.js → group-DWWn0dTx.js} +1 -1
- package/dist/client/assets/hammer-BXo-EU88.js +1 -0
- package/dist/client/assets/hostedConnectionCoordinator-BkAE-RhA.js +1 -0
- package/dist/client/assets/{index-BqZvnGNr.js → index-DARIYokI.js} +2 -2
- package/dist/client/assets/{info-A6RAGUB7-acjBTQ5o.js → info-A6RAGUB7-CI2qZ9wW.js} +1 -1
- package/dist/client/assets/{infoDiagram-6WML65LV-DB01Nc2m.js → infoDiagram-6WML65LV-BPmgcTPH.js} +1 -1
- package/dist/client/assets/{input-BDWSVClC.js → input-CCie4mm1.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-WSZJBQD7-KhZTvm-J.js → ishikawaDiagram-WSZJBQD7-LyS9p3Yg.js} +1 -1
- package/dist/client/assets/{journeyDiagram-NVQOT4AX-C3JCYk-2.js → journeyDiagram-NVQOT4AX-BYaAmN65.js} +1 -1
- package/dist/client/assets/{kanban-definition-27J2QSJJ-Dbo0C1s6.js → kanban-definition-27J2QSJJ-D-pwzqFt.js} +1 -1
- package/dist/client/assets/{key-round-CETZqe3h.js → key-round-BlrUTfxB.js} +1 -1
- package/dist/client/assets/keyboard-DlBdq6sz.js +1 -0
- package/dist/client/assets/label-ChtVI9lp.js +1 -0
- package/dist/client/assets/layers-BB-ruGvd.js +1 -0
- package/dist/client/assets/lifecycleSuggestionPolicy-0ERe_O53.js +1 -0
- package/dist/client/assets/list-checks-BkM_ZRsj.js +1 -0
- package/dist/client/assets/loader-3vQnfqIT.js +1 -0
- package/dist/client/assets/{log-out-D5-aSBAz.js → log-out-CKq9YiLY.js} +1 -1
- package/dist/client/assets/{logging-B_qXVrk6.js → logging-CCg76rgn.js} +1 -1
- package/dist/client/assets/main-Ch0bwS-M.js +9 -0
- package/dist/client/assets/main-Di0isH9D.css +2 -0
- package/dist/client/assets/{mermaid-parser.core-B6Q-3x_q.js → mermaid-parser.core-RK9ah5RM.js} +2 -2
- package/dist/client/assets/{mermaidEngine-DksLcesB.js → mermaidEngine-Dr8UsPhH.js} +3 -3
- package/dist/client/assets/message-circle-dashed-BrjwqS7-.js +1 -0
- package/dist/client/assets/messageQueueDrain-B7R7Qmq6.js +1 -0
- package/dist/client/assets/messages-square-cDTkDJv_.js +1 -0
- package/dist/client/assets/{mindmap-definition-FAOFIHXS-LaMzRxqw.js → mindmap-definition-FAOFIHXS-DVudWasx.js} +1 -1
- package/dist/client/assets/{packet-AYTQ26CC-BHhg59Si.js → packet-AYTQ26CC-DnkTsVhD.js} +1 -1
- package/dist/client/assets/panels-top-left-B7jZiLth.js +1 -0
- package/dist/client/assets/path-text-3Rfu6lt8.js +1 -0
- package/dist/client/assets/{pegDiagram-VL7TDLO6-s7l7UD9d.js → pegDiagram-VL7TDLO6-Do5PIp8B.js} +1 -1
- package/dist/client/assets/pencil-Bzg-nc6d.js +1 -0
- package/dist/client/assets/{pie-WAS4IAKB-DygX31Z9.js → pie-WAS4IAKB-B_nNQOzn.js} +1 -1
- package/dist/client/assets/{pieDiagram-7S7Q4E2Y-bb6I9TtZ.js → pieDiagram-7S7Q4E2Y-D_IG4xwA.js} +1 -1
- package/dist/client/assets/{play-DUvOxTpL.js → play-DpXXQ1qB.js} +1 -1
- package/dist/client/assets/popover-OWEv6cQz.js +48 -0
- package/dist/client/assets/presentationTier-DPVAxTK4.js +1 -0
- package/dist/client/assets/previewRouteSearch-BjZdTuSf.js +1 -0
- package/dist/client/assets/primary-Cf-xJExj.js +4 -0
- package/dist/client/assets/primitives-CxTBN7D4.js +1 -0
- package/dist/client/assets/projectCheckouts.logic-DUT4AxXr.js +1 -0
- package/dist/client/assets/projectPaths-B8aVmOZX.js +1 -0
- package/dist/client/assets/projectPreferences-CzWBItFj.js +1 -0
- package/dist/client/assets/providerCapabilities-B2YOPsLN.js +1 -0
- package/dist/client/assets/providerDriverMeta-BHHL9uw0.js +1 -0
- package/dist/client/assets/providerModels-v9PYbzRE.js +1 -0
- package/dist/client/assets/providerStatus-CDPaqb0S.js +1 -0
- package/dist/client/assets/pullRequestsModel.logic-Dv_om_C4.js +1 -0
- package/dist/client/assets/{qr-code-dbkTo07n.js → qr-code-BlbiBIwH.js} +1 -1
- package/dist/client/assets/{qr-code-D4CtBq2F.js → qr-code-DywzVgQC.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-CIZ2JOQS-Cj1Y68ZF.js → quadrantDiagram-CIZ2JOQS-DY6fJyrM.js} +1 -1
- package/dist/client/assets/{radar-RG4KPBEZ-FHM3ftPp.js → radar-RG4KPBEZ-D9689I5m.js} +1 -1
- package/dist/client/assets/radio-group-DVwD6Cuy.js +1 -0
- package/dist/client/assets/{railroad-74A4TZTK-CPMn18Cm.js → railroad-74A4TZTK-DVzWbQnl.js} +1 -1
- package/dist/client/assets/railroad-abnf-HS5TGJTU-C_2P6umA.js +1 -0
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-aGlR3R3z.js +1 -0
- package/dist/client/assets/railroad-peg-WCYAUIDC-DCB9oE8y.js +1 -0
- package/dist/client/assets/{railroadDiagram-AXF67PYL-DyV3SuDj.js → railroadDiagram-AXF67PYL-D1oJ6Jtl.js} +1 -1
- package/dist/client/assets/readCache-B7cDPz2O.js +1 -0
- package/dist/client/assets/{refresh-cw-CgDa2Ok_.js → refresh-cw-CRUTivd6.js} +1 -1
- package/dist/client/assets/{requirementDiagram-LRYGKXZP-_xEAGWaH.js → requirementDiagram-LRYGKXZP-7RM8iREp.js} +1 -1
- package/dist/client/assets/rotate-ccw-BE2ZCwL6.js +1 -0
- package/dist/client/assets/roving-radio-group-NMPWrDqe.js +1 -0
- package/dist/client/assets/rows-2-DDS4dGTX.js +1 -0
- package/dist/client/assets/runtime-DjjjAcTE.js +18 -0
- package/dist/client/assets/safePolygon-C1AzMRS4.js +1 -0
- package/dist/client/assets/{sankeyDiagram-W5VNT64P-Clf6oTLi.js → sankeyDiagram-W5VNT64P-C1tKAPGN.js} +1 -1
- package/dist/client/assets/{save-C8h0AMdl.js → save-OZdkPs_y.js} +1 -1
- package/dist/client/assets/scroll-area-80P7vbjw.js +1 -0
- package/dist/client/assets/{scrollEdges-BXYnwntN.js → scrollEdges-C0Oc-5qi.js} +1 -1
- package/dist/client/assets/select-Cb9FUPHD.js +1 -0
- package/dist/client/assets/separator-CO8bC7Wc.js +1 -0
- package/dist/client/assets/{sequenceDiagram-SI44F4Z6-CcYtQLSe.js → sequenceDiagram-SI44F4Z6-DGVpb7jL.js} +1 -1
- package/dist/client/assets/settings-2-PrRDu6Lc.js +1 -0
- package/dist/client/assets/settingsLayout-CRFNCk_D.js +1 -0
- package/dist/client/assets/sheet-C5DW7qVO.js +1 -0
- package/dist/client/assets/{shield-DPC4oHTi.js → shield-CBHYqlkR.js} +1 -1
- package/dist/client/assets/{shield-alert-CwH36qZb.js → shield-alert-Dc2cGwyR.js} +1 -1
- package/dist/client/assets/{shield-check-CGD7sEeF.js → shield-check-_wl7R4Js.js} +1 -1
- package/dist/client/assets/sidebar-0BBaFNm3.js +1 -0
- package/dist/client/assets/sidebarProjectFolders-BjWzbt8C.js +3 -0
- package/dist/client/assets/sidebarProjectGrouping-nQRStWrZ.js +1 -0
- package/dist/client/assets/sidebarStatusText-BBKuNies.js +1 -0
- package/dist/client/assets/sidebarUndo-Dfq1lvyF.js +1 -0
- package/dist/client/assets/{skeleton-rS3IgBob.js → skeleton-DfUe6VV_.js} +1 -1
- package/dist/client/assets/sliders-horizontal-BGXkwvKv.js +1 -0
- package/dist/client/assets/sliding-tabs-BnDSjRU3.js +39 -0
- package/dist/client/assets/{smartphone-DgVJfbv3.js → smartphone-OEAQOTdv.js} +1 -1
- package/dist/client/assets/spinner-lHRJWsym.js +1 -0
- package/dist/client/assets/square-B05NKv3e.js +1 -0
- package/dist/client/assets/{star-Cqay-Cae.js → star-C8mHmfZu.js} +1 -1
- package/dist/client/assets/{stateDiagram-OKZ733FA-DEKURpRP.js → stateDiagram-OKZ733FA-CCOAegCG.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-UEYNNEHI-D60qqBed.js +1 -0
- package/dist/client/assets/storeSelectors-BichCKDC.js +1 -0
- package/dist/client/assets/surfaceMorph-BTRijmlU.js +1 -0
- package/dist/client/assets/{swimlanes-SLNWSIFB-DrR6sbi6.js → swimlanes-SLNWSIFB-CFsLYT4h.js} +1 -1
- package/dist/client/assets/swimlanesDiagram-ULZ7WXOC-D0SaJgSn.js +8 -0
- package/dist/client/assets/switch-oQc7Ifbl.js +1 -0
- package/dist/client/assets/text-wrap-DSRdSfDm.js +1 -0
- package/dist/client/assets/textarea-VyiIZ0wQ.js +1 -0
- package/dist/client/assets/threadPriorityRefreshRuntime-H656C1J_.js +1 -0
- package/dist/client/assets/ticker-CPutfhZ4.js +1 -0
- package/dist/client/assets/{timeline-definition-Z64GVDOM-bQJvmJx5.js → timeline-definition-Z64GVDOM-B4agmO7R.js} +1 -1
- package/dist/client/assets/toggle-DFqtCPt-.js +1 -0
- package/dist/client/assets/toggle-group-C5ICmqkI.js +1 -0
- package/dist/client/assets/{tokenModePresentation-BkS-mry_.js → tokenModePresentation-umDRm4k1.js} +1 -1
- package/dist/client/assets/tooltip-DbqhseXd.js +1 -0
- package/dist/client/assets/{treeView-Q6P3EWNA-D4Ex5QTp.js → treeView-Q6P3EWNA-C_S3udFB.js} +1 -1
- package/dist/client/assets/{treemap-WGGIJYW6-C4B6Y6qM.js → treemap-WGGIJYW6-B-kUSAkE.js} +1 -1
- package/dist/client/assets/undo-2-lyluTGMW.js +1 -0
- package/dist/client/assets/{unplug-B1dczi-t.js → unplug-D6iu-qlh.js} +1 -1
- package/dist/client/assets/usage-ClF-eUmy.js +1 -0
- package/dist/client/assets/useActiveIndicator-R5NWu8Fg.js +1 -0
- package/dist/client/assets/useAppSidebarCollapsed-BbMxfio5.js +1 -0
- package/dist/client/assets/useAppearancePreference-Ix13pMKy.js +1 -0
- package/dist/client/assets/useAtlassian-BYDCc9lv.js +0 -0
- package/dist/client/assets/useCheckoutResolution-CR-oOp5-.js +1 -0
- package/dist/client/assets/useDesktopRelaunchGuard-Jmh615iZ.js +1 -0
- package/dist/client/assets/useDiffFileNavigation-DeuzdD5E.js +15 -0
- package/dist/client/assets/useDiffLayout-DhcXwhBL.js +1 -0
- package/dist/client/assets/useEnvironmentSettingsTarget-DM6BRDT7.js +1 -0
- package/dist/client/assets/useFocus-CV0KIZwg.js +1 -0
- package/dist/client/assets/useGit-CUcs7h5_.js +1 -0
- package/dist/client/assets/useGitBranchSearch-CeKFtnCL.js +1 -0
- package/dist/client/assets/useHostedDraftExecutionTarget-DvQU5UOq.js +1 -0
- package/dist/client/assets/useLabelableId-CEgCRi6q.js +1 -0
- package/dist/client/assets/useLandingFlash-BfOOlFtW.js +1 -0
- package/dist/client/assets/useLogicalProjectSnapshots-CRNZke74.js +1 -0
- package/dist/client/assets/useNavigate-sQZthdyT.js +1 -0
- package/dist/client/assets/usePageLeadingInsetClass-Bf4nUvx4.js +1 -0
- package/dist/client/assets/usePhoneThreadActions-VaQ-mZex.js +1 -0
- package/dist/client/assets/usePopupHandleStore-DimKo2Yy.js +1 -0
- package/dist/client/assets/usePopupViewport-YeqX_UM3.js +1 -0
- package/dist/client/assets/usePresentationTier-B9kCQ4YH.js +1 -0
- package/dist/client/assets/useProject-Kt74Z12J.js +1 -0
- package/dist/client/assets/useProviderOptionsUpdater-CTzNh2B7.js +2 -0
- package/dist/client/assets/usePullRequestFilesViewed-D5Snmzys.js +1 -0
- package/dist/client/assets/usePullRequestsModel-DJL5HHbP.js +40 -0
- package/dist/client/assets/useScrollLock-CLZ31xsK.js +1 -0
- package/dist/client/assets/useSidebarThreadActions-n6EkLATf.js +6 -0
- package/dist/client/assets/{useStatistics-B76_r68I.js → useStatistics-DD0mYS4J.js} +14 -14
- package/dist/client/assets/{useTheme-B441xg4F.js → useTheme-Bdy-BDs-.js} +1 -1
- package/dist/client/assets/useValueChanged-DoumqMnV.js +1 -0
- package/dist/client/assets/{user-round-CLy1Qy1Y.js → user-round-BPDXr8Gq.js} +1 -1
- package/dist/client/assets/{vennDiagram-T6HMQDX7-8iiroXim.js → vennDiagram-T6HMQDX7-B1UEn_j_.js} +1 -1
- package/dist/client/assets/{vscode-icons-CJBVQtq5.js → vscode-icons-Ccy-gzFN.js} +1 -1
- package/dist/client/assets/{wardley-WFR3VGLG-DpyNUbTc.js → wardley-WFR3VGLG-gPdyDc-7.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-T6FBY63Y-CI7is3QO.js → wardleyDiagram-T6FBY63Y-2aDcwOA4.js} +1 -1
- package/dist/client/assets/workspaceLifecycle-OJ1aKksw.js +3 -0
- package/dist/client/assets/workspaceMetadataProjection-CyEyJhUa.js +1 -0
- package/dist/client/assets/workspaceRouteSearch-CCavUdbH.js +1 -0
- package/dist/client/assets/{wrench-7pbbxqrZ.js → wrench-CPUCA_rn.js} +1 -1
- package/dist/client/assets/wsTransport-C88seBPA.js +15 -0
- package/dist/client/assets/{xychartDiagram-ELKLHX3M-BTEX3m2y.js → xychartDiagram-ELKLHX3M-C1_7Q-1i.js} +1 -1
- package/dist/client/favicon.svg +1 -1
- package/dist/client/index.html +1 -1
- package/dist/collectUint8StreamText-BsLSgI8i.mjs +710 -0
- package/dist/collectUint8StreamText-D5olwfpM.cjs +757 -0
- package/dist/{deviceHostWorker-L8C9wy38.mjs → deviceHostWorker-B-Dn-6An.mjs} +1 -1
- package/dist/{makeManagedServerProvider-CF776SAO.cjs → makeManagedServerProvider-B5tP7tvg.cjs} +1 -1
- package/dist/{makeManagedServerProvider-B90UKjnv.mjs → makeManagedServerProvider-B65ipCxM.mjs} +2 -2
- package/dist/resource-monitor/linux-arm64/ryco-resource-monitor +0 -0
- package/dist/resource-monitor/ryco-resource-monitor +0 -0
- package/dist/resource-monitor/ryco-resource-monitor.exe +0 -0
- package/dist/resource-monitor/win32-arm64/ryco-resource-monitor.exe +0 -0
- package/dist/resource-monitor/win32-x64/ryco-resource-monitor.exe +0 -0
- package/dist/{runtimeSession-V3RIy8Ao.mjs → runtimeSession-D_BZ-wRH.mjs} +1 -1
- package/dist/{src-CARHuYkT.cjs → src-FmeCeBJ9.cjs} +2291 -72
- package/dist/{src-CtsgPPhb.mjs → src-VTj60bUm.mjs} +1974 -61
- package/package.json +1 -1
- package/dist/AzureDevOpsSourceControlProvider-CKSvfuDS.cjs +0 -190
- package/dist/AzureDevOpsSourceControlProvider-DRWSXTml.mjs +0 -188
- package/dist/GitLabSourceControlProvider-Cj07OTBD.mjs +0 -186
- package/dist/GitLabSourceControlProvider-CvvN5pHt.cjs +0 -188
- package/dist/client/assets/AccountSettings-v6-r6gYl.js +0 -1
- package/dist/client/assets/AiFocusSettings-BVdLON0q.js +0 -1
- package/dist/client/assets/AppearanceSettings-DRChsQnN.js +0 -1
- package/dist/client/assets/BranchToolbar.logic-YN3KjVr9.js +0 -3
- package/dist/client/assets/BrowserPanel-Dxw3stFP.js +0 -1
- package/dist/client/assets/ChatRightPanel-CygpcJiF.js +0 -201
- package/dist/client/assets/ChatThreadRouteView-DYLZFHu0.js +0 -1
- package/dist/client/assets/CommandPaletteDialog-BRvBzP1R.js +0 -1
- package/dist/client/assets/CompositeRoot-BeEGGWwn.js +0 -1
- package/dist/client/assets/ComputerUseSettings-Cq8Pi0ZU.js +0 -1
- package/dist/client/assets/ConnectionsSettings-RSYtexxd.js +0 -7
- package/dist/client/assets/ContextHandoffEndpointLabel-CeGDLNA4.js +0 -4
- package/dist/client/assets/DiagnosticsSettings-CDa6MVx4.js +0 -2
- package/dist/client/assets/DialogHandle-BE7egDQQ.js +0 -1
- package/dist/client/assets/DialogRoot-C4mtzigX.js +0 -1
- package/dist/client/assets/DialogTitle-B_Q4DykI.js +0 -1
- package/dist/client/assets/DialogTrigger-BSqd4Crj.js +0 -1
- package/dist/client/assets/DraftChatThreadRouteView-JW_bXVrM.js +0 -1
- package/dist/client/assets/GlassSurface-DDG4eTlj.js +0 -1
- package/dist/client/assets/HostedConnectionControls-CscV6hm1.js +0 -1
- package/dist/client/assets/HostedHubRoot-gp7-ClBP.js +0 -2
- package/dist/client/assets/HostedNodeRenameDialog-D1DSiTpx.js +0 -1
- package/dist/client/assets/HostedRelayTrustNotice-B9jp4SRh.js +0 -1
- package/dist/client/assets/IntegrationsSettingsPanel-DH7SfWtV.js +0 -2
- package/dist/client/assets/KeybindingsSettings-DkgYYSHS.js +0 -7
- package/dist/client/assets/LazyBrowserPanel-D4e76vc_.js +0 -2
- package/dist/client/assets/McpServersSettings-Dc1kPa-X.js +0 -6
- package/dist/client/assets/MobileSheet-lT--mLEz.js +0 -1
- package/dist/client/assets/NodeSecuritySettings-DcfSx4KT.js +0 -1
- package/dist/client/assets/NullStore-8d2s-Re3.js +0 -1
- package/dist/client/assets/OnboardingDialog-CnLjwM6Z.js +0 -1
- package/dist/client/assets/OpinionatedPluginsSettings-BTJyS3rN.js +0 -1
- package/dist/client/assets/PhoneHome-CIMkuDJF.js +0 -1
- package/dist/client/assets/PhoneSettingsSurface-CfZQxJNI.js +0 -2
- package/dist/client/assets/ProvidersSettingsPanel-DAVSiwE1.js +0 -1
- package/dist/client/assets/RedactedSensitiveText-BHGbQJwB.js +0 -1
- package/dist/client/assets/RootAppShell-T056pByH.js +0 -7
- package/dist/client/assets/SettingsDialog-BERU2Qg7.js +0 -2
- package/dist/client/assets/SettingsPanels-De_XZOQF.js +0 -3
- package/dist/client/assets/SettingsPanels.editor-Dkva9gX_.js +0 -2
- package/dist/client/assets/SourceControlSettings-B4HS17cB.js +0 -1
- package/dist/client/assets/StatisticsPage-Bj2ftFdH.js +0 -1
- package/dist/client/assets/StatisticsPanel-Dw7GBBmd.js +0 -1
- package/dist/client/assets/StatisticsSettingsLink-_XL3ABoI.js +0 -1
- package/dist/client/assets/ThreadTerminalDrawer-CPPzQSXN.js +0 -18
- package/dist/client/assets/ThreadWorkspacePanel-DWKU7Omm.js +0 -2073
- package/dist/client/assets/appChrome-TkWLAGxk.js +0 -1
- package/dist/client/assets/architecture-7GRP2DOG-HS59zfrk.js +0 -1
- package/dist/client/assets/authorization-D8dOcEYq.js +0 -1
- package/dist/client/assets/badge-2AZ3HfVS.js +0 -1
- package/dist/client/assets/capabilities-CsHjxjab.js +0 -1
- package/dist/client/assets/channel-Dn3_cOkm.js +0 -1
- package/dist/client/assets/chevron-right-Dsw16yGn.js +0 -1
- package/dist/client/assets/classDiagram-JCYQIIEL-ZQvrS8No.js +0 -1
- package/dist/client/assets/classDiagram-v2-OCEON4UE-ZQvrS8No.js +0 -1
- package/dist/client/assets/compiler-runtime-C4g8XhC5.js +0 -1
- package/dist/client/assets/desktopWorkspace-_iM6B9Kf.js +0 -1
- package/dist/client/assets/editorPreferences-D8q1ItMW.js +0 -1
- package/dist/client/assets/eventmodeling-NTZA5JFV-Dj71kuPV.js +0 -1
- package/dist/client/assets/flowDiagram-UKHOOZJN-BaAiwuvL.js +0 -1
- package/dist/client/assets/hostedConnectionCoordinator-BuRWCvUG.js +0 -1
- package/dist/client/assets/hubRoutes-jcMPIFy3.js +0 -1
- package/dist/client/assets/kbd-Dxm5Elqj.js +0 -1
- package/dist/client/assets/layers-Dqez1Uq8.js +0 -1
- package/dist/client/assets/liquidGlass-CA2o_Cq0.js +0 -1
- package/dist/client/assets/liquidGlass.worker-icvLJKHf.js +0 -1
- package/dist/client/assets/main-BqSANuAs.css +0 -2
- package/dist/client/assets/main-DAbEANjY.js +0 -9
- package/dist/client/assets/motion-BdscFixQ.js +0 -1
- package/dist/client/assets/palette-92ylWqeC.js +0 -1
- package/dist/client/assets/perfInstrumentation-BT27w4tn.js +0 -1
- package/dist/client/assets/presentationTier-xlIjcFab.js +0 -1
- package/dist/client/assets/primary-DZjgHvyf.js +0 -5
- package/dist/client/assets/providerDriverMeta-T2YbXzuS.js +0 -1
- package/dist/client/assets/providerStatus-DBGvvkyF.js +0 -1
- package/dist/client/assets/radio-group-CRnHYWa8.js +0 -1
- package/dist/client/assets/railroad-abnf-HS5TGJTU-DxU7Mt1k.js +0 -1
- package/dist/client/assets/railroad-ebnf-LZEXJU2U-BYAPVjRd.js +0 -1
- package/dist/client/assets/railroad-peg-WCYAUIDC-BOqgR_X7.js +0 -1
- package/dist/client/assets/runtime-BwHA1GUS.js +0 -18
- package/dist/client/assets/scroll-area-7n2X_RLQ.js +0 -1
- package/dist/client/assets/separator-CL1qjMqJ.js +0 -1
- package/dist/client/assets/settingsLayout-DxsFwhF0.js +0 -1
- package/dist/client/assets/sheet-CGiaw8-i.js +0 -1
- package/dist/client/assets/sidebar-Cc6ANbOP.js +0 -1
- package/dist/client/assets/sidebarProjectFolders-DO2Uv84F.js +0 -4
- package/dist/client/assets/sidebarStatusText-B4AtFXZo.js +0 -1
- package/dist/client/assets/sidebarUndo-gdSrfa4O.js +0 -1
- package/dist/client/assets/square-Cr9X8U6y.js +0 -1
- package/dist/client/assets/src-C3Y_imaX.js +0 -14
- package/dist/client/assets/stateDiagram-v2-UEYNNEHI-CWtHILqh.js +0 -1
- package/dist/client/assets/storeSelectors-CTDWheMy.js +0 -1
- package/dist/client/assets/swimlanesDiagram-ULZ7WXOC-DuaPce9O.js +0 -8
- package/dist/client/assets/switch-DnpJB2xv.js +0 -48
- package/dist/client/assets/toggle-D10FsFoE.js +0 -1
- package/dist/client/assets/toggle-group-BhzbQPEQ.js +0 -1
- package/dist/client/assets/tooltip-BlweKBxc.js +0 -1
- package/dist/client/assets/usage-BBwaxMif.js +0 -1
- package/dist/client/assets/useAppSidebarCollapsed-CFy476E3.js +0 -1
- package/dist/client/assets/useAppearancePreference-Dlh9P8iu.js +0 -1
- package/dist/client/assets/useBaseUiId-DKOjzmu3.js +0 -1
- package/dist/client/assets/useLabelableId-DQbY2GG1.js +0 -1
- package/dist/client/assets/useNavigate-B8oXtF30.js +0 -1
- package/dist/client/assets/usePhoneThreadActions-6DCLiyJ5.js +0 -1
- package/dist/client/assets/usePopupViewport-CNWcP7Od.js +0 -1
- package/dist/client/assets/usePresentationTier-hxB7Yv_Q.js +0 -1
- package/dist/client/assets/useScrollLock-BbKeKZdj.js +0 -1
- package/dist/client/assets/useTriggerFocusGuards-BC4Wb3GI.js +0 -1
- package/dist/client/assets/useValueChanged-BkTbyZdO.js +0 -1
- package/dist/client/assets/workspaceMetadataProjection-aqZEXDrQ.js +0 -1
- package/dist/collectUint8StreamText-BAUF-vzz.mjs +0 -37
- package/dist/collectUint8StreamText-vagpNUMJ.cjs +0 -42
- package/dist/git-9xWsJYIH.mjs +0 -132
- package/dist/git-xIkXFy_l.cjs +0 -218
- package/dist/sourceControl-B0D1Op29.cjs +0 -253
- package/dist/sourceControl-BiEBxN01.mjs +0 -224
|
@@ -285,6 +285,10 @@ const ExecutionEnvironmentCapabilities = effect.Schema.Struct({
|
|
|
285
285
|
threadSettlement: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(false))),
|
|
286
286
|
threadPriorityRanking: effect.Schema.Boolean.pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(false))),
|
|
287
287
|
worktreeSubmoduleSettings: effect.Schema.optionalKey(effect.Schema.Boolean),
|
|
288
|
+
/** Usage-limit settings and the resume/snooze worker; absent on older servers. */
|
|
289
|
+
usageLimitRecovery: effect.Schema.optionalKey(effect.Schema.Boolean),
|
|
290
|
+
/** Server-owned worktree notes (`notes.list` / `notes.command`); absent on older servers. */
|
|
291
|
+
worktreeNotes: effect.Schema.optionalKey(effect.Schema.Boolean),
|
|
288
292
|
fileAttachments: effect.Schema.optional(effect.Schema.Struct({ maxUploadBytes: NonNegativeInt }))
|
|
289
293
|
});
|
|
290
294
|
const ExecutionEnvironmentDescriptor = effect.Schema.Struct({
|
|
@@ -1832,6 +1836,12 @@ const DESKTOP_NATIVE_NODE_CLAIM_DESCRIPTOR_PATH = "/api/desktop/hub/native-node-
|
|
|
1832
1836
|
const DESKTOP_NATIVE_NODE_CLAIM_SIGN_PATH = "/api/desktop/hub/native-node-claim/sign";
|
|
1833
1837
|
const DESKTOP_NATIVE_NODE_CLAIM_COMMIT_PATH = "/api/desktop/hub/native-node-claim/commit";
|
|
1834
1838
|
const DESKTOP_NATIVE_NODE_CLAIM_MAX_BODY_BYTES = 16384;
|
|
1839
|
+
/**
|
|
1840
|
+
* Desktop main asks its own backend, over the same per-child local control
|
|
1841
|
+
* channel, whether other devices can reach this node through the Hub, to keep
|
|
1842
|
+
* the machine awake only while they can.
|
|
1843
|
+
*/
|
|
1844
|
+
const DESKTOP_HUB_REACHABILITY_PATH = "/api/desktop/hub/reachability";
|
|
1835
1845
|
const strict = (schema) => schema.annotate({ parseOptions: { onExcessProperty: "error" } });
|
|
1836
1846
|
strict(effect.Schema.Struct({
|
|
1837
1847
|
protocolVersion: effect.Schema.Literal(1),
|
|
@@ -1869,6 +1879,15 @@ strict(effect.Schema.Struct({
|
|
|
1869
1879
|
status: effect.Schema.Literal("active"),
|
|
1870
1880
|
result: NativeNodeClaimFinishResponse
|
|
1871
1881
|
}));
|
|
1882
|
+
strict(effect.Schema.Struct({
|
|
1883
|
+
protocolVersion: effect.Schema.Literal(1),
|
|
1884
|
+
reachable: effect.Schema.Boolean,
|
|
1885
|
+
/**
|
|
1886
|
+
* Whether the backend runs its connector at all. A standby launch can
|
|
1887
|
+
* resolve to off, which only a relaunch with an explicit enable changes.
|
|
1888
|
+
*/
|
|
1889
|
+
connectorEnabled: effect.Schema.Boolean
|
|
1890
|
+
}));
|
|
1872
1891
|
strict(effect.Schema.Struct({ error: effect.Schema.Literals([
|
|
1873
1892
|
"native_node_claim_unavailable",
|
|
1874
1893
|
"native_node_claim_rejected",
|
|
@@ -2556,6 +2575,14 @@ const MODEL_SLUG_ALIASES_BY_PROVIDER = {
|
|
|
2556
2575
|
[GROK_DRIVER_KIND]: {},
|
|
2557
2576
|
[OPENCODE_DRIVER_KIND]: {}
|
|
2558
2577
|
};
|
|
2578
|
+
const PROVIDER_DISPLAY_NAMES = {
|
|
2579
|
+
[CODEX_DRIVER_KIND]: "Codex",
|
|
2580
|
+
[CLAUDE_DRIVER_KIND]: "Claude",
|
|
2581
|
+
[COPILOT_DRIVER_KIND]: "GitHub Copilot",
|
|
2582
|
+
[CURSOR_DRIVER_KIND]: "Cursor",
|
|
2583
|
+
[GROK_DRIVER_KIND]: "Grok",
|
|
2584
|
+
[OPENCODE_DRIVER_KIND]: "OpenCode"
|
|
2585
|
+
};
|
|
2559
2586
|
const ThreadPriorityTier = effect.Schema.Literals([
|
|
2560
2587
|
"now",
|
|
2561
2588
|
"soon",
|
|
@@ -2762,13 +2789,67 @@ const SourceControlCheckRollupItem = effect.Schema.Struct({
|
|
|
2762
2789
|
conclusion: effect.Schema.Option(TrimmedNonEmptyString),
|
|
2763
2790
|
url: effect.Schema.Option(TrimmedNonEmptyString),
|
|
2764
2791
|
startedAt: effect.Schema.Option(effect.Schema.DateTimeUtc),
|
|
2765
|
-
completedAt: effect.Schema.Option(effect.Schema.DateTimeUtc)
|
|
2792
|
+
completedAt: effect.Schema.Option(effect.Schema.DateTimeUtc),
|
|
2793
|
+
/**
|
|
2794
|
+
* The base branch's protection requires this check to pass before merging.
|
|
2795
|
+
* Absent when the host did not say (list rows, hosts without the concept,
|
|
2796
|
+
* or a failed lookup), which is not the same as `false`.
|
|
2797
|
+
*/
|
|
2798
|
+
isRequired: effect.Schema.optional(effect.Schema.Boolean)
|
|
2766
2799
|
});
|
|
2767
2800
|
const SourceControlLabel = effect.Schema.Struct({
|
|
2768
2801
|
name: TrimmedNonEmptyString,
|
|
2769
2802
|
color: effect.Schema.optional(TrimmedNonEmptyString),
|
|
2770
2803
|
description: effect.Schema.optional(TrimmedNonEmptyString)
|
|
2771
2804
|
});
|
|
2805
|
+
/** Aggregate review verdict as reported by the host (GitHub `reviewDecision`). */
|
|
2806
|
+
const SourceControlChangeRequestReviewDecision = effect.Schema.Literals([
|
|
2807
|
+
"approved",
|
|
2808
|
+
"changes_requested",
|
|
2809
|
+
"review_required"
|
|
2810
|
+
]);
|
|
2811
|
+
/**
|
|
2812
|
+
* Why a change request can or cannot merge right now (GitHub `mergeStateStatus`,
|
|
2813
|
+
* lower-cased). `behind` means the head needs the base merged in; `blocked`
|
|
2814
|
+
* means required reviews or checks are missing; `dirty` means conflicts.
|
|
2815
|
+
*/
|
|
2816
|
+
const SourceControlChangeRequestMergeStateStatus = effect.Schema.Literals([
|
|
2817
|
+
"behind",
|
|
2818
|
+
"blocked",
|
|
2819
|
+
"clean",
|
|
2820
|
+
"dirty",
|
|
2821
|
+
"draft",
|
|
2822
|
+
"has_hooks",
|
|
2823
|
+
"unknown",
|
|
2824
|
+
"unstable"
|
|
2825
|
+
]);
|
|
2826
|
+
/** One reviewer's latest standing on a change request. `requested` = asked, not yet reviewed. */
|
|
2827
|
+
const SourceControlChangeRequestReviewerState = effect.Schema.Literals([
|
|
2828
|
+
"approved",
|
|
2829
|
+
"changes_requested",
|
|
2830
|
+
"commented",
|
|
2831
|
+
"dismissed",
|
|
2832
|
+
"requested"
|
|
2833
|
+
]);
|
|
2834
|
+
const SourceControlChangeRequestReviewer = effect.Schema.Struct({
|
|
2835
|
+
/** User login, or `org/team-slug` for team review requests. */
|
|
2836
|
+
login: TrimmedNonEmptyString,
|
|
2837
|
+
kind: effect.Schema.Literals([
|
|
2838
|
+
"user",
|
|
2839
|
+
"team",
|
|
2840
|
+
"bot"
|
|
2841
|
+
]),
|
|
2842
|
+
state: SourceControlChangeRequestReviewerState,
|
|
2843
|
+
avatarUrl: effect.Schema.optional(effect.Schema.String),
|
|
2844
|
+
submittedAt: effect.Schema.optional(effect.Schema.DateTimeUtc),
|
|
2845
|
+
/** True when the request came from CODEOWNERS. */
|
|
2846
|
+
isCodeOwner: effect.Schema.optional(effect.Schema.Boolean)
|
|
2847
|
+
});
|
|
2848
|
+
const SourceControlChangeRequestAutoMerge = effect.Schema.Struct({
|
|
2849
|
+
mergeMethod: SourceControlChangeRequestMergeMethod,
|
|
2850
|
+
enabledBy: effect.Schema.optional(TrimmedNonEmptyString),
|
|
2851
|
+
enabledAt: effect.Schema.optional(effect.Schema.DateTimeUtc)
|
|
2852
|
+
});
|
|
2772
2853
|
const ChangeRequest = effect.Schema.Struct({
|
|
2773
2854
|
provider: SourceControlProviderKind,
|
|
2774
2855
|
number: PositiveInt,
|
|
@@ -2788,8 +2869,20 @@ const ChangeRequest = effect.Schema.Struct({
|
|
|
2788
2869
|
headRepositoryOwnerLogin: effect.Schema.optional(effect.Schema.NullOr(TrimmedNonEmptyString)),
|
|
2789
2870
|
headSha: effect.Schema.optional(TrimmedNonEmptyString),
|
|
2790
2871
|
mergeability: effect.Schema.optional(SourceControlChangeRequestMergeability),
|
|
2872
|
+
/**
|
|
2873
|
+
* Why it can or cannot merge right now. Always on the detail where the host
|
|
2874
|
+
* reports readiness; on list rows only where the list payload carries it
|
|
2875
|
+
* (GitLab's `detailed_merge_status`).
|
|
2876
|
+
*/
|
|
2877
|
+
mergeStateStatus: effect.Schema.optional(SourceControlChangeRequestMergeStateStatus),
|
|
2791
2878
|
checkRollup: effect.Schema.optional(effect.Schema.Array(SourceControlCheckRollupItem)),
|
|
2792
|
-
stackSummary: effect.Schema.optional(SourceControlChangeRequestStackSummary)
|
|
2879
|
+
stackSummary: effect.Schema.optional(SourceControlChangeRequestStackSummary),
|
|
2880
|
+
createdAt: effect.Schema.optional(effect.Schema.DateTimeUtc),
|
|
2881
|
+
reviewDecision: effect.Schema.optional(effect.Schema.NullOr(SourceControlChangeRequestReviewDecision)),
|
|
2882
|
+
additions: effect.Schema.optional(NonNegativeInt),
|
|
2883
|
+
deletions: effect.Schema.optional(NonNegativeInt),
|
|
2884
|
+
/** Files touched (list rows waiting on the viewer's review show it). */
|
|
2885
|
+
changedFiles: effect.Schema.optional(NonNegativeInt)
|
|
2793
2886
|
});
|
|
2794
2887
|
const SOURCE_CONTROL_DETAIL_BODY_MAX_BYTES = 8192;
|
|
2795
2888
|
const SOURCE_CONTROL_DETAIL_COMMENT_BODY_MAX_BYTES = 2048;
|
|
@@ -2874,11 +2967,11 @@ const SourceControlCreateIssueInput = effect.Schema.Struct({
|
|
|
2874
2967
|
assignees: effect.Schema.optional(effect.Schema.Array(TrimmedNonEmptyString)),
|
|
2875
2968
|
worktree: effect.Schema.optional(SourceControlCreateIssueWorktree)
|
|
2876
2969
|
});
|
|
2877
|
-
const NonBlankMarkdownBody = effect.Schema.String.check(effect.Schema.makeFilter((body) => body.trim().length > 0 ? void 0 : "Expected a non-blank Markdown body"));
|
|
2970
|
+
const NonBlankMarkdownBody$1 = effect.Schema.String.check(effect.Schema.makeFilter((body) => body.trim().length > 0 ? void 0 : "Expected a non-blank Markdown body"));
|
|
2878
2971
|
const SourceControlAddIssueCommentInput = effect.Schema.Struct({
|
|
2879
2972
|
cwd: TrimmedNonEmptyString,
|
|
2880
2973
|
reference: TrimmedNonEmptyString,
|
|
2881
|
-
body: NonBlankMarkdownBody,
|
|
2974
|
+
body: NonBlankMarkdownBody$1,
|
|
2882
2975
|
clientMutationId: effect.Schema.optional(TrimmedNonEmptyString)
|
|
2883
2976
|
});
|
|
2884
2977
|
const SourceControlAddIssueCommentResult = effect.Schema.Struct({ detail: SourceControlIssueDetail });
|
|
@@ -2924,12 +3017,24 @@ const SourceControlChangeRequestDetail = effect.Schema.Struct({
|
|
|
2924
3017
|
files: effect.Schema.optional(effect.Schema.Array(SourceControlChangeRequestFile)),
|
|
2925
3018
|
stack: effect.Schema.optional(SourceControlChangeRequestStack),
|
|
2926
3019
|
stackMetadataIncomplete: effect.Schema.optional(effect.Schema.Boolean),
|
|
2927
|
-
mergeCapabilities: effect.Schema.optional(SourceControlChangeRequestMergeCapabilities)
|
|
3020
|
+
mergeCapabilities: effect.Schema.optional(SourceControlChangeRequestMergeCapabilities),
|
|
3021
|
+
/** Per-reviewer latest state, including pending (requested) reviewers. */
|
|
3022
|
+
reviewerStates: effect.Schema.optional(effect.Schema.Array(SourceControlChangeRequestReviewer)),
|
|
3023
|
+
autoMerge: effect.Schema.optional(effect.Schema.NullOr(SourceControlChangeRequestAutoMerge)),
|
|
3024
|
+
closedAt: effect.Schema.optional(effect.Schema.DateTimeUtc),
|
|
3025
|
+
mergedAt: effect.Schema.optional(effect.Schema.DateTimeUtc),
|
|
3026
|
+
mergedBy: effect.Schema.optional(TrimmedNonEmptyString),
|
|
3027
|
+
/** True when the host deletes the head branch automatically after merge. */
|
|
3028
|
+
deleteBranchOnMerge: effect.Schema.optional(effect.Schema.Boolean)
|
|
2928
3029
|
});
|
|
2929
3030
|
const SourceControlMergeChangeRequestInput = effect.Schema.Struct({
|
|
2930
3031
|
cwd: TrimmedNonEmptyString,
|
|
2931
3032
|
reference: TrimmedNonEmptyString,
|
|
2932
|
-
mergeMethod: SourceControlChangeRequestMergeMethod
|
|
3033
|
+
mergeMethod: SourceControlChangeRequestMergeMethod,
|
|
3034
|
+
/** Delete the head branch after a successful (non-queued) merge. */
|
|
3035
|
+
deleteBranch: effect.Schema.optional(effect.Schema.Boolean),
|
|
3036
|
+
/** Refuse to merge when the head moved since the user looked. */
|
|
3037
|
+
expectedHeadSha: effect.Schema.optional(TrimmedNonEmptyString)
|
|
2933
3038
|
});
|
|
2934
3039
|
const SourceControlMergeChangeRequestResult = effect.Schema.Struct({ outcome: effect.Schema.Literals(["merged", "enqueued"]) });
|
|
2935
3040
|
const SOURCE_CONTROL_WORKFLOW_LOG_MAX_BYTES = 204800;
|
|
@@ -2946,6 +3051,12 @@ const SourceControlWorkflowRun = effect.Schema.Struct({
|
|
|
2946
3051
|
branch: effect.Schema.Option(TrimmedNonEmptyString),
|
|
2947
3052
|
event: effect.Schema.optional(TrimmedNonEmptyString),
|
|
2948
3053
|
commit: SourceControlWorkflowRunCommit,
|
|
3054
|
+
/**
|
|
3055
|
+
* The change request head this run verifies when `commit` is not the head
|
|
3056
|
+
* itself but a merge of it into the target (GitLab merged-results and
|
|
3057
|
+
* merge-train pipelines). Absent when the run is on the head commit.
|
|
3058
|
+
*/
|
|
3059
|
+
sourceHeadOid: effect.Schema.optional(TrimmedNonEmptyString),
|
|
2949
3060
|
actor: effect.Schema.Option(TrimmedNonEmptyString),
|
|
2950
3061
|
status: TrimmedNonEmptyString,
|
|
2951
3062
|
conclusion: effect.Schema.Option(TrimmedNonEmptyString),
|
|
@@ -3034,7 +3145,7 @@ const SourceControlWorkflowRerunResult = effect.Schema.Struct({
|
|
|
3034
3145
|
const SourceControlAddChangeRequestCommentInput = effect.Schema.Struct({
|
|
3035
3146
|
cwd: TrimmedNonEmptyString,
|
|
3036
3147
|
reference: TrimmedNonEmptyString,
|
|
3037
|
-
body: NonBlankMarkdownBody,
|
|
3148
|
+
body: NonBlankMarkdownBody$1,
|
|
3038
3149
|
clientMutationId: effect.Schema.optional(TrimmedNonEmptyString)
|
|
3039
3150
|
});
|
|
3040
3151
|
const SourceControlAddChangeRequestCommentResult = effect.Schema.Struct({ detail: SourceControlChangeRequestDetail });
|
|
@@ -3511,6 +3622,8 @@ const StatusBucket = effect.Schema.Literals([
|
|
|
3511
3622
|
"done"
|
|
3512
3623
|
]);
|
|
3513
3624
|
const WorktreeCheckoutLocation = effect.Schema.Literals(["appManaged", "projectMetadata"]);
|
|
3625
|
+
/** Why a workspace record no longer has a checkout: removed by Ryco, or found missing. */
|
|
3626
|
+
const WorktreeCheckoutRemovalReason = effect.Schema.Literals(["removed", "missing"]);
|
|
3514
3627
|
const Worktree = effect.Schema.Struct({
|
|
3515
3628
|
worktreeId: WorktreeId,
|
|
3516
3629
|
projectId: ProjectId,
|
|
@@ -3525,6 +3638,12 @@ const Worktree = effect.Schema.Struct({
|
|
|
3525
3638
|
prState: effect.Schema.optional(effect.Schema.NullOr(PullRequestState)).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
|
|
3526
3639
|
prIsDraft: effect.Schema.optional(effect.Schema.NullOr(effect.Schema.Boolean)).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
|
|
3527
3640
|
issueState: effect.Schema.optional(effect.Schema.NullOr(IssueState)).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
|
|
3641
|
+
/**
|
|
3642
|
+
* When the PR reached its current merged/closed state (forge time, else first
|
|
3643
|
+
* observation). `null` while open, unknown, or absent. No decoding default:
|
|
3644
|
+
* an absent key means the server predates the field (legacy settlement rule).
|
|
3645
|
+
*/
|
|
3646
|
+
prTerminalAt: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
|
|
3528
3647
|
workItemProvider: effect.Schema.optional(effect.Schema.NullOr(WorkItemProviderKind)).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
|
|
3529
3648
|
workItemKey: effect.Schema.optional(effect.Schema.NullOr(TrimmedNonEmptyString)).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
|
|
3530
3649
|
workItemTitle: effect.Schema.optional(effect.Schema.NullOr(TrimmedNonEmptyString)).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
|
|
@@ -3534,6 +3653,12 @@ const Worktree = effect.Schema.Struct({
|
|
|
3534
3653
|
createdAt: IsoDateTime,
|
|
3535
3654
|
updatedAt: IsoDateTime,
|
|
3536
3655
|
archivedAt: effect.Schema.NullOr(IsoDateTime),
|
|
3656
|
+
/**
|
|
3657
|
+
* Set once the physical checkout is gone (removed or found missing). The record,
|
|
3658
|
+
* `worktreePath` and `branch` stay as provenance. Optional so older peers decode.
|
|
3659
|
+
*/
|
|
3660
|
+
checkoutRemovedAt: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
|
|
3661
|
+
checkoutRemovalReason: effect.Schema.optional(effect.Schema.NullOr(WorktreeCheckoutRemovalReason)),
|
|
3537
3662
|
manualPosition: effect.Schema.Number
|
|
3538
3663
|
});
|
|
3539
3664
|
const CreateWorktreeIntent = effect.Schema.Union([
|
|
@@ -3655,6 +3780,13 @@ const CONTEXT_HANDOFF_ERROR_MAX_CHARS = 2e3;
|
|
|
3655
3780
|
const CONTEXT_HANDOFF_INSPECTION_MAX_RESPONSE_BYTES = 131072;
|
|
3656
3781
|
const CONTEXT_HANDOFF_INSPECTION_CHUNK_MAX_BYTES = 98304;
|
|
3657
3782
|
const ContextHandoffMode = effect.Schema.Literal("full-context-fresh-session");
|
|
3783
|
+
/**
|
|
3784
|
+
* Why a thread handed its context to a fresh session:
|
|
3785
|
+
* - `model-change`: the user switched to another provider instance.
|
|
3786
|
+
* - `cwd-relocation`: the thread's working directory moved (for example, a chat became a project)
|
|
3787
|
+
* and the provider cannot resume its conversation there.
|
|
3788
|
+
*/
|
|
3789
|
+
const ContextHandoffReason = effect.Schema.Literals(["model-change", "cwd-relocation"]);
|
|
3658
3790
|
const ContextHandoffEndpointSnapshot = effect.Schema.Struct({
|
|
3659
3791
|
providerInstanceId: ProviderInstanceId,
|
|
3660
3792
|
driverKind: ProviderDriverKind,
|
|
@@ -3680,6 +3812,8 @@ const ContextHandoffActivityBaseFields = {
|
|
|
3680
3812
|
schemaVersion: effect.Schema.Literal(1),
|
|
3681
3813
|
handoffId: ContextHandoffId,
|
|
3682
3814
|
mode: ContextHandoffMode,
|
|
3815
|
+
/** Absent on records written before reasons existed: those are model changes. */
|
|
3816
|
+
reason: effect.Schema.optional(ContextHandoffReason),
|
|
3683
3817
|
targetMessageId: MessageId,
|
|
3684
3818
|
targetTurnId: effect.Schema.optional(TurnId),
|
|
3685
3819
|
sourceSelection: ModelSelection,
|
|
@@ -3735,6 +3869,44 @@ const ContextHandoffActivityPayload = effect.Schema.Union([
|
|
|
3735
3869
|
inspection: effect.Schema.optional(ContextHandoffInspectionSummaryMetadata)
|
|
3736
3870
|
})
|
|
3737
3871
|
]);
|
|
3872
|
+
/**
|
|
3873
|
+
* Lifecycle activity journaling one checkpoint revert. Its id is
|
|
3874
|
+
* `checkpoint-revert:<revertRequestId>`; every phase replaces the same row.
|
|
3875
|
+
*/
|
|
3876
|
+
const CHECKPOINT_REVERT_ACTIVITY_KIND = "checkpoint.revert";
|
|
3877
|
+
const CheckpointRevertStatus = effect.Schema.Literals([
|
|
3878
|
+
"requested",
|
|
3879
|
+
"rolling-back",
|
|
3880
|
+
"restoring-files",
|
|
3881
|
+
"completed",
|
|
3882
|
+
"files-not-restored",
|
|
3883
|
+
"failed",
|
|
3884
|
+
"interrupted"
|
|
3885
|
+
]);
|
|
3886
|
+
const CheckpointRevertFailureReason = effect.Schema.Literals([
|
|
3887
|
+
"thread-busy",
|
|
3888
|
+
"target-unavailable",
|
|
3889
|
+
"handoff-boundary",
|
|
3890
|
+
"not-git",
|
|
3891
|
+
"shared-checkout",
|
|
3892
|
+
"provider-unsupported",
|
|
3893
|
+
"provider-failed",
|
|
3894
|
+
"files-failed",
|
|
3895
|
+
"restart",
|
|
3896
|
+
"internal-error"
|
|
3897
|
+
]);
|
|
3898
|
+
const CheckpointRevertActivityPayload = effect.Schema.Struct({
|
|
3899
|
+
schemaVersion: effect.Schema.Literal(1),
|
|
3900
|
+
revertRequestId: CommandId,
|
|
3901
|
+
/** Target checkpoint K. */
|
|
3902
|
+
turnCount: NonNegativeInt,
|
|
3903
|
+
fromTurnCount: effect.Schema.optional(NonNegativeInt),
|
|
3904
|
+
status: CheckpointRevertStatus,
|
|
3905
|
+
reason: effect.Schema.optional(CheckpointRevertFailureReason),
|
|
3906
|
+
detail: effect.Schema.optional(TrimmedNonEmptyString),
|
|
3907
|
+
/** Restore cwd, recorded from "rolling-back" on so startup recovery can finish. */
|
|
3908
|
+
cwd: effect.Schema.optional(TrimmedNonEmptyString)
|
|
3909
|
+
});
|
|
3738
3910
|
const ContextHandoffInspectionScope = effect.Schema.Literals(["sent", "complete"]);
|
|
3739
3911
|
const ContextHandoffInspectionSection = effect.Schema.Literals([
|
|
3740
3912
|
"messages",
|
|
@@ -3946,6 +4118,25 @@ const UploadChatImageAttachment = effect.Schema.Struct({
|
|
|
3946
4118
|
sizeBytes: NonNegativeInt.check(effect.Schema.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_IMAGE_BYTES)),
|
|
3947
4119
|
dataUrl: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(PROVIDER_SEND_TURN_MAX_IMAGE_DATA_URL_CHARS))
|
|
3948
4120
|
});
|
|
4121
|
+
/**
|
|
4122
|
+
* Marks a `text/html` file attachment as an agent HTML render: a page the agent
|
|
4123
|
+
* published with `ryco_html_render` for clients to show inline in the thread.
|
|
4124
|
+
* Deliberately loose (any finite numbers, no length caps) so a newer server's
|
|
4125
|
+
* metadata can never fail an older client's decode; `@ryco/shared/htmlRender`
|
|
4126
|
+
* `readHtmlRenderMetadata` clamps it before use.
|
|
4127
|
+
*/
|
|
4128
|
+
const ChatHtmlRenderMetadata = effect.Schema.Struct({
|
|
4129
|
+
title: effect.Schema.String,
|
|
4130
|
+
/** The agent's frame height in CSS pixels, and the cap on any measured height. */
|
|
4131
|
+
height: effect.Schema.Finite,
|
|
4132
|
+
/** `[width, contentHeight]` pairs measured at publish; absent when not measured. */
|
|
4133
|
+
heights: effect.Schema.optional(effect.Schema.Array(effect.Schema.Tuple([effect.Schema.Finite, effect.Schema.Finite]))),
|
|
4134
|
+
/** Small `data:image/...` screenshots of the page's top per appearance; absent when not captured. */
|
|
4135
|
+
thumbnails: effect.Schema.optional(effect.Schema.Struct({
|
|
4136
|
+
dark: effect.Schema.optional(effect.Schema.String),
|
|
4137
|
+
light: effect.Schema.optional(effect.Schema.String)
|
|
4138
|
+
}))
|
|
4139
|
+
});
|
|
3949
4140
|
const ChatFileAttachment = effect.Schema.Struct({
|
|
3950
4141
|
type: effect.Schema.Literal("file"),
|
|
3951
4142
|
id: ChatAttachmentId,
|
|
@@ -3953,7 +4144,8 @@ const ChatFileAttachment = effect.Schema.Struct({
|
|
|
3953
4144
|
mimeType: ChatAttachmentMimeType,
|
|
3954
4145
|
sizeBytes: NonNegativeInt.check(effect.Schema.isLessThanOrEqualTo(PROVIDER_SEND_TURN_MAX_FILE_BYTES)),
|
|
3955
4146
|
width: effect.Schema.optional(NonNegativeInt),
|
|
3956
|
-
height: effect.Schema.optional(NonNegativeInt)
|
|
4147
|
+
height: effect.Schema.optional(NonNegativeInt),
|
|
4148
|
+
htmlRender: effect.Schema.optional(ChatHtmlRenderMetadata)
|
|
3957
4149
|
});
|
|
3958
4150
|
const CHAT_ATTACHMENT_READ_CHUNK_BYTES = 262144;
|
|
3959
4151
|
const ChatAttachmentReadChunkInput = effect.Schema.Struct({
|
|
@@ -4031,8 +4223,18 @@ const ProjectScript = effect.Schema.Struct({
|
|
|
4031
4223
|
const ProjectCustomSystemPrompt = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(2e4));
|
|
4032
4224
|
const DEFAULT_PROJECT_METADATA_DIR = ".ryco";
|
|
4033
4225
|
const ProjectMetadataDir = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(256), effect.Schema.isPattern(/^(?![\\/])(?!~)(?![A-Za-z]:[\\/])(?!.*(?:^|[\\/])\.\.(?:[\\/]|$)).+$/));
|
|
4226
|
+
/**
|
|
4227
|
+
* `chat` backs a "No project" chat: one project record per chat, rooted in a Ryco-managed
|
|
4228
|
+
* plain folder under the chats root. Promotion turns it into a regular `project`, never back.
|
|
4229
|
+
* Read it through `@ryco/shared/projectKind`, which treats an absent kind as `project`.
|
|
4230
|
+
*/
|
|
4231
|
+
const ProjectKind = effect.Schema.Literals(["project", "chat"]);
|
|
4232
|
+
const DEFAULT_PROJECT_KIND = "project";
|
|
4233
|
+
/** Absent on snapshots, events and nodes that predate chats; those only had regular projects. */
|
|
4234
|
+
const OptionalProjectKind = effect.Schema.optional(ProjectKind).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_PROJECT_KIND)));
|
|
4034
4235
|
const OrchestrationProject = effect.Schema.Struct({
|
|
4035
4236
|
id: ProjectId,
|
|
4237
|
+
kind: OptionalProjectKind,
|
|
4036
4238
|
title: TrimmedNonEmptyString,
|
|
4037
4239
|
workspaceRoot: TrimmedNonEmptyString,
|
|
4038
4240
|
projectMetadataDir: effect.Schema.optional(ProjectMetadataDir).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_PROJECT_METADATA_DIR))),
|
|
@@ -4052,6 +4254,19 @@ const OrchestrationMessageRole = effect.Schema.Literals([
|
|
|
4052
4254
|
"system"
|
|
4053
4255
|
]);
|
|
4054
4256
|
const TurnDispatchMode = effect.Schema.Literals(["queue", "steer"]);
|
|
4257
|
+
/**
|
|
4258
|
+
* Why a steer was not applied. `deferred`: the message stays queued and is sent as the next turn
|
|
4259
|
+
* (the turn ended, or the provider could not take it right now). `failed`: a real provider error.
|
|
4260
|
+
* Absent on older events, which read as `failed`.
|
|
4261
|
+
*/
|
|
4262
|
+
const TurnSteerRejectionReason = effect.Schema.Literals(["deferred", "failed"]);
|
|
4263
|
+
/**
|
|
4264
|
+
* Set on a `failed` steer rejection the provider may still have received (a restart cut off its
|
|
4265
|
+
* delivery). Clients hold such a message for an explicit retry or removal instead of sending it
|
|
4266
|
+
* again as the next turn. An optional flag rather than a third reason, so older clients that
|
|
4267
|
+
* decode the event keep working and read it as a plain failure.
|
|
4268
|
+
*/
|
|
4269
|
+
const TurnSteerDeliveryUncertain = effect.Schema.optionalKey(effect.Schema.Boolean);
|
|
4055
4270
|
const OrchestrationMessage = effect.Schema.Struct({
|
|
4056
4271
|
id: MessageId,
|
|
4057
4272
|
role: OrchestrationMessageRole,
|
|
@@ -4142,6 +4357,31 @@ const OrchestrationLatestTurnState = effect.Schema.Literals([
|
|
|
4142
4357
|
"completed",
|
|
4143
4358
|
"error"
|
|
4144
4359
|
]);
|
|
4360
|
+
/**
|
|
4361
|
+
* Frozen set of states a turn can end in. New outcomes (for example usage limits)
|
|
4362
|
+
* go into `reason` or a separate field, never into this literal set.
|
|
4363
|
+
*/
|
|
4364
|
+
const OrchestrationTerminalTurnState = effect.Schema.Literals([
|
|
4365
|
+
"completed",
|
|
4366
|
+
"error",
|
|
4367
|
+
"interrupted"
|
|
4368
|
+
]);
|
|
4369
|
+
/** Server-internal: what the caller knows about how the active turn ended. */
|
|
4370
|
+
const OrchestrationTurnOutcome = effect.Schema.Struct({
|
|
4371
|
+
/** Omitted = "the turn this release ends", whichever it is. */
|
|
4372
|
+
turnId: effect.Schema.optional(TurnId),
|
|
4373
|
+
state: OrchestrationTerminalTurnState,
|
|
4374
|
+
/** Open diagnostic string (see TURN_FINALIZATION_REASON). Never a closed literal set. */
|
|
4375
|
+
reason: TrimmedNonEmptyString,
|
|
4376
|
+
completedAt: effect.Schema.optional(IsoDateTime)
|
|
4377
|
+
});
|
|
4378
|
+
/** Decided by the server: the turn this session-set releases, and how it ended. */
|
|
4379
|
+
const OrchestrationReleasedTurn = effect.Schema.Struct({
|
|
4380
|
+
turnId: TurnId,
|
|
4381
|
+
state: OrchestrationTerminalTurnState,
|
|
4382
|
+
completedAt: IsoDateTime,
|
|
4383
|
+
reason: TrimmedNonEmptyString
|
|
4384
|
+
});
|
|
4145
4385
|
const OrchestrationLatestTurn = effect.Schema.Struct({
|
|
4146
4386
|
userMessageId: effect.Schema.optional(MessageId),
|
|
4147
4387
|
turnId: TurnId,
|
|
@@ -4152,6 +4392,42 @@ const OrchestrationLatestTurn = effect.Schema.Struct({
|
|
|
4152
4392
|
assistantMessageId: effect.Schema.NullOr(MessageId),
|
|
4153
4393
|
sourceProposedPlan: effect.Schema.optional(SourceProposedPlanReference)
|
|
4154
4394
|
});
|
|
4395
|
+
const ThreadUsageLimitId = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(512));
|
|
4396
|
+
/**
|
|
4397
|
+
* A provider usage limit stopped this thread's turn. Durable until a turn starts, the
|
|
4398
|
+
* thread is archived or reverted; it only gates the thread while
|
|
4399
|
+
* `modelSelection.instanceId === providerInstanceId`.
|
|
4400
|
+
*/
|
|
4401
|
+
const ThreadUsageLimit = effect.Schema.Struct({
|
|
4402
|
+
/** "usage-limit:<threadId>:<turnId>" */
|
|
4403
|
+
limitId: ThreadUsageLimitId,
|
|
4404
|
+
provider: ProviderDriverKind,
|
|
4405
|
+
providerInstanceId: ProviderInstanceId,
|
|
4406
|
+
turnId: TurnId,
|
|
4407
|
+
message: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(1e3)),
|
|
4408
|
+
limitedAt: IsoDateTime,
|
|
4409
|
+
resetAt: effect.Schema.NullOr(IsoDateTime),
|
|
4410
|
+
/** null follows ServerSettings.autoResumeLimitedThreads; a boolean is an explicit per-thread override. */
|
|
4411
|
+
autoResume: effect.Schema.NullOr(effect.Schema.Boolean),
|
|
4412
|
+
updatedAt: IsoDateTime
|
|
4413
|
+
});
|
|
4414
|
+
/** Accepts the resume turn only while this exact limit is still recorded and idle. */
|
|
4415
|
+
const UsageLimitResumeGuard = effect.Schema.Struct({
|
|
4416
|
+
limitId: ThreadUsageLimitId,
|
|
4417
|
+
origin: effect.Schema.Literals(["auto", "manual"])
|
|
4418
|
+
});
|
|
4419
|
+
/**
|
|
4420
|
+
* Server-owned provenance of a thread created on behalf of another thread.
|
|
4421
|
+
* Absent on root threads. Immutable for a thread incarnation. Never authority.
|
|
4422
|
+
* `relationship` is deliberately an open string: a newer server may add kinds
|
|
4423
|
+
* without failing older clients' shell decode. Clients must treat values they
|
|
4424
|
+
* do not know as "no known relationship". Known values: "delegated".
|
|
4425
|
+
*/
|
|
4426
|
+
const ThreadLineage = effect.Schema.Struct({
|
|
4427
|
+
parentThreadId: ThreadId,
|
|
4428
|
+
rootThreadId: ThreadId,
|
|
4429
|
+
relationship: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(64))
|
|
4430
|
+
});
|
|
4155
4431
|
const OrchestrationThread = effect.Schema.Struct({
|
|
4156
4432
|
id: ThreadId,
|
|
4157
4433
|
projectId: ProjectId,
|
|
@@ -4167,6 +4443,8 @@ const OrchestrationThread = effect.Schema.Struct({
|
|
|
4167
4443
|
manualPosition: effect.Schema.optional(effect.Schema.Number),
|
|
4168
4444
|
latestTurn: effect.Schema.NullOr(OrchestrationLatestTurn),
|
|
4169
4445
|
goal: effect.Schema.optional(effect.Schema.NullOr(ThreadGoal)).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
|
|
4446
|
+
/** Server-owned provenance; absent on root threads and from older servers. */
|
|
4447
|
+
lineage: effect.Schema.optional(effect.Schema.NullOr(ThreadLineage)),
|
|
4170
4448
|
createdAt: IsoDateTime,
|
|
4171
4449
|
updatedAt: IsoDateTime,
|
|
4172
4450
|
archivedAt: effect.Schema.NullOr(IsoDateTime).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
|
|
@@ -4174,14 +4452,25 @@ const OrchestrationThread = effect.Schema.Struct({
|
|
|
4174
4452
|
settledAt: effect.Schema.NullOr(IsoDateTime).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
|
|
4175
4453
|
snoozedUntil: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
|
|
4176
4454
|
snoozedAt: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
|
|
4455
|
+
/** Optional so mixed-version snapshots decode; older clients strip it. */
|
|
4456
|
+
usageLimit: effect.Schema.optional(effect.Schema.NullOr(ThreadUsageLimit)),
|
|
4457
|
+
/**
|
|
4458
|
+
* Hidden from every live view. A trashed thread also carries `trashedAt` and keeps
|
|
4459
|
+
* its history and assets; without `trashedAt` the deletion is permanent.
|
|
4460
|
+
*/
|
|
4177
4461
|
deletedAt: effect.Schema.NullOr(IsoDateTime),
|
|
4462
|
+
trashedAt: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
|
|
4178
4463
|
messages: effect.Schema.Array(OrchestrationMessage),
|
|
4179
4464
|
proposedPlans: effect.Schema.Array(OrchestrationProposedPlan).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed([]))),
|
|
4180
4465
|
activities: effect.Schema.Array(OrchestrationThreadActivity),
|
|
4181
4466
|
checkpoints: effect.Schema.Array(OrchestrationCheckpointSummary),
|
|
4182
4467
|
session: effect.Schema.NullOr(OrchestrationSession)
|
|
4183
4468
|
});
|
|
4184
|
-
const OrchestrationWorktreeShell =
|
|
4469
|
+
const OrchestrationWorktreeShell = effect.Schema.Struct({
|
|
4470
|
+
...Worktree.fields,
|
|
4471
|
+
/** Retired managed path, so persisted drafts can retarget after a cold reconnect. */
|
|
4472
|
+
relocatedFromPath: effect.Schema.optional(effect.Schema.NullOr(TrimmedNonEmptyString))
|
|
4473
|
+
});
|
|
4185
4474
|
const OrchestrationReadModel = effect.Schema.Struct({
|
|
4186
4475
|
snapshotSequence: NonNegativeInt,
|
|
4187
4476
|
projects: effect.Schema.Array(OrchestrationProject),
|
|
@@ -4191,6 +4480,7 @@ const OrchestrationReadModel = effect.Schema.Struct({
|
|
|
4191
4480
|
});
|
|
4192
4481
|
const OrchestrationProjectShell = effect.Schema.Struct({
|
|
4193
4482
|
id: ProjectId,
|
|
4483
|
+
kind: OptionalProjectKind,
|
|
4194
4484
|
title: TrimmedNonEmptyString,
|
|
4195
4485
|
workspaceRoot: TrimmedNonEmptyString,
|
|
4196
4486
|
projectMetadataDir: effect.Schema.optional(ProjectMetadataDir).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_PROJECT_METADATA_DIR))),
|
|
@@ -4236,6 +4526,8 @@ const OrchestrationThreadShell = effect.Schema.Struct({
|
|
|
4236
4526
|
settledAt: effect.Schema.NullOr(IsoDateTime).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(null))),
|
|
4237
4527
|
snoozedUntil: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
|
|
4238
4528
|
snoozedAt: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
|
|
4529
|
+
/** Optional so mixed-version snapshots decode; older clients strip it. */
|
|
4530
|
+
usageLimit: effect.Schema.optional(effect.Schema.NullOr(ThreadUsageLimit)),
|
|
4239
4531
|
session: effect.Schema.NullOr(OrchestrationSession),
|
|
4240
4532
|
latestUserMessageAt: effect.Schema.NullOr(IsoDateTime),
|
|
4241
4533
|
/** Last successful turn that is no longer active; absent on older servers. */
|
|
@@ -4249,6 +4541,8 @@ const OrchestrationThreadShell = effect.Schema.Struct({
|
|
|
4249
4541
|
* live work. Optional so old servers/clients interop; absent = none.
|
|
4250
4542
|
*/
|
|
4251
4543
|
backgroundLiveness: effect.Schema.optional(effect.Schema.NullOr(effect.Schema.Literals(["working", "monitoring"]))),
|
|
4544
|
+
/** Server-owned provenance; absent on root threads and from older servers. */
|
|
4545
|
+
lineage: effect.Schema.optional(effect.Schema.NullOr(ThreadLineage)),
|
|
4252
4546
|
priority: effect.Schema.optional(ThreadPriorityProjectedRanking)
|
|
4253
4547
|
});
|
|
4254
4548
|
const OrchestrationShellSnapshot = effect.Schema.Struct({
|
|
@@ -4279,6 +4573,13 @@ const OrchestrationShellStreamEvent = effect.Schema.Union([
|
|
|
4279
4573
|
sequence: NonNegativeInt,
|
|
4280
4574
|
worktree: OrchestrationWorktreeShell
|
|
4281
4575
|
}),
|
|
4576
|
+
effect.Schema.Struct({
|
|
4577
|
+
kind: effect.Schema.Literal("worktree-relocated"),
|
|
4578
|
+
sequence: NonNegativeInt,
|
|
4579
|
+
worktree: OrchestrationWorktreeShell,
|
|
4580
|
+
sourcePath: TrimmedNonEmptyString,
|
|
4581
|
+
destinationPath: TrimmedNonEmptyString
|
|
4582
|
+
}),
|
|
4282
4583
|
effect.Schema.Struct({
|
|
4283
4584
|
kind: effect.Schema.Literal("thread-removed"),
|
|
4284
4585
|
sequence: NonNegativeInt,
|
|
@@ -4360,7 +4661,13 @@ const OrchestrationSubscribeThreadWindowInput = effect.Schema.Struct({
|
|
|
4360
4661
|
const OrchestrationThreadWindowSnapshot = effect.Schema.Struct({
|
|
4361
4662
|
snapshotSequence: NonNegativeInt,
|
|
4362
4663
|
thread: OrchestrationThread,
|
|
4363
|
-
history: OrchestrationThreadHistoryState
|
|
4664
|
+
history: OrchestrationThreadHistoryState,
|
|
4665
|
+
/**
|
|
4666
|
+
* The directory the thread's next turn runs in (its worktree, else its project root), as the
|
|
4667
|
+
* server resolves it when starting a provider session. Absent from older servers and when the
|
|
4668
|
+
* thread has no resolvable project.
|
|
4669
|
+
*/
|
|
4670
|
+
workspaceCwd: effect.Schema.optional(TrimmedNonEmptyString)
|
|
4364
4671
|
});
|
|
4365
4672
|
const OrchestrationThreadHistoryPageMode = effect.Schema.Struct({
|
|
4366
4673
|
kind: effect.Schema.Literal("before"),
|
|
@@ -4424,6 +4731,8 @@ const ProjectCreateCommand = effect.Schema.Struct({
|
|
|
4424
4731
|
type: effect.Schema.Literal("project.create"),
|
|
4425
4732
|
commandId: CommandId,
|
|
4426
4733
|
projectId: ProjectId,
|
|
4734
|
+
/** Absent creates a regular project. */
|
|
4735
|
+
kind: effect.Schema.optional(ProjectKind),
|
|
4427
4736
|
title: TrimmedNonEmptyString,
|
|
4428
4737
|
workspaceRoot: TrimmedNonEmptyString,
|
|
4429
4738
|
projectMetadataDir: effect.Schema.optional(ProjectMetadataDir).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_PROJECT_METADATA_DIR))),
|
|
@@ -4439,6 +4748,8 @@ const ProjectMetaUpdateCommand = effect.Schema.Struct({
|
|
|
4439
4748
|
projectId: ProjectId,
|
|
4440
4749
|
/** Optional compare-and-set guard used by governed mutation flows. */
|
|
4441
4750
|
expectedUpdatedAt: effect.Schema.optional(IsoDateTime),
|
|
4751
|
+
/** Only `chat` -> `project` (promotion) is accepted; the same kind is a no-op. */
|
|
4752
|
+
kind: effect.Schema.optional(ProjectKind),
|
|
4442
4753
|
title: effect.Schema.optional(TrimmedNonEmptyString),
|
|
4443
4754
|
workspaceRoot: effect.Schema.optional(TrimmedNonEmptyString),
|
|
4444
4755
|
projectMetadataDir: effect.Schema.optional(ProjectMetadataDir),
|
|
@@ -4477,11 +4788,29 @@ const ThreadCreateCommand = effect.Schema.Struct({
|
|
|
4477
4788
|
worktreePath: effect.Schema.NullOr(TrimmedNonEmptyString),
|
|
4478
4789
|
createdAt: IsoDateTime
|
|
4479
4790
|
});
|
|
4791
|
+
/** Server-originated only (Agent Control). Never part of ClientOrchestrationCommand. */
|
|
4792
|
+
const ThreadDelegatedCreateCommand = effect.Schema.Struct({
|
|
4793
|
+
...ThreadCreateCommand.fields,
|
|
4794
|
+
type: effect.Schema.Literal("thread.delegated.create"),
|
|
4795
|
+
parentThreadId: ThreadId
|
|
4796
|
+
});
|
|
4797
|
+
/** Permanent deletion. Only a trashed (or never-used) thread can be deleted. */
|
|
4480
4798
|
const ThreadDeleteCommand = effect.Schema.Struct({
|
|
4481
4799
|
type: effect.Schema.Literal("thread.delete"),
|
|
4482
4800
|
commandId: CommandId,
|
|
4483
4801
|
threadId: ThreadId
|
|
4484
4802
|
});
|
|
4803
|
+
/** Recoverable removal: hidden everywhere, history and assets preserved. */
|
|
4804
|
+
const ThreadTrashCommand = effect.Schema.Struct({
|
|
4805
|
+
type: effect.Schema.Literal("thread.trash"),
|
|
4806
|
+
commandId: CommandId,
|
|
4807
|
+
threadId: ThreadId
|
|
4808
|
+
});
|
|
4809
|
+
const ThreadUntrashCommand = effect.Schema.Struct({
|
|
4810
|
+
type: effect.Schema.Literal("thread.untrash"),
|
|
4811
|
+
commandId: CommandId,
|
|
4812
|
+
threadId: ThreadId
|
|
4813
|
+
});
|
|
4485
4814
|
const ThreadArchiveCommand = effect.Schema.Struct({
|
|
4486
4815
|
type: effect.Schema.Literal("thread.archive"),
|
|
4487
4816
|
commandId: CommandId,
|
|
@@ -4509,6 +4838,15 @@ const ThreadUnsnoozeCommand = effect.Schema.Struct({
|
|
|
4509
4838
|
commandId: CommandId,
|
|
4510
4839
|
threadId: ThreadId
|
|
4511
4840
|
});
|
|
4841
|
+
/** Per-thread auto-resume override for the thread's current usage limit. */
|
|
4842
|
+
const ThreadUsageLimitConfigureCommand = effect.Schema.Struct({
|
|
4843
|
+
type: effect.Schema.Literal("thread.usage-limit.configure"),
|
|
4844
|
+
commandId: CommandId,
|
|
4845
|
+
threadId: ThreadId,
|
|
4846
|
+
limitId: ThreadUsageLimitId,
|
|
4847
|
+
autoResume: effect.Schema.NullOr(effect.Schema.Boolean),
|
|
4848
|
+
createdAt: IsoDateTime
|
|
4849
|
+
});
|
|
4512
4850
|
const ThreadSettleCommand = effect.Schema.Struct({
|
|
4513
4851
|
type: effect.Schema.Literal("thread.settle"),
|
|
4514
4852
|
commandId: CommandId,
|
|
@@ -4581,36 +4919,81 @@ const ThreadTurnStartBootstrapPrepareWorktree = effect.Schema.Struct({
|
|
|
4581
4919
|
baseBranch: TrimmedNonEmptyString,
|
|
4582
4920
|
branch: effect.Schema.optional(TrimmedNonEmptyString)
|
|
4583
4921
|
});
|
|
4922
|
+
/**
|
|
4923
|
+
* Shown when work (a turn, provider session, terminal or file write) is refused because the chat's
|
|
4924
|
+
* folder is moving into a project. The move settles in moments, so retrying shortly succeeds.
|
|
4925
|
+
*/
|
|
4926
|
+
const PROJECT_RELOCATION_PENDING_MESSAGE = "This chat is being moved into a project. Try again in a moment.";
|
|
4927
|
+
/**
|
|
4928
|
+
* First send of a "No project" chat. The server, not the client, allocates the chat folder
|
|
4929
|
+
* under its chats root, creates a `chat` project with `projectId` there, and then continues
|
|
4930
|
+
* with `createThread` for that project. Mutually exclusive with `prepareWorktree` and
|
|
4931
|
+
* `requireWorktree`: a chat folder is a plain directory, never a Git worktree.
|
|
4932
|
+
*/
|
|
4933
|
+
const ThreadTurnStartBootstrapCreateChatProject = effect.Schema.Struct({
|
|
4934
|
+
projectId: ProjectId,
|
|
4935
|
+
/** Seeds the chat title and its folder name; the folder name never changes afterwards. */
|
|
4936
|
+
titleSeed: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(200))
|
|
4937
|
+
});
|
|
4584
4938
|
const ThreadTurnStartBootstrap = effect.Schema.Struct({
|
|
4585
4939
|
/** Reject a turn unless this bootstrap creates a fresh isolated Git worktree. */
|
|
4586
4940
|
requireWorktree: effect.Schema.optional(effect.Schema.Boolean),
|
|
4941
|
+
createChatProject: effect.Schema.optional(ThreadTurnStartBootstrapCreateChatProject),
|
|
4587
4942
|
createThread: effect.Schema.optional(ThreadTurnStartBootstrapCreateThread),
|
|
4588
4943
|
prepareWorktree: effect.Schema.optional(ThreadTurnStartBootstrapPrepareWorktree),
|
|
4589
4944
|
runSetupScript: effect.Schema.optional(effect.Schema.Boolean)
|
|
4590
|
-
})
|
|
4591
|
-
|
|
4945
|
+
}).check(effect.Schema.makeFilter((bootstrap) => {
|
|
4946
|
+
if (bootstrap.createChatProject === void 0) return void 0;
|
|
4947
|
+
if (bootstrap.prepareWorktree !== void 0 || bootstrap.requireWorktree === true) return "A chat without a project cannot also prepare a Git worktree";
|
|
4948
|
+
if (bootstrap.createThread?.projectId !== bootstrap.createChatProject.projectId) return "A chat without a project must create its first thread in that chat";
|
|
4949
|
+
}));
|
|
4950
|
+
/**
|
|
4951
|
+
* Delegated-result wake fence. Legacy fields (`turnMessageId`, `turnId`, `runtimeSessionId`,
|
|
4952
|
+
* `providerInstanceId`) are decoded for stored events and ledger commands and ignored.
|
|
4953
|
+
*/
|
|
4592
4954
|
const DelegationReturnGuard = effect.Schema.Struct({
|
|
4593
|
-
turnMessageId: MessageId,
|
|
4594
4955
|
latestUserMessageId: effect.Schema.NullOr(MessageId),
|
|
4595
4956
|
projectId: ProjectId,
|
|
4596
|
-
turnId: TurnId,
|
|
4597
|
-
runtimeSessionId: RuntimeSessionId,
|
|
4598
|
-
providerInstanceId: ProviderInstanceId,
|
|
4599
4957
|
runtimeMode: RuntimeMode,
|
|
4600
|
-
worktreePath: effect.Schema.NullOr(effect.Schema.String)
|
|
4958
|
+
worktreePath: effect.Schema.NullOr(effect.Schema.String),
|
|
4959
|
+
turnMessageId: effect.Schema.optional(MessageId),
|
|
4960
|
+
turnId: effect.Schema.optional(TurnId),
|
|
4961
|
+
runtimeSessionId: effect.Schema.optional(RuntimeSessionId),
|
|
4962
|
+
providerInstanceId: effect.Schema.optional(ProviderInstanceId)
|
|
4601
4963
|
});
|
|
4602
4964
|
const ClaudeResumeGuard = effect.Schema.Struct({
|
|
4603
4965
|
requireReady: effect.Schema.Boolean,
|
|
4604
|
-
|
|
4966
|
+
/**
|
|
4967
|
+
* The runtime the review saw. Null when the session had none (it was stopped): the send is
|
|
4968
|
+
* then accepted only while still no runtime is bound, so the review stays current until the
|
|
4969
|
+
* next turn starts one.
|
|
4970
|
+
*/
|
|
4971
|
+
runtimeSessionId: effect.Schema.NullOr(RuntimeSessionId),
|
|
4605
4972
|
latestTurnId: effect.Schema.NullOr(TurnId),
|
|
4606
4973
|
modelSelection: ModelSelection
|
|
4607
4974
|
});
|
|
4975
|
+
/**
|
|
4976
|
+
* Server-only optimistic fence for an automatic continuation after a restart. Never part
|
|
4977
|
+
* of `ClientThreadTurnStartCommand`: client decode strips it, so it cannot be forged.
|
|
4978
|
+
*/
|
|
4979
|
+
const RestartContinuationGuard = effect.Schema.Struct({
|
|
4980
|
+
sourceTurnId: TurnId,
|
|
4981
|
+
expectedLatestTurnState: effect.Schema.Literals(["interrupted", "completed"]),
|
|
4982
|
+
latestUserMessageId: effect.Schema.NullOr(MessageId),
|
|
4983
|
+
modelSelection: ModelSelection,
|
|
4984
|
+
runtimeMode: RuntimeMode,
|
|
4985
|
+
interactionMode: ProviderInteractionMode,
|
|
4986
|
+
worktreePath: effect.Schema.NullOr(effect.Schema.String),
|
|
4987
|
+
providerInstanceId: ProviderInstanceId
|
|
4988
|
+
});
|
|
4608
4989
|
const ThreadTurnStartCommand = effect.Schema.Struct({
|
|
4609
4990
|
claudeResumeGuard: effect.Schema.optional(ClaudeResumeGuard),
|
|
4991
|
+
restartContinuationGuard: effect.Schema.optional(RestartContinuationGuard),
|
|
4610
4992
|
computerUse: effect.Schema.optionalKey(ComputerTurnIntent),
|
|
4611
4993
|
projectMemory: effect.Schema.optional(effect.Schema.Never),
|
|
4612
4994
|
type: effect.Schema.Literal("thread.turn.start"),
|
|
4613
4995
|
delegationReturnGuard: effect.Schema.optional(DelegationReturnGuard),
|
|
4996
|
+
usageLimitResumeGuard: effect.Schema.optional(UsageLimitResumeGuard),
|
|
4614
4997
|
commandId: CommandId,
|
|
4615
4998
|
threadId: ThreadId,
|
|
4616
4999
|
message: effect.Schema.Struct({
|
|
@@ -4636,6 +5019,7 @@ const ClientThreadTurnStartCommand = effect.Schema.Struct({
|
|
|
4636
5019
|
projectMemory: effect.Schema.optional(effect.Schema.Never),
|
|
4637
5020
|
type: effect.Schema.Literal("thread.turn.start"),
|
|
4638
5021
|
delegationReturnGuard: effect.Schema.optional(DelegationReturnGuard),
|
|
5022
|
+
usageLimitResumeGuard: effect.Schema.optional(UsageLimitResumeGuard),
|
|
4639
5023
|
commandId: CommandId,
|
|
4640
5024
|
threadId: ThreadId,
|
|
4641
5025
|
message: effect.Schema.Struct({
|
|
@@ -4778,6 +5162,8 @@ const WorktreeSourceControlStateUpdateCommand = effect.Schema.Struct({
|
|
|
4778
5162
|
prTitle: effect.Schema.optional(effect.Schema.NullOr(TrimmedNonEmptyString)),
|
|
4779
5163
|
prState: effect.Schema.NullOr(PullRequestState),
|
|
4780
5164
|
prIsDraft: effect.Schema.NullOr(effect.Schema.Boolean),
|
|
5165
|
+
/** When the PR reached its current merged/closed state; see `Worktree.prTerminalAt`. */
|
|
5166
|
+
prTerminalAt: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
|
|
4781
5167
|
issueState: effect.Schema.NullOr(IssueState),
|
|
4782
5168
|
updatedAt: IsoDateTime
|
|
4783
5169
|
});
|
|
@@ -4789,6 +5175,11 @@ const WorktreeRestoreCommand = effect.Schema.Struct({
|
|
|
4789
5175
|
worktreePath: effect.Schema.optional(effect.Schema.NullOr(TrimmedNonEmptyString)),
|
|
4790
5176
|
restoredAt: IsoDateTime
|
|
4791
5177
|
});
|
|
5178
|
+
/**
|
|
5179
|
+
* Drops a workspace record. Never touches conversations: the decider refuses while
|
|
5180
|
+
* any conversation (active, archived or trashed) still references the record.
|
|
5181
|
+
* `sessions` is decoded for stored commands only; "delete" is always refused.
|
|
5182
|
+
*/
|
|
4792
5183
|
const WorktreeDeleteCommand = effect.Schema.Struct({
|
|
4793
5184
|
sessions: effect.Schema.optional(effect.Schema.Literals(["preserve", "delete"])),
|
|
4794
5185
|
type: effect.Schema.Literal("worktree.delete"),
|
|
@@ -4798,6 +5189,37 @@ const WorktreeDeleteCommand = effect.Schema.Struct({
|
|
|
4798
5189
|
deletedAt: IsoDateTime,
|
|
4799
5190
|
deletedBranch: effect.Schema.Boolean
|
|
4800
5191
|
});
|
|
5192
|
+
/**
|
|
5193
|
+
* Server-only (workspace lifecycle service): records that the physical checkout is
|
|
5194
|
+
* gone. Archives the record when it is still active; the path and branch stay.
|
|
5195
|
+
*/
|
|
5196
|
+
const WorktreeCheckoutRemoveCommand = effect.Schema.Struct({
|
|
5197
|
+
type: effect.Schema.Literal("worktree.checkout.remove"),
|
|
5198
|
+
commandId: CommandId,
|
|
5199
|
+
worktreeId: WorktreeId,
|
|
5200
|
+
reason: WorktreeCheckoutRemovalReason,
|
|
5201
|
+
lifecycleGuard: effect.Schema.optional(WorktreeLifecycleGuard),
|
|
5202
|
+
removedAt: IsoDateTime
|
|
5203
|
+
});
|
|
5204
|
+
/** Server-only: the checkout was recreated at its recorded path. */
|
|
5205
|
+
const WorktreeCheckoutRestoreCommand = effect.Schema.Struct({
|
|
5206
|
+
type: effect.Schema.Literal("worktree.checkout.restore"),
|
|
5207
|
+
commandId: CommandId,
|
|
5208
|
+
worktreeId: WorktreeId,
|
|
5209
|
+
worktreePath: TrimmedNonEmptyString,
|
|
5210
|
+
restoredAt: IsoDateTime
|
|
5211
|
+
});
|
|
5212
|
+
/** Server-only: a verified managed checkout moved under workspace lifecycle admission. */
|
|
5213
|
+
const WorktreeRelocateCommand = effect.Schema.Struct({
|
|
5214
|
+
type: effect.Schema.Literal("worktree.relocate"),
|
|
5215
|
+
commandId: CommandId,
|
|
5216
|
+
worktreeId: WorktreeId,
|
|
5217
|
+
projectId: ProjectId,
|
|
5218
|
+
sourcePath: TrimmedNonEmptyString,
|
|
5219
|
+
destinationPath: TrimmedNonEmptyString,
|
|
5220
|
+
expectedUpdatedAt: IsoDateTime,
|
|
5221
|
+
relocatedAt: IsoDateTime
|
|
5222
|
+
});
|
|
4801
5223
|
const ThreadAttachToWorktreeCommand = effect.Schema.Struct({
|
|
4802
5224
|
type: effect.Schema.Literal("thread.attach-to-worktree"),
|
|
4803
5225
|
commandId: CommandId,
|
|
@@ -4833,11 +5255,14 @@ const DispatchableClientOrchestrationCommand = effect.Schema.Union([
|
|
|
4833
5255
|
ProjectDeleteCommand,
|
|
4834
5256
|
ThreadCreateCommand,
|
|
4835
5257
|
ThreadDeleteCommand,
|
|
5258
|
+
ThreadTrashCommand,
|
|
5259
|
+
ThreadUntrashCommand,
|
|
4836
5260
|
ThreadArchiveCommand,
|
|
4837
5261
|
ThreadSidebarUndoCommand,
|
|
4838
5262
|
ThreadUnarchiveCommand,
|
|
4839
5263
|
ThreadSnoozeCommand,
|
|
4840
5264
|
ThreadUnsnoozeCommand,
|
|
5265
|
+
ThreadUsageLimitConfigureCommand,
|
|
4841
5266
|
ThreadSettleCommand,
|
|
4842
5267
|
ThreadUnsettleCommand,
|
|
4843
5268
|
ThreadMetaUpdateCommand,
|
|
@@ -4871,11 +5296,14 @@ const ClientOrchestrationCommand = effect.Schema.Union([
|
|
|
4871
5296
|
ProjectDeleteCommand,
|
|
4872
5297
|
ThreadCreateCommand,
|
|
4873
5298
|
ThreadDeleteCommand,
|
|
5299
|
+
ThreadTrashCommand,
|
|
5300
|
+
ThreadUntrashCommand,
|
|
4874
5301
|
ThreadArchiveCommand,
|
|
4875
5302
|
ThreadSidebarUndoCommand,
|
|
4876
5303
|
ThreadUnarchiveCommand,
|
|
4877
5304
|
ThreadSnoozeCommand,
|
|
4878
5305
|
ThreadUnsnoozeCommand,
|
|
5306
|
+
ThreadUsageLimitConfigureCommand,
|
|
4879
5307
|
ThreadSettleCommand,
|
|
4880
5308
|
ThreadUnsettleCommand,
|
|
4881
5309
|
ThreadMetaUpdateCommand,
|
|
@@ -4902,11 +5330,25 @@ const ClientOrchestrationCommand = effect.Schema.Union([
|
|
|
4902
5330
|
ThreadManualPositionSetCommand,
|
|
4903
5331
|
WorktreeManualPositionSetCommand
|
|
4904
5332
|
]);
|
|
5333
|
+
/**
|
|
5334
|
+
* The runtime a provider-originated session update comes from. The update applies only while
|
|
5335
|
+
* the thread's session is still bound to exactly this provider instance and runtime (null: none),
|
|
5336
|
+
* so a late lifecycle event of a replaced runtime can never overwrite its successor, whatever
|
|
5337
|
+
* order the two writes reach the engine in.
|
|
5338
|
+
*/
|
|
5339
|
+
const ThreadSessionSetExpectedRuntime = effect.Schema.Struct({
|
|
5340
|
+
providerInstanceId: effect.Schema.NullOr(ProviderInstanceId),
|
|
5341
|
+
runtimeSessionId: effect.Schema.NullOr(RuntimeSessionId)
|
|
5342
|
+
});
|
|
4905
5343
|
const ThreadSessionSetCommand = effect.Schema.Struct({
|
|
4906
5344
|
type: effect.Schema.Literal("thread.session.set"),
|
|
4907
5345
|
commandId: CommandId,
|
|
4908
5346
|
threadId: ThreadId,
|
|
4909
5347
|
session: OrchestrationSession,
|
|
5348
|
+
/** Server-internal precondition; absent for server-decided transitions (bind, stop, restart). */
|
|
5349
|
+
expectedRuntime: effect.Schema.optional(ThreadSessionSetExpectedRuntime),
|
|
5350
|
+
/** Internal hint: how the turn this session-set releases ended, when the caller knows. */
|
|
5351
|
+
turnOutcome: effect.Schema.optional(OrchestrationTurnOutcome),
|
|
4910
5352
|
createdAt: IsoDateTime
|
|
4911
5353
|
});
|
|
4912
5354
|
const ThreadMessageAssistantDeltaCommand = effect.Schema.Struct({
|
|
@@ -4991,6 +5433,8 @@ const ThreadTurnSteerResolveCommand = effect.Schema.Union([effect.Schema.Struct(
|
|
|
4991
5433
|
resolution: effect.Schema.Struct({
|
|
4992
5434
|
status: effect.Schema.Literal("rejected"),
|
|
4993
5435
|
error: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(1e3)),
|
|
5436
|
+
reason: effect.Schema.optionalKey(TurnSteerRejectionReason),
|
|
5437
|
+
deliveryUncertain: TurnSteerDeliveryUncertain,
|
|
4994
5438
|
resolvedAt: IsoDateTime
|
|
4995
5439
|
})
|
|
4996
5440
|
})]);
|
|
@@ -4999,6 +5443,8 @@ const ThreadRevertCompleteCommand = effect.Schema.Struct({
|
|
|
4999
5443
|
commandId: CommandId,
|
|
5000
5444
|
threadId: ThreadId,
|
|
5001
5445
|
turnCount: NonNegativeInt,
|
|
5446
|
+
droppedTurnIds: effect.Schema.optional(effect.Schema.Array(TurnId)),
|
|
5447
|
+
latestTurn: effect.Schema.optional(effect.Schema.NullOr(OrchestrationLatestTurn)),
|
|
5002
5448
|
createdAt: IsoDateTime
|
|
5003
5449
|
});
|
|
5004
5450
|
const ThreadGoalSyncCommand = effect.Schema.Struct({
|
|
@@ -5009,6 +5455,19 @@ const ThreadGoalSyncCommand = effect.Schema.Struct({
|
|
|
5009
5455
|
expectedRequestId: effect.Schema.optional(effect.Schema.String),
|
|
5010
5456
|
createdAt: IsoDateTime
|
|
5011
5457
|
});
|
|
5458
|
+
/** Internal only: clients must never be able to forge a usage limit. */
|
|
5459
|
+
const ThreadUsageLimitRecordCommand = effect.Schema.Struct({
|
|
5460
|
+
type: effect.Schema.Literal("thread.usage-limit.record"),
|
|
5461
|
+
commandId: CommandId,
|
|
5462
|
+
threadId: ThreadId,
|
|
5463
|
+
limitId: ThreadUsageLimitId,
|
|
5464
|
+
provider: ProviderDriverKind,
|
|
5465
|
+
providerInstanceId: ProviderInstanceId,
|
|
5466
|
+
turnId: TurnId,
|
|
5467
|
+
message: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(1e3)),
|
|
5468
|
+
resetAt: effect.Schema.NullOr(IsoDateTime),
|
|
5469
|
+
createdAt: IsoDateTime
|
|
5470
|
+
});
|
|
5012
5471
|
const ThreadGoalProviderClearCommand = effect.Schema.Struct({
|
|
5013
5472
|
type: effect.Schema.Literal("thread.goal.provider-clear"),
|
|
5014
5473
|
commandId: CommandId,
|
|
@@ -5017,6 +5476,7 @@ const ThreadGoalProviderClearCommand = effect.Schema.Struct({
|
|
|
5017
5476
|
createdAt: IsoDateTime
|
|
5018
5477
|
});
|
|
5019
5478
|
const InternalOrchestrationCommand = effect.Schema.Union([
|
|
5479
|
+
ThreadDelegatedCreateCommand,
|
|
5020
5480
|
effect.Schema.Struct({
|
|
5021
5481
|
...ThreadCreateCommand.fields,
|
|
5022
5482
|
type: effect.Schema.Literal("thread.history.import"),
|
|
@@ -5046,7 +5506,11 @@ const InternalOrchestrationCommand = effect.Schema.Union([
|
|
|
5046
5506
|
ThreadTurnSteerResolveCommand,
|
|
5047
5507
|
ThreadRevertCompleteCommand,
|
|
5048
5508
|
ThreadGoalSyncCommand,
|
|
5049
|
-
ThreadGoalProviderClearCommand
|
|
5509
|
+
ThreadGoalProviderClearCommand,
|
|
5510
|
+
ThreadUsageLimitRecordCommand,
|
|
5511
|
+
WorktreeCheckoutRemoveCommand,
|
|
5512
|
+
WorktreeCheckoutRestoreCommand,
|
|
5513
|
+
WorktreeRelocateCommand
|
|
5050
5514
|
]);
|
|
5051
5515
|
const OrchestrationCommand = effect.Schema.Union([DispatchableClientOrchestrationCommand, InternalOrchestrationCommand]);
|
|
5052
5516
|
const OrchestrationEventType = effect.Schema.Literals([
|
|
@@ -5056,12 +5520,16 @@ const OrchestrationEventType = effect.Schema.Literals([
|
|
|
5056
5520
|
"project.deleted",
|
|
5057
5521
|
"thread.created",
|
|
5058
5522
|
"thread.deleted",
|
|
5523
|
+
"thread.trashed",
|
|
5524
|
+
"thread.untrashed",
|
|
5059
5525
|
"thread.archived",
|
|
5060
5526
|
"thread.unarchived",
|
|
5061
5527
|
"thread.snoozed",
|
|
5062
5528
|
"thread.unsnoozed",
|
|
5063
5529
|
"thread.settled",
|
|
5064
5530
|
"thread.unsettled",
|
|
5531
|
+
"thread.usage-limit-set",
|
|
5532
|
+
"thread.usage-limit-cleared",
|
|
5065
5533
|
"thread.meta-updated",
|
|
5066
5534
|
"thread.runtime-mode-set",
|
|
5067
5535
|
"thread.interaction-mode-set",
|
|
@@ -5090,6 +5558,9 @@ const OrchestrationEventType = effect.Schema.Literals([
|
|
|
5090
5558
|
"worktree.sourceControlStateUpdated",
|
|
5091
5559
|
"worktree.restored",
|
|
5092
5560
|
"worktree.deleted",
|
|
5561
|
+
"worktree.checkoutRemoved",
|
|
5562
|
+
"worktree.checkoutRestored",
|
|
5563
|
+
"worktree.relocated",
|
|
5093
5564
|
"thread.attachedToWorktree",
|
|
5094
5565
|
"thread.statusBucketOverridden",
|
|
5095
5566
|
"thread.manualPositionSet",
|
|
@@ -5107,6 +5578,7 @@ const OrchestrationActorKind = effect.Schema.Literals([
|
|
|
5107
5578
|
]);
|
|
5108
5579
|
const ProjectCreatedPayload = effect.Schema.Struct({
|
|
5109
5580
|
projectId: ProjectId,
|
|
5581
|
+
kind: OptionalProjectKind,
|
|
5110
5582
|
title: TrimmedNonEmptyString,
|
|
5111
5583
|
workspaceRoot: TrimmedNonEmptyString,
|
|
5112
5584
|
projectMetadataDir: effect.Schema.optional(ProjectMetadataDir).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_PROJECT_METADATA_DIR))),
|
|
@@ -5119,6 +5591,8 @@ const ProjectCreatedPayload = effect.Schema.Struct({
|
|
|
5119
5591
|
});
|
|
5120
5592
|
const ProjectMetaUpdatedPayload = effect.Schema.Struct({
|
|
5121
5593
|
projectId: ProjectId,
|
|
5594
|
+
/** Present only when the kind changed, which is always `chat` -> `project`. */
|
|
5595
|
+
kind: effect.Schema.optional(ProjectKind),
|
|
5122
5596
|
title: effect.Schema.optional(TrimmedNonEmptyString),
|
|
5123
5597
|
workspaceRoot: effect.Schema.optional(TrimmedNonEmptyString),
|
|
5124
5598
|
projectMetadataDir: effect.Schema.optional(ProjectMetadataDir),
|
|
@@ -5149,12 +5623,22 @@ const ThreadCreatedPayload = effect.Schema.Struct({
|
|
|
5149
5623
|
branch: effect.Schema.NullOr(TrimmedNonEmptyString),
|
|
5150
5624
|
worktreePath: effect.Schema.NullOr(TrimmedNonEmptyString),
|
|
5151
5625
|
createdAt: IsoDateTime,
|
|
5152
|
-
updatedAt: IsoDateTime
|
|
5626
|
+
updatedAt: IsoDateTime,
|
|
5627
|
+
lineage: effect.Schema.optional(ThreadLineage)
|
|
5153
5628
|
});
|
|
5154
5629
|
const ThreadDeletedPayload = effect.Schema.Struct({
|
|
5155
5630
|
threadId: ThreadId,
|
|
5156
5631
|
deletedAt: IsoDateTime
|
|
5157
5632
|
});
|
|
5633
|
+
const ThreadTrashedPayload = effect.Schema.Struct({
|
|
5634
|
+
threadId: ThreadId,
|
|
5635
|
+
trashedAt: IsoDateTime,
|
|
5636
|
+
updatedAt: IsoDateTime
|
|
5637
|
+
});
|
|
5638
|
+
const ThreadUntrashedPayload = effect.Schema.Struct({
|
|
5639
|
+
threadId: ThreadId,
|
|
5640
|
+
updatedAt: IsoDateTime
|
|
5641
|
+
});
|
|
5158
5642
|
const ThreadArchivedPayload = effect.Schema.Struct({
|
|
5159
5643
|
threadId: ThreadId,
|
|
5160
5644
|
archivedAt: IsoDateTime,
|
|
@@ -5192,6 +5676,20 @@ const ThreadUnsettledPayload = effect.Schema.Struct({
|
|
|
5192
5676
|
updatedAt: IsoDateTime,
|
|
5193
5677
|
restoredSidebarState: effect.Schema.optional(ThreadSidebarRestoreState)
|
|
5194
5678
|
});
|
|
5679
|
+
const ThreadUsageLimitSetPayload = effect.Schema.Struct({
|
|
5680
|
+
threadId: ThreadId,
|
|
5681
|
+
usageLimit: ThreadUsageLimit
|
|
5682
|
+
});
|
|
5683
|
+
const ThreadUsageLimitClearedPayload = effect.Schema.Struct({
|
|
5684
|
+
threadId: ThreadId,
|
|
5685
|
+
limitId: ThreadUsageLimitId,
|
|
5686
|
+
reason: effect.Schema.Literals([
|
|
5687
|
+
"turn-started",
|
|
5688
|
+
"archived",
|
|
5689
|
+
"reverted"
|
|
5690
|
+
]),
|
|
5691
|
+
updatedAt: IsoDateTime
|
|
5692
|
+
});
|
|
5195
5693
|
const ThreadMetaUpdatedPayload = effect.Schema.Struct({
|
|
5196
5694
|
threadId: ThreadId,
|
|
5197
5695
|
title: effect.Schema.optional(TrimmedNonEmptyString),
|
|
@@ -5261,6 +5759,8 @@ const ThreadTurnSteerRejectedPayload = effect.Schema.Struct({
|
|
|
5261
5759
|
messageId: MessageId,
|
|
5262
5760
|
expectedTurnId: TurnId,
|
|
5263
5761
|
error: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(1e3)),
|
|
5762
|
+
reason: effect.Schema.optionalKey(TurnSteerRejectionReason),
|
|
5763
|
+
deliveryUncertain: TurnSteerDeliveryUncertain,
|
|
5264
5764
|
resolvedAt: IsoDateTime
|
|
5265
5765
|
});
|
|
5266
5766
|
const ThreadContextHandoffRequestedPayload = effect.Schema.Struct({
|
|
@@ -5315,7 +5815,13 @@ const ThreadCheckpointRevertRequestedPayload = effect.Schema.Struct({
|
|
|
5315
5815
|
});
|
|
5316
5816
|
const ThreadRevertedPayload = effect.Schema.Struct({
|
|
5317
5817
|
threadId: ThreadId,
|
|
5318
|
-
turnCount: NonNegativeInt
|
|
5818
|
+
turnCount: NonNegativeInt,
|
|
5819
|
+
/**
|
|
5820
|
+
* Authoritative revert result read from the projection. Absent on legacy
|
|
5821
|
+
* events, which keep the count-based projection.
|
|
5822
|
+
*/
|
|
5823
|
+
droppedTurnIds: effect.Schema.optional(effect.Schema.Array(TurnId)),
|
|
5824
|
+
latestTurn: effect.Schema.optional(effect.Schema.NullOr(OrchestrationLatestTurn))
|
|
5319
5825
|
});
|
|
5320
5826
|
const ThreadSessionStopRequestedPayload = effect.Schema.Struct({
|
|
5321
5827
|
threadId: ThreadId,
|
|
@@ -5323,7 +5829,9 @@ const ThreadSessionStopRequestedPayload = effect.Schema.Struct({
|
|
|
5323
5829
|
});
|
|
5324
5830
|
const ThreadSessionSetPayload = effect.Schema.Struct({
|
|
5325
5831
|
threadId: ThreadId,
|
|
5326
|
-
session: OrchestrationSession
|
|
5832
|
+
session: OrchestrationSession,
|
|
5833
|
+
/** Decided by the server: the turn this session-set releases and its terminal state. */
|
|
5834
|
+
releasedTurn: effect.Schema.optional(OrchestrationReleasedTurn)
|
|
5327
5835
|
});
|
|
5328
5836
|
const ThreadProposedPlanUpsertedPayload = effect.Schema.Struct({
|
|
5329
5837
|
threadId: ThreadId,
|
|
@@ -5379,6 +5887,8 @@ const WorktreeSourceControlStateUpdatedPayload = effect.Schema.Struct({
|
|
|
5379
5887
|
prTitle: effect.Schema.optional(effect.Schema.NullOr(TrimmedNonEmptyString)),
|
|
5380
5888
|
prState: effect.Schema.NullOr(PullRequestState),
|
|
5381
5889
|
prIsDraft: effect.Schema.NullOr(effect.Schema.Boolean),
|
|
5890
|
+
/** When the PR reached its current merged/closed state; see `Worktree.prTerminalAt`. */
|
|
5891
|
+
prTerminalAt: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
|
|
5382
5892
|
issueState: effect.Schema.NullOr(IssueState),
|
|
5383
5893
|
updatedAt: IsoDateTime
|
|
5384
5894
|
});
|
|
@@ -5392,6 +5902,23 @@ const WorktreeDeletedPayload = effect.Schema.Struct({
|
|
|
5392
5902
|
deletedAt: IsoDateTime,
|
|
5393
5903
|
deletedBranch: effect.Schema.Boolean
|
|
5394
5904
|
});
|
|
5905
|
+
const WorktreeCheckoutRemovedPayload = effect.Schema.Struct({
|
|
5906
|
+
worktreeId: WorktreeId,
|
|
5907
|
+
reason: WorktreeCheckoutRemovalReason,
|
|
5908
|
+
removedAt: IsoDateTime
|
|
5909
|
+
});
|
|
5910
|
+
const WorktreeCheckoutRestoredPayload = effect.Schema.Struct({
|
|
5911
|
+
worktreeId: WorktreeId,
|
|
5912
|
+
worktreePath: TrimmedNonEmptyString,
|
|
5913
|
+
restoredAt: IsoDateTime
|
|
5914
|
+
});
|
|
5915
|
+
const WorktreeRelocatedPayload = effect.Schema.Struct({
|
|
5916
|
+
worktreeId: WorktreeId,
|
|
5917
|
+
projectId: ProjectId,
|
|
5918
|
+
sourcePath: TrimmedNonEmptyString,
|
|
5919
|
+
destinationPath: TrimmedNonEmptyString,
|
|
5920
|
+
relocatedAt: IsoDateTime
|
|
5921
|
+
});
|
|
5395
5922
|
const ThreadAttachedToWorktreePayload = effect.Schema.Struct({
|
|
5396
5923
|
threadId: ThreadId,
|
|
5397
5924
|
worktreeId: WorktreeId,
|
|
@@ -5465,6 +5992,16 @@ const OrchestrationEvent = effect.Schema.Union([
|
|
|
5465
5992
|
type: effect.Schema.Literal("thread.deleted"),
|
|
5466
5993
|
payload: ThreadDeletedPayload
|
|
5467
5994
|
}),
|
|
5995
|
+
effect.Schema.Struct({
|
|
5996
|
+
...EventBaseFields,
|
|
5997
|
+
type: effect.Schema.Literal("thread.trashed"),
|
|
5998
|
+
payload: ThreadTrashedPayload
|
|
5999
|
+
}),
|
|
6000
|
+
effect.Schema.Struct({
|
|
6001
|
+
...EventBaseFields,
|
|
6002
|
+
type: effect.Schema.Literal("thread.untrashed"),
|
|
6003
|
+
payload: ThreadUntrashedPayload
|
|
6004
|
+
}),
|
|
5468
6005
|
effect.Schema.Struct({
|
|
5469
6006
|
...EventBaseFields,
|
|
5470
6007
|
type: effect.Schema.Literal("thread.archived"),
|
|
@@ -5495,6 +6032,16 @@ const OrchestrationEvent = effect.Schema.Union([
|
|
|
5495
6032
|
type: effect.Schema.Literal("thread.unsettled"),
|
|
5496
6033
|
payload: ThreadUnsettledPayload
|
|
5497
6034
|
}),
|
|
6035
|
+
effect.Schema.Struct({
|
|
6036
|
+
...EventBaseFields,
|
|
6037
|
+
type: effect.Schema.Literal("thread.usage-limit-set"),
|
|
6038
|
+
payload: ThreadUsageLimitSetPayload
|
|
6039
|
+
}),
|
|
6040
|
+
effect.Schema.Struct({
|
|
6041
|
+
...EventBaseFields,
|
|
6042
|
+
type: effect.Schema.Literal("thread.usage-limit-cleared"),
|
|
6043
|
+
payload: ThreadUsageLimitClearedPayload
|
|
6044
|
+
}),
|
|
5498
6045
|
effect.Schema.Struct({
|
|
5499
6046
|
...EventBaseFields,
|
|
5500
6047
|
type: effect.Schema.Literal("thread.meta-updated"),
|
|
@@ -5635,6 +6182,21 @@ const OrchestrationEvent = effect.Schema.Union([
|
|
|
5635
6182
|
type: effect.Schema.Literal("worktree.deleted"),
|
|
5636
6183
|
payload: WorktreeDeletedPayload
|
|
5637
6184
|
}),
|
|
6185
|
+
effect.Schema.Struct({
|
|
6186
|
+
...EventBaseFields,
|
|
6187
|
+
type: effect.Schema.Literal("worktree.checkoutRemoved"),
|
|
6188
|
+
payload: WorktreeCheckoutRemovedPayload
|
|
6189
|
+
}),
|
|
6190
|
+
effect.Schema.Struct({
|
|
6191
|
+
...EventBaseFields,
|
|
6192
|
+
type: effect.Schema.Literal("worktree.checkoutRestored"),
|
|
6193
|
+
payload: WorktreeCheckoutRestoredPayload
|
|
6194
|
+
}),
|
|
6195
|
+
effect.Schema.Struct({
|
|
6196
|
+
...EventBaseFields,
|
|
6197
|
+
type: effect.Schema.Literal("worktree.relocated"),
|
|
6198
|
+
payload: WorktreeRelocatedPayload
|
|
6199
|
+
}),
|
|
5638
6200
|
effect.Schema.Struct({
|
|
5639
6201
|
...EventBaseFields,
|
|
5640
6202
|
type: effect.Schema.Literal("thread.attachedToWorktree"),
|
|
@@ -5933,8 +6495,20 @@ var OrchestrationGetSnapshotError = class extends effect.Schema.TaggedError()("O
|
|
|
5933
6495
|
message: TrimmedNonEmptyString,
|
|
5934
6496
|
cause: effect.Schema.optional(effect.Schema.Defect())
|
|
5935
6497
|
}) {};
|
|
6498
|
+
/**
|
|
6499
|
+
* Machine-readable dispatch failures a client acts on. Absent for every other failure, which a
|
|
6500
|
+
* client only shows by `message`.
|
|
6501
|
+
*
|
|
6502
|
+
* - `chat-project-retired`: a `thread.turn.start` whose `bootstrap.createChatProject` names a
|
|
6503
|
+
* project id this node has already deleted, such as an unused chat removed by startup cleanup.
|
|
6504
|
+
* Nothing was created and the id can never be used again. The client gives the draft a fresh
|
|
6505
|
+
* project id and sends again once.
|
|
6506
|
+
*/
|
|
6507
|
+
const OrchestrationDispatchCommandErrorReason = effect.Schema.Literals(["chat-project-retired"]);
|
|
5936
6508
|
var OrchestrationDispatchCommandError = class extends effect.Schema.TaggedError()("OrchestrationDispatchCommandError", {
|
|
5937
6509
|
message: TrimmedNonEmptyString,
|
|
6510
|
+
/** Additive: older clients ignore it and show `message`. */
|
|
6511
|
+
reason: effect.Schema.optionalKey(OrchestrationDispatchCommandErrorReason),
|
|
5938
6512
|
cause: effect.Schema.optional(effect.Schema.Defect())
|
|
5939
6513
|
}) {};
|
|
5940
6514
|
var OrchestrationGetTurnDiffError = class extends effect.Schema.TaggedError()("OrchestrationGetTurnDiffError", {
|
|
@@ -6075,6 +6649,13 @@ const ClaudeCacheObservation = effect.Schema.Struct({
|
|
|
6075
6649
|
providerInstanceId: ProviderInstanceId,
|
|
6076
6650
|
model: TrimmedNonEmptyString,
|
|
6077
6651
|
modelSelection: effect.Schema.optional(ModelSelection),
|
|
6652
|
+
/**
|
|
6653
|
+
* The working directory of the runtime that made this request. Claude keeps native
|
|
6654
|
+
* conversations per directory, so once the thread's working directory differs, the next
|
|
6655
|
+
* turn continues in a fresh session instead of resuming this conversation. Absent from
|
|
6656
|
+
* older servers.
|
|
6657
|
+
*/
|
|
6658
|
+
cwd: effect.Schema.optional(TrimmedNonEmptyString),
|
|
6078
6659
|
messageId: TrimmedNonEmptyString,
|
|
6079
6660
|
directInputTokens: NonNegativeInt,
|
|
6080
6661
|
cacheReadInputTokens: NonNegativeInt,
|
|
@@ -6170,6 +6751,7 @@ const RuntimeErrorClass = effect.Schema.Literals([
|
|
|
6170
6751
|
"transport_error",
|
|
6171
6752
|
"permission_error",
|
|
6172
6753
|
"validation_error",
|
|
6754
|
+
"usage_limit",
|
|
6173
6755
|
"unknown"
|
|
6174
6756
|
]);
|
|
6175
6757
|
const TOOL_LIFECYCLE_ITEM_TYPES = [
|
|
@@ -6360,7 +6942,25 @@ const ThreadMetadataUpdatedPayload = effect.Schema.Struct({
|
|
|
6360
6942
|
});
|
|
6361
6943
|
const ProviderThreadGoalUpdatedPayload = effect.Schema.Struct({ goal: ThreadGoal });
|
|
6362
6944
|
const ProviderThreadGoalClearedPayload = effect.Schema.Struct({});
|
|
6945
|
+
/** Billing/work counters are separate from the current context-window gauge. */
|
|
6946
|
+
const ProcessedTokenUsage = effect.Schema.Struct({
|
|
6947
|
+
scope: effect.Schema.Literals([
|
|
6948
|
+
"session",
|
|
6949
|
+
"turn",
|
|
6950
|
+
"request"
|
|
6951
|
+
]),
|
|
6952
|
+
requestId: effect.Schema.optional(TrimmedNonEmptyStringSchema$1),
|
|
6953
|
+
sessionId: effect.Schema.optional(TrimmedNonEmptyStringSchema$1),
|
|
6954
|
+
/** Includes cache reads and writes. */
|
|
6955
|
+
inputTokens: NonNegativeInt,
|
|
6956
|
+
cachedInputTokens: NonNegativeInt,
|
|
6957
|
+
/** Includes reasoning output; reasoning is not charged a second time. */
|
|
6958
|
+
outputTokens: NonNegativeInt,
|
|
6959
|
+
reasoningOutputTokens: NonNegativeInt,
|
|
6960
|
+
totalTokens: NonNegativeInt
|
|
6961
|
+
});
|
|
6363
6962
|
const ThreadTokenUsageSnapshot = effect.Schema.Struct({
|
|
6963
|
+
processedUsage: effect.Schema.optional(ProcessedTokenUsage),
|
|
6364
6964
|
claudeCache: effect.Schema.optional(ClaudeCacheObservation),
|
|
6365
6965
|
usedTokens: NonNegativeInt,
|
|
6366
6966
|
totalProcessedTokens: effect.Schema.optional(NonNegativeInt),
|
|
@@ -6686,7 +7286,19 @@ const AuthStatusPayload = effect.Schema.Struct({
|
|
|
6686
7286
|
error: effect.Schema.optional(TrimmedNonEmptyStringSchema$1)
|
|
6687
7287
|
});
|
|
6688
7288
|
const AccountUpdatedPayload = effect.Schema.Struct({ account: effect.Schema.Unknown });
|
|
6689
|
-
|
|
7289
|
+
/**
|
|
7290
|
+
* Provider-agnostic reading of a rate-limit update. `exhausted` means at least one
|
|
7291
|
+
* window is rejected or at 100%; `resetAt` is when ALL exhausted windows reset, or
|
|
7292
|
+
* null when any of their resets is unknown.
|
|
7293
|
+
*/
|
|
7294
|
+
const UsageLimitState = effect.Schema.Struct({
|
|
7295
|
+
exhausted: effect.Schema.Boolean,
|
|
7296
|
+
resetAt: effect.Schema.NullOr(IsoDateTime)
|
|
7297
|
+
});
|
|
7298
|
+
const AccountRateLimitsUpdatedPayload = effect.Schema.Struct({
|
|
7299
|
+
rateLimits: effect.Schema.Unknown,
|
|
7300
|
+
usageLimitState: effect.Schema.optional(UsageLimitState)
|
|
7301
|
+
});
|
|
6690
7302
|
const McpStatusUpdatedPayload = effect.Schema.Struct({ status: effect.Schema.Unknown });
|
|
6691
7303
|
const McpOauthCompletedPayload = effect.Schema.Struct({
|
|
6692
7304
|
success: effect.Schema.Boolean,
|
|
@@ -6731,7 +7343,12 @@ const RuntimeWarningPayload = effect.Schema.Struct({
|
|
|
6731
7343
|
const RuntimeErrorPayload = effect.Schema.Struct({
|
|
6732
7344
|
message: TrimmedNonEmptyStringSchema$1,
|
|
6733
7345
|
class: effect.Schema.optional(RuntimeErrorClass),
|
|
6734
|
-
detail: effect.Schema.optional(effect.Schema.Unknown)
|
|
7346
|
+
detail: effect.Schema.optional(effect.Schema.Unknown),
|
|
7347
|
+
/**
|
|
7348
|
+
* Only meaningful for `class: "usage_limit"`: when the limit resets. null = a limit
|
|
7349
|
+
* with an unknown reset; absent = not applicable.
|
|
7350
|
+
*/
|
|
7351
|
+
resetAt: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime))
|
|
6735
7352
|
});
|
|
6736
7353
|
const ProviderRuntimeSessionStartedEvent = effect.Schema.Struct({
|
|
6737
7354
|
...ProviderRuntimeEventBase.fields,
|
|
@@ -7101,6 +7718,11 @@ const THREAD_KEYBINDING_COMMANDS = [
|
|
|
7101
7718
|
"thread.next",
|
|
7102
7719
|
...THREAD_JUMP_KEYBINDING_COMMANDS
|
|
7103
7720
|
];
|
|
7721
|
+
/**
|
|
7722
|
+
* Every built-in command a key can be bound to. Some ship without a default
|
|
7723
|
+
* key, so this — not the default keymap — is the list a keybindings editor
|
|
7724
|
+
* offers.
|
|
7725
|
+
*/
|
|
7104
7726
|
const STATIC_KEYBINDING_COMMANDS = [
|
|
7105
7727
|
"terminal.toggle",
|
|
7106
7728
|
"terminal.split",
|
|
@@ -7116,8 +7738,15 @@ const STATIC_KEYBINDING_COMMANDS = [
|
|
|
7116
7738
|
"sidebar.showProjects",
|
|
7117
7739
|
"chat.new",
|
|
7118
7740
|
"chat.newLocal",
|
|
7741
|
+
"chat.newWithoutProject",
|
|
7119
7742
|
"composer.stash",
|
|
7120
7743
|
"editor.openFavorite",
|
|
7744
|
+
"pane.split",
|
|
7745
|
+
"pane.close",
|
|
7746
|
+
"pane.focusNext",
|
|
7747
|
+
"pane.focusPrevious",
|
|
7748
|
+
"pullRequests.open",
|
|
7749
|
+
"projects.open",
|
|
7121
7750
|
...["modelPicker.toggle", ...MODEL_PICKER_JUMP_KEYBINDING_COMMANDS],
|
|
7122
7751
|
...THREAD_KEYBINDING_COMMANDS
|
|
7123
7752
|
];
|
|
@@ -7126,7 +7755,13 @@ const SCRIPT_RUN_COMMAND_PATTERN = effect.Schema.TemplateLiteral([
|
|
|
7126
7755
|
effect.Schema.NonEmptyString.check(effect.Schema.isMaxLength(24), effect.Schema.isPattern(/^[a-z0-9][a-z0-9-]*$/)),
|
|
7127
7756
|
effect.Schema.Literal(".run")
|
|
7128
7757
|
]);
|
|
7129
|
-
|
|
7758
|
+
/** Client-owned script commands include the environment and project identity. */
|
|
7759
|
+
const SCOPED_SCRIPT_RUN_COMMAND = effect.Schema.String.check(effect.Schema.isMaxLength(2048), effect.Schema.isPattern(/^projectScript\.[^/]+\/[^/]+\/[a-z0-9][a-z0-9-]{0,23}\.run$/));
|
|
7760
|
+
const KeybindingCommand = effect.Schema.Union([
|
|
7761
|
+
effect.Schema.Literals(STATIC_KEYBINDING_COMMANDS),
|
|
7762
|
+
SCRIPT_RUN_COMMAND_PATTERN,
|
|
7763
|
+
SCOPED_SCRIPT_RUN_COMMAND
|
|
7764
|
+
]);
|
|
7130
7765
|
const KeybindingValue = TrimmedString.check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(64));
|
|
7131
7766
|
const KeybindingWhen = TrimmedString.check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(MAX_KEYBINDING_WHEN_LENGTH));
|
|
7132
7767
|
const KeybindingRule = effect.Schema.Struct({
|
|
@@ -7179,6 +7814,10 @@ var KeybindingsConfigError = class extends effect.Schema.TaggedError()("Keybindi
|
|
|
7179
7814
|
return `Unable to parse keybindings config at ${this.configPath}: ${this.detail}`;
|
|
7180
7815
|
}
|
|
7181
7816
|
};
|
|
7817
|
+
effect.Schema.Struct({
|
|
7818
|
+
rules: KeybindingsConfig,
|
|
7819
|
+
disabledCommands: effect.Schema.Array(KeybindingCommand).check(effect.Schema.isMaxLength(256))
|
|
7820
|
+
});
|
|
7182
7821
|
//#endregion
|
|
7183
7822
|
//#region ../../packages/contracts/src/codexResetCredits.ts
|
|
7184
7823
|
const CodexResetCredit = effect.Schema.Struct({
|
|
@@ -7292,25 +7931,252 @@ var StorageError = class extends effect.Schema.TaggedError()("StorageError", { d
|
|
|
7292
7931
|
}
|
|
7293
7932
|
};
|
|
7294
7933
|
//#endregion
|
|
7295
|
-
//#region ../../packages/contracts/src/
|
|
7296
|
-
|
|
7297
|
-
|
|
7298
|
-
|
|
7299
|
-
|
|
7934
|
+
//#region ../../packages/contracts/src/workspaceLifecycle.ts
|
|
7935
|
+
/**
|
|
7936
|
+
* Workspace lifecycle is separate from conversation lifecycle. No action here ever
|
|
7937
|
+
* deletes a conversation; checkout removal archives the workspace's conversations
|
|
7938
|
+
* by default and keeps their history and the branch. Only an explicit discard
|
|
7939
|
+
* ("Delete workspace") throws work away, and it moves conversations to Trash.
|
|
7940
|
+
*/
|
|
7941
|
+
const WorkspaceLifecycleAction = effect.Schema.Literals([
|
|
7942
|
+
"archive",
|
|
7943
|
+
"restore",
|
|
7944
|
+
"remove-checkout",
|
|
7945
|
+
"remove-stale-record",
|
|
7946
|
+
"recreate-checkout"
|
|
7300
7947
|
]);
|
|
7301
|
-
|
|
7302
|
-
const
|
|
7303
|
-
"
|
|
7304
|
-
"
|
|
7305
|
-
"
|
|
7948
|
+
/** `removed`: the record says the checkout is gone. `unavailable`: inspection failed. */
|
|
7949
|
+
const WorkspaceCheckoutState = effect.Schema.Literals([
|
|
7950
|
+
"present",
|
|
7951
|
+
"missing",
|
|
7952
|
+
"removed",
|
|
7953
|
+
"unavailable"
|
|
7306
7954
|
]);
|
|
7307
|
-
const
|
|
7308
|
-
const
|
|
7309
|
-
|
|
7310
|
-
|
|
7311
|
-
|
|
7312
|
-
|
|
7313
|
-
|
|
7955
|
+
const SamplePaths = effect.Schema.Array(effect.Schema.String).check(effect.Schema.isMaxLength(20));
|
|
7956
|
+
const WorkspaceChangeSummary = effect.Schema.Struct({
|
|
7957
|
+
/** Tracked files with staged, unstaged or conflicted changes. */
|
|
7958
|
+
modified: NonNegativeInt,
|
|
7959
|
+
untracked: NonNegativeInt,
|
|
7960
|
+
/** Ignored content that is not a known regenerable cache (credentials, databases, outputs…). */
|
|
7961
|
+
protectedIgnored: NonNegativeInt,
|
|
7962
|
+
protectedIgnoredSample: SamplePaths,
|
|
7963
|
+
/** Ignored caches/build outputs that `git worktree remove` may discard. */
|
|
7964
|
+
regenerableIgnored: NonNegativeInt,
|
|
7965
|
+
regenerableIgnoredSample: SamplePaths,
|
|
7966
|
+
/** Status output exceeded its bound; treated as blocking. */
|
|
7967
|
+
truncated: effect.Schema.Boolean
|
|
7968
|
+
});
|
|
7969
|
+
const WorkspaceConversationCounts = effect.Schema.Struct({
|
|
7970
|
+
active: NonNegativeInt,
|
|
7971
|
+
archived: NonNegativeInt,
|
|
7972
|
+
trashed: NonNegativeInt
|
|
7973
|
+
});
|
|
7974
|
+
const WorkspaceActionAvailability = effect.Schema.Struct({
|
|
7975
|
+
action: WorkspaceLifecycleAction,
|
|
7976
|
+
available: effect.Schema.Boolean,
|
|
7977
|
+
blockers: effect.Schema.Array(effect.Schema.String)
|
|
7978
|
+
});
|
|
7979
|
+
const WorkspaceLifecycleSummary = effect.Schema.Struct({
|
|
7980
|
+
worktreeId: WorktreeId,
|
|
7981
|
+
projectId: ProjectId,
|
|
7982
|
+
title: effect.Schema.String,
|
|
7983
|
+
branch: TrimmedNonEmptyString,
|
|
7984
|
+
path: effect.Schema.NullOr(effect.Schema.String),
|
|
7985
|
+
origin: WorktreeOrigin,
|
|
7986
|
+
/** The project root/main checkout is never a disposable workspace. */
|
|
7987
|
+
main: effect.Schema.Boolean,
|
|
7988
|
+
archivedAt: effect.Schema.NullOr(IsoDateTime),
|
|
7989
|
+
checkoutRemovedAt: effect.Schema.NullOr(IsoDateTime),
|
|
7990
|
+
checkout: WorkspaceCheckoutState,
|
|
7991
|
+
gitRegistered: effect.Schema.NullOr(effect.Schema.Boolean),
|
|
7992
|
+
branchExists: effect.Schema.NullOr(effect.Schema.Boolean),
|
|
7993
|
+
/** Commits on the branch that the project HEAD does not contain. */
|
|
7994
|
+
unmerged: effect.Schema.NullOr(effect.Schema.Boolean),
|
|
7995
|
+
changes: effect.Schema.NullOr(WorkspaceChangeSummary),
|
|
7996
|
+
conversations: WorkspaceConversationCounts,
|
|
7997
|
+
activeWork: effect.Schema.Array(effect.Schema.String),
|
|
7998
|
+
actions: effect.Schema.Array(WorkspaceActionAvailability),
|
|
7999
|
+
/**
|
|
8000
|
+
* Why "Delete workspace" (`remove-checkout` with `discard`) cannot run; empty
|
|
8001
|
+
* when it can. Absent from nodes that predate it.
|
|
8002
|
+
*/
|
|
8003
|
+
discardBlockers: effect.Schema.optional(effect.Schema.Array(effect.Schema.String)),
|
|
8004
|
+
inspectedAt: IsoDateTime
|
|
8005
|
+
});
|
|
8006
|
+
const WorkspaceLifecycleListInput = effect.Schema.Struct({ projectId: ProjectId });
|
|
8007
|
+
const WorkspaceLifecycleRequest = effect.Schema.Struct({
|
|
8008
|
+
worktreeId: WorktreeId,
|
|
8009
|
+
action: WorkspaceLifecycleAction,
|
|
8010
|
+
/** Default true for checkout removal and stale-record cleanup; ignored otherwise. */
|
|
8011
|
+
archiveConversations: effect.Schema.optional(effect.Schema.Boolean),
|
|
8012
|
+
/**
|
|
8013
|
+
* Off by default. Only on removal; a verified merged branch, or any branch when
|
|
8014
|
+
* discarding.
|
|
8015
|
+
*/
|
|
8016
|
+
deleteBranch: effect.Schema.optional(effect.Schema.Boolean),
|
|
8017
|
+
/**
|
|
8018
|
+
* Off by default; `remove-checkout` only. "Delete workspace": the checkout is
|
|
8019
|
+
* removed even with uncommitted, untracked or ignored files (they are lost),
|
|
8020
|
+
* an unmerged branch may be deleted, and the workspace's conversations move to
|
|
8021
|
+
* Trash instead of the archive. Also finishes a workspace whose checkout is
|
|
8022
|
+
* already removed. Active work still blocks it.
|
|
8023
|
+
*/
|
|
8024
|
+
discard: effect.Schema.optional(effect.Schema.Boolean)
|
|
8025
|
+
});
|
|
8026
|
+
const WorkspaceLifecycleEffects = effect.Schema.Struct({
|
|
8027
|
+
archiveWorkspace: effect.Schema.Boolean,
|
|
8028
|
+
restoreWorkspace: effect.Schema.Boolean,
|
|
8029
|
+
removeCheckout: effect.Schema.Boolean,
|
|
8030
|
+
recreateCheckout: effect.Schema.Boolean,
|
|
8031
|
+
recordCheckoutRemoval: effect.Schema.Boolean,
|
|
8032
|
+
stopSessionThreadIds: effect.Schema.Array(ThreadId),
|
|
8033
|
+
archiveConversationIds: effect.Schema.Array(ThreadId),
|
|
8034
|
+
/** Conversations left exactly as they are (already archived, trashed or never used). */
|
|
8035
|
+
unchangedConversations: NonNegativeInt,
|
|
8036
|
+
discardedRegenerableIgnored: NonNegativeInt,
|
|
8037
|
+
deleteBranch: effect.Schema.Boolean,
|
|
8038
|
+
branch: TrimmedNonEmptyString,
|
|
8039
|
+
/** The request discards ("Delete workspace"). Absent from nodes that predate it. */
|
|
8040
|
+
discard: effect.Schema.optional(effect.Schema.Boolean),
|
|
8041
|
+
/** Conversations moved to Trash, where they stay restorable. */
|
|
8042
|
+
trashConversationIds: effect.Schema.optional(effect.Schema.Array(ThreadId)),
|
|
8043
|
+
/** Work that exists nowhere else is lost: changed or untracked files, unmerged commits. */
|
|
8044
|
+
discardsWork: effect.Schema.optional(effect.Schema.Boolean)
|
|
8045
|
+
});
|
|
8046
|
+
const WorkspaceLifecyclePreview = effect.Schema.Struct({
|
|
8047
|
+
request: WorkspaceLifecycleRequest,
|
|
8048
|
+
workspace: WorkspaceLifecycleSummary,
|
|
8049
|
+
effects: WorkspaceLifecycleEffects,
|
|
8050
|
+
/** One-line exact effect, e.g. "Remove 1 checkout, archive 4 conversations, keep history and branch." */
|
|
8051
|
+
summary: effect.Schema.String,
|
|
8052
|
+
details: effect.Schema.Array(effect.Schema.String),
|
|
8053
|
+
blockers: effect.Schema.Array(effect.Schema.String),
|
|
8054
|
+
/** Binds an apply to exactly the state this preview inspected. */
|
|
8055
|
+
fingerprint: TrimmedNonEmptyString
|
|
8056
|
+
});
|
|
8057
|
+
const WorkspaceLifecycleApplyInput = effect.Schema.Struct({
|
|
8058
|
+
...WorkspaceLifecycleRequest.fields,
|
|
8059
|
+
expectedFingerprint: TrimmedNonEmptyString
|
|
8060
|
+
});
|
|
8061
|
+
const WorkspaceLifecycleStepId = effect.Schema.Literals([
|
|
8062
|
+
"preflight",
|
|
8063
|
+
"stop-sessions",
|
|
8064
|
+
"fence-checkout",
|
|
8065
|
+
"revalidate",
|
|
8066
|
+
"remove-checkout",
|
|
8067
|
+
"recreate-checkout",
|
|
8068
|
+
"update-record",
|
|
8069
|
+
"archive-conversations",
|
|
8070
|
+
"delete-branch"
|
|
8071
|
+
]);
|
|
8072
|
+
const WorkspaceLifecycleStep = effect.Schema.Struct({
|
|
8073
|
+
id: WorkspaceLifecycleStepId,
|
|
8074
|
+
status: effect.Schema.Literals([
|
|
8075
|
+
"done",
|
|
8076
|
+
"skipped",
|
|
8077
|
+
"failed"
|
|
8078
|
+
]),
|
|
8079
|
+
detail: effect.Schema.String
|
|
8080
|
+
});
|
|
8081
|
+
/**
|
|
8082
|
+
* `blocked`: nothing changed. `failed`: nothing durable changed. `partial`: some steps
|
|
8083
|
+
* completed (listed truthfully); retrying the same action resumes safely.
|
|
8084
|
+
*/
|
|
8085
|
+
const WorkspaceLifecycleOutcome = effect.Schema.Literals([
|
|
8086
|
+
"completed",
|
|
8087
|
+
"blocked",
|
|
8088
|
+
"partial",
|
|
8089
|
+
"failed"
|
|
8090
|
+
]);
|
|
8091
|
+
const WorkspaceLifecycleResult = effect.Schema.Struct({
|
|
8092
|
+
outcome: WorkspaceLifecycleOutcome,
|
|
8093
|
+
message: effect.Schema.String,
|
|
8094
|
+
steps: effect.Schema.Array(WorkspaceLifecycleStep)
|
|
8095
|
+
});
|
|
8096
|
+
var WorkspaceLifecycleError = class extends effect.Schema.TaggedError()("WorkspaceLifecycleError", { detail: effect.Schema.String }) {
|
|
8097
|
+
get message() {
|
|
8098
|
+
return this.detail;
|
|
8099
|
+
}
|
|
8100
|
+
};
|
|
8101
|
+
const SuggestionDays = effect.Schema.NullOr(effect.Schema.Int.check(effect.Schema.isBetween({
|
|
8102
|
+
minimum: 1,
|
|
8103
|
+
maximum: 3650
|
|
8104
|
+
})));
|
|
8105
|
+
/** `null` turns a suggestion off. Suggestions never act on their own; each needs approval. */
|
|
8106
|
+
const LifecycleSuggestionPolicy = effect.Schema.Struct({
|
|
8107
|
+
archiveInactiveThreadsDays: SuggestionDays,
|
|
8108
|
+
removeArchivedCheckoutsDays: SuggestionDays
|
|
8109
|
+
});
|
|
8110
|
+
const DEFAULT_LIFECYCLE_SUGGESTION_POLICY = {
|
|
8111
|
+
archiveInactiveThreadsDays: 30,
|
|
8112
|
+
removeArchivedCheckoutsDays: 7
|
|
8113
|
+
};
|
|
8114
|
+
const ThreadArchiveSuggestion = effect.Schema.Struct({
|
|
8115
|
+
threadId: ThreadId,
|
|
8116
|
+
projectId: ProjectId,
|
|
8117
|
+
title: effect.Schema.String,
|
|
8118
|
+
lastActivityAt: IsoDateTime
|
|
8119
|
+
});
|
|
8120
|
+
const CheckoutRemovalSuggestion = effect.Schema.Struct({
|
|
8121
|
+
worktreeId: WorktreeId,
|
|
8122
|
+
projectId: ProjectId,
|
|
8123
|
+
title: effect.Schema.String,
|
|
8124
|
+
branch: TrimmedNonEmptyString,
|
|
8125
|
+
/** When the last of its conversations was archived. */
|
|
8126
|
+
archivedSince: IsoDateTime,
|
|
8127
|
+
conversations: NonNegativeInt
|
|
8128
|
+
});
|
|
8129
|
+
const LifecycleSuggestions = effect.Schema.Struct({
|
|
8130
|
+
generatedAt: IsoDateTime,
|
|
8131
|
+
threads: effect.Schema.Array(ThreadArchiveSuggestion),
|
|
8132
|
+
checkouts: effect.Schema.Array(CheckoutRemovalSuggestion)
|
|
8133
|
+
});
|
|
8134
|
+
const TrashedThreadSummary = effect.Schema.Struct({
|
|
8135
|
+
threadId: ThreadId,
|
|
8136
|
+
projectId: ProjectId,
|
|
8137
|
+
projectTitle: effect.Schema.NullOr(effect.Schema.String),
|
|
8138
|
+
/**
|
|
8139
|
+
* The owning project's kind, so a chat is listed as "No project" without the client's project
|
|
8140
|
+
* store. Absent when the project record is gone, or from a node that predates chats; both read
|
|
8141
|
+
* as a regular project.
|
|
8142
|
+
*/
|
|
8143
|
+
projectKind: effect.Schema.optionalKey(ProjectKind),
|
|
8144
|
+
/** False when the owning project was removed; restore is unavailable. */
|
|
8145
|
+
projectAvailable: effect.Schema.Boolean,
|
|
8146
|
+
title: effect.Schema.String,
|
|
8147
|
+
branch: effect.Schema.NullOr(effect.Schema.String),
|
|
8148
|
+
worktreePath: effect.Schema.NullOr(effect.Schema.String),
|
|
8149
|
+
worktreeId: effect.Schema.NullOr(WorktreeId),
|
|
8150
|
+
/** Restoring returns the conversation to this archive state. */
|
|
8151
|
+
archivedAt: effect.Schema.NullOr(IsoDateTime),
|
|
8152
|
+
trashedAt: IsoDateTime,
|
|
8153
|
+
createdAt: IsoDateTime,
|
|
8154
|
+
updatedAt: IsoDateTime
|
|
8155
|
+
});
|
|
8156
|
+
const TrashListResult = effect.Schema.Struct({
|
|
8157
|
+
threads: effect.Schema.Array(TrashedThreadSummary),
|
|
8158
|
+
truncated: effect.Schema.Boolean
|
|
8159
|
+
});
|
|
8160
|
+
//#endregion
|
|
8161
|
+
//#region ../../packages/contracts/src/settings.ts
|
|
8162
|
+
const TimestampFormat = effect_Schema.Literals([
|
|
8163
|
+
"locale",
|
|
8164
|
+
"12-hour",
|
|
8165
|
+
"24-hour"
|
|
8166
|
+
]);
|
|
8167
|
+
const DEFAULT_TIMESTAMP_FORMAT = "locale";
|
|
8168
|
+
const SidebarProjectSortOrder = effect_Schema.Literals([
|
|
8169
|
+
"updated_at",
|
|
8170
|
+
"created_at",
|
|
8171
|
+
"manual"
|
|
8172
|
+
]);
|
|
8173
|
+
const DEFAULT_SIDEBAR_PROJECT_SORT_ORDER = "updated_at";
|
|
8174
|
+
const SidebarThreadSortOrder = effect_Schema.Literals(["updated_at", "created_at"]);
|
|
8175
|
+
const DEFAULT_SIDEBAR_THREAD_SORT_ORDER = "updated_at";
|
|
8176
|
+
const SidebarAutoSettleAfterDays = effect_Schema.NullOr(effect_Schema.Literals([
|
|
8177
|
+
1,
|
|
8178
|
+
3,
|
|
8179
|
+
7,
|
|
7314
8180
|
14,
|
|
7315
8181
|
30,
|
|
7316
8182
|
90
|
|
@@ -7344,6 +8210,13 @@ const AiFocusRefreshIntervalMs = effect_Schema.Literals([
|
|
|
7344
8210
|
864e5
|
|
7345
8211
|
]);
|
|
7346
8212
|
const DEFAULT_AI_FOCUS_REFRESH_INTERVAL_MS = 6e5;
|
|
8213
|
+
/**
|
|
8214
|
+
* What Enter does with a message sent while a turn runs: `queue` waits for the turn to finish,
|
|
8215
|
+
* `steer` adds it to the running turn when the provider supports steering. Mod+Enter does the
|
|
8216
|
+
* opposite.
|
|
8217
|
+
*/
|
|
8218
|
+
const FollowUpBehavior = effect_Schema.Literals(["queue", "steer"]);
|
|
8219
|
+
const DEFAULT_FOLLOW_UP_BEHAVIOR = "queue";
|
|
7347
8220
|
/** Missing effort is a legacy model-only preset; provider remains the stable instance id. */
|
|
7348
8221
|
const ModelFavorite = effect_Schema.Struct({
|
|
7349
8222
|
provider: ProviderInstanceId,
|
|
@@ -7361,6 +8234,7 @@ const ClientSettingsSchema = effect_Schema.Struct({
|
|
|
7361
8234
|
dismissedProviderUpdateNotificationKeys: effect_Schema.Array(TrimmedNonEmptyString).pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed([]))),
|
|
7362
8235
|
diffIgnoreWhitespace: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(true))),
|
|
7363
8236
|
diffWordWrap: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))),
|
|
8237
|
+
followUpBehavior: FollowUpBehavior.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_FOLLOW_UP_BEHAVIOR))),
|
|
7364
8238
|
favorites: effect_Schema.Array(ModelFavorite).pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed([]))),
|
|
7365
8239
|
providerModelPreferences: effect_Schema.Record(ProviderInstanceId, effect_Schema.Struct({
|
|
7366
8240
|
hiddenModels: effect_Schema.Array(effect_Schema.String).pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed([]))),
|
|
@@ -7632,13 +8506,19 @@ const ServerSettings = effect_Schema.Struct({
|
|
|
7632
8506
|
environmentIcon: EnvironmentMachineHint.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(null))),
|
|
7633
8507
|
enableLegacyTokenStreaming: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))),
|
|
7634
8508
|
enableProviderUpdateChecks: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(true))),
|
|
8509
|
+
continueThreadsAfterRestart: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))),
|
|
8510
|
+
autoResumeLimitedThreads: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))),
|
|
8511
|
+
snoozeLimitedThreads: effect_Schema.Boolean.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(false))),
|
|
7635
8512
|
storageRetention: StorageRetentionPolicy.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed({
|
|
7636
8513
|
automatic: false,
|
|
7637
8514
|
completedWorktreeDays: null,
|
|
7638
8515
|
temporaryDataDays: null
|
|
7639
8516
|
}))),
|
|
7640
8517
|
projectStorageRetention: effect_Schema.Record(effect_Schema.String, effect_Schema.NullOr(StorageRetentionPolicy)).pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed({}))),
|
|
8518
|
+
lifecycleSuggestions: LifecycleSuggestionPolicy.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(DEFAULT_LIFECYCLE_SUGGESTION_POLICY))),
|
|
8519
|
+
projectLifecycleSuggestions: effect_Schema.Record(effect_Schema.String, effect_Schema.NullOr(LifecycleSuggestionPolicy)).pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed({}))),
|
|
7641
8520
|
worktreeRoot: WorktreeRoot.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(""))),
|
|
8521
|
+
chatsRoot: WorktreeRoot.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed(""))),
|
|
7642
8522
|
worktreeSubmodules: WorktreeSubmodules.pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed("recursive"))),
|
|
7643
8523
|
projectWorktreeSubmodules: effect_Schema.Record(effect_Schema.String, effect_Schema.NullOr(WorktreeSubmodules)).pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed({}))),
|
|
7644
8524
|
projectWorktreeRoots: effect_Schema.Record(effect_Schema.String, effect_Schema.NullOr(WorktreeRoot)).pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed({}))),
|
|
@@ -7733,9 +8613,15 @@ const ServerSettingsPatch = effect_Schema.Struct({
|
|
|
7733
8613
|
environmentIcon: effect_Schema.optionalKey(effect_Schema.NullOr(EnvironmentMachineKind)),
|
|
7734
8614
|
enableLegacyTokenStreaming: effect_Schema.optionalKey(effect_Schema.Boolean),
|
|
7735
8615
|
enableProviderUpdateChecks: effect_Schema.optionalKey(effect_Schema.Boolean),
|
|
8616
|
+
continueThreadsAfterRestart: effect_Schema.optionalKey(effect_Schema.Boolean),
|
|
8617
|
+
autoResumeLimitedThreads: effect_Schema.optionalKey(effect_Schema.Boolean),
|
|
8618
|
+
snoozeLimitedThreads: effect_Schema.optionalKey(effect_Schema.Boolean),
|
|
7736
8619
|
storageRetention: effect_Schema.optionalKey(StorageRetentionPolicy),
|
|
7737
8620
|
projectStorageRetention: effect_Schema.optionalKey(effect_Schema.Record(effect_Schema.String, effect_Schema.NullOr(StorageRetentionPolicy))),
|
|
8621
|
+
lifecycleSuggestions: effect_Schema.optionalKey(LifecycleSuggestionPolicy),
|
|
8622
|
+
projectLifecycleSuggestions: effect_Schema.optionalKey(effect_Schema.Record(effect_Schema.String, effect_Schema.NullOr(LifecycleSuggestionPolicy))),
|
|
7738
8623
|
worktreeRoot: effect_Schema.optionalKey(WorktreeRoot),
|
|
8624
|
+
chatsRoot: effect_Schema.optionalKey(WorktreeRoot),
|
|
7739
8625
|
worktreeSubmodules: effect_Schema.optionalKey(WorktreeSubmodules),
|
|
7740
8626
|
projectWorktreeSubmodules: effect_Schema.optionalKey(effect_Schema.Record(effect_Schema.String, effect_Schema.NullOr(WorktreeSubmodules))),
|
|
7741
8627
|
projectWorktreeRoots: effect_Schema.optionalKey(effect_Schema.Record(effect_Schema.String, effect_Schema.NullOr(WorktreeRoot))),
|
|
@@ -7770,6 +8656,7 @@ effect_Schema.Struct({
|
|
|
7770
8656
|
confirmThreadUnpin: effect_Schema.optionalKey(effect_Schema.Boolean),
|
|
7771
8657
|
diffIgnoreWhitespace: effect_Schema.optionalKey(effect_Schema.Boolean),
|
|
7772
8658
|
diffWordWrap: effect_Schema.optionalKey(effect_Schema.Boolean),
|
|
8659
|
+
followUpBehavior: effect_Schema.optionalKey(FollowUpBehavior),
|
|
7773
8660
|
favorites: effect_Schema.optionalKey(effect_Schema.Array(ModelFavorite)),
|
|
7774
8661
|
providerModelPreferences: effect_Schema.optionalKey(effect_Schema.Record(ProviderInstanceId, effect_Schema.Struct({
|
|
7775
8662
|
hiddenModels: effect_Schema.Array(effect_Schema.String).pipe(effect_Schema.withDecodingDefault(effect.Effect.succeed([]))),
|
|
@@ -7898,6 +8785,27 @@ const ServerProviderRateLimits = effect.Schema.Struct({
|
|
|
7898
8785
|
resetCredits: effect.Schema.optional(CodexResetCredits),
|
|
7899
8786
|
rateLimitReachedType: effect.Schema.optional(TrimmedNonEmptyString)
|
|
7900
8787
|
});
|
|
8788
|
+
/**
|
|
8789
|
+
* How a provider version fits this Ryco release, per the server's compatibility policy
|
|
8790
|
+
* (code-owned floors + bundled defaults + remote model manifest).
|
|
8791
|
+
* FROZEN: mobile/desktop clients ship separately and decode whole provider lists with this
|
|
8792
|
+
* schema, so an unknown literal would fail the entire `ServerProvider` list. Never add a member —
|
|
8793
|
+
* put new meanings in a new optional field.
|
|
8794
|
+
*/
|
|
8795
|
+
const ServerProviderCompatibilityStatus = effect.Schema.Literals([
|
|
8796
|
+
"unknown",
|
|
8797
|
+
"supported",
|
|
8798
|
+
"graceful",
|
|
8799
|
+
"unsupported",
|
|
8800
|
+
"broken"
|
|
8801
|
+
]);
|
|
8802
|
+
const ServerProviderCompatibilityAdvisory = effect.Schema.Struct({
|
|
8803
|
+
/** Rating of `ServerProvider.version`. */
|
|
8804
|
+
status: ServerProviderCompatibilityStatus,
|
|
8805
|
+
/** Rating of `versionAdvisory.latestVersion`; absent when no latest version is known. */
|
|
8806
|
+
latestVersionStatus: effect.Schema.optionalKey(ServerProviderCompatibilityStatus),
|
|
8807
|
+
message: effect.Schema.NullOr(TrimmedNonEmptyString)
|
|
8808
|
+
});
|
|
7901
8809
|
const ServerProviderVersionAdvisoryStatus = effect.Schema.Literals([
|
|
7902
8810
|
"unknown",
|
|
7903
8811
|
"current",
|
|
@@ -7949,6 +8857,7 @@ const ServerProvider = effect.Schema.Struct({
|
|
|
7949
8857
|
showInteractionModeToggle: effect.Schema.optional(effect.Schema.Boolean),
|
|
7950
8858
|
supportsAskMode: effect.Schema.optional(effect.Schema.Boolean),
|
|
7951
8859
|
supportsTurnSteering: effect.Schema.optional(effect.Schema.Boolean),
|
|
8860
|
+
supportsConversationRollback: effect.Schema.optional(effect.Schema.Boolean),
|
|
7952
8861
|
enabled: effect.Schema.Boolean,
|
|
7953
8862
|
installed: effect.Schema.Boolean,
|
|
7954
8863
|
version: effect.Schema.NullOr(TrimmedNonEmptyString),
|
|
@@ -7963,9 +8872,17 @@ const ServerProvider = effect.Schema.Struct({
|
|
|
7963
8872
|
skills: effect.Schema.Array(ServerProviderSkill).pipe(effect.Schema.withDecodingDefault(effect.Effect.succeed([]))),
|
|
7964
8873
|
rateLimits: effect.Schema.optional(ServerProviderRateLimits),
|
|
7965
8874
|
versionAdvisory: effect.Schema.optionalKey(ServerProviderVersionAdvisory),
|
|
8875
|
+
compatibilityAdvisory: effect.Schema.optionalKey(ServerProviderCompatibilityAdvisory),
|
|
7966
8876
|
updateState: effect.Schema.optionalKey(ServerProviderUpdateState)
|
|
7967
8877
|
});
|
|
7968
8878
|
const ServerProviders = effect.Schema.Array(ServerProvider);
|
|
8879
|
+
/**
|
|
8880
|
+
* Treat the optional `availability` as "available" when absent. This is
|
|
8881
|
+
* the rule legacy producers (which omit the field) and new producers
|
|
8882
|
+
* (which set it explicitly) agree on so consumers never have to thread
|
|
8883
|
+
* `?? "available"` defaults through their code paths.
|
|
8884
|
+
*/
|
|
8885
|
+
const isProviderAvailable = (snapshot) => snapshot.availability !== "unavailable";
|
|
7969
8886
|
const ServerLocalDiagnosticsMetrics = effect.Schema.Struct({
|
|
7970
8887
|
turnQuiescenceAvgMs: effect.Schema.NullOr(effect.Schema.Number),
|
|
7971
8888
|
checkpointDurationP95Ms: effect.Schema.NullOr(effect.Schema.Number),
|
|
@@ -7985,12 +8902,32 @@ const ServerObservability = effect.Schema.Struct({
|
|
|
7985
8902
|
otlpMetricsEnabled: effect.Schema.Boolean,
|
|
7986
8903
|
localMetrics: effect.Schema.optional(ServerLocalDiagnosticsMetrics)
|
|
7987
8904
|
});
|
|
8905
|
+
/**
|
|
8906
|
+
* Why "No project" chats are off on this node:
|
|
8907
|
+
* - `inside-git-repository`: the chats root lies in a Git working tree, so every chat would show
|
|
8908
|
+
* the parent repository's branch and diff.
|
|
8909
|
+
* - `root-unavailable`: the chats root cannot be resolved or created.
|
|
8910
|
+
* - `restricted`: the workspace access policy does not allow the chats root.
|
|
8911
|
+
*/
|
|
8912
|
+
const ServerChatsUnavailableReason = effect.Schema.Literals([
|
|
8913
|
+
"inside-git-repository",
|
|
8914
|
+
"root-unavailable",
|
|
8915
|
+
"restricted"
|
|
8916
|
+
]);
|
|
8917
|
+
/** Absent from nodes without chat support; clients then hide every "No project" entry point. */
|
|
8918
|
+
const ServerChatsCapability = effect.Schema.Struct({
|
|
8919
|
+
available: effect.Schema.Boolean,
|
|
8920
|
+
/** Resolved chats root (symlinks resolved), present when it could be determined. */
|
|
8921
|
+
root: effect.Schema.optionalKey(TrimmedNonEmptyString),
|
|
8922
|
+
unavailableReason: effect.Schema.optionalKey(ServerChatsUnavailableReason)
|
|
8923
|
+
});
|
|
7988
8924
|
const ServerConfig = effect.Schema.Struct({
|
|
7989
8925
|
usageContractVersion: effect.Schema.optional(NonNegativeInt),
|
|
7990
8926
|
environment: ExecutionEnvironmentDescriptor,
|
|
7991
8927
|
auth: ServerAuthDescriptor,
|
|
7992
8928
|
cwd: TrimmedNonEmptyString,
|
|
7993
8929
|
workspaceAccessRoot: effect.Schema.optional(TrimmedNonEmptyString),
|
|
8930
|
+
chats: effect.Schema.optionalKey(ServerChatsCapability),
|
|
7994
8931
|
keybindingsConfigPath: TrimmedNonEmptyString,
|
|
7995
8932
|
keybindings: ResolvedKeybindingsConfig,
|
|
7996
8933
|
issues: ServerConfigIssues,
|
|
@@ -9521,6 +10458,24 @@ const GitReadLineBlameResult = effect.Schema.Union([effect.Schema.Struct({
|
|
|
9521
10458
|
kind: effect.Schema.Literal("unavailable"),
|
|
9522
10459
|
reason: effect.Schema.String
|
|
9523
10460
|
})]);
|
|
10461
|
+
/**
|
|
10462
|
+
* One stored blob named by a review patch's `index` line. Patches without
|
|
10463
|
+
* `--full-index` carry abbreviated IDs. No path, index or working-tree lookup.
|
|
10464
|
+
*/
|
|
10465
|
+
const GitReadImageBlobInput = effect.Schema.Struct({
|
|
10466
|
+
cwd: TrimmedNonEmptyStringSchema,
|
|
10467
|
+
oid: effect.Schema.String.check(effect.Schema.isPattern(/^(?:[0-9a-f]{4,40}|[0-9a-f]{64})$/))
|
|
10468
|
+
});
|
|
10469
|
+
/** The mime type is sniffed from the blob's bytes, never from a path. */
|
|
10470
|
+
const GitReadImageBlobResult = effect.Schema.Union([effect.Schema.Struct({
|
|
10471
|
+
kind: effect.Schema.Literal("image"),
|
|
10472
|
+
dataBase64: effect.Schema.String,
|
|
10473
|
+
mimeType: TrimmedNonEmptyStringSchema,
|
|
10474
|
+
sizeBytes: NonNegativeInt
|
|
10475
|
+
}), effect.Schema.Struct({
|
|
10476
|
+
kind: effect.Schema.Literal("unavailable"),
|
|
10477
|
+
reason: effect.Schema.String
|
|
10478
|
+
})]);
|
|
9524
10479
|
const GitLocalChangesInput = effect.Schema.Struct({ cwd: TrimmedNonEmptyStringSchema });
|
|
9525
10480
|
const GitLocalChangesScope = effect.Schema.Literals(["staged", "unstaged"]);
|
|
9526
10481
|
const GitLocalPatch = effect.Schema.Struct({
|
|
@@ -9549,6 +10504,402 @@ const GitApplyIndexPatchInput = effect.Schema.Struct({
|
|
|
9549
10504
|
hunkIndex: effect.Schema.optional(NonNegativeInt)
|
|
9550
10505
|
});
|
|
9551
10506
|
//#endregion
|
|
10507
|
+
//#region ../../packages/contracts/src/changeRequestReview.ts
|
|
10508
|
+
/**
|
|
10509
|
+
* Review conversation, timeline, and lifecycle contracts for the dedicated
|
|
10510
|
+
* pull request page. Unlike `SourceControlChangeRequestDetail`, these payloads
|
|
10511
|
+
* are never attached to agent prompts, so they are bounded by page size
|
|
10512
|
+
* rather than by the composer token budget.
|
|
10513
|
+
*/
|
|
10514
|
+
const NonBlankMarkdownBody = effect.Schema.String.check(effect.Schema.makeFilter((body) => body.trim().length > 0 ? void 0 : "Expected a non-blank Markdown body"));
|
|
10515
|
+
/** `left` is the base (deleted) side of a diff, `right` the head (added) side. */
|
|
10516
|
+
const ChangeRequestDiffSide = effect.Schema.Literals(["left", "right"]);
|
|
10517
|
+
const ChangeRequestActor = effect.Schema.Struct({
|
|
10518
|
+
login: TrimmedNonEmptyString,
|
|
10519
|
+
avatarUrl: effect.Schema.optional(effect.Schema.String),
|
|
10520
|
+
isBot: effect.Schema.optional(effect.Schema.Boolean)
|
|
10521
|
+
});
|
|
10522
|
+
const ChangeRequestReviewComment = effect.Schema.Struct({
|
|
10523
|
+
/** Host node id; used for replies, reactions, edits, and deletes. */
|
|
10524
|
+
id: TrimmedNonEmptyString,
|
|
10525
|
+
author: ChangeRequestActor,
|
|
10526
|
+
authorAssociation: effect.Schema.optional(effect.Schema.String),
|
|
10527
|
+
body: effect.Schema.String,
|
|
10528
|
+
createdAt: effect.Schema.DateTimeUtc,
|
|
10529
|
+
updatedAt: effect.Schema.optional(effect.Schema.DateTimeUtc),
|
|
10530
|
+
url: effect.Schema.optional(effect.Schema.String),
|
|
10531
|
+
reactions: effect.Schema.optional(effect.Schema.Array(SourceControlCommentReaction)),
|
|
10532
|
+
/** `pending` comments belong to the viewer's unsubmitted host-side review. */
|
|
10533
|
+
state: effect.Schema.optional(effect.Schema.Literals(["pending", "submitted"])),
|
|
10534
|
+
viewerCanUpdate: effect.Schema.optional(effect.Schema.Boolean),
|
|
10535
|
+
viewerCanDelete: effect.Schema.optional(effect.Schema.Boolean),
|
|
10536
|
+
isMinimized: effect.Schema.optional(effect.Schema.Boolean)
|
|
10537
|
+
});
|
|
10538
|
+
const ChangeRequestReviewThread = effect.Schema.Struct({
|
|
10539
|
+
id: TrimmedNonEmptyString,
|
|
10540
|
+
path: TrimmedNonEmptyString,
|
|
10541
|
+
subjectType: effect.Schema.Literals(["line", "file"]),
|
|
10542
|
+
side: ChangeRequestDiffSide,
|
|
10543
|
+
startSide: effect.Schema.optional(ChangeRequestDiffSide),
|
|
10544
|
+
/** Current anchor line; null when the thread is outdated and no longer maps onto the diff. */
|
|
10545
|
+
line: effect.Schema.NullOr(PositiveInt),
|
|
10546
|
+
startLine: effect.Schema.optional(effect.Schema.NullOr(PositiveInt)),
|
|
10547
|
+
originalLine: effect.Schema.optional(effect.Schema.NullOr(PositiveInt)),
|
|
10548
|
+
originalStartLine: effect.Schema.optional(effect.Schema.NullOr(PositiveInt)),
|
|
10549
|
+
/** Commit the first comment was written on; `originalLine` refers to that commit. */
|
|
10550
|
+
originalCommitOid: effect.Schema.optional(TrimmedNonEmptyString),
|
|
10551
|
+
/** Unified diff excerpt the first comment was written against. */
|
|
10552
|
+
diffHunk: effect.Schema.optional(effect.Schema.String),
|
|
10553
|
+
isResolved: effect.Schema.Boolean,
|
|
10554
|
+
isOutdated: effect.Schema.Boolean,
|
|
10555
|
+
resolvedBy: effect.Schema.optional(TrimmedNonEmptyString),
|
|
10556
|
+
viewerCanReply: effect.Schema.Boolean,
|
|
10557
|
+
viewerCanResolve: effect.Schema.Boolean,
|
|
10558
|
+
viewerCanUnresolve: effect.Schema.Boolean,
|
|
10559
|
+
comments: effect.Schema.Array(ChangeRequestReviewComment),
|
|
10560
|
+
/** Total comments on the host; larger than `comments.length` when paged. */
|
|
10561
|
+
totalComments: NonNegativeInt
|
|
10562
|
+
});
|
|
10563
|
+
const TimelineBase = {
|
|
10564
|
+
id: TrimmedNonEmptyString,
|
|
10565
|
+
createdAt: effect.Schema.DateTimeUtc,
|
|
10566
|
+
actor: effect.Schema.optional(ChangeRequestActor)
|
|
10567
|
+
};
|
|
10568
|
+
const ChangeRequestTimelineComment = effect.Schema.Struct({
|
|
10569
|
+
...TimelineBase,
|
|
10570
|
+
kind: effect.Schema.Literal("comment"),
|
|
10571
|
+
body: effect.Schema.String,
|
|
10572
|
+
authorAssociation: effect.Schema.optional(effect.Schema.String),
|
|
10573
|
+
updatedAt: effect.Schema.optional(effect.Schema.DateTimeUtc),
|
|
10574
|
+
url: effect.Schema.optional(effect.Schema.String),
|
|
10575
|
+
reactions: effect.Schema.optional(effect.Schema.Array(SourceControlCommentReaction)),
|
|
10576
|
+
viewerCanUpdate: effect.Schema.optional(effect.Schema.Boolean),
|
|
10577
|
+
viewerCanDelete: effect.Schema.optional(effect.Schema.Boolean),
|
|
10578
|
+
isMinimized: effect.Schema.optional(effect.Schema.Boolean)
|
|
10579
|
+
});
|
|
10580
|
+
const ChangeRequestTimelineReview = effect.Schema.Struct({
|
|
10581
|
+
...TimelineBase,
|
|
10582
|
+
kind: effect.Schema.Literal("review"),
|
|
10583
|
+
state: SourceControlReviewState,
|
|
10584
|
+
body: effect.Schema.String,
|
|
10585
|
+
authorAssociation: effect.Schema.optional(effect.Schema.String),
|
|
10586
|
+
url: effect.Schema.optional(effect.Schema.String),
|
|
10587
|
+
reactions: effect.Schema.optional(effect.Schema.Array(SourceControlCommentReaction)),
|
|
10588
|
+
/** Review threads opened by this review, so the timeline can nest them. */
|
|
10589
|
+
threadIds: effect.Schema.Array(TrimmedNonEmptyString),
|
|
10590
|
+
viewerCanUpdate: effect.Schema.optional(effect.Schema.Boolean)
|
|
10591
|
+
});
|
|
10592
|
+
const ChangeRequestTimelineCommit = effect.Schema.Struct({
|
|
10593
|
+
...TimelineBase,
|
|
10594
|
+
kind: effect.Schema.Literal("commit"),
|
|
10595
|
+
oid: TrimmedNonEmptyString,
|
|
10596
|
+
shortOid: TrimmedNonEmptyString,
|
|
10597
|
+
messageHeadline: effect.Schema.String,
|
|
10598
|
+
messageBody: effect.Schema.optional(effect.Schema.String),
|
|
10599
|
+
/** Rollup of the commit's checks, when the host reports one. */
|
|
10600
|
+
checkState: effect.Schema.optional(effect.Schema.Literals([
|
|
10601
|
+
"success",
|
|
10602
|
+
"failure",
|
|
10603
|
+
"pending",
|
|
10604
|
+
"neutral"
|
|
10605
|
+
]))
|
|
10606
|
+
});
|
|
10607
|
+
const ChangeRequestTimelineForcePush = effect.Schema.Struct({
|
|
10608
|
+
...TimelineBase,
|
|
10609
|
+
kind: effect.Schema.Literal("force-pushed"),
|
|
10610
|
+
beforeOid: effect.Schema.optional(TrimmedNonEmptyString),
|
|
10611
|
+
afterOid: effect.Schema.optional(TrimmedNonEmptyString)
|
|
10612
|
+
});
|
|
10613
|
+
const ChangeRequestTimelineReviewRequest = effect.Schema.Struct({
|
|
10614
|
+
...TimelineBase,
|
|
10615
|
+
kind: effect.Schema.Literals(["review-requested", "review-request-removed"]),
|
|
10616
|
+
reviewer: TrimmedNonEmptyString,
|
|
10617
|
+
reviewerKind: effect.Schema.Literals([
|
|
10618
|
+
"user",
|
|
10619
|
+
"team",
|
|
10620
|
+
"bot"
|
|
10621
|
+
])
|
|
10622
|
+
});
|
|
10623
|
+
const ChangeRequestTimelineLabel = effect.Schema.Struct({
|
|
10624
|
+
...TimelineBase,
|
|
10625
|
+
kind: effect.Schema.Literals(["labeled", "unlabeled"]),
|
|
10626
|
+
label: SourceControlLabel
|
|
10627
|
+
});
|
|
10628
|
+
const ChangeRequestTimelineAssignment = effect.Schema.Struct({
|
|
10629
|
+
...TimelineBase,
|
|
10630
|
+
kind: effect.Schema.Literals(["assigned", "unassigned"]),
|
|
10631
|
+
assignee: TrimmedNonEmptyString
|
|
10632
|
+
});
|
|
10633
|
+
const ChangeRequestTimelineRename = effect.Schema.Struct({
|
|
10634
|
+
...TimelineBase,
|
|
10635
|
+
kind: effect.Schema.Literal("renamed"),
|
|
10636
|
+
previousTitle: effect.Schema.String,
|
|
10637
|
+
currentTitle: effect.Schema.String
|
|
10638
|
+
});
|
|
10639
|
+
const ChangeRequestTimelineMerged = effect.Schema.Struct({
|
|
10640
|
+
...TimelineBase,
|
|
10641
|
+
kind: effect.Schema.Literal("merged"),
|
|
10642
|
+
commitOid: effect.Schema.optional(TrimmedNonEmptyString),
|
|
10643
|
+
baseRefName: effect.Schema.optional(TrimmedNonEmptyString)
|
|
10644
|
+
});
|
|
10645
|
+
const ChangeRequestTimelineLifecycle = effect.Schema.Struct({
|
|
10646
|
+
...TimelineBase,
|
|
10647
|
+
kind: effect.Schema.Literals([
|
|
10648
|
+
"closed",
|
|
10649
|
+
"reopened",
|
|
10650
|
+
"ready-for-review",
|
|
10651
|
+
"converted-to-draft",
|
|
10652
|
+
"head-ref-deleted",
|
|
10653
|
+
"head-ref-restored"
|
|
10654
|
+
])
|
|
10655
|
+
});
|
|
10656
|
+
const ChangeRequestTimelineBaseChanged = effect.Schema.Struct({
|
|
10657
|
+
...TimelineBase,
|
|
10658
|
+
kind: effect.Schema.Literal("base-ref-changed"),
|
|
10659
|
+
previousRefName: effect.Schema.optional(TrimmedNonEmptyString),
|
|
10660
|
+
currentRefName: effect.Schema.optional(TrimmedNonEmptyString)
|
|
10661
|
+
});
|
|
10662
|
+
const ChangeRequestTimelineCrossReference = effect.Schema.Struct({
|
|
10663
|
+
...TimelineBase,
|
|
10664
|
+
kind: effect.Schema.Literal("cross-referenced"),
|
|
10665
|
+
source: effect.Schema.Struct({
|
|
10666
|
+
kind: effect.Schema.Literals(["issue", "change-request"]),
|
|
10667
|
+
number: PositiveInt,
|
|
10668
|
+
title: effect.Schema.String,
|
|
10669
|
+
url: effect.Schema.String,
|
|
10670
|
+
repository: effect.Schema.optional(TrimmedNonEmptyString),
|
|
10671
|
+
state: effect.Schema.optional(effect.Schema.Literals([
|
|
10672
|
+
"open",
|
|
10673
|
+
"closed",
|
|
10674
|
+
"merged"
|
|
10675
|
+
]))
|
|
10676
|
+
}),
|
|
10677
|
+
willCloseTarget: effect.Schema.optional(effect.Schema.Boolean)
|
|
10678
|
+
});
|
|
10679
|
+
const ChangeRequestTimelineAutoMerge = effect.Schema.Struct({
|
|
10680
|
+
...TimelineBase,
|
|
10681
|
+
kind: effect.Schema.Literals(["auto-merge-enabled", "auto-merge-disabled"]),
|
|
10682
|
+
mergeMethod: effect.Schema.optional(SourceControlChangeRequestMergeMethod)
|
|
10683
|
+
});
|
|
10684
|
+
const ChangeRequestTimelineReviewDismissed = effect.Schema.Struct({
|
|
10685
|
+
...TimelineBase,
|
|
10686
|
+
kind: effect.Schema.Literal("review-dismissed"),
|
|
10687
|
+
reviewAuthor: effect.Schema.optional(TrimmedNonEmptyString),
|
|
10688
|
+
message: effect.Schema.optional(effect.Schema.String)
|
|
10689
|
+
});
|
|
10690
|
+
const ChangeRequestTimelineItem = effect.Schema.Union([
|
|
10691
|
+
ChangeRequestTimelineComment,
|
|
10692
|
+
ChangeRequestTimelineReview,
|
|
10693
|
+
ChangeRequestTimelineCommit,
|
|
10694
|
+
ChangeRequestTimelineForcePush,
|
|
10695
|
+
ChangeRequestTimelineReviewRequest,
|
|
10696
|
+
ChangeRequestTimelineLabel,
|
|
10697
|
+
ChangeRequestTimelineAssignment,
|
|
10698
|
+
ChangeRequestTimelineRename,
|
|
10699
|
+
ChangeRequestTimelineMerged,
|
|
10700
|
+
ChangeRequestTimelineLifecycle,
|
|
10701
|
+
ChangeRequestTimelineBaseChanged,
|
|
10702
|
+
ChangeRequestTimelineCrossReference,
|
|
10703
|
+
ChangeRequestTimelineAutoMerge,
|
|
10704
|
+
ChangeRequestTimelineReviewDismissed
|
|
10705
|
+
]);
|
|
10706
|
+
const ChangeRequestViewerCapabilities = effect.Schema.Struct({
|
|
10707
|
+
login: TrimmedNonEmptyString,
|
|
10708
|
+
isAuthor: effect.Schema.Boolean,
|
|
10709
|
+
/** Edit title/body/base, labels, assignees, reviewers, draft state, close/reopen. */
|
|
10710
|
+
canUpdate: effect.Schema.Boolean,
|
|
10711
|
+
canMerge: effect.Schema.Boolean,
|
|
10712
|
+
canReview: effect.Schema.Boolean,
|
|
10713
|
+
canUpdateBranch: effect.Schema.Boolean,
|
|
10714
|
+
canEnableAutoMerge: effect.Schema.Boolean,
|
|
10715
|
+
canDisableAutoMerge: effect.Schema.Boolean
|
|
10716
|
+
});
|
|
10717
|
+
const ChangeRequestActivityInput = effect.Schema.Struct({
|
|
10718
|
+
cwd: TrimmedNonEmptyString,
|
|
10719
|
+
reference: TrimmedNonEmptyString
|
|
10720
|
+
});
|
|
10721
|
+
const ChangeRequestActivity = effect.Schema.Struct({
|
|
10722
|
+
provider: SourceControlProviderKind,
|
|
10723
|
+
number: PositiveInt,
|
|
10724
|
+
headSha: effect.Schema.NullOr(TrimmedNonEmptyString),
|
|
10725
|
+
viewer: effect.Schema.NullOr(ChangeRequestViewerCapabilities),
|
|
10726
|
+
/** Chronological (oldest first). */
|
|
10727
|
+
timeline: effect.Schema.Array(ChangeRequestTimelineItem),
|
|
10728
|
+
/** True when older timeline items were dropped to stay within the page budget. */
|
|
10729
|
+
timelineTruncated: effect.Schema.Boolean,
|
|
10730
|
+
reviewThreads: effect.Schema.Array(ChangeRequestReviewThread),
|
|
10731
|
+
reviewThreadsTruncated: effect.Schema.Boolean,
|
|
10732
|
+
/** The viewer's unsubmitted host-side review (e.g. started on the web), if any. */
|
|
10733
|
+
pendingReview: effect.Schema.NullOr(effect.Schema.Struct({
|
|
10734
|
+
id: TrimmedNonEmptyString,
|
|
10735
|
+
commentsCount: NonNegativeInt
|
|
10736
|
+
}))
|
|
10737
|
+
});
|
|
10738
|
+
const ChangeRequestReviewEvent = effect.Schema.Literals([
|
|
10739
|
+
"comment",
|
|
10740
|
+
"approve",
|
|
10741
|
+
"request_changes"
|
|
10742
|
+
]);
|
|
10743
|
+
const ChangeRequestDraftReviewComment = effect.Schema.Struct({
|
|
10744
|
+
path: TrimmedNonEmptyString,
|
|
10745
|
+
body: NonBlankMarkdownBody,
|
|
10746
|
+
/** `file` comments attach to the whole file and ignore line/side. */
|
|
10747
|
+
subjectType: effect.Schema.optional(effect.Schema.Literals(["line", "file"])),
|
|
10748
|
+
line: effect.Schema.optional(PositiveInt),
|
|
10749
|
+
side: effect.Schema.optional(ChangeRequestDiffSide),
|
|
10750
|
+
startLine: effect.Schema.optional(PositiveInt),
|
|
10751
|
+
startSide: effect.Schema.optional(ChangeRequestDiffSide)
|
|
10752
|
+
});
|
|
10753
|
+
const ChangeRequestSubmitReviewInput = effect.Schema.Struct({
|
|
10754
|
+
cwd: TrimmedNonEmptyString,
|
|
10755
|
+
reference: TrimmedNonEmptyString,
|
|
10756
|
+
event: ChangeRequestReviewEvent,
|
|
10757
|
+
body: effect.Schema.optional(effect.Schema.String),
|
|
10758
|
+
comments: effect.Schema.Array(ChangeRequestDraftReviewComment),
|
|
10759
|
+
/** The head the comments were written against; the host anchors lines to it. */
|
|
10760
|
+
expectedHeadSha: TrimmedNonEmptyString
|
|
10761
|
+
});
|
|
10762
|
+
const ChangeRequestSubmitReviewResult = effect.Schema.Struct({
|
|
10763
|
+
reviewId: TrimmedNonEmptyString,
|
|
10764
|
+
state: SourceControlReviewState,
|
|
10765
|
+
url: effect.Schema.optional(effect.Schema.String)
|
|
10766
|
+
});
|
|
10767
|
+
const ChangeRequestReplyToThreadInput = effect.Schema.Struct({
|
|
10768
|
+
cwd: TrimmedNonEmptyString,
|
|
10769
|
+
reference: TrimmedNonEmptyString,
|
|
10770
|
+
threadId: TrimmedNonEmptyString,
|
|
10771
|
+
body: NonBlankMarkdownBody,
|
|
10772
|
+
clientMutationId: effect.Schema.optional(TrimmedNonEmptyString)
|
|
10773
|
+
});
|
|
10774
|
+
const ChangeRequestReplyToThreadResult = effect.Schema.Struct({ thread: ChangeRequestReviewThread });
|
|
10775
|
+
const ChangeRequestSetThreadResolvedInput = effect.Schema.Struct({
|
|
10776
|
+
cwd: TrimmedNonEmptyString,
|
|
10777
|
+
reference: TrimmedNonEmptyString,
|
|
10778
|
+
threadId: TrimmedNonEmptyString,
|
|
10779
|
+
resolved: effect.Schema.Boolean
|
|
10780
|
+
});
|
|
10781
|
+
const ChangeRequestSetThreadResolvedResult = effect.Schema.Struct({
|
|
10782
|
+
threadId: TrimmedNonEmptyString,
|
|
10783
|
+
isResolved: effect.Schema.Boolean,
|
|
10784
|
+
resolvedBy: effect.Schema.optional(TrimmedNonEmptyString)
|
|
10785
|
+
});
|
|
10786
|
+
const ChangeRequestCommentKind = effect.Schema.Literals([
|
|
10787
|
+
"issue-comment",
|
|
10788
|
+
"review-comment",
|
|
10789
|
+
"review"
|
|
10790
|
+
]);
|
|
10791
|
+
const ChangeRequestUpdateCommentInput = effect.Schema.Union([effect.Schema.Struct({
|
|
10792
|
+
cwd: TrimmedNonEmptyString,
|
|
10793
|
+
reference: TrimmedNonEmptyString,
|
|
10794
|
+
commentId: TrimmedNonEmptyString,
|
|
10795
|
+
commentKind: ChangeRequestCommentKind,
|
|
10796
|
+
action: effect.Schema.Literal("edit"),
|
|
10797
|
+
body: NonBlankMarkdownBody
|
|
10798
|
+
}), effect.Schema.Struct({
|
|
10799
|
+
cwd: TrimmedNonEmptyString,
|
|
10800
|
+
reference: TrimmedNonEmptyString,
|
|
10801
|
+
commentId: TrimmedNonEmptyString,
|
|
10802
|
+
commentKind: effect.Schema.Literals(["issue-comment", "review-comment"]),
|
|
10803
|
+
action: effect.Schema.Literal("delete")
|
|
10804
|
+
})]);
|
|
10805
|
+
const ChangeRequestUpdateCommentResult = effect.Schema.Struct({
|
|
10806
|
+
commentId: TrimmedNonEmptyString,
|
|
10807
|
+
deleted: effect.Schema.Boolean
|
|
10808
|
+
});
|
|
10809
|
+
const ListEdit = {
|
|
10810
|
+
add: effect.Schema.Array(TrimmedNonEmptyString),
|
|
10811
|
+
remove: effect.Schema.Array(TrimmedNonEmptyString)
|
|
10812
|
+
};
|
|
10813
|
+
const ChangeRequestUpdateAction = effect.Schema.Union([
|
|
10814
|
+
effect.Schema.Struct({
|
|
10815
|
+
kind: effect.Schema.Literal("edit"),
|
|
10816
|
+
title: effect.Schema.optional(TrimmedNonEmptyString),
|
|
10817
|
+
body: effect.Schema.optional(effect.Schema.String),
|
|
10818
|
+
baseRefName: effect.Schema.optional(TrimmedNonEmptyString)
|
|
10819
|
+
}),
|
|
10820
|
+
effect.Schema.Struct({
|
|
10821
|
+
kind: effect.Schema.Literal("set-draft"),
|
|
10822
|
+
draft: effect.Schema.Boolean
|
|
10823
|
+
}),
|
|
10824
|
+
effect.Schema.Struct({
|
|
10825
|
+
kind: effect.Schema.Literal("close"),
|
|
10826
|
+
deleteBranch: effect.Schema.optional(effect.Schema.Boolean)
|
|
10827
|
+
}),
|
|
10828
|
+
effect.Schema.Struct({ kind: effect.Schema.Literal("reopen") }),
|
|
10829
|
+
effect.Schema.Struct({
|
|
10830
|
+
kind: effect.Schema.Literal("reviewers"),
|
|
10831
|
+
...ListEdit
|
|
10832
|
+
}),
|
|
10833
|
+
effect.Schema.Struct({
|
|
10834
|
+
kind: effect.Schema.Literal("labels"),
|
|
10835
|
+
...ListEdit
|
|
10836
|
+
}),
|
|
10837
|
+
effect.Schema.Struct({
|
|
10838
|
+
kind: effect.Schema.Literal("assignees"),
|
|
10839
|
+
...ListEdit
|
|
10840
|
+
}),
|
|
10841
|
+
effect.Schema.Struct({
|
|
10842
|
+
kind: effect.Schema.Literal("update-branch"),
|
|
10843
|
+
method: effect.Schema.Literals(["merge", "rebase"]),
|
|
10844
|
+
expectedHeadSha: TrimmedNonEmptyString
|
|
10845
|
+
}),
|
|
10846
|
+
effect.Schema.Struct({
|
|
10847
|
+
kind: effect.Schema.Literal("auto-merge"),
|
|
10848
|
+
enabled: effect.Schema.Boolean,
|
|
10849
|
+
mergeMethod: effect.Schema.optional(SourceControlChangeRequestMergeMethod),
|
|
10850
|
+
/** When enabling: refuse if the head moved since the user looked (as for merges). */
|
|
10851
|
+
expectedHeadSha: effect.Schema.optional(TrimmedNonEmptyString)
|
|
10852
|
+
}),
|
|
10853
|
+
effect.Schema.Struct({ kind: effect.Schema.Literal("delete-branch") })
|
|
10854
|
+
]);
|
|
10855
|
+
const ChangeRequestUpdateInput = effect.Schema.Struct({
|
|
10856
|
+
cwd: TrimmedNonEmptyString,
|
|
10857
|
+
reference: TrimmedNonEmptyString,
|
|
10858
|
+
action: ChangeRequestUpdateAction
|
|
10859
|
+
});
|
|
10860
|
+
const ChangeRequestUpdateResult = effect.Schema.Struct({
|
|
10861
|
+
/** Fresh, uncapped (`fullContent`) detail after the action. */
|
|
10862
|
+
detail: SourceControlChangeRequestDetail });
|
|
10863
|
+
const ChangeRequestCreateInput = effect.Schema.Struct({
|
|
10864
|
+
cwd: TrimmedNonEmptyString,
|
|
10865
|
+
baseRefName: TrimmedNonEmptyString,
|
|
10866
|
+
/** Branch name, or `owner:branch` for a fork head. */
|
|
10867
|
+
headRefName: TrimmedNonEmptyString,
|
|
10868
|
+
title: TrimmedNonEmptyString,
|
|
10869
|
+
body: effect.Schema.String,
|
|
10870
|
+
draft: effect.Schema.optional(effect.Schema.Boolean)
|
|
10871
|
+
});
|
|
10872
|
+
const CHANGE_REQUEST_FILE_CONTENTS_MAX_BYTES = 1048576;
|
|
10873
|
+
const ChangeRequestFileContentsInput = effect.Schema.Struct({
|
|
10874
|
+
cwd: TrimmedNonEmptyString,
|
|
10875
|
+
reference: TrimmedNonEmptyString,
|
|
10876
|
+
path: TrimmedNonEmptyString,
|
|
10877
|
+
/** Pre-rename path on the base side, when the file moved. */
|
|
10878
|
+
previousPath: effect.Schema.optional(TrimmedNonEmptyString),
|
|
10879
|
+
/**
|
|
10880
|
+
* Old-side revision. Omit for the whole change request: the server resolves
|
|
10881
|
+
* the merge base of the base branch and `headSha`, matching the PR diff.
|
|
10882
|
+
* Pass the parent commit when the diff is scoped to a single commit.
|
|
10883
|
+
*/
|
|
10884
|
+
baseSha: effect.Schema.optional(TrimmedNonEmptyString),
|
|
10885
|
+
headSha: TrimmedNonEmptyString
|
|
10886
|
+
});
|
|
10887
|
+
const ChangeRequestFileContents = effect.Schema.Struct({
|
|
10888
|
+
path: TrimmedNonEmptyString,
|
|
10889
|
+
/** Null when the file does not exist on that side (added/deleted) or is binary. */
|
|
10890
|
+
oldContents: effect.Schema.NullOr(effect.Schema.String),
|
|
10891
|
+
newContents: effect.Schema.NullOr(effect.Schema.String),
|
|
10892
|
+
truncated: effect.Schema.Boolean
|
|
10893
|
+
});
|
|
10894
|
+
/** Server-side involvement filter for change request lists (relative to the viewer). */
|
|
10895
|
+
const ChangeRequestInvolvement = effect.Schema.Literals([
|
|
10896
|
+
"authored",
|
|
10897
|
+
"review-requested",
|
|
10898
|
+
"assigned",
|
|
10899
|
+
"mentioned",
|
|
10900
|
+
"involved"
|
|
10901
|
+
]);
|
|
10902
|
+
//#endregion
|
|
9552
10903
|
//#region ../../packages/contracts/src/atlassian.ts
|
|
9553
10904
|
const AtlassianConnectionKind = effect.Schema.Literals([
|
|
9554
10905
|
"oauth_3lo",
|
|
@@ -10519,6 +11870,15 @@ const AgentControlRequestId = TrimmedNonEmptyString.check(effect.Schema.isMaxLen
|
|
|
10519
11870
|
* per-provider-runtime, in-memory, thread-bound, and revoked on runtime
|
|
10520
11871
|
* teardown — none of that credential material appears in this contract.
|
|
10521
11872
|
*/
|
|
11873
|
+
/** Audit-safe target thread state captured at submission and used to reject stale approved plans. */
|
|
11874
|
+
const AgentControlTargetThreadSnapshot = effect.Schema.Struct({
|
|
11875
|
+
threadId: ThreadId,
|
|
11876
|
+
projectId: ProjectId,
|
|
11877
|
+
runtimeMode: RuntimeMode,
|
|
11878
|
+
envMode: ThreadEnvMode,
|
|
11879
|
+
archived: effect.Schema.Boolean,
|
|
11880
|
+
activeTurnId: effect.Schema.NullOr(TurnId)
|
|
11881
|
+
});
|
|
10522
11882
|
const AgentControlProviderSessionPrincipal = effect.Schema.Struct({
|
|
10523
11883
|
kind: effect.Schema.Literal("provider-session"),
|
|
10524
11884
|
threadId: ThreadId,
|
|
@@ -10532,28 +11892,26 @@ const AgentControlProviderSessionPrincipal = effect.Schema.Struct({
|
|
|
10532
11892
|
originRuntimeMode: effect.Schema.optional(RuntimeMode),
|
|
10533
11893
|
originEnvMode: effect.Schema.optional(ThreadEnvMode),
|
|
10534
11894
|
/** Audit-safe target state used to reject stale approved plans. */
|
|
10535
|
-
targetSnapshots: effect.Schema.optional(effect.Schema.Array(
|
|
10536
|
-
threadId: ThreadId,
|
|
10537
|
-
projectId: ProjectId,
|
|
10538
|
-
runtimeMode: RuntimeMode,
|
|
10539
|
-
envMode: ThreadEnvMode,
|
|
10540
|
-
archived: effect.Schema.Boolean,
|
|
10541
|
-
activeTurnId: effect.Schema.NullOr(TurnId)
|
|
10542
|
-
})))
|
|
11895
|
+
targetSnapshots: effect.Schema.optional(effect.Schema.Array(AgentControlTargetThreadSnapshot))
|
|
10543
11896
|
});
|
|
10544
11897
|
/**
|
|
10545
|
-
* A separately paired local MCP client.
|
|
10546
|
-
*
|
|
10547
|
-
* here so proposals persist a stable, audit-safe origin from day one.
|
|
11898
|
+
* A separately paired local MCP client. It has no caller thread, so its
|
|
11899
|
+
* privilege evidence is the integration's grant ceiling at submission.
|
|
10548
11900
|
*/
|
|
10549
11901
|
const AgentControlExternalIntegrationPrincipal = effect.Schema.Struct({
|
|
10550
11902
|
kind: effect.Schema.Literal("external-integration"),
|
|
10551
11903
|
integrationId: AgentControlIntegrationId,
|
|
10552
11904
|
label: effect.Schema.optional(TrimmedNonEmptyString.check(effect.Schema.isMaxLength(120))),
|
|
10553
|
-
/**
|
|
11905
|
+
/**
|
|
11906
|
+
* Immutable execution-policy evidence captured when the proposal is created:
|
|
11907
|
+
* the task's own policy for created threads, or the integration's runtime
|
|
11908
|
+
* and checkout ceiling for thread control.
|
|
11909
|
+
*/
|
|
10554
11910
|
projectId: effect.Schema.optional(ProjectId),
|
|
10555
11911
|
runtimeMode: effect.Schema.optional(RuntimeMode),
|
|
10556
|
-
envMode: effect.Schema.optional(ThreadEnvMode)
|
|
11912
|
+
envMode: effect.Schema.optional(ThreadEnvMode),
|
|
11913
|
+
/** Audit-safe target state for thread control, used to reject stale approved plans. */
|
|
11914
|
+
targetSnapshots: effect.Schema.optional(effect.Schema.Array(AgentControlTargetThreadSnapshot))
|
|
10557
11915
|
});
|
|
10558
11916
|
/** Owner-authored automation only; never accepted from an MCP principal. */
|
|
10559
11917
|
const AgentControlAutomationOwnerPrincipal = effect.Schema.Struct({
|
|
@@ -10577,6 +11935,8 @@ const AgentControlCapability = agentControlSlug.pipe(effect.Schema.brand("AgentC
|
|
|
10577
11935
|
const AGENT_CONTROL_CAPABILITIES = {
|
|
10578
11936
|
read: AgentControlCapability.make("read"),
|
|
10579
11937
|
attachFile: AgentControlCapability.make("files.attach"),
|
|
11938
|
+
/** Preview HTML pages in Ryco's headless browser and show them inline in the caller's thread. */
|
|
11939
|
+
renderHtml: AgentControlCapability.make("html.render"),
|
|
10580
11940
|
createThreads: AgentControlCapability.make("threads.create"),
|
|
10581
11941
|
sendMessage: AgentControlCapability.make("threads.send-message"),
|
|
10582
11942
|
interruptThread: AgentControlCapability.make("threads.interrupt"),
|
|
@@ -10604,7 +11964,13 @@ const AGENT_CONTROL_CAPABILITIES = {
|
|
|
10604
11964
|
externalReadAutomations: AgentControlCapability.make("external.automations.read"),
|
|
10605
11965
|
externalManageAutomations: AgentControlCapability.make("external.automations.manage"),
|
|
10606
11966
|
externalReadActivity: AgentControlCapability.make("external.activity.read"),
|
|
10607
|
-
externalReadDiagnostics: AgentControlCapability.make("external.diagnostics.read")
|
|
11967
|
+
externalReadDiagnostics: AgentControlCapability.make("external.diagnostics.read"),
|
|
11968
|
+
externalReadThreads: AgentControlCapability.make("external.threads.read"),
|
|
11969
|
+
externalReadReviews: AgentControlCapability.make("external.reviews.read"),
|
|
11970
|
+
externalReadFiles: AgentControlCapability.make("external.files.read"),
|
|
11971
|
+
externalReadWorkspaces: AgentControlCapability.make("external.workspaces.read"),
|
|
11972
|
+
externalControlThreads: AgentControlCapability.make("external.threads.control"),
|
|
11973
|
+
externalManageWorkspaces: AgentControlCapability.make("external.workspaces.manage")
|
|
10608
11974
|
};
|
|
10609
11975
|
const AgentControlActionKind = effect.Schema.Literals([
|
|
10610
11976
|
"createThreads",
|
|
@@ -11817,6 +13183,7 @@ const AgentControlMcpReadDeviceStateResult = effect.Schema.Struct({
|
|
|
11817
13183
|
});
|
|
11818
13184
|
const AgentControlMcpProjectSummary = effect.Schema.Struct({
|
|
11819
13185
|
projectId: ProjectId,
|
|
13186
|
+
kind: OptionalProjectKind,
|
|
11820
13187
|
title: TrimmedNonEmptyString,
|
|
11821
13188
|
createdAt: IsoDateTime,
|
|
11822
13189
|
updatedAt: IsoDateTime
|
|
@@ -12185,7 +13552,24 @@ const AGENT_CONTROL_EXTERNAL_MCP_TOOLS = {
|
|
|
12185
13552
|
recentActivity: "ryco_recent_activity",
|
|
12186
13553
|
orchestrationEvents: "ryco_orchestration_events",
|
|
12187
13554
|
providerRuntimeEvents: "ryco_provider_runtime_events",
|
|
12188
|
-
diagnosticsSummary: "ryco_diagnostics_summary"
|
|
13555
|
+
diagnosticsSummary: "ryco_diagnostics_summary",
|
|
13556
|
+
readControlRequest: "ryco_read_control_request",
|
|
13557
|
+
waitForControlRequest: "ryco_wait_for_control_request",
|
|
13558
|
+
listThreads: "ryco_list_threads",
|
|
13559
|
+
readThread: "ryco_read_thread",
|
|
13560
|
+
searchThreads: "ryco_search_threads",
|
|
13561
|
+
waitThreads: "ryco_wait_threads",
|
|
13562
|
+
inspectThread: "ryco_inspect_thread",
|
|
13563
|
+
readThreadDiff: "ryco_read_thread_diff",
|
|
13564
|
+
readThreadFile: "ryco_read_thread_file",
|
|
13565
|
+
readProject: "ryco_read_project",
|
|
13566
|
+
listWorkspaces: "ryco_list_workspaces",
|
|
13567
|
+
readWorkspace: "ryco_read_workspace",
|
|
13568
|
+
sendMessage: "ryco_send_message",
|
|
13569
|
+
interruptThread: "ryco_interrupt_thread",
|
|
13570
|
+
updateThread: "ryco_update_thread",
|
|
13571
|
+
planWorkspace: "ryco_plan_workspace_lifecycle",
|
|
13572
|
+
proposeWorkspace: "ryco_propose_workspace_lifecycle"
|
|
12189
13573
|
};
|
|
12190
13574
|
const AGENT_CONTROL_EXTERNAL_MCP_TOOL_NAMES = Object.values(AGENT_CONTROL_EXTERNAL_MCP_TOOLS);
|
|
12191
13575
|
const AgentControlExternalCreateTaskInput = effect.Schema.Struct({
|
|
@@ -12374,6 +13758,107 @@ const ProjectReadIconResult = effect.Schema.NullOr(effect.Schema.Struct({
|
|
|
12374
13758
|
])
|
|
12375
13759
|
}));
|
|
12376
13760
|
var ProjectReadIconError = class extends effect.Schema.TaggedError()("ProjectReadIconError", { message: TrimmedNonEmptyString }) {};
|
|
13761
|
+
/** Server-local absolute directory; access and filesystem validation belong to the server. */
|
|
13762
|
+
const ProjectChatDestination = TrimmedNonEmptyString.check(effect.Schema.isMaxLength(4096));
|
|
13763
|
+
/**
|
|
13764
|
+
* Where a promoted chat folder would go. Only `available` can be promoted:
|
|
13765
|
+
* - `exists`: something is already at the destination, or another chat is moving there.
|
|
13766
|
+
* - `invalid`: not an absolute path, or its parent is missing or not a writable directory.
|
|
13767
|
+
* - `access-denied`: the workspace access policy rejects it.
|
|
13768
|
+
* - `inside-chats`: it lies inside the chats root.
|
|
13769
|
+
* - `inside-source`: it lies inside the chat folder being moved.
|
|
13770
|
+
* - `retired-checkout`: it is at or inside a workspace checkout Ryco removed (or is removing or
|
|
13771
|
+
* moving). The server keeps new work out of such paths, so a project there could never run.
|
|
13772
|
+
*/
|
|
13773
|
+
const ProjectChatDestinationStatus = effect.Schema.Literals([
|
|
13774
|
+
"available",
|
|
13775
|
+
"exists",
|
|
13776
|
+
"invalid",
|
|
13777
|
+
"access-denied",
|
|
13778
|
+
"inside-chats",
|
|
13779
|
+
"inside-source",
|
|
13780
|
+
"retired-checkout"
|
|
13781
|
+
]);
|
|
13782
|
+
const ProjectsPromoteChatPreviewInput = effect.Schema.Struct({
|
|
13783
|
+
projectId: ProjectId,
|
|
13784
|
+
/** Absent previews the default destination. Any text is accepted and judged in the result. */
|
|
13785
|
+
destination: effect.Schema.optional(effect.Schema.String.check(effect.Schema.isMaxLength(4096)))
|
|
13786
|
+
});
|
|
13787
|
+
/** Read-only: previewing never creates, moves or locks anything. */
|
|
13788
|
+
const ProjectsPromoteChatPreviewResult = effect.Schema.Struct({
|
|
13789
|
+
projectId: ProjectId,
|
|
13790
|
+
/** The chat folder that would move. */
|
|
13791
|
+
source: TrimmedNonEmptyString,
|
|
13792
|
+
/**
|
|
13793
|
+
* A free folder under `addProjectBaseDirectory` (or its default): `<slug>` when nothing is there,
|
|
13794
|
+
* otherwise the first free `<slug>-2`, `<slug>-3`, …
|
|
13795
|
+
*/
|
|
13796
|
+
defaultDestination: TrimmedNonEmptyString,
|
|
13797
|
+
/** The destination that was judged: the input's (normalized) or the default. */
|
|
13798
|
+
destination: effect.Schema.String,
|
|
13799
|
+
destinationStatus: ProjectChatDestinationStatus,
|
|
13800
|
+
fileCount: NonNegativeInt,
|
|
13801
|
+
totalBytes: NonNegativeInt,
|
|
13802
|
+
/** The scan stopped at its bound; the counts are lower limits. */
|
|
13803
|
+
countTruncated: effect.Schema.Boolean,
|
|
13804
|
+
/** Threads with live work (running turn, pending approval or input, queued dispatch). */
|
|
13805
|
+
busyThreadIds: effect.Schema.Array(ThreadId),
|
|
13806
|
+
gitAvailable: effect.Schema.Boolean,
|
|
13807
|
+
/** Whether `user.name` and `user.email` resolve, so an initial commit can succeed. */
|
|
13808
|
+
gitIdentityConfigured: effect.Schema.Boolean,
|
|
13809
|
+
/** Source and destination are on different devices: the move is a copy, then a delete. */
|
|
13810
|
+
crossDevice: effect.Schema.Boolean
|
|
13811
|
+
});
|
|
13812
|
+
const ProjectsPromoteChatInput = effect.Schema.Struct({
|
|
13813
|
+
projectId: ProjectId,
|
|
13814
|
+
/** Compare-and-set guard against the project as previewed. */
|
|
13815
|
+
expectedUpdatedAt: effect.Schema.optional(IsoDateTime),
|
|
13816
|
+
title: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(200)),
|
|
13817
|
+
destination: ProjectChatDestination,
|
|
13818
|
+
initializeGit: effect.Schema.Boolean,
|
|
13819
|
+
/** Ignored unless `initializeGit`. */
|
|
13820
|
+
initialCommit: effect.Schema.Boolean,
|
|
13821
|
+
/** Ignored unless `initializeGit`; never overwrites an existing `.gitignore`. */
|
|
13822
|
+
writeGitignore: effect.Schema.Boolean
|
|
13823
|
+
});
|
|
13824
|
+
const ProjectsPromoteChatResult = effect.Schema.Struct({
|
|
13825
|
+
projectId: ProjectId,
|
|
13826
|
+
workspaceRoot: TrimmedNonEmptyString,
|
|
13827
|
+
gitInitialized: effect.Schema.Boolean,
|
|
13828
|
+
initialCommitCreated: effect.Schema.Boolean,
|
|
13829
|
+
/** The project was promoted, but its first commit failed (for example, no Git identity). */
|
|
13830
|
+
commitError: effect.Schema.optional(effect.Schema.String)
|
|
13831
|
+
});
|
|
13832
|
+
/**
|
|
13833
|
+
* The explicit "Also delete files" step for a chat. Refused while the chat still has threads, and
|
|
13834
|
+
* never removes anything outside the chats root.
|
|
13835
|
+
*/
|
|
13836
|
+
const ProjectsDeleteChatFolderInput = effect.Schema.Struct({ projectId: ProjectId });
|
|
13837
|
+
const ProjectsDeleteChatFolderResult = effect.Schema.Struct({
|
|
13838
|
+
/** False when the folder was already gone. */
|
|
13839
|
+
deleted: effect.Schema.Boolean });
|
|
13840
|
+
const ProjectChatErrorReason = effect.Schema.Literals([
|
|
13841
|
+
"not-found",
|
|
13842
|
+
"not-chat",
|
|
13843
|
+
"busy",
|
|
13844
|
+
"stale",
|
|
13845
|
+
"destination-exists",
|
|
13846
|
+
"destination-invalid",
|
|
13847
|
+
"destination-inside-chats",
|
|
13848
|
+
"destination-inside-source",
|
|
13849
|
+
"destination-retired-checkout",
|
|
13850
|
+
"access-denied",
|
|
13851
|
+
"move-failed",
|
|
13852
|
+
"git-failed",
|
|
13853
|
+
"chats-unavailable",
|
|
13854
|
+
"has-threads",
|
|
13855
|
+
"outside-chats-root"
|
|
13856
|
+
]);
|
|
13857
|
+
/** One error for every chat-folder RPC; `reason` is the stable, machine-readable part. */
|
|
13858
|
+
var ProjectChatError = class extends effect.Schema.TaggedError()("ProjectChatError", {
|
|
13859
|
+
reason: ProjectChatErrorReason,
|
|
13860
|
+
message: TrimmedNonEmptyString
|
|
13861
|
+
}) {};
|
|
12377
13862
|
//#endregion
|
|
12378
13863
|
//#region ../../packages/contracts/src/filesystem.ts
|
|
12379
13864
|
const FILESYSTEM_PATH_MAX_LENGTH = 512;
|
|
@@ -12397,6 +13882,195 @@ var FilesystemBrowseError = class extends effect.Schema.TaggedError()("Filesyste
|
|
|
12397
13882
|
cause: effect.Schema.optional(effect.Schema.Defect())
|
|
12398
13883
|
}) {};
|
|
12399
13884
|
//#endregion
|
|
13885
|
+
//#region ../../packages/contracts/src/localTasks.ts
|
|
13886
|
+
const LocalTaskId = effect.Schema.String.check(effect.Schema.isPattern(/^[a-zA-Z0-9_-]{1,128}$/));
|
|
13887
|
+
const Title = effect.Schema.String.check(effect.Schema.isMinLength(1), effect.Schema.isMaxLength(500));
|
|
13888
|
+
const Notes = effect.Schema.String.check(effect.Schema.isMaxLength(2e4));
|
|
13889
|
+
const LocalTaskPriority = effect.Schema.Literals([
|
|
13890
|
+
"low",
|
|
13891
|
+
"normal",
|
|
13892
|
+
"high",
|
|
13893
|
+
"urgent"
|
|
13894
|
+
]);
|
|
13895
|
+
const LocalTaskFields = {
|
|
13896
|
+
title: Title,
|
|
13897
|
+
notes: Notes,
|
|
13898
|
+
priority: LocalTaskPriority,
|
|
13899
|
+
dueAt: effect.Schema.NullOr(IsoDateTime),
|
|
13900
|
+
projectId: effect.Schema.NullOr(ProjectId)
|
|
13901
|
+
};
|
|
13902
|
+
const LocalTaskStatus = effect.Schema.Literals([
|
|
13903
|
+
"todo",
|
|
13904
|
+
"starting",
|
|
13905
|
+
"running",
|
|
13906
|
+
"needs-you",
|
|
13907
|
+
"review",
|
|
13908
|
+
"failed",
|
|
13909
|
+
"unavailable",
|
|
13910
|
+
"done"
|
|
13911
|
+
]);
|
|
13912
|
+
const LocalTask = effect.Schema.Struct({
|
|
13913
|
+
taskId: LocalTaskId,
|
|
13914
|
+
revision: NonNegativeInt,
|
|
13915
|
+
...LocalTaskFields,
|
|
13916
|
+
state: effect.Schema.Literals(["todo", "done"]),
|
|
13917
|
+
status: LocalTaskStatus,
|
|
13918
|
+
delegation: effect.Schema.NullOr(effect.Schema.Struct({
|
|
13919
|
+
threadId: ThreadId,
|
|
13920
|
+
messageId: MessageId,
|
|
13921
|
+
commandId: CommandId,
|
|
13922
|
+
dispatched: effect.Schema.Boolean
|
|
13923
|
+
})),
|
|
13924
|
+
createdAt: IsoDateTime,
|
|
13925
|
+
updatedAt: IsoDateTime
|
|
13926
|
+
});
|
|
13927
|
+
const LocalTaskCreateInput = effect.Schema.Struct({
|
|
13928
|
+
taskId: LocalTaskId,
|
|
13929
|
+
...LocalTaskFields
|
|
13930
|
+
});
|
|
13931
|
+
const LocalTaskUpdateInput = effect.Schema.Struct({
|
|
13932
|
+
taskId: LocalTaskId,
|
|
13933
|
+
expectedRevision: NonNegativeInt,
|
|
13934
|
+
title: effect.Schema.optional(Title),
|
|
13935
|
+
notes: effect.Schema.optional(Notes),
|
|
13936
|
+
priority: effect.Schema.optional(LocalTaskPriority),
|
|
13937
|
+
dueAt: effect.Schema.optional(effect.Schema.NullOr(IsoDateTime)),
|
|
13938
|
+
projectId: effect.Schema.optional(effect.Schema.NullOr(ProjectId)),
|
|
13939
|
+
state: effect.Schema.optional(effect.Schema.Literals(["todo", "done"]))
|
|
13940
|
+
});
|
|
13941
|
+
const LocalTaskDeleteInput = effect.Schema.Struct({
|
|
13942
|
+
taskId: LocalTaskId,
|
|
13943
|
+
expectedRevision: NonNegativeInt
|
|
13944
|
+
});
|
|
13945
|
+
const LocalTaskListInput = effect.Schema.Struct({
|
|
13946
|
+
limit: effect.Schema.optional(effect.Schema.Int.check(effect.Schema.isBetween({
|
|
13947
|
+
minimum: 1,
|
|
13948
|
+
maximum: 100
|
|
13949
|
+
}))),
|
|
13950
|
+
afterId: effect.Schema.optional(LocalTaskId)
|
|
13951
|
+
});
|
|
13952
|
+
const LocalTaskListResult = effect.Schema.Struct({
|
|
13953
|
+
tasks: effect.Schema.Array(LocalTask),
|
|
13954
|
+
nextCursor: effect.Schema.NullOr(LocalTaskId)
|
|
13955
|
+
});
|
|
13956
|
+
const LocalTaskDelegateInput = effect.Schema.Struct({
|
|
13957
|
+
taskId: LocalTaskId,
|
|
13958
|
+
expectedRevision: NonNegativeInt,
|
|
13959
|
+
command: ClientThreadTurnStartCommand
|
|
13960
|
+
});
|
|
13961
|
+
var LocalTaskError = class extends effect.Schema.TaggedError()("LocalTaskError", {
|
|
13962
|
+
reason: effect.Schema.Literals([
|
|
13963
|
+
"not-found",
|
|
13964
|
+
"conflict",
|
|
13965
|
+
"invalid",
|
|
13966
|
+
"persistence"
|
|
13967
|
+
]),
|
|
13968
|
+
message: effect.Schema.String
|
|
13969
|
+
}) {};
|
|
13970
|
+
//#endregion
|
|
13971
|
+
//#region ../../packages/contracts/src/notes.ts
|
|
13972
|
+
/** `worktree` belongs to one checkout; `project` is shared by the whole project. */
|
|
13973
|
+
const NoteScope = effect.Schema.Literals(["worktree", "project"]);
|
|
13974
|
+
/** Free text; empty is a cleared document. */
|
|
13975
|
+
const NoteBody = effect.Schema.String.check(effect.Schema.isMaxLength(1e5));
|
|
13976
|
+
/**
|
|
13977
|
+
* One free-text notes document: a checkout's (`scope: "worktree"`, keyed by
|
|
13978
|
+
* its worktree, `null` for the main checkout) or the project's own
|
|
13979
|
+
* (`scope: "project"`, always `worktreeId: null`).
|
|
13980
|
+
*/
|
|
13981
|
+
const NotesDocument = effect.Schema.Struct({
|
|
13982
|
+
projectId: ProjectId,
|
|
13983
|
+
scope: NoteScope,
|
|
13984
|
+
worktreeId: effect.Schema.NullOr(WorktreeId),
|
|
13985
|
+
body: NoteBody,
|
|
13986
|
+
/** Bumped by every save; a document never saved is revision 0 and is not listed. */
|
|
13987
|
+
revision: NonNegativeInt,
|
|
13988
|
+
updatedAt: IsoDateTime
|
|
13989
|
+
});
|
|
13990
|
+
const NotesListInput = effect.Schema.Struct({ projectId: ProjectId });
|
|
13991
|
+
const NotesSnapshot = effect.Schema.Struct({
|
|
13992
|
+
projectId: ProjectId,
|
|
13993
|
+
/** The project's document and every live checkout's, in no particular order. */
|
|
13994
|
+
documents: effect.Schema.Array(NotesDocument)
|
|
13995
|
+
});
|
|
13996
|
+
/** Replaces one document's body; judged against the revision the edit started from. */
|
|
13997
|
+
const NotesCommand = effect.Schema.Struct({
|
|
13998
|
+
kind: effect.Schema.Literal("save"),
|
|
13999
|
+
projectId: ProjectId,
|
|
14000
|
+
scope: NoteScope,
|
|
14001
|
+
/** Must be `null` for the project's document. */
|
|
14002
|
+
worktreeId: effect.Schema.NullOr(WorktreeId),
|
|
14003
|
+
body: NoteBody,
|
|
14004
|
+
/** The revision the edit was based on (0 for a document never saved). */
|
|
14005
|
+
expectedRevision: NonNegativeInt
|
|
14006
|
+
}).annotate({ parseOptions: { onExcessProperty: "error" } });
|
|
14007
|
+
var NotesError = class extends effect.Schema.TaggedError()("NotesError", {
|
|
14008
|
+
reason: effect.Schema.Literals([
|
|
14009
|
+
"conflict",
|
|
14010
|
+
"invalid",
|
|
14011
|
+
"persistence"
|
|
14012
|
+
]),
|
|
14013
|
+
message: effect.Schema.String
|
|
14014
|
+
}) {};
|
|
14015
|
+
//#endregion
|
|
14016
|
+
//#region ../../packages/contracts/src/dailyRecap.ts
|
|
14017
|
+
const DailyRecapRequest = effect.Schema.Struct({
|
|
14018
|
+
date: UsageCalendarDate,
|
|
14019
|
+
timeZone: TrimmedNonEmptyString,
|
|
14020
|
+
/** Maximum threads in each section; defaults to 20. Counts remain complete. */
|
|
14021
|
+
limit: effect.Schema.optional(PositiveInt.check(effect.Schema.isLessThanOrEqualTo(50)))
|
|
14022
|
+
});
|
|
14023
|
+
const DailyRecapThread = effect.Schema.Struct({
|
|
14024
|
+
threadId: ThreadId,
|
|
14025
|
+
threadTitle: effect.Schema.String,
|
|
14026
|
+
projectId: ProjectId,
|
|
14027
|
+
projectTitle: effect.Schema.String,
|
|
14028
|
+
lastActivityAt: IsoDateTime
|
|
14029
|
+
});
|
|
14030
|
+
const DailyRecapAttentionThread = effect.Schema.Struct({
|
|
14031
|
+
...DailyRecapThread.fields,
|
|
14032
|
+
pendingApprovals: NonNegativeInt,
|
|
14033
|
+
pendingUserInputs: NonNegativeInt,
|
|
14034
|
+
hasProposedPlan: effect.Schema.Boolean,
|
|
14035
|
+
sessionError: effect.Schema.Boolean
|
|
14036
|
+
});
|
|
14037
|
+
const DailyRecapThreadSection = effect.Schema.Struct({
|
|
14038
|
+
totalThreads: NonNegativeInt,
|
|
14039
|
+
threads: effect.Schema.Array(DailyRecapThread),
|
|
14040
|
+
truncated: effect.Schema.Boolean
|
|
14041
|
+
});
|
|
14042
|
+
const DailyRecapSnapshot = effect.Schema.Struct({
|
|
14043
|
+
date: UsageCalendarDate,
|
|
14044
|
+
timeZone: TrimmedNonEmptyString,
|
|
14045
|
+
generatedAt: IsoDateTime,
|
|
14046
|
+
/** Exact UTC interval for the selected local calendar day; end is exclusive. */
|
|
14047
|
+
from: IsoDateTime,
|
|
14048
|
+
to: IsoDateTime,
|
|
14049
|
+
/** Ryco turn outcomes in this day, excluding deleted threads and projects. */
|
|
14050
|
+
counts: effect.Schema.Struct({
|
|
14051
|
+
completedTurns: NonNegativeInt,
|
|
14052
|
+
failedTurns: NonNegativeInt,
|
|
14053
|
+
interruptedTurns: NonNegativeInt
|
|
14054
|
+
}),
|
|
14055
|
+
/** Sections are independent: a thread may have both successful and failed turns. */
|
|
14056
|
+
completed: DailyRecapThreadSection,
|
|
14057
|
+
failed: DailyRecapThreadSection,
|
|
14058
|
+
/** Current outstanding attention, regardless of the selected day; excludes archived threads. */
|
|
14059
|
+
needsAttention: effect.Schema.Struct({
|
|
14060
|
+
totalThreads: NonNegativeInt,
|
|
14061
|
+
threads: effect.Schema.Array(DailyRecapAttentionThread),
|
|
14062
|
+
truncated: effect.Schema.Boolean
|
|
14063
|
+
})
|
|
14064
|
+
});
|
|
14065
|
+
var DailyRecapReadError = class extends effect.Schema.TaggedError()("DailyRecapReadError", {
|
|
14066
|
+
reason: effect.Schema.Literals([
|
|
14067
|
+
"invalid-date",
|
|
14068
|
+
"invalid-time-zone",
|
|
14069
|
+
"query-failed"
|
|
14070
|
+
]),
|
|
14071
|
+
detail: TrimmedNonEmptyString
|
|
14072
|
+
}) {};
|
|
14073
|
+
//#endregion
|
|
12400
14074
|
//#region ../../packages/contracts/src/sessionImport.ts
|
|
12401
14075
|
const SessionImportSource = effect.Schema.Literals(["codex", "claudeAgent"]);
|
|
12402
14076
|
const ImportKey = effect.Schema.String.check(effect.Schema.isPattern(/^[a-f0-9]{64}$/));
|
|
@@ -12584,6 +14258,7 @@ const WS_METHODS = {
|
|
|
12584
14258
|
vcsRefreshStatus: "vcs.refreshStatus",
|
|
12585
14259
|
vcsListRefs: "vcs.listRefs",
|
|
12586
14260
|
vcsReadLineBlame: "vcs.readLineBlame",
|
|
14261
|
+
vcsReadImageBlob: "vcs.readImageBlob",
|
|
12587
14262
|
vcsReadLocalChanges: "vcs.readLocalChanges",
|
|
12588
14263
|
vcsApplyIndexPatch: "vcs.applyIndexPatch",
|
|
12589
14264
|
vcsReadComparison: "vcs.readComparison",
|
|
@@ -12600,10 +14275,18 @@ const WS_METHODS = {
|
|
|
12600
14275
|
gitArchiveWorktree: "git.archiveWorktree",
|
|
12601
14276
|
gitRestoreWorktree: "git.restoreWorktree",
|
|
12602
14277
|
gitDeleteWorktree: "git.deleteWorktree",
|
|
14278
|
+
lifecycleListWorkspaces: "lifecycle.listWorkspaces",
|
|
14279
|
+
lifecyclePreviewWorkspace: "lifecycle.previewWorkspace",
|
|
14280
|
+
lifecycleApplyWorkspace: "lifecycle.applyWorkspace",
|
|
14281
|
+
lifecycleSuggestions: "lifecycle.suggestions",
|
|
14282
|
+
lifecycleListTrash: "lifecycle.listTrash",
|
|
12603
14283
|
threadsSetManualBucket: "threads.setManualBucket",
|
|
12604
14284
|
threadsSetManualPosition: "threads.setManualPosition",
|
|
12605
14285
|
worktreesSetManualPosition: "worktrees.setManualPosition",
|
|
12606
14286
|
projectsInitializeGit: "projects.initializeGit",
|
|
14287
|
+
projectsPromoteChatPreview: "projects.promoteChatPreview",
|
|
14288
|
+
projectsPromoteChat: "projects.promoteChat",
|
|
14289
|
+
projectsDeleteChatFolder: "projects.deleteChatFolder",
|
|
12607
14290
|
searchThreadMessages: "threads.searchMessages",
|
|
12608
14291
|
threadPriorityEnsureCurrent: "threadPriority.ensureCurrent",
|
|
12609
14292
|
terminalOpen: "terminal.open",
|
|
@@ -12621,6 +14304,15 @@ const WS_METHODS = {
|
|
|
12621
14304
|
serverAuthenticateAcpRegistry: "server.authenticateAcpRegistry",
|
|
12622
14305
|
serverReadCodexResetCredits: "server.readCodexResetCredits",
|
|
12623
14306
|
serverConsumeCodexResetCredit: "server.consumeCodexResetCredit",
|
|
14307
|
+
serverListLocalTasks: "server.listLocalTasks",
|
|
14308
|
+
serverGetLocalTask: "server.getLocalTask",
|
|
14309
|
+
serverCreateLocalTask: "server.createLocalTask",
|
|
14310
|
+
serverUpdateLocalTask: "server.updateLocalTask",
|
|
14311
|
+
serverDeleteLocalTask: "server.deleteLocalTask",
|
|
14312
|
+
serverDelegateLocalTask: "server.delegateLocalTask",
|
|
14313
|
+
serverGetDailyRecap: "server.getDailyRecap",
|
|
14314
|
+
notesList: "notes.list",
|
|
14315
|
+
notesCommand: "notes.command",
|
|
12624
14316
|
serverRefreshProviders: "server.refreshProviders",
|
|
12625
14317
|
serverUpdateProvider: "server.updateProvider",
|
|
12626
14318
|
serverUpsertKeybinding: "server.upsertKeybinding",
|
|
@@ -12670,6 +14362,14 @@ const WS_METHODS = {
|
|
|
12670
14362
|
sourceControlGetWorkflowRunJobs: "sourceControl.getWorkflowRunJobs",
|
|
12671
14363
|
sourceControlGetWorkflowJobLog: "sourceControl.getWorkflowJobLog",
|
|
12672
14364
|
sourceControlRerunWorkflow: "sourceControl.rerunWorkflow",
|
|
14365
|
+
sourceControlGetChangeRequestActivity: "sourceControl.getChangeRequestActivity",
|
|
14366
|
+
sourceControlGetChangeRequestFileContents: "sourceControl.getChangeRequestFileContents",
|
|
14367
|
+
sourceControlSubmitChangeRequestReview: "sourceControl.submitChangeRequestReview",
|
|
14368
|
+
sourceControlReplyToReviewThread: "sourceControl.replyToReviewThread",
|
|
14369
|
+
sourceControlSetReviewThreadResolved: "sourceControl.setReviewThreadResolved",
|
|
14370
|
+
sourceControlUpdateChangeRequestComment: "sourceControl.updateChangeRequestComment",
|
|
14371
|
+
sourceControlUpdateChangeRequest: "sourceControl.updateChangeRequest",
|
|
14372
|
+
sourceControlCreateChangeRequest: "sourceControl.createChangeRequest",
|
|
12673
14373
|
textGenerationGenerateIssueContent: "textGeneration.generateIssueContent",
|
|
12674
14374
|
textGenerationAskSideQuestion: "textGeneration.askSideQuestion",
|
|
12675
14375
|
textGenerationCancelSideQuestion: "textGeneration.cancelSideQuestion",
|
|
@@ -12873,6 +14573,55 @@ const WsServerConsumeCodexResetCreditRpc = effect_unstable_rpc_Rpc.make(WS_METHO
|
|
|
12873
14573
|
success: effect.Schema.Struct({ outcome: CodexResetCreditOutcome }),
|
|
12874
14574
|
error: effect.Schema.Union([CodexResetCreditError, AuthRpcError])
|
|
12875
14575
|
});
|
|
14576
|
+
const WsServerListLocalTasksRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverListLocalTasks, {
|
|
14577
|
+
payload: LocalTaskListInput,
|
|
14578
|
+
success: LocalTaskListResult,
|
|
14579
|
+
error: effect.Schema.Union([LocalTaskError, AuthRpcError])
|
|
14580
|
+
});
|
|
14581
|
+
const WsServerGetLocalTaskRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverGetLocalTask, {
|
|
14582
|
+
payload: effect.Schema.Struct({ taskId: LocalTaskId }),
|
|
14583
|
+
success: LocalTask,
|
|
14584
|
+
error: effect.Schema.Union([LocalTaskError, AuthRpcError])
|
|
14585
|
+
});
|
|
14586
|
+
const WsServerCreateLocalTaskRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverCreateLocalTask, {
|
|
14587
|
+
payload: LocalTaskCreateInput,
|
|
14588
|
+
success: LocalTask,
|
|
14589
|
+
error: effect.Schema.Union([LocalTaskError, AuthRpcError])
|
|
14590
|
+
});
|
|
14591
|
+
const WsServerUpdateLocalTaskRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverUpdateLocalTask, {
|
|
14592
|
+
payload: LocalTaskUpdateInput,
|
|
14593
|
+
success: LocalTask,
|
|
14594
|
+
error: effect.Schema.Union([LocalTaskError, AuthRpcError])
|
|
14595
|
+
});
|
|
14596
|
+
const WsServerDeleteLocalTaskRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverDeleteLocalTask, {
|
|
14597
|
+
payload: LocalTaskDeleteInput,
|
|
14598
|
+
success: effect.Schema.Struct({ deleted: effect.Schema.Literal(true) }),
|
|
14599
|
+
error: effect.Schema.Union([LocalTaskError, AuthRpcError])
|
|
14600
|
+
});
|
|
14601
|
+
const WsServerDelegateLocalTaskRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverDelegateLocalTask, {
|
|
14602
|
+
payload: LocalTaskDelegateInput,
|
|
14603
|
+
success: LocalTask,
|
|
14604
|
+
error: effect.Schema.Union([
|
|
14605
|
+
LocalTaskError,
|
|
14606
|
+
AuthRpcError,
|
|
14607
|
+
OrchestrationDispatchCommandError
|
|
14608
|
+
])
|
|
14609
|
+
});
|
|
14610
|
+
const WsNotesListRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.notesList, {
|
|
14611
|
+
payload: NotesListInput,
|
|
14612
|
+
success: NotesSnapshot,
|
|
14613
|
+
error: effect.Schema.Union([NotesError, AuthRpcError])
|
|
14614
|
+
});
|
|
14615
|
+
const WsNotesCommandRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.notesCommand, {
|
|
14616
|
+
payload: NotesCommand,
|
|
14617
|
+
success: NotesSnapshot,
|
|
14618
|
+
error: effect.Schema.Union([NotesError, AuthRpcError])
|
|
14619
|
+
});
|
|
14620
|
+
const WsServerGetDailyRecapRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverGetDailyRecap, {
|
|
14621
|
+
payload: DailyRecapRequest,
|
|
14622
|
+
success: DailyRecapSnapshot,
|
|
14623
|
+
error: effect.Schema.Union([DailyRecapReadError, AuthRpcError])
|
|
14624
|
+
});
|
|
12876
14625
|
const WsServerRefreshProvidersRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.serverRefreshProviders, {
|
|
12877
14626
|
payload: effect.Schema.Struct({
|
|
12878
14627
|
/**
|
|
@@ -13051,7 +14800,9 @@ const WsSourceControlListChangeRequestsRpc = effect_unstable_rpc_Rpc.make(WS_MET
|
|
|
13051
14800
|
"all"
|
|
13052
14801
|
]),
|
|
13053
14802
|
limit: effect.Schema.optional(effect.Schema.Number),
|
|
13054
|
-
query: effect.Schema.optional(effect.Schema.String)
|
|
14803
|
+
query: effect.Schema.optional(effect.Schema.String),
|
|
14804
|
+
/** Narrow to change requests involving the authenticated viewer. */
|
|
14805
|
+
involvement: effect.Schema.optional(ChangeRequestInvolvement)
|
|
13055
14806
|
}),
|
|
13056
14807
|
success: effect.Schema.Array(ChangeRequest),
|
|
13057
14808
|
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
@@ -13088,7 +14839,9 @@ const WsSourceControlGetChangeRequestDiffRpc = effect_unstable_rpc_Rpc.make(WS_M
|
|
|
13088
14839
|
payload: effect.Schema.Struct({
|
|
13089
14840
|
cwd: effect.Schema.String,
|
|
13090
14841
|
reference: effect.Schema.String,
|
|
13091
|
-
expectedHeadSha: effect.Schema.optional(TrimmedNonEmptyString)
|
|
14842
|
+
expectedHeadSha: effect.Schema.optional(TrimmedNonEmptyString),
|
|
14843
|
+
/** Scope the diff to a single commit of the change request. */
|
|
14844
|
+
commitSha: effect.Schema.optional(TrimmedNonEmptyString)
|
|
13092
14845
|
}),
|
|
13093
14846
|
success: effect.Schema.String,
|
|
13094
14847
|
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
@@ -13137,24 +14890,64 @@ const WsSourceControlListIssueAssigneesRpc = effect_unstable_rpc_Rpc.make(WS_MET
|
|
|
13137
14890
|
success: effect.Schema.Array(SourceControlAssigneeCandidate),
|
|
13138
14891
|
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
13139
14892
|
});
|
|
13140
|
-
const WsSourceControlListWorkflowRunsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlListWorkflowRuns, {
|
|
13141
|
-
payload: SourceControlWorkflowRunListInput,
|
|
13142
|
-
success: SourceControlWorkflowRunListResult,
|
|
14893
|
+
const WsSourceControlListWorkflowRunsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlListWorkflowRuns, {
|
|
14894
|
+
payload: SourceControlWorkflowRunListInput,
|
|
14895
|
+
success: SourceControlWorkflowRunListResult,
|
|
14896
|
+
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
14897
|
+
});
|
|
14898
|
+
const WsSourceControlGetWorkflowRunJobsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlGetWorkflowRunJobs, {
|
|
14899
|
+
payload: SourceControlWorkflowRunJobsInput,
|
|
14900
|
+
success: SourceControlWorkflowRunJobsResult,
|
|
14901
|
+
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
14902
|
+
});
|
|
14903
|
+
const WsSourceControlGetWorkflowJobLogRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlGetWorkflowJobLog, {
|
|
14904
|
+
payload: SourceControlWorkflowJobLogInput,
|
|
14905
|
+
success: SourceControlWorkflowJobLogResult,
|
|
14906
|
+
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
14907
|
+
});
|
|
14908
|
+
const WsSourceControlRerunWorkflowRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlRerunWorkflow, {
|
|
14909
|
+
payload: SourceControlWorkflowRerunInput,
|
|
14910
|
+
success: SourceControlWorkflowRerunResult,
|
|
14911
|
+
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
14912
|
+
});
|
|
14913
|
+
const WsSourceControlGetChangeRequestActivityRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlGetChangeRequestActivity, {
|
|
14914
|
+
payload: ChangeRequestActivityInput,
|
|
14915
|
+
success: ChangeRequestActivity,
|
|
14916
|
+
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
14917
|
+
});
|
|
14918
|
+
const WsSourceControlGetChangeRequestFileContentsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlGetChangeRequestFileContents, {
|
|
14919
|
+
payload: ChangeRequestFileContentsInput,
|
|
14920
|
+
success: ChangeRequestFileContents,
|
|
14921
|
+
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
14922
|
+
});
|
|
14923
|
+
const WsSourceControlSubmitChangeRequestReviewRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlSubmitChangeRequestReview, {
|
|
14924
|
+
payload: ChangeRequestSubmitReviewInput,
|
|
14925
|
+
success: ChangeRequestSubmitReviewResult,
|
|
14926
|
+
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
14927
|
+
});
|
|
14928
|
+
const WsSourceControlReplyToReviewThreadRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlReplyToReviewThread, {
|
|
14929
|
+
payload: ChangeRequestReplyToThreadInput,
|
|
14930
|
+
success: ChangeRequestReplyToThreadResult,
|
|
14931
|
+
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
14932
|
+
});
|
|
14933
|
+
const WsSourceControlSetReviewThreadResolvedRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlSetReviewThreadResolved, {
|
|
14934
|
+
payload: ChangeRequestSetThreadResolvedInput,
|
|
14935
|
+
success: ChangeRequestSetThreadResolvedResult,
|
|
13143
14936
|
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
13144
14937
|
});
|
|
13145
|
-
const
|
|
13146
|
-
payload:
|
|
13147
|
-
success:
|
|
14938
|
+
const WsSourceControlUpdateChangeRequestCommentRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlUpdateChangeRequestComment, {
|
|
14939
|
+
payload: ChangeRequestUpdateCommentInput,
|
|
14940
|
+
success: ChangeRequestUpdateCommentResult,
|
|
13148
14941
|
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
13149
14942
|
});
|
|
13150
|
-
const
|
|
13151
|
-
payload:
|
|
13152
|
-
success:
|
|
14943
|
+
const WsSourceControlUpdateChangeRequestRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlUpdateChangeRequest, {
|
|
14944
|
+
payload: ChangeRequestUpdateInput,
|
|
14945
|
+
success: ChangeRequestUpdateResult,
|
|
13153
14946
|
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
13154
14947
|
});
|
|
13155
|
-
const
|
|
13156
|
-
payload:
|
|
13157
|
-
success:
|
|
14948
|
+
const WsSourceControlCreateChangeRequestRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.sourceControlCreateChangeRequest, {
|
|
14949
|
+
payload: ChangeRequestCreateInput,
|
|
14950
|
+
success: ChangeRequest,
|
|
13158
14951
|
error: effect.Schema.Union([SourceControlProviderError, AuthRpcError])
|
|
13159
14952
|
});
|
|
13160
14953
|
const WsTextGenerationAskSideQuestionRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.textGenerationAskSideQuestion, {
|
|
@@ -13449,6 +15242,31 @@ const WsGitDeleteWorktreeRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.gitDelete
|
|
|
13449
15242
|
success: EmptyRpcResult,
|
|
13450
15243
|
error: effect.Schema.Union([GitManagerServiceError, AuthRpcError])
|
|
13451
15244
|
});
|
|
15245
|
+
const WsLifecycleListWorkspacesRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.lifecycleListWorkspaces, {
|
|
15246
|
+
payload: WorkspaceLifecycleListInput,
|
|
15247
|
+
success: effect.Schema.Array(WorkspaceLifecycleSummary),
|
|
15248
|
+
error: effect.Schema.Union([WorkspaceLifecycleError, AuthRpcError])
|
|
15249
|
+
});
|
|
15250
|
+
const WsLifecyclePreviewWorkspaceRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.lifecyclePreviewWorkspace, {
|
|
15251
|
+
payload: WorkspaceLifecycleRequest,
|
|
15252
|
+
success: WorkspaceLifecyclePreview,
|
|
15253
|
+
error: effect.Schema.Union([WorkspaceLifecycleError, AuthRpcError])
|
|
15254
|
+
});
|
|
15255
|
+
const WsLifecycleApplyWorkspaceRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.lifecycleApplyWorkspace, {
|
|
15256
|
+
payload: WorkspaceLifecycleApplyInput,
|
|
15257
|
+
success: WorkspaceLifecycleResult,
|
|
15258
|
+
error: effect.Schema.Union([WorkspaceLifecycleError, AuthRpcError])
|
|
15259
|
+
});
|
|
15260
|
+
const WsLifecycleSuggestionsRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.lifecycleSuggestions, {
|
|
15261
|
+
payload: effect.Schema.Struct({}),
|
|
15262
|
+
success: LifecycleSuggestions,
|
|
15263
|
+
error: effect.Schema.Union([WorkspaceLifecycleError, AuthRpcError])
|
|
15264
|
+
});
|
|
15265
|
+
const WsLifecycleListTrashRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.lifecycleListTrash, {
|
|
15266
|
+
payload: effect.Schema.Struct({}),
|
|
15267
|
+
success: TrashListResult,
|
|
15268
|
+
error: effect.Schema.Union([WorkspaceLifecycleError, AuthRpcError])
|
|
15269
|
+
});
|
|
13452
15270
|
const WsThreadsSetManualBucketRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.threadsSetManualBucket, {
|
|
13453
15271
|
payload: ThreadsSetManualBucketInput,
|
|
13454
15272
|
success: EmptyRpcResult,
|
|
@@ -13479,11 +15297,31 @@ const WsProjectsInitializeGitRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.proje
|
|
|
13479
15297
|
success: EmptyRpcResult,
|
|
13480
15298
|
error: effect.Schema.Union([GitManagerServiceError, AuthRpcError])
|
|
13481
15299
|
});
|
|
15300
|
+
const WsProjectsPromoteChatPreviewRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.projectsPromoteChatPreview, {
|
|
15301
|
+
payload: ProjectsPromoteChatPreviewInput,
|
|
15302
|
+
success: ProjectsPromoteChatPreviewResult,
|
|
15303
|
+
error: effect.Schema.Union([ProjectChatError, AuthRpcError])
|
|
15304
|
+
});
|
|
15305
|
+
const WsProjectsPromoteChatRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.projectsPromoteChat, {
|
|
15306
|
+
payload: ProjectsPromoteChatInput,
|
|
15307
|
+
success: ProjectsPromoteChatResult,
|
|
15308
|
+
error: effect.Schema.Union([ProjectChatError, AuthRpcError])
|
|
15309
|
+
});
|
|
15310
|
+
const WsProjectsDeleteChatFolderRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.projectsDeleteChatFolder, {
|
|
15311
|
+
payload: ProjectsDeleteChatFolderInput,
|
|
15312
|
+
success: ProjectsDeleteChatFolderResult,
|
|
15313
|
+
error: effect.Schema.Union([ProjectChatError, AuthRpcError])
|
|
15314
|
+
});
|
|
13482
15315
|
const WsVcsReadLineBlameRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.vcsReadLineBlame, {
|
|
13483
15316
|
payload: GitReadLineBlameInput,
|
|
13484
15317
|
success: GitReadLineBlameResult,
|
|
13485
15318
|
error: effect.Schema.Union([GitCommandError, AuthRpcError])
|
|
13486
15319
|
});
|
|
15320
|
+
const WsVcsReadImageBlobRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.vcsReadImageBlob, {
|
|
15321
|
+
payload: GitReadImageBlobInput,
|
|
15322
|
+
success: GitReadImageBlobResult,
|
|
15323
|
+
error: effect.Schema.Union([GitCommandError, AuthRpcError])
|
|
15324
|
+
});
|
|
13487
15325
|
const WsVcsReadLocalChangesRpc = effect_unstable_rpc_Rpc.make(WS_METHODS.vcsReadLocalChanges, {
|
|
13488
15326
|
payload: GitLocalChangesInput,
|
|
13489
15327
|
success: GitLocalChangesResult,
|
|
@@ -13762,7 +15600,7 @@ const WsAgentControlDisconnectMcpInstallationRpc = effect_unstable_rpc_Rpc.make(
|
|
|
13762
15600
|
error: effect.Schema.Union([AgentControlExternalRpcError, AuthRpcError])
|
|
13763
15601
|
});
|
|
13764
15602
|
/** Keep declaration emit bounded as shared settings and RPC schemas grow. */
|
|
13765
|
-
const WsRpcGroup = effect_unstable_rpc_RpcGroup.make(WsSessionImportSourcesRpc, WsSessionImportReconcileRpc, WsSessionImportAdoptRpc, WsSessionImportDiscoverRpc, WsSessionImportRunRpc, WsServerGetConfigRpc, WsServerGetAdvertisedEndpointsRpc, WsServerGetDiagnosticsMetricsRpc, WsServerGetStatisticsRpc, WsServerGetUsageSummaryRpc, WsServerSearchAcpRegistryRpc, WsServerInstallAcpRegistryRpc, WsServerGetAcpRegistryAuthMethodsRpc, WsServerAuthenticateAcpRegistryRpc, WsServerReadCodexResetCreditsRpc, WsServerConsumeCodexResetCreditRpc, WsServerRefreshProvidersRpc, WsServerUpdateProviderRpc, WsServerUpsertKeybindingRpc, WsKeybindingsReplaceCustomRpc, WsServerGetProjectPreferencesRpc, WsServerGetSettingsRpc, WsServerUpdateSettingsRpc, WsServerGetDiagnosticsSnapshotRpc, WsServerSignalDiagnosticProcessRpc, WsServerGetResourceTelemetryHistoryRpc, WsServerRetryResourceTelemetryRpc, WsServerDiscoverSourceControlRpc, WsServerListOpinionatedPluginsRpc, WsServerCheckOpinionatedPluginsRpc, WsServerInstallOpinionatedPluginRpc, WsMcpListWorkspacesRpc, WsMcpListServersRpc, WsMcpUpsertServerRpc, WsMcpSetServerEnabledRpc, WsMcpRemoveServerRpc, WsMcpReloadServersRpc, WsMcpStartOauthLoginRpc, WsSourceControlLookupRepositoryRpc, WsSourceControlSearchRepositoriesRpc, WsSourceControlCloneRepositoryRpc, WsSourceControlPublishRepositoryRpc, WsSourceControlListIssuesRpc, WsSourceControlGetIssueRpc, WsSourceControlSearchIssuesRpc, WsSourceControlListChangeRequestsRpc, WsSourceControlSearchChangeRequestsRpc, WsSourceControlGetChangeRequestDetailRpc, WsSourceControlGetChangeRequestFilesViewedRpc, WsSourceControlSetChangeRequestFileViewedRpc, WsSourceControlGetChangeRequestDiffRpc, WsSourceControlMergeChangeRequestRpc, WsSourceControlCreateIssueRpc, WsSourceControlAddIssueCommentRpc, WsSourceControlAddIssueCommentReactionRpc, WsSourceControlAddChangeRequestCommentRpc, WsSourceControlAddChangeRequestCommentReactionRpc, WsSourceControlListIssueLabelsRpc, WsSourceControlListIssueAssigneesRpc, WsSourceControlListWorkflowRunsRpc, WsSourceControlGetWorkflowRunJobsRpc, WsSourceControlGetWorkflowJobLogRpc, WsSourceControlRerunWorkflowRpc, WsTextGenerationAskSideQuestionRpc, WsTextGenerationCancelSideQuestionRpc, WsTextGenerationGenerateIssueContentRpc, WsTextGenerationGenerateBranchNameRpc, WsAtlassianListConnectionsRpc, WsAtlassianStartOAuthRpc, WsAtlassianDisconnectRpc, WsAtlassianRefreshRpc, WsAtlassianListResourcesRpc, WsAtlassianGetProjectLinkRpc, WsAtlassianSaveProjectLinkRpc, WsAtlassianSaveManualBitbucketTokenRpc, WsAtlassianSaveManualJiraTokenRpc, WsWorkItemsListProjectsRpc, WsWorkItemsListRpc, WsWorkItemsSearchRpc, WsWorkItemsGetRpc, WsWorkItemsAddCommentRpc, WsWorkItemsEditCommentRpc, WsWorkItemsUpdateRpc, WsWorkItemsListTransitionsRpc, WsWorkItemsTransitionRpc, WsProjectsListEntriesRpc, WsProjectsSearchEntriesRpc, WsProjectsReadFileRpc, WsProjectsReadIconRpc, WsProjectsReadFileBinaryRpc, WsProjectsWriteFileRpc, WsProjectsStageFileReferenceRpc, WsChatAttachmentsCreateFileUploadRpc, WsChatAttachmentsReadChunkRpc, WsShellOpenInEditorRpc, WsFilesystemBrowseRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsStorageScanRpc, WsStoragePreviewRpc, WsStorageExecuteRpc, WsGitCreateWorktreeForProjectRpc, WsGitFindWorktreeForOriginRpc, WsGitArchiveWorktreeRpc, WsGitRestoreWorktreeRpc, WsGitDeleteWorktreeRpc, WsThreadsSetManualBucketRpc, WsThreadsSetManualPositionRpc, WsSearchThreadMessagesRpc, WsThreadPriorityEnsureCurrentRpc, WsWorktreesSetManualPositionRpc, WsProjectsInitializeGitRpc, WsVcsReadLineBlameRpc, WsVcsReadLocalChangesRpc, WsVcsApplyIndexPatchRpc, WsVcsReadComparisonRpc, WsVcsListRefsRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsTerminalOpenRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsSubscribeTerminalEventsRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeAuthAccessRpc, WsAutomationCentreRpc, WsAutomationCommandRpc, WsAgentControlListProposalsRpc, WsAgentControlGetProposalRpc, WsAgentControlAcceptProposalRpc, WsAgentControlRejectProposalRpc, WsAgentControlSubscribeProposalsRpc, WsAgentControlListIntegrationsRpc, WsAgentControlCreateIntegrationRpc, WsAgentControlUpdateIntegrationRpc, WsAgentControlResumeIntegrationPairingRpc, WsAgentControlRevokeIntegrationRpc, WsAgentControlDeleteIntegrationRpc, WsAgentControlListMcpInstallationsRpc, WsAgentControlConnectMcpInstallationRpc, WsAgentControlRepairMcpInstallationRpc, WsAgentControlDisconnectMcpInstallationRpc, WsOrchestrationDispatchCommandRpc, WsOrchestrationGetWorkflowScriptRpc, WsOrchestrationGetTaskOutputRpc, WsOrchestrationStopBackgroundTaskRpc, WsOrchestrationGetTurnDiffRpc, WsOrchestrationGetFullThreadDiffRpc, WsOrchestrationSearchThreadMessagesRpc, WsOrchestrationGetThreadWindowRpc, WsOrchestrationGetThreadHistoryPageRpc, WsOrchestrationReplayEventsRpc, WsOrchestrationReplayEventsPageRpc, WsOrchestrationSubscribeShellRpc, WsOrchestrationSubscribeThreadRpc, WsOrchestrationSubscribeThreadWindowRpc, WsContextHandoffGetInspectionSummaryRpc, WsContextHandoffListInspectionEntriesRpc, WsContextHandoffReadRawPayloadChunkRpc, WsContextHandoffReadExportChunkRpc);
|
|
15603
|
+
const WsRpcGroup = effect_unstable_rpc_RpcGroup.make(WsSessionImportSourcesRpc, WsSessionImportReconcileRpc, WsSessionImportAdoptRpc, WsSessionImportDiscoverRpc, WsSessionImportRunRpc, WsServerGetConfigRpc, WsServerGetAdvertisedEndpointsRpc, WsServerGetDiagnosticsMetricsRpc, WsServerGetStatisticsRpc, WsServerGetUsageSummaryRpc, WsServerSearchAcpRegistryRpc, WsServerInstallAcpRegistryRpc, WsServerGetAcpRegistryAuthMethodsRpc, WsServerAuthenticateAcpRegistryRpc, WsServerReadCodexResetCreditsRpc, WsServerConsumeCodexResetCreditRpc, WsServerListLocalTasksRpc, WsServerGetLocalTaskRpc, WsServerCreateLocalTaskRpc, WsServerUpdateLocalTaskRpc, WsServerDeleteLocalTaskRpc, WsServerDelegateLocalTaskRpc, WsNotesListRpc, WsNotesCommandRpc, WsServerGetDailyRecapRpc, WsServerRefreshProvidersRpc, WsServerUpdateProviderRpc, WsServerUpsertKeybindingRpc, WsKeybindingsReplaceCustomRpc, WsServerGetProjectPreferencesRpc, WsServerGetSettingsRpc, WsServerUpdateSettingsRpc, WsServerGetDiagnosticsSnapshotRpc, WsServerSignalDiagnosticProcessRpc, WsServerGetResourceTelemetryHistoryRpc, WsServerRetryResourceTelemetryRpc, WsServerDiscoverSourceControlRpc, WsServerListOpinionatedPluginsRpc, WsServerCheckOpinionatedPluginsRpc, WsServerInstallOpinionatedPluginRpc, WsMcpListWorkspacesRpc, WsMcpListServersRpc, WsMcpUpsertServerRpc, WsMcpSetServerEnabledRpc, WsMcpRemoveServerRpc, WsMcpReloadServersRpc, WsMcpStartOauthLoginRpc, WsSourceControlLookupRepositoryRpc, WsSourceControlSearchRepositoriesRpc, WsSourceControlCloneRepositoryRpc, WsSourceControlPublishRepositoryRpc, WsSourceControlListIssuesRpc, WsSourceControlGetIssueRpc, WsSourceControlSearchIssuesRpc, WsSourceControlListChangeRequestsRpc, WsSourceControlSearchChangeRequestsRpc, WsSourceControlGetChangeRequestDetailRpc, WsSourceControlGetChangeRequestFilesViewedRpc, WsSourceControlSetChangeRequestFileViewedRpc, WsSourceControlGetChangeRequestDiffRpc, WsSourceControlMergeChangeRequestRpc, WsSourceControlCreateIssueRpc, WsSourceControlAddIssueCommentRpc, WsSourceControlAddIssueCommentReactionRpc, WsSourceControlAddChangeRequestCommentRpc, WsSourceControlAddChangeRequestCommentReactionRpc, WsSourceControlListIssueLabelsRpc, WsSourceControlListIssueAssigneesRpc, WsSourceControlListWorkflowRunsRpc, WsSourceControlGetWorkflowRunJobsRpc, WsSourceControlGetWorkflowJobLogRpc, WsSourceControlRerunWorkflowRpc, WsSourceControlGetChangeRequestActivityRpc, WsSourceControlGetChangeRequestFileContentsRpc, WsSourceControlSubmitChangeRequestReviewRpc, WsSourceControlReplyToReviewThreadRpc, WsSourceControlSetReviewThreadResolvedRpc, WsSourceControlUpdateChangeRequestCommentRpc, WsSourceControlUpdateChangeRequestRpc, WsSourceControlCreateChangeRequestRpc, WsTextGenerationAskSideQuestionRpc, WsTextGenerationCancelSideQuestionRpc, WsTextGenerationGenerateIssueContentRpc, WsTextGenerationGenerateBranchNameRpc, WsAtlassianListConnectionsRpc, WsAtlassianStartOAuthRpc, WsAtlassianDisconnectRpc, WsAtlassianRefreshRpc, WsAtlassianListResourcesRpc, WsAtlassianGetProjectLinkRpc, WsAtlassianSaveProjectLinkRpc, WsAtlassianSaveManualBitbucketTokenRpc, WsAtlassianSaveManualJiraTokenRpc, WsWorkItemsListProjectsRpc, WsWorkItemsListRpc, WsWorkItemsSearchRpc, WsWorkItemsGetRpc, WsWorkItemsAddCommentRpc, WsWorkItemsEditCommentRpc, WsWorkItemsUpdateRpc, WsWorkItemsListTransitionsRpc, WsWorkItemsTransitionRpc, WsProjectsListEntriesRpc, WsProjectsSearchEntriesRpc, WsProjectsReadFileRpc, WsProjectsReadIconRpc, WsProjectsReadFileBinaryRpc, WsProjectsWriteFileRpc, WsProjectsStageFileReferenceRpc, WsChatAttachmentsCreateFileUploadRpc, WsChatAttachmentsReadChunkRpc, WsShellOpenInEditorRpc, WsFilesystemBrowseRpc, WsSubscribeVcsStatusRpc, WsVcsPullRpc, WsVcsRefreshStatusRpc, WsGitRunStackedActionRpc, WsGitResolvePullRequestRpc, WsGitPreparePullRequestThreadRpc, WsStorageScanRpc, WsStoragePreviewRpc, WsStorageExecuteRpc, WsGitCreateWorktreeForProjectRpc, WsGitFindWorktreeForOriginRpc, WsGitArchiveWorktreeRpc, WsGitRestoreWorktreeRpc, WsGitDeleteWorktreeRpc, WsLifecycleListWorkspacesRpc, WsLifecyclePreviewWorkspaceRpc, WsLifecycleApplyWorkspaceRpc, WsLifecycleSuggestionsRpc, WsLifecycleListTrashRpc, WsThreadsSetManualBucketRpc, WsThreadsSetManualPositionRpc, WsSearchThreadMessagesRpc, WsThreadPriorityEnsureCurrentRpc, WsWorktreesSetManualPositionRpc, WsProjectsInitializeGitRpc, WsProjectsPromoteChatPreviewRpc, WsProjectsPromoteChatRpc, WsProjectsDeleteChatFolderRpc, WsVcsReadLineBlameRpc, WsVcsReadImageBlobRpc, WsVcsReadLocalChangesRpc, WsVcsApplyIndexPatchRpc, WsVcsReadComparisonRpc, WsVcsListRefsRpc, WsVcsCreateWorktreeRpc, WsVcsRemoveWorktreeRpc, WsVcsCreateRefRpc, WsVcsSwitchRefRpc, WsVcsInitRpc, WsTerminalOpenRpc, WsTerminalWriteRpc, WsTerminalResizeRpc, WsTerminalClearRpc, WsTerminalRestartRpc, WsTerminalCloseRpc, WsSubscribeTerminalEventsRpc, WsSubscribeServerConfigRpc, WsSubscribeServerLifecycleRpc, WsSubscribeAuthAccessRpc, WsAutomationCentreRpc, WsAutomationCommandRpc, WsAgentControlListProposalsRpc, WsAgentControlGetProposalRpc, WsAgentControlAcceptProposalRpc, WsAgentControlRejectProposalRpc, WsAgentControlSubscribeProposalsRpc, WsAgentControlListIntegrationsRpc, WsAgentControlCreateIntegrationRpc, WsAgentControlUpdateIntegrationRpc, WsAgentControlResumeIntegrationPairingRpc, WsAgentControlRevokeIntegrationRpc, WsAgentControlDeleteIntegrationRpc, WsAgentControlListMcpInstallationsRpc, WsAgentControlConnectMcpInstallationRpc, WsAgentControlRepairMcpInstallationRpc, WsAgentControlDisconnectMcpInstallationRpc, WsOrchestrationDispatchCommandRpc, WsOrchestrationGetWorkflowScriptRpc, WsOrchestrationGetTaskOutputRpc, WsOrchestrationStopBackgroundTaskRpc, WsOrchestrationGetTurnDiffRpc, WsOrchestrationGetFullThreadDiffRpc, WsOrchestrationSearchThreadMessagesRpc, WsOrchestrationGetThreadWindowRpc, WsOrchestrationGetThreadHistoryPageRpc, WsOrchestrationReplayEventsRpc, WsOrchestrationReplayEventsPageRpc, WsOrchestrationSubscribeShellRpc, WsOrchestrationSubscribeThreadRpc, WsOrchestrationSubscribeThreadWindowRpc, WsContextHandoffGetInspectionSummaryRpc, WsContextHandoffListInspectionEntriesRpc, WsContextHandoffReadRawPayloadChunkRpc, WsContextHandoffReadExportChunkRpc);
|
|
13766
15604
|
/**
|
|
13767
15605
|
* Hosted relay channels carry both groups through one lifecycle-owned encrypted
|
|
13768
15606
|
* channel. Direct clients keep the device group on its own low-priority socket
|
|
@@ -13945,6 +15783,81 @@ const AgentControlReadThreadFileInput = effect.Schema.Struct({
|
|
|
13945
15783
|
threadId: ThreadId,
|
|
13946
15784
|
relativePath: TrimmedNonEmptyString.check(effect.Schema.isMaxLength(4096))
|
|
13947
15785
|
});
|
|
15786
|
+
//#endregion
|
|
15787
|
+
//#region ../../packages/contracts/src/agentControlDelegation.ts
|
|
15788
|
+
/**
|
|
15789
|
+
* Private-session tools for tasks a chat delegated with `ryco_create_threads` and
|
|
15790
|
+
* `returnToOrigin`. Like the inspection tools, they are not part of
|
|
15791
|
+
* `AGENT_CONTROL_MCP_TOOLS` and never reach the external endpoint.
|
|
15792
|
+
*/
|
|
15793
|
+
const AGENT_CONTROL_DELEGATION_MCP_TOOLS = {
|
|
15794
|
+
taskStatus: "ryco_task_status",
|
|
15795
|
+
taskCancel: "ryco_task_cancel"
|
|
15796
|
+
};
|
|
15797
|
+
const AGENT_CONTROL_TASK_RESULT_MAX_CHARS = 8e3;
|
|
15798
|
+
const AGENT_CONTROL_TASK_NOTICE_MAX_CHARS = 4e3;
|
|
15799
|
+
/** Child-side terminal outcomes a task returns as a server-authored notice instead of a result. */
|
|
15800
|
+
const AgentControlTaskNoticeOutcome = effect.Schema.Literals([
|
|
15801
|
+
"interrupted",
|
|
15802
|
+
"stopped",
|
|
15803
|
+
"start-failed",
|
|
15804
|
+
"advanced",
|
|
15805
|
+
"archived",
|
|
15806
|
+
"request-failed",
|
|
15807
|
+
"expired"
|
|
15808
|
+
]);
|
|
15809
|
+
const AgentControlTaskStatusInput = effect.Schema.Struct({ taskId: effect.Schema.optional(ThreadId) }).annotate({ parseOptions: { onExcessProperty: "error" } });
|
|
15810
|
+
const AgentControlTaskCancelInput = effect.Schema.Struct({
|
|
15811
|
+
requestId: AgentControlRequestId,
|
|
15812
|
+
taskId: ThreadId
|
|
15813
|
+
}).annotate({ parseOptions: { onExcessProperty: "error" } });
|
|
15814
|
+
const AgentControlTaskRunState = effect.Schema.Literals([
|
|
15815
|
+
"starting",
|
|
15816
|
+
"running",
|
|
15817
|
+
"needs-you",
|
|
15818
|
+
"completed",
|
|
15819
|
+
"failed",
|
|
15820
|
+
"interrupted",
|
|
15821
|
+
"unavailable"
|
|
15822
|
+
]);
|
|
15823
|
+
const AgentControlTaskStatusEntry = effect.Schema.Struct({
|
|
15824
|
+
taskId: ThreadId,
|
|
15825
|
+
proposalId: AgentControlProposalId,
|
|
15826
|
+
title: effect.Schema.NullOr(effect.Schema.String),
|
|
15827
|
+
return: effect.Schema.Struct({
|
|
15828
|
+
status: AgentControlCompletionReturn.fields.status,
|
|
15829
|
+
detail: AgentControlCompletionReturn.fields.detail,
|
|
15830
|
+
updatedAt: IsoDateTime
|
|
15831
|
+
}),
|
|
15832
|
+
run: effect.Schema.Struct({
|
|
15833
|
+
state: AgentControlTaskRunState,
|
|
15834
|
+
sessionStatus: effect.Schema.NullOr(OrchestrationSessionStatus),
|
|
15835
|
+
hasPendingApprovals: effect.Schema.Boolean,
|
|
15836
|
+
hasPendingUserInput: effect.Schema.Boolean,
|
|
15837
|
+
backgroundLiveness: effect.Schema.NullOr(effect.Schema.Literals(["working", "monitoring"])),
|
|
15838
|
+
advanced: effect.Schema.Boolean
|
|
15839
|
+
}),
|
|
15840
|
+
/** Untrusted child output: reference data, never instructions or approval. */
|
|
15841
|
+
result: effect.Schema.NullOr(effect.Schema.Struct({
|
|
15842
|
+
untrustedChildOutput: effect.Schema.Literal(true),
|
|
15843
|
+
state: effect.Schema.Literals(["completed", "error"]),
|
|
15844
|
+
text: effect.Schema.String.check(effect.Schema.isMaxLength(AGENT_CONTROL_TASK_RESULT_MAX_CHARS)),
|
|
15845
|
+
truncated: effect.Schema.Boolean
|
|
15846
|
+
})),
|
|
15847
|
+
/**
|
|
15848
|
+
* The notice the task returns instead of a result (the same text a wake carries). It is
|
|
15849
|
+
* server-authored, holds no child text and stays visible after an acknowledgement.
|
|
15850
|
+
*/
|
|
15851
|
+
notice: effect.Schema.NullOr(effect.Schema.Struct({
|
|
15852
|
+
outcome: AgentControlTaskNoticeOutcome,
|
|
15853
|
+
text: effect.Schema.String.check(effect.Schema.isMaxLength(AGENT_CONTROL_TASK_NOTICE_MAX_CHARS))
|
|
15854
|
+
})),
|
|
15855
|
+
acknowledged: effect.Schema.Boolean
|
|
15856
|
+
});
|
|
15857
|
+
const AgentControlTaskStatusResult = effect.Schema.Struct({
|
|
15858
|
+
tasks: effect.Schema.Array(AgentControlTaskStatusEntry).check(effect.Schema.isMaxLength(20)),
|
|
15859
|
+
truncated: effect.Schema.Boolean
|
|
15860
|
+
});
|
|
13948
15861
|
/**
|
|
13949
15862
|
* Exported because it bounds `ComputerActionResult.value`, and the clipboard
|
|
13950
15863
|
* read path must enforce it before putting clipboard text on that field.
|
|
@@ -15043,6 +16956,12 @@ Object.defineProperty(exports, "AGENT_CONTROL_CAPABILITIES", {
|
|
|
15043
16956
|
return AGENT_CONTROL_CAPABILITIES;
|
|
15044
16957
|
}
|
|
15045
16958
|
});
|
|
16959
|
+
Object.defineProperty(exports, "AGENT_CONTROL_DELEGATION_MCP_TOOLS", {
|
|
16960
|
+
enumerable: true,
|
|
16961
|
+
get: function() {
|
|
16962
|
+
return AGENT_CONTROL_DELEGATION_MCP_TOOLS;
|
|
16963
|
+
}
|
|
16964
|
+
});
|
|
15046
16965
|
Object.defineProperty(exports, "AGENT_CONTROL_DEVICE_ACTION_KINDS", {
|
|
15047
16966
|
enumerable: true,
|
|
15048
16967
|
get: function() {
|
|
@@ -15145,6 +17064,18 @@ Object.defineProperty(exports, "AGENT_CONTROL_RISK_TAGS", {
|
|
|
15145
17064
|
return AGENT_CONTROL_RISK_TAGS;
|
|
15146
17065
|
}
|
|
15147
17066
|
});
|
|
17067
|
+
Object.defineProperty(exports, "AGENT_CONTROL_TASK_NOTICE_MAX_CHARS", {
|
|
17068
|
+
enumerable: true,
|
|
17069
|
+
get: function() {
|
|
17070
|
+
return AGENT_CONTROL_TASK_NOTICE_MAX_CHARS;
|
|
17071
|
+
}
|
|
17072
|
+
});
|
|
17073
|
+
Object.defineProperty(exports, "AGENT_CONTROL_TASK_RESULT_MAX_CHARS", {
|
|
17074
|
+
enumerable: true,
|
|
17075
|
+
get: function() {
|
|
17076
|
+
return AGENT_CONTROL_TASK_RESULT_MAX_CHARS;
|
|
17077
|
+
}
|
|
17078
|
+
});
|
|
15148
17079
|
Object.defineProperty(exports, "AGENT_CONTROL_TERMINAL_PROPOSAL_STATUSES", {
|
|
15149
17080
|
enumerable: true,
|
|
15150
17081
|
get: function() {
|
|
@@ -15781,6 +17712,30 @@ Object.defineProperty(exports, "AgentControlSearchThreadsInput", {
|
|
|
15781
17712
|
return AgentControlSearchThreadsInput;
|
|
15782
17713
|
}
|
|
15783
17714
|
});
|
|
17715
|
+
Object.defineProperty(exports, "AgentControlTaskCancelInput", {
|
|
17716
|
+
enumerable: true,
|
|
17717
|
+
get: function() {
|
|
17718
|
+
return AgentControlTaskCancelInput;
|
|
17719
|
+
}
|
|
17720
|
+
});
|
|
17721
|
+
Object.defineProperty(exports, "AgentControlTaskNoticeOutcome", {
|
|
17722
|
+
enumerable: true,
|
|
17723
|
+
get: function() {
|
|
17724
|
+
return AgentControlTaskNoticeOutcome;
|
|
17725
|
+
}
|
|
17726
|
+
});
|
|
17727
|
+
Object.defineProperty(exports, "AgentControlTaskStatusInput", {
|
|
17728
|
+
enumerable: true,
|
|
17729
|
+
get: function() {
|
|
17730
|
+
return AgentControlTaskStatusInput;
|
|
17731
|
+
}
|
|
17732
|
+
});
|
|
17733
|
+
Object.defineProperty(exports, "AgentControlTaskStatusResult", {
|
|
17734
|
+
enumerable: true,
|
|
17735
|
+
get: function() {
|
|
17736
|
+
return AgentControlTaskStatusResult;
|
|
17737
|
+
}
|
|
17738
|
+
});
|
|
15784
17739
|
Object.defineProperty(exports, "AgentControlWaitThreadsInput", {
|
|
15785
17740
|
enumerable: true,
|
|
15786
17741
|
get: function() {
|
|
@@ -15907,12 +17862,24 @@ Object.defineProperty(exports, "BrowserExternalIdentityConnectResponse", {
|
|
|
15907
17862
|
return BrowserExternalIdentityConnectResponse;
|
|
15908
17863
|
}
|
|
15909
17864
|
});
|
|
17865
|
+
Object.defineProperty(exports, "CHANGE_REQUEST_FILE_CONTENTS_MAX_BYTES", {
|
|
17866
|
+
enumerable: true,
|
|
17867
|
+
get: function() {
|
|
17868
|
+
return CHANGE_REQUEST_FILE_CONTENTS_MAX_BYTES;
|
|
17869
|
+
}
|
|
17870
|
+
});
|
|
15910
17871
|
Object.defineProperty(exports, "CHAT_ATTACHMENT_READ_CHUNK_BYTES", {
|
|
15911
17872
|
enumerable: true,
|
|
15912
17873
|
get: function() {
|
|
15913
17874
|
return CHAT_ATTACHMENT_READ_CHUNK_BYTES;
|
|
15914
17875
|
}
|
|
15915
17876
|
});
|
|
17877
|
+
Object.defineProperty(exports, "CHECKPOINT_REVERT_ACTIVITY_KIND", {
|
|
17878
|
+
enumerable: true,
|
|
17879
|
+
get: function() {
|
|
17880
|
+
return CHECKPOINT_REVERT_ACTIVITY_KIND;
|
|
17881
|
+
}
|
|
17882
|
+
});
|
|
15916
17883
|
Object.defineProperty(exports, "COMPUTER_BROWSER_DRIVER_NAMES", {
|
|
15917
17884
|
enumerable: true,
|
|
15918
17885
|
get: function() {
|
|
@@ -15997,6 +17964,30 @@ Object.defineProperty(exports, "CONTEXT_HANDOFF_WS_METHODS", {
|
|
|
15997
17964
|
return CONTEXT_HANDOFF_WS_METHODS;
|
|
15998
17965
|
}
|
|
15999
17966
|
});
|
|
17967
|
+
Object.defineProperty(exports, "ChangeRequestReviewComment", {
|
|
17968
|
+
enumerable: true,
|
|
17969
|
+
get: function() {
|
|
17970
|
+
return ChangeRequestReviewComment;
|
|
17971
|
+
}
|
|
17972
|
+
});
|
|
17973
|
+
Object.defineProperty(exports, "ChangeRequestReviewThread", {
|
|
17974
|
+
enumerable: true,
|
|
17975
|
+
get: function() {
|
|
17976
|
+
return ChangeRequestReviewThread;
|
|
17977
|
+
}
|
|
17978
|
+
});
|
|
17979
|
+
Object.defineProperty(exports, "ChangeRequestTimelineItem", {
|
|
17980
|
+
enumerable: true,
|
|
17981
|
+
get: function() {
|
|
17982
|
+
return ChangeRequestTimelineItem;
|
|
17983
|
+
}
|
|
17984
|
+
});
|
|
17985
|
+
Object.defineProperty(exports, "ChangeRequestViewerCapabilities", {
|
|
17986
|
+
enumerable: true,
|
|
17987
|
+
get: function() {
|
|
17988
|
+
return ChangeRequestViewerCapabilities;
|
|
17989
|
+
}
|
|
17990
|
+
});
|
|
16000
17991
|
Object.defineProperty(exports, "ChatAttachment", {
|
|
16001
17992
|
enumerable: true,
|
|
16002
17993
|
get: function() {
|
|
@@ -16009,12 +18000,30 @@ Object.defineProperty(exports, "ChatAttachmentReadError", {
|
|
|
16009
18000
|
return ChatAttachmentReadError;
|
|
16010
18001
|
}
|
|
16011
18002
|
});
|
|
18003
|
+
Object.defineProperty(exports, "ChatFileAttachment", {
|
|
18004
|
+
enumerable: true,
|
|
18005
|
+
get: function() {
|
|
18006
|
+
return ChatFileAttachment;
|
|
18007
|
+
}
|
|
18008
|
+
});
|
|
16012
18009
|
Object.defineProperty(exports, "CheckpointRef", {
|
|
16013
18010
|
enumerable: true,
|
|
16014
18011
|
get: function() {
|
|
16015
18012
|
return CheckpointRef;
|
|
16016
18013
|
}
|
|
16017
18014
|
});
|
|
18015
|
+
Object.defineProperty(exports, "CheckpointRevertActivityPayload", {
|
|
18016
|
+
enumerable: true,
|
|
18017
|
+
get: function() {
|
|
18018
|
+
return CheckpointRevertActivityPayload;
|
|
18019
|
+
}
|
|
18020
|
+
});
|
|
18021
|
+
Object.defineProperty(exports, "ClaudeCacheObservation", {
|
|
18022
|
+
enumerable: true,
|
|
18023
|
+
get: function() {
|
|
18024
|
+
return ClaudeCacheObservation;
|
|
18025
|
+
}
|
|
18026
|
+
});
|
|
16018
18027
|
Object.defineProperty(exports, "ClaudeSettings", {
|
|
16019
18028
|
enumerable: true,
|
|
16020
18029
|
get: function() {
|
|
@@ -16027,6 +18036,12 @@ Object.defineProperty(exports, "ClientOrchestrationCommand", {
|
|
|
16027
18036
|
return ClientOrchestrationCommand;
|
|
16028
18037
|
}
|
|
16029
18038
|
});
|
|
18039
|
+
Object.defineProperty(exports, "ClientThreadTurnStartCommand", {
|
|
18040
|
+
enumerable: true,
|
|
18041
|
+
get: function() {
|
|
18042
|
+
return ClientThreadTurnStartCommand;
|
|
18043
|
+
}
|
|
18044
|
+
});
|
|
16030
18045
|
Object.defineProperty(exports, "CodexResetCreditError", {
|
|
16031
18046
|
enumerable: true,
|
|
16032
18047
|
get: function() {
|
|
@@ -16147,12 +18162,24 @@ Object.defineProperty(exports, "DEFAULT_GIT_TEXT_GENERATION_OPTIONS_BY_PROVIDER"
|
|
|
16147
18162
|
return DEFAULT_GIT_TEXT_GENERATION_OPTIONS_BY_PROVIDER;
|
|
16148
18163
|
}
|
|
16149
18164
|
});
|
|
18165
|
+
Object.defineProperty(exports, "DEFAULT_LIFECYCLE_SUGGESTION_POLICY", {
|
|
18166
|
+
enumerable: true,
|
|
18167
|
+
get: function() {
|
|
18168
|
+
return DEFAULT_LIFECYCLE_SUGGESTION_POLICY;
|
|
18169
|
+
}
|
|
18170
|
+
});
|
|
16150
18171
|
Object.defineProperty(exports, "DEFAULT_MODEL", {
|
|
16151
18172
|
enumerable: true,
|
|
16152
18173
|
get: function() {
|
|
16153
18174
|
return DEFAULT_MODEL;
|
|
16154
18175
|
}
|
|
16155
18176
|
});
|
|
18177
|
+
Object.defineProperty(exports, "DEFAULT_PROJECT_KIND", {
|
|
18178
|
+
enumerable: true,
|
|
18179
|
+
get: function() {
|
|
18180
|
+
return DEFAULT_PROJECT_KIND;
|
|
18181
|
+
}
|
|
18182
|
+
});
|
|
16156
18183
|
Object.defineProperty(exports, "DEFAULT_PROJECT_METADATA_DIR", {
|
|
16157
18184
|
enumerable: true,
|
|
16158
18185
|
get: function() {
|
|
@@ -16183,6 +18210,12 @@ Object.defineProperty(exports, "DEFAULT_WORKTREE_BRANCH_PREFIX", {
|
|
|
16183
18210
|
return DEFAULT_WORKTREE_BRANCH_PREFIX;
|
|
16184
18211
|
}
|
|
16185
18212
|
});
|
|
18213
|
+
Object.defineProperty(exports, "DESKTOP_HUB_REACHABILITY_PATH", {
|
|
18214
|
+
enumerable: true,
|
|
18215
|
+
get: function() {
|
|
18216
|
+
return DESKTOP_HUB_REACHABILITY_PATH;
|
|
18217
|
+
}
|
|
18218
|
+
});
|
|
16186
18219
|
Object.defineProperty(exports, "DESKTOP_NATIVE_NODE_CLAIM_COMMIT_PATH", {
|
|
16187
18220
|
enumerable: true,
|
|
16188
18221
|
get: function() {
|
|
@@ -16231,6 +18264,18 @@ Object.defineProperty(exports, "DEVICE_WS_METHODS", {
|
|
|
16231
18264
|
return DEVICE_WS_METHODS;
|
|
16232
18265
|
}
|
|
16233
18266
|
});
|
|
18267
|
+
Object.defineProperty(exports, "DailyRecapReadError", {
|
|
18268
|
+
enumerable: true,
|
|
18269
|
+
get: function() {
|
|
18270
|
+
return DailyRecapReadError;
|
|
18271
|
+
}
|
|
18272
|
+
});
|
|
18273
|
+
Object.defineProperty(exports, "DailyRecapThread", {
|
|
18274
|
+
enumerable: true,
|
|
18275
|
+
get: function() {
|
|
18276
|
+
return DailyRecapThread;
|
|
18277
|
+
}
|
|
18278
|
+
});
|
|
16234
18279
|
Object.defineProperty(exports, "DesktopNativeNodeClaimCommitRequest", {
|
|
16235
18280
|
enumerable: true,
|
|
16236
18281
|
get: function() {
|
|
@@ -16501,6 +18546,12 @@ Object.defineProperty(exports, "GitReadComparisonInput", {
|
|
|
16501
18546
|
return GitReadComparisonInput;
|
|
16502
18547
|
}
|
|
16503
18548
|
});
|
|
18549
|
+
Object.defineProperty(exports, "GitReadImageBlobInput", {
|
|
18550
|
+
enumerable: true,
|
|
18551
|
+
get: function() {
|
|
18552
|
+
return GitReadImageBlobInput;
|
|
18553
|
+
}
|
|
18554
|
+
});
|
|
16504
18555
|
Object.defineProperty(exports, "GitReadLineBlameInput", {
|
|
16505
18556
|
enumerable: true,
|
|
16506
18557
|
get: function() {
|
|
@@ -16573,6 +18624,12 @@ Object.defineProperty(exports, "HubIdentitySummary", {
|
|
|
16573
18624
|
return HubIdentitySummary;
|
|
16574
18625
|
}
|
|
16575
18626
|
});
|
|
18627
|
+
Object.defineProperty(exports, "HubSpaceId", {
|
|
18628
|
+
enumerable: true,
|
|
18629
|
+
get: function() {
|
|
18630
|
+
return HubSpaceId;
|
|
18631
|
+
}
|
|
18632
|
+
});
|
|
16576
18633
|
Object.defineProperty(exports, "IsoDateTime", {
|
|
16577
18634
|
enumerable: true,
|
|
16578
18635
|
get: function() {
|
|
@@ -16627,6 +18684,48 @@ Object.defineProperty(exports, "LocalIntroductionCompleteRequest", {
|
|
|
16627
18684
|
return LocalIntroductionCompleteRequest;
|
|
16628
18685
|
}
|
|
16629
18686
|
});
|
|
18687
|
+
Object.defineProperty(exports, "LocalTask", {
|
|
18688
|
+
enumerable: true,
|
|
18689
|
+
get: function() {
|
|
18690
|
+
return LocalTask;
|
|
18691
|
+
}
|
|
18692
|
+
});
|
|
18693
|
+
Object.defineProperty(exports, "LocalTaskCreateInput", {
|
|
18694
|
+
enumerable: true,
|
|
18695
|
+
get: function() {
|
|
18696
|
+
return LocalTaskCreateInput;
|
|
18697
|
+
}
|
|
18698
|
+
});
|
|
18699
|
+
Object.defineProperty(exports, "LocalTaskDelegateInput", {
|
|
18700
|
+
enumerable: true,
|
|
18701
|
+
get: function() {
|
|
18702
|
+
return LocalTaskDelegateInput;
|
|
18703
|
+
}
|
|
18704
|
+
});
|
|
18705
|
+
Object.defineProperty(exports, "LocalTaskDeleteInput", {
|
|
18706
|
+
enumerable: true,
|
|
18707
|
+
get: function() {
|
|
18708
|
+
return LocalTaskDeleteInput;
|
|
18709
|
+
}
|
|
18710
|
+
});
|
|
18711
|
+
Object.defineProperty(exports, "LocalTaskError", {
|
|
18712
|
+
enumerable: true,
|
|
18713
|
+
get: function() {
|
|
18714
|
+
return LocalTaskError;
|
|
18715
|
+
}
|
|
18716
|
+
});
|
|
18717
|
+
Object.defineProperty(exports, "LocalTaskListInput", {
|
|
18718
|
+
enumerable: true,
|
|
18719
|
+
get: function() {
|
|
18720
|
+
return LocalTaskListInput;
|
|
18721
|
+
}
|
|
18722
|
+
});
|
|
18723
|
+
Object.defineProperty(exports, "LocalTaskUpdateInput", {
|
|
18724
|
+
enumerable: true,
|
|
18725
|
+
get: function() {
|
|
18726
|
+
return LocalTaskUpdateInput;
|
|
18727
|
+
}
|
|
18728
|
+
});
|
|
16630
18729
|
Object.defineProperty(exports, "MODEL_PICKER_JUMP_KEYBINDING_COMMANDS", {
|
|
16631
18730
|
enumerable: true,
|
|
16632
18731
|
get: function() {
|
|
@@ -17185,6 +19284,30 @@ Object.defineProperty(exports, "NonNegativeInt", {
|
|
|
17185
19284
|
return NonNegativeInt;
|
|
17186
19285
|
}
|
|
17187
19286
|
});
|
|
19287
|
+
Object.defineProperty(exports, "NotesCommand", {
|
|
19288
|
+
enumerable: true,
|
|
19289
|
+
get: function() {
|
|
19290
|
+
return NotesCommand;
|
|
19291
|
+
}
|
|
19292
|
+
});
|
|
19293
|
+
Object.defineProperty(exports, "NotesDocument", {
|
|
19294
|
+
enumerable: true,
|
|
19295
|
+
get: function() {
|
|
19296
|
+
return NotesDocument;
|
|
19297
|
+
}
|
|
19298
|
+
});
|
|
19299
|
+
Object.defineProperty(exports, "NotesError", {
|
|
19300
|
+
enumerable: true,
|
|
19301
|
+
get: function() {
|
|
19302
|
+
return NotesError;
|
|
19303
|
+
}
|
|
19304
|
+
});
|
|
19305
|
+
Object.defineProperty(exports, "NotesListInput", {
|
|
19306
|
+
enumerable: true,
|
|
19307
|
+
get: function() {
|
|
19308
|
+
return NotesListInput;
|
|
19309
|
+
}
|
|
19310
|
+
});
|
|
17188
19311
|
Object.defineProperty(exports, "ORCHESTRATION_WS_METHODS", {
|
|
17189
19312
|
enumerable: true,
|
|
17190
19313
|
get: function() {
|
|
@@ -17443,12 +19566,24 @@ Object.defineProperty(exports, "PROJECT_READ_FILE_BINARY_MAX_BYTES", {
|
|
|
17443
19566
|
return PROJECT_READ_FILE_BINARY_MAX_BYTES;
|
|
17444
19567
|
}
|
|
17445
19568
|
});
|
|
19569
|
+
Object.defineProperty(exports, "PROJECT_RELOCATION_PENDING_MESSAGE", {
|
|
19570
|
+
enumerable: true,
|
|
19571
|
+
get: function() {
|
|
19572
|
+
return PROJECT_RELOCATION_PENDING_MESSAGE;
|
|
19573
|
+
}
|
|
19574
|
+
});
|
|
17446
19575
|
Object.defineProperty(exports, "PROJECT_STAGE_FILE_MAX_BYTES", {
|
|
17447
19576
|
enumerable: true,
|
|
17448
19577
|
get: function() {
|
|
17449
19578
|
return PROJECT_STAGE_FILE_MAX_BYTES;
|
|
17450
19579
|
}
|
|
17451
19580
|
});
|
|
19581
|
+
Object.defineProperty(exports, "PROVIDER_DISPLAY_NAMES", {
|
|
19582
|
+
enumerable: true,
|
|
19583
|
+
get: function() {
|
|
19584
|
+
return PROVIDER_DISPLAY_NAMES;
|
|
19585
|
+
}
|
|
19586
|
+
});
|
|
17452
19587
|
Object.defineProperty(exports, "PROVIDER_SEND_TURN_MAX_ATTACHMENT_TOTAL_BYTES", {
|
|
17453
19588
|
enumerable: true,
|
|
17454
19589
|
get: function() {
|
|
@@ -17575,6 +19710,12 @@ Object.defineProperty(exports, "ProjectAvatarSetPayload", {
|
|
|
17575
19710
|
return ProjectAvatarSetPayload;
|
|
17576
19711
|
}
|
|
17577
19712
|
});
|
|
19713
|
+
Object.defineProperty(exports, "ProjectChatError", {
|
|
19714
|
+
enumerable: true,
|
|
19715
|
+
get: function() {
|
|
19716
|
+
return ProjectChatError;
|
|
19717
|
+
}
|
|
19718
|
+
});
|
|
17578
19719
|
Object.defineProperty(exports, "ProjectCreatedPayload", {
|
|
17579
19720
|
enumerable: true,
|
|
17580
19721
|
get: function() {
|
|
@@ -17593,6 +19734,12 @@ Object.defineProperty(exports, "ProjectId", {
|
|
|
17593
19734
|
return ProjectId;
|
|
17594
19735
|
}
|
|
17595
19736
|
});
|
|
19737
|
+
Object.defineProperty(exports, "ProjectKind", {
|
|
19738
|
+
enumerable: true,
|
|
19739
|
+
get: function() {
|
|
19740
|
+
return ProjectKind;
|
|
19741
|
+
}
|
|
19742
|
+
});
|
|
17596
19743
|
Object.defineProperty(exports, "ProjectListEntriesError", {
|
|
17597
19744
|
enumerable: true,
|
|
17598
19745
|
get: function() {
|
|
@@ -17959,6 +20106,12 @@ Object.defineProperty(exports, "ServerProvider", {
|
|
|
17959
20106
|
return ServerProvider;
|
|
17960
20107
|
}
|
|
17961
20108
|
});
|
|
20109
|
+
Object.defineProperty(exports, "ServerProviderCompatibilityStatus", {
|
|
20110
|
+
enumerable: true,
|
|
20111
|
+
get: function() {
|
|
20112
|
+
return ServerProviderCompatibilityStatus;
|
|
20113
|
+
}
|
|
20114
|
+
});
|
|
17962
20115
|
Object.defineProperty(exports, "ServerProviderUpdateError", {
|
|
17963
20116
|
enumerable: true,
|
|
17964
20117
|
get: function() {
|
|
@@ -17983,6 +20136,12 @@ Object.defineProperty(exports, "SessionImportError", {
|
|
|
17983
20136
|
return SessionImportError;
|
|
17984
20137
|
}
|
|
17985
20138
|
});
|
|
20139
|
+
Object.defineProperty(exports, "SourceControlChangeRequestReviewer", {
|
|
20140
|
+
enumerable: true,
|
|
20141
|
+
get: function() {
|
|
20142
|
+
return SourceControlChangeRequestReviewer;
|
|
20143
|
+
}
|
|
20144
|
+
});
|
|
17986
20145
|
Object.defineProperty(exports, "SourceControlProviderError", {
|
|
17987
20146
|
enumerable: true,
|
|
17988
20147
|
get: function() {
|
|
@@ -18247,6 +20406,12 @@ Object.defineProperty(exports, "ThreadTokenModeSetPayload", {
|
|
|
18247
20406
|
return ThreadTokenModeSetPayload;
|
|
18248
20407
|
}
|
|
18249
20408
|
});
|
|
20409
|
+
Object.defineProperty(exports, "ThreadTrashedPayload", {
|
|
20410
|
+
enumerable: true,
|
|
20411
|
+
get: function() {
|
|
20412
|
+
return ThreadTrashedPayload;
|
|
20413
|
+
}
|
|
20414
|
+
});
|
|
18250
20415
|
Object.defineProperty(exports, "ThreadTurnDiffCompletedPayload", {
|
|
18251
20416
|
enumerable: true,
|
|
18252
20417
|
get: function() {
|
|
@@ -18277,6 +20442,30 @@ Object.defineProperty(exports, "ThreadUnsnoozedPayload", {
|
|
|
18277
20442
|
return ThreadUnsnoozedPayload;
|
|
18278
20443
|
}
|
|
18279
20444
|
});
|
|
20445
|
+
Object.defineProperty(exports, "ThreadUntrashedPayload", {
|
|
20446
|
+
enumerable: true,
|
|
20447
|
+
get: function() {
|
|
20448
|
+
return ThreadUntrashedPayload;
|
|
20449
|
+
}
|
|
20450
|
+
});
|
|
20451
|
+
Object.defineProperty(exports, "ThreadUsageLimit", {
|
|
20452
|
+
enumerable: true,
|
|
20453
|
+
get: function() {
|
|
20454
|
+
return ThreadUsageLimit;
|
|
20455
|
+
}
|
|
20456
|
+
});
|
|
20457
|
+
Object.defineProperty(exports, "ThreadUsageLimitClearedPayload", {
|
|
20458
|
+
enumerable: true,
|
|
20459
|
+
get: function() {
|
|
20460
|
+
return ThreadUsageLimitClearedPayload;
|
|
20461
|
+
}
|
|
20462
|
+
});
|
|
20463
|
+
Object.defineProperty(exports, "ThreadUsageLimitSetPayload", {
|
|
20464
|
+
enumerable: true,
|
|
20465
|
+
get: function() {
|
|
20466
|
+
return ThreadUsageLimitSetPayload;
|
|
20467
|
+
}
|
|
20468
|
+
});
|
|
18280
20469
|
Object.defineProperty(exports, "ToolLifecycleItemType", {
|
|
18281
20470
|
enumerable: true,
|
|
18282
20471
|
get: function() {
|
|
@@ -18379,6 +20568,12 @@ Object.defineProperty(exports, "WorkItemProviderKind", {
|
|
|
18379
20568
|
return WorkItemProviderKind;
|
|
18380
20569
|
}
|
|
18381
20570
|
});
|
|
20571
|
+
Object.defineProperty(exports, "WorkspaceLifecycleError", {
|
|
20572
|
+
enumerable: true,
|
|
20573
|
+
get: function() {
|
|
20574
|
+
return WorkspaceLifecycleError;
|
|
20575
|
+
}
|
|
20576
|
+
});
|
|
18382
20577
|
Object.defineProperty(exports, "Worktree", {
|
|
18383
20578
|
enumerable: true,
|
|
18384
20579
|
get: function() {
|
|
@@ -18391,6 +20586,18 @@ Object.defineProperty(exports, "WorktreeArchivedPayload", {
|
|
|
18391
20586
|
return WorktreeArchivedPayload;
|
|
18392
20587
|
}
|
|
18393
20588
|
});
|
|
20589
|
+
Object.defineProperty(exports, "WorktreeCheckoutRemovedPayload", {
|
|
20590
|
+
enumerable: true,
|
|
20591
|
+
get: function() {
|
|
20592
|
+
return WorktreeCheckoutRemovedPayload;
|
|
20593
|
+
}
|
|
20594
|
+
});
|
|
20595
|
+
Object.defineProperty(exports, "WorktreeCheckoutRestoredPayload", {
|
|
20596
|
+
enumerable: true,
|
|
20597
|
+
get: function() {
|
|
20598
|
+
return WorktreeCheckoutRestoredPayload;
|
|
20599
|
+
}
|
|
20600
|
+
});
|
|
18394
20601
|
Object.defineProperty(exports, "WorktreeCreatedPayload", {
|
|
18395
20602
|
enumerable: true,
|
|
18396
20603
|
get: function() {
|
|
@@ -18421,6 +20628,12 @@ Object.defineProperty(exports, "WorktreeMetaUpdatedPayload", {
|
|
|
18421
20628
|
return WorktreeMetaUpdatedPayload;
|
|
18422
20629
|
}
|
|
18423
20630
|
});
|
|
20631
|
+
Object.defineProperty(exports, "WorktreeRelocatedPayload", {
|
|
20632
|
+
enumerable: true,
|
|
20633
|
+
get: function() {
|
|
20634
|
+
return WorktreeRelocatedPayload;
|
|
20635
|
+
}
|
|
20636
|
+
});
|
|
18424
20637
|
Object.defineProperty(exports, "WorktreeRestoredPayload", {
|
|
18425
20638
|
enumerable: true,
|
|
18426
20639
|
get: function() {
|
|
@@ -18463,6 +20676,12 @@ Object.defineProperty(exports, "defaultInstanceIdForDriver", {
|
|
|
18463
20676
|
return defaultInstanceIdForDriver;
|
|
18464
20677
|
}
|
|
18465
20678
|
});
|
|
20679
|
+
Object.defineProperty(exports, "isProviderAvailable", {
|
|
20680
|
+
enumerable: true,
|
|
20681
|
+
get: function() {
|
|
20682
|
+
return isProviderAvailable;
|
|
20683
|
+
}
|
|
20684
|
+
});
|
|
18466
20685
|
Object.defineProperty(exports, "isProviderDriverKind", {
|
|
18467
20686
|
enumerable: true,
|
|
18468
20687
|
get: function() {
|