dorkos 0.128.0 → 0.130.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/cli.js +766 -517
- package/dist/browser/native/package-manifest.json +1 -1
- package/dist/browser/source-manifest.json +1 -1
- package/dist/client/assets/{AboutPage-CmQERFxo.js → AboutPage-B2CzVj5W.js} +1 -1
- package/dist/client/assets/{ActivityErrorState-Dw231W2w.js → ActivityErrorState-Dl-P-e0R.js} +1 -1
- package/dist/client/assets/{ActivityPage-DVfeyA9u.js → ActivityPage-CW7tqLHb.js} +1 -1
- package/dist/client/assets/ActivityRow-Vy4aXWk-.js +1 -0
- package/dist/client/assets/{AdapterIcon-NqCDzgCI.js → AdapterIcon-aabKVZmM.js} +1 -1
- package/dist/client/assets/AdapterSetupWizard-C5Hs0xkG.js +2 -0
- package/dist/client/assets/{AgentOptionRow-BRJfZo2y.js → AgentOptionRow-CqIMxq9S.js} +1 -1
- package/dist/client/assets/{AgentPicker-B7upjYRk.js → AgentPicker-C6mbTDJJ.js} +1 -1
- package/dist/client/assets/{AgentRequestCard-DXJnLk6q.js → AgentRequestCard-C8GV5Sxn.js} +4 -4
- package/dist/client/assets/AppearancePage-C0JKrHsO.js +1 -0
- package/dist/client/assets/{ApplyToOverridesDialog-C_QQhNIf.js → ApplyToOverridesDialog-DWEi0MNt.js} +1 -1
- package/dist/client/assets/AttentionSignalRow-Cpu0lKYg.js +1 -0
- package/dist/client/assets/{BaseTanStackRouterDevtoolsPanel-B-iktbLX-G7vrCqeA.js → BaseTanStackRouterDevtoolsPanel-B-iktbLX-_zVrHu5s.js} +3 -3
- package/dist/client/assets/BindingDialog-4UeaJfUu.js +1 -0
- package/dist/client/assets/BlintzCanvas-DCXIQZM_.js +1231 -0
- package/dist/client/assets/{CanvasCsvContent-CtLpZnTs.js → CanvasCsvContent-D-0TuvVs.js} +4 -4
- package/dist/client/assets/CanvasFileContent-DqSx7lz9.js +2 -0
- package/dist/client/assets/CanvasModel3dContent-zTx660yQ.js +2 -0
- package/dist/client/assets/ChannelComposer-D4TYVkvO.js +45 -0
- package/dist/client/assets/{ChatAppsOff-CCZUzDIH.js → ChatAppsOff-BzfyQc55.js} +2 -2
- package/dist/client/assets/{CodeMirrorDiff-BCpYdhgZ.js → CodeMirrorDiff-BLWBYGLp.js} +1 -1
- package/dist/client/assets/{CodeMirrorEditor-BeCubxHV.js → CodeMirrorEditor-D0q3ETxK.js} +1 -1
- package/dist/client/assets/{CommitmentList-BZtfTnwg.js → CommitmentList-BoMiLsRe.js} +1 -1
- package/dist/client/assets/{CommitmentsPage-DmurDgxV.js → CommitmentsPage-_7mNJVUZ.js} +1 -1
- package/dist/client/assets/{ComputerResourceView-Bik6GLKp.js → ComputerResourceView-Bo2LaCJf.js} +1 -1
- package/dist/client/assets/{ComputerViewer-CksBDqdu.js → ComputerViewer-a4VSdAw_.js} +1 -1
- package/dist/client/assets/ConnectionAccessLists-Dvv0YO31.js +1 -0
- package/dist/client/assets/{ConnectionsPage-Cgg36gDY.js → ConnectionsPage-oO8pNgbc.js} +2 -2
- package/dist/client/assets/{ConventionPage-CNhpF6Z1.js → ConventionPage-CFJjwhBd.js} +2 -2
- package/dist/client/assets/{ExtensionPageRoute-C2zue_Pw.js → ExtensionPageRoute-BqZN9q7M.js} +2 -2
- package/dist/client/assets/{FloatingTanStackRouterDevtools-CqogiFob-3v1TfY1P.js → FloatingTanStackRouterDevtools-CqogiFob-CnSp2ZEM.js} +1 -1
- package/dist/client/assets/{ForwardConsentHost-Mbo0D-zk.js → ForwardConsentHost-4LhRvCdu.js} +1 -1
- package/dist/client/assets/HandlePage-BjoYPqme.js +1 -0
- package/dist/client/assets/HeartbeatPage-rJzICayy.js +1 -0
- package/dist/client/assets/{KeyEntry-C43vkwpA.js → KeyEntry-BTTuXleL.js} +1 -1
- package/dist/client/assets/{LexicalField-iAHcvRmI.js → LexicalField-Dk_SDrjk.js} +1 -1
- package/dist/client/assets/{ManagesPage-BUIJvLmv.js → ManagesPage-Cvu3CQDn.js} +1 -1
- package/dist/client/assets/Marketplace-DPjPPlZz.js +36 -0
- package/dist/client/assets/{MarketplaceSourcesView-BZODwhxu.js → MarketplaceSourcesView-ChCys0on.js} +1 -1
- package/dist/client/assets/{McpAppFrame-D15nxVaI.js → McpAppFrame-DNamtzOp.js} +2 -2
- package/dist/client/assets/{McpSigninBody-DmBxqgxN.js → McpSigninBody-DLw3ZdZE.js} +1 -1
- package/dist/client/assets/{Model3dViewer-RGXeJd6a.js → Model3dViewer-IwCBCPZ2.js} +1 -1
- package/dist/client/assets/NamePage-FY_D0eA2.js +1 -0
- package/dist/client/assets/NewDirectMessageMenu-BB0gvClR.js +1 -0
- package/dist/client/assets/{NotificationsPage-NRfyiinS.js → NotificationsPage-aCF0AtqL.js} +1 -1
- package/dist/client/assets/{OpenMeshSwitch-CgQ6uefo.js → OpenMeshSwitch-DjCWF2Vy.js} +2 -2
- package/dist/client/assets/OperatorIdentityForm-Bcveds6f.js +1 -0
- package/dist/client/assets/{PermissionHistory-DPEPq8D9.js → PermissionHistory-CYsxFYmV.js} +1 -1
- package/dist/client/assets/{PermissionsPage--k-xutbJ.js → PermissionsPage-sxHkY92V.js} +1 -1
- package/dist/client/assets/{PersonalityPopover-DMMptmPS.js → PersonalityPopover-BZ20JTnJ.js} +1 -1
- package/dist/client/assets/PhotoPage-KBzkb0sT.js +1 -0
- package/dist/client/assets/PreviewRefusedNotice-BFQPYcUG.js +1 -0
- package/dist/client/assets/{ProfileFields-DbPJ7fvN.js → ProfileFields-sp17IFo8.js} +1 -1
- package/dist/client/assets/{ProfilePanelContainer-CzwhrIlw.js → ProfilePanelContainer-mA44jh5A.js} +1 -1
- package/dist/client/assets/{ProfileRolePicker-CZEXvlJm.js → ProfileRolePicker-Chh4_ZMB.js} +1 -1
- package/dist/client/assets/PromptSuggestionChips-CEi_-fHF.js +1 -0
- package/dist/client/assets/{ReportsToPopover-YOwGLJy5.js → ReportsToPopover-D1uknwnk.js} +1 -1
- package/dist/client/assets/RoomSurface-Clf1yLrr.js +1 -0
- package/dist/client/assets/{RoomsPage-CoXjZMWL.js → RoomsPage-BtCNzvhQ.js} +1 -1
- package/dist/client/assets/RunsOnPopover-LCvBpe9J.js +1 -0
- package/dist/client/assets/RuntimeConnectFlow-C5UDeHUC.js +1 -0
- package/dist/client/assets/RuntimeSetupDialog-Bqh67Vqb.js +1 -0
- package/dist/client/assets/{SeenDevices-Bh2yh-PW.js → SeenDevices-DvCfdeDo.js} +3 -3
- package/dist/client/assets/{SessionsPage-CFvkbT9X.js → SessionsPage-DLByE-re.js} +1 -1
- package/dist/client/assets/SettingsDialog-Co-Oxtyw.js +12 -0
- package/dist/client/assets/SkillsPage-Cc79IstM.js +1 -0
- package/dist/client/assets/TaskDialogWrapper-DuYV7Zch.js +1 -0
- package/dist/client/assets/TasksEmptyState-CfmPtBra.js +3 -0
- package/dist/client/assets/{TasksPage-D0Zi6Mve.js → TasksPage-DGk0zUhO.js} +1 -1
- package/dist/client/assets/{TeamComputerEntry-CY9eLVad.js → TeamComputerEntry-CLHbeX5i.js} +1 -1
- package/dist/client/assets/{ToolsPage-0_vx5P-F.js → ToolsPage-CSkDE7rZ.js} +2 -2
- package/dist/client/assets/{TopologyGraph-DUZLZZrB.js → TopologyGraph-pBC37k5P.js} +14 -14
- package/dist/client/assets/TourHost-CS9RsLj_.js +1 -0
- package/dist/client/assets/{UnlinkDialog-ptZy3IN4.js → UnlinkDialog-CelhOUZ0.js} +1 -1
- package/dist/client/assets/{UnreadDivider-Ckey1IWn.js → UnreadDivider-B_OMR0mQ.js} +1 -1
- package/dist/client/assets/WidgetErrorCard-CsMqCyCb.js +108 -0
- package/dist/client/assets/{WithheldExtensionsNotice-7Vu1Jctn.js → WithheldExtensionsNotice-GiKb0iQu.js} +1 -1
- package/dist/client/assets/WorkQueuePage-Cu721KyM.js +1 -0
- package/dist/client/assets/WorkView-CpWEaxMr.js +51 -0
- package/dist/client/assets/_shell-CmGG8Ysk.js +80 -0
- package/dist/client/assets/{_shell._home-BRIXhYLg.js → _shell._home-BnKkAeSp.js} +1 -1
- package/dist/client/assets/_shell._home.activity-DaaLJbvO.js +1 -0
- package/dist/client/assets/_shell._home.index-CNPasFxP.js +3 -0
- package/dist/client/assets/_shell._home.tasks-DXEOJ5Nq.js +1 -0
- package/dist/client/assets/_shell._home.workspaces-UeSvmquR.js +1 -0
- package/dist/client/assets/{_shell.channels-Bx6q9xVH.js → _shell.channels-NUbf5mcb.js} +4 -4
- package/dist/client/assets/_shell.connections-BEns4DKb.js +1 -0
- package/dist/client/assets/{_shell.feedback-requests-DFznTGbN.js → _shell.feedback-requests-NyjHNdnj.js} +2 -2
- package/dist/client/assets/_shell.marketplace-BEYqsDKe.js +1 -0
- package/dist/client/assets/_shell.marketplace_.sources-D6Ls30FY.js +1 -0
- package/dist/client/assets/_shell.session-CVc6i3eN.js +1 -0
- package/dist/client/assets/{_shell.team-DmA09abY.js → _shell.team-CXeOt4XD.js} +6 -6
- package/dist/client/assets/_shell.threads-BYdN1UtZ.js +1 -0
- package/dist/client/assets/_shell.x._extensionId-DtJYSfvG.js +1 -0
- package/dist/client/assets/_shell.x._extensionId_._-DtJYSfvG.js +1 -0
- package/dist/client/assets/{abnfDiagram-WEYOIA3C-DxgtVd9I.js → abnfDiagram-WEYOIA3C-BLCVDt6M.js} +1 -1
- package/dist/client/assets/{access-copy-Dqct36mi.js → access-copy-BSQ3QECN.js} +1 -1
- package/dist/client/assets/{arc-C-67Ef0p.js → arc-t4OhsI5R.js} +1 -1
- package/dist/client/assets/{architectureDiagram-ZHVYKT53-B7TjdT-_.js → architectureDiagram-ZHVYKT53-BcIfbGZR.js} +1 -1
- package/dist/client/assets/{banner-C9qTs6-C.js → banner-B6xfuDA7.js} +2 -2
- package/dist/client/assets/{blockDiagram-RJAE7QA3-DNqxJ3Ww.js → blockDiagram-RJAE7QA3-DTOlrcEZ.js} +1 -1
- package/dist/client/assets/{c4Diagram-XDPPPE54-D3jNLV0j.js → c4Diagram-XDPPPE54-CHGqwaxa.js} +1 -1
- package/dist/client/assets/channel-CSk6LhO2.js +1 -0
- package/dist/client/assets/{chunk-2E7WHVMD-C6OKx0ty.js → chunk-2E7WHVMD-Bh4L_7yX.js} +1 -1
- package/dist/client/assets/{chunk-2Q5K7J3B-Dr_6hHrZ.js → chunk-2Q5K7J3B-BmouLl8r.js} +1 -1
- package/dist/client/assets/{chunk-4EMNKR2T-CSrZVDEt.js → chunk-4EMNKR2T-BVhtiAdG.js} +1 -1
- package/dist/client/assets/{chunk-55XCU76K-CIazeRXO.js → chunk-55XCU76K-BdbLnE56.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-C8IJ3zTR.js → chunk-5VM5RSS4-Qg9lQpPO.js} +1 -1
- package/dist/client/assets/{chunk-JWPE2WC7-D9DGXb79.js → chunk-JWPE2WC7-CfIrQaMW.js} +1 -1
- package/dist/client/assets/{chunk-VQ5W62QI-B0LNYdif.js → chunk-VQ5W62QI-BP9oQzc0.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-C7IAIbvZ.js → chunk-XXDRQBXY-DKzIjnsB.js} +1 -1
- package/dist/client/assets/{chunk-ZCHMQSOR-C79hvjlu.js → chunk-ZCHMQSOR-DsvG6BGY.js} +2 -2
- package/dist/client/assets/{classDiagram-v2-4MYWR3UA-0Di1C2ZB.js → classDiagram-v2-4MYWR3UA-BSiSmGgP.js} +1 -1
- package/dist/client/assets/{command-BVQb6I3_.js → command-B_FPXirc.js} +1 -1
- package/dist/client/assets/copy-button-Bp75zBSh.js +1 -0
- package/dist/client/assets/{cose-bilkent-JH36ORCC-rZumaV4b.js → cose-bilkent-JH36ORCC-CXgyrZix.js} +1 -1
- package/dist/client/assets/{cpu-DeRuDMl4.js → cpu-DpkNIYeK.js} +1 -1
- package/dist/client/assets/{cynefin-EF2NZ3EQ-CI9l9xhM.js → cynefin-EF2NZ3EQ-DkmPO3hK.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-WF24UDRP-C8CdorJJ.js → cynefinDiagram-WF24UDRP-BDknJT17.js} +1 -1
- package/dist/client/assets/{dagre-NK4GIZVX-AHpsTq1O.js → dagre-NK4GIZVX-BR4J5E3b.js} +1 -1
- package/dist/client/assets/detail-row-C8zz6mAC.js +1 -0
- package/dist/client/assets/{diagram-CBK3MWTC-BpPLL30n.js → diagram-CBK3MWTC-CvLKqPry.js} +1 -1
- package/dist/client/assets/{diagram-I5XIIV2D-D6loMn3G.js → diagram-I5XIIV2D-CVtE60X9.js} +1 -1
- package/dist/client/assets/{diagram-ODIL2UCW-BaGNd5eN.js → diagram-ODIL2UCW-B--CpfLk.js} +1 -1
- package/dist/client/assets/{diagram-PFBEJUXE-BnDdKu_g.js → diagram-PFBEJUXE-08gch1t1.js} +1 -1
- package/dist/client/assets/{diagram-RJA3I4VV-UXagB0_c.js → diagram-RJA3I4VV-C2e-ubaD.js} +1 -1
- package/dist/client/assets/{diagram-TYUNFSNR-C-whBP-S.js → diagram-TYUNFSNR-DcpK4OXX.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-V4P3TTPT-BbG481iS.js → ebnfDiagram-V4P3TTPT-DM44BkBt.js} +1 -1
- package/dist/client/assets/{elk-QONTBCTQ-FtssIxOc.js → elk-QONTBCTQ-maYS1Zzm.js} +1 -1
- package/dist/client/assets/{empty-state-CACt-76q.js → empty-state-HtOTBAoq.js} +1 -1
- package/dist/client/assets/{erDiagram-KYQIGQAA-PpFgUf4C.js → erDiagram-KYQIGQAA-BR7z9r2M.js} +1 -1
- package/dist/client/assets/{execution-config-CGL73sRn.js → execution-config-DYYeJyJh.js} +1 -1
- package/dist/client/assets/{file-D80JE_L0.js → file-VtGYNr9E.js} +1 -1
- package/dist/client/assets/{file-exclamation-point-CcJ_e4_m.js → file-exclamation-point-eBlQssyW.js} +1 -1
- package/dist/client/assets/{file-text-Ds9edaTZ.js → file-text-DvNAxTGZ.js} +1 -1
- package/dist/client/assets/{find-latest-widget-fence-BtqFMP_f.js → find-latest-widget-fence-C2qXvASs.js} +5 -5
- package/dist/client/assets/{flowDiagram-IUGLLWBU-BIva66g9.js → flowDiagram-IUGLLWBU-DiuMtMbj.js} +1 -1
- package/dist/client/assets/form-CGIIzr1u.js +1 -0
- package/dist/client/assets/{format-cron-BpGrgPLu.js → format-cron-BzJ6ekoo.js} +1 -1
- package/dist/client/assets/format-tokens-DymkROvy.js +1 -0
- package/dist/client/assets/{ganttDiagram-R7GPNTJY-CZqips_4.js → ganttDiagram-R7GPNTJY-Cf_z8Ri1.js} +1 -1
- package/dist/client/assets/{git-branch-B8JNwQ6q.js → git-branch-BVzjBPW-.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PDYL7XHY-DoIc3lda.js → gitGraphDiagram-PDYL7XHY-RZXACCBr.js} +1 -1
- package/dist/client/assets/{graph-yizM0vwL.js → graph-DfAV_ObD.js} +1 -1
- package/dist/client/assets/{heart-BavUIV45.js → heart-BMOCYMFT.js} +1 -1
- package/dist/client/assets/{highlighted-body-KPVGNVTW-CGr3AgaU.js → highlighted-body-KPVGNVTW-DrrsaKBc.js} +1 -1
- package/dist/client/assets/image-lightbox-tAwBNBhm.js +1 -0
- package/dist/client/assets/{image-off-C1uTDs9-.js → image-off-BpagBHk1.js} +1 -1
- package/dist/client/assets/{index-CrTmY12y.js → index-0uCJUW_h.js} +2 -2
- package/dist/client/assets/index-0y0K3rYv.js +1 -0
- package/dist/client/assets/{index-CJXMgnYp.js → index-2GjydAcS.js} +1 -1
- package/dist/client/assets/index-6dsaPQ7-.js +1 -0
- package/dist/client/assets/{index-X282DRZf.js → index-7-yzdcAx.js} +3 -3
- package/dist/client/assets/{index-C8ZpJXTQ.js → index-A7HgzxSw.js} +1 -1
- package/dist/client/assets/{index-DW4KUPHp.js → index-BEqKTiCR.js} +1 -1
- package/dist/client/assets/{index-56EOd-zy.js → index-BIN0yv4s.js} +1 -1
- package/dist/client/assets/{index-FhWMRBQP.js → index-BL5Vmq62.js} +1 -1
- package/dist/client/assets/index-BOvFXsF_.js +1 -0
- package/dist/client/assets/index-BbcfxnHC.js +1 -0
- package/dist/client/assets/{index-DqkFtcGQ.js → index-BdKIijqB.js} +1 -1
- package/dist/client/assets/{index-BOEPL6hN.js → index-BfAymWoj.js} +1 -1
- package/dist/client/assets/{index-BKWJiERs.js → index-Bgts5its.js} +1 -1
- package/dist/client/assets/{index-n_pnc-CO.js → index-BiL3chP7.js} +1 -1
- package/dist/client/assets/{index-FI_y_dND.js → index-Bu3PEVA_.js} +1 -1
- package/dist/client/assets/{index-BOhSPP-6.js → index-C6DTV4h3.js} +1 -1
- package/dist/client/assets/{index-Cdod8zEY.js → index-CCH9c-nB.js} +1 -1
- package/dist/client/assets/{index-BkJlIXqM.js → index-CH4NJ8dD.js} +1 -1
- package/dist/client/assets/{index-CiGYtR9O.js → index-CKGJp3Cm.js} +1 -1
- package/dist/client/assets/{index-DEiSJbvu.js → index-CeqI4FFw.js} +1 -1
- package/dist/client/assets/{index-C4t0UTU-.js → index-Cj9-XXKl.js} +1 -1
- package/dist/client/assets/{index-ZR5f82z2.js → index-Cu8tnfM_.js} +1 -1
- package/dist/client/assets/{index-Dcd4NqFB.js → index-D4OWRMsG.js} +1 -1
- package/dist/client/assets/{index-Br6xDNvu.js → index-D8SP73Xw.js} +1 -1
- package/dist/client/assets/{index-CoNMlH37.js → index-DEJXVqcY.js} +1 -1
- package/dist/client/assets/{index-CoKNU2F9.js → index-DEMZynQt.js} +1 -1
- package/dist/client/assets/index-DGzMwE1Z.js +1 -0
- package/dist/client/assets/{index-1QfQImuJ.js → index-DIJdZqg2.js} +3 -3
- package/dist/client/assets/{index-YSHcMqHa.js → index-DIRqrOEK.js} +1 -1
- package/dist/client/assets/{index-CeDn1Ak1.js → index-DNbdGvs9.js} +1 -1
- package/dist/client/assets/{index-7XeZCCDI.js → index-DOBjxRe9.js} +1 -1
- package/dist/client/assets/{index-BJEt9R_G.js → index-DcBlHsnC.js} +1 -1
- package/dist/client/assets/index-DdsaTuqO.js +1 -0
- package/dist/client/assets/index-Dt4H9Tms.js +17 -0
- package/dist/client/assets/{index-DYEmUa5t.js → index-HXC63Ry8.js} +1 -1
- package/dist/client/assets/index-MHIn2TC9.js +1063 -0
- package/dist/client/assets/{index-tgbcsB6H.js → index-OjJ_8uMM.js} +1 -1
- package/dist/client/assets/index-P4Wos1Gi.css +1 -0
- package/dist/client/assets/{index-QSXJR98z.js → index-U5jTIqzv.js} +1 -1
- package/dist/client/assets/{index-CXBYgGja.js → index-ZzPr9GUI.js} +1 -1
- package/dist/client/assets/index-d9cqTUAj.js +1 -0
- package/dist/client/assets/{index-LwL5BpE4.js → index-fcfCRITA.js} +1 -1
- package/dist/client/assets/{index-SOKlO1zZ.js → index-onQlu3UR.js} +1 -1
- package/dist/client/assets/{index.esm-CAeUe7uQ.js → index.esm-DSKTDEoH.js} +1 -1
- package/dist/client/assets/{infoDiagram-MVDRKAX5-DweUdYSy.js → infoDiagram-MVDRKAX5-B8dulOBe.js} +1 -1
- package/dist/client/assets/{inline-code-SYHTKcle.js → inline-code-B3qpjdZ2.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-HPEHV2GE-DKNQIv7P.js → ishikawaDiagram-HPEHV2GE-Cy8aIg0O.js} +1 -1
- package/dist/client/assets/{journeyDiagram-BOSHW7O7-DPD7F4VO.js → journeyDiagram-BOSHW7O7-BZAlejG3.js} +1 -1
- package/dist/client/assets/{kanban-definition-FNSA4HC5-B_uPSwxC.js → kanban-definition-FNSA4HC5-BxS1edpe.js} +1 -1
- package/dist/client/assets/{layers-F4mvrI2l.js → layers-ByCM7XO5.js} +1 -1
- package/dist/client/assets/{lightbulb-a6nNsrzy.js → lightbulb-KjW8YTXH.js} +1 -1
- package/dist/client/assets/{link-2-yI2Tlm7Q.js → link-2-CtFfuMO5.js} +1 -1
- package/dist/client/assets/{list-runtime-types-CsGil5te.js → list-runtime-types-DrzHejZo.js} +1 -1
- package/dist/client/assets/{markdown-content-Cjhsscbn.js → markdown-content-DgiSdNwz.js} +1 -1
- package/dist/client/assets/mention-pill-CHPHlu-U.js +1 -0
- package/dist/client/assets/{mermaid.core-9PwG-9fN.js → mermaid.core-ovqlC4PC.js} +4 -4
- package/dist/client/assets/{message-square-off-aV4NMCjd.js → message-square-off-CEOyy4Pq.js} +1 -1
- package/dist/client/assets/{mindmap-definition-6OY57UG3-BRbWmQkj.js → mindmap-definition-6OY57UG3-CsngqLzI.js} +1 -1
- package/dist/client/assets/{more-details-CRLU2HN4.js → more-details-BW9mauVT.js} +1 -1
- package/dist/client/assets/{owner-notice-CTJbhUak.js → owner-notice-BRUVafHC.js} +1 -1
- package/dist/client/assets/{package-sPggO7Dr.js → package-Bbs99yqi.js} +1 -1
- package/dist/client/assets/{page-container-CnfDuiDC.js → page-container-BVfGgaaJ.js} +1 -1
- package/dist/client/assets/{pane-resize-handle-63OC5vfI.js → pane-resize-handle-BL7Meu5R.js} +1 -1
- package/dist/client/assets/{paperclip-WhPo3_WD.js → paperclip-QOWXs8-5.js} +1 -1
- package/dist/client/assets/path-input-BDRHmgzW.js +1 -0
- package/dist/client/assets/{pegDiagram-ECIUJNBX-Ct9Li_PA.js → pegDiagram-ECIUJNBX-DPsWmWqw.js} +1 -1
- package/dist/client/assets/{pieDiagram-GNMPY74T-BAB5RA5v.js → pieDiagram-GNMPY74T-BdOIDv4F.js} +1 -1
- package/dist/client/assets/{plug-_q5iqunq.js → plug-BrsPyUhu.js} +1 -1
- package/dist/client/assets/primer-trigger-C97fRm1v.js +3 -0
- package/dist/client/assets/{profile-errors-COcBx7w5.js → profile-errors-nPLX60ha.js} +1 -1
- package/dist/client/assets/{progress-77FCPL2y.js → progress-C9TALtIa.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-D57K4MC3-BqPJVmMS.js → quadrantDiagram-D57K4MC3-MzMEunU7.js} +1 -1
- package/dist/client/assets/{query-error-state-5236P3z0.js → query-error-state-BJjgx-WC.js} +1 -1
- package/dist/client/assets/{radio-C8xmfoqO.js → radio-Biql29-B.js} +1 -1
- package/dist/client/assets/{railroadDiagram-Y72NRBL7-B8U11nT6.js → railroadDiagram-Y72NRBL7-Dzx_PYVW.js} +1 -1
- package/dist/client/assets/registry-B0HgbN69.js +1 -0
- package/dist/client/assets/registry-fiUD5cv6.js +39 -0
- package/dist/client/assets/{relay-trace-schemas-B80E4EUn.js → relay-trace-schemas-BJ4MfChd.js} +2 -2
- package/dist/client/assets/{repeat-CHmB_vD7.js → repeat-CKufDGoQ.js} +1 -1
- package/dist/client/assets/{requirementDiagram-EQYSW5RA-CzJ1gzTh.js → requirementDiagram-EQYSW5RA-J0pg6FEt.js} +1 -1
- package/dist/client/assets/{room-files-source-B0gc97Ri.js → room-files-source-iaYdshKo.js} +2 -2
- package/dist/client/assets/{rotate-ccw-clock-CCU6SVnv.js → rotate-ccw-clock-CnARSw5V.js} +1 -1
- package/dist/client/assets/{rotate-cw-B8WQa8O-.js → rotate-cw-BAn_5-Gq.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-SY24JHO5-D4vQwyve.js → sankeyDiagram-SY24JHO5-6V_uy-zQ.js} +1 -1
- package/dist/client/assets/scroll-area-XDq7yL_d.js +1 -0
- package/dist/client/assets/{sequenceDiagram-BLEHNHQU-BVnIsPQe.js → sequenceDiagram-BLEHNHQU-C4jZi3N4.js} +1 -1
- package/dist/client/assets/{shield-x-ijIbRppV.js → shield-x-CpiXuMbN.js} +1 -1
- package/dist/client/assets/signed-in-Rv3Sjk8n.js +1 -0
- package/dist/client/assets/{sizeCapture-INFHLROL-DGb1rAJL.js → sizeCapture-INFHLROL-B7nxFreb.js} +1 -1
- package/dist/client/assets/{soul-file-CXgYs25S.js → soul-file-BQz4TtHo.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-A6IESKWZ-DeX3IKTm.js → stateDiagram-v2-A6IESKWZ-B5rvc4n2.js} +1 -1
- package/dist/client/assets/{swimlanes-B3ENRKFQ-DN5ljYhG.js → swimlanes-B3ENRKFQ-DnElusDo.js} +1 -1
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-DLpKz5fF.js +8 -0
- package/dist/client/assets/{table-D9ww_3Ij.js → table-NGiWzPO4.js} +1 -1
- package/dist/client/assets/{timeline-definition-JXYKGLGB-DpRthC3r.js → timeline-definition-JXYKGLGB-DMgyn3XX.js} +1 -1
- package/dist/client/assets/{trust-posture-Dn2ciEE0.js → trust-posture-BArJ9H4j.js} +1 -1
- package/dist/client/assets/{unplug-BZ8zSvfB.js → unplug-MSjeZ0tJ.js} +1 -1
- package/dist/client/assets/{unverified-catalog-notice-CGy05tAO.js → unverified-catalog-notice-DA96H8Df.js} +1 -1
- package/dist/client/assets/{use-bindings-BLAWQRpe.js → use-bindings-BojBqRJS.js} +1 -1
- package/dist/client/assets/{use-composer-prefs-ICOpilWK.js → use-composer-prefs-BDl8aMme.js} +1 -1
- package/dist/client/assets/{use-connector-management-DEMGZy9N.js → use-connector-management-FONU6FK8.js} +1 -1
- package/dist/client/assets/{use-deep-link-scroll-DxGYrks3.js → use-deep-link-scroll-CtbBPBgi.js} +1 -1
- package/dist/client/assets/{use-delete-binding-Bnv3J5Fu.js → use-delete-binding-COhBv6X3.js} +1 -1
- package/dist/client/assets/{use-dev-links-BOcktLiE.js → use-dev-links-Dh0MCiGY.js} +1 -1
- package/dist/client/assets/{use-direct-message-panel-D38tSozW.js → use-direct-message-panel-CYnWunqk.js} +1 -1
- package/dist/client/assets/{use-external-adapter-catalog-9qiNBqpc.js → use-external-adapter-catalog-RTDOW8Yi.js} +1 -1
- package/dist/client/assets/use-filter-state-CSFTDx7z.js +6 -0
- package/dist/client/assets/use-full-activity-feed-DlY_ZbRZ.js +1 -0
- package/dist/client/assets/use-is-below-desktop-ClzGXlRb.js +1 -0
- package/dist/client/assets/{use-local-browser-B1huJhdg.js → use-local-browser-WwZd-FOP.js} +1 -1
- package/dist/client/assets/{use-mesh-topology-BTYAy6zc.js → use-mesh-topology-WnFkjq41.js} +1 -1
- package/dist/client/assets/{use-mounted-ref-CaPc6Prv.js → use-mounted-ref-Dz1h70pz.js} +1 -1
- package/dist/client/assets/{use-notification-prefs-u76DPoP0.js → use-notification-prefs-IrF5_cko.js} +1 -1
- package/dist/client/assets/use-pending-read-CnAnzOt_.js +1 -0
- package/dist/client/assets/use-personality-commit-C4hYkSPy.js +1 -0
- package/dist/client/assets/use-promo-activation-CPVANFBh.js +6 -0
- package/dist/client/assets/{use-promo-dismissals-CO7-qhEl.js → use-promo-dismissals-B9m0HT6L.js} +1 -1
- package/dist/client/assets/{use-pulse-freshness-D07Mv-Sa.js → use-pulse-freshness-DMySxN8D.js} +1 -1
- package/dist/client/assets/{use-room-follow-claim-DRQBuAIe.js → use-room-follow-claim-ByaYVY0o.js} +1 -1
- package/dist/client/assets/{use-room-sessions-Bzk7rM40.js → use-room-sessions-DPB29acU.js} +1 -1
- package/dist/client/assets/{use-roving-tab-list-CcznVldj.js → use-roving-tab-list-BO8kbs-w.js} +1 -1
- package/dist/client/assets/{use-session-canvas-CpgE7tFb.js → use-session-canvas-Cunag2K7.js} +9 -9
- package/dist/client/assets/use-status-budget-jt-9aQR0.js +21 -0
- package/dist/client/assets/{use-transform-ByJGn3hq.js → use-transform-ydtuYUNp.js} +1 -1
- package/dist/client/assets/{use-unclaimed-chats-C-z5fstJ.js → use-unclaimed-chats-ClBWJgNm.js} +1 -1
- package/dist/client/assets/use-update-config-ZHtOtve0.js +1 -0
- package/dist/client/assets/{useMutationState-BF1EFtIZ.js → useMutationState-B8ArIqeH.js} +1 -1
- package/dist/client/assets/{usecaseDiagram-WPOLBNNX-efVKbRIX.js → usecaseDiagram-WPOLBNNX-C5JdAkG9.js} +1 -1
- package/dist/client/assets/{vennDiagram-Q3Y3IDCW-Bravmwce.js → vennDiagram-Q3Y3IDCW-CqLCy7LU.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-IVAIDKWA-fR77zByv.js → wardleyDiagram-IVAIDKWA-C9FlHLTd.js} +1 -1
- package/dist/client/assets/{xychartDiagram-4URNHDU4-BphORSLh.js → xychartDiagram-4URNHDU4-BIm-RUWd.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/drizzle/20261031012841_dor3309_file_turn_on_offer.sql +2 -0
- package/dist/drizzle/20261101122330_schedule_declined_content_key.sql +1 -0
- package/dist/drizzle/20261101195529_work_queue.sql +38 -0
- package/dist/drizzle/20261101233656_dor3644_session_launched_by.sql +1 -0
- package/dist/drizzle/20261102041558_dor3070_marketplace_summary.sql +2 -0
- package/dist/drizzle/20261102051715_dor3440_clear_origin_holds.sql +10 -0
- package/dist/drizzle/20261102135442_agent_browser_profiles.sql +15 -0
- package/dist/drizzle/meta/20261031012841_snapshot.json +14116 -0
- package/dist/drizzle/meta/20261101122330_snapshot.json +14123 -0
- package/dist/drizzle/meta/20261101195529_snapshot.json +14363 -0
- package/dist/drizzle/meta/20261101233656_snapshot.json +14370 -0
- package/dist/drizzle/meta/20261102041558_snapshot.json +14384 -0
- package/dist/drizzle/meta/20261102051715_snapshot.json +14384 -0
- package/dist/drizzle/meta/20261102135442_snapshot.json +14483 -0
- package/dist/drizzle/meta/_journal.json +49 -0
- package/dist/server/extension-child.cjs +1147 -572
- package/dist/server/index.js +45678 -38894
- package/dist/server/index.js.map +2 -2
- package/package.json +5 -5
- package/dist/client/assets/ActivityRow-DIBH4v9c.js +0 -1
- package/dist/client/assets/AdapterSetupWizard-Dle_b9qc.js +0 -2
- package/dist/client/assets/AppearancePage-DXbhUt2e.js +0 -1
- package/dist/client/assets/AttentionSignalRow-5E7TkG98.js +0 -1
- package/dist/client/assets/BindingDialog-q--8SDJF.js +0 -1
- package/dist/client/assets/BlintzCanvas-DruVZcDU.js +0 -1231
- package/dist/client/assets/CanvasFileContent-BThy5fjD.js +0 -2
- package/dist/client/assets/CanvasModel3dContent-BbgR73jh.js +0 -2
- package/dist/client/assets/ChannelComposer-qhk0KtW7.js +0 -44
- package/dist/client/assets/ConnectionAccessLists-DRwO1v0V.js +0 -1
- package/dist/client/assets/HandlePage-B4qbFi40.js +0 -1
- package/dist/client/assets/HeartbeatPage-BnNbQLCW.js +0 -1
- package/dist/client/assets/Marketplace-DbdLWz0-.js +0 -36
- package/dist/client/assets/NamePage-fhxyWDDY.js +0 -1
- package/dist/client/assets/NewDirectMessageMenu-DBAdvv5p.js +0 -1
- package/dist/client/assets/OperatorIdentityForm-Bls5Vo_u.js +0 -1
- package/dist/client/assets/PhotoPage-CNHcXbz4.js +0 -1
- package/dist/client/assets/PreviewRefusedNotice-Ds4IO32o.js +0 -1
- package/dist/client/assets/PromptSuggestionChips-BXxC799Q.js +0 -1
- package/dist/client/assets/RoomSurface-DgH3a_Fv.js +0 -1
- package/dist/client/assets/RunsOnPopover-CEkkjrGg.js +0 -1
- package/dist/client/assets/RuntimeConnectFlow-DXWGgvCW.js +0 -1
- package/dist/client/assets/RuntimeSetupDialog-D6L1QhMF.js +0 -1
- package/dist/client/assets/SettingsDialog-BOOqWKcj.js +0 -12
- package/dist/client/assets/SkillsPage-ntCEhUIM.js +0 -1
- package/dist/client/assets/TaskDialogWrapper-vBWAWwTY.js +0 -1
- package/dist/client/assets/TasksEmptyState-C_3UkAbA.js +0 -3
- package/dist/client/assets/TourHost-B69XAKpE.js +0 -1
- package/dist/client/assets/WidgetErrorCard-BlqaIsPK.js +0 -108
- package/dist/client/assets/WorkView-BekLkR4O.js +0 -51
- package/dist/client/assets/_shell-Du0F-5fK.js +0 -80
- package/dist/client/assets/_shell._home.activity-5rihXoYF.js +0 -1
- package/dist/client/assets/_shell._home.index-BsLNqt4f.js +0 -3
- package/dist/client/assets/_shell._home.tasks-Cxs5tLWA.js +0 -1
- package/dist/client/assets/_shell._home.workspaces-CEHDdfbP.js +0 -1
- package/dist/client/assets/_shell.connections-Bm0WmgXH.js +0 -1
- package/dist/client/assets/_shell.marketplace-CsQ60Mlc.js +0 -1
- package/dist/client/assets/_shell.marketplace_.sources-DNyShS1x.js +0 -1
- package/dist/client/assets/_shell.session-BN42bV3w.js +0 -1
- package/dist/client/assets/_shell.threads-HH4EvufJ.js +0 -1
- package/dist/client/assets/_shell.x._extensionId-3ZlJV1iu.js +0 -1
- package/dist/client/assets/_shell.x._extensionId_._-3ZlJV1iu.js +0 -1
- package/dist/client/assets/card-DUmTNXJJ.js +0 -1
- package/dist/client/assets/channel-B7zgJbnU.js +0 -1
- package/dist/client/assets/form-D93N5lrK.js +0 -1
- package/dist/client/assets/image-lightbox-vgPEvSCc.js +0 -1
- package/dist/client/assets/index-B36osK_S.js +0 -17
- package/dist/client/assets/index-B446r3dL.js +0 -1
- package/dist/client/assets/index-BGo1YiUE.js +0 -1
- package/dist/client/assets/index-BO3yPJt-.js +0 -1
- package/dist/client/assets/index-DE6uOpn4.js +0 -1
- package/dist/client/assets/index-Dag1qeZI.js +0 -1
- package/dist/client/assets/index-Dm0Tav7v.js +0 -1
- package/dist/client/assets/index-Dry_agqN.css +0 -1
- package/dist/client/assets/index-OQuvRZTD.js +0 -1058
- package/dist/client/assets/index-eVrGefuq.js +0 -1
- package/dist/client/assets/mention-pill-BsOeTJ2f.js +0 -1
- package/dist/client/assets/path-input-C2KIXdON.js +0 -1
- package/dist/client/assets/primer-trigger-B2tjuHBx.js +0 -3
- package/dist/client/assets/registry-BzXBOE9h.js +0 -34
- package/dist/client/assets/registry-sfhDu9q2.js +0 -1
- package/dist/client/assets/scroll-area-FwZwM74Q.js +0 -1
- package/dist/client/assets/search-x-Q18Wm-C5.js +0 -6
- package/dist/client/assets/signed-in-DEOMBWVX.js +0 -1
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-D8kHFWtL.js +0 -8
- package/dist/client/assets/use-full-activity-feed-CtQquOBW.js +0 -1
- package/dist/client/assets/use-is-below-desktop-CAGEAsCC.js +0 -1
- package/dist/client/assets/use-pending-read-D0y6i7G9.js +0 -1
- package/dist/client/assets/use-personality-commit-C3h8upDo.js +0 -1
- package/dist/client/assets/use-promo-activation-5HG08FlB.js +0 -11
- package/dist/client/assets/use-status-budget-Xn2sIeM1.js +0 -16
- package/dist/client/assets/use-update-config-L5NCTj3t.js +0 -1
package/dist/bin/cli.js
CHANGED
|
@@ -16831,13 +16831,13 @@ var init_json_schema_processors = __esm({
|
|
|
16831
16831
|
...params,
|
|
16832
16832
|
path: [...params.path, "propertyNames"]
|
|
16833
16833
|
});
|
|
16834
|
-
let
|
|
16835
|
-
if (!
|
|
16836
|
-
|
|
16837
|
-
pendingRecords.set(ctx,
|
|
16834
|
+
let pending = pendingRecords.get(ctx);
|
|
16835
|
+
if (!pending) {
|
|
16836
|
+
pending = [];
|
|
16837
|
+
pendingRecords.set(ctx, pending);
|
|
16838
16838
|
ctx.deferred.push(() => rewriteKeyNames(ctx));
|
|
16839
16839
|
}
|
|
16840
|
-
|
|
16840
|
+
pending.push(schema3);
|
|
16841
16841
|
}
|
|
16842
16842
|
json3.additionalProperties = processSchema(def.valueType, ctx, {
|
|
16843
16843
|
...params,
|
|
@@ -23335,9 +23335,9 @@ var init_account_signin_policy = __esm({
|
|
|
23335
23335
|
save(value) {
|
|
23336
23336
|
const next = PolicySchema.parse(value);
|
|
23337
23337
|
fs2.mkdirSync(path2.dirname(this.file), { recursive: true });
|
|
23338
|
-
const
|
|
23339
|
-
fs2.writeFileSync(
|
|
23340
|
-
fs2.renameSync(
|
|
23338
|
+
const pending = this.file + ".pending";
|
|
23339
|
+
fs2.writeFileSync(pending, JSON.stringify(next), { mode: 384 });
|
|
23340
|
+
fs2.renameSync(pending, this.file);
|
|
23341
23341
|
this.value = next;
|
|
23342
23342
|
}
|
|
23343
23343
|
};
|
|
@@ -25767,8 +25767,17 @@ var init_config_sections = __esm({
|
|
|
25767
25767
|
* reads as `null`, which is exactly "not chosen", so there is no value a
|
|
25768
25768
|
* migration could seed that the absence does not already say. Operator-only.
|
|
25769
25769
|
*/
|
|
25770
|
-
triageOnCredits: external_exports.boolean().nullable().default(null)
|
|
25771
|
-
|
|
25770
|
+
triageOnCredits: external_exports.boolean().nullable().default(null),
|
|
25771
|
+
/**
|
|
25772
|
+
* The room that hears "nothing is running" (DOR-3675): no agent chat on this computer has
|
|
25773
|
+
* run for 30 minutes while work is still open. `null` posts in the team room. An agent
|
|
25774
|
+
* could aim a post its alerts carry at a room of its choosing, so only a person sets it.
|
|
25775
|
+
*
|
|
25776
|
+
* No migration: a stored `heartbeats` section without this leaf reads as `null`, the team
|
|
25777
|
+
* room, which is the default. Operator-only.
|
|
25778
|
+
*/
|
|
25779
|
+
idleAlertRoomId: external_exports.string().min(1).nullable().default(null)
|
|
25780
|
+
}).default(() => ({ enabled: true, triageOnCredits: null, idleAlertRoomId: null }));
|
|
25772
25781
|
ActivityConfigSchema = external_exports.object({
|
|
25773
25782
|
/**
|
|
25774
25783
|
* Days of Activity history to keep. `DORKOS_ACTIVITY_RETENTION_DAYS`
|
|
@@ -26860,7 +26869,6 @@ function repoUrl(path77 = "") {
|
|
|
26860
26869
|
var GITHUB_ORG, links;
|
|
26861
26870
|
var init_links = __esm({
|
|
26862
26871
|
"../shared/src/links.ts"() {
|
|
26863
|
-
"use strict";
|
|
26864
26872
|
GITHUB_ORG = "dork-labs";
|
|
26865
26873
|
links = {
|
|
26866
26874
|
/** The public origin of the marketing site, the docs and DorkOS Cloud. */
|
|
@@ -27128,6 +27136,11 @@ var init_env = __esm({
|
|
|
27128
27136
|
// `apps/e2e/playwright.config.ts` sets this on both Express legs; nothing
|
|
27129
27137
|
// else in the repo does. See services/search/registry.ts `selectSearchSources`.
|
|
27130
27138
|
DORKOS_SEARCH_NO_EXTERNAL_HISTORY: boolFlag,
|
|
27139
|
+
// Turn off agent introductions in rooms (DOR-2106). An introduction starts a
|
|
27140
|
+
// real agent turn, so a harness that must start none sets this:
|
|
27141
|
+
// `apps/e2e/playwright.config.ts` does on its real-runtime Express legs, whose
|
|
27142
|
+
// fixtures guarantee that no spec reaches a real runtime. Off by default.
|
|
27143
|
+
DORKOS_NO_ROOM_INTRODUCTIONS: boolFlag,
|
|
27131
27144
|
// Activity feed retention in days. Overrides `activity.retentionDays` (default 365) when set.
|
|
27132
27145
|
DORKOS_ACTIVITY_RETENTION_DAYS: external_exports.coerce.number().int().min(1).optional(),
|
|
27133
27146
|
// Test mode — TestModeRuntime is registered instead of ClaudeCodeRuntime
|
|
@@ -27289,7 +27302,7 @@ import path3 from "path";
|
|
|
27289
27302
|
import { fileURLToPath } from "url";
|
|
27290
27303
|
function resolveVersion() {
|
|
27291
27304
|
if (env2.DORKOS_VERSION_OVERRIDE) return env2.DORKOS_VERSION_OVERRIDE;
|
|
27292
|
-
if (true) return "0.
|
|
27305
|
+
if (true) return "0.130.0";
|
|
27293
27306
|
const pkgPath = path3.join(path3.dirname(fileURLToPath(import.meta.url)), "../../package.json");
|
|
27294
27307
|
return JSON.parse(readFileSync(pkgPath, "utf-8")).version;
|
|
27295
27308
|
}
|
|
@@ -42991,8 +43004,13 @@ function overrideNames(input4) {
|
|
|
42991
43004
|
names.add("OPENCODE_SERVER_PASSWORD");
|
|
42992
43005
|
names.add("OPENCODE_CONFIG_CONTENT");
|
|
42993
43006
|
}
|
|
43007
|
+
for (const name2 of Object.keys(flowIdentityEnv(input4.runtime, input4.purpose))) names.add(name2);
|
|
42994
43008
|
return names;
|
|
42995
43009
|
}
|
|
43010
|
+
function flowIdentityEnv(runtime, purpose) {
|
|
43011
|
+
if (purpose !== "turn" || runtime === "doe") return {};
|
|
43012
|
+
return { FLOW_RUNTIME: runtime, FLOW_HARNESS: "dorkos" };
|
|
43013
|
+
}
|
|
42996
43014
|
function projectRuntimeEnvironment(input4) {
|
|
42997
43015
|
const inherit = RuntimeInheritedEnvNamesSchema.parse(input4.inherit ?? []);
|
|
42998
43016
|
const allowed = /* @__PURE__ */ new Set([...BASELINE_ENV_NAMES, ...profileNames(input4), ...inherit]);
|
|
@@ -43035,7 +43053,14 @@ var init_runtime_environment = __esm({
|
|
|
43035
43053
|
function runtimeEnvironment(runtime, purpose, overrides) {
|
|
43036
43054
|
const inherit = runtimeInheritedNames(runtime);
|
|
43037
43055
|
return withGitConfigEnv(
|
|
43038
|
-
projectRuntimeEnvironment({
|
|
43056
|
+
projectRuntimeEnvironment({
|
|
43057
|
+
// eslint-disable-next-line no-restricted-syntax -- deliberate ambient-input boundary for the pure child-environment projection
|
|
43058
|
+
parent: process.env,
|
|
43059
|
+
runtime,
|
|
43060
|
+
purpose,
|
|
43061
|
+
inherit,
|
|
43062
|
+
overrides: { ...overrides, ...flowIdentityEnv(runtime, purpose) }
|
|
43063
|
+
}),
|
|
43039
43064
|
SESSION_GIT_CONFIG
|
|
43040
43065
|
);
|
|
43041
43066
|
}
|
|
@@ -50154,11 +50179,11 @@ function containerEntries(value) {
|
|
|
50154
50179
|
}
|
|
50155
50180
|
function inspectBoundedJson(value, bounds) {
|
|
50156
50181
|
const { maxBytes, maxDepth } = bounds;
|
|
50157
|
-
const
|
|
50182
|
+
const pending = [{ value, depth: 0 }];
|
|
50158
50183
|
const ancestors = /* @__PURE__ */ new Set();
|
|
50159
50184
|
let bytes = 0;
|
|
50160
|
-
while (
|
|
50161
|
-
const item =
|
|
50185
|
+
while (pending.length) {
|
|
50186
|
+
const item = pending.pop();
|
|
50162
50187
|
const current3 = item.value;
|
|
50163
50188
|
if (item.exit) {
|
|
50164
50189
|
ancestors.delete(current3);
|
|
@@ -50172,10 +50197,10 @@ function inspectBoundedJson(value, bounds) {
|
|
|
50172
50197
|
if (!entries) return "Expected plain JSON without unsafe keys or accessors";
|
|
50173
50198
|
bytes += 2 + Math.max(0, entries.length - 1);
|
|
50174
50199
|
ancestors.add(current3);
|
|
50175
|
-
|
|
50200
|
+
pending.push({ value: current3, depth: item.depth, exit: true });
|
|
50176
50201
|
for (const [key, child] of entries) {
|
|
50177
50202
|
if (!Array.isArray(current3)) bytes += encoder.encode(JSON.stringify(key)).length + 1;
|
|
50178
|
-
|
|
50203
|
+
pending.push({ value: child, depth: item.depth + 1 });
|
|
50179
50204
|
}
|
|
50180
50205
|
} else {
|
|
50181
50206
|
if (typeof current3 === "number" && !Number.isFinite(current3))
|
|
@@ -52304,6 +52329,39 @@ var init_canvas_channel_schemas = __esm({
|
|
|
52304
52329
|
}
|
|
52305
52330
|
});
|
|
52306
52331
|
|
|
52332
|
+
// ../shared/src/task-approval-schemas.ts
|
|
52333
|
+
var ScheduleOriginMarksSchema, TaskFolderRulesSchema;
|
|
52334
|
+
var init_task_approval_schemas = __esm({
|
|
52335
|
+
"../shared/src/task-approval-schemas.ts"() {
|
|
52336
|
+
"use strict";
|
|
52337
|
+
init_zod();
|
|
52338
|
+
init_zod_openapi();
|
|
52339
|
+
extendZodWithOpenApiOnce();
|
|
52340
|
+
ScheduleOriginMarksSchema = external_exports.object({
|
|
52341
|
+
/** The turn read words DorkOS can't vouch for: a stranger's message, or another agent's that carried one. */
|
|
52342
|
+
outsider: external_exports.literal(true).optional(),
|
|
52343
|
+
/** Each teammate whose message started the chain, and the space room they wrote in. */
|
|
52344
|
+
teammate: external_exports.array(
|
|
52345
|
+
external_exports.object({
|
|
52346
|
+
roomId: external_exports.string(),
|
|
52347
|
+
authorId: external_exports.string(),
|
|
52348
|
+
/** The teammate's name when the mark was written, or null when it was unknown. */
|
|
52349
|
+
name: external_exports.string().nullable().default(null),
|
|
52350
|
+
/** The room's title when the mark was written, or null when it was unknown. */
|
|
52351
|
+
room: external_exports.string().nullable().default(null)
|
|
52352
|
+
})
|
|
52353
|
+
).optional()
|
|
52354
|
+
}).openapi("ScheduleOriginMarks");
|
|
52355
|
+
TaskFolderRulesSchema = external_exports.object({
|
|
52356
|
+
status: external_exports.enum(["approved", "waiting", "none", "unavailable"]),
|
|
52357
|
+
/** Only rules that a launch would apply; empty while approval is outstanding. */
|
|
52358
|
+
applied: external_exports.array(external_exports.string()),
|
|
52359
|
+
/** The filtered folder list waiting for a separate person's approval. */
|
|
52360
|
+
pending: external_exports.array(external_exports.string())
|
|
52361
|
+
});
|
|
52362
|
+
}
|
|
52363
|
+
});
|
|
52364
|
+
|
|
52307
52365
|
// ../shared/src/validation.ts
|
|
52308
52366
|
var AGENT_NAME_REGEX;
|
|
52309
52367
|
var init_validation = __esm({
|
|
@@ -52715,6 +52773,12 @@ function mergeTeammateOrigins(a2, b2) {
|
|
|
52715
52773
|
const added = b2.filter((origin) => !seen.has(key(origin)));
|
|
52716
52774
|
return added.length === 0 ? a2 : [...a2, ...added];
|
|
52717
52775
|
}
|
|
52776
|
+
function ceilingOnlyRecords(ceiling) {
|
|
52777
|
+
const bounds = Array.isArray(ceiling) ? ceiling : [ceiling];
|
|
52778
|
+
return bounds.length > 0 && bounds.every(
|
|
52779
|
+
(bound) => bound !== "runtime-default" && bound.asks === "never" && bound.reach === "everything" && bound.outsider !== true
|
|
52780
|
+
);
|
|
52781
|
+
}
|
|
52718
52782
|
function ceilingHoldsForOutsider(ceiling) {
|
|
52719
52783
|
if (!Array.isArray(ceiling)) return ceiling === "runtime-default";
|
|
52720
52784
|
const bounds = ceiling;
|
|
@@ -52729,6 +52793,7 @@ function stricterPower(a2, b2) {
|
|
|
52729
52793
|
return a2.auto && b2.auto ? { asks, reach, auto: true } : { asks, reach };
|
|
52730
52794
|
}
|
|
52731
52795
|
function clampModeToCeiling(declared, modeId, ceiling) {
|
|
52796
|
+
if (ceilingOnlyRecords(ceiling)) return modeId;
|
|
52732
52797
|
const level = resolveCeilingLevel(declared, ceiling);
|
|
52733
52798
|
const own2 = declared.values.find((m2) => m2.id === modeId);
|
|
52734
52799
|
if (own2 && admits(level, own2)) return modeId;
|
|
@@ -54116,7 +54181,6 @@ var init_capabilities = __esm({
|
|
|
54116
54181
|
var PROJECT_NAME_PATTERN, ProjectRefSchema, ProjectInfoSchema, ProjectListResponseSchema, ProjectResolveQuerySchema, ProjectResolveResponseSchema, AccountEligibilityRowSchema, AccountEligibilityQuerySchema, AccountEligibilityResponseSchema, ProjectAccountsRequestSchema, ProjectWithoutCreditsRequestSchema, OnlyProjectsRequestSchema, OnlyProjectsResponseSchema, NoAutoMoveSchema;
|
|
54117
54182
|
var init_project_schemas = __esm({
|
|
54118
54183
|
"../shared/src/project-schemas.ts"() {
|
|
54119
|
-
"use strict";
|
|
54120
54184
|
init_zod();
|
|
54121
54185
|
init_zod_openapi();
|
|
54122
54186
|
extendZodWithOpenApiOnce();
|
|
@@ -54228,7 +54292,7 @@ var init_project_schemas = __esm({
|
|
|
54228
54292
|
});
|
|
54229
54293
|
|
|
54230
54294
|
// ../shared/src/approval-schemas.ts
|
|
54231
|
-
var APPROVAL_SUMMARY_MAX_LENGTH, APPROVAL_DETAIL_MAX_LENGTH, APPROVAL_SUBJECT_LABEL_MAX_LENGTH, APPROVAL_SUBJECT_KINDS, ApprovalSubjectSchema, APPROVAL_SERVICE_ACTION_MAX_DETAILS, APPROVAL_SERVICE_DETAIL_VALUE_MAX_LENGTH, APPROVAL_SERVICE_DETAIL_LABEL_MAX_LENGTH, APPROVAL_SERVICE_NAME_MAX_LENGTH, APPROVAL_SERVICE_FULL_VALUE_MAX_LENGTH, APPROVAL_SERVICE_FULL_MAX_LINES, APPROVAL_SERVICE_FULL_MAX_DEPTH, ApprovalServiceActionLineSchema, ApprovalServiceActionDetailSchema, ApprovalServiceActionSchema, APPROVAL_ORIGINS, APPROVAL_REQUEST_REASON_MAX_LENGTH, PendingApprovalSchema, PendingApprovalsResponseSchema, CAPABILITY_APPROVAL_OUTCOMES, CapabilityApprovalOutcomeSchema, APPROVAL_ANSWERS, GrantApprovalBodySchema, DenyApprovalBodySchema, ApprovalDecisionResponseSchema;
|
|
54295
|
+
var APPROVAL_SUMMARY_MAX_LENGTH, APPROVAL_CONSEQUENCE_MAX_LENGTH, APPROVAL_DETAIL_MAX_LENGTH, APPROVAL_SUBJECT_LABEL_MAX_LENGTH, APPROVAL_SUBJECT_KINDS, ApprovalSubjectSchema, APPROVAL_SERVICE_ACTION_MAX_DETAILS, APPROVAL_SERVICE_DETAIL_VALUE_MAX_LENGTH, APPROVAL_SERVICE_DETAIL_LABEL_MAX_LENGTH, APPROVAL_SERVICE_NAME_MAX_LENGTH, APPROVAL_SERVICE_FULL_VALUE_MAX_LENGTH, APPROVAL_SERVICE_FULL_MAX_LINES, APPROVAL_SERVICE_FULL_MAX_DEPTH, ApprovalServiceActionLineSchema, ApprovalServiceActionDetailSchema, ApprovalServiceActionSchema, APPROVAL_ORIGINS, APPROVAL_REQUEST_REASON_MAX_LENGTH, APPROVAL_FULL_DETAIL_MAX_LENGTH, MARKETPLACE_RISK_KINDS, MARKETPLACE_RISK_CHANGES, MarketplaceRiskSchema, MarketplacePackageSummarySchema, MarketplaceApprovalSummarySchema, ApprovalFullDetailResponseSchema, PendingApprovalSchema, PendingApprovalsResponseSchema, CAPABILITY_APPROVAL_OUTCOMES, CapabilityApprovalOutcomeSchema, APPROVAL_ANSWERS, GrantApprovalBodySchema, DenyApprovalBodySchema, ApprovalDecisionResponseSchema;
|
|
54232
54296
|
var init_approval_schemas = __esm({
|
|
54233
54297
|
"../shared/src/approval-schemas.ts"() {
|
|
54234
54298
|
"use strict";
|
|
@@ -54239,6 +54303,7 @@ var init_approval_schemas = __esm({
|
|
|
54239
54303
|
init_project_schemas();
|
|
54240
54304
|
extendZodWithOpenApiOnce();
|
|
54241
54305
|
APPROVAL_SUMMARY_MAX_LENGTH = 500;
|
|
54306
|
+
APPROVAL_CONSEQUENCE_MAX_LENGTH = 40;
|
|
54242
54307
|
APPROVAL_DETAIL_MAX_LENGTH = 4e3;
|
|
54243
54308
|
APPROVAL_SUBJECT_LABEL_MAX_LENGTH = 60;
|
|
54244
54309
|
APPROVAL_SUBJECT_KINDS = ["agent", "task", "room"];
|
|
@@ -54306,6 +54371,59 @@ var init_approval_schemas = __esm({
|
|
|
54306
54371
|
}).strict().openapi("ApprovalServiceAction");
|
|
54307
54372
|
APPROVAL_ORIGINS = ["session", "external-mcp"];
|
|
54308
54373
|
APPROVAL_REQUEST_REASON_MAX_LENGTH = 500;
|
|
54374
|
+
APPROVAL_FULL_DETAIL_MAX_LENGTH = 2e5;
|
|
54375
|
+
MARKETPLACE_RISK_KINDS = [
|
|
54376
|
+
"extension",
|
|
54377
|
+
"hook",
|
|
54378
|
+
"skillCommand",
|
|
54379
|
+
"mcp",
|
|
54380
|
+
"lsp",
|
|
54381
|
+
"monitor",
|
|
54382
|
+
"executable",
|
|
54383
|
+
"schedule",
|
|
54384
|
+
"host",
|
|
54385
|
+
"secret",
|
|
54386
|
+
"skillTools",
|
|
54387
|
+
"dependency",
|
|
54388
|
+
"unreadable"
|
|
54389
|
+
];
|
|
54390
|
+
MARKETPLACE_RISK_CHANGES = ["new", "broader", "removed"];
|
|
54391
|
+
MarketplaceRiskSchema = external_exports.object({
|
|
54392
|
+
kind: external_exports.enum(MARKETPLACE_RISK_KINDS),
|
|
54393
|
+
change: external_exports.enum(MARKETPLACE_RISK_CHANGES),
|
|
54394
|
+
/** The row's sentence, with every value quoted and hidden characters shown. */
|
|
54395
|
+
text: external_exports.string().max(4e3),
|
|
54396
|
+
/** The whole command it runs, escaped, never shortened. */
|
|
54397
|
+
command: external_exports.string().max(APPROVAL_FULL_DETAIL_MAX_LENGTH).optional(),
|
|
54398
|
+
/** Broader only: what it was before, in words. */
|
|
54399
|
+
was: external_exports.string().max(APPROVAL_FULL_DETAIL_MAX_LENGTH).optional(),
|
|
54400
|
+
/** Named values under the row: an extension's hosts, a skill's tools. */
|
|
54401
|
+
items: external_exports.array(external_exports.string().max(4e3)).optional()
|
|
54402
|
+
}).openapi("MarketplaceRisk");
|
|
54403
|
+
MarketplacePackageSummarySchema = external_exports.object({
|
|
54404
|
+
name: external_exports.string().max(4e3),
|
|
54405
|
+
/** The package's type and where it is or will be installed, in words. */
|
|
54406
|
+
where: external_exports.string().max(4e3),
|
|
54407
|
+
/** Update only: the version installed now. */
|
|
54408
|
+
fromVersion: external_exports.string().max(4e3).optional(),
|
|
54409
|
+
toVersion: external_exports.string().max(4e3),
|
|
54410
|
+
/** `adds` when any row is New or Broader; decided by the server. */
|
|
54411
|
+
power: external_exports.enum(["adds", "none"]),
|
|
54412
|
+
/** New and Broader rows first, most powerful first; Removed rows last. */
|
|
54413
|
+
risks: external_exports.array(MarketplaceRiskSchema),
|
|
54414
|
+
/** Update only: things it already runs that stay exactly the same. */
|
|
54415
|
+
unchangedCount: external_exports.number().int().min(0)
|
|
54416
|
+
}).openapi("MarketplacePackageSummary");
|
|
54417
|
+
MarketplaceApprovalSummarySchema = external_exports.object({
|
|
54418
|
+
operation: external_exports.enum(["install", "update"]),
|
|
54419
|
+
packages: external_exports.array(MarketplacePackageSummarySchema).min(1),
|
|
54420
|
+
/** How long the full list is, so the link can say what it opens. */
|
|
54421
|
+
fullDetailLength: external_exports.number().int().min(0)
|
|
54422
|
+
}).openapi("MarketplaceApprovalSummary");
|
|
54423
|
+
ApprovalFullDetailResponseSchema = external_exports.object({
|
|
54424
|
+
/** Everything the approval is about, written out whole, swept for secrets. */
|
|
54425
|
+
text: external_exports.string().max(APPROVAL_FULL_DETAIL_MAX_LENGTH)
|
|
54426
|
+
}).openapi("ApprovalFullDetailResponse");
|
|
54309
54427
|
PendingApprovalSchema = external_exports.object({
|
|
54310
54428
|
/** ULID identifying the approval. Carries no secret. */
|
|
54311
54429
|
approvalId: external_exports.string(),
|
|
@@ -54315,6 +54433,12 @@ var init_approval_schemas = __esm({
|
|
|
54315
54433
|
capabilityTitle: external_exports.string(),
|
|
54316
54434
|
/** Permission tier of the capability being requested. */
|
|
54317
54435
|
tier: external_exports.enum(CAPABILITY_TIERS),
|
|
54436
|
+
/**
|
|
54437
|
+
* What a yes does, in a few words ("Runs code on this Mac"), for the badge
|
|
54438
|
+
* in place of the tier's own label. Set by the capability, for cards whose
|
|
54439
|
+
* tier label would mislead (repo pins, DOR-3359); absent everywhere else.
|
|
54440
|
+
*/
|
|
54441
|
+
consequence: external_exports.string().max(APPROVAL_CONSEQUENCE_MAX_LENGTH).optional(),
|
|
54318
54442
|
/** One plain sentence describing what would happen. */
|
|
54319
54443
|
summary: external_exports.string().max(APPROVAL_SUMMARY_MAX_LENGTH),
|
|
54320
54444
|
/** Opaque label for who asked, when the request carried one. */
|
|
@@ -54404,6 +54528,12 @@ var init_approval_schemas = __esm({
|
|
|
54404
54528
|
* at render time.
|
|
54405
54529
|
*/
|
|
54406
54530
|
detail: external_exports.string().max(APPROVAL_DETAIL_MAX_LENGTH).optional(),
|
|
54531
|
+
/**
|
|
54532
|
+
* A Marketplace install or update whose full list is too long for
|
|
54533
|
+
* {@link detail} (DOR-3070): the card renders this instead of the detail,
|
|
54534
|
+
* and the full list is served by `GET /api/approvals/:id/full-detail`.
|
|
54535
|
+
*/
|
|
54536
|
+
marketplaceSummary: MarketplaceApprovalSummarySchema.optional(),
|
|
54407
54537
|
/**
|
|
54408
54538
|
* The thing this would act on, named — when the server could name it.
|
|
54409
54539
|
*
|
|
@@ -54511,7 +54641,6 @@ var init_account_usage_codex = __esm({
|
|
|
54511
54641
|
var LEDGER_RUNTIMES, LEDGER_SOURCES, RateLimitStatusSchema, ISO_TIME_PATTERN, IsoTimeSchema, LedgerSourceSchema, LedgerEntrySchema, WINDOW_KEY_PATTERN, LedgerPlanSchema, LedgerCreditsSchema, LedgerSpendSchema, UsageLedgerSchema, MINUTE_MS, HOUR_MS, FIVE_HOUR_MS, SEVEN_DAY_MS, MAX_FUTURE_SKEW_MS, AccountUsageSchema, LimitResolutionSchema, LimitHistoryEntrySchema, LimitHistoryResponseSchema, FoundClaudeFolderSchema, DismissFoundFolderRequestSchema;
|
|
54512
54642
|
var init_account_usage = __esm({
|
|
54513
54643
|
"../shared/src/account-usage.ts"() {
|
|
54514
|
-
"use strict";
|
|
54515
54644
|
init_zod();
|
|
54516
54645
|
init_zod_openapi();
|
|
54517
54646
|
init_ledger_slug();
|
|
@@ -54968,10 +55097,12 @@ function isSafeSigninUrl(value) {
|
|
|
54968
55097
|
if (url2.protocol !== "http:") return false;
|
|
54969
55098
|
return url2.hostname === "localhost" || url2.hostname === "127.0.0.1" || url2.hostname === "[::1]";
|
|
54970
55099
|
}
|
|
54971
|
-
var PermissionModeSchema, PermissionModeIdSchema, PermissionStopSchema2, SessionTaskStatusSchema, StreamEventTypeSchema, QuestionOptionSchema, QuestionItemSchema, EffortLevelSchema, SessionOriginSchema, SessionLifecycleSchema, LimitPlanSchema, LimitStateSchema, SessionLimitSchema, ContinueAccountOptionSchema, ContinueOptionsResponseSchema, ContinueSessionRequestSchema, ContinueSessionResponseSchema, WaitForResetRequestSchema, LimitPlanResponseSchema, TrackerItemRefSchema, SessionStartedBySchema, SessionSchema, SessionUpdateResponseSchema, SessionSettingsSchema, StoredSessionSettingsResponseSchema, UpdateSessionRequestSchema, ForkSessionRequestSchema, ReloadPluginsResultSchema, SEED_CONTEXT_MAX_LENGTH, MessageDispositionSchema, DispositionDowngradeReasonSchema, MessageDeliveryOutcomeSchema, InterruptOutcomeSchema, InterruptReasonSchema, InterruptReceiptSchema, QueuedWaitingOnSchema, QueuedMessageSchema, SendMessageRequestSchema, SendMessageResponseSchema, SessionTriggerResponseSchema, SessionQueueResponseSchema, QueueMoveTargetSchema, UpdateQueuedMessageRequestSchema, UpdateQueuedMessageResponseSchema, DENY_REASON_MAX_LENGTH, ApprovalRequestSchema, BatchApprovalRequestSchema, SubmitAnswersRequestSchema, UI_ACTION_ID_MAX_LENGTH, UI_ACTION_TITLE_MAX_LENGTH, UI_ACTION_PAYLOAD_MAX_LENGTH, UiActionRequestSchema, McpAppPermissionSchema, McpAppResourceRequestSchema, McpAppResourceResponseSchema, ElicitationModeSchema, ElicitationActionSchema, SubmitElicitationRequestSchema, ListSessionsQuerySchema, SessionListWarningSchema, SessionListResponseSchema, RecentSessionsQuerySchema, RecentSessionsResponseSchema, SessionDailyCountsQuerySchema, SessionDailyCountsResponseSchema, CommandsQuerySchema, TextDeltaSchema, ThinkingDeltaSchema, ToolCallStatusSchema, McpAppRefSchema, ToolCallEventSchema, ToolProgressEventSchema, AlwaysAllowScopeSchema, ApprovalEventSchema, QuestionPromptEventSchema, PendingInteractionDTOSchema, ErrorCategorySchema, ErrorEventSchema, ApiRetryEventSchema, DoneEventSchema, TerminalReasonSchema, UsageStateSchema, UsageStatusSchema, SessionStatusEventSchema, ContextUsageCategorySchema, ContextUsageSchema, TaskItemSchema, TaskUpdateEventSchema, RelayReceiptEventSchema, MessageDeliveredEventSchema, RelayMessageEventSchema, BackgroundTaskTypeSchema, BackgroundTaskStatusSchema, BackgroundTaskStartedEventSchema, BackgroundTaskProgressEventSchema, BackgroundTaskDoneEventSchema, SubagentTextDeltaEventSchema, SystemStatusEventSchema, OperationKindSchema, OperationStateSchema, OperationProgressEventShapeSchema, OperationProgressEventSchema, MemoryEntrySchema, MemoryRecallEventSchema, agentCompactionShape, CompactBoundaryEventSchema, sessionImageShape, SessionImageEventSchema, deniedAgentShape, PermissionDeniedEventSchema, ModelSubstitutedEventSchema, WorkLeftEndStatusSchema, WorkLeftTaskSchema, WorkLeftRunningEventSchema, WorkLeftEndedEventSchema, PromptSuggestionEventSchema, HookStartedEventSchema, HookProgressEventSchema, HookResponseEventSchema, SdkSessionStateSchema, SessionStateChangedEventSchema, ElicitationPromptEventSchema, ElicitationCompleteEventSchema, InteractionCancelledEventSchema, CapabilityApprovalRequiredEventSchema, CapabilityApprovalResolvedEventSchema, SigninUrlSchema, MCP_SIGNIN_OUTCOMES, McpSigninOutcomeSchema, McpSigninRequiredEventSchema, McpSigninResolvedEventSchema, StreamEventSchema, TextPartSchema, HookStatusSchema, HookPartSchema, ToolApprovalOutcomeSchema, QuestionOutcomeSchema, ToolCallPartSchema, BackgroundTaskPartSchema, ThinkingPartSchema, ErrorPartSchema, ElicitationPartSchema, CapabilityApprovalPartSchema, McpSigninPartSchema, MemoryRecallPartSchema, PermissionDeniedPartSchema, ModelSubstitutedPartSchema, WorkLeftRunningPartSchema, CompactBoundaryPartSchema, ImagePartSchema, MessagePartSchema, MessageTypeSchema, HistoryToolCallSchema, CompactMetadataSchema, HistoryMessageSchema, HistoryReadSchema, CommandEntrySchema, CommandRegistrySchema, FileListQuerySchema, RawFileQuerySchema, FileListResponseSchema, FileEntrySchema, FileTreeQuerySchema, FileTreeResponseSchema, FileContentQuerySchema, FileContentResponseSchema, CreateEntryRequestSchema, CreateEntryResponseSchema, DeleteEntryQuerySchema, RenameEntryRequestSchema, CopyEntryRequestSchema, RevealEntryRequestSchema, DiffBaselineOriginSchema, DiffBaselineQuerySchema, DiffBaselineResponseSchema, AdvanceDiffBaselineRequestSchema, DiffPendingQuerySchema, DiffPendingResponseSchema, DiffBaselineRawQuerySchema, RevertDiffBaselineRequestSchema, FileMutationResponseSchema, WorkbenchSignRequestSchema, WorkbenchSignResponseSchema, WorkbenchProbeRequestSchema, WorkbenchProbeResponseSchema, FRAME_SCRIPT_HTML_MAX_BYTES, FrameBridgeRefusalSchema, WorkbenchBridgeStatusRequestSchema, WorkbenchBridgeStatusResponseSchema, BrowseDirectoryQuerySchema, DirectoryEntrySchema, BrowseDirectoryResponseSchema, TunnelStatusSchema, LanAccessStatusSchema, RemoteAccessStateSchema, RemoteAccessAvailabilitySchema, RemoteAccessEnrolmentSchema, RemoteAccessReportSchema, HealthResponseSchema, ExecutionDefaultsSchema, ExperimentStateSchema, CompanyCertificatesStatusSchema, ServerConfigSchema2, ModelTierSchema, ModelOptionSchema, SubagentInfoSchema, GitStatusResponseSchema, GitStatusErrorSchema, ErrorResponseSchema, SessionLockedErrorSchema, TaskStatusSchema, SettableTaskStatusSchema, TaskNameSchema, TaskRunStatusSchema, TaskRunOutcomeSchema, TaskFailureReasonSchema, TaskHealthSchema, TaskRunTriggerSchema,
|
|
55100
|
+
var PermissionModeSchema, PermissionModeIdSchema, PermissionStopSchema2, SessionTaskStatusSchema, StreamEventTypeSchema, QuestionOptionSchema, QuestionItemSchema, EffortLevelSchema, SessionOriginSchema, SessionLifecycleSchema, LimitPlanSchema, LimitStateSchema, SessionLimitSchema, ContinueAccountOptionSchema, ContinueOptionsResponseSchema, ContinueSessionRequestSchema, ContinueSessionResponseSchema, WaitForResetRequestSchema, LimitPlanResponseSchema, TrackerItemRefSchema, SessionStartedBySchema, SessionSchema, SessionUpdateResponseSchema, SessionSettingsSchema, StoredSessionSettingsResponseSchema, UpdateSessionRequestSchema, ForkSessionRequestSchema, ReloadPluginsResultSchema, SEED_CONTEXT_MAX_LENGTH, MessageDispositionSchema, DispositionDowngradeReasonSchema, MessageDeliveryOutcomeSchema, InterruptOutcomeSchema, InterruptReasonSchema, InterruptReceiptSchema, QueuedWaitingOnSchema, QueuedMessageSchema, SendMessageRequestSchema, SendMessageResponseSchema, SessionTriggerResponseSchema, SessionQueueResponseSchema, QueueMoveTargetSchema, UpdateQueuedMessageRequestSchema, UpdateQueuedMessageResponseSchema, DENY_REASON_MAX_LENGTH, ApprovalRequestSchema, BatchApprovalRequestSchema, SubmitAnswersRequestSchema, UI_ACTION_ID_MAX_LENGTH, UI_ACTION_TITLE_MAX_LENGTH, UI_ACTION_PAYLOAD_MAX_LENGTH, UiActionRequestSchema, McpAppPermissionSchema, McpAppResourceRequestSchema, McpAppResourceResponseSchema, ElicitationModeSchema, ElicitationActionSchema, SubmitElicitationRequestSchema, ListSessionsQuerySchema, SessionListWarningSchema, SessionListResponseSchema, RecentSessionsQuerySchema, RecentSessionsResponseSchema, SessionDailyCountsQuerySchema, SessionDailyCountsResponseSchema, CommandsQuerySchema, TextDeltaSchema, ThinkingDeltaSchema, ToolCallStatusSchema, McpAppRefSchema, ToolCallEventSchema, ToolProgressEventSchema, AlwaysAllowScopeSchema, ApprovalEventSchema, QuestionPromptEventSchema, PendingInteractionDTOSchema, ErrorCategorySchema, ErrorEventSchema, ApiRetryEventSchema, DoneEventSchema, TerminalReasonSchema, UsageStateSchema, UsageStatusSchema, SessionStatusEventSchema, ContextUsageCategorySchema, ContextUsageSchema, TaskItemSchema, TaskUpdateEventSchema, RelayReceiptEventSchema, MessageDeliveredEventSchema, RelayMessageEventSchema, BackgroundTaskTypeSchema, BackgroundTaskStatusSchema, BackgroundTaskStartedEventSchema, BackgroundTaskProgressEventSchema, BackgroundTaskDoneEventSchema, SubagentTextDeltaEventSchema, SystemStatusEventSchema, OperationKindSchema, OperationStateSchema, OperationProgressEventShapeSchema, OperationProgressEventSchema, MemoryEntrySchema, MemoryRecallEventSchema, agentCompactionShape, CompactBoundaryEventSchema, sessionImageShape, SessionImageEventSchema, deniedAgentShape, PermissionDeniedEventSchema, ModelSubstitutedEventSchema, WorkLeftEndStatusSchema, WorkLeftTaskSchema, WorkLeftRunningEventSchema, WorkLeftEndedEventSchema, PromptSuggestionEventSchema, HookStartedEventSchema, HookProgressEventSchema, HookResponseEventSchema, SdkSessionStateSchema, SessionStateChangedEventSchema, ElicitationPromptEventSchema, ElicitationCompleteEventSchema, InteractionCancelledEventSchema, CapabilityApprovalRequiredEventSchema, CapabilityApprovalResolvedEventSchema, SigninUrlSchema, MCP_SIGNIN_OUTCOMES, McpSigninOutcomeSchema, McpSigninRequiredEventSchema, McpSigninResolvedEventSchema, StreamEventSchema, TextPartSchema, HookStatusSchema, HookPartSchema, ToolApprovalOutcomeSchema, QuestionOutcomeSchema, ToolCallPartSchema, BackgroundTaskPartSchema, ThinkingPartSchema, ErrorPartSchema, ElicitationPartSchema, CapabilityApprovalPartSchema, McpSigninPartSchema, MemoryRecallPartSchema, PermissionDeniedPartSchema, ModelSubstitutedPartSchema, WorkLeftRunningPartSchema, CompactBoundaryPartSchema, ImagePartSchema, MessagePartSchema, MessageTypeSchema, HistoryToolCallSchema, CompactMetadataSchema, HistoryMessageSchema, HistoryReadSchema, CommandEntrySchema, CommandRegistrySchema, FileListQuerySchema, RawFileQuerySchema, FileListResponseSchema, FileEntrySchema, FileTreeQuerySchema, FileTreeResponseSchema, FileContentQuerySchema, FileContentResponseSchema, CreateEntryRequestSchema, CreateEntryResponseSchema, DeleteEntryQuerySchema, RenameEntryRequestSchema, CopyEntryRequestSchema, RevealEntryRequestSchema, DiffBaselineOriginSchema, DiffBaselineQuerySchema, DiffBaselineResponseSchema, AdvanceDiffBaselineRequestSchema, DiffPendingQuerySchema, DiffPendingResponseSchema, DiffBaselineRawQuerySchema, RevertDiffBaselineRequestSchema, FileMutationResponseSchema, WorkbenchSignRequestSchema, WorkbenchSignResponseSchema, WorkbenchProbeRequestSchema, WorkbenchProbeResponseSchema, FRAME_SCRIPT_HTML_MAX_BYTES, FrameBridgeRefusalSchema, WorkbenchBridgeStatusRequestSchema, WorkbenchBridgeStatusResponseSchema, BrowseDirectoryQuerySchema, DirectoryEntrySchema, BrowseDirectoryResponseSchema, TunnelStatusSchema, LanAccessStatusSchema, RemoteAccessStateSchema, RemoteAccessAvailabilitySchema, RemoteAccessEnrolmentSchema, RemoteAccessReportSchema, HealthResponseSchema, ExecutionDefaultsSchema, ExperimentStateSchema, CompanyCertificatesStatusSchema, ServerConfigSchema2, ModelTierSchema, ModelOptionSchema, SubagentInfoSchema, GitStatusResponseSchema, GitStatusErrorSchema, ErrorResponseSchema, SessionLockedErrorSchema, TaskStatusSchema, SettableTaskStatusSchema, TaskNameSchema, TaskRunStatusSchema, TaskRunOutcomeSchema, TaskFailureReasonSchema, TaskHealthSchema, TaskRunTriggerSchema, TaskSchema, TaskRunSchema, CancelTaskRunResponseSchema, TaskTemplateSchema, TASK_DURATION_PATTERN, TASK_DURATION_MAX, TASK_DESCRIPTION_MAX, CreateTaskRequestSchema, SIDEBAR_TAB_ID_PATTERN, ShapeLiveLayoutCaptureSchema, ForkShapeRequestSchema, UpdateTaskRequestSchema, ListTaskRunsQuerySchema, ConfigPatchRequestSchema, ConfigPatchResponseSchema, UploadResultSchema, UploadResponseSchema, UploadProgressSchema, CanvasMediaSrcSchema, UiCanvasContentSchema, UiPanelIdSchema, UiToastLevelSchema, CELEBRATION_KINDS, CELEBRATION_KIND_SYNONYMS, CelebrationKindSchema, UiCommandTargetSchema, UiCommandSchema, UiCommandEventSchema, UiStateSchema, UiStateReportDocumentSchema, UiStateReportSchema, DevtoolsConsoleLevelSchema, DEVTOOLS_ARGS_MAX_CHARS, DevtoolsConsoleEntrySchema, DevtoolsNetworkEntrySchema, DEVTOOLS_CONSOLE_BATCH_MAX, DEVTOOLS_NETWORK_BATCH_MAX, DEVTOOLS_SCREENSHOT_MAX_CHARS, DevtoolsScreenshotResultSchema, DevtoolsIngestSchema, BrowserTargetSchema, BrowserActCommandSchema, BrowserPageSummarySchema, DEVTOOLS_OUTLINE_MAX_CHARS, DevtoolsActionResultSchema, DevtoolsRecordingUploadSchema, KeepAwakeUnsupportedReasonSchema, KeepAwakeStatusSchema, StreamHealthReportSchema;
|
|
54972
55101
|
var init_schemas4 = __esm({
|
|
54973
55102
|
"../shared/src/schemas.ts"() {
|
|
54974
55103
|
"use strict";
|
|
55104
|
+
init_task_approval_schemas();
|
|
55105
|
+
init_task_approval_schemas();
|
|
54975
55106
|
init_canvas_channel_schemas();
|
|
54976
55107
|
init_zod();
|
|
54977
55108
|
init_zod_openapi();
|
|
@@ -57372,6 +57503,13 @@ var init_schemas4 = __esm({
|
|
|
57372
57503
|
callerRoute: external_exports.enum(["local", "wifi", "tunnel", "managed", "network", "hub"]).nullable().optional().openapi({
|
|
57373
57504
|
description: "The way THIS request reached DorkOS, as the server classified it: `local` at the computer DorkOS runs on, `wifi` over the Wi-Fi listener, and so on. Read only. A Wi-Fi request answers approvals with Allow once or Deny, never Always allow, so the app hides that choice there. Null for the relay; absent from an older server"
|
|
57374
57505
|
}),
|
|
57506
|
+
capacity: external_exports.object({
|
|
57507
|
+
maxAgentChats: external_exports.number().int(),
|
|
57508
|
+
loadAverage: external_exports.number().nullable(),
|
|
57509
|
+
freeDiskBytes: external_exports.number().nullable()
|
|
57510
|
+
}).optional().openapi({
|
|
57511
|
+
description: "How much room this computer has right now, for the Team view: the cap on chats agents may run at once, the one-minute load average (null where the system reports none) and the free bytes on the DorkOS data disk (null when it cannot be read). Absent from an older server"
|
|
57512
|
+
}),
|
|
57375
57513
|
dismissedUpgradeVersions: external_exports.array(external_exports.string()).openapi({ description: "Versions the user has dismissed upgrade notifications for" }),
|
|
57376
57514
|
dismissedPromoIds: external_exports.array(external_exports.string()).openapi({
|
|
57377
57515
|
description: "Feature-promo ids the user has waved away. Server-held rather than per-browser, so dismissing a card on one device settles it on all of them"
|
|
@@ -57865,21 +58003,6 @@ var init_schemas4 = __esm({
|
|
|
57865
58003
|
lastRunId: external_exports.string().nullable()
|
|
57866
58004
|
}).openapi("TaskHealth");
|
|
57867
58005
|
TaskRunTriggerSchema = external_exports.enum(["scheduled", "manual", "agent"]).openapi("TaskRunTrigger");
|
|
57868
|
-
ScheduleOriginMarksSchema = external_exports.object({
|
|
57869
|
-
/** The turn read words DorkOS can't vouch for: a stranger's message, or another agent's that carried one. */
|
|
57870
|
-
outsider: external_exports.literal(true).optional(),
|
|
57871
|
-
/** Each teammate whose message started the chain, and the space room they wrote in. */
|
|
57872
|
-
teammate: external_exports.array(
|
|
57873
|
-
external_exports.object({
|
|
57874
|
-
roomId: external_exports.string(),
|
|
57875
|
-
authorId: external_exports.string(),
|
|
57876
|
-
/** The teammate's name when the mark was written, or null when it was unknown. */
|
|
57877
|
-
name: external_exports.string().nullable().default(null),
|
|
57878
|
-
/** The room's title when the mark was written, or null when it was unknown. */
|
|
57879
|
-
room: external_exports.string().nullable().default(null)
|
|
57880
|
-
})
|
|
57881
|
-
).optional()
|
|
57882
|
-
}).openapi("ScheduleOriginMarks");
|
|
57883
58006
|
TaskSchema = external_exports.object({
|
|
57884
58007
|
id: external_exports.string(),
|
|
57885
58008
|
name: external_exports.string(),
|
|
@@ -57929,6 +58052,17 @@ var init_schemas4 = __esm({
|
|
|
57929
58052
|
packageOwned: external_exports.enum(["record", "legacy"]).nullable().default(null).openapi({
|
|
57930
58053
|
description: "Whether an installed package owns this schedule's file: 'record' (the package lists it), 'legacy' (installed before DorkOS kept file lists), or null (the person's own)."
|
|
57931
58054
|
}),
|
|
58055
|
+
/**
|
|
58056
|
+
* Whether a person declined this schedule as it reads now (DOR-2097).
|
|
58057
|
+
*
|
|
58058
|
+
* Only a schedule an installed package owns can be declined rather than
|
|
58059
|
+
* deleted: removing its file would break the package. A declined schedule
|
|
58060
|
+
* never runs and asks nobody. When the package changes the schedule, it asks
|
|
58061
|
+
* again and this reads false.
|
|
58062
|
+
*/
|
|
58063
|
+
declined: external_exports.boolean().optional().openapi({
|
|
58064
|
+
description: "Whether a person declined this schedule as it reads now. A declined schedule never runs and asks again only when its file changes."
|
|
58065
|
+
}),
|
|
57932
58066
|
/**
|
|
57933
58067
|
* Whether this is one project's copy of a global schedule marked
|
|
57934
58068
|
* `scope: project` (DOR-3376). Its switch and timing belong to this project
|
|
@@ -57938,6 +58072,14 @@ var init_schemas4 = __esm({
|
|
|
57938
58072
|
projectOnly: external_exports.boolean().optional().openapi({
|
|
57939
58073
|
description: "True when this is one project's copy of a global schedule that only runs inside a project. Its switch and timing are this project's; its file is shared. Absent means false."
|
|
57940
58074
|
}),
|
|
58075
|
+
/**
|
|
58076
|
+
* Whether a person is offered "Turn on" (DOR-3309): the schedule's file now
|
|
58077
|
+
* says on, and a file may switch a schedule off but never on, so it stayed
|
|
58078
|
+
* off. Absent reads as false.
|
|
58079
|
+
*/
|
|
58080
|
+
offersTurnOn: external_exports.boolean().optional().openapi({
|
|
58081
|
+
description: "True when the schedule stayed off although its file now says on. A file can switch a schedule off but never on, so a person is offered Turn on. Absent means false."
|
|
58082
|
+
}),
|
|
57941
58083
|
/**
|
|
57942
58084
|
* What changed since this schedule was last approved, for a schedule
|
|
57943
58085
|
* waiting again (DOR-2323): each part of the approved work that differs,
|
|
@@ -57987,6 +58129,8 @@ var init_schemas4 = __esm({
|
|
|
57987
58129
|
sticky: external_exports.boolean().default(false),
|
|
57988
58130
|
maxRuntime: external_exports.number().int().nullable(),
|
|
57989
58131
|
permissionMode: PermissionModeSchema,
|
|
58132
|
+
/** Read-time, person-only preview; absent for older servers and agent callers. */
|
|
58133
|
+
folderRules: TaskFolderRulesSchema.optional(),
|
|
57990
58134
|
/**
|
|
57991
58135
|
* Which agent runtime this task's runs execute on, or `null` to follow the
|
|
57992
58136
|
* task's agent (DOR-1615).
|
|
@@ -58045,6 +58189,13 @@ var init_schemas4 = __esm({
|
|
|
58045
58189
|
* nothing resolves, which is what the "An agent" fallback is for.
|
|
58046
58190
|
*/
|
|
58047
58191
|
proposedByName: external_exports.string().nullable().default(null),
|
|
58192
|
+
/**
|
|
58193
|
+
* The name of the agent this schedule runs as (the agent `agentId` names),
|
|
58194
|
+
* resolved when the task is READ, like `proposedByName`, so an approval card
|
|
58195
|
+
* and its notification say whose turn it would be (DOR-3640 R1). `null` for
|
|
58196
|
+
* a global schedule, or when the agent cannot be named; absent on a task not yet read that way.
|
|
58197
|
+
*/
|
|
58198
|
+
runsAsName: external_exports.string().nullable().optional(),
|
|
58048
58199
|
/**
|
|
58049
58200
|
* Where this schedule came from, when that is not a person using DorkOS.
|
|
58050
58201
|
*
|
|
@@ -58072,6 +58223,12 @@ var init_schemas4 = __esm({
|
|
|
58072
58223
|
* the trust preset; approving it clears this.
|
|
58073
58224
|
*/
|
|
58074
58225
|
originMarks: ScheduleOriginMarksSchema.nullable().optional(),
|
|
58226
|
+
/**
|
|
58227
|
+
* Held for a person, but nothing is waiting on them (DOR-3425): the file of a
|
|
58228
|
+
* schedule whose agent is at Full autonomy asks for more than was approved. It
|
|
58229
|
+
* stays a row under Needs you, with no knock and no escalation.
|
|
58230
|
+
*/
|
|
58231
|
+
quietHold: external_exports.boolean().optional(),
|
|
58075
58232
|
nextRun: external_exports.string().nullable().optional(),
|
|
58076
58233
|
/**
|
|
58077
58234
|
* When the schedule last started a run (ISO 8601), or null when it never
|
|
@@ -61035,11 +61192,11 @@ async function measurePackageTree(root, limits = PACKAGE_SIZE_LIMITS, { countGit
|
|
|
61035
61192
|
let entries = 0;
|
|
61036
61193
|
let bytes = 0;
|
|
61037
61194
|
let inNodeModules = 0;
|
|
61038
|
-
const
|
|
61195
|
+
const pending = [
|
|
61039
61196
|
{ rel: "", underNodeModules: false }
|
|
61040
61197
|
];
|
|
61041
|
-
while (
|
|
61042
|
-
const { rel, underNodeModules } =
|
|
61198
|
+
while (pending.length > 0) {
|
|
61199
|
+
const { rel, underNodeModules } = pending.pop();
|
|
61043
61200
|
let listed2;
|
|
61044
61201
|
try {
|
|
61045
61202
|
listed2 = await readdir2(path23.join(root, rel), { withFileTypes: true });
|
|
@@ -61058,7 +61215,7 @@ async function measurePackageTree(root, limits = PACKAGE_SIZE_LIMITS, { countGit
|
|
|
61058
61215
|
throw new PackageTooLargeError("entries", limits, void 0, inNodeModules);
|
|
61059
61216
|
}
|
|
61060
61217
|
if (entry.isDirectory()) {
|
|
61061
|
-
|
|
61218
|
+
pending.push({ rel: childRel, underNodeModules: inside });
|
|
61062
61219
|
continue;
|
|
61063
61220
|
}
|
|
61064
61221
|
const { size } = await lstat2(path23.join(root, childRel));
|
|
@@ -64006,9 +64163,9 @@ var init_endpoint_context = __esm({
|
|
|
64006
64163
|
getOrCreateEndpointContextStorage = async () => {
|
|
64007
64164
|
const existing = getExistingEndpointContextStorage();
|
|
64008
64165
|
if (existing) return existing;
|
|
64009
|
-
const
|
|
64166
|
+
const AsyncLocalStorage7 = await getAsyncLocalStorage();
|
|
64010
64167
|
const globalContext = __getBetterAuthGlobal().context;
|
|
64011
|
-
return globalContext.endpointContextAsyncStorage ??= new
|
|
64168
|
+
return globalContext.endpointContextAsyncStorage ??= new AsyncLocalStorage7();
|
|
64012
64169
|
};
|
|
64013
64170
|
}
|
|
64014
64171
|
});
|
|
@@ -64604,8 +64761,8 @@ var init_request_state = __esm({
|
|
|
64604
64761
|
const betterAuthGlobal = __getBetterAuthGlobal();
|
|
64605
64762
|
const existing = betterAuthGlobal.context.requestStateAsyncStorage;
|
|
64606
64763
|
if (existing) return existing;
|
|
64607
|
-
const
|
|
64608
|
-
betterAuthGlobal.context.requestStateAsyncStorage ??= new
|
|
64764
|
+
const AsyncLocalStorage7 = await getAsyncLocalStorage();
|
|
64765
|
+
betterAuthGlobal.context.requestStateAsyncStorage ??= new AsyncLocalStorage7();
|
|
64609
64766
|
return betterAuthGlobal.context.requestStateAsyncStorage;
|
|
64610
64767
|
};
|
|
64611
64768
|
}
|
|
@@ -65276,8 +65433,8 @@ var init_transaction = __esm({
|
|
|
65276
65433
|
const betterAuthGlobal = __getBetterAuthGlobal();
|
|
65277
65434
|
const existing = betterAuthGlobal.context.adapterAsyncStorage;
|
|
65278
65435
|
if (existing) return existing;
|
|
65279
|
-
const
|
|
65280
|
-
betterAuthGlobal.context.adapterAsyncStorage ??= new
|
|
65436
|
+
const AsyncLocalStorage7 = await getAsyncLocalStorage();
|
|
65437
|
+
betterAuthGlobal.context.adapterAsyncStorage ??= new AsyncLocalStorage7();
|
|
65281
65438
|
return betterAuthGlobal.context.adapterAsyncStorage;
|
|
65282
65439
|
};
|
|
65283
65440
|
getCurrentAdapter = async (fallback) => {
|
|
@@ -67818,14 +67975,14 @@ function isUsableJWK(jwk, entry, alg2, kid) {
|
|
|
67818
67975
|
async function importWithAlgCache(cache3, jwk, entry) {
|
|
67819
67976
|
const cached2 = cache3.get(jwk) || cache3.set(jwk, {}).get(jwk), { alg: alg2 } = entry;
|
|
67820
67977
|
if (cached2[alg2] === void 0) {
|
|
67821
|
-
const
|
|
67978
|
+
const pending = jwkToKey(entry, jwk, true).then((key) => {
|
|
67822
67979
|
if (key.type !== "public")
|
|
67823
67980
|
throw new JWKSInvalid("JSON Web Key Set members must be public keys");
|
|
67824
67981
|
return cached2[alg2] = key, key;
|
|
67825
67982
|
}).catch((error63) => {
|
|
67826
|
-
throw cached2[alg2] ===
|
|
67983
|
+
throw cached2[alg2] === pending && delete cached2[alg2], error63;
|
|
67827
67984
|
});
|
|
67828
|
-
cached2[alg2] =
|
|
67985
|
+
cached2[alg2] = pending;
|
|
67829
67986
|
}
|
|
67830
67987
|
return cached2[alg2];
|
|
67831
67988
|
}
|
|
@@ -106691,6 +106848,20 @@ var init_approvals = __esm({
|
|
|
106691
106848
|
* longer parses renders as a card with the summary instead of failing.
|
|
106692
106849
|
*/
|
|
106693
106850
|
serviceAction: text("service_action"),
|
|
106851
|
+
/**
|
|
106852
|
+
* A Marketplace card's summary, as JSON matching the wire schema's
|
|
106853
|
+
* `MarketplaceApprovalSummary`, or null (DOR-3070). Written only when the
|
|
106854
|
+
* full list is too long for `detail`; read back through that schema, so a
|
|
106855
|
+
* row that no longer parses renders with the summary sentence instead.
|
|
106856
|
+
*/
|
|
106857
|
+
marketplaceSummary: text("marketplace_summary"),
|
|
106858
|
+
/**
|
|
106859
|
+
* Everything a Marketplace card is about, written out whole and swept for
|
|
106860
|
+
* secrets, or null (DOR-3070). Served by `GET /api/approvals/:id/full-detail`
|
|
106861
|
+
* while the card is pending; the approval itself is bound to the
|
|
106862
|
+
* disclosure this text describes, never to the summary.
|
|
106863
|
+
*/
|
|
106864
|
+
fullDetail: text("full_detail"),
|
|
106694
106865
|
/** Opaque label for who asked — an agent path, a display name, or null. */
|
|
106695
106866
|
requestedBy: text("requested_by"),
|
|
106696
106867
|
/**
|
|
@@ -106964,6 +107135,17 @@ var init_tasks = __esm({
|
|
|
106964
107135
|
* what was approved, not an approval.
|
|
106965
107136
|
*/
|
|
106966
107137
|
previousApprovalKey: text("previous_approval_key"),
|
|
107138
|
+
/**
|
|
107139
|
+
* The schedule content a person declined, as a content key, for a schedule
|
|
107140
|
+
* whose file an installed package owns (DOR-2097).
|
|
107141
|
+
*
|
|
107142
|
+
* That file is the package's, so declining cannot remove it, and the decision
|
|
107143
|
+
* lives here instead. While the content that would run still has this key, the
|
|
107144
|
+
* schedule stays waiting, never runs, and asks nobody. A changed file has a
|
|
107145
|
+
* different key, so it asks again. Cleared by an approval. NULL means nobody
|
|
107146
|
+
* declined it.
|
|
107147
|
+
*/
|
|
107148
|
+
declinedContentKey: text("declined_content_key"),
|
|
106967
107149
|
/**
|
|
106968
107150
|
* The turn marks of the turn that created or last edited this schedule (DOR-3036,
|
|
106969
107151
|
* `specs/turn-marks`): JSON `{ outsider?: true, teammate?: [{ roomId, authorId, name?, room? }] }`,
|
|
@@ -106983,6 +107165,20 @@ var init_tasks = __esm({
|
|
|
106983
107165
|
*/
|
|
106984
107166
|
followedAgentChanges: text("followed_agent_changes"),
|
|
106985
107167
|
enabled: integer2("enabled", { mode: "boolean" }).notNull().default(true),
|
|
107168
|
+
/**
|
|
107169
|
+
* The SKILL.md's own `enabled`, as the last sync read it (DOR-3309). A file
|
|
107170
|
+
* may switch a task off but never on, so the row and its file can disagree;
|
|
107171
|
+
* this is how a sync tells a file that has just started saying "on" from one
|
|
107172
|
+
* that always did. NULL: the row is older than the column, so nothing is
|
|
107173
|
+
* known yet and nothing is offered.
|
|
107174
|
+
*/
|
|
107175
|
+
fileEnabled: integer2("file_enabled", { mode: "boolean" }),
|
|
107176
|
+
/**
|
|
107177
|
+
* Whether a person is being offered "Turn on", because the task's file now
|
|
107178
|
+
* says on while the task stays off (DOR-3309). Cleared when anybody switches
|
|
107179
|
+
* the task either way, or the file says off again.
|
|
107180
|
+
*/
|
|
107181
|
+
offersTurnOn: integer2("offers_turn_on", { mode: "boolean" }).notNull().default(false),
|
|
106986
107182
|
/**
|
|
106987
107183
|
* Whether every fire of this schedule RESUMES one persistent session instead
|
|
106988
107184
|
* of starting a fresh one (DOR-1571).
|
|
@@ -107427,6 +107623,12 @@ var init_sessions = __esm({
|
|
|
107427
107623
|
// whether a limited session may carry its work to another account (spec
|
|
107428
107624
|
// `claude-account-fleet` D9). NULL = bound before this column existed.
|
|
107429
107625
|
launchOrigin: text("launch_origin"),
|
|
107626
|
+
// Who chose where an agent-launched chat runs (DOR-3644): the launching
|
|
107627
|
+
// agent's Mesh id, its home when Mesh could not name it, or `unidentified`.
|
|
107628
|
+
// Written with `launchOrigin`, first-write-wins, never overwritten. NULL = a
|
|
107629
|
+
// person's chat, a chat the server placed itself, or one bound before this
|
|
107630
|
+
// column existed.
|
|
107631
|
+
launchedBy: text("launched_by"),
|
|
107430
107632
|
// The episode `resetsAt` (else `since`) of the last usage limit core resumed
|
|
107431
107633
|
// this session from by itself (spec `claude-account-fleet` D9 "Wait, then
|
|
107432
107634
|
// resume by itself"): at most one automatic resume per window reset. Kept
|
|
@@ -111133,6 +111335,33 @@ var init_registry = __esm({
|
|
|
111133
111335
|
}
|
|
111134
111336
|
});
|
|
111135
111337
|
|
|
111338
|
+
// ../db/src/schema/browser/agent-profiles.ts
|
|
111339
|
+
var agentBrowserProfiles, agentBrowserProfileAgents;
|
|
111340
|
+
var init_agent_profiles = __esm({
|
|
111341
|
+
"../db/src/schema/browser/agent-profiles.ts"() {
|
|
111342
|
+
"use strict";
|
|
111343
|
+
init_sqlite_core();
|
|
111344
|
+
agentBrowserProfiles = sqliteTable("agent_browser_profiles", {
|
|
111345
|
+
id: text("id").primaryKey(),
|
|
111346
|
+
label: text("label").notNull(),
|
|
111347
|
+
createdAt: text("created_at").notNull()
|
|
111348
|
+
});
|
|
111349
|
+
agentBrowserProfileAgents = sqliteTable(
|
|
111350
|
+
"agent_browser_profile_agents",
|
|
111351
|
+
{
|
|
111352
|
+
profileId: text("profile_id").notNull().references(() => agentBrowserProfiles.id, { onDelete: "cascade" }),
|
|
111353
|
+
agentId: text("agent_id").notNull(),
|
|
111354
|
+
createdAt: text("created_at").notNull(),
|
|
111355
|
+
signature: text("signature").notNull()
|
|
111356
|
+
},
|
|
111357
|
+
(t2) => [
|
|
111358
|
+
primaryKey({ columns: [t2.profileId, t2.agentId] }),
|
|
111359
|
+
index("agent_browser_profile_agents_agent").on(t2.agentId)
|
|
111360
|
+
]
|
|
111361
|
+
);
|
|
111362
|
+
}
|
|
111363
|
+
});
|
|
111364
|
+
|
|
111136
111365
|
// ../db/src/schema/session/session-locations.ts
|
|
111137
111366
|
var sessionLocations;
|
|
111138
111367
|
var init_session_locations = __esm({
|
|
@@ -111339,6 +111568,90 @@ var init_commitments = __esm({
|
|
|
111339
111568
|
}
|
|
111340
111569
|
});
|
|
111341
111570
|
|
|
111571
|
+
// ../db/src/schema/work-queue/work-queue.ts
|
|
111572
|
+
var agentWorkQueues, workQueueControl, agentWorkItems;
|
|
111573
|
+
var init_work_queue = __esm({
|
|
111574
|
+
"../db/src/schema/work-queue/work-queue.ts"() {
|
|
111575
|
+
"use strict";
|
|
111576
|
+
init_drizzle_orm();
|
|
111577
|
+
init_sqlite_core();
|
|
111578
|
+
agentWorkQueues = sqliteTable("agent_work_queues", {
|
|
111579
|
+
/** The Mesh id of the agent. */
|
|
111580
|
+
agentId: text("agent_id").primaryKey(),
|
|
111581
|
+
/** Whether a person turned the queue on. Turning it off is how a person pauses it. */
|
|
111582
|
+
enabled: integer2("enabled", { mode: "boolean" }).notNull().default(false),
|
|
111583
|
+
/** How many of the queue's chats may run at once. */
|
|
111584
|
+
target: integer2("target").notNull().default(1),
|
|
111585
|
+
/** The most chats the queue may start in one UTC day. */
|
|
111586
|
+
dailyStartCap: integer2("daily_start_cap").notNull().default(20),
|
|
111587
|
+
/** The UTC day {@link startsToday} counts (`YYYY-MM-DD`), or NULL before the first start. */
|
|
111588
|
+
startsDay: text("starts_day"),
|
|
111589
|
+
/** How many chats the queue started on {@link startsDay}. */
|
|
111590
|
+
startsToday: integer2("starts_today").notNull().default(0),
|
|
111591
|
+
/** When this row last changed (ISO 8601). */
|
|
111592
|
+
updatedAt: text("updated_at").notNull()
|
|
111593
|
+
});
|
|
111594
|
+
workQueueControl = sqliteTable(
|
|
111595
|
+
"work_queue_control",
|
|
111596
|
+
{
|
|
111597
|
+
/** Always 1. */
|
|
111598
|
+
id: integer2("id").primaryKey(),
|
|
111599
|
+
/** Whether a person stopped every queue. */
|
|
111600
|
+
stopped: integer2("stopped", { mode: "boolean" }).notNull(),
|
|
111601
|
+
/** When it last changed (ISO 8601). */
|
|
111602
|
+
updatedAt: text("updated_at").notNull()
|
|
111603
|
+
},
|
|
111604
|
+
(table2) => [check3("work_queue_control_one_row", sql2`${table2.id} = 1`)]
|
|
111605
|
+
);
|
|
111606
|
+
agentWorkItems = sqliteTable(
|
|
111607
|
+
"agent_work_items",
|
|
111608
|
+
{
|
|
111609
|
+
/** ULID. */
|
|
111610
|
+
id: text("id").primaryKey(),
|
|
111611
|
+
/** The Mesh id of the agent whose queue this is. */
|
|
111612
|
+
agentId: text("agent_id").notNull(),
|
|
111613
|
+
/** Where it sits among the queued items: lowest starts first. */
|
|
111614
|
+
position: integer2("position").notNull(),
|
|
111615
|
+
/** A short title, used for the chat it starts. */
|
|
111616
|
+
title: text("title").notNull(),
|
|
111617
|
+
/** The first message of the chat it starts. */
|
|
111618
|
+
prompt: text("prompt").notNull(),
|
|
111619
|
+
/** The folder the chat works in, or NULL for the agent's own. */
|
|
111620
|
+
cwd: text("cwd"),
|
|
111621
|
+
/** Where it stands. */
|
|
111622
|
+
state: text("state", { enum: ["queued", "starting", "running", "ended"] }).notNull(),
|
|
111623
|
+
/** How it ended, or NULL before then. */
|
|
111624
|
+
outcome: text("outcome", {
|
|
111625
|
+
enum: ["finished", "failed", "stopped", "limit", "interrupted"]
|
|
111626
|
+
}),
|
|
111627
|
+
/** A short note on why it ended the way it did, or NULL. */
|
|
111628
|
+
note: text("note"),
|
|
111629
|
+
/** The chat it started, or NULL before then. */
|
|
111630
|
+
sessionId: text("session_id"),
|
|
111631
|
+
/** The account the chat runs on, or NULL when the usual choice decided. */
|
|
111632
|
+
accountId: text("account_id"),
|
|
111633
|
+
/** Who queued it. */
|
|
111634
|
+
addedBy: text("added_by", { enum: ["person", "agent"] }).notNull(),
|
|
111635
|
+
/** When it was queued (ISO 8601). */
|
|
111636
|
+
createdAt: text("created_at").notNull(),
|
|
111637
|
+
/** When its chat started (ISO 8601), or NULL. */
|
|
111638
|
+
startedAt: text("started_at"),
|
|
111639
|
+
/** When it ended (ISO 8601), or NULL. */
|
|
111640
|
+
endedAt: text("ended_at")
|
|
111641
|
+
},
|
|
111642
|
+
(table2) => [
|
|
111643
|
+
index("agent_work_items_agent_state_idx").on(table2.agentId, table2.state, table2.position),
|
|
111644
|
+
index("agent_work_items_session_idx").on(table2.sessionId),
|
|
111645
|
+
check3(
|
|
111646
|
+
"agent_work_items_state",
|
|
111647
|
+
sql2`${table2.state} IN ('queued', 'starting', 'running', 'ended')`
|
|
111648
|
+
),
|
|
111649
|
+
check3("agent_work_items_title_length", sql2`length(${table2.title}) <= 80`)
|
|
111650
|
+
]
|
|
111651
|
+
);
|
|
111652
|
+
}
|
|
111653
|
+
});
|
|
111654
|
+
|
|
111342
111655
|
// ../db/src/schema/heartbeats/heartbeats.ts
|
|
111343
111656
|
var heartbeatState, heartbeatBeats, heartbeatOutbox, heartbeatReportItems;
|
|
111344
111657
|
var init_heartbeats = __esm({
|
|
@@ -111634,10 +111947,14 @@ __export(schema_exports, {
|
|
|
111634
111947
|
account: () => account,
|
|
111635
111948
|
accountRelations: () => accountRelations,
|
|
111636
111949
|
activityEvents: () => activityEvents,
|
|
111950
|
+
agentBrowserProfileAgents: () => agentBrowserProfileAgents,
|
|
111951
|
+
agentBrowserProfiles: () => agentBrowserProfiles,
|
|
111637
111952
|
agentConnectionAttachments: () => agentConnectionAttachments,
|
|
111638
111953
|
agentDenials: () => agentDenials,
|
|
111639
111954
|
agentIdentityTokens: () => agentIdentityTokens,
|
|
111640
111955
|
agentPauses: () => agentPauses,
|
|
111956
|
+
agentWorkItems: () => agentWorkItems,
|
|
111957
|
+
agentWorkQueues: () => agentWorkQueues,
|
|
111641
111958
|
agents: () => agents,
|
|
111642
111959
|
apikey: () => apikey,
|
|
111643
111960
|
approvals: () => approvals,
|
|
@@ -111755,6 +112072,7 @@ __export(schema_exports, {
|
|
|
111755
112072
|
user: () => user,
|
|
111756
112073
|
userRelations: () => userRelations,
|
|
111757
112074
|
verification: () => verification,
|
|
112075
|
+
workQueueControl: () => workQueueControl,
|
|
111758
112076
|
workspaces: () => workspaces
|
|
111759
112077
|
});
|
|
111760
112078
|
var init_schema2 = __esm({
|
|
@@ -111800,11 +112118,13 @@ var init_schema2 = __esm({
|
|
|
111800
112118
|
init_channel();
|
|
111801
112119
|
init_file_save_intents();
|
|
111802
112120
|
init_registry();
|
|
112121
|
+
init_agent_profiles();
|
|
111803
112122
|
init_session_locations();
|
|
111804
112123
|
init_session_native_bindings();
|
|
111805
112124
|
init_session_touches();
|
|
111806
112125
|
init_chat_messages2();
|
|
111807
112126
|
init_commitments();
|
|
112127
|
+
init_work_queue();
|
|
111808
112128
|
init_heartbeats();
|
|
111809
112129
|
init_remote_commands();
|
|
111810
112130
|
}
|
|
@@ -113910,6 +114230,9 @@ var init_config_disclosure = __esm({
|
|
|
113910
114230
|
// Whether cheap checks may run on DorkOS credits (spec `heartbeats` §6.3): a
|
|
113911
114231
|
// plain yes, no or not answered, so an agent can say where its checks run.
|
|
113912
114232
|
"heartbeats.triageOnCredits": "expose",
|
|
114233
|
+
// Which room hears "nothing is running" (DOR-3675): a room id, which an agent may read so
|
|
114234
|
+
// it can say where the alert goes. Only a person may change it.
|
|
114235
|
+
"heartbeats.idleAlertRoomId": "expose",
|
|
113913
114236
|
// How long the Activity feed keeps its rows (spec `audit-trail` §3.5).
|
|
113914
114237
|
"activity.retentionDays": "expose",
|
|
113915
114238
|
// Where the company certificates the desktop app trusts live (DOR-3361).
|
|
@@ -114684,7 +115007,9 @@ var init_operator_only_stakes = __esm({
|
|
|
114684
115007
|
"notifications.sounds.allClear",
|
|
114685
115008
|
"notifications.sounds.turnEnd",
|
|
114686
115009
|
"notifications.notifyOnTurnCompleteWhileAway",
|
|
114687
|
-
"notifications.browserPermissionPrimerDismissed"
|
|
115010
|
+
"notifications.browserPermissionPrimerDismissed",
|
|
115011
|
+
// Which room is told nothing is running while work is open (DOR-3675).
|
|
115012
|
+
"heartbeats.idleAlertRoomId"
|
|
114688
115013
|
]
|
|
114689
115014
|
}
|
|
114690
115015
|
];
|
|
@@ -114896,6 +115221,9 @@ var init_config_write_policy = __esm({
|
|
|
114896
115221
|
// Whether cheap checks spend DorkOS credits (spec `heartbeats` §6.3). Only a
|
|
114897
115222
|
// person's **Use credits** may say yes: it spends the account owner's money.
|
|
114898
115223
|
"heartbeats.triageOnCredits": "operator-only",
|
|
115224
|
+
// Which room hears "nothing is running" (DOR-3675). An agent that could set it could aim
|
|
115225
|
+
// the alert at a room of its choosing, so it is a person's call.
|
|
115226
|
+
"heartbeats.idleAlertRoomId": "operator-only",
|
|
114899
115227
|
// How long the Activity feed keeps the history people review (spec
|
|
114900
115228
|
// `audit-trail` §3.5). Shortening it deletes rows a person may not have read
|
|
114901
115229
|
// yet; lengthening it spends disk. Either is the person's call.
|
|
@@ -115690,14 +116018,14 @@ var init_constants8 = __esm({
|
|
|
115690
116018
|
* would trade a real resource ceiling for a case nobody has reported.
|
|
115691
116019
|
*/
|
|
115692
116020
|
INTERACTION_PARK_CEILING_MS: 4 * 60 * 60 * 1e3,
|
|
115693
|
-
/**
|
|
116021
|
+
/** Session-record cache size. At capacity, reclaim LRU idle records; refuse only if all are live. */
|
|
115694
116022
|
MAX_SESSIONS: 50,
|
|
115695
116023
|
/**
|
|
115696
116024
|
* How long a WARM session's subprocess may sit with no turn open before it is
|
|
115697
116025
|
* given back (spec `persistent-session-runtime` §4.3).
|
|
115698
116026
|
*
|
|
115699
116027
|
* This is **not** session eviction. `TIMEOUT_MS` retires the session RECORD
|
|
115700
|
-
* after 30 minutes
|
|
116028
|
+
* after 30 minutes (or sooner for an idle record at the cap); this closes a PROCESS
|
|
115701
116029
|
* after 5 minutes and the person cannot tell — the record, the transcript and
|
|
115702
116030
|
* the conversation are untouched, and the next message resumes. Eviction
|
|
115703
116031
|
* implies a reap; a reap never implies eviction.
|
|
@@ -115719,7 +116047,7 @@ var init_constants8 = __esm({
|
|
|
115719
116047
|
* {@link SESSIONS.MAX_WARM_SESSIONS_AUTO}. Twelve was the fixed ceiling until
|
|
115720
116048
|
* DOR-3012, and a machine with 48 GB filled it with 5.5 GB in use.
|
|
115721
116049
|
*
|
|
115722
|
-
*
|
|
116050
|
+
* Like the session-record cap, it reclaims idle entries first. Warmth is a
|
|
115723
116051
|
* cache, so a launch past it reclaims the least recently used warm process,
|
|
115724
116052
|
* and when nothing is reclaimable — every process mid-turn or parked on a
|
|
115725
116053
|
* person — it waits for one to come free ({@link SESSIONS.WARM_SLOT_WAIT_MS}).
|
|
@@ -117101,6 +117429,196 @@ var init_agent_home = __esm({
|
|
|
117101
117429
|
}
|
|
117102
117430
|
});
|
|
117103
117431
|
|
|
117432
|
+
// ../../apps/server/src/services/core/turn-power/live-outsider-turns.ts
|
|
117433
|
+
function homeKey(dir, forAgent) {
|
|
117434
|
+
try {
|
|
117435
|
+
return homeOf(resolveAgentHome(dir, forAgent));
|
|
117436
|
+
} catch {
|
|
117437
|
+
return void 0;
|
|
117438
|
+
}
|
|
117439
|
+
}
|
|
117440
|
+
function countWhileRunning(place2, marks, events) {
|
|
117441
|
+
const key = homeKey(place2.cwd, place2.forAgent) ?? UNPLACED;
|
|
117442
|
+
return (async function* counted() {
|
|
117443
|
+
const token = { marks };
|
|
117444
|
+
const turns = running.get(key) ?? /* @__PURE__ */ new Set();
|
|
117445
|
+
turns.add(token);
|
|
117446
|
+
running.set(key, turns);
|
|
117447
|
+
try {
|
|
117448
|
+
yield* events;
|
|
117449
|
+
} finally {
|
|
117450
|
+
turns.delete(token);
|
|
117451
|
+
if (turns.size === 0 && running.get(key) === turns) running.delete(key);
|
|
117452
|
+
}
|
|
117453
|
+
})();
|
|
117454
|
+
}
|
|
117455
|
+
var UNPLACED, running;
|
|
117456
|
+
var init_live_outsider_turns = __esm({
|
|
117457
|
+
"../../apps/server/src/services/core/turn-power/live-outsider-turns.ts"() {
|
|
117458
|
+
"use strict";
|
|
117459
|
+
init_agent_home();
|
|
117460
|
+
UNPLACED = "";
|
|
117461
|
+
running = /* @__PURE__ */ new Map();
|
|
117462
|
+
}
|
|
117463
|
+
});
|
|
117464
|
+
|
|
117465
|
+
// ../../apps/server/src/services/core/turn-power/teammate-mark.ts
|
|
117466
|
+
function teammateTurnRefusal(origins) {
|
|
117467
|
+
const gate = spaceAllows;
|
|
117468
|
+
if (gate && origins.some((origin) => !gate(origin.roomId))) return TEAMMATE_LIMIT_REFUSAL;
|
|
117469
|
+
return null;
|
|
117470
|
+
}
|
|
117471
|
+
var TEAMMATE_LIMIT_REFUSAL, spaceAllows;
|
|
117472
|
+
var init_teammate_mark = __esm({
|
|
117473
|
+
"../../apps/server/src/services/core/turn-power/teammate-mark.ts"() {
|
|
117474
|
+
"use strict";
|
|
117475
|
+
TEAMMATE_LIMIT_REFUSAL = "This space reached its monthly limit for teammates, so this turn didn\u2019t run.";
|
|
117476
|
+
spaceAllows = null;
|
|
117477
|
+
}
|
|
117478
|
+
});
|
|
117479
|
+
|
|
117480
|
+
// ../../apps/server/src/services/core/turn-power/turn-marks.ts
|
|
117481
|
+
function presentKinds(marks) {
|
|
117482
|
+
return TURN_MARK_KINDS.filter((kind) => marks[kind] !== void 0);
|
|
117483
|
+
}
|
|
117484
|
+
function marksFrom(fields) {
|
|
117485
|
+
const kinds = presentKinds(fields);
|
|
117486
|
+
if (kinds.length === 0) return NO_MARKS;
|
|
117487
|
+
return Object.fromEntries(kinds.map((kind) => [kind, fields[kind]]));
|
|
117488
|
+
}
|
|
117489
|
+
function teammateOrigins(marks) {
|
|
117490
|
+
return marks.teammate ?? [];
|
|
117491
|
+
}
|
|
117492
|
+
function marksOfLevel(level) {
|
|
117493
|
+
return level === void 0 ? NO_MARKS : marksFrom(level);
|
|
117494
|
+
}
|
|
117495
|
+
function marksOfCeiling(ceiling) {
|
|
117496
|
+
if (!Array.isArray(ceiling)) {
|
|
117497
|
+
return ceiling === "runtime-default" ? UNKNOWN_SOURCE : marksOfLevel(ceiling);
|
|
117498
|
+
}
|
|
117499
|
+
const bounds = ceiling;
|
|
117500
|
+
if (bounds.length === 0) return UNKNOWN_SOURCE;
|
|
117501
|
+
return bounds.map(marksOfCeiling).reduce(mergeMarks, NO_MARKS);
|
|
117502
|
+
}
|
|
117503
|
+
function marksForTurn(opts) {
|
|
117504
|
+
const ceiling = opts?.continuationHold === true ? withoutContinuationBound(opts.permissionCeiling) : opts?.permissionCeiling;
|
|
117505
|
+
const fromCeiling = ceiling !== void 0 ? marksOfCeiling(ceiling) : NO_MARKS;
|
|
117506
|
+
return opts?.carriedMarks?.outsider === true ? mergeMarks(fromCeiling, { outsider: true }) : fromCeiling;
|
|
117507
|
+
}
|
|
117508
|
+
function withoutContinuationBound(ceiling) {
|
|
117509
|
+
if (ceiling === void 0 || ceiling === "runtime-default") return void 0;
|
|
117510
|
+
if (!Array.isArray(ceiling)) return ceiling;
|
|
117511
|
+
const bounds = [...ceiling];
|
|
117512
|
+
const at = bounds.indexOf("runtime-default");
|
|
117513
|
+
if (at !== -1) bounds.splice(at, 1);
|
|
117514
|
+
return bounds.length === 0 ? void 0 : bounds;
|
|
117515
|
+
}
|
|
117516
|
+
function mergeMarks(a2, b2) {
|
|
117517
|
+
const merged = {};
|
|
117518
|
+
for (const kind of TURN_MARK_KINDS) {
|
|
117519
|
+
const rules = RULES[kind];
|
|
117520
|
+
const value = rules.merge(a2[kind], b2[kind]);
|
|
117521
|
+
if (value !== void 0) merged[kind] = value;
|
|
117522
|
+
}
|
|
117523
|
+
return marksFrom(merged);
|
|
117524
|
+
}
|
|
117525
|
+
function hasMarks(marks) {
|
|
117526
|
+
return presentKinds(marks).length > 0;
|
|
117527
|
+
}
|
|
117528
|
+
function carriesAllMarks(receiver, sender) {
|
|
117529
|
+
return TURN_MARK_KINDS.every(
|
|
117530
|
+
(kind) => RULES[kind].covers(receiver[kind], sender[kind])
|
|
117531
|
+
);
|
|
117532
|
+
}
|
|
117533
|
+
function withMarks(level, marks) {
|
|
117534
|
+
const own2 = marksOfLevel(level);
|
|
117535
|
+
if (carriesAllMarks(own2, marks)) return level;
|
|
117536
|
+
return { ...level, ...mergeMarks(own2, marks) };
|
|
117537
|
+
}
|
|
117538
|
+
async function* refused(reason) {
|
|
117539
|
+
yield* [];
|
|
117540
|
+
throw new Error(reason);
|
|
117541
|
+
}
|
|
117542
|
+
function placeOf(runtime, sessionId, opts) {
|
|
117543
|
+
let cwd = opts?.cwd ?? opts?.roomTurn?.cwd;
|
|
117544
|
+
try {
|
|
117545
|
+
cwd ??= runtime.getSessionCwd?.(sessionId);
|
|
117546
|
+
} catch {
|
|
117547
|
+
}
|
|
117548
|
+
return { cwd, forAgent: turnAgentOf(opts) };
|
|
117549
|
+
}
|
|
117550
|
+
function applyTurnMarks(runtime, marksOfSession, recordRefused) {
|
|
117551
|
+
const places = /* @__PURE__ */ new Map();
|
|
117552
|
+
function markedTurn(target, sessionId, opts, start) {
|
|
117553
|
+
const marks = marksForTurn(opts);
|
|
117554
|
+
if (!hasMarks(marks)) return start(opts);
|
|
117555
|
+
if (marks.teammate !== void 0) {
|
|
117556
|
+
const refusal2 = teammateTurnRefusal(marks.teammate);
|
|
117557
|
+
if (refusal2 !== null) {
|
|
117558
|
+
if (opts) recordRefused?.(sessionId, opts);
|
|
117559
|
+
return refused(refusal2);
|
|
117560
|
+
}
|
|
117561
|
+
}
|
|
117562
|
+
const place2 = placeOf(target, sessionId, opts);
|
|
117563
|
+
places.delete(sessionId);
|
|
117564
|
+
places.set(sessionId, place2);
|
|
117565
|
+
if (places.size > PLACE_MEMORY) places.delete(places.keys().next().value);
|
|
117566
|
+
return countWhileRunning(place2, marks, start(opts));
|
|
117567
|
+
}
|
|
117568
|
+
return new Proxy(runtime, {
|
|
117569
|
+
get(target, prop) {
|
|
117570
|
+
if ((prop === "sendMessage" || prop === "executeCommandIntent") && typeof target[prop] === "function") {
|
|
117571
|
+
const start = target[prop].bind(target);
|
|
117572
|
+
return (sessionId, input4, opts) => markedTurn(target, sessionId, opts, (sent) => start(sessionId, input4, sent));
|
|
117573
|
+
}
|
|
117574
|
+
if (prop === "onRuntimeTurn" && typeof target.onRuntimeTurn === "function") {
|
|
117575
|
+
const subscribe = target.onRuntimeTurn.bind(target);
|
|
117576
|
+
return (listener) => subscribe((sessionId, events) => {
|
|
117577
|
+
const marks = marksOfSession(sessionId);
|
|
117578
|
+
listener(
|
|
117579
|
+
sessionId,
|
|
117580
|
+
hasMarks(marks) ? countWhileRunning(
|
|
117581
|
+
places.get(sessionId) ?? placeOf(target, sessionId, void 0),
|
|
117582
|
+
marks,
|
|
117583
|
+
events
|
|
117584
|
+
) : events
|
|
117585
|
+
);
|
|
117586
|
+
});
|
|
117587
|
+
}
|
|
117588
|
+
const value = Reflect.get(target, prop, target);
|
|
117589
|
+
return typeof value === "function" ? value.bind(target) : value;
|
|
117590
|
+
}
|
|
117591
|
+
});
|
|
117592
|
+
}
|
|
117593
|
+
var TURN_MARK_KINDS, NO_MARKS, PLACE_MEMORY, UNKNOWN_SOURCE, sameOrigin, RULES;
|
|
117594
|
+
var init_turn_marks = __esm({
|
|
117595
|
+
"../../apps/server/src/services/core/turn-power/turn-marks.ts"() {
|
|
117596
|
+
"use strict";
|
|
117597
|
+
init_permission_semantics();
|
|
117598
|
+
init_agent_home();
|
|
117599
|
+
init_live_outsider_turns();
|
|
117600
|
+
init_teammate_mark();
|
|
117601
|
+
TURN_MARK_KINDS = [
|
|
117602
|
+
"outsider",
|
|
117603
|
+
"teammate"
|
|
117604
|
+
];
|
|
117605
|
+
NO_MARKS = Object.freeze({});
|
|
117606
|
+
PLACE_MEMORY = 1e4;
|
|
117607
|
+
UNKNOWN_SOURCE = Object.freeze({ outsider: true });
|
|
117608
|
+
sameOrigin = (a2, b2) => a2.roomId === b2.roomId && a2.authorId === b2.authorId;
|
|
117609
|
+
RULES = {
|
|
117610
|
+
outsider: {
|
|
117611
|
+
merge: (a2, b2) => a2 === true || b2 === true ? true : void 0,
|
|
117612
|
+
covers: (outer, inner) => inner !== true || outer === true
|
|
117613
|
+
},
|
|
117614
|
+
teammate: {
|
|
117615
|
+
merge: (a2, b2) => mergeTeammateOrigins(a2, b2),
|
|
117616
|
+
covers: (outer, inner) => inner === void 0 || outer !== void 0 && inner.every((origin) => outer.some((o3) => sameOrigin(o3, origin)))
|
|
117617
|
+
}
|
|
117618
|
+
};
|
|
117619
|
+
}
|
|
117620
|
+
});
|
|
117621
|
+
|
|
117104
117622
|
// ../../apps/server/src/services/session/turn-identity/durable-rekey.ts
|
|
117105
117623
|
var init_durable_rekey = __esm({
|
|
117106
117624
|
"../../apps/server/src/services/session/turn-identity/durable-rekey.ts"() {
|
|
@@ -118638,8 +119156,8 @@ var init_devtools_capture_store = __esm({
|
|
|
118638
119156
|
* @param pending - The recording id and working directory to write under.
|
|
118639
119157
|
* @param timeoutMs - How long to wait before giving up on the window.
|
|
118640
119158
|
*/
|
|
118641
|
-
awaitRecording(requestId,
|
|
118642
|
-
this.pendingRecordings.set(requestId,
|
|
119159
|
+
awaitRecording(requestId, pending, timeoutMs) {
|
|
119160
|
+
this.pendingRecordings.set(requestId, pending);
|
|
118643
119161
|
return new Promise((resolve14) => {
|
|
118644
119162
|
const timer = setTimeout(() => {
|
|
118645
119163
|
this.recordingWaiters.delete(requestId);
|
|
@@ -118660,17 +119178,17 @@ var init_devtools_capture_store = __esm({
|
|
|
118660
119178
|
* @param requestId - The round trip id the upload carries.
|
|
118661
119179
|
*/
|
|
118662
119180
|
pendingRecording(requestId) {
|
|
118663
|
-
const
|
|
118664
|
-
return
|
|
119181
|
+
const pending = this.pendingRecordings.get(requestId);
|
|
119182
|
+
return pending ? { ...pending } : void 0;
|
|
118665
119183
|
}
|
|
118666
119184
|
/** Recording uploads require the pinned live claim, even while decoder/encoder work is finishing. */
|
|
118667
119185
|
admitsRecording(requestId, actual) {
|
|
118668
|
-
const
|
|
118669
|
-
if (!
|
|
118670
|
-
if (!
|
|
119186
|
+
const pending = this.pendingRecordings.get(requestId);
|
|
119187
|
+
if (!pending || !matchesBinding(pending.binding ?? {}, actual)) return false;
|
|
119188
|
+
if (!pending.binding) return true;
|
|
118671
119189
|
return [...this.buffers.values()].some(
|
|
118672
119190
|
(buffer) => buffer.drivers.some(
|
|
118673
|
-
(claim2) => matchesBinding(
|
|
119191
|
+
(claim2) => matchesBinding(pending.binding, claim2) && claim2.activeAt >= Date.now() - WORKBENCH.DEVTOOLS_SEAT_STALE_MS
|
|
118674
119192
|
)
|
|
118675
119193
|
);
|
|
118676
119194
|
}
|
|
@@ -119083,287 +119601,9 @@ var init_session_key_registry = __esm({
|
|
|
119083
119601
|
}
|
|
119084
119602
|
});
|
|
119085
119603
|
|
|
119086
|
-
// ../../apps/server/src/services/session/origin/outsider-turns.ts
|
|
119087
|
-
import { AsyncLocalStorage as AsyncLocalStorage5 } from "node:async_hooks";
|
|
119088
|
-
function noteLatest(sessionId, outsider) {
|
|
119089
|
-
const key = primaryOf(sessionId);
|
|
119090
|
-
latest.set(key, outsider);
|
|
119091
|
-
if (outsider) heard.add(key);
|
|
119092
|
-
}
|
|
119093
|
-
function isOutsiderOrigin(origin) {
|
|
119094
|
-
if (origin.kind === "room") return origin.externalAuthor;
|
|
119095
|
-
return OUTSIDER_ORIGIN_KINDS.has(origin.kind);
|
|
119096
|
-
}
|
|
119097
|
-
function noteTurnOrigin(sessionId, origin) {
|
|
119098
|
-
const messageId = holdingFor.getStore();
|
|
119099
|
-
if (messageId === void 0) {
|
|
119100
|
-
noteLatest(sessionId, isOutsiderOrigin(origin));
|
|
119101
|
-
return;
|
|
119102
|
-
}
|
|
119103
|
-
pending.set(messageId, isOutsiderOrigin(origin));
|
|
119104
|
-
if (pending.size > PENDING_MAX) pending.delete(pending.keys().next().value);
|
|
119105
|
-
}
|
|
119106
|
-
function noteChatHeardOutsider(sessionId) {
|
|
119107
|
-
heard.add(primaryOf(sessionId));
|
|
119108
|
-
}
|
|
119109
|
-
var OUTSIDER_ORIGIN_KINDS, latest, heard, pending, PENDING_MAX, holdingFor;
|
|
119110
|
-
var init_outsider_turns = __esm({
|
|
119111
|
-
"../../apps/server/src/services/session/origin/outsider-turns.ts"() {
|
|
119112
|
-
"use strict";
|
|
119113
|
-
init_session_key_registry();
|
|
119114
|
-
OUTSIDER_ORIGIN_KINDS = /* @__PURE__ */ new Set([
|
|
119115
|
-
"relay-binding",
|
|
119116
|
-
"outside-sender",
|
|
119117
|
-
"connector-event"
|
|
119118
|
-
]);
|
|
119119
|
-
latest = /* @__PURE__ */ new Map();
|
|
119120
|
-
heard = /* @__PURE__ */ new Set();
|
|
119121
|
-
pending = /* @__PURE__ */ new Map();
|
|
119122
|
-
PENDING_MAX = 1e3;
|
|
119123
|
-
holdingFor = new AsyncLocalStorage5();
|
|
119124
|
-
}
|
|
119125
|
-
});
|
|
119126
|
-
|
|
119127
|
-
// ../../apps/server/src/services/core/turn-power/live-outsider-turns.ts
|
|
119128
|
-
function homeKey(dir, forAgent) {
|
|
119129
|
-
try {
|
|
119130
|
-
return homeOf(resolveAgentHome(dir, forAgent));
|
|
119131
|
-
} catch {
|
|
119132
|
-
return void 0;
|
|
119133
|
-
}
|
|
119134
|
-
}
|
|
119135
|
-
function countWhileRunning(place2, marks, events) {
|
|
119136
|
-
const key = homeKey(place2.cwd, place2.forAgent) ?? UNPLACED;
|
|
119137
|
-
return (async function* counted() {
|
|
119138
|
-
const token = { marks };
|
|
119139
|
-
const turns = running.get(key) ?? /* @__PURE__ */ new Set();
|
|
119140
|
-
turns.add(token);
|
|
119141
|
-
running.set(key, turns);
|
|
119142
|
-
try {
|
|
119143
|
-
yield* events;
|
|
119144
|
-
} finally {
|
|
119145
|
-
turns.delete(token);
|
|
119146
|
-
if (turns.size === 0 && running.get(key) === turns) running.delete(key);
|
|
119147
|
-
}
|
|
119148
|
-
})();
|
|
119149
|
-
}
|
|
119150
|
-
var UNPLACED, running;
|
|
119151
|
-
var init_live_outsider_turns = __esm({
|
|
119152
|
-
"../../apps/server/src/services/core/turn-power/live-outsider-turns.ts"() {
|
|
119153
|
-
"use strict";
|
|
119154
|
-
init_agent_home();
|
|
119155
|
-
UNPLACED = "";
|
|
119156
|
-
running = /* @__PURE__ */ new Map();
|
|
119157
|
-
}
|
|
119158
|
-
});
|
|
119159
|
-
|
|
119160
|
-
// ../../apps/server/src/services/core/turn-power/teammate-mark.ts
|
|
119161
|
-
function runsTeammateTurns(runtimeType) {
|
|
119162
|
-
return TEAMMATE_TURN_RUNTIMES.has(runtimeType);
|
|
119163
|
-
}
|
|
119164
|
-
function teammateRuntimeRefusal(runtimeType) {
|
|
119165
|
-
return `A teammate's message cannot start a turn on ${runtimeType} yet`;
|
|
119166
|
-
}
|
|
119167
|
-
function teammateTurnRefusal(runtimeType, origins) {
|
|
119168
|
-
if (!runsTeammateTurns(runtimeType)) return teammateRuntimeRefusal(runtimeType);
|
|
119169
|
-
const gate = spaceAllows;
|
|
119170
|
-
if (gate && origins.some((origin) => !gate(origin.roomId))) return TEAMMATE_LIMIT_REFUSAL;
|
|
119171
|
-
return null;
|
|
119172
|
-
}
|
|
119173
|
-
function teammateTurnOpts(opts) {
|
|
119174
|
-
const { additionalDirectories: _granted, ...rest } = opts ?? {};
|
|
119175
|
-
return {
|
|
119176
|
-
...rest,
|
|
119177
|
-
teammate: true,
|
|
119178
|
-
unattended: true,
|
|
119179
|
-
permissionCeiling: withReadOnly(opts?.permissionCeiling),
|
|
119180
|
-
...opts?.roomTurn ? { roomTurn: { ...opts.roomTurn, teammate: true, untrustedText: true } } : {}
|
|
119181
|
-
};
|
|
119182
|
-
}
|
|
119183
|
-
function withReadOnly(ceiling) {
|
|
119184
|
-
if (ceiling === void 0) return READ_ONLY_LEVEL;
|
|
119185
|
-
if (Array.isArray(ceiling) && ceiling.length === 0) return ["runtime-default", READ_ONLY_LEVEL];
|
|
119186
|
-
const bounds = Array.isArray(ceiling) ? ceiling : [ceiling];
|
|
119187
|
-
return [...bounds, READ_ONLY_LEVEL];
|
|
119188
|
-
}
|
|
119189
|
-
var TEAMMATE_TURN_RUNTIMES, TEAMMATE_LIMIT_REFUSAL, spaceAllows;
|
|
119190
|
-
var init_teammate_mark = __esm({
|
|
119191
|
-
"../../apps/server/src/services/core/turn-power/teammate-mark.ts"() {
|
|
119192
|
-
"use strict";
|
|
119193
|
-
init_permission_semantics();
|
|
119194
|
-
TEAMMATE_TURN_RUNTIMES = /* @__PURE__ */ new Set(["claude-code", "test-mode"]);
|
|
119195
|
-
TEAMMATE_LIMIT_REFUSAL = "This space reached its monthly limit for teammates, so this turn didn\u2019t run.";
|
|
119196
|
-
spaceAllows = null;
|
|
119197
|
-
}
|
|
119198
|
-
});
|
|
119199
|
-
|
|
119200
|
-
// ../../apps/server/src/services/core/turn-power/turn-marks.ts
|
|
119201
|
-
function presentKinds(marks) {
|
|
119202
|
-
return TURN_MARK_KINDS.filter((kind) => marks[kind] !== void 0);
|
|
119203
|
-
}
|
|
119204
|
-
function marksFrom(fields) {
|
|
119205
|
-
const kinds = presentKinds(fields);
|
|
119206
|
-
if (kinds.length === 0) return NO_MARKS;
|
|
119207
|
-
return Object.fromEntries(kinds.map((kind) => [kind, fields[kind]]));
|
|
119208
|
-
}
|
|
119209
|
-
function teammateOrigins(marks) {
|
|
119210
|
-
return marks.teammate ?? [];
|
|
119211
|
-
}
|
|
119212
|
-
function marksOfLevel(level) {
|
|
119213
|
-
return level === void 0 ? NO_MARKS : marksFrom(level);
|
|
119214
|
-
}
|
|
119215
|
-
function marksOfCeiling(ceiling) {
|
|
119216
|
-
if (!Array.isArray(ceiling)) {
|
|
119217
|
-
return ceiling === "runtime-default" ? UNKNOWN_SOURCE : marksOfLevel(ceiling);
|
|
119218
|
-
}
|
|
119219
|
-
const bounds = ceiling;
|
|
119220
|
-
if (bounds.length === 0) return UNKNOWN_SOURCE;
|
|
119221
|
-
return bounds.map(marksOfCeiling).reduce(mergeMarks, NO_MARKS);
|
|
119222
|
-
}
|
|
119223
|
-
function marksForTurn(opts) {
|
|
119224
|
-
const ceiling = opts?.continuationHold === true ? withoutContinuationBound(opts.permissionCeiling) : opts?.permissionCeiling;
|
|
119225
|
-
const fromCeiling = ceiling !== void 0 ? marksOfCeiling(ceiling) : NO_MARKS;
|
|
119226
|
-
return mergeMarks(
|
|
119227
|
-
fromCeiling,
|
|
119228
|
-
opts?.roomTurn?.outsiderInView === true ? { outsider: true } : NO_MARKS
|
|
119229
|
-
);
|
|
119230
|
-
}
|
|
119231
|
-
function withoutContinuationBound(ceiling) {
|
|
119232
|
-
if (ceiling === void 0 || ceiling === "runtime-default") return void 0;
|
|
119233
|
-
if (!Array.isArray(ceiling)) return ceiling;
|
|
119234
|
-
const bounds = [...ceiling];
|
|
119235
|
-
const at = bounds.indexOf("runtime-default");
|
|
119236
|
-
if (at !== -1) bounds.splice(at, 1);
|
|
119237
|
-
return bounds.length === 0 ? void 0 : bounds;
|
|
119238
|
-
}
|
|
119239
|
-
function mergeMarks(a2, b2) {
|
|
119240
|
-
const merged = {};
|
|
119241
|
-
for (const kind of TURN_MARK_KINDS) {
|
|
119242
|
-
const rules = RULES[kind];
|
|
119243
|
-
const value = rules.merge(a2[kind], b2[kind]);
|
|
119244
|
-
if (value !== void 0) merged[kind] = value;
|
|
119245
|
-
}
|
|
119246
|
-
return marksFrom(merged);
|
|
119247
|
-
}
|
|
119248
|
-
function hasMarks(marks) {
|
|
119249
|
-
return presentKinds(marks).length > 0;
|
|
119250
|
-
}
|
|
119251
|
-
function carriesAllMarks(receiver, sender) {
|
|
119252
|
-
return TURN_MARK_KINDS.every(
|
|
119253
|
-
(kind) => RULES[kind].covers(receiver[kind], sender[kind])
|
|
119254
|
-
);
|
|
119255
|
-
}
|
|
119256
|
-
function withMarks(level, marks) {
|
|
119257
|
-
const own2 = marksOfLevel(level);
|
|
119258
|
-
if (carriesAllMarks(own2, marks)) return level;
|
|
119259
|
-
return { ...level, ...mergeMarks(own2, marks) };
|
|
119260
|
-
}
|
|
119261
|
-
function withCarriedHold(runtimeType, opts, setToFull = false) {
|
|
119262
|
-
const ceiling = opts?.permissionCeiling;
|
|
119263
|
-
if (ceiling === void 0 || setToFull || GATES_CARRIED_SHELL.has(runtimeType)) return opts;
|
|
119264
|
-
if (ceilingHoldsForOutsider(ceiling) || marksOfCeiling(ceiling).outsider !== true) return opts;
|
|
119265
|
-
const bounds = Array.isArray(ceiling) ? [...ceiling] : [ceiling];
|
|
119266
|
-
bounds.push("runtime-default");
|
|
119267
|
-
const { continuationHold: _dropped, ...rest } = opts ?? {};
|
|
119268
|
-
return { ...rest, permissionCeiling: bounds.length === 1 ? bounds[0] : bounds };
|
|
119269
|
-
}
|
|
119270
|
-
async function* refused(reason) {
|
|
119271
|
-
yield* [];
|
|
119272
|
-
throw new Error(reason);
|
|
119273
|
-
}
|
|
119274
|
-
function placeOf(runtime, sessionId, opts) {
|
|
119275
|
-
let cwd = opts?.cwd ?? opts?.roomTurn?.cwd;
|
|
119276
|
-
try {
|
|
119277
|
-
cwd ??= runtime.getSessionCwd?.(sessionId);
|
|
119278
|
-
} catch {
|
|
119279
|
-
}
|
|
119280
|
-
return { cwd, forAgent: turnAgentOf(opts) };
|
|
119281
|
-
}
|
|
119282
|
-
function applyTurnMarks(runtime, marksOfSession, recordRefused, setToFull) {
|
|
119283
|
-
const places = /* @__PURE__ */ new Map();
|
|
119284
|
-
function markedTurn(target, sessionId, opts, start) {
|
|
119285
|
-
const marks = marksForTurn(opts);
|
|
119286
|
-
if (!hasMarks(marks)) return start(opts);
|
|
119287
|
-
if (marks.outsider === true) noteChatHeardOutsider(sessionId);
|
|
119288
|
-
let sent = withCarriedHold(target.type, opts, setToFull?.(sessionId, opts) === true);
|
|
119289
|
-
if (marks.teammate !== void 0) {
|
|
119290
|
-
sent = teammateTurnOpts(opts);
|
|
119291
|
-
const refusal2 = teammateTurnRefusal(target.type, marks.teammate);
|
|
119292
|
-
if (refusal2 !== null) {
|
|
119293
|
-
recordRefused?.(sessionId, sent);
|
|
119294
|
-
return refused(refusal2);
|
|
119295
|
-
}
|
|
119296
|
-
}
|
|
119297
|
-
const place2 = placeOf(target, sessionId, sent);
|
|
119298
|
-
places.delete(sessionId);
|
|
119299
|
-
places.set(sessionId, place2);
|
|
119300
|
-
if (places.size > PLACE_MEMORY) places.delete(places.keys().next().value);
|
|
119301
|
-
return countWhileRunning(place2, marks, start(sent));
|
|
119302
|
-
}
|
|
119303
|
-
return new Proxy(runtime, {
|
|
119304
|
-
get(target, prop) {
|
|
119305
|
-
if ((prop === "sendMessage" || prop === "executeCommandIntent") && typeof target[prop] === "function") {
|
|
119306
|
-
const start = target[prop].bind(target);
|
|
119307
|
-
return (sessionId, input4, opts) => markedTurn(target, sessionId, opts, (sent) => start(sessionId, input4, sent));
|
|
119308
|
-
}
|
|
119309
|
-
if (prop === "onRuntimeTurn" && typeof target.onRuntimeTurn === "function") {
|
|
119310
|
-
const subscribe = target.onRuntimeTurn.bind(target);
|
|
119311
|
-
return (listener) => subscribe((sessionId, events) => {
|
|
119312
|
-
const marks = marksOfSession(sessionId);
|
|
119313
|
-
listener(
|
|
119314
|
-
sessionId,
|
|
119315
|
-
hasMarks(marks) ? countWhileRunning(
|
|
119316
|
-
places.get(sessionId) ?? placeOf(target, sessionId, void 0),
|
|
119317
|
-
marks,
|
|
119318
|
-
events
|
|
119319
|
-
) : events
|
|
119320
|
-
);
|
|
119321
|
-
});
|
|
119322
|
-
}
|
|
119323
|
-
const value = Reflect.get(target, prop, target);
|
|
119324
|
-
return typeof value === "function" ? value.bind(target) : value;
|
|
119325
|
-
}
|
|
119326
|
-
});
|
|
119327
|
-
}
|
|
119328
|
-
var TURN_MARK_KINDS, NO_MARKS, PLACE_MEMORY, UNKNOWN_SOURCE, sameOrigin, RULES, GATES_CARRIED_SHELL;
|
|
119329
|
-
var init_turn_marks = __esm({
|
|
119330
|
-
"../../apps/server/src/services/core/turn-power/turn-marks.ts"() {
|
|
119331
|
-
"use strict";
|
|
119332
|
-
init_permission_semantics();
|
|
119333
|
-
init_agent_home();
|
|
119334
|
-
init_outsider_turns();
|
|
119335
|
-
init_live_outsider_turns();
|
|
119336
|
-
init_teammate_mark();
|
|
119337
|
-
TURN_MARK_KINDS = [
|
|
119338
|
-
"outsider",
|
|
119339
|
-
"teammate"
|
|
119340
|
-
];
|
|
119341
|
-
NO_MARKS = Object.freeze({});
|
|
119342
|
-
PLACE_MEMORY = 1e4;
|
|
119343
|
-
UNKNOWN_SOURCE = Object.freeze({ outsider: true });
|
|
119344
|
-
sameOrigin = (a2, b2) => a2.roomId === b2.roomId && a2.authorId === b2.authorId;
|
|
119345
|
-
RULES = {
|
|
119346
|
-
outsider: {
|
|
119347
|
-
merge: (a2, b2) => a2 === true || b2 === true ? true : void 0,
|
|
119348
|
-
covers: (outer, inner) => inner !== true || outer === true
|
|
119349
|
-
},
|
|
119350
|
-
teammate: {
|
|
119351
|
-
merge: (a2, b2) => mergeTeammateOrigins(a2, b2),
|
|
119352
|
-
covers: (outer, inner) => inner === void 0 || outer !== void 0 && inner.every((origin) => outer.some((o3) => sameOrigin(o3, origin)))
|
|
119353
|
-
}
|
|
119354
|
-
};
|
|
119355
|
-
GATES_CARRIED_SHELL = /* @__PURE__ */ new Set(["claude-code"]);
|
|
119356
|
-
}
|
|
119357
|
-
});
|
|
119358
|
-
|
|
119359
119604
|
// ../../apps/server/src/services/core/turn-power/continuation-hold.ts
|
|
119360
|
-
function noteTurnHold(sessionId, held2
|
|
119605
|
+
function noteTurnHold(sessionId, held2) {
|
|
119361
119606
|
const key = primaryOf(sessionId);
|
|
119362
|
-
carriedOnly.delete(key);
|
|
119363
|
-
if (held2 && carried) {
|
|
119364
|
-
carriedOnly.add(key);
|
|
119365
|
-
if (carriedOnly.size > WRITTEN_MAX) carriedOnly.delete(carriedOnly.values().next().value);
|
|
119366
|
-
}
|
|
119367
119607
|
if (!db) return;
|
|
119368
119608
|
if (written.get(key) === held2) return;
|
|
119369
119609
|
try {
|
|
@@ -119383,17 +119623,15 @@ function noteTurnHold(sessionId, held2, carried = false) {
|
|
|
119383
119623
|
});
|
|
119384
119624
|
}
|
|
119385
119625
|
}
|
|
119386
|
-
var db, written, WRITTEN_MAX
|
|
119626
|
+
var db, written, WRITTEN_MAX;
|
|
119387
119627
|
var init_continuation_hold = __esm({
|
|
119388
119628
|
"../../apps/server/src/services/core/turn-power/continuation-hold.ts"() {
|
|
119389
119629
|
"use strict";
|
|
119390
119630
|
init_src2();
|
|
119391
|
-
init_permission_semantics();
|
|
119392
119631
|
init_session_key_registry();
|
|
119393
119632
|
init_logger();
|
|
119394
119633
|
written = /* @__PURE__ */ new Map();
|
|
119395
119634
|
WRITTEN_MAX = 1e4;
|
|
119396
|
-
carriedOnly = /* @__PURE__ */ new Set();
|
|
119397
119635
|
}
|
|
119398
119636
|
});
|
|
119399
119637
|
|
|
@@ -119566,9 +119804,7 @@ function recordTurnLevels(runtime, storedModeOf) {
|
|
|
119566
119804
|
(sessionId) => marksOfLevel(turnLevels.get(sessionId)),
|
|
119567
119805
|
(sessionId, opts) => {
|
|
119568
119806
|
recordTurn(runtime, sessionId, storedOf2(sessionId), opts);
|
|
119569
|
-
}
|
|
119570
|
-
// A chat set to Full is never held for a mark it carries (DOR-3394).
|
|
119571
|
-
(sessionId, opts) => isFullLevel(chosenLevelOf(runtime, storedOf2(sessionId), opts))
|
|
119807
|
+
}
|
|
119572
119808
|
);
|
|
119573
119809
|
}
|
|
119574
119810
|
function recordLevels(runtime, storedModeOf) {
|
|
@@ -119584,12 +119820,7 @@ function recordLevels(runtime, storedModeOf) {
|
|
|
119584
119820
|
stored = void 0;
|
|
119585
119821
|
}
|
|
119586
119822
|
const level = recordTurn(target, sessionId, stored, opts);
|
|
119587
|
-
if (opts?.continuationHold !== true)
|
|
119588
|
-
const held2 = level.outsider === true;
|
|
119589
|
-
const ceiling = opts?.permissionCeiling;
|
|
119590
|
-
const carried = held2 && !(ceiling !== void 0 && ceilingHoldsForOutsider(ceiling));
|
|
119591
|
-
noteTurnHold(sessionId, held2, carried);
|
|
119592
|
-
}
|
|
119823
|
+
if (opts?.continuationHold !== true) noteTurnHold(sessionId, level.outsider === true);
|
|
119593
119824
|
const serial = ++nextTurnSerial;
|
|
119594
119825
|
for (const id of /* @__PURE__ */ new Set([sessionId, primaryOf(sessionId)])) {
|
|
119595
119826
|
turnSerials.delete(id);
|
|
@@ -119612,7 +119843,6 @@ var init_turn_levels = __esm({
|
|
|
119612
119843
|
"use strict";
|
|
119613
119844
|
init_turn_marks();
|
|
119614
119845
|
init_session_key_registry();
|
|
119615
|
-
init_outsider_turns();
|
|
119616
119846
|
init_continuation_hold();
|
|
119617
119847
|
init_full_autonomy();
|
|
119618
119848
|
init_permission_semantics();
|
|
@@ -119785,10 +120015,7 @@ function permissionSeedForOrigin(origin) {
|
|
|
119785
120015
|
// The owner on the web, with the chat's stream open through the relay. A
|
|
119786
120016
|
// new chat is born at the operator's configured stop, as one started here
|
|
119787
120017
|
// is, so the chat is the same chat when its owner comes back to this
|
|
119788
|
-
// computer.
|
|
119789
|
-
// held to the runtime's default by the relay (`RELAY_TURN_CEILING`), so it
|
|
119790
|
-
// asks before anything that needs a person (spec `everything-is-a-space`
|
|
119791
|
-
// B2, the operator's option 2).
|
|
120018
|
+
// computer.
|
|
119792
120019
|
case "session-relay":
|
|
119793
120020
|
return "configured-stop";
|
|
119794
120021
|
// Nobody is watching a room turn either, and that is the reason it follows
|
|
@@ -119818,12 +120045,8 @@ function permissionSeedForOrigin(origin) {
|
|
|
119818
120045
|
// own: the turn runs at the stricter of the two. On insert only, so an
|
|
119819
120046
|
// existing chat a person set keeps what they chose. A person who later
|
|
119820
120047
|
// types into it gets the same stop a chat of their own starts at.
|
|
119821
|
-
//
|
|
119822
|
-
// A message from a MARKED turn seeds nothing (DOR-3107, Security): the
|
|
119823
|
-
// chat it opens never inherits the agent's own level from a turn a
|
|
119824
|
-
// stranger's words reached.
|
|
119825
120048
|
case "chat-message":
|
|
119826
|
-
return
|
|
120049
|
+
return "configured-stop-on-insert";
|
|
119827
120050
|
// Everything below seeds nothing, for two different reasons.
|
|
119828
120051
|
//
|
|
119829
120052
|
// A schedule's power is already decided and already stored, on the schedule
|
|
@@ -119868,14 +120091,9 @@ function permissionSeedForOrigin(origin) {
|
|
|
119868
120091
|
}
|
|
119869
120092
|
}
|
|
119870
120093
|
}
|
|
119871
|
-
function seedForTurn(sessionId, origin) {
|
|
119872
|
-
noteTurnOrigin(sessionId, origin);
|
|
119873
|
-
return permissionSeedForOrigin(origin);
|
|
119874
|
-
}
|
|
119875
120094
|
var init_turn_origin = __esm({
|
|
119876
120095
|
"../../apps/server/src/services/session/origin/turn-origin.ts"() {
|
|
119877
120096
|
"use strict";
|
|
119878
|
-
init_outsider_turns();
|
|
119879
120097
|
}
|
|
119880
120098
|
});
|
|
119881
120099
|
|
|
@@ -121325,16 +121543,6 @@ var init_existing_chats_raise = __esm({
|
|
|
121325
121543
|
}
|
|
121326
121544
|
});
|
|
121327
121545
|
|
|
121328
|
-
// ../../apps/server/src/services/core/permissions/chat-launch-marks.ts
|
|
121329
|
-
var init_chat_launch_marks = __esm({
|
|
121330
|
-
"../../apps/server/src/services/core/permissions/chat-launch-marks.ts"() {
|
|
121331
|
-
"use strict";
|
|
121332
|
-
init_src2();
|
|
121333
|
-
init_turn_marks();
|
|
121334
|
-
init_existing_chats_raise();
|
|
121335
|
-
}
|
|
121336
|
-
});
|
|
121337
|
-
|
|
121338
121546
|
// ../../apps/server/src/services/core/turn-power/chat-rise-facts.ts
|
|
121339
121547
|
function chatRiseFacts() {
|
|
121340
121548
|
return facts;
|
|
@@ -121344,10 +121552,7 @@ var init_chat_rise_facts = __esm({
|
|
|
121344
121552
|
"../../apps/server/src/services/core/turn-power/chat-rise-facts.ts"() {
|
|
121345
121553
|
"use strict";
|
|
121346
121554
|
init_src2();
|
|
121347
|
-
init_chat_launch_marks();
|
|
121348
121555
|
init_session_key_registry();
|
|
121349
|
-
init_outsider_turns();
|
|
121350
|
-
init_continuation_hold();
|
|
121351
121556
|
init_logger();
|
|
121352
121557
|
facts = null;
|
|
121353
121558
|
}
|
|
@@ -121410,10 +121615,7 @@ async function agentOfTurn(runtime, sessionId, opts, recordedAgentOf) {
|
|
|
121410
121615
|
}
|
|
121411
121616
|
function turnIsMarked(opts) {
|
|
121412
121617
|
const ceiling = opts?.permissionCeiling;
|
|
121413
|
-
|
|
121414
|
-
if (opts?.teammate === true || opts?.roomTurn?.teammate === true) return true;
|
|
121415
|
-
if (opts?.roomTurn?.outsiderInView === true) return true;
|
|
121416
|
-
return marksForTurn(opts).teammate !== void 0;
|
|
121618
|
+
return ceiling !== void 0 && ceilingHoldsForOutsider(ceiling);
|
|
121417
121619
|
}
|
|
121418
121620
|
function rises(runtime, sessionId, agentPath, stored, levelMode, opts) {
|
|
121419
121621
|
if (opts?.permissionMode !== void 0 || opts?.unattended === true) return false;
|
|
@@ -121519,7 +121721,6 @@ var init_agent_level_bound = __esm({
|
|
|
121519
121721
|
init_agent_launch_level();
|
|
121520
121722
|
init_existing_chats_raise();
|
|
121521
121723
|
init_chat_rise_facts();
|
|
121522
|
-
init_turn_marks();
|
|
121523
121724
|
init_logger();
|
|
121524
121725
|
COMPUTER_LOCAL_RUNTIME = "computer-local";
|
|
121525
121726
|
}
|
|
@@ -122372,7 +122573,7 @@ function toolFields(event) {
|
|
|
122372
122573
|
};
|
|
122373
122574
|
}
|
|
122374
122575
|
async function* recordDuring(runtime, sessionId, opts, source) {
|
|
122375
|
-
const
|
|
122576
|
+
const pending = /* @__PURE__ */ new Map();
|
|
122376
122577
|
const seen = /* @__PURE__ */ new Set();
|
|
122377
122578
|
let actor;
|
|
122378
122579
|
const actorOf = () => actor ??= toolActorOf(runtime.type, opts);
|
|
@@ -122415,15 +122616,15 @@ async function* recordDuring(runtime, sessionId, opts, source) {
|
|
|
122415
122616
|
seen.add(fields.id);
|
|
122416
122617
|
if (isFinished(sessionId, fields.id)) return;
|
|
122417
122618
|
const earlier = stillRunning.get(sessionId)?.get(fields.id);
|
|
122418
|
-
let call =
|
|
122619
|
+
let call = pending.get(fields.id);
|
|
122419
122620
|
if (!call && earlier) {
|
|
122420
122621
|
call = { name: earlier.name, input: earlier.input, inputDone: true };
|
|
122421
|
-
|
|
122622
|
+
pending.set(fields.id, call);
|
|
122422
122623
|
}
|
|
122423
122624
|
if (!call) {
|
|
122424
122625
|
if (!fields.name || isDorkosTool(runtime.type, fields.name)) return;
|
|
122425
122626
|
call = { name: fields.name, input: "", inputDone: false };
|
|
122426
|
-
|
|
122627
|
+
pending.set(fields.id, call);
|
|
122427
122628
|
}
|
|
122428
122629
|
if (event.type === "tool_call_end" || event.type !== "tool_call_delta" && fields.input !== void 0 && fields.input !== "") {
|
|
122429
122630
|
call.inputDone = true;
|
|
@@ -122432,7 +122633,7 @@ async function* recordDuring(runtime, sessionId, opts, source) {
|
|
|
122432
122633
|
call.input = event.type === "tool_call_delta" ? (call.input + fields.input).slice(0, MAX_INPUT) : fields.input.slice(0, MAX_INPUT);
|
|
122433
122634
|
}
|
|
122434
122635
|
if (fields.status === "complete" || fields.status === "error") {
|
|
122435
|
-
|
|
122636
|
+
pending.delete(fields.id);
|
|
122436
122637
|
const finishedCall = earlier ?? callOf(fields.id, call);
|
|
122437
122638
|
if (finishedCall) {
|
|
122438
122639
|
recordRuntimeToolCall(
|
|
@@ -122451,7 +122652,7 @@ async function* recordDuring(runtime, sessionId, opts, source) {
|
|
|
122451
122652
|
yield event;
|
|
122452
122653
|
}
|
|
122453
122654
|
} finally {
|
|
122454
|
-
for (const [toolCallId, call] of
|
|
122655
|
+
for (const [toolCallId, call] of pending) {
|
|
122455
122656
|
if (!call.inputDone) continue;
|
|
122456
122657
|
try {
|
|
122457
122658
|
const running2 = callOf(toolCallId, call);
|
|
@@ -122733,22 +122934,7 @@ var init_decorate_runtime = __esm({
|
|
|
122733
122934
|
}
|
|
122734
122935
|
});
|
|
122735
122936
|
|
|
122736
|
-
// ../../apps/server/src/services/core/runtime-
|
|
122737
|
-
function rowToSettings(row2) {
|
|
122738
|
-
const settings = {};
|
|
122739
|
-
if (row2.permissionMode != null) settings.permissionMode = row2.permissionMode;
|
|
122740
|
-
if (row2.model != null) settings.model = row2.model;
|
|
122741
|
-
if (row2.effort != null) {
|
|
122742
|
-
const effort = EffortLevelSchema.safeParse(row2.effort);
|
|
122743
|
-
if (effort.success) settings.effort = effort.data;
|
|
122744
|
-
else
|
|
122745
|
-
logger.warn("[RuntimeRegistry] ignoring an unreadable stored effort level", {
|
|
122746
|
-
stored: row2.effort
|
|
122747
|
-
});
|
|
122748
|
-
}
|
|
122749
|
-
if (row2.fastMode != null) settings.fastMode = row2.fastMode;
|
|
122750
|
-
return settings;
|
|
122751
|
-
}
|
|
122937
|
+
// ../../apps/server/src/services/core/runtime-seam/session-metadata-columns.ts
|
|
122752
122938
|
function pickSettings(settings) {
|
|
122753
122939
|
const patch = {};
|
|
122754
122940
|
if (settings.permissionMode !== void 0) patch.permissionMode = settings.permissionMode;
|
|
@@ -122765,6 +122951,37 @@ function fillNullsWith(seed) {
|
|
|
122765
122951
|
}
|
|
122766
122952
|
return update;
|
|
122767
122953
|
}
|
|
122954
|
+
function launchColumns(origin, claim2) {
|
|
122955
|
+
const launchedBy = origin.kind === "agent-launch" ? origin.launchedBy : void 0;
|
|
122956
|
+
if (!claim2) return { launchOrigin: origin.kind, ...launchedBy ? { launchedBy } : {} };
|
|
122957
|
+
return {
|
|
122958
|
+
launchOrigin: sql2`coalesce(${sessionMetadata.launchOrigin}, ${origin.kind})`,
|
|
122959
|
+
...launchedBy ? { launchedBy: sql2`coalesce(${sessionMetadata.launchedBy}, ${launchedBy})` } : {}
|
|
122960
|
+
};
|
|
122961
|
+
}
|
|
122962
|
+
var init_session_metadata_columns = __esm({
|
|
122963
|
+
"../../apps/server/src/services/core/runtime-seam/session-metadata-columns.ts"() {
|
|
122964
|
+
"use strict";
|
|
122965
|
+
init_src2();
|
|
122966
|
+
}
|
|
122967
|
+
});
|
|
122968
|
+
|
|
122969
|
+
// ../../apps/server/src/services/core/runtime-registry.ts
|
|
122970
|
+
function rowToSettings(row2) {
|
|
122971
|
+
const settings = {};
|
|
122972
|
+
if (row2.permissionMode != null) settings.permissionMode = row2.permissionMode;
|
|
122973
|
+
if (row2.model != null) settings.model = row2.model;
|
|
122974
|
+
if (row2.effort != null) {
|
|
122975
|
+
const effort = EffortLevelSchema.safeParse(row2.effort);
|
|
122976
|
+
if (effort.success) settings.effort = effort.data;
|
|
122977
|
+
else
|
|
122978
|
+
logger.warn("[RuntimeRegistry] ignoring an unreadable stored effort level", {
|
|
122979
|
+
stored: row2.effort
|
|
122980
|
+
});
|
|
122981
|
+
}
|
|
122982
|
+
if (row2.fastMode != null) settings.fastMode = row2.fastMode;
|
|
122983
|
+
return settings;
|
|
122984
|
+
}
|
|
122768
122985
|
function moveSessionContext(db2, fromId, toId) {
|
|
122769
122986
|
const source = db2.select().from(sessionContext).where(eq(sessionContext.sessionId, fromId)).get();
|
|
122770
122987
|
if (!source) return;
|
|
@@ -122799,6 +123016,7 @@ var init_runtime_registry = __esm({
|
|
|
122799
123016
|
init_session_started_by_store();
|
|
122800
123017
|
init_session_touch_store();
|
|
122801
123018
|
init_decorate_runtime();
|
|
123019
|
+
init_session_metadata_columns();
|
|
122802
123020
|
BOUND_RUNTIME_CHUNK_SIZE = 500;
|
|
122803
123021
|
RuntimeNotRegisteredError = class extends Error {
|
|
122804
123022
|
constructor(runtime, sessionId) {
|
|
@@ -122916,7 +123134,7 @@ var init_runtime_registry = __esm({
|
|
|
122916
123134
|
async persistSessionRuntime(sessionId, runtime, origin, agentPath) {
|
|
122917
123135
|
const db2 = this.requireDb("persistSessionRuntime");
|
|
122918
123136
|
const agent = await readAgentExecutionDefaults(agentPath);
|
|
122919
|
-
const seedPolicy =
|
|
123137
|
+
const seedPolicy = permissionSeedForOrigin(origin);
|
|
122920
123138
|
const seed = this.seedForNewRow(runtime, { agent, seedPolicy });
|
|
122921
123139
|
const result2 = await db2.insert(sessionMetadata).values({
|
|
122922
123140
|
sessionId,
|
|
@@ -122925,7 +123143,7 @@ var init_runtime_registry = __esm({
|
|
|
122925
123143
|
// What started it, server-held and never overwritten: the fact that
|
|
122926
123144
|
// decides whether a limited session may carry its work to another
|
|
122927
123145
|
// account (spec `claude-account-fleet` D9).
|
|
122928
|
-
|
|
123146
|
+
...launchColumns(origin),
|
|
122929
123147
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
122930
123148
|
...seed
|
|
122931
123149
|
}).onConflictDoUpdate({
|
|
@@ -122938,7 +123156,7 @@ var init_runtime_registry = __esm({
|
|
|
122938
123156
|
...agentPath !== void 0 ? { agentPath } : {},
|
|
122939
123157
|
...fillNullsWith(seed),
|
|
122940
123158
|
// The claim names what started the session only when nothing has yet.
|
|
122941
|
-
|
|
123159
|
+
...launchColumns(origin, "claim"),
|
|
122942
123160
|
// **The UPDATE branch is a CLAIM, and not every origin may seed one.**
|
|
122943
123161
|
// This row already exists: something created it before the session
|
|
122944
123162
|
// started, which for a person is their own pre-launch settings change
|
|
@@ -123525,6 +123743,7 @@ var init_runtime_registry = __esm({
|
|
|
123525
123743
|
fastMode: destination.fastMode ?? source.fastMode,
|
|
123526
123744
|
agentPath: destination.agentPath ?? source.agentPath,
|
|
123527
123745
|
launchOrigin: destination.launchOrigin ?? source.launchOrigin,
|
|
123746
|
+
launchedBy: destination.launchedBy ?? source.launchedBy,
|
|
123528
123747
|
lastAutoResumeFor: destination.lastAutoResumeFor ?? source.lastAutoResumeFor
|
|
123529
123748
|
}).where(eq(sessionMetadata.sessionId, toId)).run();
|
|
123530
123749
|
});
|
|
@@ -124254,9 +124473,13 @@ var init_safe_git = __esm({
|
|
|
124254
124473
|
"blame\\.ignorerevsfile",
|
|
124255
124474
|
"rerere\\.enabled",
|
|
124256
124475
|
"lfs\\.repositoryformatversion",
|
|
124257
|
-
|
|
124258
|
-
|
|
124259
|
-
|
|
124476
|
+
// Named keys only, never a whole section: `gc.recentObjectsHook` is a
|
|
124477
|
+
// shell command gc runs, and a commit or fetch can start gc by itself
|
|
124478
|
+
// (DOR-3667). `gtr.*` is read by git-worktree-runner, never by git; its
|
|
124479
|
+
// hook and editor keys name programs, so they are left out too.
|
|
124480
|
+
"gtr\\.(?:worktrees\\.(?:dir|prefix)|defaults\\.branch|copy\\.(?:include|exclude|includedirs|excludedirs))",
|
|
124481
|
+
"gc\\.(?:auto|autopacklimit|autodetach|aggressivedepth|aggressivewindow|bigpackthreshold|cruftpacks|maxcruftsize|logexpiry|packrefs|pruneexpire|worktreepruneexpire|reflogexpire|reflogexpireunreachable|rerereresolved|rerereunresolved|writecommitgraph)",
|
|
124482
|
+
"maintenance\\.(?:auto|autodetach|strategy|(?:gc|commit-graph|prefetch|loose-objects|incremental-repack|pack-refs|reflog-expire|worktree-prune|rerere-gc)\\.(?:enabled|schedule|auto)|loose-objects\\.batchsize)",
|
|
124260
124483
|
"fetch\\.(?:prune|writecommitgraph)",
|
|
124261
124484
|
"pull\\.rebase",
|
|
124262
124485
|
"user\\.(?:name|email)"
|
|
@@ -124857,18 +125080,18 @@ var init_project_registry = __esm({
|
|
|
124857
125080
|
*/
|
|
124858
125081
|
async withSlot(extensionId, root, name2) {
|
|
124859
125082
|
if (this.reporters.get(root)?.has(extensionId)) return name2();
|
|
124860
|
-
let
|
|
124861
|
-
if (
|
|
124862
|
-
if (this.namedBy(extensionId) + (
|
|
125083
|
+
let pending = this.reserved.get(extensionId);
|
|
125084
|
+
if (pending?.has(root)) return name2();
|
|
125085
|
+
if (this.namedBy(extensionId) + (pending?.size ?? 0) >= MAX_REPORTED_ROOTS_PER_EXTENSION) {
|
|
124863
125086
|
return null;
|
|
124864
125087
|
}
|
|
124865
|
-
if (!
|
|
124866
|
-
|
|
125088
|
+
if (!pending) this.reserved.set(extensionId, pending = /* @__PURE__ */ new Set());
|
|
125089
|
+
pending.add(root);
|
|
124867
125090
|
try {
|
|
124868
125091
|
return await name2();
|
|
124869
125092
|
} finally {
|
|
124870
|
-
|
|
124871
|
-
if (
|
|
125093
|
+
pending.delete(root);
|
|
125094
|
+
if (pending.size === 0) this.reserved.delete(extensionId);
|
|
124872
125095
|
}
|
|
124873
125096
|
}
|
|
124874
125097
|
/**
|
|
@@ -133822,7 +134045,9 @@ call.
|
|
|
133822
134045
|
the repository is refused. Copy the real content in and commit that instead;
|
|
133823
134046
|
when the source changes, copy it again.
|
|
133824
134047
|
- **This room does not have files of its own**: most rooms are conversations.
|
|
133825
|
-
There is nothing to merge into
|
|
134048
|
+
There is nothing to merge into. If this room's work needs shared files, use the
|
|
134049
|
+
tool whose name ends in \`set_up_room_files\`: you don't need to ask anyone, and
|
|
134050
|
+
your copy appears on your next turn. Otherwise answer in the room instead.
|
|
133826
134051
|
|
|
133827
134052
|
## Your own code
|
|
133828
134053
|
|
|
@@ -133862,7 +134087,7 @@ var init_using_the_agent_browser = __esm({
|
|
|
133862
134087
|
init_tool_name_note();
|
|
133863
134088
|
usingTheAgentBrowser = {
|
|
133864
134089
|
name: "using-the-agent-browser",
|
|
133865
|
-
description: "Use when you browse a website that needs a sign-in, when a page you opened asks you to sign in, or when the user mentions the signed-in browser or the agent browser. Covers what your browser starts signed in to, why you never type or ask for a password, what to
|
|
134090
|
+
description: "Use when you browse a website that needs a sign-in, when a page you opened asks you to sign in, or when the user mentions the signed-in browser or the agent browser. Covers what your browser starts signed in to, why you never type or ask for a password, what to do when a browser tool fails or a sign-in is missing, and how to check which sites are saved.",
|
|
133866
134091
|
body: `# Using the agent browser
|
|
133867
134092
|
|
|
133868
134093
|
${TOOL_NAME_NOTE}
|
|
@@ -133882,6 +134107,10 @@ Two sets of tools can both end in \`browser_navigate\`, \`browser_click\` and so
|
|
|
133882
134107
|
- **DorkOS's own browser tools** (\`browser_navigate\`, \`browser_read_page\`,
|
|
133883
134108
|
\`browser_read_console\` and the rest, on the DorkOS server) drive the browser
|
|
133884
134109
|
a person can watch in the app. It is NOT signed in to anything.
|
|
134110
|
+
- **The shared browser** (\`local_browser_state\`, \`local_browser_observe\`,
|
|
134111
|
+
\`local_browser_act\`, \`local_browser_screenshot\`) drives a real browser page
|
|
134112
|
+
a person shared with this chat. They sign in there themselves. Only a person
|
|
134113
|
+
can open it: Browser, in the right panel's + menu.
|
|
133885
134114
|
|
|
133886
134115
|
## What you get
|
|
133887
134116
|
|
|
@@ -133911,17 +134140,27 @@ Two sets of tools can both end in \`browser_navigate\`, \`browser_click\` and so
|
|
|
133911
134140
|
The site is not saved, or its sign-in ran out. Stop and say so, in one message:
|
|
133912
134141
|
|
|
133913
134142
|
1. Name the site you need.
|
|
133914
|
-
2. Ask the person to
|
|
133915
|
-
and
|
|
133916
|
-
3.
|
|
133917
|
-
since your current browser started before the new sign-in.
|
|
134143
|
+
2. Ask the person to share a browser page with this chat (Browser, in the right
|
|
134144
|
+
panel's + menu) and sign in there.
|
|
134145
|
+
3. Carry on in that page with your shared-browser tools.
|
|
133918
134146
|
|
|
133919
|
-
|
|
133920
|
-
and
|
|
134147
|
+
Never send the person to a terminal. Only they can sign in, and the app is where
|
|
134148
|
+
they do it. \`dorkos browser login <site>\` also exists, and may not be installed
|
|
134149
|
+
on their computer, so name it only if they ask for a command-line way.
|
|
133921
134150
|
|
|
133922
134151
|
Do not save a sign-in from inside your own browser. It is thrown away when the
|
|
133923
134152
|
browser closes, and it would be a login made without the operator watching.
|
|
133924
134153
|
|
|
134154
|
+
## When a browser tool fails
|
|
134155
|
+
|
|
134156
|
+
Say so in plain words, in one message: what you tried and what you need. Then
|
|
134157
|
+
offer the shared browser, as above. A site that blocks you, a browser that will
|
|
134158
|
+
not start and a tool you don't have all get the same answer. Don't hand the person
|
|
134159
|
+
commands to run, and don't try to install or start a browser yourself.
|
|
134160
|
+
|
|
134161
|
+
If nobody is there to share a page (a schedule or a heartbeat), say the work is
|
|
134162
|
+
stuck and why, and stop.
|
|
134163
|
+
|
|
133925
134164
|
## Checking what is saved
|
|
133926
134165
|
|
|
133927
134166
|
Your DorkOS context tells you (an \`<agent_browser>\` note) when your browser has
|
|
@@ -134009,6 +134248,10 @@ the person, or paused at an account limit, its last message arrives in your
|
|
|
134009
134248
|
chat as a report. If you are idle, the report starts a turn for you. It does
|
|
134010
134249
|
not report when a turn ends only to wait.
|
|
134011
134250
|
|
|
134251
|
+
Started from a room, the report comes to your chat in that room as a turn
|
|
134252
|
+
only you see. Nobody else in the room reads it. Post there only if the room
|
|
134253
|
+
needs to know.
|
|
134254
|
+
|
|
134012
134255
|
So after you start one, end your turn. Do not poll it.
|
|
134013
134256
|
|
|
134014
134257
|
## Check on one
|
|
@@ -138440,7 +138683,9 @@ function fileFingerprint(abs) {
|
|
|
138440
138683
|
}
|
|
138441
138684
|
if (stat6.isDirectory()) return "dir";
|
|
138442
138685
|
if (!stat6.isFile()) return "unreadable";
|
|
138443
|
-
if (stat6.size > MAX_HASHED_BYTES)
|
|
138686
|
+
if (stat6.size > MAX_HASHED_BYTES) {
|
|
138687
|
+
return `large:${stat6.size}:${stat6.mtimeMs}:${stat6.ctimeMs}:${stat6.ino}`;
|
|
138688
|
+
}
|
|
138444
138689
|
try {
|
|
138445
138690
|
return createHash7("sha256").update(readFileSync22(abs)).digest("hex");
|
|
138446
138691
|
} catch {
|
|
@@ -138792,7 +139037,7 @@ __export(project_with_consent_exports, {
|
|
|
138792
139037
|
withProjectLock: () => withProjectLock,
|
|
138793
139038
|
withProvenInstalls: () => withProvenInstalls
|
|
138794
139039
|
});
|
|
138795
|
-
import { AsyncLocalStorage as
|
|
139040
|
+
import { AsyncLocalStorage as AsyncLocalStorage5 } from "node:async_hooks";
|
|
138796
139041
|
import { realpathSync as realpathSync14 } from "node:fs";
|
|
138797
139042
|
import { join as join49, resolve as resolve9 } from "node:path";
|
|
138798
139043
|
function projectLockKey(projectPath) {
|
|
@@ -139019,13 +139264,13 @@ var init_project_with_consent = __esm({
|
|
|
139019
139264
|
};
|
|
139020
139265
|
projectLocks = /* @__PURE__ */ new Map();
|
|
139021
139266
|
projectLockQueue = /* @__PURE__ */ new Map();
|
|
139022
|
-
heldByCaller = new
|
|
139267
|
+
heldByCaller = new AsyncLocalStorage5();
|
|
139023
139268
|
reportedAtFull = /* @__PURE__ */ new Set();
|
|
139024
139269
|
}
|
|
139025
139270
|
});
|
|
139026
139271
|
|
|
139027
139272
|
// ../shared/src/atomic-write.ts
|
|
139028
|
-
import { AsyncLocalStorage as
|
|
139273
|
+
import { AsyncLocalStorage as AsyncLocalStorage6 } from "node:async_hooks";
|
|
139029
139274
|
import { randomUUID as randomUUID3 } from "node:crypto";
|
|
139030
139275
|
import { chmod, mkdir as mkdir4, rename as rename2, rm, writeFile as writeFile3 } from "node:fs/promises";
|
|
139031
139276
|
import { basename as basename8, dirname as dirname13, join as join50, resolve as resolve10 } from "node:path";
|
|
@@ -139077,7 +139322,7 @@ var pathLocks, heldLocks;
|
|
|
139077
139322
|
var init_atomic_write2 = __esm({
|
|
139078
139323
|
"../shared/src/atomic-write.ts"() {
|
|
139079
139324
|
pathLocks = /* @__PURE__ */ new Map();
|
|
139080
|
-
heldLocks = new
|
|
139325
|
+
heldLocks = new AsyncLocalStorage6();
|
|
139081
139326
|
}
|
|
139082
139327
|
});
|
|
139083
139328
|
|
|
@@ -145737,17 +145982,17 @@ function launchChromeWithPipe(executable, args, spawnChrome = defaultSpawn) {
|
|
|
145737
145982
|
}
|
|
145738
145983
|
let nextId = 0;
|
|
145739
145984
|
let exitedFlag = false;
|
|
145740
|
-
const
|
|
145985
|
+
const pending = /* @__PURE__ */ new Map();
|
|
145741
145986
|
const listeners = /* @__PURE__ */ new Set();
|
|
145742
145987
|
const exited = new Promise((resolve14) => {
|
|
145743
145988
|
const finish = (code, signal) => {
|
|
145744
145989
|
if (exitedFlag) return;
|
|
145745
145990
|
exitedFlag = true;
|
|
145746
|
-
for (const waiter of
|
|
145991
|
+
for (const waiter of pending.values()) {
|
|
145747
145992
|
clearTimeout(waiter.timer);
|
|
145748
145993
|
waiter.reject(new ChromeExitedError());
|
|
145749
145994
|
}
|
|
145750
|
-
|
|
145995
|
+
pending.clear();
|
|
145751
145996
|
resolve14({ code, signal });
|
|
145752
145997
|
};
|
|
145753
145998
|
child.once("exit", finish);
|
|
@@ -145771,9 +146016,9 @@ function launchChromeWithPipe(executable, args, spawnChrome = defaultSpawn) {
|
|
|
145771
146016
|
continue;
|
|
145772
146017
|
}
|
|
145773
146018
|
if (typeof message2.id === "number") {
|
|
145774
|
-
const waiter =
|
|
146019
|
+
const waiter = pending.get(message2.id);
|
|
145775
146020
|
if (!waiter) continue;
|
|
145776
|
-
|
|
146021
|
+
pending.delete(message2.id);
|
|
145777
146022
|
clearTimeout(waiter.timer);
|
|
145778
146023
|
if (message2.error) waiter.reject(new Error(message2.error.message ?? "Chrome refused."));
|
|
145779
146024
|
else waiter.resolve(message2.result ?? {});
|
|
@@ -145792,10 +146037,10 @@ function launchChromeWithPipe(executable, args, spawnChrome = defaultSpawn) {
|
|
|
145792
146037
|
const id = ++nextId;
|
|
145793
146038
|
return new Promise((resolve14, reject) => {
|
|
145794
146039
|
const timer = setTimeout(() => {
|
|
145795
|
-
|
|
146040
|
+
pending.delete(id);
|
|
145796
146041
|
reject(new Error(`Chrome did not answer ${method} in time.`));
|
|
145797
146042
|
}, timeoutMs);
|
|
145798
|
-
|
|
146043
|
+
pending.set(id, { resolve: resolve14, reject, timer });
|
|
145799
146044
|
toChrome.write(
|
|
145800
146045
|
`${JSON.stringify({ id, method, params, ...sessionId ? { sessionId } : {} })}\0`
|
|
145801
146046
|
);
|
|
@@ -145973,7 +146218,9 @@ var init_profile2 = __esm({
|
|
|
145973
146218
|
|
|
145974
146219
|
// ../shared/src/cloud-origin.ts
|
|
145975
146220
|
function normalizeHost2(host) {
|
|
145976
|
-
|
|
146221
|
+
let end = host.length;
|
|
146222
|
+
while (end > 0 && host[end - 1] === ".") end -= 1;
|
|
146223
|
+
return host.slice(0, end).toLowerCase();
|
|
145977
146224
|
}
|
|
145978
146225
|
function entryFor(url2) {
|
|
145979
146226
|
let parsed;
|
|
@@ -146790,9 +147037,9 @@ function formatVersion(version4, source) {
|
|
|
146790
147037
|
}
|
|
146791
147038
|
function formatUpdateLine(check4) {
|
|
146792
147039
|
const installed = formatVersion(check4.installedVersion, check4.installedVersionSource);
|
|
146793
|
-
const
|
|
147040
|
+
const latest = formatVersion(check4.latestVersion, check4.latestVersionSource);
|
|
146794
147041
|
const from = check4.marketplace ? ` (${check4.marketplace})` : "";
|
|
146795
|
-
return `${labelOf(check4)} ${installed} \u2192 ${
|
|
147042
|
+
return `${labelOf(check4)} ${installed} \u2192 ${latest}${from}`;
|
|
146796
147043
|
}
|
|
146797
147044
|
var init_installation_label = __esm({
|
|
146798
147045
|
"src/lib/installation-label.ts"() {
|
|
@@ -150688,7 +150935,7 @@ async function unsetFlyTigrisSecrets(options, appName) {
|
|
|
150688
150935
|
}
|
|
150689
150936
|
function verifyFlyDeployment(inventory, previousReleases, expectedRepository, expectedDigest) {
|
|
150690
150937
|
const latestRelease = inventory.releases.reduce(
|
|
150691
|
-
(
|
|
150938
|
+
(latest, release) => !latest || release.version > latest.version ? release : latest,
|
|
150692
150939
|
void 0
|
|
150693
150940
|
);
|
|
150694
150941
|
const releaseIsNew = latestRelease !== void 0 && !previousReleases.some(
|
|
@@ -150701,7 +150948,7 @@ function verifyFlyDeployment(inventory, previousReleases, expectedRepository, ex
|
|
|
150701
150948
|
}
|
|
150702
150949
|
function isInterruptedFlyDeployment(inventory, expectedRepository, expectedDigest) {
|
|
150703
150950
|
const latestRelease = inventory.releases.reduce(
|
|
150704
|
-
(
|
|
150951
|
+
(latest, release) => !latest || release.version > latest.version ? release : latest,
|
|
150705
150952
|
void 0
|
|
150706
150953
|
);
|
|
150707
150954
|
const machine = inventory.machines[0];
|
|
@@ -150709,7 +150956,7 @@ function isInterruptedFlyDeployment(inventory, expectedRepository, expectedDiges
|
|
|
150709
150956
|
}
|
|
150710
150957
|
function verifyExistingFlyDeployment(inventory, expectedRepository, expectedDigest) {
|
|
150711
150958
|
const latestRelease = inventory.releases.reduce(
|
|
150712
|
-
(
|
|
150959
|
+
(latest, release) => !latest || release.version > latest.version ? release : latest,
|
|
150713
150960
|
void 0
|
|
150714
150961
|
);
|
|
150715
150962
|
if (inventory.machines.length !== 1 || inventory.machines[0]?.state !== "started" || inventory.machines[0]?.imageRepository !== expectedRepository || inventory.machines[0]?.imageDigest !== expectedDigest || inventory.machines[0]?.checks.length === 0 || inventory.machines[0]?.checks.some((check4) => check4.status !== "passing") || latestRelease?.status !== "complete" || latestRelease.imageRef !== `${expectedRepository}@${expectedDigest}` || inventory.addresses.length === 0) {
|
|
@@ -152642,7 +152889,7 @@ async function waitForFlyMachineLeases(options) {
|
|
|
152642
152889
|
}
|
|
152643
152890
|
}
|
|
152644
152891
|
async function latestLeaseEnd(options) {
|
|
152645
|
-
let
|
|
152892
|
+
let latest;
|
|
152646
152893
|
for (const machineId of options.machineIds) {
|
|
152647
152894
|
let lease;
|
|
152648
152895
|
try {
|
|
@@ -152653,10 +152900,10 @@ async function latestLeaseEnd(options) {
|
|
|
152653
152900
|
}
|
|
152654
152901
|
if (!lease) continue;
|
|
152655
152902
|
if (lease.expiresAtMs !== null && lease.expiresAtMs <= options.now()) continue;
|
|
152656
|
-
if (lease.expiresAtMs === null ||
|
|
152657
|
-
else
|
|
152903
|
+
if (lease.expiresAtMs === null || latest === null) latest = null;
|
|
152904
|
+
else latest = latest === void 0 ? lease.expiresAtMs : Math.max(latest, lease.expiresAtMs);
|
|
152658
152905
|
}
|
|
152659
|
-
return
|
|
152906
|
+
return latest;
|
|
152660
152907
|
}
|
|
152661
152908
|
async function heldLeaseMinutes(options) {
|
|
152662
152909
|
const ends = await latestLeaseEnd({
|
|
@@ -153752,7 +153999,7 @@ function provesFreshStage(inventory, baseline) {
|
|
|
153752
153999
|
function runtimeEvidence(inventory) {
|
|
153753
154000
|
const machine = inventory.machines[0];
|
|
153754
154001
|
const release = inventory.releases.reduce(
|
|
153755
|
-
(
|
|
154002
|
+
(latest, value) => !latest || value.version > latest.version ? value : latest,
|
|
153756
154003
|
void 0
|
|
153757
154004
|
);
|
|
153758
154005
|
const address = inventory.addresses[0];
|
|
@@ -155571,8 +155818,8 @@ function formatCommunityRecovery(journal) {
|
|
|
155571
155818
|
Console: https://fly.io/apps/${selection.appName}
|
|
155572
155819
|
Access key: usually ${tigrisAccessKeyName(selection.bucketName)} in Tigris. Removing the bucket does not remove this key; it keeps working until you remove it in Tigris.` : ` Tigris bucket ${journal.resources.tigrisBucketId} \u2014 saved owner unavailable; may incur charges; private files may exist.` : null
|
|
155573
155820
|
].filter((row2) => row2 !== null);
|
|
155574
|
-
const
|
|
155575
|
-
const tigrisKeysMissing =
|
|
155821
|
+
const pending = journal.pendingIntent;
|
|
155822
|
+
const tigrisKeysMissing = pending?.provider === "tigris" && journal.resources.tigrisBucketId !== void 0 && journal.lastSafeError?.code === "MISSING_TIGRIS_SECRETS";
|
|
155576
155823
|
const reconciliation = tigrisKeysMissing ? selection ? [
|
|
155577
155824
|
`Tigris bucket ${selection.bucketName} exists, but its access keys are not on app ${selection.appName}, and Fly would not return them again. Keep this bucket; setup must not create another.`,
|
|
155578
155825
|
`1. Open the bucket's Tigris console: fly storage dashboard ${selection.bucketName} --app ${selection.appName}`,
|
|
@@ -155581,12 +155828,12 @@ function formatCommunityRecovery(journal) {
|
|
|
155581
155828
|
" then type two lines, AWS_ACCESS_KEY_ID=<key id> and AWS_SECRET_ACCESS_KEY=<secret>, and press Ctrl-D.",
|
|
155582
155829
|
" (Typing them keeps the secret out of your shell history.)",
|
|
155583
155830
|
"4. Resume with the command below."
|
|
155584
|
-
].join("\n") : `Tigris bucket ${journal.resources.tigrisBucketId} exists, but its access keys are not on the app. Add AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY with fly secrets import --stage, then resume.` :
|
|
155585
|
-
Console: https://fly.io/dashboard/${
|
|
155586
|
-
Console: https://console.neon.tech` : `Unresolved Tigris creation intent for ${
|
|
155587
|
-
Console: https://fly.io/dashboard/${
|
|
155831
|
+
].join("\n") : `Tigris bucket ${journal.resources.tigrisBucketId} exists, but its access keys are not on the app. Add AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY with fly secrets import --stage, then resume.` : pending ? pending.provider === "fly" ? `Unresolved Fly creation intent for ${pending.resourceName} in ${pending.organizationId}. Do not create or adopt a name match. Inspect: fly apps list --org ${pending.organizationId} --json
|
|
155832
|
+
Console: https://fly.io/dashboard/${pending.organizationId}` : pending.provider === "neon" ? `Unresolved Neon creation intent for ${pending.resourceName} in ${pending.organizationId}. Do not create or adopt a name match. Inspect: neonctl projects list --org-id ${pending.organizationId} --output json
|
|
155833
|
+
Console: https://console.neon.tech` : `Unresolved Tigris creation intent for ${pending.resourceName} in ${pending.organizationId}. Do not create or adopt a name match. Inspect: fly storage list --org ${pending.organizationId}
|
|
155834
|
+
Console: https://fly.io/dashboard/${pending.organizationId}` : null;
|
|
155588
155835
|
const command = resumeCommand(journal);
|
|
155589
|
-
const noRecordedId =
|
|
155836
|
+
const noRecordedId = pending !== null && !journal.resources[pending.provider === "fly" ? "flyAppId" : pending.provider === "neon" ? "neonProjectId" : "tigrisBucketId"];
|
|
155590
155837
|
const nextStep = journal.pendingRemoval ? [
|
|
155591
155838
|
"Next: finish the removal that is in progress with:",
|
|
155592
155839
|
` dorkos community deploy --remove-uncertain ${journal.runId}`
|
|
@@ -155740,7 +155987,7 @@ async function runCommunityDispatcher(args, context2) {
|
|
|
155740
155987
|
`This run stopped while creating a ${SERVICE_LABEL[unresolved.intent.provider]}, and DorkOS has not checked whether it landed. Check it first, and the run can continue: dorkos community deploy --remove-uncertain ${resumeJournal.runId}`
|
|
155741
155988
|
);
|
|
155742
155989
|
}
|
|
155743
|
-
let
|
|
155990
|
+
let latest = resumeJournal;
|
|
155744
155991
|
let selection;
|
|
155745
155992
|
try {
|
|
155746
155993
|
const appName = required2(parsed.values["app-name"], "--app-name");
|
|
@@ -155756,9 +156003,9 @@ async function runCommunityDispatcher(args, context2) {
|
|
|
155756
156003
|
bucketName: parsed.values["bucket-name"] ?? appName
|
|
155757
156004
|
};
|
|
155758
156005
|
} catch (error63) {
|
|
155759
|
-
if (
|
|
156006
|
+
if (latest) {
|
|
155760
156007
|
process.stderr.write(`Space setup stopped.
|
|
155761
|
-
${formatCommunityRecovery(
|
|
156008
|
+
${formatCommunityRecovery(latest)}
|
|
155762
156009
|
`);
|
|
155763
156010
|
}
|
|
155764
156011
|
throw error63;
|
|
@@ -155851,7 +156098,7 @@ Journal: ${journalPath}
|
|
|
155851
156098
|
if (parsed.values.resume) {
|
|
155852
156099
|
const existing = resumeJournal;
|
|
155853
156100
|
assertCommunityLaunchPlanUnchanged(existing, result2.plan);
|
|
155854
|
-
|
|
156101
|
+
latest = existing;
|
|
155855
156102
|
}
|
|
155856
156103
|
await confirmOwnerClipboardWrite(
|
|
155857
156104
|
localEnv,
|
|
@@ -155860,28 +156107,28 @@ Journal: ${journalPath}
|
|
|
155860
156107
|
cancellation.signal
|
|
155861
156108
|
);
|
|
155862
156109
|
if (!parsed.values.resume) {
|
|
155863
|
-
|
|
156110
|
+
latest = createInitialCommunityLaunchJournal(
|
|
155864
156111
|
runId,
|
|
155865
156112
|
result2.plan,
|
|
155866
156113
|
(/* @__PURE__ */ new Date()).toISOString()
|
|
155867
156114
|
);
|
|
155868
|
-
await initializeLaunchJournal(journalPath,
|
|
156115
|
+
await initializeLaunchJournal(journalPath, latest);
|
|
155869
156116
|
}
|
|
155870
|
-
if (!
|
|
156117
|
+
if (!latest) throw new Error("Space server launch journal was not initialized");
|
|
155871
156118
|
const persist3 = async (next, expectedRevision) => {
|
|
155872
156119
|
await writeLaunchJournal(journalPath, next, expectedRevision);
|
|
155873
|
-
|
|
156120
|
+
latest = next;
|
|
155874
156121
|
};
|
|
155875
156122
|
process.stdout.write(
|
|
155876
156123
|
"Provisioning Fly, Neon, and private Tigris resources. Progress is saved after each verified identity.\n"
|
|
155877
156124
|
);
|
|
155878
|
-
|
|
156125
|
+
latest = await executeCommunityCreationPhase(
|
|
155879
156126
|
result2.plan,
|
|
155880
|
-
|
|
156127
|
+
latest,
|
|
155881
156128
|
createDefaultCommunityCreationDependencies({
|
|
155882
156129
|
options: serviceOptions,
|
|
155883
156130
|
plan: result2.plan,
|
|
155884
|
-
latestJournal: () =>
|
|
156131
|
+
latestJournal: () => latest,
|
|
155885
156132
|
persist: persist3,
|
|
155886
156133
|
now: () => (/* @__PURE__ */ new Date()).toISOString(),
|
|
155887
156134
|
progress: (service) => process.stdout.write(`Checking ${service} resource identity\u2026
|
|
@@ -155898,21 +156145,21 @@ Journal: ${journalPath}
|
|
|
155898
156145
|
);
|
|
155899
156146
|
const deployed = await executeCommunityDeployPhase(
|
|
155900
156147
|
result2.plan,
|
|
155901
|
-
|
|
156148
|
+
latest,
|
|
155902
156149
|
createDefaultCommunityDeployDependencies({
|
|
155903
156150
|
options: serviceOptions,
|
|
155904
156151
|
plan: result2.plan,
|
|
155905
|
-
latestJournal: () =>
|
|
156152
|
+
latestJournal: () => latest,
|
|
155906
156153
|
persist: persist3,
|
|
155907
156154
|
now: () => (/* @__PURE__ */ new Date()).toISOString(),
|
|
155908
156155
|
resolvePlatformDigest: platformDigest
|
|
155909
156156
|
})
|
|
155910
156157
|
);
|
|
155911
|
-
|
|
156158
|
+
latest = deployed.journal;
|
|
155912
156159
|
process.stdout.write("Verifying the owner handoff and final deployment health\u2026\n");
|
|
155913
|
-
|
|
156160
|
+
latest = await executeCommunityOwnerHandoff(
|
|
155914
156161
|
result2.plan,
|
|
155915
|
-
|
|
156162
|
+
latest,
|
|
155916
156163
|
deployed.bootstrapSecret,
|
|
155917
156164
|
createDefaultCommunityOwnerDependencies({
|
|
155918
156165
|
options: serviceOptions,
|
|
@@ -155921,13 +156168,13 @@ Journal: ${journalPath}
|
|
|
155921
156168
|
persist: persist3,
|
|
155922
156169
|
now: () => (/* @__PURE__ */ new Date()).toISOString(),
|
|
155923
156170
|
signal: cancellation.signal,
|
|
155924
|
-
platformDigest: async () =>
|
|
156171
|
+
platformDigest: async () => latest?.imagePlatformDigest ?? platformDigest()
|
|
155925
156172
|
})
|
|
155926
156173
|
);
|
|
155927
156174
|
process.stdout.write(
|
|
155928
|
-
|
|
156175
|
+
latest.state === "complete" ? `${formatCommunityCompletion(`https://${result2.plan.fly.appName}.fly.dev`)}
|
|
155929
156176
|
` : `Space setup is waiting for owner completion.
|
|
155930
|
-
${formatCommunityRecovery(
|
|
156177
|
+
${formatCommunityRecovery(latest)}
|
|
155931
156178
|
`
|
|
155932
156179
|
);
|
|
155933
156180
|
}
|
|
@@ -155935,33 +156182,33 @@ ${formatCommunityRecovery(latest2)}
|
|
|
155935
156182
|
);
|
|
155936
156183
|
return 0;
|
|
155937
156184
|
} catch (error63) {
|
|
155938
|
-
if (
|
|
155939
|
-
const uncertain =
|
|
156185
|
+
if (latest && cancellation.signal.aborted && !latest.pendingRemoval) {
|
|
156186
|
+
const uncertain = latest.pendingIntent !== null || latest.state === "uncertain";
|
|
155940
156187
|
const cancelled = {
|
|
155941
|
-
...
|
|
155942
|
-
revision:
|
|
155943
|
-
state: uncertain ? "uncertain" :
|
|
156188
|
+
...latest,
|
|
156189
|
+
revision: latest.revision + 1,
|
|
156190
|
+
state: uncertain ? "uncertain" : latest.state,
|
|
155944
156191
|
lastSafeError: uncertain ? { category: "uncertain", code: "CREATION_OUTCOME_UNCERTAIN" } : { category: "transient", code: "CANCELLED" },
|
|
155945
156192
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
155946
156193
|
};
|
|
155947
|
-
await writeLaunchJournal(journalPath, cancelled,
|
|
155948
|
-
|
|
156194
|
+
await writeLaunchJournal(journalPath, cancelled, latest.revision).catch(() => void 0);
|
|
156195
|
+
latest = cancelled;
|
|
155949
156196
|
}
|
|
155950
|
-
const failed =
|
|
155951
|
-
if (
|
|
155952
|
-
const previous =
|
|
156197
|
+
const failed = latest && !cancellation.signal.aborted && !(error63 instanceof CommunityCreationRefusedError) ? recordLaunchFailure(latest, error63, (/* @__PURE__ */ new Date()).toISOString()) : null;
|
|
156198
|
+
if (latest && failed) {
|
|
156199
|
+
const previous = latest;
|
|
155953
156200
|
await writeLaunchJournal(journalPath, failed, previous.revision).catch(() => void 0);
|
|
155954
|
-
|
|
156201
|
+
latest = failed;
|
|
155955
156202
|
}
|
|
155956
|
-
if (error63 instanceof CommunityCreationRefusedError &&
|
|
155957
|
-
await stopForRefusedCreate(error63,
|
|
156203
|
+
if (error63 instanceof CommunityCreationRefusedError && latest) {
|
|
156204
|
+
await stopForRefusedCreate(error63, latest, journalPath, childEnv, formatCommunityRecovery);
|
|
155958
156205
|
}
|
|
155959
|
-
if (
|
|
156206
|
+
if (latest) {
|
|
155960
156207
|
process.stderr.write(`Space setup stopped.
|
|
155961
|
-
${formatCommunityRecovery(
|
|
156208
|
+
${formatCommunityRecovery(latest)}
|
|
155962
156209
|
`);
|
|
155963
|
-
if (cancellation.signal.aborted && !
|
|
155964
|
-
process.stderr.write(`${describeStoppedLaunch(
|
|
156210
|
+
if (cancellation.signal.aborted && !latest.pendingRemoval) {
|
|
156211
|
+
process.stderr.write(`${describeStoppedLaunch(latest)}
|
|
155965
156212
|
`);
|
|
155966
156213
|
return stopExitCode(stopSignal);
|
|
155967
156214
|
}
|
|
@@ -160416,7 +160663,7 @@ var init_internal_adapter = __esm({
|
|
|
160416
160663
|
field: "identifier",
|
|
160417
160664
|
value: id
|
|
160418
160665
|
}];
|
|
160419
|
-
const
|
|
160666
|
+
const latest = (await txAdapter.findMany({
|
|
160420
160667
|
model: "verification",
|
|
160421
160668
|
where,
|
|
160422
160669
|
sortBy: {
|
|
@@ -160425,16 +160672,16 @@ var init_internal_adapter = __esm({
|
|
|
160425
160672
|
},
|
|
160426
160673
|
limit: 1
|
|
160427
160674
|
}))[0] ?? null;
|
|
160428
|
-
if (!
|
|
160675
|
+
if (!latest) return null;
|
|
160429
160676
|
return consumeOneWithHooks("verification", [{
|
|
160430
160677
|
field: "id",
|
|
160431
|
-
value:
|
|
160678
|
+
value: latest.id
|
|
160432
160679
|
}], async () => {
|
|
160433
160680
|
const row2 = await txAdapter.consumeOne({
|
|
160434
160681
|
model: "verification",
|
|
160435
160682
|
where: [{
|
|
160436
160683
|
field: "id",
|
|
160437
|
-
value:
|
|
160684
|
+
value: latest.id
|
|
160438
160685
|
}]
|
|
160439
160686
|
});
|
|
160440
160687
|
if (!row2) return null;
|
|
@@ -160443,7 +160690,7 @@ var init_internal_adapter = __esm({
|
|
|
160443
160690
|
where
|
|
160444
160691
|
});
|
|
160445
160692
|
return row2;
|
|
160446
|
-
},
|
|
160693
|
+
}, latest);
|
|
160447
160694
|
}));
|
|
160448
160695
|
for (const stored of identifiersToTry) {
|
|
160449
160696
|
consumed = await consumeByIdentifier(stored);
|
|
@@ -174680,7 +174927,6 @@ var init_connection_copy = __esm({
|
|
|
174680
174927
|
var CONNECTOR_OPERATION_SELECTION_LIMIT, CONNECTOR_AUTHENTICATION_FLOW_TTL_MS, CONNECTOR_EVENT_REVIEW_SCOPE_LIMIT, ConnectorJsonValueSchema, ConnectorJsonObjectSchema, ConnectorProviderInstanceIdSchema, ConnectionIdSchema, ConnectorExternalAccountRefSchema, ConnectorProviderModeSchema, ConnectorProviderHealthSchema, ConnectorGrantReconciliationStatusSchema, ConnectorOperationClassificationSchema, ConnectorAccessLevelSchema, ConnectorRetryPolicySchema, ConnectorOperationRevisionSchema, ConnectorOperationPageSchema, ConnectorCapabilityAvailabilitySchema, ConnectorUnsupportedResultSchema, ConnectorProviderCapabilitySetSchema, ConnectorToolkitVersionResultSchema, ConnectorProviderExecuteResultSchema, ConnectorAuthenticationFlowSchema, ConnectorExecutionTargetSchema, ConnectorProgramExecutionRequestSchema, ConnectorExecutionPublicResultSchema, ConnectorExecutionResponseSchema, ConnectionReadinessStateSchema, ConnectionReadinessReasonSchema, ConnectionFixActionSchema, ConnectionFixSchema, ConnectionReadinessSchema, AccessibleConnectorConnectionSchema, AccessibleConnectorOperationSchema, ConnectorAccessibleConnectionsResponseSchema, ConnectorAccessibleOperationsResponseSchema, ConnectorUsageItemSchema, ConnectorUsagePageSchema, ConnectorReconciliationPreviewRequestSchema, ConnectorReconciliationGrantSelectionSchema, ConnectorReconciliationEveryAgentSelectionSchema, ConnectorReconciliationEveryAgentStateSchema, ConnectorEveryAgentRevokeResponseSchema, ConnectorReconciliationAgentSchema, ConnectorReconciliationCandidateSchema, ConnectorReconciliationPreviewSchema, ConnectorReconciliationApplyRequestSchema, ConnectorReconciliationApplyResponseSchema, ReviewActionBaseSchema, ConnectionTargetSchema, ConnectorRequestAccessSchema, ConnectorReviewActionSchema, ConnectorAgentConnectionRequestInputSchema, ConnectorAgentRequestBaseSchema, ConnectorRequestNotGrantedSchema, ConnectorAgentRequestStatusSchema, ConnectorAgentRequestItemSchema, ConnectorAgentRequestListResponseSchema, ConnectorManagementConnectActionSchema, ConnectorManagementAppliedActionSchema, ConnectorManagementReviewActionSchema, ConnectorManagementReviewCreateRequestSchema, ConnectorManagementReviewOutcomeSchema, ConnectorManagementReviewOperationContextSchema, ConnectorManagementReviewConnectionContextSchema, ConnectorManagementReviewAgentContextSchema, ConnectorManagementReviewContextSchema, ManagementReviewItemBaseShape, ConnectorPendingManagementReviewItemSchema, ConnectorResolvingManagementReviewItemSchema, ConnectorExpiredManagementReviewItemSchema, ConnectorDeniedManagementReviewItemSchema, ConnectorApprovedAppliedManagementReviewItemSchema, ConnectorApprovedConnectManagementReviewItemSchema, ConnectorApprovedUnknownManagementReviewItemSchema, ConnectorManagementReviewItemSchema, ProgramReviewStatusBaseShape, ConnectorProgramReviewStatusSchema, ConnectorManagementReviewDecisionSchema, ConnectorManagementReviewDecisionResultSchema;
|
|
174681
174928
|
var init_connector_schemas = __esm({
|
|
174682
174929
|
"../connector-providers/src/connector-schemas.ts"() {
|
|
174683
|
-
"use strict";
|
|
174684
174930
|
init_zod();
|
|
174685
174931
|
init_connection_copy();
|
|
174686
174932
|
CONNECTOR_OPERATION_SELECTION_LIMIT = 1e5;
|
|
@@ -177971,14 +178217,14 @@ function suggestedFilename(disposition, roomId) {
|
|
|
177971
178217
|
}
|
|
177972
178218
|
async function streamExport(body, destination, closeDestination) {
|
|
177973
178219
|
const decoder2 = new TextDecoder();
|
|
177974
|
-
let
|
|
178220
|
+
let pending = "";
|
|
177975
178221
|
let lastLine = "";
|
|
177976
178222
|
const watched = async function* watch() {
|
|
177977
178223
|
for await (const chunk of Readable.fromWeb(body)) {
|
|
177978
178224
|
const bytes = chunk;
|
|
177979
|
-
|
|
177980
|
-
const parts =
|
|
177981
|
-
|
|
178225
|
+
pending += decoder2.decode(bytes, { stream: true });
|
|
178226
|
+
const parts = pending.split("\n");
|
|
178227
|
+
pending = parts.pop() ?? "";
|
|
177982
178228
|
for (const part of parts) if (part.trim()) lastLine = part;
|
|
177983
178229
|
yield bytes;
|
|
177984
178230
|
}
|
|
@@ -177990,7 +178236,7 @@ async function streamExport(body, destination, closeDestination) {
|
|
|
177990
178236
|
reason = err instanceof Error ? err.message : String(err);
|
|
177991
178237
|
}
|
|
177992
178238
|
try {
|
|
177993
|
-
const trailing =
|
|
178239
|
+
const trailing = pending.trim() || lastLine;
|
|
177994
178240
|
const parsed = JSON.parse(trailing);
|
|
177995
178241
|
if (parsed.type === "summary" && typeof parsed.entryCount === "number") {
|
|
177996
178242
|
if (reason === null) return { entryCount: parsed.entryCount, reason: null };
|
|
@@ -180510,6 +180756,7 @@ var MAX_FEEDBACK_SESSION_ID_LEN = 128;
|
|
|
180510
180756
|
var MAX_FEEDBACK_SCREENSHOT_DATA_URL_LEN = 85e4;
|
|
180511
180757
|
var MAX_REPORTER_NAME_LEN = 128;
|
|
180512
180758
|
var MAX_TRANSCRIPT_LEN = 2e4;
|
|
180759
|
+
var MAX_FEEDBACK_ROOM_ID_LEN = 128;
|
|
180513
180760
|
var MAX_LOG_EXCERPT_LEN = 8e3;
|
|
180514
180761
|
var MAX_BREADCRUMBS = 50;
|
|
180515
180762
|
var MAX_BREADCRUMB_MESSAGE_LEN = 300;
|
|
@@ -180630,6 +180877,8 @@ var FeedbackSubmissionSchema = external_exports.object({
|
|
|
180630
180877
|
contact: external_exports.string().min(1).max(MAX_FEEDBACK_CONTACT_LEN).optional(),
|
|
180631
180878
|
route: external_exports.string().min(1).max(MAX_FEEDBACK_ROUTE_LEN).optional(),
|
|
180632
180879
|
sessionId: external_exports.string().min(1).max(MAX_FEEDBACK_SESSION_ID_LEN).optional(),
|
|
180880
|
+
roomId: external_exports.string().min(1).max(MAX_FEEDBACK_ROOM_ID_LEN).optional(),
|
|
180881
|
+
roomThroughSeq: external_exports.number().int().min(1).optional(),
|
|
180633
180882
|
diagnostics: FeedbackDiagnosticsSchema.optional(),
|
|
180634
180883
|
transcriptExcerpt: external_exports.string().max(MAX_TRANSCRIPT_LEN).optional(),
|
|
180635
180884
|
screenshot: FeedbackScreenshotSchema.optional(),
|
|
@@ -180898,7 +181147,7 @@ if (process.argv[2] === "community") {
|
|
|
180898
181147
|
);
|
|
180899
181148
|
Object.assign(childEnv, credentialEnv.pickCommunityCredentialEnv(rawProcessEnv));
|
|
180900
181149
|
const exitCode = await dispatcher.runCommunityDispatcher(process.argv.slice(3), {
|
|
180901
|
-
cliVersion: "0.
|
|
181150
|
+
cliVersion: "0.130.0",
|
|
180902
181151
|
dorkHome: DORK_HOME,
|
|
180903
181152
|
processEnv: childEnv,
|
|
180904
181153
|
parseRelease: (bytes) => releaseContract.parseCompatibleCommunityReleaseManifest(
|
|
@@ -180906,7 +181155,7 @@ if (process.argv[2] === "community") {
|
|
|
180906
181155
|
{
|
|
180907
181156
|
platform: { os: "linux", architecture: "amd64" },
|
|
180908
181157
|
configSchemaVersion: releaseContract.COMMUNITY_CONFIG_SCHEMA_VERSION,
|
|
180909
|
-
migrationCompatibilityId: "sha256:
|
|
181158
|
+
migrationCompatibilityId: "sha256:58cd9b9199646a5a3dff5317d98138fd846b48aa00e874fe0beadc2ed039073b"
|
|
180910
181159
|
}
|
|
180911
181160
|
)
|
|
180912
181161
|
});
|
|
@@ -180916,7 +181165,7 @@ if (process.argv[2] === "community") {
|
|
|
180916
181165
|
process.exit(1);
|
|
180917
181166
|
}
|
|
180918
181167
|
}
|
|
180919
|
-
var cliErrorReporter = initCliErrorReporting({ dorkHome: DORK_HOME, version: "0.
|
|
181168
|
+
var cliErrorReporter = initCliErrorReporting({ dorkHome: DORK_HOME, version: "0.130.0" });
|
|
180920
181169
|
var uninstallCliErrorHandlers = cliErrorReporter ? installCliErrorHandlers(cliErrorReporter) : void 0;
|
|
180921
181170
|
if (process.argv[2] === "doctor") {
|
|
180922
181171
|
process.env.DORK_HOME = DORK_HOME;
|
|
@@ -180926,7 +181175,7 @@ if (process.argv[2] === "doctor") {
|
|
|
180926
181175
|
if (process.argv[2] === "feedback") {
|
|
180927
181176
|
process.env.DORK_HOME = DORK_HOME;
|
|
180928
181177
|
const { runFeedback: runFeedback2 } = await Promise.resolve().then(() => (init_feedback2(), feedback_exports));
|
|
180929
|
-
process.exit(await runFeedback2(DORK_HOME, "0.
|
|
181178
|
+
process.exit(await runFeedback2(DORK_HOME, "0.130.0", process.argv.slice(3)));
|
|
180930
181179
|
}
|
|
180931
181180
|
if (process.argv[2] === "auth") {
|
|
180932
181181
|
process.env.DORK_HOME = DORK_HOME;
|
|
@@ -181025,7 +181274,7 @@ if (process.argv[2] === "agent" || process.argv[2] === "task" || process.argv[2]
|
|
|
181025
181274
|
}
|
|
181026
181275
|
}
|
|
181027
181276
|
const { runVersionDispatcher: runVersionDispatcher2 } = await Promise.resolve().then(() => (init_version5(), version_exports));
|
|
181028
|
-
process.exit(await runVersionDispatcher2("0.
|
|
181277
|
+
process.exit(await runVersionDispatcher2("0.130.0", DORK_HOME, subArgs));
|
|
181029
181278
|
}
|
|
181030
181279
|
var { values, positionals } = parseCliArgs();
|
|
181031
181280
|
if (positionals[0] && !knownCommands.has(positionals[0])) {
|
|
@@ -181119,14 +181368,14 @@ Examples:
|
|
|
181119
181368
|
process.exit(0);
|
|
181120
181369
|
}
|
|
181121
181370
|
if (values.version) {
|
|
181122
|
-
console.log("0.
|
|
181371
|
+
console.log("0.130.0");
|
|
181123
181372
|
process.exit(0);
|
|
181124
181373
|
}
|
|
181125
181374
|
if (values["post-install-check"]) {
|
|
181126
181375
|
const claudeFound = checkClaude();
|
|
181127
181376
|
const coreExtensionsFound = checkCoreExtensions();
|
|
181128
181377
|
const extensionsCompile = await checkExtensionCompilation();
|
|
181129
|
-
console.log(`dorkos ${"0.
|
|
181378
|
+
console.log(`dorkos ${"0.130.0"}`);
|
|
181130
181379
|
if (!coreExtensionsFound) {
|
|
181131
181380
|
console.log("Installation incomplete \u2014 bundled core extensions are missing.");
|
|
181132
181381
|
}
|
|
@@ -181273,7 +181522,7 @@ if (fs42.existsSync(envPath)) {
|
|
|
181273
181522
|
dotenv.config({ path: envPath, override: false });
|
|
181274
181523
|
}
|
|
181275
181524
|
uninstallCliErrorHandlers?.();
|
|
181276
|
-
stampCliLaunch(process.env, fileURLToPath7(import.meta.url), "0.
|
|
181525
|
+
stampCliLaunch(process.env, fileURLToPath7(import.meta.url), "0.130.0");
|
|
181277
181526
|
var server;
|
|
181278
181527
|
try {
|
|
181279
181528
|
server = await import("../server/index.js");
|
|
@@ -181298,7 +181547,7 @@ var ansiReset = "\x1B[0m";
|
|
|
181298
181547
|
console.log("");
|
|
181299
181548
|
console.log(`${purple}${logo}${ansiReset}`);
|
|
181300
181549
|
console.log("");
|
|
181301
|
-
console.log(` DorkOS v${"0.
|
|
181550
|
+
console.log(` DorkOS v${"0.130.0"}`);
|
|
181302
181551
|
console.log(` Local: ${link(localUrl, localUrl)}`);
|
|
181303
181552
|
var nets = networkInterfaces();
|
|
181304
181553
|
var networkUrl = null;
|
|
@@ -181324,9 +181573,9 @@ if (shouldOpenBrowser && process.stdin.isTTY) {
|
|
|
181324
181573
|
const openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
181325
181574
|
exec(`${openCmd} ${localUrl}`);
|
|
181326
181575
|
}
|
|
181327
|
-
checkForUpdate("0.
|
|
181576
|
+
checkForUpdate("0.130.0").then((latestVersion) => {
|
|
181328
181577
|
if (latestVersion) {
|
|
181329
|
-
const msg = `Update available: ${"0.
|
|
181578
|
+
const msg = `Update available: ${"0.130.0"} \u2192 ${latestVersion}`;
|
|
181330
181579
|
const cmd = "Run npm install -g dorkos@latest to update";
|
|
181331
181580
|
const width = Math.max(msg.length, cmd.length) + 6;
|
|
181332
181581
|
const pad2 = (s2) => `\u2502 ${s2}${" ".repeat(width - s2.length - 6)} \u2502`;
|