dorkos 0.129.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 +694 -513
- package/dist/browser/native/package-manifest.json +1 -1
- package/dist/browser/source-manifest.json +1 -1
- package/dist/client/assets/{AboutPage-CML_SdU1.js → AboutPage-B2CzVj5W.js} +1 -1
- package/dist/client/assets/{ActivityErrorState-TuQRJopr.js → ActivityErrorState-Dl-P-e0R.js} +1 -1
- package/dist/client/assets/{ActivityPage-CmSxeVSK.js → ActivityPage-CW7tqLHb.js} +1 -1
- package/dist/client/assets/{ActivityRow-DJhDehIR.js → ActivityRow-Vy4aXWk-.js} +1 -1
- package/dist/client/assets/{AdapterIcon-CeRDpZGz.js → AdapterIcon-aabKVZmM.js} +1 -1
- package/dist/client/assets/{AdapterSetupWizard-B6KkTuJo.js → AdapterSetupWizard-C5Hs0xkG.js} +2 -2
- package/dist/client/assets/{AgentOptionRow-388OJkPc.js → AgentOptionRow-CqIMxq9S.js} +1 -1
- package/dist/client/assets/{AgentPicker-C51wqToQ.js → AgentPicker-C6mbTDJJ.js} +1 -1
- package/dist/client/assets/{AgentRequestCard-Bz31ewIs.js → AgentRequestCard-C8GV5Sxn.js} +3 -3
- package/dist/client/assets/{AppearancePage-DSVeowGb.js → AppearancePage-C0JKrHsO.js} +1 -1
- package/dist/client/assets/{ApplyToOverridesDialog-DRtcLrVY.js → ApplyToOverridesDialog-DWEi0MNt.js} +1 -1
- package/dist/client/assets/{AttentionSignalRow-CqKZyoxB.js → AttentionSignalRow-Cpu0lKYg.js} +1 -1
- package/dist/client/assets/{BaseTanStackRouterDevtoolsPanel-B-iktbLX-DA1jhqFy.js → BaseTanStackRouterDevtoolsPanel-B-iktbLX-_zVrHu5s.js} +1 -1
- package/dist/client/assets/{BindingDialog-D25PAed0.js → BindingDialog-4UeaJfUu.js} +1 -1
- package/dist/client/assets/BlintzCanvas-DCXIQZM_.js +1231 -0
- package/dist/client/assets/{CanvasCsvContent-ZWHWmb88.js → CanvasCsvContent-D-0TuvVs.js} +1 -1
- package/dist/client/assets/{CanvasFileContent-DR5pUgca.js → CanvasFileContent-DqSx7lz9.js} +2 -2
- package/dist/client/assets/{CanvasModel3dContent-OP1ZOMui.js → CanvasModel3dContent-zTx660yQ.js} +2 -2
- package/dist/client/assets/ChannelComposer-D4TYVkvO.js +45 -0
- package/dist/client/assets/{ChatAppsOff-ByitL4Xt.js → ChatAppsOff-BzfyQc55.js} +1 -1
- package/dist/client/assets/{CodeMirrorDiff-JsV_vWBa.js → CodeMirrorDiff-BLWBYGLp.js} +1 -1
- package/dist/client/assets/{CodeMirrorEditor-BfCJG9hQ.js → CodeMirrorEditor-D0q3ETxK.js} +1 -1
- package/dist/client/assets/{CommitmentList-yFV3_m00.js → CommitmentList-BoMiLsRe.js} +1 -1
- package/dist/client/assets/{CommitmentsPage-DeERVg-2.js → CommitmentsPage-_7mNJVUZ.js} +1 -1
- package/dist/client/assets/{ComputerResourceView-CYMMSE8Y.js → ComputerResourceView-Bo2LaCJf.js} +1 -1
- package/dist/client/assets/{ComputerViewer-H7kJSIj7.js → ComputerViewer-a4VSdAw_.js} +1 -1
- package/dist/client/assets/{ConnectionAccessLists-SRkf7-Y6.js → ConnectionAccessLists-Dvv0YO31.js} +1 -1
- package/dist/client/assets/{ConnectionsPage-D6e3hd4L.js → ConnectionsPage-oO8pNgbc.js} +2 -2
- package/dist/client/assets/{ConventionPage-CpvRMcSG.js → ConventionPage-CFJjwhBd.js} +2 -2
- package/dist/client/assets/{ExtensionPageRoute-CiFv6we8.js → ExtensionPageRoute-BqZN9q7M.js} +2 -2
- package/dist/client/assets/{FloatingTanStackRouterDevtools-CqogiFob-D-8CeYC7.js → FloatingTanStackRouterDevtools-CqogiFob-CnSp2ZEM.js} +1 -1
- package/dist/client/assets/{ForwardConsentHost-ml3b_fsX.js → ForwardConsentHost-4LhRvCdu.js} +1 -1
- package/dist/client/assets/HandlePage-BjoYPqme.js +1 -0
- package/dist/client/assets/{HeartbeatPage-C0zSvWH4.js → HeartbeatPage-rJzICayy.js} +1 -1
- package/dist/client/assets/{KeyEntry-Dq6eKAbX.js → KeyEntry-BTTuXleL.js} +1 -1
- package/dist/client/assets/{LexicalField-CYOqOLpV.js → LexicalField-Dk_SDrjk.js} +1 -1
- package/dist/client/assets/{ManagesPage-DZTMD3Al.js → ManagesPage-Cvu3CQDn.js} +1 -1
- package/dist/client/assets/{Marketplace-buSfuVrY.js → Marketplace-DPjPPlZz.js} +2 -2
- package/dist/client/assets/{MarketplaceSourcesView-BxwvBWgh.js → MarketplaceSourcesView-ChCys0on.js} +1 -1
- package/dist/client/assets/{McpAppFrame-CWiRFp8o.js → McpAppFrame-DNamtzOp.js} +2 -2
- package/dist/client/assets/{McpSigninBody-BpYSAV1h.js → McpSigninBody-DLw3ZdZE.js} +1 -1
- package/dist/client/assets/{Model3dViewer-B2KTvx6d.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-CWXIghVM.js → NotificationsPage-aCF0AtqL.js} +1 -1
- package/dist/client/assets/{OpenMeshSwitch-C9hiAEHP.js → OpenMeshSwitch-DjCWF2Vy.js} +2 -2
- package/dist/client/assets/{OperatorIdentityForm-CjmMoP6n.js → OperatorIdentityForm-Bcveds6f.js} +1 -1
- package/dist/client/assets/{PermissionHistory-D_Imuq02.js → PermissionHistory-CYsxFYmV.js} +1 -1
- package/dist/client/assets/{PermissionsPage-QMLV8PfB.js → PermissionsPage-sxHkY92V.js} +1 -1
- package/dist/client/assets/{PersonalityPopover-BL9DLK0Q.js → PersonalityPopover-BZ20JTnJ.js} +1 -1
- package/dist/client/assets/PhotoPage-KBzkb0sT.js +1 -0
- package/dist/client/assets/{PreviewRefusedNotice-Dt2hV0aJ.js → PreviewRefusedNotice-BFQPYcUG.js} +1 -1
- package/dist/client/assets/{ProfileFields-DD6X85w2.js → ProfileFields-sp17IFo8.js} +1 -1
- package/dist/client/assets/{ProfilePanelContainer-DuFEpNJ3.js → ProfilePanelContainer-mA44jh5A.js} +1 -1
- package/dist/client/assets/{ProfileRolePicker-CT9eJ1J0.js → ProfileRolePicker-Chh4_ZMB.js} +1 -1
- package/dist/client/assets/{PromptSuggestionChips-C8V611-5.js → PromptSuggestionChips-CEi_-fHF.js} +1 -1
- package/dist/client/assets/{ReportsToPopover-Bs55bP7b.js → ReportsToPopover-D1uknwnk.js} +1 -1
- package/dist/client/assets/RoomSurface-Clf1yLrr.js +1 -0
- package/dist/client/assets/{RoomsPage-CDiSwt-I.js → RoomsPage-BtCNzvhQ.js} +1 -1
- package/dist/client/assets/{RunsOnPopover-CFBDa9DO.js → RunsOnPopover-LCvBpe9J.js} +1 -1
- package/dist/client/assets/{RuntimeConnectFlow-DsawxJN7.js → RuntimeConnectFlow-C5UDeHUC.js} +1 -1
- package/dist/client/assets/{RuntimeSetupDialog-bdf844gx.js → RuntimeSetupDialog-Bqh67Vqb.js} +1 -1
- package/dist/client/assets/{SeenDevices-Cix5nnGQ.js → SeenDevices-DvCfdeDo.js} +3 -3
- package/dist/client/assets/{SessionsPage-CCu8rM-J.js → SessionsPage-DLByE-re.js} +1 -1
- package/dist/client/assets/{SettingsDialog-D7sVluoe.js → SettingsDialog-Co-Oxtyw.js} +3 -3
- package/dist/client/assets/{SkillsPage-SSq7ofgp.js → SkillsPage-Cc79IstM.js} +1 -1
- package/dist/client/assets/{TaskDialogWrapper-CBIuIbmj.js → TaskDialogWrapper-DuYV7Zch.js} +1 -1
- package/dist/client/assets/{TasksEmptyState-C0K_NOA3.js → TasksEmptyState-CfmPtBra.js} +2 -2
- package/dist/client/assets/{TasksPage-BpSn7GmR.js → TasksPage-DGk0zUhO.js} +1 -1
- package/dist/client/assets/{TeamComputerEntry-BAi9omUC.js → TeamComputerEntry-CLHbeX5i.js} +1 -1
- package/dist/client/assets/{ToolsPage-nkGWy6MR.js → ToolsPage-CSkDE7rZ.js} +2 -2
- package/dist/client/assets/{TopologyGraph-D6SSv0kC.js → TopologyGraph-pBC37k5P.js} +1 -1
- package/dist/client/assets/{TourHost-CrZciWIf.js → TourHost-CS9RsLj_.js} +1 -1
- package/dist/client/assets/{UnlinkDialog-B9zw8r6F.js → UnlinkDialog-CelhOUZ0.js} +1 -1
- package/dist/client/assets/{UnreadDivider-BnJ06LmP.js → UnreadDivider-B_OMR0mQ.js} +1 -1
- package/dist/client/assets/{WidgetErrorCard-CQKYI7oK.js → WidgetErrorCard-CsMqCyCb.js} +9 -9
- package/dist/client/assets/{WithheldExtensionsNotice-VMM5NjL5.js → WithheldExtensionsNotice-GiKb0iQu.js} +1 -1
- package/dist/client/assets/WorkQueuePage-Cu721KyM.js +1 -0
- package/dist/client/assets/{WorkView-D5d8DDxS.js → WorkView-CpWEaxMr.js} +1 -1
- package/dist/client/assets/_shell-CmGG8Ysk.js +80 -0
- package/dist/client/assets/{_shell._home-CcfELPIk.js → _shell._home-BnKkAeSp.js} +1 -1
- package/dist/client/assets/{_shell._home.activity-CGKsuLq8.js → _shell._home.activity-DaaLJbvO.js} +1 -1
- package/dist/client/assets/{_shell._home.index-DrJRgJCb.js → _shell._home.index-CNPasFxP.js} +2 -2
- package/dist/client/assets/_shell._home.tasks-DXEOJ5Nq.js +1 -0
- package/dist/client/assets/{_shell._home.workspaces-CjBJymCW.js → _shell._home.workspaces-UeSvmquR.js} +1 -1
- package/dist/client/assets/{_shell.channels-CzQFR6pU.js → _shell.channels-NUbf5mcb.js} +1 -1
- package/dist/client/assets/{_shell.connections-B5hafeep.js → _shell.connections-BEns4DKb.js} +1 -1
- package/dist/client/assets/{_shell.feedback-requests-DtD2bH-4.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-BrGo-IxK.js → _shell.team-CXeOt4XD.js} +4 -4
- package/dist/client/assets/{_shell.threads-Ceq_tmNk.js → _shell.threads-BYdN1UtZ.js} +1 -1
- 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-BN5bqwbu.js → abnfDiagram-WEYOIA3C-BLCVDt6M.js} +1 -1
- package/dist/client/assets/{access-copy-BAhTOOsG.js → access-copy-BSQ3QECN.js} +1 -1
- package/dist/client/assets/{arc-BfTE_VoF.js → arc-t4OhsI5R.js} +1 -1
- package/dist/client/assets/{architectureDiagram-ZHVYKT53-Dc6keeDz.js → architectureDiagram-ZHVYKT53-BcIfbGZR.js} +1 -1
- package/dist/client/assets/{banner-DOgGDCJ5.js → banner-B6xfuDA7.js} +1 -1
- package/dist/client/assets/{blockDiagram-RJAE7QA3-B4c6U-ob.js → blockDiagram-RJAE7QA3-DTOlrcEZ.js} +1 -1
- package/dist/client/assets/{c4Diagram-XDPPPE54-CCtD8QC8.js → c4Diagram-XDPPPE54-CHGqwaxa.js} +1 -1
- package/dist/client/assets/channel-CSk6LhO2.js +1 -0
- package/dist/client/assets/{chunk-2E7WHVMD-DcDNqIJG.js → chunk-2E7WHVMD-Bh4L_7yX.js} +1 -1
- package/dist/client/assets/{chunk-2Q5K7J3B-DOVVK0B8.js → chunk-2Q5K7J3B-BmouLl8r.js} +1 -1
- package/dist/client/assets/{chunk-4EMNKR2T-Cg-Do982.js → chunk-4EMNKR2T-BVhtiAdG.js} +1 -1
- package/dist/client/assets/{chunk-55XCU76K-CDmULSeY.js → chunk-55XCU76K-BdbLnE56.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-Bi0yIWW1.js → chunk-5VM5RSS4-Qg9lQpPO.js} +1 -1
- package/dist/client/assets/{chunk-JWPE2WC7-ZHaJh6CV.js → chunk-JWPE2WC7-CfIrQaMW.js} +1 -1
- package/dist/client/assets/{chunk-VQ5W62QI-DZi6GyW_.js → chunk-VQ5W62QI-BP9oQzc0.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-D18oZOrd.js → chunk-XXDRQBXY-DKzIjnsB.js} +1 -1
- package/dist/client/assets/{chunk-ZCHMQSOR-BkZ0l0fE.js → chunk-ZCHMQSOR-DsvG6BGY.js} +2 -2
- package/dist/client/assets/{classDiagram-v2-4MYWR3UA-BfmK1buF.js → classDiagram-v2-4MYWR3UA-BSiSmGgP.js} +1 -1
- package/dist/client/assets/{command-CZqA020F.js → command-B_FPXirc.js} +1 -1
- package/dist/client/assets/{copy-button-ByA00JGh.js → copy-button-Bp75zBSh.js} +1 -1
- package/dist/client/assets/{cose-bilkent-JH36ORCC-B1NTVSbk.js → cose-bilkent-JH36ORCC-CXgyrZix.js} +1 -1
- package/dist/client/assets/{cpu-DNvpMmNN.js → cpu-DpkNIYeK.js} +1 -1
- package/dist/client/assets/{cynefin-EF2NZ3EQ-CB_HMIZ8.js → cynefin-EF2NZ3EQ-DkmPO3hK.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-WF24UDRP-MmIWYdc2.js → cynefinDiagram-WF24UDRP-BDknJT17.js} +1 -1
- package/dist/client/assets/{dagre-NK4GIZVX-BQay0k4e.js → dagre-NK4GIZVX-BR4J5E3b.js} +1 -1
- package/dist/client/assets/{detail-row-290qyusq.js → detail-row-C8zz6mAC.js} +1 -1
- package/dist/client/assets/{diagram-CBK3MWTC-C1lRH4cb.js → diagram-CBK3MWTC-CvLKqPry.js} +1 -1
- package/dist/client/assets/{diagram-I5XIIV2D-CnANa27A.js → diagram-I5XIIV2D-CVtE60X9.js} +1 -1
- package/dist/client/assets/{diagram-ODIL2UCW-Cwt7hxes.js → diagram-ODIL2UCW-B--CpfLk.js} +1 -1
- package/dist/client/assets/{diagram-PFBEJUXE-DZtAER77.js → diagram-PFBEJUXE-08gch1t1.js} +1 -1
- package/dist/client/assets/{diagram-RJA3I4VV-CbVXbiGs.js → diagram-RJA3I4VV-C2e-ubaD.js} +1 -1
- package/dist/client/assets/{diagram-TYUNFSNR-D-AcGdsL.js → diagram-TYUNFSNR-DcpK4OXX.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-V4P3TTPT-DLkrFSAy.js → ebnfDiagram-V4P3TTPT-DM44BkBt.js} +1 -1
- package/dist/client/assets/{elk-QONTBCTQ-DQM6Glxa.js → elk-QONTBCTQ-maYS1Zzm.js} +1 -1
- package/dist/client/assets/{empty-state-BnuM8oop.js → empty-state-HtOTBAoq.js} +1 -1
- package/dist/client/assets/{erDiagram-KYQIGQAA-C1qgB1Mn.js → erDiagram-KYQIGQAA-BR7z9r2M.js} +1 -1
- package/dist/client/assets/{execution-config-BjLHHc9x.js → execution-config-DYYeJyJh.js} +1 -1
- package/dist/client/assets/{file-D7_QdH_S.js → file-VtGYNr9E.js} +1 -1
- package/dist/client/assets/{file-exclamation-point-Cdt8YqyQ.js → file-exclamation-point-eBlQssyW.js} +1 -1
- package/dist/client/assets/{file-text-CB9l6Ur-.js → file-text-DvNAxTGZ.js} +1 -1
- package/dist/client/assets/{find-latest-widget-fence-SQB9WgjN.js → find-latest-widget-fence-C2qXvASs.js} +3 -3
- package/dist/client/assets/{flowDiagram-IUGLLWBU-DH-ePeFu.js → flowDiagram-IUGLLWBU-DiuMtMbj.js} +1 -1
- package/dist/client/assets/{form--HjBAzX8.js → form-CGIIzr1u.js} +1 -1
- package/dist/client/assets/{format-cron-svkfKW5b.js → format-cron-BzJ6ekoo.js} +1 -1
- package/dist/client/assets/{ganttDiagram-R7GPNTJY-fjb_iAW1.js → ganttDiagram-R7GPNTJY-Cf_z8Ri1.js} +1 -1
- package/dist/client/assets/{git-branch-CPOwiT8a.js → git-branch-BVzjBPW-.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PDYL7XHY-CcCqH5T3.js → gitGraphDiagram-PDYL7XHY-RZXACCBr.js} +1 -1
- package/dist/client/assets/{graph-DS3J2jnN.js → graph-DfAV_ObD.js} +1 -1
- package/dist/client/assets/{heart-C6uRnXx3.js → heart-BMOCYMFT.js} +1 -1
- package/dist/client/assets/{highlighted-body-KPVGNVTW-CNygKq0i.js → highlighted-body-KPVGNVTW-DrrsaKBc.js} +1 -1
- package/dist/client/assets/{image-lightbox-BQV3i0WJ.js → image-lightbox-tAwBNBhm.js} +1 -1
- package/dist/client/assets/{image-off-B88WBkcV.js → image-off-BpagBHk1.js} +1 -1
- package/dist/client/assets/{index-UJpgX--l.js → index-0uCJUW_h.js} +2 -2
- package/dist/client/assets/index-0y0K3rYv.js +1 -0
- package/dist/client/assets/{index-B_YZ5cyn.js → index-2GjydAcS.js} +1 -1
- package/dist/client/assets/{index-tRdq7FGO.js → index-6dsaPQ7-.js} +1 -1
- package/dist/client/assets/{index-DhqeMM58.js → index-7-yzdcAx.js} +3 -3
- package/dist/client/assets/{index-DXZ-w0Z9.js → index-A7HgzxSw.js} +1 -1
- package/dist/client/assets/{index-BTqJGL1_.js → index-BEqKTiCR.js} +1 -1
- package/dist/client/assets/{index-B_v2l2ND.js → index-BIN0yv4s.js} +1 -1
- package/dist/client/assets/{index-B6pmysqs.js → index-BL5Vmq62.js} +1 -1
- package/dist/client/assets/index-BOvFXsF_.js +1 -0
- package/dist/client/assets/{index-BtTqA4_d.js → index-BbcfxnHC.js} +1 -1
- package/dist/client/assets/{index-D0QV18E0.js → index-BdKIijqB.js} +1 -1
- package/dist/client/assets/{index-CZmU-67J.js → index-BfAymWoj.js} +1 -1
- package/dist/client/assets/{index-COXdXByr.js → index-Bgts5its.js} +1 -1
- package/dist/client/assets/{index-DYQjub9g.js → index-BiL3chP7.js} +1 -1
- package/dist/client/assets/{index-C7I0BjyX.js → index-Bu3PEVA_.js} +1 -1
- package/dist/client/assets/{index-BKdXHSbr.js → index-C6DTV4h3.js} +1 -1
- package/dist/client/assets/{index-DK8zHloW.js → index-CCH9c-nB.js} +1 -1
- package/dist/client/assets/{index-oc-yQ5Q4.js → index-CH4NJ8dD.js} +1 -1
- package/dist/client/assets/{index-BxsALYNM.js → index-CKGJp3Cm.js} +1 -1
- package/dist/client/assets/{index-BIZNH5u1.js → index-CeqI4FFw.js} +1 -1
- package/dist/client/assets/{index-Cbk19RQp.js → index-Cj9-XXKl.js} +1 -1
- package/dist/client/assets/{index-um-0KSur.js → index-Cu8tnfM_.js} +1 -1
- package/dist/client/assets/{index-B_rc9Pb1.js → index-D4OWRMsG.js} +1 -1
- package/dist/client/assets/{index-RQhQx8gq.js → index-D8SP73Xw.js} +1 -1
- package/dist/client/assets/{index-CEicS7Zi.js → index-DEJXVqcY.js} +1 -1
- package/dist/client/assets/{index-CTJA-mZu.js → index-DEMZynQt.js} +1 -1
- package/dist/client/assets/{index-5RD9flqf.js → index-DGzMwE1Z.js} +1 -1
- package/dist/client/assets/{index-CLTrC-a-.js → index-DIJdZqg2.js} +3 -3
- package/dist/client/assets/{index-Ds9wPt9M.js → index-DIRqrOEK.js} +1 -1
- package/dist/client/assets/{index-DBAPfYwE.js → index-DNbdGvs9.js} +1 -1
- package/dist/client/assets/{index-D5fV4hrl.js → index-DOBjxRe9.js} +1 -1
- package/dist/client/assets/{index-57qzL_5b.js → index-DcBlHsnC.js} +1 -1
- package/dist/client/assets/index-DdsaTuqO.js +1 -0
- package/dist/client/assets/{index-BN3zOTbR.js → index-Dt4H9Tms.js} +3 -3
- package/dist/client/assets/{index-BNq_mnok.js → index-HXC63Ry8.js} +1 -1
- package/dist/client/assets/index-MHIn2TC9.js +1063 -0
- package/dist/client/assets/{index-DdBvjuc4.js → index-OjJ_8uMM.js} +1 -1
- package/dist/client/assets/index-P4Wos1Gi.css +1 -0
- package/dist/client/assets/{index-Bktc0aFV.js → index-U5jTIqzv.js} +1 -1
- package/dist/client/assets/{index-CLVvKY2v.js → index-ZzPr9GUI.js} +1 -1
- package/dist/client/assets/{index-DO8NbOqk.js → index-d9cqTUAj.js} +1 -1
- package/dist/client/assets/{index-Cbbw2ByB.js → index-fcfCRITA.js} +1 -1
- package/dist/client/assets/{index-3CJSEcZE.js → index-onQlu3UR.js} +1 -1
- package/dist/client/assets/{index.esm-B10OaB6F.js → index.esm-DSKTDEoH.js} +1 -1
- package/dist/client/assets/{infoDiagram-MVDRKAX5-CGtvYWtj.js → infoDiagram-MVDRKAX5-B8dulOBe.js} +1 -1
- package/dist/client/assets/{inline-code-BL-6EKVP.js → inline-code-B3qpjdZ2.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-HPEHV2GE-ICsVVT2t.js → ishikawaDiagram-HPEHV2GE-Cy8aIg0O.js} +1 -1
- package/dist/client/assets/{journeyDiagram-BOSHW7O7-DEmSX2Hn.js → journeyDiagram-BOSHW7O7-BZAlejG3.js} +1 -1
- package/dist/client/assets/{kanban-definition-FNSA4HC5-SAV5PQOr.js → kanban-definition-FNSA4HC5-BxS1edpe.js} +1 -1
- package/dist/client/assets/{layers-Bfdpn7ZM.js → layers-ByCM7XO5.js} +1 -1
- package/dist/client/assets/{lightbulb-CSPTiZoi.js → lightbulb-KjW8YTXH.js} +1 -1
- package/dist/client/assets/{link-2-ZzmN9B9k.js → link-2-CtFfuMO5.js} +1 -1
- package/dist/client/assets/{list-runtime-types-7qV7HQ7K.js → list-runtime-types-DrzHejZo.js} +1 -1
- package/dist/client/assets/{markdown-content-CiDXslQf.js → markdown-content-DgiSdNwz.js} +1 -1
- package/dist/client/assets/mention-pill-CHPHlu-U.js +1 -0
- package/dist/client/assets/{mermaid.core-C-qvGQ5g.js → mermaid.core-ovqlC4PC.js} +4 -4
- package/dist/client/assets/{message-square-off-BehEHG9c.js → message-square-off-CEOyy4Pq.js} +1 -1
- package/dist/client/assets/{mindmap-definition-6OY57UG3-DzU2APoo.js → mindmap-definition-6OY57UG3-CsngqLzI.js} +1 -1
- package/dist/client/assets/{more-details-DF2dJXMV.js → more-details-BW9mauVT.js} +1 -1
- package/dist/client/assets/{owner-notice-DoH-_Veh.js → owner-notice-BRUVafHC.js} +1 -1
- package/dist/client/assets/{package-Fm_v1gMn.js → package-Bbs99yqi.js} +1 -1
- package/dist/client/assets/{page-container-Bcz5wJVR.js → page-container-BVfGgaaJ.js} +1 -1
- package/dist/client/assets/{pane-resize-handle-_EuIpxzc.js → pane-resize-handle-BL7Meu5R.js} +1 -1
- package/dist/client/assets/{paperclip-AGN67YEM.js → paperclip-QOWXs8-5.js} +1 -1
- package/dist/client/assets/{path-input-jrT0Ap4j.js → path-input-BDRHmgzW.js} +1 -1
- package/dist/client/assets/{pegDiagram-ECIUJNBX-CAyGJ7fm.js → pegDiagram-ECIUJNBX-DPsWmWqw.js} +1 -1
- package/dist/client/assets/{pieDiagram-GNMPY74T-tmLJe1p-.js → pieDiagram-GNMPY74T-BdOIDv4F.js} +1 -1
- package/dist/client/assets/{plug-C-4o4Kb8.js → plug-BrsPyUhu.js} +1 -1
- package/dist/client/assets/primer-trigger-C97fRm1v.js +3 -0
- package/dist/client/assets/{profile-errors-vJU1kT3U.js → profile-errors-nPLX60ha.js} +1 -1
- package/dist/client/assets/{progress-BTu_QWg8.js → progress-C9TALtIa.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-D57K4MC3-CUr2zJoz.js → quadrantDiagram-D57K4MC3-MzMEunU7.js} +1 -1
- package/dist/client/assets/{query-error-state-BCX32dab.js → query-error-state-BJjgx-WC.js} +1 -1
- package/dist/client/assets/{radio-DBitPjM1.js → radio-Biql29-B.js} +1 -1
- package/dist/client/assets/{railroadDiagram-Y72NRBL7-Bk9OMEWz.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-C-1Js81V.js → relay-trace-schemas-BJ4MfChd.js} +2 -2
- package/dist/client/assets/{repeat-B1wCYWXI.js → repeat-CKufDGoQ.js} +1 -1
- package/dist/client/assets/{requirementDiagram-EQYSW5RA-B2pkljrw.js → requirementDiagram-EQYSW5RA-J0pg6FEt.js} +1 -1
- package/dist/client/assets/{room-files-source-BDkq0-fd.js → room-files-source-iaYdshKo.js} +2 -2
- package/dist/client/assets/{rotate-ccw-clock-Ds8cHkxD.js → rotate-ccw-clock-CnARSw5V.js} +1 -1
- package/dist/client/assets/{rotate-cw-hUzouNTK.js → rotate-cw-BAn_5-Gq.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-SY24JHO5-DEW9eIPS.js → sankeyDiagram-SY24JHO5-6V_uy-zQ.js} +1 -1
- package/dist/client/assets/{scroll-area-RSd8NjrE.js → scroll-area-XDq7yL_d.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-BLEHNHQU-CoiCdD1D.js → sequenceDiagram-BLEHNHQU-C4jZi3N4.js} +1 -1
- package/dist/client/assets/{shield-x-KL4ZbHfz.js → shield-x-CpiXuMbN.js} +1 -1
- package/dist/client/assets/{signed-in-Dzxe2378.js → signed-in-Rv3Sjk8n.js} +1 -1
- package/dist/client/assets/{sizeCapture-INFHLROL-BWGf0Ghs.js → sizeCapture-INFHLROL-B7nxFreb.js} +1 -1
- package/dist/client/assets/{soul-file-BQXbWArv.js → soul-file-BQz4TtHo.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-A6IESKWZ-aeqwGZMB.js → stateDiagram-v2-A6IESKWZ-B5rvc4n2.js} +1 -1
- package/dist/client/assets/{swimlanes-B3ENRKFQ-BkWhAAlV.js → swimlanes-B3ENRKFQ-DnElusDo.js} +1 -1
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-DLpKz5fF.js +8 -0
- package/dist/client/assets/{table-CfLst6CF.js → table-NGiWzPO4.js} +1 -1
- package/dist/client/assets/{timeline-definition-JXYKGLGB-C1BUxIfq.js → timeline-definition-JXYKGLGB-DMgyn3XX.js} +1 -1
- package/dist/client/assets/{trust-posture-CfEIPM4Z.js → trust-posture-BArJ9H4j.js} +1 -1
- package/dist/client/assets/{unplug-B3eDst8L.js → unplug-MSjeZ0tJ.js} +1 -1
- package/dist/client/assets/{unverified-catalog-notice-BqIWxQuN.js → unverified-catalog-notice-DA96H8Df.js} +1 -1
- package/dist/client/assets/{use-bindings-DhOKnybh.js → use-bindings-BojBqRJS.js} +1 -1
- package/dist/client/assets/{use-composer-prefs-_rlNL0D8.js → use-composer-prefs-BDl8aMme.js} +1 -1
- package/dist/client/assets/{use-connector-management-CHLdhBhC.js → use-connector-management-FONU6FK8.js} +1 -1
- package/dist/client/assets/{use-deep-link-scroll-BVkszEn2.js → use-deep-link-scroll-CtbBPBgi.js} +1 -1
- package/dist/client/assets/{use-delete-binding-BET7vH2R.js → use-delete-binding-COhBv6X3.js} +1 -1
- package/dist/client/assets/{use-dev-links-BjLPuSUC.js → use-dev-links-Dh0MCiGY.js} +1 -1
- package/dist/client/assets/{use-direct-message-panel-ClXVf94w.js → use-direct-message-panel-CYnWunqk.js} +1 -1
- package/dist/client/assets/{use-external-adapter-catalog-D1INoacX.js → use-external-adapter-catalog-RTDOW8Yi.js} +1 -1
- package/dist/client/assets/{use-filter-state-BRlb3qG3.js → use-filter-state-CSFTDx7z.js} +1 -1
- package/dist/client/assets/{use-full-activity-feed-GWBg-_1B.js → use-full-activity-feed-DlY_ZbRZ.js} +1 -1
- package/dist/client/assets/use-is-below-desktop-ClzGXlRb.js +1 -0
- package/dist/client/assets/{use-local-browser-C-V2n_wd.js → use-local-browser-WwZd-FOP.js} +1 -1
- package/dist/client/assets/{use-mesh-topology-BzSFyR_s.js → use-mesh-topology-WnFkjq41.js} +1 -1
- package/dist/client/assets/{use-mounted-ref-1T3JbkY1.js → use-mounted-ref-Dz1h70pz.js} +1 -1
- package/dist/client/assets/{use-notification-prefs-qcYeVmLQ.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-CJb-rqmM.js → use-personality-commit-C4hYkSPy.js} +1 -1
- package/dist/client/assets/use-promo-activation-CPVANFBh.js +6 -0
- package/dist/client/assets/{use-promo-dismissals-C6bPU5Rm.js → use-promo-dismissals-B9m0HT6L.js} +1 -1
- package/dist/client/assets/{use-pulse-freshness-Y11Ibit1.js → use-pulse-freshness-DMySxN8D.js} +1 -1
- package/dist/client/assets/{use-room-follow-claim-Di-yvoJD.js → use-room-follow-claim-ByaYVY0o.js} +1 -1
- package/dist/client/assets/{use-room-sessions-CPDRbQAW.js → use-room-sessions-DPB29acU.js} +1 -1
- package/dist/client/assets/{use-roving-tab-list-DK0OzOUz.js → use-roving-tab-list-BO8kbs-w.js} +1 -1
- package/dist/client/assets/{use-session-canvas-DA2i9Mdm.js → use-session-canvas-Cunag2K7.js} +9 -9
- package/dist/client/assets/{use-status-budget-jMg_w0rF.js → use-status-budget-jt-9aQR0.js} +2 -2
- package/dist/client/assets/{use-transform-BX3r518L.js → use-transform-ydtuYUNp.js} +1 -1
- package/dist/client/assets/{use-unclaimed-chats-B0nk8b84.js → use-unclaimed-chats-ClBWJgNm.js} +1 -1
- package/dist/client/assets/use-update-config-ZHtOtve0.js +1 -0
- package/dist/client/assets/{useMutationState-Rlga1GBT.js → useMutationState-B8ArIqeH.js} +1 -1
- package/dist/client/assets/{usecaseDiagram-WPOLBNNX-mjIwRNL1.js → usecaseDiagram-WPOLBNNX-C5JdAkG9.js} +1 -1
- package/dist/client/assets/{vennDiagram-Q3Y3IDCW-BcDIpVa6.js → vennDiagram-Q3Y3IDCW-CqLCy7LU.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-IVAIDKWA-NFX31kox.js → wardleyDiagram-IVAIDKWA-C9FlHLTd.js} +1 -1
- package/dist/client/assets/{xychartDiagram-4URNHDU4-DZZY7dL1.js → xychartDiagram-4URNHDU4-BIm-RUWd.js} +1 -1
- package/dist/client/index.html +2 -2
- 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/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 +35 -0
- package/dist/server/extension-child.cjs +1147 -572
- package/dist/server/index.js +41788 -36880
- package/dist/server/index.js.map +2 -2
- package/package.json +3 -3
- package/dist/client/assets/BlintzCanvas-BgIQdpTx.js +0 -1231
- package/dist/client/assets/ChannelComposer-BJ0nNzQb.js +0 -45
- package/dist/client/assets/HandlePage-Bq5qdCfY.js +0 -1
- package/dist/client/assets/NamePage-_yT2RQvT.js +0 -1
- package/dist/client/assets/NewDirectMessageMenu-CMp4ppiH.js +0 -1
- package/dist/client/assets/PhotoPage-Djh4IZBF.js +0 -1
- package/dist/client/assets/RoomSurface-DXZ36tmU.js +0 -1
- package/dist/client/assets/_shell-CTKp94uQ.js +0 -80
- package/dist/client/assets/_shell._home.tasks-B_lv_-fX.js +0 -1
- package/dist/client/assets/_shell.marketplace-DUpaCb0r.js +0 -1
- package/dist/client/assets/_shell.marketplace_.sources-C3pA7zZW.js +0 -1
- package/dist/client/assets/_shell.session-DH_9f3AK.js +0 -1
- package/dist/client/assets/_shell.x._extensionId-DaXLhYNr.js +0 -1
- package/dist/client/assets/_shell.x._extensionId_._-DaXLhYNr.js +0 -1
- package/dist/client/assets/channel-CF9_Q7CV.js +0 -1
- package/dist/client/assets/index-3JL8A9YZ.css +0 -1
- package/dist/client/assets/index-BPp-rj-W.js +0 -1
- package/dist/client/assets/index-C4Uak2ha.js +0 -1
- package/dist/client/assets/index-Daoy3TZ8.js +0 -1
- package/dist/client/assets/index-YUtEyz7O.js +0 -1053
- package/dist/client/assets/mention-pill-CuSUdpn7.js +0 -1
- package/dist/client/assets/primer-trigger-CmE4Ib-X.js +0 -3
- package/dist/client/assets/registry-DVPRVi8T.js +0 -34
- package/dist/client/assets/registry-DiFfRDdW.js +0 -1
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-CS2DMvLi.js +0 -8
- package/dist/client/assets/use-is-below-desktop-BjWA-tqP.js +0 -1
- package/dist/client/assets/use-pending-read-C1oA2H00.js +0 -1
- package/dist/client/assets/use-promo-activation-CAJItujg.js +0 -11
- package/dist/client/assets/use-update-config-Ce7sHmp2.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. */
|
|
@@ -27294,7 +27302,7 @@ import path3 from "path";
|
|
|
27294
27302
|
import { fileURLToPath } from "url";
|
|
27295
27303
|
function resolveVersion() {
|
|
27296
27304
|
if (env2.DORKOS_VERSION_OVERRIDE) return env2.DORKOS_VERSION_OVERRIDE;
|
|
27297
|
-
if (true) return "0.
|
|
27305
|
+
if (true) return "0.130.0";
|
|
27298
27306
|
const pkgPath = path3.join(path3.dirname(fileURLToPath(import.meta.url)), "../../package.json");
|
|
27299
27307
|
return JSON.parse(readFileSync(pkgPath, "utf-8")).version;
|
|
27300
27308
|
}
|
|
@@ -42996,8 +43004,13 @@ function overrideNames(input4) {
|
|
|
42996
43004
|
names.add("OPENCODE_SERVER_PASSWORD");
|
|
42997
43005
|
names.add("OPENCODE_CONFIG_CONTENT");
|
|
42998
43006
|
}
|
|
43007
|
+
for (const name2 of Object.keys(flowIdentityEnv(input4.runtime, input4.purpose))) names.add(name2);
|
|
42999
43008
|
return names;
|
|
43000
43009
|
}
|
|
43010
|
+
function flowIdentityEnv(runtime, purpose) {
|
|
43011
|
+
if (purpose !== "turn" || runtime === "doe") return {};
|
|
43012
|
+
return { FLOW_RUNTIME: runtime, FLOW_HARNESS: "dorkos" };
|
|
43013
|
+
}
|
|
43001
43014
|
function projectRuntimeEnvironment(input4) {
|
|
43002
43015
|
const inherit = RuntimeInheritedEnvNamesSchema.parse(input4.inherit ?? []);
|
|
43003
43016
|
const allowed = /* @__PURE__ */ new Set([...BASELINE_ENV_NAMES, ...profileNames(input4), ...inherit]);
|
|
@@ -43040,7 +43053,14 @@ var init_runtime_environment = __esm({
|
|
|
43040
43053
|
function runtimeEnvironment(runtime, purpose, overrides) {
|
|
43041
43054
|
const inherit = runtimeInheritedNames(runtime);
|
|
43042
43055
|
return withGitConfigEnv(
|
|
43043
|
-
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
|
+
}),
|
|
43044
43064
|
SESSION_GIT_CONFIG
|
|
43045
43065
|
);
|
|
43046
43066
|
}
|
|
@@ -50159,11 +50179,11 @@ function containerEntries(value) {
|
|
|
50159
50179
|
}
|
|
50160
50180
|
function inspectBoundedJson(value, bounds) {
|
|
50161
50181
|
const { maxBytes, maxDepth } = bounds;
|
|
50162
|
-
const
|
|
50182
|
+
const pending = [{ value, depth: 0 }];
|
|
50163
50183
|
const ancestors = /* @__PURE__ */ new Set();
|
|
50164
50184
|
let bytes = 0;
|
|
50165
|
-
while (
|
|
50166
|
-
const item =
|
|
50185
|
+
while (pending.length) {
|
|
50186
|
+
const item = pending.pop();
|
|
50167
50187
|
const current3 = item.value;
|
|
50168
50188
|
if (item.exit) {
|
|
50169
50189
|
ancestors.delete(current3);
|
|
@@ -50177,10 +50197,10 @@ function inspectBoundedJson(value, bounds) {
|
|
|
50177
50197
|
if (!entries) return "Expected plain JSON without unsafe keys or accessors";
|
|
50178
50198
|
bytes += 2 + Math.max(0, entries.length - 1);
|
|
50179
50199
|
ancestors.add(current3);
|
|
50180
|
-
|
|
50200
|
+
pending.push({ value: current3, depth: item.depth, exit: true });
|
|
50181
50201
|
for (const [key, child] of entries) {
|
|
50182
50202
|
if (!Array.isArray(current3)) bytes += encoder.encode(JSON.stringify(key)).length + 1;
|
|
50183
|
-
|
|
50203
|
+
pending.push({ value: child, depth: item.depth + 1 });
|
|
50184
50204
|
}
|
|
50185
50205
|
} else {
|
|
50186
50206
|
if (typeof current3 === "number" && !Number.isFinite(current3))
|
|
@@ -52309,6 +52329,39 @@ var init_canvas_channel_schemas = __esm({
|
|
|
52309
52329
|
}
|
|
52310
52330
|
});
|
|
52311
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
|
+
|
|
52312
52365
|
// ../shared/src/validation.ts
|
|
52313
52366
|
var AGENT_NAME_REGEX;
|
|
52314
52367
|
var init_validation = __esm({
|
|
@@ -52720,6 +52773,12 @@ function mergeTeammateOrigins(a2, b2) {
|
|
|
52720
52773
|
const added = b2.filter((origin) => !seen.has(key(origin)));
|
|
52721
52774
|
return added.length === 0 ? a2 : [...a2, ...added];
|
|
52722
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
|
+
}
|
|
52723
52782
|
function ceilingHoldsForOutsider(ceiling) {
|
|
52724
52783
|
if (!Array.isArray(ceiling)) return ceiling === "runtime-default";
|
|
52725
52784
|
const bounds = ceiling;
|
|
@@ -52734,6 +52793,7 @@ function stricterPower(a2, b2) {
|
|
|
52734
52793
|
return a2.auto && b2.auto ? { asks, reach, auto: true } : { asks, reach };
|
|
52735
52794
|
}
|
|
52736
52795
|
function clampModeToCeiling(declared, modeId, ceiling) {
|
|
52796
|
+
if (ceilingOnlyRecords(ceiling)) return modeId;
|
|
52737
52797
|
const level = resolveCeilingLevel(declared, ceiling);
|
|
52738
52798
|
const own2 = declared.values.find((m2) => m2.id === modeId);
|
|
52739
52799
|
if (own2 && admits(level, own2)) return modeId;
|
|
@@ -54232,7 +54292,7 @@ var init_project_schemas = __esm({
|
|
|
54232
54292
|
});
|
|
54233
54293
|
|
|
54234
54294
|
// ../shared/src/approval-schemas.ts
|
|
54235
|
-
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, 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;
|
|
54236
54296
|
var init_approval_schemas = __esm({
|
|
54237
54297
|
"../shared/src/approval-schemas.ts"() {
|
|
54238
54298
|
"use strict";
|
|
@@ -54311,6 +54371,59 @@ var init_approval_schemas = __esm({
|
|
|
54311
54371
|
}).strict().openapi("ApprovalServiceAction");
|
|
54312
54372
|
APPROVAL_ORIGINS = ["session", "external-mcp"];
|
|
54313
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");
|
|
54314
54427
|
PendingApprovalSchema = external_exports.object({
|
|
54315
54428
|
/** ULID identifying the approval. Carries no secret. */
|
|
54316
54429
|
approvalId: external_exports.string(),
|
|
@@ -54415,6 +54528,12 @@ var init_approval_schemas = __esm({
|
|
|
54415
54528
|
* at render time.
|
|
54416
54529
|
*/
|
|
54417
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(),
|
|
54418
54537
|
/**
|
|
54419
54538
|
* The thing this would act on, named — when the server could name it.
|
|
54420
54539
|
*
|
|
@@ -54978,10 +55097,12 @@ function isSafeSigninUrl(value) {
|
|
|
54978
55097
|
if (url2.protocol !== "http:") return false;
|
|
54979
55098
|
return url2.hostname === "localhost" || url2.hostname === "127.0.0.1" || url2.hostname === "[::1]";
|
|
54980
55099
|
}
|
|
54981
|
-
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;
|
|
54982
55101
|
var init_schemas4 = __esm({
|
|
54983
55102
|
"../shared/src/schemas.ts"() {
|
|
54984
55103
|
"use strict";
|
|
55104
|
+
init_task_approval_schemas();
|
|
55105
|
+
init_task_approval_schemas();
|
|
54985
55106
|
init_canvas_channel_schemas();
|
|
54986
55107
|
init_zod();
|
|
54987
55108
|
init_zod_openapi();
|
|
@@ -57382,6 +57503,13 @@ var init_schemas4 = __esm({
|
|
|
57382
57503
|
callerRoute: external_exports.enum(["local", "wifi", "tunnel", "managed", "network", "hub"]).nullable().optional().openapi({
|
|
57383
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"
|
|
57384
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
|
+
}),
|
|
57385
57513
|
dismissedUpgradeVersions: external_exports.array(external_exports.string()).openapi({ description: "Versions the user has dismissed upgrade notifications for" }),
|
|
57386
57514
|
dismissedPromoIds: external_exports.array(external_exports.string()).openapi({
|
|
57387
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"
|
|
@@ -57875,21 +58003,6 @@ var init_schemas4 = __esm({
|
|
|
57875
58003
|
lastRunId: external_exports.string().nullable()
|
|
57876
58004
|
}).openapi("TaskHealth");
|
|
57877
58005
|
TaskRunTriggerSchema = external_exports.enum(["scheduled", "manual", "agent"]).openapi("TaskRunTrigger");
|
|
57878
|
-
ScheduleOriginMarksSchema = external_exports.object({
|
|
57879
|
-
/** The turn read words DorkOS can't vouch for: a stranger's message, or another agent's that carried one. */
|
|
57880
|
-
outsider: external_exports.literal(true).optional(),
|
|
57881
|
-
/** Each teammate whose message started the chain, and the space room they wrote in. */
|
|
57882
|
-
teammate: external_exports.array(
|
|
57883
|
-
external_exports.object({
|
|
57884
|
-
roomId: external_exports.string(),
|
|
57885
|
-
authorId: external_exports.string(),
|
|
57886
|
-
/** The teammate's name when the mark was written, or null when it was unknown. */
|
|
57887
|
-
name: external_exports.string().nullable().default(null),
|
|
57888
|
-
/** The room's title when the mark was written, or null when it was unknown. */
|
|
57889
|
-
room: external_exports.string().nullable().default(null)
|
|
57890
|
-
})
|
|
57891
|
-
).optional()
|
|
57892
|
-
}).openapi("ScheduleOriginMarks");
|
|
57893
58006
|
TaskSchema = external_exports.object({
|
|
57894
58007
|
id: external_exports.string(),
|
|
57895
58008
|
name: external_exports.string(),
|
|
@@ -58016,6 +58129,8 @@ var init_schemas4 = __esm({
|
|
|
58016
58129
|
sticky: external_exports.boolean().default(false),
|
|
58017
58130
|
maxRuntime: external_exports.number().int().nullable(),
|
|
58018
58131
|
permissionMode: PermissionModeSchema,
|
|
58132
|
+
/** Read-time, person-only preview; absent for older servers and agent callers. */
|
|
58133
|
+
folderRules: TaskFolderRulesSchema.optional(),
|
|
58019
58134
|
/**
|
|
58020
58135
|
* Which agent runtime this task's runs execute on, or `null` to follow the
|
|
58021
58136
|
* task's agent (DOR-1615).
|
|
@@ -58074,6 +58189,13 @@ var init_schemas4 = __esm({
|
|
|
58074
58189
|
* nothing resolves, which is what the "An agent" fallback is for.
|
|
58075
58190
|
*/
|
|
58076
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(),
|
|
58077
58199
|
/**
|
|
58078
58200
|
* Where this schedule came from, when that is not a person using DorkOS.
|
|
58079
58201
|
*
|
|
@@ -61070,11 +61192,11 @@ async function measurePackageTree(root, limits = PACKAGE_SIZE_LIMITS, { countGit
|
|
|
61070
61192
|
let entries = 0;
|
|
61071
61193
|
let bytes = 0;
|
|
61072
61194
|
let inNodeModules = 0;
|
|
61073
|
-
const
|
|
61195
|
+
const pending = [
|
|
61074
61196
|
{ rel: "", underNodeModules: false }
|
|
61075
61197
|
];
|
|
61076
|
-
while (
|
|
61077
|
-
const { rel, underNodeModules } =
|
|
61198
|
+
while (pending.length > 0) {
|
|
61199
|
+
const { rel, underNodeModules } = pending.pop();
|
|
61078
61200
|
let listed2;
|
|
61079
61201
|
try {
|
|
61080
61202
|
listed2 = await readdir2(path23.join(root, rel), { withFileTypes: true });
|
|
@@ -61093,7 +61215,7 @@ async function measurePackageTree(root, limits = PACKAGE_SIZE_LIMITS, { countGit
|
|
|
61093
61215
|
throw new PackageTooLargeError("entries", limits, void 0, inNodeModules);
|
|
61094
61216
|
}
|
|
61095
61217
|
if (entry.isDirectory()) {
|
|
61096
|
-
|
|
61218
|
+
pending.push({ rel: childRel, underNodeModules: inside });
|
|
61097
61219
|
continue;
|
|
61098
61220
|
}
|
|
61099
61221
|
const { size } = await lstat2(path23.join(root, childRel));
|
|
@@ -64041,9 +64163,9 @@ var init_endpoint_context = __esm({
|
|
|
64041
64163
|
getOrCreateEndpointContextStorage = async () => {
|
|
64042
64164
|
const existing = getExistingEndpointContextStorage();
|
|
64043
64165
|
if (existing) return existing;
|
|
64044
|
-
const
|
|
64166
|
+
const AsyncLocalStorage7 = await getAsyncLocalStorage();
|
|
64045
64167
|
const globalContext = __getBetterAuthGlobal().context;
|
|
64046
|
-
return globalContext.endpointContextAsyncStorage ??= new
|
|
64168
|
+
return globalContext.endpointContextAsyncStorage ??= new AsyncLocalStorage7();
|
|
64047
64169
|
};
|
|
64048
64170
|
}
|
|
64049
64171
|
});
|
|
@@ -64639,8 +64761,8 @@ var init_request_state = __esm({
|
|
|
64639
64761
|
const betterAuthGlobal = __getBetterAuthGlobal();
|
|
64640
64762
|
const existing = betterAuthGlobal.context.requestStateAsyncStorage;
|
|
64641
64763
|
if (existing) return existing;
|
|
64642
|
-
const
|
|
64643
|
-
betterAuthGlobal.context.requestStateAsyncStorage ??= new
|
|
64764
|
+
const AsyncLocalStorage7 = await getAsyncLocalStorage();
|
|
64765
|
+
betterAuthGlobal.context.requestStateAsyncStorage ??= new AsyncLocalStorage7();
|
|
64644
64766
|
return betterAuthGlobal.context.requestStateAsyncStorage;
|
|
64645
64767
|
};
|
|
64646
64768
|
}
|
|
@@ -65311,8 +65433,8 @@ var init_transaction = __esm({
|
|
|
65311
65433
|
const betterAuthGlobal = __getBetterAuthGlobal();
|
|
65312
65434
|
const existing = betterAuthGlobal.context.adapterAsyncStorage;
|
|
65313
65435
|
if (existing) return existing;
|
|
65314
|
-
const
|
|
65315
|
-
betterAuthGlobal.context.adapterAsyncStorage ??= new
|
|
65436
|
+
const AsyncLocalStorage7 = await getAsyncLocalStorage();
|
|
65437
|
+
betterAuthGlobal.context.adapterAsyncStorage ??= new AsyncLocalStorage7();
|
|
65316
65438
|
return betterAuthGlobal.context.adapterAsyncStorage;
|
|
65317
65439
|
};
|
|
65318
65440
|
getCurrentAdapter = async (fallback) => {
|
|
@@ -67853,14 +67975,14 @@ function isUsableJWK(jwk, entry, alg2, kid) {
|
|
|
67853
67975
|
async function importWithAlgCache(cache3, jwk, entry) {
|
|
67854
67976
|
const cached2 = cache3.get(jwk) || cache3.set(jwk, {}).get(jwk), { alg: alg2 } = entry;
|
|
67855
67977
|
if (cached2[alg2] === void 0) {
|
|
67856
|
-
const
|
|
67978
|
+
const pending = jwkToKey(entry, jwk, true).then((key) => {
|
|
67857
67979
|
if (key.type !== "public")
|
|
67858
67980
|
throw new JWKSInvalid("JSON Web Key Set members must be public keys");
|
|
67859
67981
|
return cached2[alg2] = key, key;
|
|
67860
67982
|
}).catch((error63) => {
|
|
67861
|
-
throw cached2[alg2] ===
|
|
67983
|
+
throw cached2[alg2] === pending && delete cached2[alg2], error63;
|
|
67862
67984
|
});
|
|
67863
|
-
cached2[alg2] =
|
|
67985
|
+
cached2[alg2] = pending;
|
|
67864
67986
|
}
|
|
67865
67987
|
return cached2[alg2];
|
|
67866
67988
|
}
|
|
@@ -106726,6 +106848,20 @@ var init_approvals = __esm({
|
|
|
106726
106848
|
* longer parses renders as a card with the summary instead of failing.
|
|
106727
106849
|
*/
|
|
106728
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"),
|
|
106729
106865
|
/** Opaque label for who asked — an agent path, a display name, or null. */
|
|
106730
106866
|
requestedBy: text("requested_by"),
|
|
106731
106867
|
/**
|
|
@@ -107487,6 +107623,12 @@ var init_sessions = __esm({
|
|
|
107487
107623
|
// whether a limited session may carry its work to another account (spec
|
|
107488
107624
|
// `claude-account-fleet` D9). NULL = bound before this column existed.
|
|
107489
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"),
|
|
107490
107632
|
// The episode `resetsAt` (else `since`) of the last usage limit core resumed
|
|
107491
107633
|
// this session from by itself (spec `claude-account-fleet` D9 "Wait, then
|
|
107492
107634
|
// resume by itself"): at most one automatic resume per window reset. Kept
|
|
@@ -111193,6 +111335,33 @@ var init_registry = __esm({
|
|
|
111193
111335
|
}
|
|
111194
111336
|
});
|
|
111195
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
|
+
|
|
111196
111365
|
// ../db/src/schema/session/session-locations.ts
|
|
111197
111366
|
var sessionLocations;
|
|
111198
111367
|
var init_session_locations = __esm({
|
|
@@ -111399,6 +111568,90 @@ var init_commitments = __esm({
|
|
|
111399
111568
|
}
|
|
111400
111569
|
});
|
|
111401
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
|
+
|
|
111402
111655
|
// ../db/src/schema/heartbeats/heartbeats.ts
|
|
111403
111656
|
var heartbeatState, heartbeatBeats, heartbeatOutbox, heartbeatReportItems;
|
|
111404
111657
|
var init_heartbeats = __esm({
|
|
@@ -111694,10 +111947,14 @@ __export(schema_exports, {
|
|
|
111694
111947
|
account: () => account,
|
|
111695
111948
|
accountRelations: () => accountRelations,
|
|
111696
111949
|
activityEvents: () => activityEvents,
|
|
111950
|
+
agentBrowserProfileAgents: () => agentBrowserProfileAgents,
|
|
111951
|
+
agentBrowserProfiles: () => agentBrowserProfiles,
|
|
111697
111952
|
agentConnectionAttachments: () => agentConnectionAttachments,
|
|
111698
111953
|
agentDenials: () => agentDenials,
|
|
111699
111954
|
agentIdentityTokens: () => agentIdentityTokens,
|
|
111700
111955
|
agentPauses: () => agentPauses,
|
|
111956
|
+
agentWorkItems: () => agentWorkItems,
|
|
111957
|
+
agentWorkQueues: () => agentWorkQueues,
|
|
111701
111958
|
agents: () => agents,
|
|
111702
111959
|
apikey: () => apikey,
|
|
111703
111960
|
approvals: () => approvals,
|
|
@@ -111815,6 +112072,7 @@ __export(schema_exports, {
|
|
|
111815
112072
|
user: () => user,
|
|
111816
112073
|
userRelations: () => userRelations,
|
|
111817
112074
|
verification: () => verification,
|
|
112075
|
+
workQueueControl: () => workQueueControl,
|
|
111818
112076
|
workspaces: () => workspaces
|
|
111819
112077
|
});
|
|
111820
112078
|
var init_schema2 = __esm({
|
|
@@ -111860,11 +112118,13 @@ var init_schema2 = __esm({
|
|
|
111860
112118
|
init_channel();
|
|
111861
112119
|
init_file_save_intents();
|
|
111862
112120
|
init_registry();
|
|
112121
|
+
init_agent_profiles();
|
|
111863
112122
|
init_session_locations();
|
|
111864
112123
|
init_session_native_bindings();
|
|
111865
112124
|
init_session_touches();
|
|
111866
112125
|
init_chat_messages2();
|
|
111867
112126
|
init_commitments();
|
|
112127
|
+
init_work_queue();
|
|
111868
112128
|
init_heartbeats();
|
|
111869
112129
|
init_remote_commands();
|
|
111870
112130
|
}
|
|
@@ -113970,6 +114230,9 @@ var init_config_disclosure = __esm({
|
|
|
113970
114230
|
// Whether cheap checks may run on DorkOS credits (spec `heartbeats` §6.3): a
|
|
113971
114231
|
// plain yes, no or not answered, so an agent can say where its checks run.
|
|
113972
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",
|
|
113973
114236
|
// How long the Activity feed keeps its rows (spec `audit-trail` §3.5).
|
|
113974
114237
|
"activity.retentionDays": "expose",
|
|
113975
114238
|
// Where the company certificates the desktop app trusts live (DOR-3361).
|
|
@@ -114744,7 +115007,9 @@ var init_operator_only_stakes = __esm({
|
|
|
114744
115007
|
"notifications.sounds.allClear",
|
|
114745
115008
|
"notifications.sounds.turnEnd",
|
|
114746
115009
|
"notifications.notifyOnTurnCompleteWhileAway",
|
|
114747
|
-
"notifications.browserPermissionPrimerDismissed"
|
|
115010
|
+
"notifications.browserPermissionPrimerDismissed",
|
|
115011
|
+
// Which room is told nothing is running while work is open (DOR-3675).
|
|
115012
|
+
"heartbeats.idleAlertRoomId"
|
|
114748
115013
|
]
|
|
114749
115014
|
}
|
|
114750
115015
|
];
|
|
@@ -114956,6 +115221,9 @@ var init_config_write_policy = __esm({
|
|
|
114956
115221
|
// Whether cheap checks spend DorkOS credits (spec `heartbeats` §6.3). Only a
|
|
114957
115222
|
// person's **Use credits** may say yes: it spends the account owner's money.
|
|
114958
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",
|
|
114959
115227
|
// How long the Activity feed keeps the history people review (spec
|
|
114960
115228
|
// `audit-trail` §3.5). Shortening it deletes rows a person may not have read
|
|
114961
115229
|
// yet; lengthening it spends disk. Either is the person's call.
|
|
@@ -115750,14 +116018,14 @@ var init_constants8 = __esm({
|
|
|
115750
116018
|
* would trade a real resource ceiling for a case nobody has reported.
|
|
115751
116019
|
*/
|
|
115752
116020
|
INTERACTION_PARK_CEILING_MS: 4 * 60 * 60 * 1e3,
|
|
115753
|
-
/**
|
|
116021
|
+
/** Session-record cache size. At capacity, reclaim LRU idle records; refuse only if all are live. */
|
|
115754
116022
|
MAX_SESSIONS: 50,
|
|
115755
116023
|
/**
|
|
115756
116024
|
* How long a WARM session's subprocess may sit with no turn open before it is
|
|
115757
116025
|
* given back (spec `persistent-session-runtime` §4.3).
|
|
115758
116026
|
*
|
|
115759
116027
|
* This is **not** session eviction. `TIMEOUT_MS` retires the session RECORD
|
|
115760
|
-
* after 30 minutes
|
|
116028
|
+
* after 30 minutes (or sooner for an idle record at the cap); this closes a PROCESS
|
|
115761
116029
|
* after 5 minutes and the person cannot tell — the record, the transcript and
|
|
115762
116030
|
* the conversation are untouched, and the next message resumes. Eviction
|
|
115763
116031
|
* implies a reap; a reap never implies eviction.
|
|
@@ -115779,7 +116047,7 @@ var init_constants8 = __esm({
|
|
|
115779
116047
|
* {@link SESSIONS.MAX_WARM_SESSIONS_AUTO}. Twelve was the fixed ceiling until
|
|
115780
116048
|
* DOR-3012, and a machine with 48 GB filled it with 5.5 GB in use.
|
|
115781
116049
|
*
|
|
115782
|
-
*
|
|
116050
|
+
* Like the session-record cap, it reclaims idle entries first. Warmth is a
|
|
115783
116051
|
* cache, so a launch past it reclaims the least recently used warm process,
|
|
115784
116052
|
* and when nothing is reclaimable — every process mid-turn or parked on a
|
|
115785
116053
|
* person — it waits for one to come free ({@link SESSIONS.WARM_SLOT_WAIT_MS}).
|
|
@@ -117161,6 +117429,196 @@ var init_agent_home = __esm({
|
|
|
117161
117429
|
}
|
|
117162
117430
|
});
|
|
117163
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
|
+
|
|
117164
117622
|
// ../../apps/server/src/services/session/turn-identity/durable-rekey.ts
|
|
117165
117623
|
var init_durable_rekey = __esm({
|
|
117166
117624
|
"../../apps/server/src/services/session/turn-identity/durable-rekey.ts"() {
|
|
@@ -118698,8 +119156,8 @@ var init_devtools_capture_store = __esm({
|
|
|
118698
119156
|
* @param pending - The recording id and working directory to write under.
|
|
118699
119157
|
* @param timeoutMs - How long to wait before giving up on the window.
|
|
118700
119158
|
*/
|
|
118701
|
-
awaitRecording(requestId,
|
|
118702
|
-
this.pendingRecordings.set(requestId,
|
|
119159
|
+
awaitRecording(requestId, pending, timeoutMs) {
|
|
119160
|
+
this.pendingRecordings.set(requestId, pending);
|
|
118703
119161
|
return new Promise((resolve14) => {
|
|
118704
119162
|
const timer = setTimeout(() => {
|
|
118705
119163
|
this.recordingWaiters.delete(requestId);
|
|
@@ -118720,17 +119178,17 @@ var init_devtools_capture_store = __esm({
|
|
|
118720
119178
|
* @param requestId - The round trip id the upload carries.
|
|
118721
119179
|
*/
|
|
118722
119180
|
pendingRecording(requestId) {
|
|
118723
|
-
const
|
|
118724
|
-
return
|
|
119181
|
+
const pending = this.pendingRecordings.get(requestId);
|
|
119182
|
+
return pending ? { ...pending } : void 0;
|
|
118725
119183
|
}
|
|
118726
119184
|
/** Recording uploads require the pinned live claim, even while decoder/encoder work is finishing. */
|
|
118727
119185
|
admitsRecording(requestId, actual) {
|
|
118728
|
-
const
|
|
118729
|
-
if (!
|
|
118730
|
-
if (!
|
|
119186
|
+
const pending = this.pendingRecordings.get(requestId);
|
|
119187
|
+
if (!pending || !matchesBinding(pending.binding ?? {}, actual)) return false;
|
|
119188
|
+
if (!pending.binding) return true;
|
|
118731
119189
|
return [...this.buffers.values()].some(
|
|
118732
119190
|
(buffer) => buffer.drivers.some(
|
|
118733
|
-
(claim2) => matchesBinding(
|
|
119191
|
+
(claim2) => matchesBinding(pending.binding, claim2) && claim2.activeAt >= Date.now() - WORKBENCH.DEVTOOLS_SEAT_STALE_MS
|
|
118734
119192
|
)
|
|
118735
119193
|
);
|
|
118736
119194
|
}
|
|
@@ -119143,287 +119601,9 @@ var init_session_key_registry = __esm({
|
|
|
119143
119601
|
}
|
|
119144
119602
|
});
|
|
119145
119603
|
|
|
119146
|
-
// ../../apps/server/src/services/session/origin/outsider-turns.ts
|
|
119147
|
-
import { AsyncLocalStorage as AsyncLocalStorage5 } from "node:async_hooks";
|
|
119148
|
-
function noteLatest(sessionId, outsider) {
|
|
119149
|
-
const key = primaryOf(sessionId);
|
|
119150
|
-
latest.set(key, outsider);
|
|
119151
|
-
if (outsider) heard.add(key);
|
|
119152
|
-
}
|
|
119153
|
-
function isOutsiderOrigin(origin) {
|
|
119154
|
-
if (origin.kind === "room") return origin.externalAuthor;
|
|
119155
|
-
return OUTSIDER_ORIGIN_KINDS.has(origin.kind);
|
|
119156
|
-
}
|
|
119157
|
-
function noteTurnOrigin(sessionId, origin) {
|
|
119158
|
-
const messageId = holdingFor.getStore();
|
|
119159
|
-
if (messageId === void 0) {
|
|
119160
|
-
noteLatest(sessionId, isOutsiderOrigin(origin));
|
|
119161
|
-
return;
|
|
119162
|
-
}
|
|
119163
|
-
pending.set(messageId, isOutsiderOrigin(origin));
|
|
119164
|
-
if (pending.size > PENDING_MAX) pending.delete(pending.keys().next().value);
|
|
119165
|
-
}
|
|
119166
|
-
function noteChatHeardOutsider(sessionId) {
|
|
119167
|
-
heard.add(primaryOf(sessionId));
|
|
119168
|
-
}
|
|
119169
|
-
var OUTSIDER_ORIGIN_KINDS, latest, heard, pending, PENDING_MAX, holdingFor;
|
|
119170
|
-
var init_outsider_turns = __esm({
|
|
119171
|
-
"../../apps/server/src/services/session/origin/outsider-turns.ts"() {
|
|
119172
|
-
"use strict";
|
|
119173
|
-
init_session_key_registry();
|
|
119174
|
-
OUTSIDER_ORIGIN_KINDS = /* @__PURE__ */ new Set([
|
|
119175
|
-
"relay-binding",
|
|
119176
|
-
"outside-sender",
|
|
119177
|
-
"connector-event"
|
|
119178
|
-
]);
|
|
119179
|
-
latest = /* @__PURE__ */ new Map();
|
|
119180
|
-
heard = /* @__PURE__ */ new Set();
|
|
119181
|
-
pending = /* @__PURE__ */ new Map();
|
|
119182
|
-
PENDING_MAX = 1e3;
|
|
119183
|
-
holdingFor = new AsyncLocalStorage5();
|
|
119184
|
-
}
|
|
119185
|
-
});
|
|
119186
|
-
|
|
119187
|
-
// ../../apps/server/src/services/core/turn-power/live-outsider-turns.ts
|
|
119188
|
-
function homeKey(dir, forAgent) {
|
|
119189
|
-
try {
|
|
119190
|
-
return homeOf(resolveAgentHome(dir, forAgent));
|
|
119191
|
-
} catch {
|
|
119192
|
-
return void 0;
|
|
119193
|
-
}
|
|
119194
|
-
}
|
|
119195
|
-
function countWhileRunning(place2, marks, events) {
|
|
119196
|
-
const key = homeKey(place2.cwd, place2.forAgent) ?? UNPLACED;
|
|
119197
|
-
return (async function* counted() {
|
|
119198
|
-
const token = { marks };
|
|
119199
|
-
const turns = running.get(key) ?? /* @__PURE__ */ new Set();
|
|
119200
|
-
turns.add(token);
|
|
119201
|
-
running.set(key, turns);
|
|
119202
|
-
try {
|
|
119203
|
-
yield* events;
|
|
119204
|
-
} finally {
|
|
119205
|
-
turns.delete(token);
|
|
119206
|
-
if (turns.size === 0 && running.get(key) === turns) running.delete(key);
|
|
119207
|
-
}
|
|
119208
|
-
})();
|
|
119209
|
-
}
|
|
119210
|
-
var UNPLACED, running;
|
|
119211
|
-
var init_live_outsider_turns = __esm({
|
|
119212
|
-
"../../apps/server/src/services/core/turn-power/live-outsider-turns.ts"() {
|
|
119213
|
-
"use strict";
|
|
119214
|
-
init_agent_home();
|
|
119215
|
-
UNPLACED = "";
|
|
119216
|
-
running = /* @__PURE__ */ new Map();
|
|
119217
|
-
}
|
|
119218
|
-
});
|
|
119219
|
-
|
|
119220
|
-
// ../../apps/server/src/services/core/turn-power/teammate-mark.ts
|
|
119221
|
-
function runsTeammateTurns(runtimeType) {
|
|
119222
|
-
return TEAMMATE_TURN_RUNTIMES.has(runtimeType);
|
|
119223
|
-
}
|
|
119224
|
-
function teammateRuntimeRefusal(runtimeType) {
|
|
119225
|
-
return `A teammate's message cannot start a turn on ${runtimeType} yet`;
|
|
119226
|
-
}
|
|
119227
|
-
function teammateTurnRefusal(runtimeType, origins) {
|
|
119228
|
-
if (!runsTeammateTurns(runtimeType)) return teammateRuntimeRefusal(runtimeType);
|
|
119229
|
-
const gate = spaceAllows;
|
|
119230
|
-
if (gate && origins.some((origin) => !gate(origin.roomId))) return TEAMMATE_LIMIT_REFUSAL;
|
|
119231
|
-
return null;
|
|
119232
|
-
}
|
|
119233
|
-
function teammateTurnOpts(opts) {
|
|
119234
|
-
const { additionalDirectories: _granted, ...rest } = opts ?? {};
|
|
119235
|
-
return {
|
|
119236
|
-
...rest,
|
|
119237
|
-
teammate: true,
|
|
119238
|
-
unattended: true,
|
|
119239
|
-
permissionCeiling: withReadOnly(opts?.permissionCeiling),
|
|
119240
|
-
...opts?.roomTurn ? { roomTurn: { ...opts.roomTurn, teammate: true, untrustedText: true } } : {}
|
|
119241
|
-
};
|
|
119242
|
-
}
|
|
119243
|
-
function withReadOnly(ceiling) {
|
|
119244
|
-
if (ceiling === void 0) return READ_ONLY_LEVEL;
|
|
119245
|
-
if (Array.isArray(ceiling) && ceiling.length === 0) return ["runtime-default", READ_ONLY_LEVEL];
|
|
119246
|
-
const bounds = Array.isArray(ceiling) ? ceiling : [ceiling];
|
|
119247
|
-
return [...bounds, READ_ONLY_LEVEL];
|
|
119248
|
-
}
|
|
119249
|
-
var TEAMMATE_TURN_RUNTIMES, TEAMMATE_LIMIT_REFUSAL, spaceAllows;
|
|
119250
|
-
var init_teammate_mark = __esm({
|
|
119251
|
-
"../../apps/server/src/services/core/turn-power/teammate-mark.ts"() {
|
|
119252
|
-
"use strict";
|
|
119253
|
-
init_permission_semantics();
|
|
119254
|
-
TEAMMATE_TURN_RUNTIMES = /* @__PURE__ */ new Set(["claude-code", "test-mode"]);
|
|
119255
|
-
TEAMMATE_LIMIT_REFUSAL = "This space reached its monthly limit for teammates, so this turn didn\u2019t run.";
|
|
119256
|
-
spaceAllows = null;
|
|
119257
|
-
}
|
|
119258
|
-
});
|
|
119259
|
-
|
|
119260
|
-
// ../../apps/server/src/services/core/turn-power/turn-marks.ts
|
|
119261
|
-
function presentKinds(marks) {
|
|
119262
|
-
return TURN_MARK_KINDS.filter((kind) => marks[kind] !== void 0);
|
|
119263
|
-
}
|
|
119264
|
-
function marksFrom(fields) {
|
|
119265
|
-
const kinds = presentKinds(fields);
|
|
119266
|
-
if (kinds.length === 0) return NO_MARKS;
|
|
119267
|
-
return Object.fromEntries(kinds.map((kind) => [kind, fields[kind]]));
|
|
119268
|
-
}
|
|
119269
|
-
function teammateOrigins(marks) {
|
|
119270
|
-
return marks.teammate ?? [];
|
|
119271
|
-
}
|
|
119272
|
-
function marksOfLevel(level) {
|
|
119273
|
-
return level === void 0 ? NO_MARKS : marksFrom(level);
|
|
119274
|
-
}
|
|
119275
|
-
function marksOfCeiling(ceiling) {
|
|
119276
|
-
if (!Array.isArray(ceiling)) {
|
|
119277
|
-
return ceiling === "runtime-default" ? UNKNOWN_SOURCE : marksOfLevel(ceiling);
|
|
119278
|
-
}
|
|
119279
|
-
const bounds = ceiling;
|
|
119280
|
-
if (bounds.length === 0) return UNKNOWN_SOURCE;
|
|
119281
|
-
return bounds.map(marksOfCeiling).reduce(mergeMarks, NO_MARKS);
|
|
119282
|
-
}
|
|
119283
|
-
function marksForTurn(opts) {
|
|
119284
|
-
const ceiling = opts?.continuationHold === true ? withoutContinuationBound(opts.permissionCeiling) : opts?.permissionCeiling;
|
|
119285
|
-
const fromCeiling = ceiling !== void 0 ? marksOfCeiling(ceiling) : NO_MARKS;
|
|
119286
|
-
return mergeMarks(
|
|
119287
|
-
fromCeiling,
|
|
119288
|
-
opts?.roomTurn?.outsiderInView === true ? { outsider: true } : NO_MARKS
|
|
119289
|
-
);
|
|
119290
|
-
}
|
|
119291
|
-
function withoutContinuationBound(ceiling) {
|
|
119292
|
-
if (ceiling === void 0 || ceiling === "runtime-default") return void 0;
|
|
119293
|
-
if (!Array.isArray(ceiling)) return ceiling;
|
|
119294
|
-
const bounds = [...ceiling];
|
|
119295
|
-
const at = bounds.indexOf("runtime-default");
|
|
119296
|
-
if (at !== -1) bounds.splice(at, 1);
|
|
119297
|
-
return bounds.length === 0 ? void 0 : bounds;
|
|
119298
|
-
}
|
|
119299
|
-
function mergeMarks(a2, b2) {
|
|
119300
|
-
const merged = {};
|
|
119301
|
-
for (const kind of TURN_MARK_KINDS) {
|
|
119302
|
-
const rules = RULES[kind];
|
|
119303
|
-
const value = rules.merge(a2[kind], b2[kind]);
|
|
119304
|
-
if (value !== void 0) merged[kind] = value;
|
|
119305
|
-
}
|
|
119306
|
-
return marksFrom(merged);
|
|
119307
|
-
}
|
|
119308
|
-
function hasMarks(marks) {
|
|
119309
|
-
return presentKinds(marks).length > 0;
|
|
119310
|
-
}
|
|
119311
|
-
function carriesAllMarks(receiver, sender) {
|
|
119312
|
-
return TURN_MARK_KINDS.every(
|
|
119313
|
-
(kind) => RULES[kind].covers(receiver[kind], sender[kind])
|
|
119314
|
-
);
|
|
119315
|
-
}
|
|
119316
|
-
function withMarks(level, marks) {
|
|
119317
|
-
const own2 = marksOfLevel(level);
|
|
119318
|
-
if (carriesAllMarks(own2, marks)) return level;
|
|
119319
|
-
return { ...level, ...mergeMarks(own2, marks) };
|
|
119320
|
-
}
|
|
119321
|
-
function withCarriedHold(runtimeType, opts, setToFull = false) {
|
|
119322
|
-
const ceiling = opts?.permissionCeiling;
|
|
119323
|
-
if (ceiling === void 0 || setToFull || GATES_CARRIED_SHELL.has(runtimeType)) return opts;
|
|
119324
|
-
if (ceilingHoldsForOutsider(ceiling) || marksOfCeiling(ceiling).outsider !== true) return opts;
|
|
119325
|
-
const bounds = Array.isArray(ceiling) ? [...ceiling] : [ceiling];
|
|
119326
|
-
bounds.push("runtime-default");
|
|
119327
|
-
const { continuationHold: _dropped, ...rest } = opts ?? {};
|
|
119328
|
-
return { ...rest, permissionCeiling: bounds.length === 1 ? bounds[0] : bounds };
|
|
119329
|
-
}
|
|
119330
|
-
async function* refused(reason) {
|
|
119331
|
-
yield* [];
|
|
119332
|
-
throw new Error(reason);
|
|
119333
|
-
}
|
|
119334
|
-
function placeOf(runtime, sessionId, opts) {
|
|
119335
|
-
let cwd = opts?.cwd ?? opts?.roomTurn?.cwd;
|
|
119336
|
-
try {
|
|
119337
|
-
cwd ??= runtime.getSessionCwd?.(sessionId);
|
|
119338
|
-
} catch {
|
|
119339
|
-
}
|
|
119340
|
-
return { cwd, forAgent: turnAgentOf(opts) };
|
|
119341
|
-
}
|
|
119342
|
-
function applyTurnMarks(runtime, marksOfSession, recordRefused, setToFull) {
|
|
119343
|
-
const places = /* @__PURE__ */ new Map();
|
|
119344
|
-
function markedTurn(target, sessionId, opts, start) {
|
|
119345
|
-
const marks = marksForTurn(opts);
|
|
119346
|
-
if (!hasMarks(marks)) return start(opts);
|
|
119347
|
-
if (marks.outsider === true) noteChatHeardOutsider(sessionId);
|
|
119348
|
-
let sent = withCarriedHold(target.type, opts, setToFull?.(sessionId, opts) === true);
|
|
119349
|
-
if (marks.teammate !== void 0) {
|
|
119350
|
-
sent = teammateTurnOpts(opts);
|
|
119351
|
-
const refusal2 = teammateTurnRefusal(target.type, marks.teammate);
|
|
119352
|
-
if (refusal2 !== null) {
|
|
119353
|
-
recordRefused?.(sessionId, sent);
|
|
119354
|
-
return refused(refusal2);
|
|
119355
|
-
}
|
|
119356
|
-
}
|
|
119357
|
-
const place2 = placeOf(target, sessionId, sent);
|
|
119358
|
-
places.delete(sessionId);
|
|
119359
|
-
places.set(sessionId, place2);
|
|
119360
|
-
if (places.size > PLACE_MEMORY) places.delete(places.keys().next().value);
|
|
119361
|
-
return countWhileRunning(place2, marks, start(sent));
|
|
119362
|
-
}
|
|
119363
|
-
return new Proxy(runtime, {
|
|
119364
|
-
get(target, prop) {
|
|
119365
|
-
if ((prop === "sendMessage" || prop === "executeCommandIntent") && typeof target[prop] === "function") {
|
|
119366
|
-
const start = target[prop].bind(target);
|
|
119367
|
-
return (sessionId, input4, opts) => markedTurn(target, sessionId, opts, (sent) => start(sessionId, input4, sent));
|
|
119368
|
-
}
|
|
119369
|
-
if (prop === "onRuntimeTurn" && typeof target.onRuntimeTurn === "function") {
|
|
119370
|
-
const subscribe = target.onRuntimeTurn.bind(target);
|
|
119371
|
-
return (listener) => subscribe((sessionId, events) => {
|
|
119372
|
-
const marks = marksOfSession(sessionId);
|
|
119373
|
-
listener(
|
|
119374
|
-
sessionId,
|
|
119375
|
-
hasMarks(marks) ? countWhileRunning(
|
|
119376
|
-
places.get(sessionId) ?? placeOf(target, sessionId, void 0),
|
|
119377
|
-
marks,
|
|
119378
|
-
events
|
|
119379
|
-
) : events
|
|
119380
|
-
);
|
|
119381
|
-
});
|
|
119382
|
-
}
|
|
119383
|
-
const value = Reflect.get(target, prop, target);
|
|
119384
|
-
return typeof value === "function" ? value.bind(target) : value;
|
|
119385
|
-
}
|
|
119386
|
-
});
|
|
119387
|
-
}
|
|
119388
|
-
var TURN_MARK_KINDS, NO_MARKS, PLACE_MEMORY, UNKNOWN_SOURCE, sameOrigin, RULES, GATES_CARRIED_SHELL;
|
|
119389
|
-
var init_turn_marks = __esm({
|
|
119390
|
-
"../../apps/server/src/services/core/turn-power/turn-marks.ts"() {
|
|
119391
|
-
"use strict";
|
|
119392
|
-
init_permission_semantics();
|
|
119393
|
-
init_agent_home();
|
|
119394
|
-
init_outsider_turns();
|
|
119395
|
-
init_live_outsider_turns();
|
|
119396
|
-
init_teammate_mark();
|
|
119397
|
-
TURN_MARK_KINDS = [
|
|
119398
|
-
"outsider",
|
|
119399
|
-
"teammate"
|
|
119400
|
-
];
|
|
119401
|
-
NO_MARKS = Object.freeze({});
|
|
119402
|
-
PLACE_MEMORY = 1e4;
|
|
119403
|
-
UNKNOWN_SOURCE = Object.freeze({ outsider: true });
|
|
119404
|
-
sameOrigin = (a2, b2) => a2.roomId === b2.roomId && a2.authorId === b2.authorId;
|
|
119405
|
-
RULES = {
|
|
119406
|
-
outsider: {
|
|
119407
|
-
merge: (a2, b2) => a2 === true || b2 === true ? true : void 0,
|
|
119408
|
-
covers: (outer, inner) => inner !== true || outer === true
|
|
119409
|
-
},
|
|
119410
|
-
teammate: {
|
|
119411
|
-
merge: (a2, b2) => mergeTeammateOrigins(a2, b2),
|
|
119412
|
-
covers: (outer, inner) => inner === void 0 || outer !== void 0 && inner.every((origin) => outer.some((o3) => sameOrigin(o3, origin)))
|
|
119413
|
-
}
|
|
119414
|
-
};
|
|
119415
|
-
GATES_CARRIED_SHELL = /* @__PURE__ */ new Set(["claude-code"]);
|
|
119416
|
-
}
|
|
119417
|
-
});
|
|
119418
|
-
|
|
119419
119604
|
// ../../apps/server/src/services/core/turn-power/continuation-hold.ts
|
|
119420
|
-
function noteTurnHold(sessionId, held2
|
|
119605
|
+
function noteTurnHold(sessionId, held2) {
|
|
119421
119606
|
const key = primaryOf(sessionId);
|
|
119422
|
-
carriedOnly.delete(key);
|
|
119423
|
-
if (held2 && carried) {
|
|
119424
|
-
carriedOnly.add(key);
|
|
119425
|
-
if (carriedOnly.size > WRITTEN_MAX) carriedOnly.delete(carriedOnly.values().next().value);
|
|
119426
|
-
}
|
|
119427
119607
|
if (!db) return;
|
|
119428
119608
|
if (written.get(key) === held2) return;
|
|
119429
119609
|
try {
|
|
@@ -119443,17 +119623,15 @@ function noteTurnHold(sessionId, held2, carried = false) {
|
|
|
119443
119623
|
});
|
|
119444
119624
|
}
|
|
119445
119625
|
}
|
|
119446
|
-
var db, written, WRITTEN_MAX
|
|
119626
|
+
var db, written, WRITTEN_MAX;
|
|
119447
119627
|
var init_continuation_hold = __esm({
|
|
119448
119628
|
"../../apps/server/src/services/core/turn-power/continuation-hold.ts"() {
|
|
119449
119629
|
"use strict";
|
|
119450
119630
|
init_src2();
|
|
119451
|
-
init_permission_semantics();
|
|
119452
119631
|
init_session_key_registry();
|
|
119453
119632
|
init_logger();
|
|
119454
119633
|
written = /* @__PURE__ */ new Map();
|
|
119455
119634
|
WRITTEN_MAX = 1e4;
|
|
119456
|
-
carriedOnly = /* @__PURE__ */ new Set();
|
|
119457
119635
|
}
|
|
119458
119636
|
});
|
|
119459
119637
|
|
|
@@ -119626,9 +119804,7 @@ function recordTurnLevels(runtime, storedModeOf) {
|
|
|
119626
119804
|
(sessionId) => marksOfLevel(turnLevels.get(sessionId)),
|
|
119627
119805
|
(sessionId, opts) => {
|
|
119628
119806
|
recordTurn(runtime, sessionId, storedOf2(sessionId), opts);
|
|
119629
|
-
}
|
|
119630
|
-
// A chat set to Full is never held for a mark it carries (DOR-3394).
|
|
119631
|
-
(sessionId, opts) => isFullLevel(chosenLevelOf(runtime, storedOf2(sessionId), opts))
|
|
119807
|
+
}
|
|
119632
119808
|
);
|
|
119633
119809
|
}
|
|
119634
119810
|
function recordLevels(runtime, storedModeOf) {
|
|
@@ -119644,12 +119820,7 @@ function recordLevels(runtime, storedModeOf) {
|
|
|
119644
119820
|
stored = void 0;
|
|
119645
119821
|
}
|
|
119646
119822
|
const level = recordTurn(target, sessionId, stored, opts);
|
|
119647
|
-
if (opts?.continuationHold !== true)
|
|
119648
|
-
const held2 = level.outsider === true;
|
|
119649
|
-
const ceiling = opts?.permissionCeiling;
|
|
119650
|
-
const carried = held2 && !(ceiling !== void 0 && ceilingHoldsForOutsider(ceiling));
|
|
119651
|
-
noteTurnHold(sessionId, held2, carried);
|
|
119652
|
-
}
|
|
119823
|
+
if (opts?.continuationHold !== true) noteTurnHold(sessionId, level.outsider === true);
|
|
119653
119824
|
const serial = ++nextTurnSerial;
|
|
119654
119825
|
for (const id of /* @__PURE__ */ new Set([sessionId, primaryOf(sessionId)])) {
|
|
119655
119826
|
turnSerials.delete(id);
|
|
@@ -119672,7 +119843,6 @@ var init_turn_levels = __esm({
|
|
|
119672
119843
|
"use strict";
|
|
119673
119844
|
init_turn_marks();
|
|
119674
119845
|
init_session_key_registry();
|
|
119675
|
-
init_outsider_turns();
|
|
119676
119846
|
init_continuation_hold();
|
|
119677
119847
|
init_full_autonomy();
|
|
119678
119848
|
init_permission_semantics();
|
|
@@ -119845,10 +120015,7 @@ function permissionSeedForOrigin(origin) {
|
|
|
119845
120015
|
// The owner on the web, with the chat's stream open through the relay. A
|
|
119846
120016
|
// new chat is born at the operator's configured stop, as one started here
|
|
119847
120017
|
// is, so the chat is the same chat when its owner comes back to this
|
|
119848
|
-
// computer.
|
|
119849
|
-
// held to the runtime's default by the relay (`RELAY_TURN_CEILING`), so it
|
|
119850
|
-
// asks before anything that needs a person (spec `everything-is-a-space`
|
|
119851
|
-
// B2, the operator's option 2).
|
|
120018
|
+
// computer.
|
|
119852
120019
|
case "session-relay":
|
|
119853
120020
|
return "configured-stop";
|
|
119854
120021
|
// Nobody is watching a room turn either, and that is the reason it follows
|
|
@@ -119878,12 +120045,8 @@ function permissionSeedForOrigin(origin) {
|
|
|
119878
120045
|
// own: the turn runs at the stricter of the two. On insert only, so an
|
|
119879
120046
|
// existing chat a person set keeps what they chose. A person who later
|
|
119880
120047
|
// types into it gets the same stop a chat of their own starts at.
|
|
119881
|
-
//
|
|
119882
|
-
// A message from a MARKED turn seeds nothing (DOR-3107, Security): the
|
|
119883
|
-
// chat it opens never inherits the agent's own level from a turn a
|
|
119884
|
-
// stranger's words reached.
|
|
119885
120048
|
case "chat-message":
|
|
119886
|
-
return
|
|
120049
|
+
return "configured-stop-on-insert";
|
|
119887
120050
|
// Everything below seeds nothing, for two different reasons.
|
|
119888
120051
|
//
|
|
119889
120052
|
// A schedule's power is already decided and already stored, on the schedule
|
|
@@ -119928,14 +120091,9 @@ function permissionSeedForOrigin(origin) {
|
|
|
119928
120091
|
}
|
|
119929
120092
|
}
|
|
119930
120093
|
}
|
|
119931
|
-
function seedForTurn(sessionId, origin) {
|
|
119932
|
-
noteTurnOrigin(sessionId, origin);
|
|
119933
|
-
return permissionSeedForOrigin(origin);
|
|
119934
|
-
}
|
|
119935
120094
|
var init_turn_origin = __esm({
|
|
119936
120095
|
"../../apps/server/src/services/session/origin/turn-origin.ts"() {
|
|
119937
120096
|
"use strict";
|
|
119938
|
-
init_outsider_turns();
|
|
119939
120097
|
}
|
|
119940
120098
|
});
|
|
119941
120099
|
|
|
@@ -121385,16 +121543,6 @@ var init_existing_chats_raise = __esm({
|
|
|
121385
121543
|
}
|
|
121386
121544
|
});
|
|
121387
121545
|
|
|
121388
|
-
// ../../apps/server/src/services/core/permissions/chat-launch-marks.ts
|
|
121389
|
-
var init_chat_launch_marks = __esm({
|
|
121390
|
-
"../../apps/server/src/services/core/permissions/chat-launch-marks.ts"() {
|
|
121391
|
-
"use strict";
|
|
121392
|
-
init_src2();
|
|
121393
|
-
init_turn_marks();
|
|
121394
|
-
init_existing_chats_raise();
|
|
121395
|
-
}
|
|
121396
|
-
});
|
|
121397
|
-
|
|
121398
121546
|
// ../../apps/server/src/services/core/turn-power/chat-rise-facts.ts
|
|
121399
121547
|
function chatRiseFacts() {
|
|
121400
121548
|
return facts;
|
|
@@ -121404,10 +121552,7 @@ var init_chat_rise_facts = __esm({
|
|
|
121404
121552
|
"../../apps/server/src/services/core/turn-power/chat-rise-facts.ts"() {
|
|
121405
121553
|
"use strict";
|
|
121406
121554
|
init_src2();
|
|
121407
|
-
init_chat_launch_marks();
|
|
121408
121555
|
init_session_key_registry();
|
|
121409
|
-
init_outsider_turns();
|
|
121410
|
-
init_continuation_hold();
|
|
121411
121556
|
init_logger();
|
|
121412
121557
|
facts = null;
|
|
121413
121558
|
}
|
|
@@ -121470,10 +121615,7 @@ async function agentOfTurn(runtime, sessionId, opts, recordedAgentOf) {
|
|
|
121470
121615
|
}
|
|
121471
121616
|
function turnIsMarked(opts) {
|
|
121472
121617
|
const ceiling = opts?.permissionCeiling;
|
|
121473
|
-
|
|
121474
|
-
if (opts?.teammate === true || opts?.roomTurn?.teammate === true) return true;
|
|
121475
|
-
if (opts?.roomTurn?.outsiderInView === true) return true;
|
|
121476
|
-
return marksForTurn(opts).teammate !== void 0;
|
|
121618
|
+
return ceiling !== void 0 && ceilingHoldsForOutsider(ceiling);
|
|
121477
121619
|
}
|
|
121478
121620
|
function rises(runtime, sessionId, agentPath, stored, levelMode, opts) {
|
|
121479
121621
|
if (opts?.permissionMode !== void 0 || opts?.unattended === true) return false;
|
|
@@ -121579,7 +121721,6 @@ var init_agent_level_bound = __esm({
|
|
|
121579
121721
|
init_agent_launch_level();
|
|
121580
121722
|
init_existing_chats_raise();
|
|
121581
121723
|
init_chat_rise_facts();
|
|
121582
|
-
init_turn_marks();
|
|
121583
121724
|
init_logger();
|
|
121584
121725
|
COMPUTER_LOCAL_RUNTIME = "computer-local";
|
|
121585
121726
|
}
|
|
@@ -122432,7 +122573,7 @@ function toolFields(event) {
|
|
|
122432
122573
|
};
|
|
122433
122574
|
}
|
|
122434
122575
|
async function* recordDuring(runtime, sessionId, opts, source) {
|
|
122435
|
-
const
|
|
122576
|
+
const pending = /* @__PURE__ */ new Map();
|
|
122436
122577
|
const seen = /* @__PURE__ */ new Set();
|
|
122437
122578
|
let actor;
|
|
122438
122579
|
const actorOf = () => actor ??= toolActorOf(runtime.type, opts);
|
|
@@ -122475,15 +122616,15 @@ async function* recordDuring(runtime, sessionId, opts, source) {
|
|
|
122475
122616
|
seen.add(fields.id);
|
|
122476
122617
|
if (isFinished(sessionId, fields.id)) return;
|
|
122477
122618
|
const earlier = stillRunning.get(sessionId)?.get(fields.id);
|
|
122478
|
-
let call =
|
|
122619
|
+
let call = pending.get(fields.id);
|
|
122479
122620
|
if (!call && earlier) {
|
|
122480
122621
|
call = { name: earlier.name, input: earlier.input, inputDone: true };
|
|
122481
|
-
|
|
122622
|
+
pending.set(fields.id, call);
|
|
122482
122623
|
}
|
|
122483
122624
|
if (!call) {
|
|
122484
122625
|
if (!fields.name || isDorkosTool(runtime.type, fields.name)) return;
|
|
122485
122626
|
call = { name: fields.name, input: "", inputDone: false };
|
|
122486
|
-
|
|
122627
|
+
pending.set(fields.id, call);
|
|
122487
122628
|
}
|
|
122488
122629
|
if (event.type === "tool_call_end" || event.type !== "tool_call_delta" && fields.input !== void 0 && fields.input !== "") {
|
|
122489
122630
|
call.inputDone = true;
|
|
@@ -122492,7 +122633,7 @@ async function* recordDuring(runtime, sessionId, opts, source) {
|
|
|
122492
122633
|
call.input = event.type === "tool_call_delta" ? (call.input + fields.input).slice(0, MAX_INPUT) : fields.input.slice(0, MAX_INPUT);
|
|
122493
122634
|
}
|
|
122494
122635
|
if (fields.status === "complete" || fields.status === "error") {
|
|
122495
|
-
|
|
122636
|
+
pending.delete(fields.id);
|
|
122496
122637
|
const finishedCall = earlier ?? callOf(fields.id, call);
|
|
122497
122638
|
if (finishedCall) {
|
|
122498
122639
|
recordRuntimeToolCall(
|
|
@@ -122511,7 +122652,7 @@ async function* recordDuring(runtime, sessionId, opts, source) {
|
|
|
122511
122652
|
yield event;
|
|
122512
122653
|
}
|
|
122513
122654
|
} finally {
|
|
122514
|
-
for (const [toolCallId, call] of
|
|
122655
|
+
for (const [toolCallId, call] of pending) {
|
|
122515
122656
|
if (!call.inputDone) continue;
|
|
122516
122657
|
try {
|
|
122517
122658
|
const running2 = callOf(toolCallId, call);
|
|
@@ -122793,22 +122934,7 @@ var init_decorate_runtime = __esm({
|
|
|
122793
122934
|
}
|
|
122794
122935
|
});
|
|
122795
122936
|
|
|
122796
|
-
// ../../apps/server/src/services/core/runtime-
|
|
122797
|
-
function rowToSettings(row2) {
|
|
122798
|
-
const settings = {};
|
|
122799
|
-
if (row2.permissionMode != null) settings.permissionMode = row2.permissionMode;
|
|
122800
|
-
if (row2.model != null) settings.model = row2.model;
|
|
122801
|
-
if (row2.effort != null) {
|
|
122802
|
-
const effort = EffortLevelSchema.safeParse(row2.effort);
|
|
122803
|
-
if (effort.success) settings.effort = effort.data;
|
|
122804
|
-
else
|
|
122805
|
-
logger.warn("[RuntimeRegistry] ignoring an unreadable stored effort level", {
|
|
122806
|
-
stored: row2.effort
|
|
122807
|
-
});
|
|
122808
|
-
}
|
|
122809
|
-
if (row2.fastMode != null) settings.fastMode = row2.fastMode;
|
|
122810
|
-
return settings;
|
|
122811
|
-
}
|
|
122937
|
+
// ../../apps/server/src/services/core/runtime-seam/session-metadata-columns.ts
|
|
122812
122938
|
function pickSettings(settings) {
|
|
122813
122939
|
const patch = {};
|
|
122814
122940
|
if (settings.permissionMode !== void 0) patch.permissionMode = settings.permissionMode;
|
|
@@ -122825,6 +122951,37 @@ function fillNullsWith(seed) {
|
|
|
122825
122951
|
}
|
|
122826
122952
|
return update;
|
|
122827
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
|
+
}
|
|
122828
122985
|
function moveSessionContext(db2, fromId, toId) {
|
|
122829
122986
|
const source = db2.select().from(sessionContext).where(eq(sessionContext.sessionId, fromId)).get();
|
|
122830
122987
|
if (!source) return;
|
|
@@ -122859,6 +123016,7 @@ var init_runtime_registry = __esm({
|
|
|
122859
123016
|
init_session_started_by_store();
|
|
122860
123017
|
init_session_touch_store();
|
|
122861
123018
|
init_decorate_runtime();
|
|
123019
|
+
init_session_metadata_columns();
|
|
122862
123020
|
BOUND_RUNTIME_CHUNK_SIZE = 500;
|
|
122863
123021
|
RuntimeNotRegisteredError = class extends Error {
|
|
122864
123022
|
constructor(runtime, sessionId) {
|
|
@@ -122976,7 +123134,7 @@ var init_runtime_registry = __esm({
|
|
|
122976
123134
|
async persistSessionRuntime(sessionId, runtime, origin, agentPath) {
|
|
122977
123135
|
const db2 = this.requireDb("persistSessionRuntime");
|
|
122978
123136
|
const agent = await readAgentExecutionDefaults(agentPath);
|
|
122979
|
-
const seedPolicy =
|
|
123137
|
+
const seedPolicy = permissionSeedForOrigin(origin);
|
|
122980
123138
|
const seed = this.seedForNewRow(runtime, { agent, seedPolicy });
|
|
122981
123139
|
const result2 = await db2.insert(sessionMetadata).values({
|
|
122982
123140
|
sessionId,
|
|
@@ -122985,7 +123143,7 @@ var init_runtime_registry = __esm({
|
|
|
122985
123143
|
// What started it, server-held and never overwritten: the fact that
|
|
122986
123144
|
// decides whether a limited session may carry its work to another
|
|
122987
123145
|
// account (spec `claude-account-fleet` D9).
|
|
122988
|
-
|
|
123146
|
+
...launchColumns(origin),
|
|
122989
123147
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
122990
123148
|
...seed
|
|
122991
123149
|
}).onConflictDoUpdate({
|
|
@@ -122998,7 +123156,7 @@ var init_runtime_registry = __esm({
|
|
|
122998
123156
|
...agentPath !== void 0 ? { agentPath } : {},
|
|
122999
123157
|
...fillNullsWith(seed),
|
|
123000
123158
|
// The claim names what started the session only when nothing has yet.
|
|
123001
|
-
|
|
123159
|
+
...launchColumns(origin, "claim"),
|
|
123002
123160
|
// **The UPDATE branch is a CLAIM, and not every origin may seed one.**
|
|
123003
123161
|
// This row already exists: something created it before the session
|
|
123004
123162
|
// started, which for a person is their own pre-launch settings change
|
|
@@ -123585,6 +123743,7 @@ var init_runtime_registry = __esm({
|
|
|
123585
123743
|
fastMode: destination.fastMode ?? source.fastMode,
|
|
123586
123744
|
agentPath: destination.agentPath ?? source.agentPath,
|
|
123587
123745
|
launchOrigin: destination.launchOrigin ?? source.launchOrigin,
|
|
123746
|
+
launchedBy: destination.launchedBy ?? source.launchedBy,
|
|
123588
123747
|
lastAutoResumeFor: destination.lastAutoResumeFor ?? source.lastAutoResumeFor
|
|
123589
123748
|
}).where(eq(sessionMetadata.sessionId, toId)).run();
|
|
123590
123749
|
});
|
|
@@ -124314,9 +124473,13 @@ var init_safe_git = __esm({
|
|
|
124314
124473
|
"blame\\.ignorerevsfile",
|
|
124315
124474
|
"rerere\\.enabled",
|
|
124316
124475
|
"lfs\\.repositoryformatversion",
|
|
124317
|
-
|
|
124318
|
-
|
|
124319
|
-
|
|
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)",
|
|
124320
124483
|
"fetch\\.(?:prune|writecommitgraph)",
|
|
124321
124484
|
"pull\\.rebase",
|
|
124322
124485
|
"user\\.(?:name|email)"
|
|
@@ -124917,18 +125080,18 @@ var init_project_registry = __esm({
|
|
|
124917
125080
|
*/
|
|
124918
125081
|
async withSlot(extensionId, root, name2) {
|
|
124919
125082
|
if (this.reporters.get(root)?.has(extensionId)) return name2();
|
|
124920
|
-
let
|
|
124921
|
-
if (
|
|
124922
|
-
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) {
|
|
124923
125086
|
return null;
|
|
124924
125087
|
}
|
|
124925
|
-
if (!
|
|
124926
|
-
|
|
125088
|
+
if (!pending) this.reserved.set(extensionId, pending = /* @__PURE__ */ new Set());
|
|
125089
|
+
pending.add(root);
|
|
124927
125090
|
try {
|
|
124928
125091
|
return await name2();
|
|
124929
125092
|
} finally {
|
|
124930
|
-
|
|
124931
|
-
if (
|
|
125093
|
+
pending.delete(root);
|
|
125094
|
+
if (pending.size === 0) this.reserved.delete(extensionId);
|
|
124932
125095
|
}
|
|
124933
125096
|
}
|
|
124934
125097
|
/**
|
|
@@ -133882,7 +134045,9 @@ call.
|
|
|
133882
134045
|
the repository is refused. Copy the real content in and commit that instead;
|
|
133883
134046
|
when the source changes, copy it again.
|
|
133884
134047
|
- **This room does not have files of its own**: most rooms are conversations.
|
|
133885
|
-
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.
|
|
133886
134051
|
|
|
133887
134052
|
## Your own code
|
|
133888
134053
|
|
|
@@ -133922,7 +134087,7 @@ var init_using_the_agent_browser = __esm({
|
|
|
133922
134087
|
init_tool_name_note();
|
|
133923
134088
|
usingTheAgentBrowser = {
|
|
133924
134089
|
name: "using-the-agent-browser",
|
|
133925
|
-
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.",
|
|
133926
134091
|
body: `# Using the agent browser
|
|
133927
134092
|
|
|
133928
134093
|
${TOOL_NAME_NOTE}
|
|
@@ -133942,6 +134107,10 @@ Two sets of tools can both end in \`browser_navigate\`, \`browser_click\` and so
|
|
|
133942
134107
|
- **DorkOS's own browser tools** (\`browser_navigate\`, \`browser_read_page\`,
|
|
133943
134108
|
\`browser_read_console\` and the rest, on the DorkOS server) drive the browser
|
|
133944
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.
|
|
133945
134114
|
|
|
133946
134115
|
## What you get
|
|
133947
134116
|
|
|
@@ -133971,17 +134140,27 @@ Two sets of tools can both end in \`browser_navigate\`, \`browser_click\` and so
|
|
|
133971
134140
|
The site is not saved, or its sign-in ran out. Stop and say so, in one message:
|
|
133972
134141
|
|
|
133973
134142
|
1. Name the site you need.
|
|
133974
|
-
2. Ask the person to
|
|
133975
|
-
and
|
|
133976
|
-
3.
|
|
133977
|
-
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.
|
|
133978
134146
|
|
|
133979
|
-
|
|
133980
|
-
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.
|
|
133981
134150
|
|
|
133982
134151
|
Do not save a sign-in from inside your own browser. It is thrown away when the
|
|
133983
134152
|
browser closes, and it would be a login made without the operator watching.
|
|
133984
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
|
+
|
|
133985
134164
|
## Checking what is saved
|
|
133986
134165
|
|
|
133987
134166
|
Your DorkOS context tells you (an \`<agent_browser>\` note) when your browser has
|
|
@@ -138858,7 +139037,7 @@ __export(project_with_consent_exports, {
|
|
|
138858
139037
|
withProjectLock: () => withProjectLock,
|
|
138859
139038
|
withProvenInstalls: () => withProvenInstalls
|
|
138860
139039
|
});
|
|
138861
|
-
import { AsyncLocalStorage as
|
|
139040
|
+
import { AsyncLocalStorage as AsyncLocalStorage5 } from "node:async_hooks";
|
|
138862
139041
|
import { realpathSync as realpathSync14 } from "node:fs";
|
|
138863
139042
|
import { join as join49, resolve as resolve9 } from "node:path";
|
|
138864
139043
|
function projectLockKey(projectPath) {
|
|
@@ -139085,13 +139264,13 @@ var init_project_with_consent = __esm({
|
|
|
139085
139264
|
};
|
|
139086
139265
|
projectLocks = /* @__PURE__ */ new Map();
|
|
139087
139266
|
projectLockQueue = /* @__PURE__ */ new Map();
|
|
139088
|
-
heldByCaller = new
|
|
139267
|
+
heldByCaller = new AsyncLocalStorage5();
|
|
139089
139268
|
reportedAtFull = /* @__PURE__ */ new Set();
|
|
139090
139269
|
}
|
|
139091
139270
|
});
|
|
139092
139271
|
|
|
139093
139272
|
// ../shared/src/atomic-write.ts
|
|
139094
|
-
import { AsyncLocalStorage as
|
|
139273
|
+
import { AsyncLocalStorage as AsyncLocalStorage6 } from "node:async_hooks";
|
|
139095
139274
|
import { randomUUID as randomUUID3 } from "node:crypto";
|
|
139096
139275
|
import { chmod, mkdir as mkdir4, rename as rename2, rm, writeFile as writeFile3 } from "node:fs/promises";
|
|
139097
139276
|
import { basename as basename8, dirname as dirname13, join as join50, resolve as resolve10 } from "node:path";
|
|
@@ -139143,7 +139322,7 @@ var pathLocks, heldLocks;
|
|
|
139143
139322
|
var init_atomic_write2 = __esm({
|
|
139144
139323
|
"../shared/src/atomic-write.ts"() {
|
|
139145
139324
|
pathLocks = /* @__PURE__ */ new Map();
|
|
139146
|
-
heldLocks = new
|
|
139325
|
+
heldLocks = new AsyncLocalStorage6();
|
|
139147
139326
|
}
|
|
139148
139327
|
});
|
|
139149
139328
|
|
|
@@ -145803,17 +145982,17 @@ function launchChromeWithPipe(executable, args, spawnChrome = defaultSpawn) {
|
|
|
145803
145982
|
}
|
|
145804
145983
|
let nextId = 0;
|
|
145805
145984
|
let exitedFlag = false;
|
|
145806
|
-
const
|
|
145985
|
+
const pending = /* @__PURE__ */ new Map();
|
|
145807
145986
|
const listeners = /* @__PURE__ */ new Set();
|
|
145808
145987
|
const exited = new Promise((resolve14) => {
|
|
145809
145988
|
const finish = (code, signal) => {
|
|
145810
145989
|
if (exitedFlag) return;
|
|
145811
145990
|
exitedFlag = true;
|
|
145812
|
-
for (const waiter of
|
|
145991
|
+
for (const waiter of pending.values()) {
|
|
145813
145992
|
clearTimeout(waiter.timer);
|
|
145814
145993
|
waiter.reject(new ChromeExitedError());
|
|
145815
145994
|
}
|
|
145816
|
-
|
|
145995
|
+
pending.clear();
|
|
145817
145996
|
resolve14({ code, signal });
|
|
145818
145997
|
};
|
|
145819
145998
|
child.once("exit", finish);
|
|
@@ -145837,9 +146016,9 @@ function launchChromeWithPipe(executable, args, spawnChrome = defaultSpawn) {
|
|
|
145837
146016
|
continue;
|
|
145838
146017
|
}
|
|
145839
146018
|
if (typeof message2.id === "number") {
|
|
145840
|
-
const waiter =
|
|
146019
|
+
const waiter = pending.get(message2.id);
|
|
145841
146020
|
if (!waiter) continue;
|
|
145842
|
-
|
|
146021
|
+
pending.delete(message2.id);
|
|
145843
146022
|
clearTimeout(waiter.timer);
|
|
145844
146023
|
if (message2.error) waiter.reject(new Error(message2.error.message ?? "Chrome refused."));
|
|
145845
146024
|
else waiter.resolve(message2.result ?? {});
|
|
@@ -145858,10 +146037,10 @@ function launchChromeWithPipe(executable, args, spawnChrome = defaultSpawn) {
|
|
|
145858
146037
|
const id = ++nextId;
|
|
145859
146038
|
return new Promise((resolve14, reject) => {
|
|
145860
146039
|
const timer = setTimeout(() => {
|
|
145861
|
-
|
|
146040
|
+
pending.delete(id);
|
|
145862
146041
|
reject(new Error(`Chrome did not answer ${method} in time.`));
|
|
145863
146042
|
}, timeoutMs);
|
|
145864
|
-
|
|
146043
|
+
pending.set(id, { resolve: resolve14, reject, timer });
|
|
145865
146044
|
toChrome.write(
|
|
145866
146045
|
`${JSON.stringify({ id, method, params, ...sessionId ? { sessionId } : {} })}\0`
|
|
145867
146046
|
);
|
|
@@ -146039,7 +146218,9 @@ var init_profile2 = __esm({
|
|
|
146039
146218
|
|
|
146040
146219
|
// ../shared/src/cloud-origin.ts
|
|
146041
146220
|
function normalizeHost2(host) {
|
|
146042
|
-
|
|
146221
|
+
let end = host.length;
|
|
146222
|
+
while (end > 0 && host[end - 1] === ".") end -= 1;
|
|
146223
|
+
return host.slice(0, end).toLowerCase();
|
|
146043
146224
|
}
|
|
146044
146225
|
function entryFor(url2) {
|
|
146045
146226
|
let parsed;
|
|
@@ -146856,9 +147037,9 @@ function formatVersion(version4, source) {
|
|
|
146856
147037
|
}
|
|
146857
147038
|
function formatUpdateLine(check4) {
|
|
146858
147039
|
const installed = formatVersion(check4.installedVersion, check4.installedVersionSource);
|
|
146859
|
-
const
|
|
147040
|
+
const latest = formatVersion(check4.latestVersion, check4.latestVersionSource);
|
|
146860
147041
|
const from = check4.marketplace ? ` (${check4.marketplace})` : "";
|
|
146861
|
-
return `${labelOf(check4)} ${installed} \u2192 ${
|
|
147042
|
+
return `${labelOf(check4)} ${installed} \u2192 ${latest}${from}`;
|
|
146862
147043
|
}
|
|
146863
147044
|
var init_installation_label = __esm({
|
|
146864
147045
|
"src/lib/installation-label.ts"() {
|
|
@@ -150754,7 +150935,7 @@ async function unsetFlyTigrisSecrets(options, appName) {
|
|
|
150754
150935
|
}
|
|
150755
150936
|
function verifyFlyDeployment(inventory, previousReleases, expectedRepository, expectedDigest) {
|
|
150756
150937
|
const latestRelease = inventory.releases.reduce(
|
|
150757
|
-
(
|
|
150938
|
+
(latest, release) => !latest || release.version > latest.version ? release : latest,
|
|
150758
150939
|
void 0
|
|
150759
150940
|
);
|
|
150760
150941
|
const releaseIsNew = latestRelease !== void 0 && !previousReleases.some(
|
|
@@ -150767,7 +150948,7 @@ function verifyFlyDeployment(inventory, previousReleases, expectedRepository, ex
|
|
|
150767
150948
|
}
|
|
150768
150949
|
function isInterruptedFlyDeployment(inventory, expectedRepository, expectedDigest) {
|
|
150769
150950
|
const latestRelease = inventory.releases.reduce(
|
|
150770
|
-
(
|
|
150951
|
+
(latest, release) => !latest || release.version > latest.version ? release : latest,
|
|
150771
150952
|
void 0
|
|
150772
150953
|
);
|
|
150773
150954
|
const machine = inventory.machines[0];
|
|
@@ -150775,7 +150956,7 @@ function isInterruptedFlyDeployment(inventory, expectedRepository, expectedDiges
|
|
|
150775
150956
|
}
|
|
150776
150957
|
function verifyExistingFlyDeployment(inventory, expectedRepository, expectedDigest) {
|
|
150777
150958
|
const latestRelease = inventory.releases.reduce(
|
|
150778
|
-
(
|
|
150959
|
+
(latest, release) => !latest || release.version > latest.version ? release : latest,
|
|
150779
150960
|
void 0
|
|
150780
150961
|
);
|
|
150781
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) {
|
|
@@ -152708,7 +152889,7 @@ async function waitForFlyMachineLeases(options) {
|
|
|
152708
152889
|
}
|
|
152709
152890
|
}
|
|
152710
152891
|
async function latestLeaseEnd(options) {
|
|
152711
|
-
let
|
|
152892
|
+
let latest;
|
|
152712
152893
|
for (const machineId of options.machineIds) {
|
|
152713
152894
|
let lease;
|
|
152714
152895
|
try {
|
|
@@ -152719,10 +152900,10 @@ async function latestLeaseEnd(options) {
|
|
|
152719
152900
|
}
|
|
152720
152901
|
if (!lease) continue;
|
|
152721
152902
|
if (lease.expiresAtMs !== null && lease.expiresAtMs <= options.now()) continue;
|
|
152722
|
-
if (lease.expiresAtMs === null ||
|
|
152723
|
-
else
|
|
152903
|
+
if (lease.expiresAtMs === null || latest === null) latest = null;
|
|
152904
|
+
else latest = latest === void 0 ? lease.expiresAtMs : Math.max(latest, lease.expiresAtMs);
|
|
152724
152905
|
}
|
|
152725
|
-
return
|
|
152906
|
+
return latest;
|
|
152726
152907
|
}
|
|
152727
152908
|
async function heldLeaseMinutes(options) {
|
|
152728
152909
|
const ends = await latestLeaseEnd({
|
|
@@ -153818,7 +153999,7 @@ function provesFreshStage(inventory, baseline) {
|
|
|
153818
153999
|
function runtimeEvidence(inventory) {
|
|
153819
154000
|
const machine = inventory.machines[0];
|
|
153820
154001
|
const release = inventory.releases.reduce(
|
|
153821
|
-
(
|
|
154002
|
+
(latest, value) => !latest || value.version > latest.version ? value : latest,
|
|
153822
154003
|
void 0
|
|
153823
154004
|
);
|
|
153824
154005
|
const address = inventory.addresses[0];
|
|
@@ -155637,8 +155818,8 @@ function formatCommunityRecovery(journal) {
|
|
|
155637
155818
|
Console: https://fly.io/apps/${selection.appName}
|
|
155638
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
|
|
155639
155820
|
].filter((row2) => row2 !== null);
|
|
155640
|
-
const
|
|
155641
|
-
const tigrisKeysMissing =
|
|
155821
|
+
const pending = journal.pendingIntent;
|
|
155822
|
+
const tigrisKeysMissing = pending?.provider === "tigris" && journal.resources.tigrisBucketId !== void 0 && journal.lastSafeError?.code === "MISSING_TIGRIS_SECRETS";
|
|
155642
155823
|
const reconciliation = tigrisKeysMissing ? selection ? [
|
|
155643
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.`,
|
|
155644
155825
|
`1. Open the bucket's Tigris console: fly storage dashboard ${selection.bucketName} --app ${selection.appName}`,
|
|
@@ -155647,12 +155828,12 @@ function formatCommunityRecovery(journal) {
|
|
|
155647
155828
|
" then type two lines, AWS_ACCESS_KEY_ID=<key id> and AWS_SECRET_ACCESS_KEY=<secret>, and press Ctrl-D.",
|
|
155648
155829
|
" (Typing them keeps the secret out of your shell history.)",
|
|
155649
155830
|
"4. Resume with the command below."
|
|
155650
|
-
].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.` :
|
|
155651
|
-
Console: https://fly.io/dashboard/${
|
|
155652
|
-
Console: https://console.neon.tech` : `Unresolved Tigris creation intent for ${
|
|
155653
|
-
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;
|
|
155654
155835
|
const command = resumeCommand(journal);
|
|
155655
|
-
const noRecordedId =
|
|
155836
|
+
const noRecordedId = pending !== null && !journal.resources[pending.provider === "fly" ? "flyAppId" : pending.provider === "neon" ? "neonProjectId" : "tigrisBucketId"];
|
|
155656
155837
|
const nextStep = journal.pendingRemoval ? [
|
|
155657
155838
|
"Next: finish the removal that is in progress with:",
|
|
155658
155839
|
` dorkos community deploy --remove-uncertain ${journal.runId}`
|
|
@@ -155806,7 +155987,7 @@ async function runCommunityDispatcher(args, context2) {
|
|
|
155806
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}`
|
|
155807
155988
|
);
|
|
155808
155989
|
}
|
|
155809
|
-
let
|
|
155990
|
+
let latest = resumeJournal;
|
|
155810
155991
|
let selection;
|
|
155811
155992
|
try {
|
|
155812
155993
|
const appName = required2(parsed.values["app-name"], "--app-name");
|
|
@@ -155822,9 +156003,9 @@ async function runCommunityDispatcher(args, context2) {
|
|
|
155822
156003
|
bucketName: parsed.values["bucket-name"] ?? appName
|
|
155823
156004
|
};
|
|
155824
156005
|
} catch (error63) {
|
|
155825
|
-
if (
|
|
156006
|
+
if (latest) {
|
|
155826
156007
|
process.stderr.write(`Space setup stopped.
|
|
155827
|
-
${formatCommunityRecovery(
|
|
156008
|
+
${formatCommunityRecovery(latest)}
|
|
155828
156009
|
`);
|
|
155829
156010
|
}
|
|
155830
156011
|
throw error63;
|
|
@@ -155917,7 +156098,7 @@ Journal: ${journalPath}
|
|
|
155917
156098
|
if (parsed.values.resume) {
|
|
155918
156099
|
const existing = resumeJournal;
|
|
155919
156100
|
assertCommunityLaunchPlanUnchanged(existing, result2.plan);
|
|
155920
|
-
|
|
156101
|
+
latest = existing;
|
|
155921
156102
|
}
|
|
155922
156103
|
await confirmOwnerClipboardWrite(
|
|
155923
156104
|
localEnv,
|
|
@@ -155926,28 +156107,28 @@ Journal: ${journalPath}
|
|
|
155926
156107
|
cancellation.signal
|
|
155927
156108
|
);
|
|
155928
156109
|
if (!parsed.values.resume) {
|
|
155929
|
-
|
|
156110
|
+
latest = createInitialCommunityLaunchJournal(
|
|
155930
156111
|
runId,
|
|
155931
156112
|
result2.plan,
|
|
155932
156113
|
(/* @__PURE__ */ new Date()).toISOString()
|
|
155933
156114
|
);
|
|
155934
|
-
await initializeLaunchJournal(journalPath,
|
|
156115
|
+
await initializeLaunchJournal(journalPath, latest);
|
|
155935
156116
|
}
|
|
155936
|
-
if (!
|
|
156117
|
+
if (!latest) throw new Error("Space server launch journal was not initialized");
|
|
155937
156118
|
const persist3 = async (next, expectedRevision) => {
|
|
155938
156119
|
await writeLaunchJournal(journalPath, next, expectedRevision);
|
|
155939
|
-
|
|
156120
|
+
latest = next;
|
|
155940
156121
|
};
|
|
155941
156122
|
process.stdout.write(
|
|
155942
156123
|
"Provisioning Fly, Neon, and private Tigris resources. Progress is saved after each verified identity.\n"
|
|
155943
156124
|
);
|
|
155944
|
-
|
|
156125
|
+
latest = await executeCommunityCreationPhase(
|
|
155945
156126
|
result2.plan,
|
|
155946
|
-
|
|
156127
|
+
latest,
|
|
155947
156128
|
createDefaultCommunityCreationDependencies({
|
|
155948
156129
|
options: serviceOptions,
|
|
155949
156130
|
plan: result2.plan,
|
|
155950
|
-
latestJournal: () =>
|
|
156131
|
+
latestJournal: () => latest,
|
|
155951
156132
|
persist: persist3,
|
|
155952
156133
|
now: () => (/* @__PURE__ */ new Date()).toISOString(),
|
|
155953
156134
|
progress: (service) => process.stdout.write(`Checking ${service} resource identity\u2026
|
|
@@ -155964,21 +156145,21 @@ Journal: ${journalPath}
|
|
|
155964
156145
|
);
|
|
155965
156146
|
const deployed = await executeCommunityDeployPhase(
|
|
155966
156147
|
result2.plan,
|
|
155967
|
-
|
|
156148
|
+
latest,
|
|
155968
156149
|
createDefaultCommunityDeployDependencies({
|
|
155969
156150
|
options: serviceOptions,
|
|
155970
156151
|
plan: result2.plan,
|
|
155971
|
-
latestJournal: () =>
|
|
156152
|
+
latestJournal: () => latest,
|
|
155972
156153
|
persist: persist3,
|
|
155973
156154
|
now: () => (/* @__PURE__ */ new Date()).toISOString(),
|
|
155974
156155
|
resolvePlatformDigest: platformDigest
|
|
155975
156156
|
})
|
|
155976
156157
|
);
|
|
155977
|
-
|
|
156158
|
+
latest = deployed.journal;
|
|
155978
156159
|
process.stdout.write("Verifying the owner handoff and final deployment health\u2026\n");
|
|
155979
|
-
|
|
156160
|
+
latest = await executeCommunityOwnerHandoff(
|
|
155980
156161
|
result2.plan,
|
|
155981
|
-
|
|
156162
|
+
latest,
|
|
155982
156163
|
deployed.bootstrapSecret,
|
|
155983
156164
|
createDefaultCommunityOwnerDependencies({
|
|
155984
156165
|
options: serviceOptions,
|
|
@@ -155987,13 +156168,13 @@ Journal: ${journalPath}
|
|
|
155987
156168
|
persist: persist3,
|
|
155988
156169
|
now: () => (/* @__PURE__ */ new Date()).toISOString(),
|
|
155989
156170
|
signal: cancellation.signal,
|
|
155990
|
-
platformDigest: async () =>
|
|
156171
|
+
platformDigest: async () => latest?.imagePlatformDigest ?? platformDigest()
|
|
155991
156172
|
})
|
|
155992
156173
|
);
|
|
155993
156174
|
process.stdout.write(
|
|
155994
|
-
|
|
156175
|
+
latest.state === "complete" ? `${formatCommunityCompletion(`https://${result2.plan.fly.appName}.fly.dev`)}
|
|
155995
156176
|
` : `Space setup is waiting for owner completion.
|
|
155996
|
-
${formatCommunityRecovery(
|
|
156177
|
+
${formatCommunityRecovery(latest)}
|
|
155997
156178
|
`
|
|
155998
156179
|
);
|
|
155999
156180
|
}
|
|
@@ -156001,33 +156182,33 @@ ${formatCommunityRecovery(latest2)}
|
|
|
156001
156182
|
);
|
|
156002
156183
|
return 0;
|
|
156003
156184
|
} catch (error63) {
|
|
156004
|
-
if (
|
|
156005
|
-
const uncertain =
|
|
156185
|
+
if (latest && cancellation.signal.aborted && !latest.pendingRemoval) {
|
|
156186
|
+
const uncertain = latest.pendingIntent !== null || latest.state === "uncertain";
|
|
156006
156187
|
const cancelled = {
|
|
156007
|
-
...
|
|
156008
|
-
revision:
|
|
156009
|
-
state: uncertain ? "uncertain" :
|
|
156188
|
+
...latest,
|
|
156189
|
+
revision: latest.revision + 1,
|
|
156190
|
+
state: uncertain ? "uncertain" : latest.state,
|
|
156010
156191
|
lastSafeError: uncertain ? { category: "uncertain", code: "CREATION_OUTCOME_UNCERTAIN" } : { category: "transient", code: "CANCELLED" },
|
|
156011
156192
|
updatedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
156012
156193
|
};
|
|
156013
|
-
await writeLaunchJournal(journalPath, cancelled,
|
|
156014
|
-
|
|
156194
|
+
await writeLaunchJournal(journalPath, cancelled, latest.revision).catch(() => void 0);
|
|
156195
|
+
latest = cancelled;
|
|
156015
156196
|
}
|
|
156016
|
-
const failed =
|
|
156017
|
-
if (
|
|
156018
|
-
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;
|
|
156019
156200
|
await writeLaunchJournal(journalPath, failed, previous.revision).catch(() => void 0);
|
|
156020
|
-
|
|
156201
|
+
latest = failed;
|
|
156021
156202
|
}
|
|
156022
|
-
if (error63 instanceof CommunityCreationRefusedError &&
|
|
156023
|
-
await stopForRefusedCreate(error63,
|
|
156203
|
+
if (error63 instanceof CommunityCreationRefusedError && latest) {
|
|
156204
|
+
await stopForRefusedCreate(error63, latest, journalPath, childEnv, formatCommunityRecovery);
|
|
156024
156205
|
}
|
|
156025
|
-
if (
|
|
156206
|
+
if (latest) {
|
|
156026
156207
|
process.stderr.write(`Space setup stopped.
|
|
156027
|
-
${formatCommunityRecovery(
|
|
156208
|
+
${formatCommunityRecovery(latest)}
|
|
156028
156209
|
`);
|
|
156029
|
-
if (cancellation.signal.aborted && !
|
|
156030
|
-
process.stderr.write(`${describeStoppedLaunch(
|
|
156210
|
+
if (cancellation.signal.aborted && !latest.pendingRemoval) {
|
|
156211
|
+
process.stderr.write(`${describeStoppedLaunch(latest)}
|
|
156031
156212
|
`);
|
|
156032
156213
|
return stopExitCode(stopSignal);
|
|
156033
156214
|
}
|
|
@@ -160482,7 +160663,7 @@ var init_internal_adapter = __esm({
|
|
|
160482
160663
|
field: "identifier",
|
|
160483
160664
|
value: id
|
|
160484
160665
|
}];
|
|
160485
|
-
const
|
|
160666
|
+
const latest = (await txAdapter.findMany({
|
|
160486
160667
|
model: "verification",
|
|
160487
160668
|
where,
|
|
160488
160669
|
sortBy: {
|
|
@@ -160491,16 +160672,16 @@ var init_internal_adapter = __esm({
|
|
|
160491
160672
|
},
|
|
160492
160673
|
limit: 1
|
|
160493
160674
|
}))[0] ?? null;
|
|
160494
|
-
if (!
|
|
160675
|
+
if (!latest) return null;
|
|
160495
160676
|
return consumeOneWithHooks("verification", [{
|
|
160496
160677
|
field: "id",
|
|
160497
|
-
value:
|
|
160678
|
+
value: latest.id
|
|
160498
160679
|
}], async () => {
|
|
160499
160680
|
const row2 = await txAdapter.consumeOne({
|
|
160500
160681
|
model: "verification",
|
|
160501
160682
|
where: [{
|
|
160502
160683
|
field: "id",
|
|
160503
|
-
value:
|
|
160684
|
+
value: latest.id
|
|
160504
160685
|
}]
|
|
160505
160686
|
});
|
|
160506
160687
|
if (!row2) return null;
|
|
@@ -160509,7 +160690,7 @@ var init_internal_adapter = __esm({
|
|
|
160509
160690
|
where
|
|
160510
160691
|
});
|
|
160511
160692
|
return row2;
|
|
160512
|
-
},
|
|
160693
|
+
}, latest);
|
|
160513
160694
|
}));
|
|
160514
160695
|
for (const stored of identifiersToTry) {
|
|
160515
160696
|
consumed = await consumeByIdentifier(stored);
|
|
@@ -178036,14 +178217,14 @@ function suggestedFilename(disposition, roomId) {
|
|
|
178036
178217
|
}
|
|
178037
178218
|
async function streamExport(body, destination, closeDestination) {
|
|
178038
178219
|
const decoder2 = new TextDecoder();
|
|
178039
|
-
let
|
|
178220
|
+
let pending = "";
|
|
178040
178221
|
let lastLine = "";
|
|
178041
178222
|
const watched = async function* watch() {
|
|
178042
178223
|
for await (const chunk of Readable.fromWeb(body)) {
|
|
178043
178224
|
const bytes = chunk;
|
|
178044
|
-
|
|
178045
|
-
const parts =
|
|
178046
|
-
|
|
178225
|
+
pending += decoder2.decode(bytes, { stream: true });
|
|
178226
|
+
const parts = pending.split("\n");
|
|
178227
|
+
pending = parts.pop() ?? "";
|
|
178047
178228
|
for (const part of parts) if (part.trim()) lastLine = part;
|
|
178048
178229
|
yield bytes;
|
|
178049
178230
|
}
|
|
@@ -178055,7 +178236,7 @@ async function streamExport(body, destination, closeDestination) {
|
|
|
178055
178236
|
reason = err instanceof Error ? err.message : String(err);
|
|
178056
178237
|
}
|
|
178057
178238
|
try {
|
|
178058
|
-
const trailing =
|
|
178239
|
+
const trailing = pending.trim() || lastLine;
|
|
178059
178240
|
const parsed = JSON.parse(trailing);
|
|
178060
178241
|
if (parsed.type === "summary" && typeof parsed.entryCount === "number") {
|
|
178061
178242
|
if (reason === null) return { entryCount: parsed.entryCount, reason: null };
|
|
@@ -180966,7 +181147,7 @@ if (process.argv[2] === "community") {
|
|
|
180966
181147
|
);
|
|
180967
181148
|
Object.assign(childEnv, credentialEnv.pickCommunityCredentialEnv(rawProcessEnv));
|
|
180968
181149
|
const exitCode = await dispatcher.runCommunityDispatcher(process.argv.slice(3), {
|
|
180969
|
-
cliVersion: "0.
|
|
181150
|
+
cliVersion: "0.130.0",
|
|
180970
181151
|
dorkHome: DORK_HOME,
|
|
180971
181152
|
processEnv: childEnv,
|
|
180972
181153
|
parseRelease: (bytes) => releaseContract.parseCompatibleCommunityReleaseManifest(
|
|
@@ -180974,7 +181155,7 @@ if (process.argv[2] === "community") {
|
|
|
180974
181155
|
{
|
|
180975
181156
|
platform: { os: "linux", architecture: "amd64" },
|
|
180976
181157
|
configSchemaVersion: releaseContract.COMMUNITY_CONFIG_SCHEMA_VERSION,
|
|
180977
|
-
migrationCompatibilityId: "sha256:
|
|
181158
|
+
migrationCompatibilityId: "sha256:58cd9b9199646a5a3dff5317d98138fd846b48aa00e874fe0beadc2ed039073b"
|
|
180978
181159
|
}
|
|
180979
181160
|
)
|
|
180980
181161
|
});
|
|
@@ -180984,7 +181165,7 @@ if (process.argv[2] === "community") {
|
|
|
180984
181165
|
process.exit(1);
|
|
180985
181166
|
}
|
|
180986
181167
|
}
|
|
180987
|
-
var cliErrorReporter = initCliErrorReporting({ dorkHome: DORK_HOME, version: "0.
|
|
181168
|
+
var cliErrorReporter = initCliErrorReporting({ dorkHome: DORK_HOME, version: "0.130.0" });
|
|
180988
181169
|
var uninstallCliErrorHandlers = cliErrorReporter ? installCliErrorHandlers(cliErrorReporter) : void 0;
|
|
180989
181170
|
if (process.argv[2] === "doctor") {
|
|
180990
181171
|
process.env.DORK_HOME = DORK_HOME;
|
|
@@ -180994,7 +181175,7 @@ if (process.argv[2] === "doctor") {
|
|
|
180994
181175
|
if (process.argv[2] === "feedback") {
|
|
180995
181176
|
process.env.DORK_HOME = DORK_HOME;
|
|
180996
181177
|
const { runFeedback: runFeedback2 } = await Promise.resolve().then(() => (init_feedback2(), feedback_exports));
|
|
180997
|
-
process.exit(await runFeedback2(DORK_HOME, "0.
|
|
181178
|
+
process.exit(await runFeedback2(DORK_HOME, "0.130.0", process.argv.slice(3)));
|
|
180998
181179
|
}
|
|
180999
181180
|
if (process.argv[2] === "auth") {
|
|
181000
181181
|
process.env.DORK_HOME = DORK_HOME;
|
|
@@ -181093,7 +181274,7 @@ if (process.argv[2] === "agent" || process.argv[2] === "task" || process.argv[2]
|
|
|
181093
181274
|
}
|
|
181094
181275
|
}
|
|
181095
181276
|
const { runVersionDispatcher: runVersionDispatcher2 } = await Promise.resolve().then(() => (init_version5(), version_exports));
|
|
181096
|
-
process.exit(await runVersionDispatcher2("0.
|
|
181277
|
+
process.exit(await runVersionDispatcher2("0.130.0", DORK_HOME, subArgs));
|
|
181097
181278
|
}
|
|
181098
181279
|
var { values, positionals } = parseCliArgs();
|
|
181099
181280
|
if (positionals[0] && !knownCommands.has(positionals[0])) {
|
|
@@ -181187,14 +181368,14 @@ Examples:
|
|
|
181187
181368
|
process.exit(0);
|
|
181188
181369
|
}
|
|
181189
181370
|
if (values.version) {
|
|
181190
|
-
console.log("0.
|
|
181371
|
+
console.log("0.130.0");
|
|
181191
181372
|
process.exit(0);
|
|
181192
181373
|
}
|
|
181193
181374
|
if (values["post-install-check"]) {
|
|
181194
181375
|
const claudeFound = checkClaude();
|
|
181195
181376
|
const coreExtensionsFound = checkCoreExtensions();
|
|
181196
181377
|
const extensionsCompile = await checkExtensionCompilation();
|
|
181197
|
-
console.log(`dorkos ${"0.
|
|
181378
|
+
console.log(`dorkos ${"0.130.0"}`);
|
|
181198
181379
|
if (!coreExtensionsFound) {
|
|
181199
181380
|
console.log("Installation incomplete \u2014 bundled core extensions are missing.");
|
|
181200
181381
|
}
|
|
@@ -181341,7 +181522,7 @@ if (fs42.existsSync(envPath)) {
|
|
|
181341
181522
|
dotenv.config({ path: envPath, override: false });
|
|
181342
181523
|
}
|
|
181343
181524
|
uninstallCliErrorHandlers?.();
|
|
181344
|
-
stampCliLaunch(process.env, fileURLToPath7(import.meta.url), "0.
|
|
181525
|
+
stampCliLaunch(process.env, fileURLToPath7(import.meta.url), "0.130.0");
|
|
181345
181526
|
var server;
|
|
181346
181527
|
try {
|
|
181347
181528
|
server = await import("../server/index.js");
|
|
@@ -181366,7 +181547,7 @@ var ansiReset = "\x1B[0m";
|
|
|
181366
181547
|
console.log("");
|
|
181367
181548
|
console.log(`${purple}${logo}${ansiReset}`);
|
|
181368
181549
|
console.log("");
|
|
181369
|
-
console.log(` DorkOS v${"0.
|
|
181550
|
+
console.log(` DorkOS v${"0.130.0"}`);
|
|
181370
181551
|
console.log(` Local: ${link(localUrl, localUrl)}`);
|
|
181371
181552
|
var nets = networkInterfaces();
|
|
181372
181553
|
var networkUrl = null;
|
|
@@ -181392,9 +181573,9 @@ if (shouldOpenBrowser && process.stdin.isTTY) {
|
|
|
181392
181573
|
const openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
181393
181574
|
exec(`${openCmd} ${localUrl}`);
|
|
181394
181575
|
}
|
|
181395
|
-
checkForUpdate("0.
|
|
181576
|
+
checkForUpdate("0.130.0").then((latestVersion) => {
|
|
181396
181577
|
if (latestVersion) {
|
|
181397
|
-
const msg = `Update available: ${"0.
|
|
181578
|
+
const msg = `Update available: ${"0.130.0"} \u2192 ${latestVersion}`;
|
|
181398
181579
|
const cmd = "Run npm install -g dorkos@latest to update";
|
|
181399
181580
|
const width = Math.max(msg.length, cmd.length) + 6;
|
|
181400
181581
|
const pad2 = (s2) => `\u2502 ${s2}${" ".repeat(width - s2.length - 6)} \u2502`;
|