dorkos 0.123.0 → 0.124.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 +775 -308
- package/dist/browser/native/package-manifest.json +1 -1
- package/dist/browser/source-manifest.json +1 -1
- package/dist/client/assets/{AboutPage-BmtoPqP9.js → AboutPage-BH8Ndn3e.js} +1 -1
- package/dist/client/assets/{ActivityErrorState-CEzdFJiR.js → ActivityErrorState-K5Mew9EX.js} +1 -1
- package/dist/client/assets/{ActivityPage-mFYgTr3e.js → ActivityPage-BB20L5HU.js} +1 -1
- package/dist/client/assets/{ActivityRow-Bkc0kkim.js → ActivityRow-C5O7rnmS.js} +1 -1
- package/dist/client/assets/{AdapterIcon-DVgTrgnM.js → AdapterIcon-Bmybvrzb.js} +1 -1
- package/dist/client/assets/{AdapterSetupWizard-I03EluU5.js → AdapterSetupWizard-CkdV7Hhh.js} +2 -2
- package/dist/client/assets/{AgentOptionRow-DI1TzLaR.js → AgentOptionRow-BA2cDa7r.js} +1 -1
- package/dist/client/assets/{AgentPicker-CBYeBzjf.js → AgentPicker-CsIIPGZJ.js} +1 -1
- package/dist/client/assets/{AgentRequestCard-DQ6GYoeE.js → AgentRequestCard-0fOxvaoe.js} +3 -3
- package/dist/client/assets/{AppearancePage-62xIPNPn.js → AppearancePage-XOjkkoli.js} +1 -1
- package/dist/client/assets/{ApplyToOverridesDialog-CrqkeHQb.js → ApplyToOverridesDialog-CoO6V1G4.js} +1 -1
- package/dist/client/assets/{AttentionSignalRow-Coe5pYX6.js → AttentionSignalRow-CjjZobp7.js} +1 -1
- package/dist/client/assets/{BaseTanStackRouterDevtoolsPanel-B-iktbLX-D07cg75s.js → BaseTanStackRouterDevtoolsPanel-B-iktbLX-9TVHyRPJ.js} +1 -1
- package/dist/client/assets/{BindingDialog-DVyxVXZM.js → BindingDialog-DLoAQauL.js} +1 -1
- package/dist/client/assets/{BlintzCanvas-BmfkiUQJ.js → BlintzCanvas-CYHsXAcY.js} +3 -3
- package/dist/client/assets/{CanvasCsvContent-CRTr-AI7.js → CanvasCsvContent--Gr7Fe_U.js} +1 -1
- package/dist/client/assets/{CanvasFileContent-rOmY1s3T.js → CanvasFileContent-estXyAbr.js} +2 -2
- package/dist/client/assets/{CanvasModel3dContent-D7oRT6ey.js → CanvasModel3dContent-CkOo930M.js} +2 -2
- package/dist/client/assets/{ChatAppsOff-BmuOTq83.js → ChatAppsOff-D4L1zJVN.js} +1 -1
- package/dist/client/assets/{CodeMirrorDiff-DidSWwYJ.js → CodeMirrorDiff-DY_6ju-z.js} +1 -1
- package/dist/client/assets/{CodeMirrorEditor-BUAWGbRo.js → CodeMirrorEditor-BUoDBsBv.js} +1 -1
- package/dist/client/assets/{CommitmentList-uK4CKaz0.js → CommitmentList-wDkcVP9c.js} +1 -1
- package/dist/client/assets/{CommitmentsPage-BWITH1r2.js → CommitmentsPage-CzSM6b8R.js} +1 -1
- package/dist/client/assets/{ComputerResourceView-adgF_EZU.js → ComputerResourceView-cERD9H2L.js} +1 -1
- package/dist/client/assets/{ComputerViewer-D87LhxwL.js → ComputerViewer-rMcfbk2_.js} +1 -1
- package/dist/client/assets/{ConnectionAccessLists-BFEFqcSZ.js → ConnectionAccessLists-f7QeQbQo.js} +1 -1
- package/dist/client/assets/{ConnectionsPage-Cd_cLoSY.js → ConnectionsPage-BmjtA6pw.js} +2 -2
- package/dist/client/assets/{ConventionPage-BSztD-gU.js → ConventionPage-CH-ah6nI.js} +1 -1
- package/dist/client/assets/{ExtensionPageRoute-BSge6XRv.js → ExtensionPageRoute-CJIxa6ST.js} +2 -2
- package/dist/client/assets/{FloatingTanStackRouterDevtools-CqogiFob-TO2CUPG0.js → FloatingTanStackRouterDevtools-CqogiFob-BP7EJ2JL.js} +1 -1
- package/dist/client/assets/HandlePage-Cg8H3mQS.js +1 -0
- package/dist/client/assets/{HeartbeatPage-DIJzdOhj.js → HeartbeatPage-BUsf-qrU.js} +1 -1
- package/dist/client/assets/{KeyEntry-DJnzW3Mu.js → KeyEntry-C2kWdN8q.js} +1 -1
- package/dist/client/assets/{LexicalField-BxzNvIjJ.js → LexicalField-CR8ulsI_.js} +1 -1
- package/dist/client/assets/{ManagesPage-BQj8KbYA.js → ManagesPage-DTtsIOGi.js} +1 -1
- package/dist/client/assets/{Marketplace-CIG5_a_H.js → Marketplace-iaV5XAzv.js} +2 -2
- package/dist/client/assets/{MarketplaceSourcesView-16HKvFK-.js → MarketplaceSourcesView-6tgzUfFj.js} +1 -1
- package/dist/client/assets/{McpAppFrame-5xlga1jD.js → McpAppFrame-C7eYYdI9.js} +1 -1
- package/dist/client/assets/McpSigninBody-BDyGbJ7I.js +1 -0
- package/dist/client/assets/{Model3dViewer-CQ0sA_kr.js → Model3dViewer-BujDNuVS.js} +1 -1
- package/dist/client/assets/NamePage-Bx8T98OF.js +1 -0
- package/dist/client/assets/{NewDirectMessageMenu-D092y0K9.js → NewDirectMessageMenu-D4e-z2Jt.js} +1 -1
- package/dist/client/assets/{NotificationsPage-CskOPdhh.js → NotificationsPage-CkDeTaJp.js} +1 -1
- package/dist/client/assets/{OpenMeshSwitch-BHRm328L.js → OpenMeshSwitch-CtbOt3r5.js} +2 -2
- package/dist/client/assets/OperatorIdentityForm-Vr4qZnmM.js +1 -0
- package/dist/client/assets/PermissionHistory-DzU1rf2B.js +1 -0
- package/dist/client/assets/{PermissionsPage-XuPOSYll.js → PermissionsPage-f4QaX8oM.js} +1 -1
- package/dist/client/assets/{PersonalityPopover-BrZjxakx.js → PersonalityPopover-BkZruwF-.js} +1 -1
- package/dist/client/assets/PhotoPage-CmrOIRjf.js +1 -0
- package/dist/client/assets/{PreviewRefusedNotice-BANdpT9O.js → PreviewRefusedNotice-BXC2K0tx.js} +1 -1
- package/dist/client/assets/{ProfileFields-Dp68ebW9.js → ProfileFields-BebX5oiv.js} +1 -1
- package/dist/client/assets/{ProfilePanelContainer-BKwGdI90.js → ProfilePanelContainer-DZoL65zQ.js} +1 -1
- package/dist/client/assets/{ProfileRolePicker-ClOdfLda.js → ProfileRolePicker-D9H7wsuT.js} +1 -1
- package/dist/client/assets/{PromptSuggestionChips-zcW4UJ_O.js → PromptSuggestionChips-B5fDmc-g.js} +1 -1
- package/dist/client/assets/{ReportsToPopover-BwDVGqFg.js → ReportsToPopover-uVYhSqj7.js} +1 -1
- package/dist/client/assets/{RoomSurface-CSKIvyHH.js → RoomSurface-Bg5WV4Ep.js} +7 -7
- package/dist/client/assets/{RoomsPage-CAvrRbPk.js → RoomsPage-yflYFulU.js} +1 -1
- package/dist/client/assets/{RunsOnPopover-CQ4t9EZ-.js → RunsOnPopover-DtGrX1Vq.js} +1 -1
- package/dist/client/assets/{RuntimeConnectFlow--fVpIf0B.js → RuntimeConnectFlow-DjReuQ-T.js} +1 -1
- package/dist/client/assets/{RuntimeSetupDialog-COpyPrqL.js → RuntimeSetupDialog-Cr4GRi8c.js} +1 -1
- package/dist/client/assets/{SeenDevices-BPw3UgjX.js → SeenDevices-SPWkdzoK.js} +3 -3
- package/dist/client/assets/{SessionsPage-FDyYzuXs.js → SessionsPage-BWu-en78.js} +1 -1
- package/dist/client/assets/SettingsDialog-_dEXUhHe.js +12 -0
- package/dist/client/assets/{SkillsPage-PLXEY0LB.js → SkillsPage-BdUb9SZy.js} +1 -1
- package/dist/client/assets/TaskDialogWrapper-qYJPEoSR.js +1 -0
- package/dist/client/assets/{TasksEmptyState-8RZxhRh6.js → TasksEmptyState-Bgcg9vxF.js} +2 -2
- package/dist/client/assets/{TasksPage-C-EtQXKb.js → TasksPage-Ch5W2WQS.js} +1 -1
- package/dist/client/assets/{TeamComputerEntry-qx_19Htj.js → TeamComputerEntry-CPwSIMRw.js} +1 -1
- package/dist/client/assets/ToolsPage-Idimrn3o.js +2 -0
- package/dist/client/assets/{TopologyGraph-1wtG1BE9.js → TopologyGraph-I4_mkMHM.js} +14 -14
- package/dist/client/assets/{TourHost-C664E8OY.js → TourHost-BPaSwh9I.js} +1 -1
- package/dist/client/assets/{UnlinkDialog-Di1oBFA_.js → UnlinkDialog-BUWZUu5P.js} +1 -1
- package/dist/client/assets/{WidgetErrorCard-BfgGzyqg.js → WidgetErrorCard-cS8yMCxU.js} +3 -3
- package/dist/client/assets/_shell-ClVN2pUj.js +80 -0
- package/dist/client/assets/{_shell._home-Hz78BY6-.js → _shell._home-DCA5k-jb.js} +1 -1
- package/dist/client/assets/{_shell._home.activity-BxvI0gkw.js → _shell._home.activity-BX4nFLna.js} +1 -1
- package/dist/client/assets/{_shell._home.index-Cqq81f3P.js → _shell._home.index-C8t8cw72.js} +1 -1
- package/dist/client/assets/{_shell._home.tasks-Cth56CwC.js → _shell._home.tasks-BgUeEvhK.js} +1 -1
- package/dist/client/assets/{_shell._home.workspaces-DkoOJSWz.js → _shell._home.workspaces-BPBdnkRt.js} +1 -1
- package/dist/client/assets/_shell.channels-CX4kki7G.js +10 -0
- package/dist/client/assets/_shell.connections-0vP7g7E4.js +1 -0
- package/dist/client/assets/{_shell.feedback-requests-BTxHdsfb.js → _shell.feedback-requests-TsuaO4eR.js} +2 -2
- package/dist/client/assets/_shell.marketplace-CiL6YRbl.js +1 -0
- package/dist/client/assets/_shell.marketplace_.sources-C0sI8e21.js +1 -0
- package/dist/client/assets/_shell.session-_hhBvFc6.js +63 -0
- package/dist/client/assets/{_shell.team-ZxGwa39m.js → _shell.team-Bm6cOBhR.js} +4 -4
- package/dist/client/assets/_shell.x._extensionId-BWy5v1YE.js +1 -0
- package/dist/client/assets/_shell.x._extensionId_._-BWy5v1YE.js +1 -0
- package/dist/client/assets/{abnfDiagram-WEYOIA3C-CzqPVMdw.js → abnfDiagram-WEYOIA3C-CrvoN15x.js} +1 -1
- package/dist/client/assets/{access-copy-Dj09Xk4b.js → access-copy-B3yNZ7Gz.js} +1 -1
- package/dist/client/assets/{arc-Bgy7ExYl.js → arc-CuT6QA_y.js} +1 -1
- package/dist/client/assets/{architectureDiagram-ZHVYKT53-DYfb2p9r.js → architectureDiagram-ZHVYKT53-CPXCZ9H4.js} +1 -1
- package/dist/client/assets/{banner-dlsHTWSf.js → banner-DRumuw3F.js} +1 -1
- package/dist/client/assets/{blockDiagram-RJAE7QA3-BkOzLL8s.js → blockDiagram-RJAE7QA3-CM0rka9p.js} +1 -1
- package/dist/client/assets/{c4Diagram-XDPPPE54-CsZm4qpD.js → c4Diagram-XDPPPE54-D4j2cXRy.js} +1 -1
- package/dist/client/assets/{card-Dj6ZfRgu.js → card-B3CtfC3R.js} +1 -1
- package/dist/client/assets/channel-DjBlTcCV.js +1 -0
- package/dist/client/assets/{chunk-2E7WHVMD-GA96Jfps.js → chunk-2E7WHVMD-KGyqhVpO.js} +1 -1
- package/dist/client/assets/{chunk-2Q5K7J3B-CW2i0IkT.js → chunk-2Q5K7J3B-Dl0BHoqK.js} +1 -1
- package/dist/client/assets/{chunk-4EMNKR2T-BwFvnPZg.js → chunk-4EMNKR2T-Da7vH6Kv.js} +1 -1
- package/dist/client/assets/{chunk-55XCU76K-MOezzAAB.js → chunk-55XCU76K-DgBUEROO.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-woru6zOC.js → chunk-5VM5RSS4-BQ4mn-_I.js} +1 -1
- package/dist/client/assets/{chunk-JWPE2WC7-CUrKlP2M.js → chunk-JWPE2WC7-8LPR3mXf.js} +1 -1
- package/dist/client/assets/{chunk-VQ5W62QI-CqZ2cdEu.js → chunk-VQ5W62QI-BkIVXi4W.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-ByAcvWaE.js → chunk-XXDRQBXY-DQXJx06h.js} +1 -1
- package/dist/client/assets/{chunk-ZCHMQSOR-3nkba9kj.js → chunk-ZCHMQSOR-DzCE7qlD.js} +2 -2
- package/dist/client/assets/{classDiagram-v2-4MYWR3UA-B-zZKAmI.js → classDiagram-v2-4MYWR3UA-C_cZra7c.js} +1 -1
- package/dist/client/assets/{command-BAOEURY7.js → command-CDKbyppr.js} +1 -1
- package/dist/client/assets/{cose-bilkent-JH36ORCC-sCKxRv1H.js → cose-bilkent-JH36ORCC-DlXHdGwT.js} +1 -1
- package/dist/client/assets/{cpu-TtYQqONc.js → cpu-B7xLO7jn.js} +1 -1
- package/dist/client/assets/{cynefin-EF2NZ3EQ-CXzvL5Cg.js → cynefin-EF2NZ3EQ-HhP4ArLc.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-WF24UDRP-C0wjhu9X.js → cynefinDiagram-WF24UDRP-D4GgWnZV.js} +1 -1
- package/dist/client/assets/{dagre-NK4GIZVX-Doi2IPkY.js → dagre-NK4GIZVX-SZ_OI2Zi.js} +1 -1
- package/dist/client/assets/{diagram-CBK3MWTC-11TVuPel.js → diagram-CBK3MWTC-BN-_Ja5m.js} +1 -1
- package/dist/client/assets/{diagram-I5XIIV2D-CJq7fHFM.js → diagram-I5XIIV2D-t7AK6xnL.js} +1 -1
- package/dist/client/assets/{diagram-ODIL2UCW-2Ae6unuU.js → diagram-ODIL2UCW-C1V7szSc.js} +1 -1
- package/dist/client/assets/{diagram-PFBEJUXE-BXza6_iz.js → diagram-PFBEJUXE-DPtraQ2g.js} +1 -1
- package/dist/client/assets/{diagram-RJA3I4VV-Z0i3uBW9.js → diagram-RJA3I4VV-D2XNRB2b.js} +1 -1
- package/dist/client/assets/{diagram-TYUNFSNR-Dq_-g1oP.js → diagram-TYUNFSNR-BieaRy38.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-V4P3TTPT-vxzIvg-W.js → ebnfDiagram-V4P3TTPT-Bwki86UY.js} +1 -1
- package/dist/client/assets/{elk-QONTBCTQ-BBIXXtg_.js → elk-QONTBCTQ-WEXSAyHB.js} +1 -1
- package/dist/client/assets/{empty-state-kISAAp0z.js → empty-state-J-UJ0BUU.js} +1 -1
- package/dist/client/assets/{erDiagram-KYQIGQAA-Bk2MeLBx.js → erDiagram-KYQIGQAA-DIKASnoc.js} +1 -1
- package/dist/client/assets/{execution-config-DYFe-VNC.js → execution-config-ILQiJAmy.js} +1 -1
- package/dist/client/assets/{file-DEt4KgZG.js → file-D40js1Zx.js} +1 -1
- package/dist/client/assets/{file-exclamation-point-QqXJhXD9.js → file-exclamation-point-Dg3ZpiAe.js} +1 -1
- package/dist/client/assets/{file-text-CRw31ZWd.js → file-text-DgdvRfMk.js} +1 -1
- package/dist/client/assets/{find-latest-widget-fence-B3aaiBNI.js → find-latest-widget-fence-D4kBWC_1.js} +1 -1
- package/dist/client/assets/{flowDiagram-IUGLLWBU-B53m4r8u.js → flowDiagram-IUGLLWBU-CoavNw0M.js} +1 -1
- package/dist/client/assets/{form-Bjhk9zOn.js → form-DlPwEgQH.js} +1 -1
- package/dist/client/assets/{format-cron-9tmNIcgl.js → format-cron-BrK8RzgT.js} +1 -1
- package/dist/client/assets/{ganttDiagram-R7GPNTJY-CS6TN3R1.js → ganttDiagram-R7GPNTJY-DccKAz7f.js} +1 -1
- package/dist/client/assets/{git-branch-DWerghmw.js → git-branch-BpxhecMq.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PDYL7XHY-D096ZtqE.js → gitGraphDiagram-PDYL7XHY-DEbo_dgQ.js} +1 -1
- package/dist/client/assets/{graph-DQpTuPmX.js → graph-DROgI3M3.js} +1 -1
- package/dist/client/assets/{heart-CRkjVW7-.js → heart-c7u4Ezxt.js} +1 -1
- package/dist/client/assets/{highlighted-body-KPVGNVTW-DoVCXOMU.js → highlighted-body-KPVGNVTW-CrATNdTR.js} +1 -1
- package/dist/client/assets/image-lightbox-DE_fHkw-.js +1 -0
- package/dist/client/assets/{image-off-VyMBVwgK.js → image-off-BExgZjfM.js} +2 -2
- package/dist/client/assets/{index-DgyhdQnI.js → index-2wezsLA_.js} +1 -1
- package/dist/client/assets/index-7jby-RRg.js +1 -0
- package/dist/client/assets/{index-Czm6C7FZ.js → index-AzyLwYS_.js} +3 -3
- package/dist/client/assets/{index-CiVeycsn.js → index-B3eeEDWj.js} +5 -5
- package/dist/client/assets/{index-setKr4xl.js → index-BEkYBuOq.js} +1 -1
- package/dist/client/assets/index-BGqvci3k.js +1 -0
- package/dist/client/assets/{index-DKWpwwxo.js → index-BVqSmajJ.js} +1 -1
- package/dist/client/assets/{index-BBcAekWE.js → index-Be0OJLWK.js} +1 -1
- package/dist/client/assets/{index-BiFJIg4n.js → index-BizvylBV.js} +1 -1
- package/dist/client/assets/{index-n3-zWcH-.js → index-BkoMsjtM.js} +2 -2
- package/dist/client/assets/{index-_emDKzsu.js → index-BlyoyIck.js} +1 -1
- package/dist/client/assets/{index-C24HfJir.js → index-BqIHtiaE.js} +1 -1
- package/dist/client/assets/{index-Cs3WB8yn.js → index-C5or4L_3.js} +1 -1
- package/dist/client/assets/{index-igLqtuoO.js → index-C7B3eSOP.js} +1 -1
- package/dist/client/assets/{index-COMRALJO.js → index-CD8aw6Jb.js} +1 -1
- package/dist/client/assets/{index-CDuYKaGY.js → index-CT_pFeX_.js} +1 -1
- package/dist/client/assets/{index-b9p_y2Ql.js → index-CYy1cjtq.js} +1 -1
- package/dist/client/assets/{index-Csr_C1sk.js → index-CZmqtJWZ.js} +1 -1
- package/dist/client/assets/{index-DBo2XfNv.js → index-CbHCZsbE.js} +1 -1
- package/dist/client/assets/{index-BcFMs7lK.js → index-Ccf1XBTs.js} +1 -1
- package/dist/client/assets/index-Cga0qx1T.js +1033 -0
- package/dist/client/assets/{index-Ctqe81qr.js → index-CqPRAM_6.js} +1 -1
- package/dist/client/assets/index-Ct4At33X.js +1 -0
- package/dist/client/assets/{index-DN2sTT2U.js → index-D0eJtRlK.js} +1 -1
- package/dist/client/assets/{index-C3sW6rkN.js → index-D150FXCC.js} +22 -20
- package/dist/client/assets/{index-C6udJCgz.js → index-D3YeRrne.js} +1 -1
- package/dist/client/assets/index-DCJQGDZk.js +1 -0
- package/dist/client/assets/{index-BpjEclkM.js → index-DDgOoXP1.js} +1 -1
- package/dist/client/assets/{index-DmFNztTX.js → index-DINk1YfD.js} +1 -1
- package/dist/client/assets/{index-Dgrk2udV.js → index-DITPwUa9.js} +3 -3
- package/dist/client/assets/{index-CvhR1oZB.js → index-DNGNMW3c.js} +1 -1
- package/dist/client/assets/{index-rCvQat0D.js → index-DT7pv2iW.js} +1 -1
- package/dist/client/assets/{index-TnoaFCrj.js → index-DaZ1I8s-.js} +1 -1
- package/dist/client/assets/{index-CEVwhauU.js → index-DeRDq7bD.js} +1 -1
- package/dist/client/assets/{index-2EaVZrJe.js → index-DhHobJd3.js} +1 -1
- package/dist/client/assets/{index-CyGRWyhV.js → index-DksjixUS.js} +1 -1
- package/dist/client/assets/{index-C6Fo2htT.js → index-DswGXheF.js} +1 -1
- package/dist/client/assets/{index-t3eRSGcT.js → index-DxiRRZRo.js} +1 -1
- package/dist/client/assets/index-F-vqXYqa.js +1 -0
- package/dist/client/assets/{index-DNzk9m1D.js → index-InEBtYxw.js} +6 -6
- package/dist/client/assets/{index-BLkXoquZ.js → index-J3Hh1MnL.js} +1 -1
- package/dist/client/assets/{index-gIQ7FrL9.js → index-dyAahqKe.js} +1 -1
- package/dist/client/assets/{index-B2rBVMNl.js → index-mwf7ZNk2.js} +1 -1
- package/dist/client/assets/{index.esm-bLeQzVWT.js → index.esm-BFJ9SG0n.js} +1 -1
- package/dist/client/assets/{infoDiagram-MVDRKAX5-nN_N76Fn.js → infoDiagram-MVDRKAX5-VL8q5pKx.js} +1 -1
- package/dist/client/assets/{inline-code-D9bLKHjY.js → inline-code-BE9ckzPs.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-HPEHV2GE-CiLFbWXd.js → ishikawaDiagram-HPEHV2GE-BLKkPYF-.js} +1 -1
- package/dist/client/assets/{journeyDiagram-BOSHW7O7-Dn3yOv96.js → journeyDiagram-BOSHW7O7-CSYpRobu.js} +1 -1
- package/dist/client/assets/{kanban-definition-FNSA4HC5-JxiBdBQC.js → kanban-definition-FNSA4HC5-HilAqtZo.js} +1 -1
- package/dist/client/assets/{layers-DTnLoRvE.js → layers-Cm7coqdo.js} +1 -1
- package/dist/client/assets/{lightbulb-CRKLr5q3.js → lightbulb-DqdWS75d.js} +1 -1
- package/dist/client/assets/{link-2-hgHg-lyw.js → link-2-CDJapTSa.js} +1 -1
- package/dist/client/assets/{list-runtime-types-Bb33QiMC.js → list-runtime-types-CP82p1u4.js} +1 -1
- package/dist/client/assets/{markdown-content-D0FpU2cz.js → markdown-content-m_qereFc.js} +1 -1
- package/dist/client/assets/{mention-pill-uuaUvwSW.js → mention-pill-DV5HIG5Q.js} +1 -1
- package/dist/client/assets/{mermaid.core-x3Hh6iut.js → mermaid.core-zxW6MBr-.js} +4 -4
- package/dist/client/assets/{message-square-off-B8N6YF9R.js → message-square-off-YVtpbaJ0.js} +1 -1
- package/dist/client/assets/{mindmap-definition-6OY57UG3-D0SEv5Re.js → mindmap-definition-6OY57UG3-IAYemvOg.js} +1 -1
- package/dist/client/assets/{more-details-CadxnGyH.js → more-details-ReA2ZFBn.js} +1 -1
- package/dist/client/assets/{owner-notice-CJHyha58.js → owner-notice-M4hn_1ep.js} +1 -1
- package/dist/client/assets/{package-B8G7jQm-.js → package-CUuTl39E.js} +1 -1
- package/dist/client/assets/{page-container-Bb-_N7lw.js → page-container-BnmNikNZ.js} +1 -1
- package/dist/client/assets/{paperclip-BDeYGKqh.js → paperclip-C6fYq5Zf.js} +1 -1
- package/dist/client/assets/{path-input-BIfexEKz.js → path-input-DHn9-XaE.js} +1 -1
- package/dist/client/assets/{pegDiagram-ECIUJNBX-7ivMd0-b.js → pegDiagram-ECIUJNBX-CojaUwe7.js} +1 -1
- package/dist/client/assets/{pieDiagram-GNMPY74T-DGDkbFvu.js → pieDiagram-GNMPY74T-CjP3pw6V.js} +1 -1
- package/dist/client/assets/{plug-wP1d6OUX.js → plug-DHQcxt7N.js} +1 -1
- package/dist/client/assets/primer-trigger-BmV5wjek.js +3 -0
- package/dist/client/assets/{profile-errors-C1qSJkiG.js → profile-errors-BSCuj3rT.js} +1 -1
- package/dist/client/assets/{progress-DmUieXLn.js → progress-4FQQfnS6.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-D57K4MC3-AFQRVSsK.js → quadrantDiagram-D57K4MC3-OP0Z8zcR.js} +1 -1
- package/dist/client/assets/{query-error-state--8AnWSSn.js → query-error-state-BkUdxenP.js} +1 -1
- package/dist/client/assets/{radio-mkA-Sqe0.js → radio-ta5Bw763.js} +1 -1
- package/dist/client/assets/{railroadDiagram-Y72NRBL7-3QBa2d3j.js → railroadDiagram-Y72NRBL7-CT3NCb9b.js} +1 -1
- package/dist/client/assets/registry-Dc102rws.js +1 -0
- package/dist/client/assets/{relay-trace-schemas-fScydQ3A.js → relay-trace-schemas-DwUuyxao.js} +2 -2
- package/dist/client/assets/{requirementDiagram-EQYSW5RA-BVBqcASy.js → requirementDiagram-EQYSW5RA-tde4lYGp.js} +1 -1
- package/dist/client/assets/{room-files-source-BhkPUTiP.js → room-files-source-CZWhaaOy.js} +2 -2
- package/dist/client/assets/{rotate-ccw-clock-DiuTseKz.js → rotate-ccw-clock-RfbbgUa4.js} +1 -1
- package/dist/client/assets/{rotate-cw-DvoxWwSx.js → rotate-cw-B3rB_YSw.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-SY24JHO5-DFjfOD38.js → sankeyDiagram-SY24JHO5-sdCzIA7-.js} +1 -1
- package/dist/client/assets/{scroll-area-DYyyRqW_.js → scroll-area-B4WB7Q40.js} +1 -1
- package/dist/client/assets/{search-x-CA-FzEqZ.js → search-x-DCUmWW2_.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-BLEHNHQU-Cr9LzoSF.js → sequenceDiagram-BLEHNHQU-DvzTJcKu.js} +1 -1
- package/dist/client/assets/{shield-x-B0W_7qwR.js → shield-x-CANziVLc.js} +1 -1
- package/dist/client/assets/signed-in-DctJ2IWe.js +1 -0
- package/dist/client/assets/{sizeCapture-INFHLROL-Do_jfNyT.js → sizeCapture-INFHLROL-DuDA7TKE.js} +1 -1
- package/dist/client/assets/{soul-file-DgfhKQIK.js → soul-file-Co_8f1qw.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-A6IESKWZ-BCi9yk_0.js → stateDiagram-v2-A6IESKWZ-BJPX5JTC.js} +1 -1
- package/dist/client/assets/{swimlanes-B3ENRKFQ-3SSAw2av.js → swimlanes-B3ENRKFQ-CiLSffGv.js} +1 -1
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-Dv1-QS9J.js +8 -0
- package/dist/client/assets/{table-DvU_oS4E.js → table-BSAvOYPp.js} +1 -1
- package/dist/client/assets/{terminal-Dw2QZ7Dh.js → terminal-6CdY-T1V.js} +1 -1
- package/dist/client/assets/{timeline-definition-JXYKGLGB-DTLPXTMA.js → timeline-definition-JXYKGLGB-5oq8sl82.js} +1 -1
- package/dist/client/assets/{trust-posture-2MR0ap9o.js → trust-posture-D-Yjm6ot.js} +1 -1
- package/dist/client/assets/{unplug-CAVOLB2R.js → unplug-Bq_1WdV7.js} +1 -1
- package/dist/client/assets/{unverified-catalog-notice-u4ikVg8J.js → unverified-catalog-notice-CEzu54YH.js} +1 -1
- package/dist/client/assets/{use-adapter-catalog-BQKfRxXC.js → use-adapter-catalog-Tn3ZbPAj.js} +1 -1
- package/dist/client/assets/{use-bindings-BV6HA0MD.js → use-bindings-Bz9YRgO7.js} +1 -1
- package/dist/client/assets/{use-composer-prefs-DCSzOnEO.js → use-composer-prefs-D9oKJSQN.js} +1 -1
- package/dist/client/assets/{use-connector-management-fr1tx-GZ.js → use-connector-management-CLYFraXN.js} +1 -1
- package/dist/client/assets/{use-deep-link-scroll-v02TbidQ.js → use-deep-link-scroll-DkS713kG.js} +1 -1
- package/dist/client/assets/{use-delete-binding-CnziYpXo.js → use-delete-binding-CukKpHBK.js} +1 -1
- package/dist/client/assets/{use-dev-links-k4YWFO1v.js → use-dev-links-DQ32IcGe.js} +1 -1
- package/dist/client/assets/{use-external-adapter-catalog-DoGUfa2F.js → use-external-adapter-catalog-D-FO_XW6.js} +1 -1
- package/dist/client/assets/{use-full-activity-feed-CQNxgxnw.js → use-full-activity-feed-BNxcyb1j.js} +1 -1
- package/dist/client/assets/use-is-below-desktop-gTvJDvw4.js +1 -0
- package/dist/client/assets/use-is-hub-B1vPpkYU.js +1 -0
- package/dist/client/assets/{use-jump-back-in-BuO6A0P7.js → use-jump-back-in-Bibj5tVk.js} +3 -3
- package/dist/client/assets/{use-local-browser-BNzN5O1P.js → use-local-browser-xg7WXAVK.js} +1 -1
- package/dist/client/assets/{use-mesh-topology-CpIDE8lD.js → use-mesh-topology-BgCSFw8s.js} +1 -1
- package/dist/client/assets/{use-mounted-ref-BAO3qunF.js → use-mounted-ref-qRbdZfOU.js} +1 -1
- package/dist/client/assets/{use-notification-prefs-CtqeH5Pk.js → use-notification-prefs-B-4kZR7I.js} +1 -1
- package/dist/client/assets/{use-panel-tab-placements-DFobGBRm.js → use-panel-tab-placements-CCq-mZlY.js} +1 -1
- package/dist/client/assets/use-pending-read-C8L_v4Zw.js +1 -0
- package/dist/client/assets/{use-personality-commit-BvqCwzAC.js → use-personality-commit-DwSisUfF.js} +1 -1
- package/dist/client/assets/{use-promo-activation-Dz5cYm-X.js → use-promo-activation-Botoso6l.js} +3 -3
- package/dist/client/assets/{use-promo-dismissals-CuOsnqnZ.js → use-promo-dismissals-RJXp-r_J.js} +1 -1
- package/dist/client/assets/{use-pulse-freshness-qcTH6PM7.js → use-pulse-freshness-B3390hGg.js} +1 -1
- package/dist/client/assets/{use-relay-config-1mAMDNbc.js → use-relay-config-BV0xcLwS.js} +1 -1
- package/dist/client/assets/{use-room-follow-claim-CCGhsyH3.js → use-room-follow-claim-Du4hKHIJ.js} +1 -1
- package/dist/client/assets/{use-roving-tab-list-Bsg2dfUx.js → use-roving-tab-list-g2hO6Ruz.js} +1 -1
- package/dist/client/assets/{use-session-canvas-awPngMKg.js → use-session-canvas-i30oMO_Q.js} +3 -3
- package/dist/client/assets/{use-session-diagnostics-D5g8Mc52.js → use-session-diagnostics-a4b83F5J.js} +2 -2
- package/dist/client/assets/{use-unclaimed-chats-Db_wuzt0.js → use-unclaimed-chats-B92om889.js} +1 -1
- package/dist/client/assets/use-update-config-Tbn3SodN.js +1 -0
- package/dist/client/assets/{useMutationState-BvwBDXKc.js → useMutationState-DdOGdpjP.js} +1 -1
- package/dist/client/assets/{usecaseDiagram-WPOLBNNX-1zKygEKR.js → usecaseDiagram-WPOLBNNX-Di5pJvcw.js} +1 -1
- package/dist/client/assets/{vennDiagram-Q3Y3IDCW-BR2EbgGY.js → vennDiagram-Q3Y3IDCW-K7KAf26T.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-IVAIDKWA-D0OwouJc.js → wardleyDiagram-IVAIDKWA-DVTaxQt9.js} +1 -1
- package/dist/client/assets/{xychartDiagram-4URNHDU4-BM-7_FQQ.js → xychartDiagram-4URNHDU4-x-lSJm_B.js} +1 -1
- package/dist/client/index.html +1 -1
- package/dist/drizzle/20261018210140_remote_command_agent_computer_kind.sql +21 -0
- package/dist/drizzle/20261019142317_turn_marks.sql +3 -0
- package/dist/drizzle/meta/20261018210140_snapshot.json +14027 -0
- package/dist/drizzle/meta/20261019142317_snapshot.json +14048 -0
- package/dist/drizzle/meta/_journal.json +14 -0
- package/dist/server/index.js +23779 -20674
- package/dist/server/index.js.map +2 -2
- package/package.json +4 -4
- package/dist/client/assets/HandlePage-BKiqymRF.js +0 -1
- package/dist/client/assets/McpSigninBody-COIHpHq_.js +0 -1
- package/dist/client/assets/NamePage-D7W6VMYd.js +0 -1
- package/dist/client/assets/OperatorIdentityForm-C3op6BIC.js +0 -1
- package/dist/client/assets/PermissionHistory-CKebTVkq.js +0 -1
- package/dist/client/assets/PhotoPage-Ch1at4A6.js +0 -1
- package/dist/client/assets/SettingsDialog-Bdws5dbS.js +0 -12
- package/dist/client/assets/TaskDialogWrapper-CTcW70s8.js +0 -1
- package/dist/client/assets/ToolsPage-D5-fx1EA.js +0 -2
- package/dist/client/assets/_shell-BLTSXXDw.js +0 -80
- package/dist/client/assets/_shell.channels-D_GQU4RB.js +0 -10
- package/dist/client/assets/_shell.connections-DZrlxs4G.js +0 -1
- package/dist/client/assets/_shell.marketplace-CZxkAmFz.js +0 -1
- package/dist/client/assets/_shell.marketplace_.sources-Q0BTQIuE.js +0 -1
- package/dist/client/assets/_shell.session-DvGL0DoX.js +0 -63
- package/dist/client/assets/_shell.x._extensionId-B6Tm5KuT.js +0 -1
- package/dist/client/assets/_shell.x._extensionId_._-B6Tm5KuT.js +0 -1
- package/dist/client/assets/channel-CGffcDRq.js +0 -1
- package/dist/client/assets/image-lightbox-BXzbN27o.js +0 -1
- package/dist/client/assets/index-1qv8ldHx.js +0 -1
- package/dist/client/assets/index-8-iQ6PnT.js +0 -1028
- package/dist/client/assets/index-BFitbVs4.js +0 -1
- package/dist/client/assets/index-CI84yP-g.js +0 -1
- package/dist/client/assets/index-D5zUdnZM.js +0 -1
- package/dist/client/assets/index-DX_2Mxwv.js +0 -1
- package/dist/client/assets/primer-trigger-CEli_z4n.js +0 -3
- package/dist/client/assets/registry-Bnd-HFt3.js +0 -1
- package/dist/client/assets/shield-check-CpUB_Ju1.js +0 -6
- package/dist/client/assets/signed-in-X2utDqQS.js +0 -1
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-jpZCGfva.js +0 -8
- package/dist/client/assets/use-is-below-desktop-DR8FEbRW.js +0 -1
- package/dist/client/assets/use-is-hub-BmpgFnFp.js +0 -1
- package/dist/client/assets/use-pending-read-Do0_vZ2I.js +0 -1
- package/dist/client/assets/use-update-config-DwtH_H9Z.js +0 -1
package/dist/bin/cli.js
CHANGED
|
@@ -26773,7 +26773,7 @@ import path2 from "path";
|
|
|
26773
26773
|
import { fileURLToPath } from "url";
|
|
26774
26774
|
function resolveVersion() {
|
|
26775
26775
|
if (env2.DORKOS_VERSION_OVERRIDE) return env2.DORKOS_VERSION_OVERRIDE;
|
|
26776
|
-
if (true) return "0.
|
|
26776
|
+
if (true) return "0.124.0";
|
|
26777
26777
|
const pkgPath = path2.join(path2.dirname(fileURLToPath(import.meta.url)), "../../package.json");
|
|
26778
26778
|
return JSON.parse(readFileSync(pkgPath, "utf-8")).version;
|
|
26779
26779
|
}
|
|
@@ -29477,11 +29477,11 @@ var require_util = __commonJS({
|
|
|
29477
29477
|
return false;
|
|
29478
29478
|
}
|
|
29479
29479
|
exports.schemaHasRules = schemaHasRules;
|
|
29480
|
-
function schemaHasRulesButRef(schema3,
|
|
29480
|
+
function schemaHasRulesButRef(schema3, RULES2) {
|
|
29481
29481
|
if (typeof schema3 == "boolean")
|
|
29482
29482
|
return !schema3;
|
|
29483
29483
|
for (const key in schema3)
|
|
29484
|
-
if (key !== "$ref" &&
|
|
29484
|
+
if (key !== "$ref" && RULES2.all[key])
|
|
29485
29485
|
return true;
|
|
29486
29486
|
return false;
|
|
29487
29487
|
}
|
|
@@ -30875,17 +30875,17 @@ var require_validate = __commonJS({
|
|
|
30875
30875
|
}
|
|
30876
30876
|
function schemaKeywords(it, types2, typeErrors, errsCount) {
|
|
30877
30877
|
const { gen, schema: schema3, data, allErrors, opts, self: self2 } = it;
|
|
30878
|
-
const { RULES } = self2;
|
|
30879
|
-
if (schema3.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema3,
|
|
30880
|
-
gen.block(() => keywordCode(it, "$ref",
|
|
30878
|
+
const { RULES: RULES2 } = self2;
|
|
30879
|
+
if (schema3.$ref && (opts.ignoreKeywordsWithRef || !(0, util_1.schemaHasRulesButRef)(schema3, RULES2))) {
|
|
30880
|
+
gen.block(() => keywordCode(it, "$ref", RULES2.all.$ref.definition));
|
|
30881
30881
|
return;
|
|
30882
30882
|
}
|
|
30883
30883
|
if (!opts.jtd)
|
|
30884
30884
|
checkStrictTypes(it, types2);
|
|
30885
30885
|
gen.block(() => {
|
|
30886
|
-
for (const group of
|
|
30886
|
+
for (const group of RULES2.rules)
|
|
30887
30887
|
groupKeywords(group);
|
|
30888
|
-
groupKeywords(
|
|
30888
|
+
groupKeywords(RULES2.post);
|
|
30889
30889
|
});
|
|
30890
30890
|
function groupKeywords(group) {
|
|
30891
30891
|
if (!(0, applicability_1.shouldUseGroup)(schema3, group))
|
|
@@ -32984,10 +32984,10 @@ var require_core = __commonJS({
|
|
|
32984
32984
|
}
|
|
32985
32985
|
// Remove keyword
|
|
32986
32986
|
removeKeyword(keyword) {
|
|
32987
|
-
const { RULES } = this;
|
|
32988
|
-
delete
|
|
32989
|
-
delete
|
|
32990
|
-
for (const group of
|
|
32987
|
+
const { RULES: RULES2 } = this;
|
|
32988
|
+
delete RULES2.keywords[keyword];
|
|
32989
|
+
delete RULES2.all[keyword];
|
|
32990
|
+
for (const group of RULES2.rules) {
|
|
32991
32991
|
const i2 = group.rules.findIndex((rule) => rule.keyword === keyword);
|
|
32992
32992
|
if (i2 >= 0)
|
|
32993
32993
|
group.rules.splice(i2, 1);
|
|
@@ -33155,9 +33155,9 @@ var require_core = __commonJS({
|
|
|
33155
33155
|
}
|
|
33156
33156
|
var KEYWORD_NAME = /^[a-z_$][a-z0-9_$:-]*$/i;
|
|
33157
33157
|
function checkKeyword(keyword, def) {
|
|
33158
|
-
const { RULES } = this;
|
|
33158
|
+
const { RULES: RULES2 } = this;
|
|
33159
33159
|
(0, util_1.eachItem)(keyword, (kwd) => {
|
|
33160
|
-
if (
|
|
33160
|
+
if (RULES2.keywords[kwd])
|
|
33161
33161
|
throw new Error(`Keyword ${kwd} is already defined`);
|
|
33162
33162
|
if (!KEYWORD_NAME.test(kwd))
|
|
33163
33163
|
throw new Error(`Keyword ${kwd} has invalid name`);
|
|
@@ -33173,13 +33173,13 @@ var require_core = __commonJS({
|
|
|
33173
33173
|
const post = definition === null || definition === void 0 ? void 0 : definition.post;
|
|
33174
33174
|
if (dataType && post)
|
|
33175
33175
|
throw new Error('keyword with "post" flag cannot have "type"');
|
|
33176
|
-
const { RULES } = this;
|
|
33177
|
-
let ruleGroup = post ?
|
|
33176
|
+
const { RULES: RULES2 } = this;
|
|
33177
|
+
let ruleGroup = post ? RULES2.post : RULES2.rules.find(({ type: t2 }) => t2 === dataType);
|
|
33178
33178
|
if (!ruleGroup) {
|
|
33179
33179
|
ruleGroup = { type: dataType, rules: [] };
|
|
33180
|
-
|
|
33180
|
+
RULES2.rules.push(ruleGroup);
|
|
33181
33181
|
}
|
|
33182
|
-
|
|
33182
|
+
RULES2.keywords[keyword] = true;
|
|
33183
33183
|
if (!definition)
|
|
33184
33184
|
return;
|
|
33185
33185
|
const rule = {
|
|
@@ -33194,7 +33194,7 @@ var require_core = __commonJS({
|
|
|
33194
33194
|
addBeforeRule.call(this, ruleGroup, rule, definition.before);
|
|
33195
33195
|
else
|
|
33196
33196
|
ruleGroup.rules.push(rule);
|
|
33197
|
-
|
|
33197
|
+
RULES2.all[keyword] = rule;
|
|
33198
33198
|
(_a7 = definition.implements) === null || _a7 === void 0 ? void 0 : _a7.forEach((kwd) => this.addKeyword(kwd));
|
|
33199
33199
|
}
|
|
33200
33200
|
function addBeforeRule(ruleGroup, rule, before) {
|
|
@@ -49462,6 +49462,98 @@ var init_canvas_doc_incarnation = __esm({
|
|
|
49462
49462
|
}
|
|
49463
49463
|
});
|
|
49464
49464
|
|
|
49465
|
+
// ../shared/src/bounded-json.ts
|
|
49466
|
+
function containerEntries(value) {
|
|
49467
|
+
const prototype = Object.getPrototypeOf(value);
|
|
49468
|
+
if (Array.isArray(value)) {
|
|
49469
|
+
if (prototype !== Array.prototype) return void 0;
|
|
49470
|
+
} else if (prototype !== Object.prototype && prototype !== null) return void 0;
|
|
49471
|
+
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
49472
|
+
if (Object.getOwnPropertySymbols(value).length) return void 0;
|
|
49473
|
+
const keys = Array.isArray(value) ? Array.from({ length: value.length }, (_3, index2) => String(index2)) : Object.keys(descriptors);
|
|
49474
|
+
if (Array.isArray(value) && Object.keys(descriptors).length !== value.length + 1)
|
|
49475
|
+
return void 0;
|
|
49476
|
+
const entries = [];
|
|
49477
|
+
for (const key of keys) {
|
|
49478
|
+
const descriptor = descriptors[key];
|
|
49479
|
+
if (UNSAFE_JSON_KEYS.has(key) || !descriptor || !("value" in descriptor) || !descriptor.enumerable)
|
|
49480
|
+
return void 0;
|
|
49481
|
+
entries.push([key, descriptor.value]);
|
|
49482
|
+
}
|
|
49483
|
+
return entries;
|
|
49484
|
+
}
|
|
49485
|
+
function inspectBoundedJson(value, bounds) {
|
|
49486
|
+
const { maxBytes, maxDepth } = bounds;
|
|
49487
|
+
const pending2 = [{ value, depth: 0 }];
|
|
49488
|
+
const ancestors = /* @__PURE__ */ new Set();
|
|
49489
|
+
let bytes = 0;
|
|
49490
|
+
while (pending2.length) {
|
|
49491
|
+
const item = pending2.pop();
|
|
49492
|
+
const current3 = item.value;
|
|
49493
|
+
if (item.exit) {
|
|
49494
|
+
ancestors.delete(current3);
|
|
49495
|
+
continue;
|
|
49496
|
+
}
|
|
49497
|
+
if (current3 !== null && typeof current3 === "object") {
|
|
49498
|
+
if (item.depth > maxDepth) return "JSON exceeds the maximum depth";
|
|
49499
|
+
if (ancestors.has(current3)) return "JSON must not contain cycles";
|
|
49500
|
+
if (Array.isArray(current3) && current3.length > maxBytes) return "JSON exceeds the byte limit";
|
|
49501
|
+
const entries = containerEntries(current3);
|
|
49502
|
+
if (!entries) return "Expected plain JSON without unsafe keys or accessors";
|
|
49503
|
+
bytes += 2 + Math.max(0, entries.length - 1);
|
|
49504
|
+
ancestors.add(current3);
|
|
49505
|
+
pending2.push({ value: current3, depth: item.depth, exit: true });
|
|
49506
|
+
for (const [key, child] of entries) {
|
|
49507
|
+
if (!Array.isArray(current3)) bytes += encoder.encode(JSON.stringify(key)).length + 1;
|
|
49508
|
+
pending2.push({ value: child, depth: item.depth + 1 });
|
|
49509
|
+
}
|
|
49510
|
+
} else {
|
|
49511
|
+
if (typeof current3 === "number" && !Number.isFinite(current3))
|
|
49512
|
+
return "Expected finite JSON numbers";
|
|
49513
|
+
if (current3 !== null && !["string", "number", "boolean"].includes(typeof current3))
|
|
49514
|
+
return "Expected JSON data";
|
|
49515
|
+
bytes += encoder.encode(JSON.stringify(current3)).length;
|
|
49516
|
+
}
|
|
49517
|
+
if (bytes > maxBytes) return "JSON exceeds the byte limit";
|
|
49518
|
+
}
|
|
49519
|
+
return void 0;
|
|
49520
|
+
}
|
|
49521
|
+
function jsonValueUnion(self2) {
|
|
49522
|
+
return external_exports.union([
|
|
49523
|
+
external_exports.string(),
|
|
49524
|
+
external_exports.number().finite(),
|
|
49525
|
+
external_exports.boolean(),
|
|
49526
|
+
external_exports.null(),
|
|
49527
|
+
external_exports.array(self2),
|
|
49528
|
+
external_exports.object({}).catchall(self2)
|
|
49529
|
+
]);
|
|
49530
|
+
}
|
|
49531
|
+
function withJsonBounds(schema3, bounds) {
|
|
49532
|
+
return external_exports.preprocess((value, context2) => {
|
|
49533
|
+
const problem = inspectBoundedJson(value, bounds);
|
|
49534
|
+
if (problem) {
|
|
49535
|
+
context2.addIssue({ code: "custom", message: problem });
|
|
49536
|
+
return external_exports.NEVER;
|
|
49537
|
+
}
|
|
49538
|
+
return value;
|
|
49539
|
+
}, schema3);
|
|
49540
|
+
}
|
|
49541
|
+
var UNSAFE_JSON_KEYS, encoder, JsonValueSchema, JsonObjectSchema;
|
|
49542
|
+
var init_bounded_json = __esm({
|
|
49543
|
+
"../shared/src/bounded-json.ts"() {
|
|
49544
|
+
"use strict";
|
|
49545
|
+
init_zod();
|
|
49546
|
+
UNSAFE_JSON_KEYS = /* @__PURE__ */ new Set([
|
|
49547
|
+
"__proto__",
|
|
49548
|
+
"prototype",
|
|
49549
|
+
"constructor"
|
|
49550
|
+
]);
|
|
49551
|
+
encoder = new TextEncoder();
|
|
49552
|
+
JsonValueSchema = external_exports.lazy(() => jsonValueUnion(JsonValueSchema));
|
|
49553
|
+
JsonObjectSchema = external_exports.object({}).catchall(JsonValueSchema);
|
|
49554
|
+
}
|
|
49555
|
+
});
|
|
49556
|
+
|
|
49465
49557
|
// ../../node_modules/.pnpm/@asteasolutions+zod-to-openapi@9.1.0_zod@4.6.5/node_modules/@asteasolutions/zod-to-openapi/dist/index.cjs
|
|
49466
49558
|
var require_dist2 = __commonJS({
|
|
49467
49559
|
"../../node_modules/.pnpm/@asteasolutions+zod-to-openapi@9.1.0_zod@4.6.5/node_modules/@asteasolutions/zod-to-openapi/dist/index.cjs"(exports) {
|
|
@@ -51086,92 +51178,22 @@ var init_zod_openapi = __esm({
|
|
|
51086
51178
|
});
|
|
51087
51179
|
|
|
51088
51180
|
// ../shared/src/canvas-channel-json.ts
|
|
51089
|
-
function containerEntries(value) {
|
|
51090
|
-
const prototype = Object.getPrototypeOf(value);
|
|
51091
|
-
if (Array.isArray(value)) {
|
|
51092
|
-
if (prototype !== Array.prototype) return void 0;
|
|
51093
|
-
} else if (prototype !== Object.prototype && prototype !== null) return void 0;
|
|
51094
|
-
const descriptors = Object.getOwnPropertyDescriptors(value);
|
|
51095
|
-
if (Object.getOwnPropertySymbols(value).length) return void 0;
|
|
51096
|
-
const keys = Array.isArray(value) ? Array.from({ length: value.length }, (_3, index2) => String(index2)) : Object.keys(descriptors);
|
|
51097
|
-
if (Array.isArray(value) && Object.keys(descriptors).length !== value.length + 1)
|
|
51098
|
-
return void 0;
|
|
51099
|
-
const entries = [];
|
|
51100
|
-
for (const key of keys) {
|
|
51101
|
-
const descriptor = descriptors[key];
|
|
51102
|
-
if (unsafeKeys.has(key) || !descriptor || !("value" in descriptor) || !descriptor.enumerable)
|
|
51103
|
-
return void 0;
|
|
51104
|
-
entries.push([key, descriptor.value]);
|
|
51105
|
-
}
|
|
51106
|
-
return entries;
|
|
51107
|
-
}
|
|
51108
|
-
function inspectCanvasChannelJson(value, maxBytes = CANVAS_CHANNEL_ENVELOPE_BYTES) {
|
|
51109
|
-
const pending2 = [{ value, depth: 0 }];
|
|
51110
|
-
const ancestors = /* @__PURE__ */ new Set();
|
|
51111
|
-
let bytes = 0;
|
|
51112
|
-
while (pending2.length) {
|
|
51113
|
-
const item = pending2.pop();
|
|
51114
|
-
const current3 = item.value;
|
|
51115
|
-
if (item.exit) {
|
|
51116
|
-
ancestors.delete(current3);
|
|
51117
|
-
continue;
|
|
51118
|
-
}
|
|
51119
|
-
if (current3 !== null && typeof current3 === "object") {
|
|
51120
|
-
if (item.depth > CANVAS_CHANNEL_JSON_DEPTH) return "JSON exceeds the maximum depth";
|
|
51121
|
-
if (ancestors.has(current3)) return "JSON must not contain cycles";
|
|
51122
|
-
if (Array.isArray(current3) && current3.length > maxBytes) return "JSON exceeds the byte limit";
|
|
51123
|
-
const entries = containerEntries(current3);
|
|
51124
|
-
if (!entries) return "Expected plain JSON without unsafe keys or accessors";
|
|
51125
|
-
bytes += 2 + Math.max(0, entries.length - 1);
|
|
51126
|
-
ancestors.add(current3);
|
|
51127
|
-
pending2.push({ value: current3, depth: item.depth, exit: true });
|
|
51128
|
-
for (const [key, child] of entries) {
|
|
51129
|
-
if (!Array.isArray(current3)) bytes += encoder.encode(JSON.stringify(key)).length + 1;
|
|
51130
|
-
pending2.push({ value: child, depth: item.depth + 1 });
|
|
51131
|
-
}
|
|
51132
|
-
} else {
|
|
51133
|
-
if (typeof current3 === "number" && !Number.isFinite(current3))
|
|
51134
|
-
return "Expected finite JSON numbers";
|
|
51135
|
-
if (current3 !== null && !["string", "number", "boolean"].includes(typeof current3))
|
|
51136
|
-
return "Expected JSON data";
|
|
51137
|
-
bytes += encoder.encode(JSON.stringify(current3)).length;
|
|
51138
|
-
}
|
|
51139
|
-
if (bytes > maxBytes) return "JSON exceeds the byte limit";
|
|
51140
|
-
}
|
|
51141
|
-
return void 0;
|
|
51142
|
-
}
|
|
51143
51181
|
function boundedJson(schema3, maxBytes = CANVAS_CHANNEL_ENVELOPE_BYTES) {
|
|
51144
|
-
return
|
|
51145
|
-
const problem = inspectCanvasChannelJson(value, maxBytes);
|
|
51146
|
-
if (problem) {
|
|
51147
|
-
context2.addIssue({ code: "custom", message: problem });
|
|
51148
|
-
return external_exports.NEVER;
|
|
51149
|
-
}
|
|
51150
|
-
return value;
|
|
51151
|
-
}, schema3);
|
|
51182
|
+
return withJsonBounds(schema3, { maxBytes, maxDepth: CANVAS_CHANNEL_JSON_DEPTH });
|
|
51152
51183
|
}
|
|
51153
|
-
var CANVAS_CHANNEL_ENVELOPE_BYTES, CANVAS_CHANNEL_JSON_DEPTH, CANVAS_CHANNEL_STATE_BYTES, unsafeKeys,
|
|
51184
|
+
var CANVAS_CHANNEL_ENVELOPE_BYTES, CANVAS_CHANNEL_JSON_DEPTH, CANVAS_CHANNEL_STATE_BYTES, unsafeKeys, RecursiveJsonSchema, CanvasChannelJsonValueSchema, CanvasChannelStateSchema;
|
|
51154
51185
|
var init_canvas_channel_json = __esm({
|
|
51155
51186
|
"../shared/src/canvas-channel-json.ts"() {
|
|
51156
51187
|
"use strict";
|
|
51157
51188
|
init_zod();
|
|
51189
|
+
init_bounded_json();
|
|
51158
51190
|
init_zod_openapi();
|
|
51159
51191
|
extendZodWithOpenApiOnce();
|
|
51160
51192
|
CANVAS_CHANNEL_ENVELOPE_BYTES = 16 * 1024;
|
|
51161
51193
|
CANVAS_CHANNEL_JSON_DEPTH = 32;
|
|
51162
51194
|
CANVAS_CHANNEL_STATE_BYTES = 256 * 1024;
|
|
51163
|
-
unsafeKeys =
|
|
51164
|
-
|
|
51165
|
-
RecursiveJsonSchema = external_exports.lazy(
|
|
51166
|
-
() => external_exports.union([
|
|
51167
|
-
external_exports.string(),
|
|
51168
|
-
external_exports.number().finite(),
|
|
51169
|
-
external_exports.boolean(),
|
|
51170
|
-
external_exports.null(),
|
|
51171
|
-
external_exports.array(RecursiveJsonSchema),
|
|
51172
|
-
external_exports.object({}).catchall(RecursiveJsonSchema)
|
|
51173
|
-
])
|
|
51174
|
-
).openapi("CanvasChannelJson");
|
|
51195
|
+
unsafeKeys = UNSAFE_JSON_KEYS;
|
|
51196
|
+
RecursiveJsonSchema = external_exports.lazy(() => jsonValueUnion(RecursiveJsonSchema)).openapi("CanvasChannelJson");
|
|
51175
51197
|
CanvasChannelJsonValueSchema = boundedJson(RecursiveJsonSchema);
|
|
51176
51198
|
CanvasChannelStateSchema = boundedJson(
|
|
51177
51199
|
external_exports.object({}).catchall(RecursiveJsonSchema),
|
|
@@ -52007,14 +52029,17 @@ function resolveCeilingLevel(declared, ceiling) {
|
|
|
52007
52029
|
}
|
|
52008
52030
|
function stricterLevel(a2, b2) {
|
|
52009
52031
|
const level = stricterPower(a2, b2);
|
|
52010
|
-
|
|
52011
|
-
|
|
52012
|
-
|
|
52013
|
-
|
|
52014
|
-
|
|
52015
|
-
|
|
52016
|
-
|
|
52017
|
-
|
|
52032
|
+
const marked = (a2.outsider || b2.outsider) && !level.outsider ? { ...level, outsider: true } : level;
|
|
52033
|
+
const teammate = mergeTeammateOrigins(a2.teammate, b2.teammate);
|
|
52034
|
+
return teammate === void 0 || teammate === marked.teammate ? marked : { ...marked, teammate };
|
|
52035
|
+
}
|
|
52036
|
+
function mergeTeammateOrigins(a2, b2) {
|
|
52037
|
+
if (b2 === void 0) return a2;
|
|
52038
|
+
if (a2 === void 0) return b2;
|
|
52039
|
+
const key = (origin) => `${origin.roomId}\0${origin.authorId}`;
|
|
52040
|
+
const seen = new Set(a2.map(key));
|
|
52041
|
+
const added = b2.filter((origin) => !seen.has(key(origin)));
|
|
52042
|
+
return added.length === 0 ? a2 : [...a2, ...added];
|
|
52018
52043
|
}
|
|
52019
52044
|
function stricterPower(a2, b2) {
|
|
52020
52045
|
const fits = (inner, outer) => isNoLooserThan(outer, inner) && (!inner.auto || outer.auto === true || outer.asks === "never");
|
|
@@ -52046,7 +52071,11 @@ var init_permission_semantics = __esm({
|
|
|
52046
52071
|
});
|
|
52047
52072
|
|
|
52048
52073
|
// ../shared/src/permissions/permission-schemas.ts
|
|
52049
|
-
|
|
52074
|
+
function chatModeWord(modeId) {
|
|
52075
|
+
if (modeId === null) return "the default";
|
|
52076
|
+
return CHAT_MODE_WORD[modeId] ?? modeId;
|
|
52077
|
+
}
|
|
52078
|
+
var PermissionStateSchema, PermissionAreaIdSchema, PermissionPresetSchema, PermissionActionIdSchema, PermissionOverridesSchema, PermissionStopSchema, AgentPermissionsSchema, PERMISSION_SOURCES, PermissionSourceSchema, PermissionLayerSchema, ResolvedPermissionSchema, PERMISSION_SURFACES, PermissionSurfaceSchema, PermissionAttributionSchema, PermissionChangeTargetSchema, PermissionChangeKeySchema, PermissionChangeSchema, PermissionChangedMetadataSchema, PERMISSION_ANSWERS, PermissionAnsweredMetadataSchema, PermissionSuggestionDismissedMetadataSchema, PermissionSuggestionRestoredMetadataSchema, ALWAYS_SUGGESTION_WINDOW_MS, CHAT_MODE_WORD;
|
|
52050
52079
|
var init_permission_schemas = __esm({
|
|
52051
52080
|
"../shared/src/permissions/permission-schemas.ts"() {
|
|
52052
52081
|
"use strict";
|
|
@@ -52123,7 +52152,13 @@ var init_permission_schemas = __esm({
|
|
|
52123
52152
|
kind: external_exports.literal("files"),
|
|
52124
52153
|
/** The runtime whose own stop changed; absent for the global one. */
|
|
52125
52154
|
runtime: external_exports.string().optional()
|
|
52126
|
-
})
|
|
52155
|
+
}),
|
|
52156
|
+
/**
|
|
52157
|
+
* One chat's Files & commands mode, as its runtime names it (`before` and
|
|
52158
|
+
* `after` are mode ids). Recorded under the chat's agent; only the one-time
|
|
52159
|
+
* raise of existing chats writes it (DOR-3107), and its Undo sets each chat back.
|
|
52160
|
+
*/
|
|
52161
|
+
external_exports.object({ kind: external_exports.literal("chat"), sessionId: external_exports.string() })
|
|
52127
52162
|
]);
|
|
52128
52163
|
PermissionChangeSchema = external_exports.object({
|
|
52129
52164
|
target: PermissionChangeTargetSchema,
|
|
@@ -52193,6 +52228,14 @@ var init_permission_schemas = __esm({
|
|
|
52193
52228
|
undoOf: external_exports.string()
|
|
52194
52229
|
});
|
|
52195
52230
|
ALWAYS_SUGGESTION_WINDOW_MS = 7 * 24 * 60 * 60 * 1e3;
|
|
52231
|
+
CHAT_MODE_WORD = {
|
|
52232
|
+
default: "Ask first",
|
|
52233
|
+
plan: "Plan",
|
|
52234
|
+
acceptEdits: "Act",
|
|
52235
|
+
auto: "Auto",
|
|
52236
|
+
dontAsk: "Never ask",
|
|
52237
|
+
bypassPermissions: "Full autonomy"
|
|
52238
|
+
};
|
|
52196
52239
|
}
|
|
52197
52240
|
});
|
|
52198
52241
|
|
|
@@ -53320,6 +53363,7 @@ var init_capabilities = __esm({
|
|
|
53320
53363
|
var PROJECT_NAME_PATTERN, ProjectRefSchema, ProjectInfoSchema, ProjectListResponseSchema, ProjectResolveQuerySchema, ProjectResolveResponseSchema, AccountEligibilityRowSchema, AccountEligibilityQuerySchema, AccountEligibilityResponseSchema, ProjectAccountsRequestSchema, ProjectWithoutCreditsRequestSchema, OnlyProjectsRequestSchema, OnlyProjectsResponseSchema;
|
|
53321
53364
|
var init_project_schemas = __esm({
|
|
53322
53365
|
"../shared/src/project-schemas.ts"() {
|
|
53366
|
+
"use strict";
|
|
53323
53367
|
init_zod();
|
|
53324
53368
|
init_zod_openapi();
|
|
53325
53369
|
extendZodWithOpenApiOnce();
|
|
@@ -53703,6 +53747,7 @@ var init_account_usage_codex = __esm({
|
|
|
53703
53747
|
var LEDGER_RUNTIMES, LEDGER_SOURCES, RateLimitStatusSchema, ISO_TIME_PATTERN, IsoTimeSchema, LedgerSourceSchema, LedgerEntrySchema, WINDOW_KEY_PATTERN, LedgerPlanSchema, LedgerCreditsSchema, LedgerSpendSchema, UsageLedgerSchema, MINUTE_MS, HOUR_MS, FIVE_HOUR_MS, SEVEN_DAY_MS, MAX_FUTURE_SKEW_MS, AccountUsageSchema, LimitResolutionSchema, LimitHistoryEntrySchema, LimitHistoryResponseSchema, FoundClaudeFolderSchema, DismissFoundFolderRequestSchema;
|
|
53704
53748
|
var init_account_usage = __esm({
|
|
53705
53749
|
"../shared/src/account-usage.ts"() {
|
|
53750
|
+
"use strict";
|
|
53706
53751
|
init_zod();
|
|
53707
53752
|
init_zod_openapi();
|
|
53708
53753
|
init_ledger_slug();
|
|
@@ -54112,7 +54157,7 @@ function isSafeSigninUrl(value) {
|
|
|
54112
54157
|
if (url2.protocol !== "http:") return false;
|
|
54113
54158
|
return url2.hostname === "localhost" || url2.hostname === "127.0.0.1" || url2.hostname === "[::1]";
|
|
54114
54159
|
}
|
|
54115
|
-
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, 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, 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, BrowseDirectoryQuerySchema, DirectoryEntrySchema, BrowseDirectoryResponseSchema, TunnelStatusSchema, LanAccessStatusSchema, RemoteAccessStateSchema, RemoteAccessAvailabilitySchema, RemoteAccessEnrolmentSchema, RemoteAccessReportSchema, HealthResponseSchema, ExecutionDefaultsSchema, ExperimentStateSchema, ServerConfigSchema2, ModelTierSchema, ModelOptionSchema, SubagentInfoSchema, GitStatusResponseSchema, GitStatusErrorSchema, ErrorResponseSchema, SessionLockedErrorSchema, TaskStatusSchema, SettableTaskStatusSchema, TaskNameSchema, TaskRunStatusSchema, 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;
|
|
54160
|
+
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, 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, 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, BrowseDirectoryQuerySchema, DirectoryEntrySchema, BrowseDirectoryResponseSchema, TunnelStatusSchema, LanAccessStatusSchema, RemoteAccessStateSchema, RemoteAccessAvailabilitySchema, RemoteAccessEnrolmentSchema, RemoteAccessReportSchema, HealthResponseSchema, ExecutionDefaultsSchema, ExperimentStateSchema, ServerConfigSchema2, ModelTierSchema, ModelOptionSchema, SubagentInfoSchema, GitStatusResponseSchema, GitStatusErrorSchema, ErrorResponseSchema, SessionLockedErrorSchema, TaskStatusSchema, SettableTaskStatusSchema, TaskNameSchema, TaskRunStatusSchema, TaskRunTriggerSchema, ScheduleOriginMarksSchema, 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;
|
|
54116
54161
|
var init_schemas4 = __esm({
|
|
54117
54162
|
"../shared/src/schemas.ts"() {
|
|
54118
54163
|
"use strict";
|
|
@@ -56435,6 +56480,9 @@ var init_schemas4 = __esm({
|
|
|
56435
56480
|
isLocalCaller: external_exports.boolean().openapi({
|
|
56436
56481
|
description: "Whether THIS request reached DorkOS from the machine it runs on. The one field here that describes the caller rather than the server: it is answered per request by the same predicate that guards the loopback-only connect endpoints (`lib/caller-authority.ts`), so a client can be told in advance what those endpoints would do instead of discovering it from a 403. False for a phone or any browser arriving over the tunnel, over the LAN, or through a reverse proxy. True whenever `DORKOS_ALLOW_INSECURE_BIND` is set, because under that flag those endpoints accept"
|
|
56437
56482
|
}),
|
|
56483
|
+
callerRoute: external_exports.enum(["local", "wifi", "tunnel", "managed", "network", "hub"]).nullable().optional().openapi({
|
|
56484
|
+
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"
|
|
56485
|
+
}),
|
|
56438
56486
|
dismissedUpgradeVersions: external_exports.array(external_exports.string()).openapi({ description: "Versions the user has dismissed upgrade notifications for" }),
|
|
56439
56487
|
dismissedPromoIds: external_exports.array(external_exports.string()).openapi({
|
|
56440
56488
|
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"
|
|
@@ -56890,6 +56938,21 @@ var init_schemas4 = __esm({
|
|
|
56890
56938
|
).refine((s2) => !s2.includes("--"), "Must not contain consecutive hyphens");
|
|
56891
56939
|
TaskRunStatusSchema = external_exports.enum(["running", "completed", "failed", "cancelled", "skipped", "blocked"]).openapi("TaskRunStatus");
|
|
56892
56940
|
TaskRunTriggerSchema = external_exports.enum(["scheduled", "manual", "agent"]).openapi("TaskRunTrigger");
|
|
56941
|
+
ScheduleOriginMarksSchema = external_exports.object({
|
|
56942
|
+
/** The turn read words DorkOS can't vouch for: a stranger's message, or another agent's that carried one. */
|
|
56943
|
+
outsider: external_exports.literal(true).optional(),
|
|
56944
|
+
/** Each teammate whose message started the chain, and the space room they wrote in. */
|
|
56945
|
+
teammate: external_exports.array(
|
|
56946
|
+
external_exports.object({
|
|
56947
|
+
roomId: external_exports.string(),
|
|
56948
|
+
authorId: external_exports.string(),
|
|
56949
|
+
/** The teammate's name when the mark was written, or null when it was unknown. */
|
|
56950
|
+
name: external_exports.string().nullable().default(null),
|
|
56951
|
+
/** The room's title when the mark was written, or null when it was unknown. */
|
|
56952
|
+
room: external_exports.string().nullable().default(null)
|
|
56953
|
+
})
|
|
56954
|
+
).optional()
|
|
56955
|
+
}).openapi("ScheduleOriginMarks");
|
|
56893
56956
|
TaskSchema = external_exports.object({
|
|
56894
56957
|
id: external_exports.string(),
|
|
56895
56958
|
name: external_exports.string(),
|
|
@@ -57067,6 +57130,12 @@ var init_schemas4 = __esm({
|
|
|
57067
57130
|
* such. `null` on every schedule a person or an agent explained themselves.
|
|
57068
57131
|
*/
|
|
57069
57132
|
reasonSource: external_exports.enum(["dorkos"]).nullable().default(null),
|
|
57133
|
+
/**
|
|
57134
|
+
* The turn marks the schedule was created or last edited under, or null for an unmarked
|
|
57135
|
+
* turn or a person's own schedule (DOR-3036). A marked schedule waits for a person, whatever
|
|
57136
|
+
* the trust preset; approving it clears this.
|
|
57137
|
+
*/
|
|
57138
|
+
originMarks: ScheduleOriginMarksSchema.nullable().optional(),
|
|
57070
57139
|
nextRun: external_exports.string().nullable().optional(),
|
|
57071
57140
|
/**
|
|
57072
57141
|
* When the schedule last started a run (ISO 8601), or null when it never
|
|
@@ -59863,7 +59932,7 @@ function checkContributionShape(contribution, readExtra) {
|
|
|
59863
59932
|
}
|
|
59864
59933
|
function checkDeclaredTools(manifest) {
|
|
59865
59934
|
return (manifest.tools ?? []).map((tool) => {
|
|
59866
|
-
const
|
|
59935
|
+
const refused3 = (reason) => ({
|
|
59867
59936
|
ok: false,
|
|
59868
59937
|
name: tool.name,
|
|
59869
59938
|
title: tool.title,
|
|
@@ -59871,7 +59940,7 @@ function checkDeclaredTools(manifest) {
|
|
|
59871
59940
|
reason: plainReason(reason)
|
|
59872
59941
|
});
|
|
59873
59942
|
const schema3 = checkToolInputSchema(tool.inputSchema);
|
|
59874
|
-
if (!schema3.ok) return
|
|
59943
|
+
if (!schema3.ok) return refused3(schema3.reason);
|
|
59875
59944
|
const checked = checkContributionShape(
|
|
59876
59945
|
{
|
|
59877
59946
|
owner: manifest.id,
|
|
@@ -59889,7 +59958,7 @@ function checkDeclaredTools(manifest) {
|
|
|
59889
59958
|
},
|
|
59890
59959
|
NO_EXTRA
|
|
59891
59960
|
);
|
|
59892
|
-
if (!checked.ok) return
|
|
59961
|
+
if (!checked.ok) return refused3(checked.reason);
|
|
59893
59962
|
const timeout = Math.min(
|
|
59894
59963
|
Math.max(1, Math.trunc(tool.timeoutSeconds ?? EXTENSION_TOOL_TIMEOUT_DEFAULT_SECONDS)),
|
|
59895
59964
|
EXTENSION_TOOL_TIMEOUT_MAX_SECONDS
|
|
@@ -109432,7 +109501,7 @@ var init_billing = __esm({
|
|
|
109432
109501
|
});
|
|
109433
109502
|
|
|
109434
109503
|
// ../cloud-api/dist/inference.js
|
|
109435
|
-
var InferenceTokenRequestSchema, InferenceEndpointsSchema, InferenceFormatSchema, InferenceLimitsSchema, InferenceTokenSchema, ModelSupportsSchema, InferenceModelSchema, InferenceModelsResponseSchema, InferenceTokenRevokeResponseSchema, InferenceRefusalReasonSchema;
|
|
109504
|
+
var InferenceTokenRequestSchema, InferenceEndpointsSchema, InferenceFormatSchema, InferenceLimitsSchema, InferenceTokenSchema, ModelSupportsSchema, InferenceModelSchema, InferenceModelsResponseSchema, InferenceTokenRevokeResponseSchema, InferenceRefusalReasonSchema, InferenceErrorBodySchema;
|
|
109436
109505
|
var init_inference = __esm({
|
|
109437
109506
|
"../cloud-api/dist/inference.js"() {
|
|
109438
109507
|
"use strict";
|
|
@@ -109441,7 +109510,7 @@ var init_inference = __esm({
|
|
|
109441
109510
|
InferenceTokenRequestSchema = external_exports.object({
|
|
109442
109511
|
instanceId: IdSchema,
|
|
109443
109512
|
seatRef: IdSchema.optional(),
|
|
109444
|
-
agentRef: IdSchema.optional()
|
|
109513
|
+
agentRef: IdSchema.optional().describe("The agent the token is for. On a cloud agent computer, the agent`s id on its hub. The computer`s own claim: attribution and billing only, never authorization.")
|
|
109445
109514
|
}).describe("Mint a short-lived inference token for one instance.");
|
|
109446
109515
|
InferenceEndpointsSchema = external_exports.object({
|
|
109447
109516
|
anthropicMessages: external_exports.string().url(),
|
|
@@ -109497,6 +109566,16 @@ var init_inference = __esm({
|
|
|
109497
109566
|
"daily_limit_reached",
|
|
109498
109567
|
"turn_budget_exhausted"
|
|
109499
109568
|
]).describe("Why an inference request was refused. Conditions a caller can act on; nothing about what they bought.");
|
|
109569
|
+
InferenceErrorBodySchema = external_exports.object({
|
|
109570
|
+
type: external_exports.literal("error"),
|
|
109571
|
+
error: external_exports.object({
|
|
109572
|
+
type: external_exports.string().describe("The vendor-style error type."),
|
|
109573
|
+
message: external_exports.string().describe("What went wrong, for a log; never shown as a decision."),
|
|
109574
|
+
dorkos_code: external_exports.string().optional().describe("The endpoint`s own word for the refusal. Never branched on."),
|
|
109575
|
+
dorkos_reason: tolerantEnum(InferenceRefusalReasonSchema).optional().catch(UNRECOGNISED).describe("The published refusal reason, when there is one. Unknown reads as unrecognised.")
|
|
109576
|
+
}),
|
|
109577
|
+
request_id: external_exports.string().nullable().optional()
|
|
109578
|
+
}).describe("The body an inference request is refused with: the vendor error envelope plus two fields of the service`s own.");
|
|
109500
109579
|
}
|
|
109501
109580
|
});
|
|
109502
109581
|
|
|
@@ -109856,6 +109935,11 @@ var init_remote2 = __esm({
|
|
|
109856
109935
|
id: IdSchema,
|
|
109857
109936
|
leaseToken: external_exports.string().min(1)
|
|
109858
109937
|
}).describe("For a hub only: read `GET /v1/hubs/self/assignment` again now, because its front-door proof was replaced or it ended. Carries nothing else, and no authority."),
|
|
109938
|
+
external_exports.object({
|
|
109939
|
+
kind: external_exports.literal("agent_computer_assignment_changed"),
|
|
109940
|
+
id: IdSchema,
|
|
109941
|
+
leaseToken: external_exports.string().min(1)
|
|
109942
|
+
}).describe("For an agent computer only: read `GET /v1/agent-computers/self/assignment` again now, because its link code or its hub changed. Carries nothing else, and no authority. Sent only to a computer whose version knows it."),
|
|
109859
109943
|
external_exports.object({
|
|
109860
109944
|
kind: external_exports.literal("keepalive"),
|
|
109861
109945
|
id: IdSchema,
|
|
@@ -110158,7 +110242,7 @@ var init_communities = __esm({
|
|
|
110158
110242
|
});
|
|
110159
110243
|
|
|
110160
110244
|
// ../cloud-api/dist/hubs.js
|
|
110161
|
-
var HubAssignmentStateSchema, HttpsOriginSchema, HubSignInClientSchema, HubAssignmentSchema, HubAssignmentConfirmRequestSchema, HubAssignmentConfirmResponseSchema, CloudComputerStateSchema, CloudComputerStopReasonSchema, CloudComputerSchema, CloudComputerListResponseSchema, CloudComputerCreateRequestSchema, CloudComputerCreateResponseSchema, CloudComputerTransitionResponseSchema, ViewerOpenResponseSchema, CloudComputerDeletedResponseSchema;
|
|
110245
|
+
var HubAssignmentStateSchema, HttpsOriginSchema, HubSignInClientSchema, HubAssignmentSchema, HubAssignmentConfirmRequestSchema, HubAssignmentConfirmResponseSchema, CloudComputerStateSchema, CloudComputerStopReasonSchema, CloudComputerSchema, CloudComputerListResponseSchema, CloudComputerCreateRequestSchema, CloudComputerCreateResponseSchema, CloudComputerTransitionResponseSchema, CloudComputerStartReasonSchema, CloudComputerStartRequestSchema, ViewerOpenResponseSchema, CloudComputerDeletedResponseSchema, AgentComputerLinkCodeSchema, AgentComputerLinkCodeRequestSchema, AgentComputerAssignmentSchema, AgentComputerActivityRequestSchema, HubNextWakeRequestSchema;
|
|
110162
110246
|
var init_hubs = __esm({
|
|
110163
110247
|
"../cloud-api/dist/hubs.js"() {
|
|
110164
110248
|
"use strict";
|
|
@@ -110226,6 +110310,10 @@ var init_hubs = __esm({
|
|
|
110226
110310
|
CloudComputerTransitionResponseSchema = external_exports.object({
|
|
110227
110311
|
computer: CloudComputerSchema
|
|
110228
110312
|
}).describe("The computer as it is after a start or stop was accepted.");
|
|
110313
|
+
CloudComputerStartReasonSchema = external_exports.enum(["turn", "viewer", "beat"]).describe("Why a hub starts a computer: a turn, a viewer, or a beat. For metering only.");
|
|
110314
|
+
CloudComputerStartRequestSchema = external_exports.object({
|
|
110315
|
+
reason: tolerantEnum(CloudComputerStartReasonSchema).optional().describe("Why the computer is started, for metering. A reason this release does not know reads as unrecognised. Absent says nothing.")
|
|
110316
|
+
}).describe("Start a cloud agent computer, optionally saying why. The body may be left out.");
|
|
110229
110317
|
ViewerOpenResponseSchema = external_exports.object({
|
|
110230
110318
|
commandId: IdSchema.describe("The command waiting for the computer: the `id` it will see on its stream."),
|
|
110231
110319
|
queuedAt: TimestampSchema
|
|
@@ -110233,6 +110321,28 @@ var init_hubs = __esm({
|
|
|
110233
110321
|
CloudComputerDeletedResponseSchema = external_exports.object({
|
|
110234
110322
|
deletedAt: TimestampSchema
|
|
110235
110323
|
}).describe("When the computer, its disk and its snapshots were deleted. Cannot be undone.");
|
|
110324
|
+
AgentComputerLinkCodeSchema = external_exports.object({
|
|
110325
|
+
code: external_exports.string().regex(/^[0-9A-HJKMNP-TV-Z]{16}$/, "must be 16 characters of uppercase Crockford base32, with no spaces or dashes").meta({
|
|
110326
|
+
description: "The code itself: 16 characters of uppercase Crockford base32, 80 bits. Single use. Never log it or return it to a browser.",
|
|
110327
|
+
[ONE_TIME_CREDENTIAL_META]: true
|
|
110328
|
+
}),
|
|
110329
|
+
expiresAt: TimestampSchema.describe("When the code stops working: at most ten minutes after the hub minted it.")
|
|
110330
|
+
}).describe("A one-time code an agent computer links to its hub with. Single use, ten minutes at most, bound to one computer.");
|
|
110331
|
+
AgentComputerLinkCodeRequestSchema = AgentComputerLinkCodeSchema.describe("The link code a hub minted for an agent computer on its account. Hub instance key only; answered 204.");
|
|
110332
|
+
AgentComputerAssignmentSchema = external_exports.object({
|
|
110333
|
+
computerId: IdSchema.describe("This computer, as the hub and `GET /v1/computers` name it."),
|
|
110334
|
+
hubOrigin: HttpsOriginSchema.describe("Where this computer reaches its hub: an https origin with no path, through the hub`s front door."),
|
|
110335
|
+
ownerAccountId: IdSchema.describe("The account id, at `issuer`, of the person the hub belongs to. Never an email, and never changes."),
|
|
110336
|
+
issuer: HttpsUrlSchema.describe("The issuer `ownerAccountId` belongs to, compared exactly."),
|
|
110337
|
+
linkCode: AgentComputerLinkCodeSchema.nullable().describe("The one-time code to redeem at the hub, or null when none is waiting. Handed out once."),
|
|
110338
|
+
pollAfterSeconds: external_exports.number().int().positive().optional().describe("How long to wait before reading again when no command arrives. Absent leaves the wait to the computer.")
|
|
110339
|
+
}).describe("Which hub an agent computer works for, and the code it links with. That computer`s instance key only; never cached by a proxy.");
|
|
110340
|
+
AgentComputerActivityRequestSchema = external_exports.object({
|
|
110341
|
+
busy: external_exports.boolean().describe("True while the computer is in the middle of work. Holds for ten minutes unless sent again.")
|
|
110342
|
+
}).describe("Whether an agent computer is in the middle of work. That computer`s instance key only; answered 204.");
|
|
110343
|
+
HubNextWakeRequestSchema = external_exports.object({
|
|
110344
|
+
at: TimestampSchema.nullable().describe("When the hub next has a schedule due, or null when nothing is. More than 31 days ahead is ignored.")
|
|
110345
|
+
}).describe("When a hub next needs waking for a due schedule. Hub instance key only; answered 204.");
|
|
110236
110346
|
}
|
|
110237
110347
|
});
|
|
110238
110348
|
|
|
@@ -122982,6 +123092,13 @@ var init_tasks = __esm({
|
|
|
122982
123092
|
* what was approved, not an approval.
|
|
122983
123093
|
*/
|
|
122984
123094
|
previousApprovalKey: text("previous_approval_key"),
|
|
123095
|
+
/**
|
|
123096
|
+
* The turn marks of the turn that created or last edited this schedule (DOR-3036,
|
|
123097
|
+
* `specs/turn-marks`): JSON `{ outsider?: true, teammate?: [{ roomId, authorId, name?, room? }] }`,
|
|
123098
|
+
* or NULL. A marked schedule parks for a person, whatever the trust preset, and its approval
|
|
123099
|
+
* card names each mark and where it came from. A person's approval clears it.
|
|
123100
|
+
*/
|
|
123101
|
+
originMarks: text("origin_marks"),
|
|
122985
123102
|
/**
|
|
122986
123103
|
* The agent's runtime, model or effort that changed outside DorkOS since this
|
|
122987
123104
|
* schedule was approved, while the schedule follows the agent for that part
|
|
@@ -125324,6 +125441,13 @@ var init_rooms2 = __esm({
|
|
|
125324
125441
|
* it rather than letting it ride into `RoomEntry`.
|
|
125325
125442
|
*/
|
|
125326
125443
|
dispatchId: text("dispatch_id"),
|
|
125444
|
+
/**
|
|
125445
|
+
* The turn marks the post was written under (DOR-3036, `specs/turn-marks`): JSON
|
|
125446
|
+
* `{ outsider?: true, teammate?: [{ roomId, authorId }] }`, `{}` for a known unmarked turn, and
|
|
125447
|
+
* NULL when nobody knows (an unverified caller, a row from before this column). Kept so a
|
|
125448
|
+
* restart does not read a teammate-marked agent post as merely an outsider's. Off the wire.
|
|
125449
|
+
*/
|
|
125450
|
+
turnMarks: text("turn_marks"),
|
|
125327
125451
|
/** The entry this one answers, in this same room. Null for a top-level entry. */
|
|
125328
125452
|
parentEntryId: text("parent_entry_id"),
|
|
125329
125453
|
/**
|
|
@@ -126279,6 +126403,8 @@ var init_notifications = __esm({
|
|
|
126279
126403
|
"extension.approval",
|
|
126280
126404
|
"extension.decision",
|
|
126281
126405
|
"community.owner-replacement",
|
|
126406
|
+
"community.teammate-limit",
|
|
126407
|
+
"community.teammate-limits-reset",
|
|
126282
126408
|
"heartbeat.credits-offer",
|
|
126283
126409
|
"connector.destructive_pending",
|
|
126284
126410
|
"connector.destructive_executed",
|
|
@@ -127282,7 +127408,13 @@ var init_commitments = __esm({
|
|
|
127282
127408
|
/** When it left `open` (ISO 8601), or NULL while open. */
|
|
127283
127409
|
closedAt: text("closed_at"),
|
|
127284
127410
|
/** A short note on how it ended or why it moved, or NULL. */
|
|
127285
|
-
note: text("note")
|
|
127411
|
+
note: text("note"),
|
|
127412
|
+
/**
|
|
127413
|
+
* The turn marks the promise was made under (DOR-3036, `specs/turn-marks`): JSON
|
|
127414
|
+
* `{ outsider?: true, teammate?: [{ roomId, authorId }] }`, or NULL for an unmarked turn. The
|
|
127415
|
+
* beat its due date wakes carries them on, since it reads the promise's words.
|
|
127416
|
+
*/
|
|
127417
|
+
originMarks: text("origin_marks")
|
|
127286
127418
|
},
|
|
127287
127419
|
(table2) => [
|
|
127288
127420
|
index("commitments_agent_state_idx").on(table2.agentId, table2.state),
|
|
@@ -127501,7 +127633,8 @@ var init_remote_commands = __esm({
|
|
|
127501
127633
|
"revoke",
|
|
127502
127634
|
"inbox_pending",
|
|
127503
127635
|
"viewer_open",
|
|
127504
|
-
"hub_assignment_changed"
|
|
127636
|
+
"hub_assignment_changed",
|
|
127637
|
+
"agent_computer_assignment_changed"
|
|
127505
127638
|
];
|
|
127506
127639
|
REMOTE_COMMAND_ACK_STATES = ["pending", "acked", "rejected", "unconfirmed"];
|
|
127507
127640
|
remoteCommandJournal = sqliteTable(
|
|
@@ -127535,7 +127668,7 @@ var init_remote_commands = __esm({
|
|
|
127535
127668
|
index("remote_command_journal_ack_idx").on(table2.ackState, table2.receivedAt),
|
|
127536
127669
|
check3(
|
|
127537
127670
|
"remote_command_journal_verb",
|
|
127538
|
-
sql2`${table2.verb} IN ('open', 'close', 'rotate', 'revoke', 'inbox_pending', 'viewer_open', 'hub_assignment_changed')`
|
|
127671
|
+
sql2`${table2.verb} IN ('open', 'close', 'rotate', 'revoke', 'inbox_pending', 'viewer_open', 'hub_assignment_changed', 'agent_computer_assignment_changed')`
|
|
127539
127672
|
),
|
|
127540
127673
|
check3(
|
|
127541
127674
|
"remote_command_journal_ack_state",
|
|
@@ -128961,6 +129094,17 @@ var init_session_route = __esm({
|
|
|
128961
129094
|
}
|
|
128962
129095
|
});
|
|
128963
129096
|
|
|
129097
|
+
// ../../apps/server/src/services/core/auth/sessions/live-connections.ts
|
|
129098
|
+
var ENDED_SESSION_MEMORY_MS, startedAt;
|
|
129099
|
+
var init_live_connections = __esm({
|
|
129100
|
+
"../../apps/server/src/services/core/auth/sessions/live-connections.ts"() {
|
|
129101
|
+
"use strict";
|
|
129102
|
+
init_logger();
|
|
129103
|
+
ENDED_SESSION_MEMORY_MS = 5 * 60 * 1e3;
|
|
129104
|
+
startedAt = Date.now();
|
|
129105
|
+
}
|
|
129106
|
+
});
|
|
129107
|
+
|
|
128964
129108
|
// ../../apps/server/src/services/core/auth/cookie-security.ts
|
|
128965
129109
|
var AUTH_COOKIES_SECURE;
|
|
128966
129110
|
var init_cookie_security = __esm({
|
|
@@ -128972,23 +129116,25 @@ var init_cookie_security = __esm({
|
|
|
128972
129116
|
});
|
|
128973
129117
|
|
|
128974
129118
|
// ../shared/src/session-relay.ts
|
|
128975
|
-
var SESSION_RELAY_MAX_FRAME_LENGTH, SESSION_RELAY_MAX_MESSAGE_LENGTH, SESSION_RELAY_MAX_CHATS, SESSION_RELAY_IDLE_CLOSE_MS, VersionSchema, RelayVersionRangeSchema,
|
|
129119
|
+
var SESSION_RELAY_MAX_FRAME_LENGTH, SESSION_RELAY_MAX_INNER_FRAME_BYTES, SESSION_RELAY_MAX_MESSAGE_LENGTH, RelayMessageContentSchema, SESSION_RELAY_MAX_CHATS, SESSION_RELAY_IDLE_CLOSE_MS, VersionSchema, RelayVersionRangeSchema, RelayAdvertisedFeaturesSchema, RelayRequestIdSchema, StreamIdSchema, RelaySessionIdSchema, RelayAgentIdSchema, ToolCallIdSchema, ResumeCursorSchema, NO_CONTROL, INVISIBLE, RelayDisplayNameSchema, RelayDeviceSchema, base64url3, ChatsListRequestSchema, SessionStreamRequestSchema, SessionSendRequestSchema, SessionInterruptRequestSchema, ApprovalDecisionSchema, InteractionChallengeRequestSchema, RelayApprovalProofSchema, InteractionAnswerSchema, InteractionRespondRequestSchema, RelayRequestSchema, RelayChatSummarySchema, RelayResultBodySchemas, RelayErrorSchema, exactBase64url, RelayEphemeralKeySchema, RelaySignatureSchema, RelayNonceSchema, RelayPinnedHubKeySchema, RelayHelloFrameSchema, RelayHandshakeAnswerSchema, RelaySealedFrameSchema, HeartbeatFrameSchema, RelayWebFrameSchema, RelayStreamFrameSchema, RelayComputerFrameSchema, RelayFinishFrameSchema;
|
|
128976
129120
|
var init_session_relay = __esm({
|
|
128977
129121
|
"../shared/src/session-relay.ts"() {
|
|
128978
129122
|
"use strict";
|
|
128979
129123
|
init_zod();
|
|
128980
129124
|
init_schemas4();
|
|
128981
129125
|
SESSION_RELAY_MAX_FRAME_LENGTH = 1048576;
|
|
129126
|
+
SESSION_RELAY_MAX_INNER_FRAME_BYTES = Math.floor((SESSION_RELAY_MAX_FRAME_LENGTH - 64) * 3 / 4) - 16;
|
|
128982
129127
|
SESSION_RELAY_MAX_MESSAGE_LENGTH = 2e5;
|
|
129128
|
+
RelayMessageContentSchema = external_exports.string().min(1).max(SESSION_RELAY_MAX_MESSAGE_LENGTH);
|
|
128983
129129
|
SESSION_RELAY_MAX_CHATS = 200;
|
|
128984
129130
|
SESSION_RELAY_IDLE_CLOSE_MS = 3 * 60 * 1e3;
|
|
128985
129131
|
VersionSchema = external_exports.number().int().positive();
|
|
128986
129132
|
RelayVersionRangeSchema = external_exports.strictObject({ min: VersionSchema, max: VersionSchema }).refine((range) => range.min <= range.max, { message: "min must not exceed max" });
|
|
128987
|
-
|
|
128988
|
-
|
|
128989
|
-
StreamIdSchema =
|
|
128990
|
-
|
|
128991
|
-
|
|
129133
|
+
RelayAdvertisedFeaturesSchema = external_exports.array(external_exports.string().min(1).max(64)).max(64);
|
|
129134
|
+
RelayRequestIdSchema = external_exports.string().min(1).max(64).regex(/^[\w.:-]+$/);
|
|
129135
|
+
StreamIdSchema = RelayRequestIdSchema;
|
|
129136
|
+
RelaySessionIdSchema = external_exports.string().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/);
|
|
129137
|
+
RelayAgentIdSchema = external_exports.string().regex(/^[0-9A-HJKMNP-TV-Z]{26}$/);
|
|
128992
129138
|
ToolCallIdSchema = external_exports.string().min(1).max(256).regex(/^[\w.:-]+$/);
|
|
128993
129139
|
ResumeCursorSchema = external_exports.string().max(256).regex(/^[0-9a-f-]+-\d+-g\d+-\d+$/);
|
|
128994
129140
|
NO_CONTROL = /^[^\u0000-\u001f\u007f]*$/;
|
|
@@ -129001,36 +129147,36 @@ var init_session_relay = __esm({
|
|
|
129001
129147
|
base64url3 = (max2) => external_exports.string().min(1).max(max2).regex(/^[A-Za-z0-9_-]+$/);
|
|
129002
129148
|
ChatsListRequestSchema = external_exports.strictObject({
|
|
129003
129149
|
op: external_exports.literal("chats.list"),
|
|
129004
|
-
agentId:
|
|
129150
|
+
agentId: RelayAgentIdSchema
|
|
129005
129151
|
});
|
|
129006
129152
|
SessionStreamRequestSchema = external_exports.strictObject({
|
|
129007
129153
|
op: external_exports.literal("session.stream"),
|
|
129008
129154
|
streamId: StreamIdSchema,
|
|
129009
|
-
sessionId:
|
|
129155
|
+
sessionId: RelaySessionIdSchema,
|
|
129010
129156
|
resume: ResumeCursorSchema.optional()
|
|
129011
129157
|
});
|
|
129012
129158
|
SessionSendRequestSchema = external_exports.strictObject({
|
|
129013
129159
|
op: external_exports.literal("session.send"),
|
|
129014
|
-
sessionId:
|
|
129015
|
-
content:
|
|
129016
|
-
clientMessageId:
|
|
129160
|
+
sessionId: RelaySessionIdSchema,
|
|
129161
|
+
content: RelayMessageContentSchema,
|
|
129162
|
+
clientMessageId: RelayRequestIdSchema.optional(),
|
|
129017
129163
|
disposition: MessageDispositionSchema.optional(),
|
|
129018
|
-
newChat: external_exports.strictObject({ agentId:
|
|
129164
|
+
newChat: external_exports.strictObject({ agentId: RelayAgentIdSchema }).optional()
|
|
129019
129165
|
});
|
|
129020
129166
|
SessionInterruptRequestSchema = external_exports.strictObject({
|
|
129021
129167
|
op: external_exports.literal("session.interrupt"),
|
|
129022
|
-
sessionId:
|
|
129168
|
+
sessionId: RelaySessionIdSchema
|
|
129023
129169
|
});
|
|
129024
129170
|
ApprovalDecisionSchema = external_exports.enum(["approve", "deny"]);
|
|
129025
129171
|
InteractionChallengeRequestSchema = external_exports.strictObject({
|
|
129026
129172
|
op: external_exports.literal("interaction.challenge"),
|
|
129027
|
-
sessionId:
|
|
129173
|
+
sessionId: RelaySessionIdSchema,
|
|
129028
129174
|
toolCallId: ToolCallIdSchema,
|
|
129029
129175
|
decision: ApprovalDecisionSchema
|
|
129030
129176
|
});
|
|
129031
129177
|
RelayApprovalProofSchema = external_exports.strictObject({
|
|
129032
129178
|
/** The `challengeId` the computer answered `interaction.challenge` with. */
|
|
129033
|
-
challengeId:
|
|
129179
|
+
challengeId: RelayRequestIdSchema,
|
|
129034
129180
|
credentialId: base64url3(1400),
|
|
129035
129181
|
clientDataJSON: base64url3(4096),
|
|
129036
129182
|
authenticatorData: base64url3(1024),
|
|
@@ -129057,7 +129203,7 @@ var init_session_relay = __esm({
|
|
|
129057
129203
|
]);
|
|
129058
129204
|
InteractionRespondRequestSchema = external_exports.strictObject({
|
|
129059
129205
|
op: external_exports.literal("interaction.respond"),
|
|
129060
|
-
sessionId:
|
|
129206
|
+
sessionId: RelaySessionIdSchema,
|
|
129061
129207
|
answer: InteractionAnswerSchema
|
|
129062
129208
|
});
|
|
129063
129209
|
RelayRequestSchema = external_exports.discriminatedUnion("op", [
|
|
@@ -129069,7 +129215,7 @@ var init_session_relay = __esm({
|
|
|
129069
129215
|
InteractionRespondRequestSchema
|
|
129070
129216
|
]);
|
|
129071
129217
|
RelayChatSummarySchema = external_exports.strictObject({
|
|
129072
|
-
sessionId:
|
|
129218
|
+
sessionId: RelaySessionIdSchema,
|
|
129073
129219
|
title: external_exports.string().max(500),
|
|
129074
129220
|
updatedAt: external_exports.string().datetime(),
|
|
129075
129221
|
lastMessagePreview: external_exports.string().max(500).optional()
|
|
@@ -129078,13 +129224,13 @@ var init_session_relay = __esm({
|
|
|
129078
129224
|
"chats.list": external_exports.strictObject({
|
|
129079
129225
|
chats: external_exports.array(RelayChatSummarySchema).max(SESSION_RELAY_MAX_CHATS)
|
|
129080
129226
|
}),
|
|
129081
|
-
"session.send": external_exports.strictObject({ sessionId:
|
|
129227
|
+
"session.send": external_exports.strictObject({ sessionId: RelaySessionIdSchema }),
|
|
129082
129228
|
"session.interrupt": external_exports.strictObject({
|
|
129083
129229
|
receipt: InterruptReceiptSchema,
|
|
129084
129230
|
cancelledQueued: external_exports.array(QueuedMessageSchema)
|
|
129085
129231
|
}),
|
|
129086
129232
|
"interaction.challenge": external_exports.strictObject({
|
|
129087
|
-
challengeId:
|
|
129233
|
+
challengeId: RelayRequestIdSchema,
|
|
129088
129234
|
/** The bytes to sign, base64url. Opaque to the web side. */
|
|
129089
129235
|
challenge: base64url3(256),
|
|
129090
129236
|
/** When the computer stops accepting a proof over it. */
|
|
@@ -129108,7 +129254,7 @@ var init_session_relay = __esm({
|
|
|
129108
129254
|
/** The computer's id as its hub knows it. Proved by `finish`, never taken on trust. */
|
|
129109
129255
|
computerId: external_exports.string().min(1).max(64).regex(/^[\w.:-]+$/),
|
|
129110
129256
|
versions: RelayVersionRangeSchema,
|
|
129111
|
-
features:
|
|
129257
|
+
features: RelayAdvertisedFeaturesSchema,
|
|
129112
129258
|
/** The computer's DorkOS version, for "needs an update" copy. */
|
|
129113
129259
|
appVersion: external_exports.string().min(1).max(64),
|
|
129114
129260
|
nonce: RelayNonceSchema,
|
|
@@ -129142,7 +129288,7 @@ var init_session_relay = __esm({
|
|
|
129142
129288
|
*/
|
|
129143
129289
|
external_exports.strictObject({
|
|
129144
129290
|
type: external_exports.literal("request"),
|
|
129145
|
-
id:
|
|
129291
|
+
id: RelayRequestIdSchema,
|
|
129146
129292
|
request: RelayRequestSchema,
|
|
129147
129293
|
/** The browser that asked; sent only to a computer that advertised `request.device`. */
|
|
129148
129294
|
device: RelayDeviceSchema.optional()
|
|
@@ -129164,13 +129310,13 @@ var init_session_relay = __esm({
|
|
|
129164
129310
|
RelayComputerFrameSchema = external_exports.discriminatedUnion("type", [
|
|
129165
129311
|
external_exports.strictObject({
|
|
129166
129312
|
type: external_exports.literal("result"),
|
|
129167
|
-
id:
|
|
129313
|
+
id: RelayRequestIdSchema,
|
|
129168
129314
|
ok: external_exports.literal(true),
|
|
129169
129315
|
body: external_exports.unknown()
|
|
129170
129316
|
}),
|
|
129171
129317
|
external_exports.strictObject({
|
|
129172
129318
|
type: external_exports.literal("error"),
|
|
129173
|
-
id:
|
|
129319
|
+
id: RelayRequestIdSchema,
|
|
129174
129320
|
ok: external_exports.literal(false),
|
|
129175
129321
|
error: RelayErrorSchema
|
|
129176
129322
|
}),
|
|
@@ -129326,6 +129472,7 @@ var init_session_gate = __esm({
|
|
|
129326
129472
|
init_public_computer();
|
|
129327
129473
|
init_session_relay_link();
|
|
129328
129474
|
init_session_route();
|
|
129475
|
+
init_live_connections();
|
|
129329
129476
|
}
|
|
129330
129477
|
});
|
|
129331
129478
|
|
|
@@ -129368,6 +129515,7 @@ var init_auth2 = __esm({
|
|
|
129368
129515
|
init_seed_legacy_mcp_key();
|
|
129369
129516
|
init_setup_code_gate();
|
|
129370
129517
|
init_session_route();
|
|
129518
|
+
init_live_connections();
|
|
129371
129519
|
init_setup_code();
|
|
129372
129520
|
init_cookie_security();
|
|
129373
129521
|
init_session_gate();
|
|
@@ -129416,6 +129564,7 @@ function defuseSystemTags(text3, tagNames) {
|
|
|
129416
129564
|
var IDENTITY_MAX_LENGTH, INVISIBLE_FORMAT, CONTROL_CHARS, PATTERN_CACHE;
|
|
129417
129565
|
var init_untrusted_text = __esm({
|
|
129418
129566
|
"../shared/src/untrusted-text.ts"() {
|
|
129567
|
+
"use strict";
|
|
129419
129568
|
IDENTITY_MAX_LENGTH = 80;
|
|
129420
129569
|
INVISIBLE_FORMAT = /[\u00ad\u200b-\u200f\u202a-\u202e\u2060-\u2064\ufeff\ufff9-\ufffb]/g;
|
|
129421
129570
|
CONTROL_CHARS = /[\u0000-\u001f\u007f-\u009f]/g;
|
|
@@ -132699,40 +132848,6 @@ var init_agent_home = __esm({
|
|
|
132699
132848
|
}
|
|
132700
132849
|
});
|
|
132701
132850
|
|
|
132702
|
-
// ../../apps/server/src/services/core/turn-power/live-outsider-turns.ts
|
|
132703
|
-
function homeKey(dir, forAgent) {
|
|
132704
|
-
try {
|
|
132705
|
-
return homeOf(resolveAgentHome(dir, forAgent));
|
|
132706
|
-
} catch {
|
|
132707
|
-
return void 0;
|
|
132708
|
-
}
|
|
132709
|
-
}
|
|
132710
|
-
function adjust(key, by) {
|
|
132711
|
-
const next = (running.get(key) ?? 0) + by;
|
|
132712
|
-
if (next > 0) running.set(key, next);
|
|
132713
|
-
else running.delete(key);
|
|
132714
|
-
}
|
|
132715
|
-
function countWhileRunning(place2, events) {
|
|
132716
|
-
const key = homeKey(place2.cwd, place2.forAgent) ?? UNPLACED;
|
|
132717
|
-
return (async function* counted() {
|
|
132718
|
-
adjust(key, 1);
|
|
132719
|
-
try {
|
|
132720
|
-
yield* events;
|
|
132721
|
-
} finally {
|
|
132722
|
-
adjust(key, -1);
|
|
132723
|
-
}
|
|
132724
|
-
})();
|
|
132725
|
-
}
|
|
132726
|
-
var UNPLACED, running;
|
|
132727
|
-
var init_live_outsider_turns = __esm({
|
|
132728
|
-
"../../apps/server/src/services/core/turn-power/live-outsider-turns.ts"() {
|
|
132729
|
-
"use strict";
|
|
132730
|
-
init_agent_home();
|
|
132731
|
-
UNPLACED = "";
|
|
132732
|
-
running = /* @__PURE__ */ new Map();
|
|
132733
|
-
}
|
|
132734
|
-
});
|
|
132735
|
-
|
|
132736
132851
|
// ../../apps/server/src/services/session/turn-identity/durable-rekey.ts
|
|
132737
132852
|
var init_durable_rekey = __esm({
|
|
132738
132853
|
"../../apps/server/src/services/session/turn-identity/durable-rekey.ts"() {
|
|
@@ -134694,6 +134809,260 @@ var init_session_key_registry = __esm({
|
|
|
134694
134809
|
}
|
|
134695
134810
|
});
|
|
134696
134811
|
|
|
134812
|
+
// ../../apps/server/src/services/session/origin/outsider-turns.ts
|
|
134813
|
+
import { AsyncLocalStorage as AsyncLocalStorage5 } from "node:async_hooks";
|
|
134814
|
+
function noteLatest(sessionId, outsider) {
|
|
134815
|
+
const key = primaryOf(sessionId);
|
|
134816
|
+
latest.set(key, outsider);
|
|
134817
|
+
if (outsider) heard.add(key);
|
|
134818
|
+
}
|
|
134819
|
+
function isOutsiderOrigin(origin) {
|
|
134820
|
+
if (origin.kind === "room") return origin.externalAuthor;
|
|
134821
|
+
return OUTSIDER_ORIGIN_KINDS.has(origin.kind);
|
|
134822
|
+
}
|
|
134823
|
+
function noteTurnOrigin(sessionId, origin) {
|
|
134824
|
+
const messageId = holdingFor.getStore();
|
|
134825
|
+
if (messageId === void 0) {
|
|
134826
|
+
noteLatest(sessionId, isOutsiderOrigin(origin));
|
|
134827
|
+
return;
|
|
134828
|
+
}
|
|
134829
|
+
pending.set(messageId, isOutsiderOrigin(origin));
|
|
134830
|
+
if (pending.size > PENDING_MAX) pending.delete(pending.keys().next().value);
|
|
134831
|
+
}
|
|
134832
|
+
function noteChatHeardOutsider(sessionId) {
|
|
134833
|
+
heard.add(primaryOf(sessionId));
|
|
134834
|
+
}
|
|
134835
|
+
var OUTSIDER_ORIGIN_KINDS, latest, heard, pending, PENDING_MAX, holdingFor;
|
|
134836
|
+
var init_outsider_turns = __esm({
|
|
134837
|
+
"../../apps/server/src/services/session/origin/outsider-turns.ts"() {
|
|
134838
|
+
"use strict";
|
|
134839
|
+
init_session_key_registry();
|
|
134840
|
+
OUTSIDER_ORIGIN_KINDS = /* @__PURE__ */ new Set([
|
|
134841
|
+
"relay-binding",
|
|
134842
|
+
"outside-sender",
|
|
134843
|
+
"connector-event"
|
|
134844
|
+
]);
|
|
134845
|
+
latest = /* @__PURE__ */ new Map();
|
|
134846
|
+
heard = /* @__PURE__ */ new Set();
|
|
134847
|
+
pending = /* @__PURE__ */ new Map();
|
|
134848
|
+
PENDING_MAX = 1e3;
|
|
134849
|
+
holdingFor = new AsyncLocalStorage5();
|
|
134850
|
+
}
|
|
134851
|
+
});
|
|
134852
|
+
|
|
134853
|
+
// ../../apps/server/src/services/core/turn-power/live-outsider-turns.ts
|
|
134854
|
+
function homeKey(dir, forAgent) {
|
|
134855
|
+
try {
|
|
134856
|
+
return homeOf(resolveAgentHome(dir, forAgent));
|
|
134857
|
+
} catch {
|
|
134858
|
+
return void 0;
|
|
134859
|
+
}
|
|
134860
|
+
}
|
|
134861
|
+
function countWhileRunning(place2, marks, events) {
|
|
134862
|
+
const key = homeKey(place2.cwd, place2.forAgent) ?? UNPLACED;
|
|
134863
|
+
return (async function* counted() {
|
|
134864
|
+
const token = { marks };
|
|
134865
|
+
const turns = running.get(key) ?? /* @__PURE__ */ new Set();
|
|
134866
|
+
turns.add(token);
|
|
134867
|
+
running.set(key, turns);
|
|
134868
|
+
try {
|
|
134869
|
+
yield* events;
|
|
134870
|
+
} finally {
|
|
134871
|
+
turns.delete(token);
|
|
134872
|
+
if (turns.size === 0 && running.get(key) === turns) running.delete(key);
|
|
134873
|
+
}
|
|
134874
|
+
})();
|
|
134875
|
+
}
|
|
134876
|
+
var UNPLACED, running;
|
|
134877
|
+
var init_live_outsider_turns = __esm({
|
|
134878
|
+
"../../apps/server/src/services/core/turn-power/live-outsider-turns.ts"() {
|
|
134879
|
+
"use strict";
|
|
134880
|
+
init_agent_home();
|
|
134881
|
+
UNPLACED = "";
|
|
134882
|
+
running = /* @__PURE__ */ new Map();
|
|
134883
|
+
}
|
|
134884
|
+
});
|
|
134885
|
+
|
|
134886
|
+
// ../../apps/server/src/services/core/turn-power/teammate-mark.ts
|
|
134887
|
+
function runsTeammateTurns(runtimeType) {
|
|
134888
|
+
return TEAMMATE_TURN_RUNTIMES.has(runtimeType);
|
|
134889
|
+
}
|
|
134890
|
+
function teammateRuntimeRefusal(runtimeType) {
|
|
134891
|
+
return `A teammate's message cannot start a turn on ${runtimeType} yet`;
|
|
134892
|
+
}
|
|
134893
|
+
function teammateTurnRefusal(runtimeType, origins) {
|
|
134894
|
+
if (!runsTeammateTurns(runtimeType)) return teammateRuntimeRefusal(runtimeType);
|
|
134895
|
+
const gate = spaceAllows;
|
|
134896
|
+
if (gate && origins.some((origin) => !gate(origin.roomId))) return TEAMMATE_LIMIT_REFUSAL;
|
|
134897
|
+
return null;
|
|
134898
|
+
}
|
|
134899
|
+
function teammateTurnOpts(opts) {
|
|
134900
|
+
const { additionalDirectories: _granted, ...rest } = opts ?? {};
|
|
134901
|
+
return {
|
|
134902
|
+
...rest,
|
|
134903
|
+
teammate: true,
|
|
134904
|
+
unattended: true,
|
|
134905
|
+
permissionCeiling: withReadOnly(opts?.permissionCeiling),
|
|
134906
|
+
...opts?.roomTurn ? { roomTurn: { ...opts.roomTurn, teammate: true, untrustedText: true } } : {}
|
|
134907
|
+
};
|
|
134908
|
+
}
|
|
134909
|
+
function withReadOnly(ceiling) {
|
|
134910
|
+
if (ceiling === void 0) return READ_ONLY_LEVEL;
|
|
134911
|
+
if (Array.isArray(ceiling) && ceiling.length === 0) return ["runtime-default", READ_ONLY_LEVEL];
|
|
134912
|
+
const bounds = Array.isArray(ceiling) ? ceiling : [ceiling];
|
|
134913
|
+
return [...bounds, READ_ONLY_LEVEL];
|
|
134914
|
+
}
|
|
134915
|
+
var TEAMMATE_TURN_RUNTIMES, TEAMMATE_LIMIT_REFUSAL, spaceAllows;
|
|
134916
|
+
var init_teammate_mark = __esm({
|
|
134917
|
+
"../../apps/server/src/services/core/turn-power/teammate-mark.ts"() {
|
|
134918
|
+
"use strict";
|
|
134919
|
+
init_permission_semantics();
|
|
134920
|
+
TEAMMATE_TURN_RUNTIMES = /* @__PURE__ */ new Set(["claude-code", "test-mode"]);
|
|
134921
|
+
TEAMMATE_LIMIT_REFUSAL = "This space reached its monthly limit for teammates, so this turn didn\u2019t run.";
|
|
134922
|
+
spaceAllows = null;
|
|
134923
|
+
}
|
|
134924
|
+
});
|
|
134925
|
+
|
|
134926
|
+
// ../../apps/server/src/services/core/turn-power/turn-marks.ts
|
|
134927
|
+
function presentKinds(marks) {
|
|
134928
|
+
return TURN_MARK_KINDS.filter((kind) => marks[kind] !== void 0);
|
|
134929
|
+
}
|
|
134930
|
+
function marksFrom(fields) {
|
|
134931
|
+
const kinds = presentKinds(fields);
|
|
134932
|
+
if (kinds.length === 0) return NO_MARKS;
|
|
134933
|
+
return Object.fromEntries(kinds.map((kind) => [kind, fields[kind]]));
|
|
134934
|
+
}
|
|
134935
|
+
function teammateOrigins(marks) {
|
|
134936
|
+
return marks.teammate ?? [];
|
|
134937
|
+
}
|
|
134938
|
+
function marksOfLevel(level) {
|
|
134939
|
+
return level === void 0 ? NO_MARKS : marksFrom(level);
|
|
134940
|
+
}
|
|
134941
|
+
function marksOfCeiling(ceiling) {
|
|
134942
|
+
if (!Array.isArray(ceiling)) {
|
|
134943
|
+
return ceiling === "runtime-default" ? UNKNOWN_SOURCE : marksOfLevel(ceiling);
|
|
134944
|
+
}
|
|
134945
|
+
const bounds = ceiling;
|
|
134946
|
+
if (bounds.length === 0) return UNKNOWN_SOURCE;
|
|
134947
|
+
return bounds.map(marksOfCeiling).reduce(mergeMarks, NO_MARKS);
|
|
134948
|
+
}
|
|
134949
|
+
function marksForTurn(opts) {
|
|
134950
|
+
const fromCeiling = opts?.permissionCeiling !== void 0 ? marksOfCeiling(opts.permissionCeiling) : NO_MARKS;
|
|
134951
|
+
return mergeMarks(
|
|
134952
|
+
fromCeiling,
|
|
134953
|
+
opts?.roomTurn?.outsiderInView === true ? { outsider: true } : NO_MARKS
|
|
134954
|
+
);
|
|
134955
|
+
}
|
|
134956
|
+
function mergeMarks(a2, b2) {
|
|
134957
|
+
const merged = {};
|
|
134958
|
+
for (const kind of TURN_MARK_KINDS) {
|
|
134959
|
+
const rules = RULES[kind];
|
|
134960
|
+
const value = rules.merge(a2[kind], b2[kind]);
|
|
134961
|
+
if (value !== void 0) merged[kind] = value;
|
|
134962
|
+
}
|
|
134963
|
+
return marksFrom(merged);
|
|
134964
|
+
}
|
|
134965
|
+
function hasMarks(marks) {
|
|
134966
|
+
return presentKinds(marks).length > 0;
|
|
134967
|
+
}
|
|
134968
|
+
function carriesAllMarks(receiver, sender) {
|
|
134969
|
+
return TURN_MARK_KINDS.every(
|
|
134970
|
+
(kind) => RULES[kind].covers(receiver[kind], sender[kind])
|
|
134971
|
+
);
|
|
134972
|
+
}
|
|
134973
|
+
function withMarks(level, marks) {
|
|
134974
|
+
const own2 = marksOfLevel(level);
|
|
134975
|
+
if (carriesAllMarks(own2, marks)) return level;
|
|
134976
|
+
return { ...level, ...mergeMarks(own2, marks) };
|
|
134977
|
+
}
|
|
134978
|
+
async function* refused(reason) {
|
|
134979
|
+
yield* [];
|
|
134980
|
+
throw new Error(reason);
|
|
134981
|
+
}
|
|
134982
|
+
function placeOf(runtime, sessionId, opts) {
|
|
134983
|
+
let cwd = opts?.cwd ?? opts?.roomTurn?.cwd;
|
|
134984
|
+
try {
|
|
134985
|
+
cwd ??= runtime.getSessionCwd?.(sessionId);
|
|
134986
|
+
} catch {
|
|
134987
|
+
}
|
|
134988
|
+
return { cwd, forAgent: turnAgentOf(opts) };
|
|
134989
|
+
}
|
|
134990
|
+
function applyTurnMarks(runtime, marksOfSession, recordRefused) {
|
|
134991
|
+
const places = /* @__PURE__ */ new Map();
|
|
134992
|
+
function markedTurn(target, sessionId, opts, start) {
|
|
134993
|
+
const marks = marksForTurn(opts);
|
|
134994
|
+
if (!hasMarks(marks)) return start(opts);
|
|
134995
|
+
if (marks.outsider === true) noteChatHeardOutsider(sessionId);
|
|
134996
|
+
let sent = opts;
|
|
134997
|
+
if (marks.teammate !== void 0) {
|
|
134998
|
+
sent = teammateTurnOpts(opts);
|
|
134999
|
+
const refusal2 = teammateTurnRefusal(target.type, marks.teammate);
|
|
135000
|
+
if (refusal2 !== null) {
|
|
135001
|
+
recordRefused?.(sessionId, sent);
|
|
135002
|
+
return refused(refusal2);
|
|
135003
|
+
}
|
|
135004
|
+
}
|
|
135005
|
+
const place2 = placeOf(target, sessionId, sent);
|
|
135006
|
+
places.delete(sessionId);
|
|
135007
|
+
places.set(sessionId, place2);
|
|
135008
|
+
if (places.size > PLACE_MEMORY) places.delete(places.keys().next().value);
|
|
135009
|
+
return countWhileRunning(place2, marks, start(sent));
|
|
135010
|
+
}
|
|
135011
|
+
return new Proxy(runtime, {
|
|
135012
|
+
get(target, prop) {
|
|
135013
|
+
if ((prop === "sendMessage" || prop === "executeCommandIntent") && typeof target[prop] === "function") {
|
|
135014
|
+
const start = target[prop].bind(target);
|
|
135015
|
+
return (sessionId, input4, opts) => markedTurn(target, sessionId, opts, (sent) => start(sessionId, input4, sent));
|
|
135016
|
+
}
|
|
135017
|
+
if (prop === "onRuntimeTurn" && typeof target.onRuntimeTurn === "function") {
|
|
135018
|
+
const subscribe = target.onRuntimeTurn.bind(target);
|
|
135019
|
+
return (listener) => subscribe((sessionId, events) => {
|
|
135020
|
+
const marks = marksOfSession(sessionId);
|
|
135021
|
+
listener(
|
|
135022
|
+
sessionId,
|
|
135023
|
+
hasMarks(marks) ? countWhileRunning(
|
|
135024
|
+
places.get(sessionId) ?? placeOf(target, sessionId, void 0),
|
|
135025
|
+
marks,
|
|
135026
|
+
events
|
|
135027
|
+
) : events
|
|
135028
|
+
);
|
|
135029
|
+
});
|
|
135030
|
+
}
|
|
135031
|
+
const value = Reflect.get(target, prop, target);
|
|
135032
|
+
return typeof value === "function" ? value.bind(target) : value;
|
|
135033
|
+
}
|
|
135034
|
+
});
|
|
135035
|
+
}
|
|
135036
|
+
var TURN_MARK_KINDS, NO_MARKS, PLACE_MEMORY, UNKNOWN_SOURCE, sameOrigin, RULES;
|
|
135037
|
+
var init_turn_marks = __esm({
|
|
135038
|
+
"../../apps/server/src/services/core/turn-power/turn-marks.ts"() {
|
|
135039
|
+
"use strict";
|
|
135040
|
+
init_permission_semantics();
|
|
135041
|
+
init_agent_home();
|
|
135042
|
+
init_outsider_turns();
|
|
135043
|
+
init_live_outsider_turns();
|
|
135044
|
+
init_teammate_mark();
|
|
135045
|
+
TURN_MARK_KINDS = [
|
|
135046
|
+
"outsider",
|
|
135047
|
+
"teammate"
|
|
135048
|
+
];
|
|
135049
|
+
NO_MARKS = Object.freeze({});
|
|
135050
|
+
PLACE_MEMORY = 1e4;
|
|
135051
|
+
UNKNOWN_SOURCE = Object.freeze({ outsider: true });
|
|
135052
|
+
sameOrigin = (a2, b2) => a2.roomId === b2.roomId && a2.authorId === b2.authorId;
|
|
135053
|
+
RULES = {
|
|
135054
|
+
outsider: {
|
|
135055
|
+
merge: (a2, b2) => a2 === true || b2 === true ? true : void 0,
|
|
135056
|
+
covers: (outer, inner) => inner !== true || outer === true
|
|
135057
|
+
},
|
|
135058
|
+
teammate: {
|
|
135059
|
+
merge: (a2, b2) => mergeTeammateOrigins(a2, b2),
|
|
135060
|
+
covers: (outer, inner) => inner === void 0 || outer !== void 0 && inner.every((origin) => outer.some((o3) => sameOrigin(o3, origin)))
|
|
135061
|
+
}
|
|
135062
|
+
};
|
|
135063
|
+
}
|
|
135064
|
+
});
|
|
135065
|
+
|
|
134697
135066
|
// ../../apps/server/src/services/core/turn-power/turn-levels.ts
|
|
134698
135067
|
function remember(map4, key, level) {
|
|
134699
135068
|
map4.delete(key);
|
|
@@ -134703,10 +135072,11 @@ function remember(map4, key, level) {
|
|
|
134703
135072
|
if (oldest !== void 0) map4.delete(oldest);
|
|
134704
135073
|
}
|
|
134705
135074
|
}
|
|
135075
|
+
function lastTurnLevelOf(sessionId) {
|
|
135076
|
+
return turnLevels.get(sessionId);
|
|
135077
|
+
}
|
|
134706
135078
|
function levelForTurn(runtime, stored, opts) {
|
|
134707
|
-
|
|
134708
|
-
const outsider = opts?.roomTurn?.outsiderInView === true || opts?.permissionCeiling !== void 0 && ceilingCarriesOutsider(opts.permissionCeiling);
|
|
134709
|
-
return outsider && !level.outsider ? { ...level, outsider: true } : level;
|
|
135079
|
+
return withMarks(powerForTurn(runtime, stored, opts), marksForTurn(opts));
|
|
134710
135080
|
}
|
|
134711
135081
|
function powerForTurn(runtime, stored, opts) {
|
|
134712
135082
|
let declared;
|
|
@@ -134722,18 +135092,26 @@ function powerForTurn(runtime, stored, opts) {
|
|
|
134722
135092
|
const base = known.length > 0 ? known.reduce(stricterLevel) : levelOfMode(declared, declared.default) ?? READ_ONLY_LEVEL;
|
|
134723
135093
|
return opts?.permissionCeiling !== void 0 ? stricterLevel(base, resolveCeilingLevel(declared, opts.permissionCeiling)) : base;
|
|
134724
135094
|
}
|
|
134725
|
-
function placeOf(runtime, sessionId, opts) {
|
|
134726
|
-
let cwd = opts?.cwd ?? opts?.roomTurn?.cwd;
|
|
134727
|
-
try {
|
|
134728
|
-
cwd ??= runtime.getSessionCwd?.(sessionId);
|
|
134729
|
-
} catch {
|
|
134730
|
-
}
|
|
134731
|
-
return { cwd, forAgent: turnAgentOf(opts) };
|
|
134732
|
-
}
|
|
134733
135095
|
function recordTurnLevels(runtime, storedModeOf) {
|
|
135096
|
+
return applyTurnMarks(
|
|
135097
|
+
recordLevels(runtime, storedModeOf),
|
|
135098
|
+
(sessionId) => marksOfLevel(turnLevels.get(sessionId)),
|
|
135099
|
+
(sessionId, opts) => {
|
|
135100
|
+
let stored;
|
|
135101
|
+
try {
|
|
135102
|
+
stored = storedModeOf(sessionId);
|
|
135103
|
+
} catch {
|
|
135104
|
+
stored = void 0;
|
|
135105
|
+
}
|
|
135106
|
+
remember(turnLevels, sessionId, levelForTurn(runtime, stored, opts));
|
|
135107
|
+
}
|
|
135108
|
+
);
|
|
135109
|
+
}
|
|
135110
|
+
function recordLevels(runtime, storedModeOf) {
|
|
134734
135111
|
return new Proxy(runtime, {
|
|
134735
135112
|
get(target, prop) {
|
|
134736
|
-
if (prop === "sendMessage") {
|
|
135113
|
+
if ((prop === "sendMessage" || prop === "executeCommandIntent") && typeof target[prop] === "function") {
|
|
135114
|
+
const start = target[prop].bind(target);
|
|
134737
135115
|
return (sessionId, content, opts) => {
|
|
134738
135116
|
let stored;
|
|
134739
135117
|
try {
|
|
@@ -134741,8 +135119,7 @@ function recordTurnLevels(runtime, storedModeOf) {
|
|
|
134741
135119
|
} catch {
|
|
134742
135120
|
stored = void 0;
|
|
134743
135121
|
}
|
|
134744
|
-
|
|
134745
|
-
remember(turnLevels, sessionId, level);
|
|
135122
|
+
remember(turnLevels, sessionId, levelForTurn(target, stored, opts));
|
|
134746
135123
|
const serial = ++nextTurnSerial;
|
|
134747
135124
|
for (const id of /* @__PURE__ */ new Set([sessionId, primaryOf(sessionId)])) {
|
|
134748
135125
|
turnSerials.delete(id);
|
|
@@ -134751,47 +135128,26 @@ function recordTurnLevels(runtime, storedModeOf) {
|
|
|
134751
135128
|
while (turnSerials.size > TURN_LEVEL_MEMORY) {
|
|
134752
135129
|
turnSerials.delete(turnSerials.keys().next().value);
|
|
134753
135130
|
}
|
|
134754
|
-
|
|
134755
|
-
if (!level.outsider) return events;
|
|
134756
|
-
const place2 = placeOf(target, sessionId, opts);
|
|
134757
|
-
outsiderPlaces.delete(sessionId);
|
|
134758
|
-
outsiderPlaces.set(sessionId, place2);
|
|
134759
|
-
if (outsiderPlaces.size > TURN_LEVEL_MEMORY) {
|
|
134760
|
-
outsiderPlaces.delete(outsiderPlaces.keys().next().value);
|
|
134761
|
-
}
|
|
134762
|
-
return countWhileRunning(place2, events);
|
|
135131
|
+
return start(sessionId, content, opts);
|
|
134763
135132
|
};
|
|
134764
135133
|
}
|
|
134765
|
-
if (prop === "onRuntimeTurn" && typeof target.onRuntimeTurn === "function") {
|
|
134766
|
-
const subscribe = target.onRuntimeTurn.bind(target);
|
|
134767
|
-
return (listener) => subscribe(
|
|
134768
|
-
(sessionId, events) => listener(
|
|
134769
|
-
sessionId,
|
|
134770
|
-
turnLevels.get(sessionId)?.outsider ? countWhileRunning(
|
|
134771
|
-
outsiderPlaces.get(sessionId) ?? placeOf(target, sessionId, void 0),
|
|
134772
|
-
events
|
|
134773
|
-
) : events
|
|
134774
|
-
)
|
|
134775
|
-
);
|
|
134776
|
-
}
|
|
134777
135134
|
const value = Reflect.get(target, prop, target);
|
|
134778
135135
|
return typeof value === "function" ? value.bind(target) : value;
|
|
134779
135136
|
}
|
|
134780
135137
|
});
|
|
134781
135138
|
}
|
|
134782
|
-
var TURN_LEVEL_MEMORY, AUTO_MODE_ID2, AUTO_FALLBACK_MODE_ID, turnLevels,
|
|
135139
|
+
var TURN_LEVEL_MEMORY, AUTO_MODE_ID2, AUTO_FALLBACK_MODE_ID, turnLevels, turnSerials, nextTurnSerial;
|
|
134783
135140
|
var init_turn_levels = __esm({
|
|
134784
135141
|
"../../apps/server/src/services/core/turn-power/turn-levels.ts"() {
|
|
134785
135142
|
"use strict";
|
|
134786
|
-
|
|
134787
|
-
init_live_outsider_turns();
|
|
135143
|
+
init_turn_marks();
|
|
134788
135144
|
init_session_key_registry();
|
|
135145
|
+
init_outsider_turns();
|
|
134789
135146
|
init_permission_semantics();
|
|
134790
135147
|
TURN_LEVEL_MEMORY = 1e4;
|
|
134791
135148
|
AUTO_MODE_ID2 = "auto";
|
|
134792
135149
|
AUTO_FALLBACK_MODE_ID = "default";
|
|
134793
135150
|
turnLevels = /* @__PURE__ */ new Map();
|
|
134794
|
-
outsiderPlaces = /* @__PURE__ */ new Map();
|
|
134795
135151
|
turnSerials = /* @__PURE__ */ new Map();
|
|
134796
135152
|
nextTurnSerial = 0;
|
|
134797
135153
|
}
|
|
@@ -134904,38 +135260,6 @@ var init_resolve_session_defaults = __esm({
|
|
|
134904
135260
|
}
|
|
134905
135261
|
});
|
|
134906
135262
|
|
|
134907
|
-
// ../../apps/server/src/services/session/origin/outsider-turns.ts
|
|
134908
|
-
import { AsyncLocalStorage as AsyncLocalStorage5 } from "node:async_hooks";
|
|
134909
|
-
function isOutsiderOrigin(origin) {
|
|
134910
|
-
if (origin.kind === "room") return origin.externalAuthor;
|
|
134911
|
-
return OUTSIDER_ORIGIN_KINDS.has(origin.kind);
|
|
134912
|
-
}
|
|
134913
|
-
function noteTurnOrigin(sessionId, origin) {
|
|
134914
|
-
const messageId = holdingFor.getStore();
|
|
134915
|
-
if (messageId === void 0) {
|
|
134916
|
-
latest.set(primaryOf(sessionId), isOutsiderOrigin(origin));
|
|
134917
|
-
return;
|
|
134918
|
-
}
|
|
134919
|
-
pending.set(messageId, isOutsiderOrigin(origin));
|
|
134920
|
-
if (pending.size > PENDING_MAX) pending.delete(pending.keys().next().value);
|
|
134921
|
-
}
|
|
134922
|
-
var OUTSIDER_ORIGIN_KINDS, latest, pending, PENDING_MAX, holdingFor;
|
|
134923
|
-
var init_outsider_turns = __esm({
|
|
134924
|
-
"../../apps/server/src/services/session/origin/outsider-turns.ts"() {
|
|
134925
|
-
"use strict";
|
|
134926
|
-
init_session_key_registry();
|
|
134927
|
-
OUTSIDER_ORIGIN_KINDS = /* @__PURE__ */ new Set([
|
|
134928
|
-
"relay-binding",
|
|
134929
|
-
"outside-sender",
|
|
134930
|
-
"connector-event"
|
|
134931
|
-
]);
|
|
134932
|
-
latest = /* @__PURE__ */ new Map();
|
|
134933
|
-
pending = /* @__PURE__ */ new Map();
|
|
134934
|
-
PENDING_MAX = 1e3;
|
|
134935
|
-
holdingFor = new AsyncLocalStorage5();
|
|
134936
|
-
}
|
|
134937
|
-
});
|
|
134938
|
-
|
|
134939
135263
|
// ../../apps/server/src/services/session/origin/turn-origin.ts
|
|
134940
135264
|
function permissionSeedForOrigin(origin) {
|
|
134941
135265
|
switch (origin.kind) {
|
|
@@ -134980,8 +135304,12 @@ function permissionSeedForOrigin(origin) {
|
|
|
134980
135304
|
// own: the turn runs at the stricter of the two. On insert only, so an
|
|
134981
135305
|
// existing chat a person set keeps what they chose. A person who later
|
|
134982
135306
|
// types into it gets the same stop a chat of their own starts at.
|
|
135307
|
+
//
|
|
135308
|
+
// A message from a MARKED turn seeds nothing (DOR-3107, Security): the
|
|
135309
|
+
// chat it opens never inherits the agent's own level from a turn a
|
|
135310
|
+
// stranger's words reached.
|
|
134983
135311
|
case "chat-message":
|
|
134984
|
-
return "configured-stop-on-insert";
|
|
135312
|
+
return origin.marked ? "none" : "configured-stop-on-insert";
|
|
134985
135313
|
// Everything below seeds nothing, for two different reasons.
|
|
134986
135314
|
//
|
|
134987
135315
|
// A schedule's power is already decided and already stored, on the schedule
|
|
@@ -135205,6 +135533,16 @@ var init_otel = __esm({
|
|
|
135205
135533
|
});
|
|
135206
135534
|
|
|
135207
135535
|
// ../../apps/server/src/services/observability/ai-metadata.ts
|
|
135536
|
+
function turnCostOf(runtimeType, state) {
|
|
135537
|
+
return state.turnCostUsd ?? (RUNNING_COST_RUNTIMES.has(runtimeType) ? void 0 : state.costUsd);
|
|
135538
|
+
}
|
|
135539
|
+
function turnCostReader(runtimeType) {
|
|
135540
|
+
const state = {};
|
|
135541
|
+
return {
|
|
135542
|
+
see: (event) => harvestEvent(event, state),
|
|
135543
|
+
costUsd: () => turnCostOf(runtimeType, state)
|
|
135544
|
+
};
|
|
135545
|
+
}
|
|
135208
135546
|
function isAiObservabilityActive() {
|
|
135209
135547
|
return isTracingEnabled() || bridge !== null;
|
|
135210
135548
|
}
|
|
@@ -135223,7 +135561,7 @@ async function* observeRuntimeTurn(runtimeType, sessionId, source) {
|
|
|
135223
135561
|
[ATTR.RUNTIME]: runtimeType,
|
|
135224
135562
|
[ATTR.SESSION_ID]: sessionId
|
|
135225
135563
|
}) : null;
|
|
135226
|
-
const
|
|
135564
|
+
const startedAt2 = Date.now();
|
|
135227
135565
|
const state = {};
|
|
135228
135566
|
let count2 = 0;
|
|
135229
135567
|
try {
|
|
@@ -135236,8 +135574,8 @@ async function* observeRuntimeTurn(runtimeType, sessionId, source) {
|
|
|
135236
135574
|
span?.markError();
|
|
135237
135575
|
throw err;
|
|
135238
135576
|
} finally {
|
|
135239
|
-
const latencyMs = Date.now() -
|
|
135240
|
-
const costUsd =
|
|
135577
|
+
const latencyMs = Date.now() - startedAt2;
|
|
135578
|
+
const costUsd = turnCostOf(runtimeType, state);
|
|
135241
135579
|
if (span) {
|
|
135242
135580
|
span.setAttr(ATTR.EVENT_COUNT, count2);
|
|
135243
135581
|
span.setAttr(ATTR.GEN_AI_SYSTEM, runtimeType);
|
|
@@ -135422,7 +135760,7 @@ function accountOf(runtime, sessionId) {
|
|
|
135422
135760
|
}
|
|
135423
135761
|
}
|
|
135424
135762
|
async function* watchTurn(runtime, sessionId, source) {
|
|
135425
|
-
const
|
|
135763
|
+
const startedAt2 = Date.now();
|
|
135426
135764
|
let sawAuthError = false;
|
|
135427
135765
|
let reachedProvider = false;
|
|
135428
135766
|
try {
|
|
@@ -135448,7 +135786,7 @@ async function* watchTurn(runtime, sessionId, source) {
|
|
|
135448
135786
|
throw err;
|
|
135449
135787
|
}
|
|
135450
135788
|
if (!sawAuthError && reachedProvider) {
|
|
135451
|
-
noteSigninRecovery(runtime.type, accountOf(runtime, sessionId),
|
|
135789
|
+
noteSigninRecovery(runtime.type, accountOf(runtime, sessionId), startedAt2);
|
|
135452
135790
|
}
|
|
135453
135791
|
}
|
|
135454
135792
|
function watchRuntimeSignin(runtime) {
|
|
@@ -136356,6 +136694,93 @@ var init_hold_during_turn = __esm({
|
|
|
136356
136694
|
}
|
|
136357
136695
|
});
|
|
136358
136696
|
|
|
136697
|
+
// ../../apps/server/src/services/core/turn-power/teammate-turn-cost.ts
|
|
136698
|
+
function meterTeammateTurns(runtime) {
|
|
136699
|
+
return new Proxy(runtime, {
|
|
136700
|
+
get(target, prop) {
|
|
136701
|
+
if ((prop === "sendMessage" || prop === "executeCommandIntent") && typeof target[prop] === "function") {
|
|
136702
|
+
const start = target[prop].bind(target);
|
|
136703
|
+
return (sessionId, input4, opts) => {
|
|
136704
|
+
const turn = start(sessionId, input4, opts);
|
|
136705
|
+
const rooms2 = teammateRoomsOf(opts);
|
|
136706
|
+
return rooms2.length === 0 ? turn : metered(target.type, rooms2, turn);
|
|
136707
|
+
};
|
|
136708
|
+
}
|
|
136709
|
+
if (prop === "onRuntimeTurn" && typeof target.onRuntimeTurn === "function") {
|
|
136710
|
+
const subscribe = target.onRuntimeTurn.bind(target);
|
|
136711
|
+
return (listener) => subscribe((sessionId, events) => {
|
|
136712
|
+
const rooms2 = sessionTeammateRooms(sessionId);
|
|
136713
|
+
listener(
|
|
136714
|
+
sessionId,
|
|
136715
|
+
rooms2.length === 0 ? events : metered(target.type, rooms2, toGenerator(events))
|
|
136716
|
+
);
|
|
136717
|
+
});
|
|
136718
|
+
}
|
|
136719
|
+
const value = Reflect.get(target, prop, target);
|
|
136720
|
+
return typeof value === "function" ? value.bind(target) : value;
|
|
136721
|
+
}
|
|
136722
|
+
});
|
|
136723
|
+
}
|
|
136724
|
+
function sessionTeammateRooms(sessionId) {
|
|
136725
|
+
const rooms2 = teammateOrigins(marksOfLevel(lastTurnLevelOf(sessionId))).map((o3) => o3.roomId);
|
|
136726
|
+
return [...new Set(rooms2)];
|
|
136727
|
+
}
|
|
136728
|
+
async function* toGenerator(events) {
|
|
136729
|
+
yield* events;
|
|
136730
|
+
}
|
|
136731
|
+
function teammateRoomsOf(opts) {
|
|
136732
|
+
const rooms2 = teammateOrigins(marksForTurn(opts)).map((origin) => origin.roomId);
|
|
136733
|
+
if (opts?.roomTurn?.teammate === true) rooms2.push(opts.roomTurn.roomId);
|
|
136734
|
+
return [...new Set(rooms2)];
|
|
136735
|
+
}
|
|
136736
|
+
function answered(event) {
|
|
136737
|
+
if (event.type === "text_delta" || event.type === "tool_call_start") return true;
|
|
136738
|
+
if (event.type !== "session_status") return false;
|
|
136739
|
+
const data = event.data;
|
|
136740
|
+
return ["turnInputTokens", "turnOutputTokens", "turnCostUsd", "costUsd"].some(
|
|
136741
|
+
(field) => typeof data[field] === "number"
|
|
136742
|
+
);
|
|
136743
|
+
}
|
|
136744
|
+
async function* metered(runtimeType, rooms2, source) {
|
|
136745
|
+
const cost = turnCostReader(runtimeType);
|
|
136746
|
+
let ran = false;
|
|
136747
|
+
let failed = false;
|
|
136748
|
+
try {
|
|
136749
|
+
for await (const event of source) {
|
|
136750
|
+
cost.see(event);
|
|
136751
|
+
if (answered(event)) ran = true;
|
|
136752
|
+
else if (event.type === "error") failed = true;
|
|
136753
|
+
yield event;
|
|
136754
|
+
}
|
|
136755
|
+
} catch (error63) {
|
|
136756
|
+
failed = true;
|
|
136757
|
+
throw error63;
|
|
136758
|
+
} finally {
|
|
136759
|
+
const costUsd = failed && !ran ? 0 : cost.costUsd();
|
|
136760
|
+
for (const roomId of rooms2) {
|
|
136761
|
+
try {
|
|
136762
|
+
sink2?.({ roomId, costUsd });
|
|
136763
|
+
} catch (error63) {
|
|
136764
|
+
logger.warn("[teammate-turn-cost] Could not count a teammate turn", {
|
|
136765
|
+
roomId,
|
|
136766
|
+
error: error63 instanceof Error ? error63.message : String(error63)
|
|
136767
|
+
});
|
|
136768
|
+
}
|
|
136769
|
+
}
|
|
136770
|
+
}
|
|
136771
|
+
}
|
|
136772
|
+
var sink2;
|
|
136773
|
+
var init_teammate_turn_cost = __esm({
|
|
136774
|
+
"../../apps/server/src/services/core/turn-power/teammate-turn-cost.ts"() {
|
|
136775
|
+
"use strict";
|
|
136776
|
+
init_logger();
|
|
136777
|
+
init_ai_metadata();
|
|
136778
|
+
init_turn_marks();
|
|
136779
|
+
init_turn_levels();
|
|
136780
|
+
sink2 = null;
|
|
136781
|
+
}
|
|
136782
|
+
});
|
|
136783
|
+
|
|
136359
136784
|
// ../../apps/server/src/services/runtimes/shared/dorkos-tool-names.ts
|
|
136360
136785
|
var DORKOS_MCP_SERVER_NAME, CODEX_DORKOS_TOOL_PREFIX, OPENCODE_DORKOS_TOOL_PREFIX, CLAUDE_CODE_DORKOS_TOOL_PREFIX;
|
|
136361
136786
|
var init_dorkos_tool_names = __esm({
|
|
@@ -137331,7 +137756,7 @@ async function* untilPaused(runtime, pauses, turn, events) {
|
|
|
137331
137756
|
yield event;
|
|
137332
137757
|
}
|
|
137333
137758
|
}
|
|
137334
|
-
function
|
|
137759
|
+
function refused2(error63) {
|
|
137335
137760
|
return (async function* () {
|
|
137336
137761
|
yield* [];
|
|
137337
137762
|
throw error63;
|
|
@@ -137350,7 +137775,7 @@ function holdOrRun(runtime, sessionId, opts, run) {
|
|
|
137350
137775
|
const paused2 = pauses.pausedAgentOfSession(sessionId, storedCwdOf(runtime, sessionId), opts);
|
|
137351
137776
|
if (paused2) {
|
|
137352
137777
|
pauses.recordHeld(paused2, { via: "turn", sessionId, runtime: runtime.type });
|
|
137353
|
-
return
|
|
137778
|
+
return refused2(new AgentPausedError(paused2));
|
|
137354
137779
|
}
|
|
137355
137780
|
const turn = {
|
|
137356
137781
|
sessionId,
|
|
@@ -137444,7 +137869,11 @@ var init_hold_paused_turns = __esm({
|
|
|
137444
137869
|
function decorateRuntime(runtime, storedModeOf) {
|
|
137445
137870
|
return holdPausedAgents(
|
|
137446
137871
|
holdAwakeDuringTurns(
|
|
137447
|
-
recordToolUse(
|
|
137872
|
+
recordToolUse(
|
|
137873
|
+
watchRuntimeSignin(
|
|
137874
|
+
traceRuntime(meterTeammateTurns(recordTurnLevels(runtime, storedModeOf)))
|
|
137875
|
+
)
|
|
137876
|
+
),
|
|
137448
137877
|
keepAwakeService,
|
|
137449
137878
|
(sessionId) => isSessionPaused(runtime, sessionId)
|
|
137450
137879
|
)
|
|
@@ -137456,6 +137885,7 @@ var init_decorate_runtime = __esm({
|
|
|
137456
137885
|
init_observability();
|
|
137457
137886
|
init_hold_during_turn();
|
|
137458
137887
|
init_turn_levels();
|
|
137888
|
+
init_teammate_turn_cost();
|
|
137459
137889
|
init_record_tool_use();
|
|
137460
137890
|
init_hold_paused_turns();
|
|
137461
137891
|
init_keep_awake_service();
|
|
@@ -138973,11 +139403,11 @@ function createProjectRootResolver(overrides = {}) {
|
|
|
138973
139403
|
const previousMisses = byCwd.get(key)?.misses ?? 0;
|
|
138974
139404
|
const entry = {
|
|
138975
139405
|
misses: previousMisses,
|
|
138976
|
-
root: lookups.run(() => lookUp(key)).then(({ root, answered }) => {
|
|
139406
|
+
root: lookups.run(() => lookUp(key)).then(({ root, answered: answered2 }) => {
|
|
138977
139407
|
entry.settled = { root };
|
|
138978
139408
|
if (root === null) {
|
|
138979
|
-
if (
|
|
138980
|
-
entry.retryAt = deps.now() + (
|
|
139409
|
+
if (answered2) entry.misses = previousMisses + 1;
|
|
139410
|
+
entry.retryAt = deps.now() + (answered2 ? negativeTtl(entry.misses) : NEGATIVE_ROOT_TTL_MS);
|
|
138981
139411
|
}
|
|
138982
139412
|
return root;
|
|
138983
139413
|
})
|
|
@@ -140935,57 +141365,57 @@ function isHookProjectionApproved(request, decisions = storedHookDecisions()) {
|
|
|
140935
141365
|
function isHookProjectionRefused(request, decisions = storedHookDecisions()) {
|
|
140936
141366
|
return decisions.refused.includes(hookApprovalEntry(request));
|
|
140937
141367
|
}
|
|
140938
|
-
function writeDecisions(reason, approved,
|
|
141368
|
+
function writeDecisions(reason, approved, refused3) {
|
|
140939
141369
|
const harness = configManager.get("harness");
|
|
140940
141370
|
const sameApproved = approved.length === harness.approvedHooks.length && approved.every((entry, i2) => entry === harness.approvedHooks[i2]);
|
|
140941
|
-
const sameRefused =
|
|
141371
|
+
const sameRefused = refused3.length === harness.refusedHooks.length && refused3.every((entry, i2) => entry === harness.refusedHooks[i2]);
|
|
140942
141372
|
if (sameApproved && sameRefused) return;
|
|
140943
|
-
configManager.set("harness", { ...harness, approvedHooks: approved, refusedHooks:
|
|
141373
|
+
configManager.set("harness", { ...harness, approvedHooks: approved, refusedHooks: refused3 });
|
|
140944
141374
|
logConfigWrite(reason, "harness", harness, configManager.get("harness"));
|
|
140945
141375
|
}
|
|
140946
141376
|
function recordHookApproval(request) {
|
|
140947
141377
|
recordApprovedEntry(hookApprovalEntry(request), "approving a package hook");
|
|
140948
141378
|
}
|
|
140949
141379
|
function recordApprovedEntry(entry, reason, replacing = () => false) {
|
|
140950
|
-
const { approved, refused:
|
|
141380
|
+
const { approved, refused: refused3 } = storedHookDecisions();
|
|
140951
141381
|
const kept = approved.filter((stored) => stored === entry || !replacing(stored));
|
|
140952
141382
|
writeDecisions(
|
|
140953
141383
|
reason,
|
|
140954
141384
|
kept.includes(entry) ? kept : [...kept, entry],
|
|
140955
|
-
|
|
141385
|
+
refused3.filter((stored) => stored !== entry)
|
|
140956
141386
|
);
|
|
140957
141387
|
}
|
|
140958
141388
|
function forgetApprovedEntries(matches, reason) {
|
|
140959
|
-
const { approved, refused:
|
|
141389
|
+
const { approved, refused: refused3 } = storedHookDecisions();
|
|
140960
141390
|
writeDecisions(
|
|
140961
141391
|
reason,
|
|
140962
141392
|
approved.filter((stored) => !matches(stored)),
|
|
140963
|
-
[...
|
|
141393
|
+
[...refused3]
|
|
140964
141394
|
);
|
|
140965
141395
|
}
|
|
140966
141396
|
function recordRefusedEntry(entry, reason) {
|
|
140967
|
-
const { approved, refused:
|
|
141397
|
+
const { approved, refused: refused3 } = storedHookDecisions();
|
|
140968
141398
|
writeDecisions(
|
|
140969
141399
|
reason,
|
|
140970
141400
|
approved.filter((stored) => stored !== entry),
|
|
140971
|
-
|
|
141401
|
+
refused3.includes(entry) ? [...refused3] : [...refused3, entry]
|
|
140972
141402
|
);
|
|
140973
141403
|
}
|
|
140974
141404
|
function recordHookRefusal(request) {
|
|
140975
141405
|
recordRefusedEntry(hookApprovalEntry(request), "turning down a package hook");
|
|
140976
141406
|
}
|
|
140977
141407
|
function revokeHookDecisions(packageName) {
|
|
140978
|
-
const { approved, refused:
|
|
141408
|
+
const { approved, refused: refused3 } = storedHookDecisions();
|
|
140979
141409
|
const mine = (entry) => hookEntryPackageName(entry) === packageName;
|
|
140980
141410
|
const removed = [
|
|
140981
141411
|
...approved.filter(mine).map((entry) => ({ entry, decision: "approved" })),
|
|
140982
|
-
...
|
|
141412
|
+
...refused3.filter(mine).map((entry) => ({ entry, decision: "refused" }))
|
|
140983
141413
|
];
|
|
140984
141414
|
if (removed.length === 0) return [];
|
|
140985
141415
|
writeDecisions(
|
|
140986
141416
|
"revoking a package hook decision",
|
|
140987
141417
|
approved.filter((entry) => !mine(entry)),
|
|
140988
|
-
|
|
141418
|
+
refused3.filter((entry) => !mine(entry))
|
|
140989
141419
|
);
|
|
140990
141420
|
return removed;
|
|
140991
141421
|
}
|
|
@@ -151738,7 +152168,6 @@ function writeGlobalSharing(harnesses, reason, now3 = /* @__PURE__ */ new Date()
|
|
|
151738
152168
|
var NOTHING_SHARED;
|
|
151739
152169
|
var init_global_scope = __esm({
|
|
151740
152170
|
"../../apps/server/src/services/harness/global-scope.ts"() {
|
|
151741
|
-
"use strict";
|
|
151742
152171
|
init_src5();
|
|
151743
152172
|
init_config_schema();
|
|
151744
152173
|
init_boundary();
|
|
@@ -154445,7 +154874,7 @@ function parseHarnessHooksArgs(rawArgs) {
|
|
|
154445
154874
|
return { list: Boolean(values2.list) || revoke === void 0, revoke };
|
|
154446
154875
|
}
|
|
154447
154876
|
async function listDecisions(dorkHome) {
|
|
154448
|
-
const { approved, refused:
|
|
154877
|
+
const { approved, refused: refused3, unreadable } = await readStoredDecisions(dorkHome);
|
|
154449
154878
|
if (unreadable !== void 0) {
|
|
154450
154879
|
console.error(`DorkOS could not read ${configPathFor(dorkHome)}: ${unreadable}`);
|
|
154451
154880
|
console.error(
|
|
@@ -154453,7 +154882,7 @@ async function listDecisions(dorkHome) {
|
|
|
154453
154882
|
);
|
|
154454
154883
|
return 1;
|
|
154455
154884
|
}
|
|
154456
|
-
if (approved.length === 0 &&
|
|
154885
|
+
if (approved.length === 0 && refused3.length === 0) {
|
|
154457
154886
|
console.log("No hook decisions stored yet.");
|
|
154458
154887
|
console.log(
|
|
154459
154888
|
" A package that ships hooks is held back until you allow it, and nothing here has been asked about."
|
|
@@ -154473,7 +154902,7 @@ async function listDecisions(dorkHome) {
|
|
|
154473
154902
|
console.log(`Hook decisions stored in ${configPathFor(dorkHome)}:`);
|
|
154474
154903
|
for (const [heading, entries] of [
|
|
154475
154904
|
["Allowed to run commands", approved],
|
|
154476
|
-
["Turned down",
|
|
154905
|
+
["Turned down", refused3]
|
|
154477
154906
|
]) {
|
|
154478
154907
|
if (entries.length === 0) continue;
|
|
154479
154908
|
console.log("");
|
|
@@ -158198,7 +158627,7 @@ function createInstallationTransaction(configuration, dependencies, generation3)
|
|
|
158198
158627
|
check4(bounds, options.signal);
|
|
158199
158628
|
const candidate = reuse ? await fs40.bindExistingCandidate(reservation, attempt, reserved.installation) : await fs40.stageCandidate(reservation, attempt);
|
|
158200
158629
|
require2(sameBinding(candidate.binding, binding) && candidate.reuse === reuse, "BINDING_MISMATCH");
|
|
158201
|
-
const
|
|
158630
|
+
const sink3 = fs40.createJobSink(reservation, attempt);
|
|
158202
158631
|
let installer = {
|
|
158203
158632
|
kind: "not-invoked"
|
|
158204
158633
|
};
|
|
@@ -158211,7 +158640,7 @@ function createInstallationTransaction(configuration, dependencies, generation3)
|
|
|
158211
158640
|
attempt,
|
|
158212
158641
|
candidate,
|
|
158213
158642
|
library,
|
|
158214
|
-
sink:
|
|
158643
|
+
sink: sink3,
|
|
158215
158644
|
signal: options.signal
|
|
158216
158645
|
});
|
|
158217
158646
|
const facts = jobReturned(run, "official-install", binding, bounds, [
|
|
@@ -158260,7 +158689,7 @@ function createInstallationTransaction(configuration, dependencies, generation3)
|
|
|
158260
158689
|
attempt,
|
|
158261
158690
|
candidate,
|
|
158262
158691
|
library,
|
|
158263
|
-
sink:
|
|
158692
|
+
sink: sink3,
|
|
158264
158693
|
request,
|
|
158265
158694
|
signal: options.signal
|
|
158266
158695
|
});
|
|
@@ -162774,11 +163203,11 @@ function runProviderCommand(options) {
|
|
|
162774
163203
|
if (code !== 0) {
|
|
162775
163204
|
const errorOutput = Buffer.concat(stderrHead);
|
|
162776
163205
|
const text3 = errorOutput.toString("utf8");
|
|
162777
|
-
const
|
|
163206
|
+
const refused3 = isProviderAccessRefusal(text3);
|
|
162778
163207
|
const keyKindLimited = isProviderKeyKindLimit(text3);
|
|
162779
163208
|
errorOutput.fill(0);
|
|
162780
163209
|
scrubStdout();
|
|
162781
|
-
return reject(new ProviderCommandError("EXIT",
|
|
163210
|
+
return reject(new ProviderCommandError("EXIT", refused3, keyKindLimited));
|
|
162782
163211
|
}
|
|
162783
163212
|
const output2 = Buffer.concat(stdout3);
|
|
162784
163213
|
try {
|
|
@@ -162826,12 +163255,12 @@ var init_provider_process = __esm({
|
|
|
162826
163255
|
* @param refused - Whether the service definitely refused the credential.
|
|
162827
163256
|
* @param keyKindLimited - Whether the endpoint does not serve this kind of key.
|
|
162828
163257
|
*/
|
|
162829
|
-
constructor(code,
|
|
163258
|
+
constructor(code, refused3 = false, keyKindLimited = false) {
|
|
162830
163259
|
super(`Provider command failed (${code})`);
|
|
162831
163260
|
this.name = "ProviderCommandError";
|
|
162832
163261
|
this.code = code;
|
|
162833
|
-
this.refused = code === "EXIT" &&
|
|
162834
|
-
this.keyKindLimited = code === "EXIT" && !
|
|
163262
|
+
this.refused = code === "EXIT" && refused3;
|
|
163263
|
+
this.keyKindLimited = code === "EXIT" && !refused3 && keyKindLimited;
|
|
162835
163264
|
}
|
|
162836
163265
|
};
|
|
162837
163266
|
}
|
|
@@ -163873,7 +164302,7 @@ async function createFlyApp(options, appName, organizationSlug, network, readPro
|
|
|
163873
164302
|
const app = parseInput2(ExternalIdentifierSchema, appName);
|
|
163874
164303
|
const organization2 = parseInput2(ExternalIdentifierSchema, organizationSlug);
|
|
163875
164304
|
const networkName = parseInput2(ExternalIdentifierSchema, network);
|
|
163876
|
-
let
|
|
164305
|
+
let refused3 = false;
|
|
163877
164306
|
const created = await runProviderMutation({
|
|
163878
164307
|
...options,
|
|
163879
164308
|
timeoutMs: writeDeadline(options.timeoutMs),
|
|
@@ -163905,14 +164334,14 @@ async function createFlyApp(options, appName, organizationSlug, network, readPro
|
|
|
163905
164334
|
}
|
|
163906
164335
|
}).catch((error63) => {
|
|
163907
164336
|
if (!(error63 instanceof ProviderMutationError) || error63.code !== "ACCESS_DENIED") throw error63;
|
|
163908
|
-
|
|
164337
|
+
refused3 = true;
|
|
163909
164338
|
return null;
|
|
163910
164339
|
});
|
|
163911
164340
|
if (created) return created;
|
|
163912
164341
|
const found = await readProvenance(app).catch(() => {
|
|
163913
164342
|
throw new ProviderMutationError("CREATION_OUTCOME_UNCERTAIN");
|
|
163914
164343
|
});
|
|
163915
|
-
if (
|
|
164344
|
+
if (refused3 && found === FLY_APP_NOT_FOUND) {
|
|
163916
164345
|
const listed2 = await readFlyApps(options, organization2).catch(() => null);
|
|
163917
164346
|
if (listed2 !== null && !listed2.some((listedApp) => listedApp.name === app)) {
|
|
163918
164347
|
throw new ProviderMutationError("ACCESS_DENIED");
|
|
@@ -170039,12 +170468,16 @@ async function runAuthEnable(deps) {
|
|
|
170039
170468
|
io.error("A password is required.");
|
|
170040
170469
|
return 1;
|
|
170041
170470
|
}
|
|
170471
|
+
let signUpToken;
|
|
170042
170472
|
try {
|
|
170043
|
-
await auth.api.signUpEmail({
|
|
170473
|
+
({ token: signUpToken } = await auth.api.signUpEmail({
|
|
170474
|
+
body: { name: "", email: email3, password }
|
|
170475
|
+
}));
|
|
170044
170476
|
} catch (err) {
|
|
170045
170477
|
io.error(`Could not create the owner account: ${errorMessage(err)}`);
|
|
170046
170478
|
return 1;
|
|
170047
170479
|
}
|
|
170480
|
+
if (signUpToken) await (await auth.$context).internalAdapter.deleteSession(signUpToken);
|
|
170048
170481
|
configStore.setDot("auth.enabled", true);
|
|
170049
170482
|
io.log(`Owner account created for ${email3}.`);
|
|
170050
170483
|
io.log("This computer now asks for a password too. Other devices always do.");
|
|
@@ -170092,9 +170525,9 @@ async function runAuthResetPassword(deps) {
|
|
|
170092
170525
|
io.log(
|
|
170093
170526
|
`Signed out everywhere (${signedOut} ${signedOut === 1 ? "sign-in" : "sign-ins"} ended). Sign in again with the new password.`
|
|
170094
170527
|
);
|
|
170528
|
+
io.log("A running DorkOS closes their open chat streams and terminals within a minute.");
|
|
170095
170529
|
io.log("What this cannot cut off yet:");
|
|
170096
170530
|
io.log(" - a window already open may keep working for up to 5 minutes;");
|
|
170097
|
-
io.log(" - live chat streams and terminals stay open until they reconnect;");
|
|
170098
170531
|
io.log(" - API keys keep working. Revoke them in Settings > Login & security.");
|
|
170099
170532
|
return 0;
|
|
170100
170533
|
}
|
|
@@ -172677,6 +173110,40 @@ Examples:
|
|
|
172677
173110
|
}
|
|
172678
173111
|
});
|
|
172679
173112
|
|
|
173113
|
+
// src/commands/permission-undo-rows.ts
|
|
173114
|
+
function valueText(value, key, labels) {
|
|
173115
|
+
if (key.kind === "chat") return chatModeWord(value);
|
|
173116
|
+
if (value === null) return "not set";
|
|
173117
|
+
const words = key.kind === "files" ? labels.stop : key.kind === "preset" ? labels.preset : labels.state;
|
|
173118
|
+
return words[value] ?? value;
|
|
173119
|
+
}
|
|
173120
|
+
function settingText(key) {
|
|
173121
|
+
switch (key.kind) {
|
|
173122
|
+
case "area":
|
|
173123
|
+
return key.area;
|
|
173124
|
+
case "action":
|
|
173125
|
+
return key.action;
|
|
173126
|
+
case "files":
|
|
173127
|
+
return `files${key.runtime ? ` (${key.runtime})` : ""}`;
|
|
173128
|
+
case "chat":
|
|
173129
|
+
return `chat ${key.sessionId.slice(0, 8)}`;
|
|
173130
|
+
case "preset":
|
|
173131
|
+
return "preset";
|
|
173132
|
+
}
|
|
173133
|
+
}
|
|
173134
|
+
function skipRow(skip, labels) {
|
|
173135
|
+
const { change } = skip;
|
|
173136
|
+
const who = change.target.kind === "agent" ? change.target.agentName : "Everyone";
|
|
173137
|
+
const why = skip.reason === "changed-since" ? `changed since: now ${valueText(skip.current, change.key, labels)}` : skip.reason === "floor" ? change.key.kind === "chat" ? "would loosen the chat" : "would set something that always asks to Allowed" : "no longer exists";
|
|
173138
|
+
return [who, settingText(change.key), valueText(change.before, change.key, labels), why];
|
|
173139
|
+
}
|
|
173140
|
+
var init_permission_undo_rows = __esm({
|
|
173141
|
+
"src/commands/permission-undo-rows.ts"() {
|
|
173142
|
+
"use strict";
|
|
173143
|
+
init_permissions();
|
|
173144
|
+
}
|
|
173145
|
+
});
|
|
173146
|
+
|
|
172680
173147
|
// src/commands/permissions.ts
|
|
172681
173148
|
var permissions_exports = {};
|
|
172682
173149
|
__export(permissions_exports, {
|
|
@@ -172969,18 +173436,6 @@ function defaultKeyOf(target, overview) {
|
|
|
172969
173436
|
const area = overview.areas.find((a2) => a2.actions.some((action) => action.id === target.id));
|
|
172970
173437
|
return area ? { kind: "action", action: target.id, area: area.id } : void 0;
|
|
172971
173438
|
}
|
|
172972
|
-
function valueText(value, key) {
|
|
172973
|
-
if (value === null) return "not set";
|
|
172974
|
-
const labels = key.kind === "files" ? STOP_LABEL : key.kind === "preset" ? PRESET_LABEL : STATE_LABEL;
|
|
172975
|
-
return labels[value] ?? value;
|
|
172976
|
-
}
|
|
172977
|
-
function skipRow(skip) {
|
|
172978
|
-
const { change } = skip;
|
|
172979
|
-
const who = change.target.kind === "agent" ? change.target.agentName : "Everyone";
|
|
172980
|
-
const what = change.key.kind === "area" ? change.key.area : change.key.kind === "action" ? change.key.action : change.key.kind === "files" ? `files${change.key.runtime ? ` (${change.key.runtime})` : ""}` : "preset";
|
|
172981
|
-
const why = skip.reason === "changed-since" ? `changed since: now ${valueText(skip.current, change.key)}` : skip.reason === "floor" ? "would set something that always asks to Allowed" : "no longer exists";
|
|
172982
|
-
return [who, what, valueText(change.before, change.key), why];
|
|
172983
|
-
}
|
|
172984
173439
|
async function runPermissionsUndo(rawArgs) {
|
|
172985
173440
|
const { values: values2, positionals: positionals2 } = parseArgs27({
|
|
172986
173441
|
args: rawArgs,
|
|
@@ -173013,7 +173468,12 @@ async function runPermissionsUndo(rawArgs) {
|
|
|
173013
173468
|
);
|
|
173014
173469
|
if (result2.skipped.length > 0) {
|
|
173015
173470
|
console.log("Left alone:");
|
|
173016
|
-
console.log(
|
|
173471
|
+
console.log(
|
|
173472
|
+
renderTable(
|
|
173473
|
+
["FOR", "SETTING", "WOULD SET", "WHY"],
|
|
173474
|
+
result2.skipped.map((skip) => skipRow(skip, UNDO_LABELS))
|
|
173475
|
+
)
|
|
173476
|
+
);
|
|
173017
173477
|
}
|
|
173018
173478
|
return 0;
|
|
173019
173479
|
} catch (err) {
|
|
@@ -173021,7 +173481,12 @@ async function runPermissionsUndo(rawArgs) {
|
|
|
173021
173481
|
if (err instanceof ApiError && err.body.code === "UNDO_CONFLICT") {
|
|
173022
173482
|
const conflicts = err.body.conflicts ?? [];
|
|
173023
173483
|
if (conflicts.length > 0) {
|
|
173024
|
-
console.error(
|
|
173484
|
+
console.error(
|
|
173485
|
+
renderTable(
|
|
173486
|
+
["FOR", "SETTING", "WOULD SET", "WHY"],
|
|
173487
|
+
conflicts.map((skip) => skipRow(skip, UNDO_LABELS))
|
|
173488
|
+
)
|
|
173489
|
+
);
|
|
173025
173490
|
}
|
|
173026
173491
|
console.error(`Run \`dorkos permissions undo ${eventId} --force\` to set it back anyway.`);
|
|
173027
173492
|
}
|
|
@@ -173113,11 +173578,12 @@ ${usage}`);
|
|
|
173113
173578
|
return 1;
|
|
173114
173579
|
}
|
|
173115
173580
|
}
|
|
173116
|
-
var PERMISSIONS_HELP, AGENT_PERMISSIONS_HELP, PRESET_LABEL, STOP_LABEL, STATE_LABEL;
|
|
173581
|
+
var PERMISSIONS_HELP, AGENT_PERMISSIONS_HELP, PRESET_LABEL, STOP_LABEL, STATE_LABEL, UNDO_LABELS;
|
|
173117
173582
|
var init_permissions2 = __esm({
|
|
173118
173583
|
"src/commands/permissions.ts"() {
|
|
173119
173584
|
"use strict";
|
|
173120
173585
|
init_permissions();
|
|
173586
|
+
init_permission_undo_rows();
|
|
173121
173587
|
init_api_client();
|
|
173122
173588
|
init_operator_output();
|
|
173123
173589
|
PERMISSIONS_HELP = `Usage: dorkos permissions <subcommand> [options]
|
|
@@ -173184,6 +173650,7 @@ Examples:
|
|
|
173184
173650
|
ask: "Ask",
|
|
173185
173651
|
allowed: "Allowed"
|
|
173186
173652
|
};
|
|
173653
|
+
UNDO_LABELS = { stop: STOP_LABEL, preset: PRESET_LABEL, state: STATE_LABEL };
|
|
173187
173654
|
}
|
|
173188
173655
|
});
|
|
173189
173656
|
|
|
@@ -176836,7 +177303,7 @@ if (process.argv[2] === "community") {
|
|
|
176836
177303
|
);
|
|
176837
177304
|
Object.assign(childEnv, credentialEnv.pickCommunityCredentialEnv(rawProcessEnv));
|
|
176838
177305
|
const exitCode = await dispatcher.runCommunityDispatcher(process.argv.slice(3), {
|
|
176839
|
-
cliVersion: "0.
|
|
177306
|
+
cliVersion: "0.124.0",
|
|
176840
177307
|
dorkHome: DORK_HOME,
|
|
176841
177308
|
processEnv: childEnv,
|
|
176842
177309
|
parseRelease: (bytes) => releaseContract.parseCompatibleCommunityReleaseManifest(
|
|
@@ -176854,7 +177321,7 @@ if (process.argv[2] === "community") {
|
|
|
176854
177321
|
process.exit(1);
|
|
176855
177322
|
}
|
|
176856
177323
|
}
|
|
176857
|
-
var cliErrorReporter = initCliErrorReporting({ dorkHome: DORK_HOME, version: "0.
|
|
177324
|
+
var cliErrorReporter = initCliErrorReporting({ dorkHome: DORK_HOME, version: "0.124.0" });
|
|
176858
177325
|
var uninstallCliErrorHandlers = cliErrorReporter ? installCliErrorHandlers(cliErrorReporter) : void 0;
|
|
176859
177326
|
if (process.argv[2] === "doctor") {
|
|
176860
177327
|
process.env.DORK_HOME = DORK_HOME;
|
|
@@ -176864,7 +177331,7 @@ if (process.argv[2] === "doctor") {
|
|
|
176864
177331
|
if (process.argv[2] === "feedback") {
|
|
176865
177332
|
process.env.DORK_HOME = DORK_HOME;
|
|
176866
177333
|
const { runFeedback: runFeedback2 } = await Promise.resolve().then(() => (init_feedback2(), feedback_exports));
|
|
176867
|
-
process.exit(await runFeedback2(DORK_HOME, "0.
|
|
177334
|
+
process.exit(await runFeedback2(DORK_HOME, "0.124.0", process.argv.slice(3)));
|
|
176868
177335
|
}
|
|
176869
177336
|
if (process.argv[2] === "auth") {
|
|
176870
177337
|
process.env.DORK_HOME = DORK_HOME;
|
|
@@ -176963,7 +177430,7 @@ if (process.argv[2] === "agent" || process.argv[2] === "task" || process.argv[2]
|
|
|
176963
177430
|
}
|
|
176964
177431
|
}
|
|
176965
177432
|
const { runVersionDispatcher: runVersionDispatcher2 } = await Promise.resolve().then(() => (init_version5(), version_exports));
|
|
176966
|
-
process.exit(await runVersionDispatcher2("0.
|
|
177433
|
+
process.exit(await runVersionDispatcher2("0.124.0", DORK_HOME, subArgs));
|
|
176967
177434
|
}
|
|
176968
177435
|
var { values, positionals } = parseCliArgs();
|
|
176969
177436
|
if (positionals[0] && !knownCommands.has(positionals[0])) {
|
|
@@ -177057,14 +177524,14 @@ Examples:
|
|
|
177057
177524
|
process.exit(0);
|
|
177058
177525
|
}
|
|
177059
177526
|
if (values.version) {
|
|
177060
|
-
console.log("0.
|
|
177527
|
+
console.log("0.124.0");
|
|
177061
177528
|
process.exit(0);
|
|
177062
177529
|
}
|
|
177063
177530
|
if (values["post-install-check"]) {
|
|
177064
177531
|
const claudeFound = checkClaude();
|
|
177065
177532
|
const coreExtensionsFound = checkCoreExtensions();
|
|
177066
177533
|
const extensionsCompile = await checkExtensionCompilation();
|
|
177067
|
-
console.log(`dorkos ${"0.
|
|
177534
|
+
console.log(`dorkos ${"0.124.0"}`);
|
|
177068
177535
|
if (!coreExtensionsFound) {
|
|
177069
177536
|
console.log("Installation incomplete \u2014 bundled core extensions are missing.");
|
|
177070
177537
|
}
|
|
@@ -177212,7 +177679,7 @@ if (fs39.existsSync(envPath)) {
|
|
|
177212
177679
|
}
|
|
177213
177680
|
uninstallCliErrorHandlers?.();
|
|
177214
177681
|
process.env.DORKOS_CLI_ENTRYPOINT = fileURLToPath7(import.meta.url);
|
|
177215
|
-
process.env.DORKOS_CLI_VERSION = "0.
|
|
177682
|
+
process.env.DORKOS_CLI_VERSION = "0.124.0";
|
|
177216
177683
|
var server;
|
|
177217
177684
|
try {
|
|
177218
177685
|
server = await import("../server/index.js");
|
|
@@ -177237,7 +177704,7 @@ var ansiReset = "\x1B[0m";
|
|
|
177237
177704
|
console.log("");
|
|
177238
177705
|
console.log(`${purple}${logo}${ansiReset}`);
|
|
177239
177706
|
console.log("");
|
|
177240
|
-
console.log(` DorkOS v${"0.
|
|
177707
|
+
console.log(` DorkOS v${"0.124.0"}`);
|
|
177241
177708
|
console.log(` Local: ${link(localUrl, localUrl)}`);
|
|
177242
177709
|
var nets = networkInterfaces();
|
|
177243
177710
|
var networkUrl = null;
|
|
@@ -177263,9 +177730,9 @@ if (shouldOpenBrowser && process.stdin.isTTY) {
|
|
|
177263
177730
|
const openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
177264
177731
|
exec(`${openCmd} ${localUrl}`);
|
|
177265
177732
|
}
|
|
177266
|
-
checkForUpdate("0.
|
|
177733
|
+
checkForUpdate("0.124.0").then((latestVersion) => {
|
|
177267
177734
|
if (latestVersion) {
|
|
177268
|
-
const msg = `Update available: ${"0.
|
|
177735
|
+
const msg = `Update available: ${"0.124.0"} \u2192 ${latestVersion}`;
|
|
177269
177736
|
const cmd = "Run npm install -g dorkos@latest to update";
|
|
177270
177737
|
const width = Math.max(msg.length, cmd.length) + 6;
|
|
177271
177738
|
const pad2 = (s2) => `\u2502 ${s2}${" ".repeat(width - s2.length - 6)} \u2502`;
|