dorkos 0.125.2 → 0.125.3
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 +125 -20
- package/dist/browser/native/package-manifest.json +1 -1
- package/dist/browser/source-manifest.json +1 -1
- package/dist/client/assets/{AboutPage-BqGlH1pd.js → AboutPage-DSSx1Gzx.js} +1 -1
- package/dist/client/assets/{ActivityErrorState-C4hqCedX.js → ActivityErrorState-C-mLOmJm.js} +1 -1
- package/dist/client/assets/{ActivityPage-frpyizcK.js → ActivityPage-DsOjjulF.js} +1 -1
- package/dist/client/assets/{ActivityRow-DB9c3g1G.js → ActivityRow-ylgCMe7Y.js} +1 -1
- package/dist/client/assets/{AdapterIcon-CEHkdca8.js → AdapterIcon-DT5OdFbe.js} +1 -1
- package/dist/client/assets/{AdapterSetupWizard-DLJMkb-u.js → AdapterSetupWizard-C6jxF55P.js} +1 -1
- package/dist/client/assets/{AgentOptionRow-D-QjHi5k.js → AgentOptionRow-CtdBmX9G.js} +1 -1
- package/dist/client/assets/{AgentPicker-DoGucmqI.js → AgentPicker--wr93sVO.js} +1 -1
- package/dist/client/assets/{AgentRequestCard--9GA9ymH.js → AgentRequestCard-DVoE2cnk.js} +4 -4
- package/dist/client/assets/{AppearancePage-NHNiZrtY.js → AppearancePage-DR_g6BJO.js} +1 -1
- package/dist/client/assets/{ApplyToOverridesDialog-Clo55n6V.js → ApplyToOverridesDialog-BqaoB6AS.js} +1 -1
- package/dist/client/assets/{AttentionSignalRow-BOpClaCD.js → AttentionSignalRow-CM0TrrbJ.js} +1 -1
- package/dist/client/assets/{BaseTanStackRouterDevtoolsPanel-B-iktbLX-D9Tm8ual.js → BaseTanStackRouterDevtoolsPanel-B-iktbLX-DJ54CELa.js} +1 -1
- package/dist/client/assets/{BindingDialog-DZcTXLE8.js → BindingDialog-JAPULq7H.js} +1 -1
- package/dist/client/assets/{BlintzCanvas-DzjdPTlx.js → BlintzCanvas-B3-FjszN.js} +3 -3
- package/dist/client/assets/{CanvasCsvContent-xYUrbFeA.js → CanvasCsvContent-Cmqry1BS.js} +1 -1
- package/dist/client/assets/{CanvasFileContent-D6fTvMea.js → CanvasFileContent-BMkxUF1r.js} +2 -2
- package/dist/client/assets/{CanvasModel3dContent-DEassnBV.js → CanvasModel3dContent-DBhuNbFD.js} +2 -2
- package/dist/client/assets/ChannelComposer-WR3_Vvta.js +44 -0
- package/dist/client/assets/{ChatAppsOff-C00Nl_w6.js → ChatAppsOff-CY5_0lQH.js} +1 -1
- package/dist/client/assets/{CodeMirrorDiff-JYxkSqFi.js → CodeMirrorDiff-_EI44zW6.js} +1 -1
- package/dist/client/assets/{CodeMirrorEditor-CVXZ9B5S.js → CodeMirrorEditor-x1lTuDQH.js} +1 -1
- package/dist/client/assets/{CommitmentList-CcCSwcZ8.js → CommitmentList-D-CvccnF.js} +1 -1
- package/dist/client/assets/{CommitmentsPage-BrDbzpyR.js → CommitmentsPage-CLw1FRLv.js} +1 -1
- package/dist/client/assets/{ComputerResourceView-BlLvMt1I.js → ComputerResourceView-QJnXivV4.js} +1 -1
- package/dist/client/assets/{ComputerViewer-B8SWICbj.js → ComputerViewer-DbTGz3OL.js} +1 -1
- package/dist/client/assets/{ConnectionAccessLists-Bsb-t24W.js → ConnectionAccessLists-CB5UY0f0.js} +1 -1
- package/dist/client/assets/{ConnectionsPage-RAhWxuWU.js → ConnectionsPage-SpEJxCeF.js} +1 -1
- package/dist/client/assets/{ConventionPage-CNij_BXA.js → ConventionPage-C2NIZjG3.js} +1 -1
- package/dist/client/assets/{ExtensionPageRoute-BsGqTcyI.js → ExtensionPageRoute-Drr5uceG.js} +1 -1
- package/dist/client/assets/{FloatingTanStackRouterDevtools-CqogiFob-eQVA1bL6.js → FloatingTanStackRouterDevtools-CqogiFob-kKteNmsx.js} +1 -1
- package/dist/client/assets/HandlePage-A1OCw0nr.js +1 -0
- package/dist/client/assets/{HeartbeatPage-D0tKoR6G.js → HeartbeatPage-BLGTx_57.js} +1 -1
- package/dist/client/assets/{KeyEntry-CSmznLcG.js → KeyEntry-DgN8iewR.js} +1 -1
- package/dist/client/assets/{LexicalField-gYKPjFfN.js → LexicalField-Bfj72GvX.js} +1 -1
- package/dist/client/assets/{ManagesPage-BF6MFrsv.js → ManagesPage-C3G1-Mep.js} +1 -1
- package/dist/client/assets/{Marketplace-BWDlXgwH.js → Marketplace-Dg0bIo7_.js} +2 -2
- package/dist/client/assets/{MarketplaceSourcesView-BhKzgkiO.js → MarketplaceSourcesView-KPw8YYXi.js} +1 -1
- package/dist/client/assets/{McpAppFrame-BotrzoHd.js → McpAppFrame-DjJ4EM39.js} +1 -1
- package/dist/client/assets/{McpSigninBody-CdeX_lYs.js → McpSigninBody-V6RSsDqe.js} +1 -1
- package/dist/client/assets/{Model3dViewer-KHktOpbD.js → Model3dViewer-woNPO5OC.js} +1 -1
- package/dist/client/assets/NamePage-Du9m4rGe.js +1 -0
- package/dist/client/assets/{NewDirectMessageMenu-CuvKJEDY.js → NewDirectMessageMenu-CmCOFmXQ.js} +1 -1
- package/dist/client/assets/{NotificationsPage-DWcgfZJD.js → NotificationsPage-kUtiVsFS.js} +1 -1
- package/dist/client/assets/{OpenMeshSwitch-DdJ7g4yD.js → OpenMeshSwitch-r6HJBjR6.js} +1 -1
- package/dist/client/assets/{OperatorIdentityForm-7FUOEWw_.js → OperatorIdentityForm-B29T-N9x.js} +1 -1
- package/dist/client/assets/{PermissionHistory-CgQhZrvg.js → PermissionHistory-CV8cFJr3.js} +1 -1
- package/dist/client/assets/{PermissionsPage-CK34y1VF.js → PermissionsPage-_PKlbWde.js} +1 -1
- package/dist/client/assets/{PersonalityPopover-3BA36sB0.js → PersonalityPopover-BOXTCA6E.js} +1 -1
- package/dist/client/assets/PhotoPage-Dx-3Lhm5.js +1 -0
- package/dist/client/assets/{PreviewRefusedNotice-CnqAE9sr.js → PreviewRefusedNotice-CdHja8fU.js} +1 -1
- package/dist/client/assets/{ProfileFields-CIbISW83.js → ProfileFields-C48alR3i.js} +1 -1
- package/dist/client/assets/{ProfilePanelContainer-DPDHtTbI.js → ProfilePanelContainer-BpJVbdUL.js} +1 -1
- package/dist/client/assets/{ProfileRolePicker-83GFtm2P.js → ProfileRolePicker-DtuSZNaw.js} +1 -1
- package/dist/client/assets/{PromptSuggestionChips-B9chKG4w.js → PromptSuggestionChips-DT-JdGeO.js} +1 -1
- package/dist/client/assets/{ReportsToPopover-DUv03JZP.js → ReportsToPopover-BP2nxz2E.js} +1 -1
- package/dist/client/assets/{RoomSurface-Bq6Slne3.js → RoomSurface-C_mTmn8g.js} +1 -1
- package/dist/client/assets/{RoomsPage-BKxzz-nN.js → RoomsPage-gDIy73MQ.js} +1 -1
- package/dist/client/assets/{RunsOnPopover-BIdmMhs9.js → RunsOnPopover-DhXG88Uj.js} +1 -1
- package/dist/client/assets/{RuntimeConnectFlow-IaRVgmqH.js → RuntimeConnectFlow-BsZsQZS9.js} +1 -1
- package/dist/client/assets/{RuntimeSetupDialog-Er-lzjmK.js → RuntimeSetupDialog-BSb5iK2A.js} +1 -1
- package/dist/client/assets/{SeenDevices-9quCcdUW.js → SeenDevices-dzzlSeB2.js} +3 -3
- package/dist/client/assets/{SessionsPage-CGic5VaN.js → SessionsPage-C6nmCWVM.js} +1 -1
- package/dist/client/assets/{SettingsDialog-BZ58IaK1.js → SettingsDialog-5aEZ-DG6.js} +3 -3
- package/dist/client/assets/{SkillsPage-VRYwez5T.js → SkillsPage-DSIKEsHr.js} +1 -1
- package/dist/client/assets/{TaskDialogWrapper-C9LMV8oe.js → TaskDialogWrapper-Cst7UxoY.js} +1 -1
- package/dist/client/assets/{TasksEmptyState-CagC0LAa.js → TasksEmptyState-DityFi7P.js} +1 -1
- package/dist/client/assets/{TasksPage-3gkHB1Pv.js → TasksPage-BZx_Ku0k.js} +1 -1
- package/dist/client/assets/{TeamComputerEntry-BD89Y5e6.js → TeamComputerEntry-uj1GcPP_.js} +1 -1
- package/dist/client/assets/{ToolsPage-Ds6LwY79.js → ToolsPage-Qm6x37SO.js} +1 -1
- package/dist/client/assets/{TopologyGraph-CiZ2ACcQ.js → TopologyGraph-2C3Ij6tO.js} +2 -2
- package/dist/client/assets/{TourHost-BISNaEzZ.js → TourHost-BsV8lcXT.js} +1 -1
- package/dist/client/assets/{UnlinkDialog-DTuXHNsi.js → UnlinkDialog-ClNn0nv6.js} +1 -1
- package/dist/client/assets/{UnreadDivider-l_VZ7ECn.js → UnreadDivider-CGKnJcx7.js} +1 -1
- package/dist/client/assets/{WidgetErrorCard-I8WiJv2g.js → WidgetErrorCard-oq5MKUX_.js} +3 -3
- package/dist/client/assets/{WorkView-_wehEEl-.js → WorkView-wVnGvWAz.js} +15 -15
- package/dist/client/assets/{_shell-BLcPeb8K.js → _shell-D4V8GQqV.js} +6 -6
- package/dist/client/assets/{_shell._home-CcRH-M-A.js → _shell._home-DoaHLKk8.js} +1 -1
- package/dist/client/assets/{_shell._home.activity-cR24Vr9Q.js → _shell._home.activity-BP1byb8g.js} +1 -1
- package/dist/client/assets/{_shell._home.index-agU2ItcI.js → _shell._home.index-BB5pgiqt.js} +2 -2
- package/dist/client/assets/{_shell._home.tasks-BDR9JTj3.js → _shell._home.tasks-B3w6mqyb.js} +1 -1
- package/dist/client/assets/{_shell._home.workspaces-B4nlcACK.js → _shell._home.workspaces-BcOiklL5.js} +1 -1
- package/dist/client/assets/_shell.channels-DxSDnd-3.js +10 -0
- package/dist/client/assets/{_shell.connections-CWQYcH58.js → _shell.connections-YKOm7ap5.js} +1 -1
- package/dist/client/assets/{_shell.feedback-requests-BkgHtyZr.js → _shell.feedback-requests-DC2Jw1EF.js} +1 -1
- package/dist/client/assets/_shell.marketplace-BUh4boaf.js +1 -0
- package/dist/client/assets/_shell.marketplace_.sources-CnOFcGv1.js +1 -0
- package/dist/client/assets/_shell.session-BUP7x_Ra.js +1 -0
- package/dist/client/assets/{_shell.team-CTIVEpZQ.js → _shell.team-C9QJNwaK.js} +3 -3
- package/dist/client/assets/{_shell.threads-ClWYrnld.js → _shell.threads-gs_o48eZ.js} +1 -1
- package/dist/client/assets/_shell.x._extensionId-B-X7HuaQ.js +1 -0
- package/dist/client/assets/_shell.x._extensionId_._-B-X7HuaQ.js +1 -0
- package/dist/client/assets/{abnfDiagram-WEYOIA3C-0-Mx5lSG.js → abnfDiagram-WEYOIA3C-sjxf16g2.js} +1 -1
- package/dist/client/assets/{access-copy-Cj31J6PU.js → access-copy-_81ChCG3.js} +1 -1
- package/dist/client/assets/{arc-DVmpcNHP.js → arc-B-c5OGeX.js} +1 -1
- package/dist/client/assets/{architectureDiagram-ZHVYKT53-BZhMXbuC.js → architectureDiagram-ZHVYKT53-CExq4B1X.js} +1 -1
- package/dist/client/assets/{banner-Ctq7kvQ0.js → banner-BhzLIs7u.js} +1 -1
- package/dist/client/assets/{blockDiagram-RJAE7QA3-Ctmof3-7.js → blockDiagram-RJAE7QA3-C1D5MR7Z.js} +1 -1
- package/dist/client/assets/{c4Diagram-XDPPPE54-BPglmQhG.js → c4Diagram-XDPPPE54-DMtF_wcg.js} +1 -1
- package/dist/client/assets/{card-DI7YtQh3.js → card-Dsy8PPN6.js} +1 -1
- package/dist/client/assets/channel-C6IoQ0kc.js +1 -0
- package/dist/client/assets/{chunk-2E7WHVMD-DIK6CHka.js → chunk-2E7WHVMD-DCmxZwyD.js} +1 -1
- package/dist/client/assets/{chunk-2Q5K7J3B-C3uATYd9.js → chunk-2Q5K7J3B-BXvjhtJ3.js} +1 -1
- package/dist/client/assets/{chunk-4EMNKR2T-Dl3iYXVl.js → chunk-4EMNKR2T-CR6qWjas.js} +1 -1
- package/dist/client/assets/{chunk-55XCU76K-BJF-Hcs9.js → chunk-55XCU76K-Bny7RY06.js} +1 -1
- package/dist/client/assets/{chunk-5VM5RSS4-Cju3BnqQ.js → chunk-5VM5RSS4-B9aD4Uib.js} +1 -1
- package/dist/client/assets/{chunk-JWPE2WC7-v1omZzgE.js → chunk-JWPE2WC7-D28Xa5gr.js} +1 -1
- package/dist/client/assets/{chunk-VQ5W62QI-2HqA3jPL.js → chunk-VQ5W62QI-CLgnUSgl.js} +1 -1
- package/dist/client/assets/{chunk-XXDRQBXY-RDXwFs9Z.js → chunk-XXDRQBXY-vMTRVR5A.js} +1 -1
- package/dist/client/assets/{chunk-ZCHMQSOR-DhQsY-OT.js → chunk-ZCHMQSOR-Ck0VFEtd.js} +2 -2
- package/dist/client/assets/{classDiagram-v2-4MYWR3UA-DC5N-GDk.js → classDiagram-v2-4MYWR3UA-Dh4gPh4M.js} +1 -1
- package/dist/client/assets/{command-DpK0GpDM.js → command-CxjTPW0z.js} +1 -1
- package/dist/client/assets/{cose-bilkent-JH36ORCC-BriFsb6c.js → cose-bilkent-JH36ORCC-BA-tF0x7.js} +1 -1
- package/dist/client/assets/{cpu-DzCUBK-1.js → cpu-SRODWAA1.js} +1 -1
- package/dist/client/assets/{cynefin-EF2NZ3EQ-cj34OpiI.js → cynefin-EF2NZ3EQ-B_kxrTf4.js} +1 -1
- package/dist/client/assets/{cynefinDiagram-WF24UDRP-DvAggKpl.js → cynefinDiagram-WF24UDRP-Be0brpVq.js} +1 -1
- package/dist/client/assets/{dagre-NK4GIZVX-BskSpt7C.js → dagre-NK4GIZVX-zI9I0fUC.js} +1 -1
- package/dist/client/assets/{diagram-CBK3MWTC-C6BZljcO.js → diagram-CBK3MWTC-jN0pUEKR.js} +1 -1
- package/dist/client/assets/{diagram-I5XIIV2D--4FPRmBZ.js → diagram-I5XIIV2D-BjRZmmQf.js} +1 -1
- package/dist/client/assets/{diagram-ODIL2UCW-kZxp81Fr.js → diagram-ODIL2UCW-BtnkiX3a.js} +1 -1
- package/dist/client/assets/{diagram-PFBEJUXE-BSXBAffS.js → diagram-PFBEJUXE-Bteh9wpL.js} +1 -1
- package/dist/client/assets/{diagram-RJA3I4VV-DLDPF6FG.js → diagram-RJA3I4VV-hRmqKbOC.js} +1 -1
- package/dist/client/assets/{diagram-TYUNFSNR-CoU2knZy.js → diagram-TYUNFSNR-NKdthGes.js} +1 -1
- package/dist/client/assets/{ebnfDiagram-V4P3TTPT-C77T1UPB.js → ebnfDiagram-V4P3TTPT-CpkD13ID.js} +1 -1
- package/dist/client/assets/{elk-QONTBCTQ-UFXrlbAn.js → elk-QONTBCTQ-Dw4bdkn4.js} +1 -1
- package/dist/client/assets/{empty-state-aNwJA6H8.js → empty-state-Xw8KQdod.js} +1 -1
- package/dist/client/assets/{erDiagram-KYQIGQAA-CyLB8fKu.js → erDiagram-KYQIGQAA-fiThyiH_.js} +1 -1
- package/dist/client/assets/{execution-config-D7JzMYC2.js → execution-config-ryHuiBdx.js} +1 -1
- package/dist/client/assets/{file-bSD5jgk_.js → file-CbZILJJL.js} +1 -1
- package/dist/client/assets/{file-exclamation-point-BcCIL-rE.js → file-exclamation-point-rCHuN_aY.js} +1 -1
- package/dist/client/assets/{file-text-DTvj1wzM.js → file-text-DGtefNvG.js} +1 -1
- package/dist/client/assets/{find-latest-widget-fence-D01ENK2h.js → find-latest-widget-fence-DJDfJAaN.js} +1 -1
- package/dist/client/assets/{flowDiagram-IUGLLWBU-qmnUF-Ak.js → flowDiagram-IUGLLWBU-ORyRd0wW.js} +1 -1
- package/dist/client/assets/{form-C_yPntkz.js → form-USBlP2n_.js} +1 -1
- package/dist/client/assets/{format-cron-DUPWkOrW.js → format-cron-u8efK62G.js} +1 -1
- package/dist/client/assets/{ganttDiagram-R7GPNTJY-CBzoqGuU.js → ganttDiagram-R7GPNTJY-BC-M9_Wi.js} +1 -1
- package/dist/client/assets/{git-branch-ClXAt1_G.js → git-branch-jQqbJAvp.js} +1 -1
- package/dist/client/assets/{gitGraphDiagram-PDYL7XHY-DMh_n1S2.js → gitGraphDiagram-PDYL7XHY-NIdjLN38.js} +1 -1
- package/dist/client/assets/{graph-BgkuepqW.js → graph-CBIOKOiw.js} +1 -1
- package/dist/client/assets/{heart-BrjEmIsl.js → heart-CSbB9K4Q.js} +1 -1
- package/dist/client/assets/{highlighted-body-KPVGNVTW-DlHNVEaV.js → highlighted-body-KPVGNVTW-OC8sqXXy.js} +1 -1
- package/dist/client/assets/{image-lightbox-BtzkRztd.js → image-lightbox-DgWS2xlv.js} +1 -1
- package/dist/client/assets/{image-off-4yaoLh32.js → image-off-DziiNcIl.js} +1 -1
- package/dist/client/assets/{index-CMLDdOez.js → index-B-KhOLHd.js} +1 -1
- package/dist/client/assets/{index-DQ9ppIWv.js → index-B5eM1_q1.js} +1 -1
- package/dist/client/assets/{index-A_qzw4D8.js → index-B9utW3HE.js} +1 -1
- package/dist/client/assets/{index-BUkUamu4.js → index-BAaqQW-m.js} +1 -1
- package/dist/client/assets/index-BGGnQdij.js +17 -0
- package/dist/client/assets/{index-BeVLPg9t.js → index-BN02EVKP.js} +1 -1
- package/dist/client/assets/{index-DrnHzrt4.js → index-BOaou3k5.js} +1 -1
- package/dist/client/assets/{index-B-X82FND.js → index-BU_bmsP2.js} +1 -1
- package/dist/client/assets/{index-C_H6ZIel.js → index-BYxDsLTQ.js} +1 -1
- package/dist/client/assets/index-BpsATTKn.js +1 -0
- package/dist/client/assets/{index-CyfSPJ1D.js → index-Bz9CgPjs.js} +1 -1
- package/dist/client/assets/{index-CNiC7KUz.js → index-C49AWTah.js} +1 -1
- package/dist/client/assets/{index-BtG4vr8c.js → index-C5gtuueN.js} +1 -1
- package/dist/client/assets/{index-FhmSwVD0.js → index-C9UgTEuh.js} +1 -1
- package/dist/client/assets/{index-WkQdt6Zo.js → index-CCohVfmo.js} +1 -1
- package/dist/client/assets/{index-6yT0Qr0s.js → index-CDslENFz.js} +1 -1
- package/dist/client/assets/{index-f1W4Bd4W.js → index-CP7hD01s.js} +1 -1
- package/dist/client/assets/{index-C0LPB1iH.js → index-CRPh-508.js} +1 -1
- package/dist/client/assets/{index-qdygDruh.js → index-CRTzTiNF.js} +1 -1
- package/dist/client/assets/index-CUKvspHB.js +1 -0
- package/dist/client/assets/{index-CNV11SW6.js → index-CWhDGAYM.js} +1 -1
- package/dist/client/assets/{index-DXalAOXT.js → index-CeJVF9AD.js} +1 -1
- package/dist/client/assets/{index-DgxXSEmR.js → index-CiAb-mD4.js} +1 -1
- package/dist/client/assets/{index-DX546SK5.js → index-CuT_aCM-.js} +2 -2
- package/dist/client/assets/{index-DZ1BC5JW.js → index-D9Ej8fsx.js} +1 -1
- package/dist/client/assets/{index-WxG6nG96.js → index-DJlq_kd_.js} +1 -1
- package/dist/client/assets/{index-DGdKO24t.js → index-DJyLZL6w.js} +1 -1
- package/dist/client/assets/index-DSYz85aL.js +1053 -0
- package/dist/client/assets/{index-Dj4I8KcL.js → index-DYF1ER90.js} +3 -3
- package/dist/client/assets/{index-Ckut3u-d.js → index-DeDh_2c1.js} +1 -1
- package/dist/client/assets/{index-CSyZb1X9.js → index-DfYJ-zxk.js} +1 -1
- package/dist/client/assets/{index-C_xSr5lb.js → index-DgnJZ7RZ.js} +1 -1
- package/dist/client/assets/{index-BqHUbNdh.js → index-Dk33a8Wz.js} +1 -1
- package/dist/client/assets/{index-CJhmUsIv.js → index-DkcRrH0O.js} +1 -1
- package/dist/client/assets/{index-Bgg4cW4L.js → index-DnyoNFRt.js} +1 -1
- package/dist/client/assets/index-DtlBeLQB.css +1 -0
- package/dist/client/assets/{index-BXtagrMY.js → index-LFeqJL-v.js} +1 -1
- package/dist/client/assets/{index-t-NyR7HD.js → index-RXFhiamo.js} +1 -1
- package/dist/client/assets/{index-D0yajRDv.js → index-Yr72qWri.js} +1 -1
- package/dist/client/assets/{index-CThGpHO2.js → index-YtJ82pkp.js} +1 -1
- package/dist/client/assets/{index-CrQWuUpr.js → index-fAHI5hei.js} +1 -1
- package/dist/client/assets/{index-DFWrO42z.js → index-j5szQcqb.js} +1 -1
- package/dist/client/assets/{index-DB2t3GUm.js → index-jJbbnV9q.js} +3 -3
- package/dist/client/assets/{index-Cefoks17.js → index-n6f9pLtt.js} +1 -1
- package/dist/client/assets/{index-Adjbt_HC.js → index-w4wyJU8q.js} +1 -1
- package/dist/client/assets/{index.esm-Bb3LMu5X.js → index.esm-Dyd3JXuK.js} +1 -1
- package/dist/client/assets/{infoDiagram-MVDRKAX5-DbU4eDjZ.js → infoDiagram-MVDRKAX5-CPcm-36U.js} +1 -1
- package/dist/client/assets/{inline-code-DwFNff3_.js → inline-code-BjkmgK0M.js} +1 -1
- package/dist/client/assets/{ishikawaDiagram-HPEHV2GE-DmHmF-HT.js → ishikawaDiagram-HPEHV2GE-B8eVNEDQ.js} +1 -1
- package/dist/client/assets/{journeyDiagram-BOSHW7O7-DsjOeP3J.js → journeyDiagram-BOSHW7O7-CGkIGaMV.js} +1 -1
- package/dist/client/assets/{kanban-definition-FNSA4HC5-ByQ1WGy2.js → kanban-definition-FNSA4HC5-BTDbT6UJ.js} +1 -1
- package/dist/client/assets/{layers-DFZUUHM5.js → layers-DyShcAgn.js} +1 -1
- package/dist/client/assets/{lightbulb-Bbgsejp1.js → lightbulb-QljDqLq7.js} +1 -1
- package/dist/client/assets/{link-2-xieOmwOK.js → link-2-7SoeCkEs.js} +1 -1
- package/dist/client/assets/{list-runtime-types-B0CSonAi.js → list-runtime-types-DvfLx6v2.js} +1 -1
- package/dist/client/assets/{markdown-content-ysBIqFAg.js → markdown-content-D7t62wwm.js} +1 -1
- package/dist/client/assets/{mention-pill-Daeu1X92.js → mention-pill-DNQ2ICCW.js} +1 -1
- package/dist/client/assets/{mermaid.core-B1mQMOXd.js → mermaid.core-NAyHAvFm.js} +4 -4
- package/dist/client/assets/{message-square-off-D9hm8WNH.js → message-square-off-D6K1M95g.js} +1 -1
- package/dist/client/assets/{mindmap-definition-6OY57UG3-CoP-DGm1.js → mindmap-definition-6OY57UG3-26dEepZx.js} +1 -1
- package/dist/client/assets/{more-details-DHCpYDi7.js → more-details-BJ_2FYn8.js} +1 -1
- package/dist/client/assets/{owner-notice-Crxco7HN.js → owner-notice-CIfb2Yr7.js} +1 -1
- package/dist/client/assets/{package-CD8xq7hk.js → package-CeRLwc1u.js} +1 -1
- package/dist/client/assets/{page-container-B9sDc2wq.js → page-container-D2J6eon9.js} +1 -1
- package/dist/client/assets/{pane-resize-handle-DOchpdJ6.js → pane-resize-handle-CXxva43c.js} +1 -1
- package/dist/client/assets/{paperclip-CzhXW5qi.js → paperclip-DFuuQSWM.js} +1 -1
- package/dist/client/assets/{path-input-Z2p922fj.js → path-input-DhGxbEsh.js} +1 -1
- package/dist/client/assets/{pegDiagram-ECIUJNBX-TEsMAO1a.js → pegDiagram-ECIUJNBX-BJu6g9eg.js} +1 -1
- package/dist/client/assets/{pieDiagram-GNMPY74T-CMIDIiMP.js → pieDiagram-GNMPY74T-CMf8TQF7.js} +1 -1
- package/dist/client/assets/{plug-BEp9Ly3k.js → plug-Bqwk5g66.js} +1 -1
- package/dist/client/assets/{primer-trigger-4qUY83SX.js → primer-trigger-NAz78FSN.js} +1 -1
- package/dist/client/assets/{profile-errors-CezsKqhA.js → profile-errors--0_JG2R0.js} +1 -1
- package/dist/client/assets/{progress-eQl1UvNz.js → progress-cQRXQehb.js} +1 -1
- package/dist/client/assets/{quadrantDiagram-D57K4MC3-DXjohzOz.js → quadrantDiagram-D57K4MC3-Bb92PcA9.js} +1 -1
- package/dist/client/assets/{query-error-state-COuKRlU0.js → query-error-state-C2QLFCgp.js} +1 -1
- package/dist/client/assets/{radio-Cdnkcg1w.js → radio-CBD2fSSB.js} +1 -1
- package/dist/client/assets/{railroadDiagram-Y72NRBL7-BojgH6Hw.js → railroadDiagram-Y72NRBL7-YN2siyto.js} +1 -1
- package/dist/client/assets/registry-CsiY3fnM.js +1 -0
- package/dist/client/assets/{relay-trace-schemas-XcVQg5Fa.js → relay-trace-schemas-yWn__06J.js} +1 -1
- package/dist/client/assets/{repeat-wB31CP7I.js → repeat-CtIEyxm4.js} +1 -1
- package/dist/client/assets/{requirementDiagram-EQYSW5RA-Gojbrcvg.js → requirementDiagram-EQYSW5RA-DJBQviv-.js} +1 -1
- package/dist/client/assets/{room-files-source-DXKpm43a.js → room-files-source-nnbGMKus.js} +1 -1
- package/dist/client/assets/{rotate-ccw-clock-LSKKAcnR.js → rotate-ccw-clock-C2jXtg-P.js} +1 -1
- package/dist/client/assets/{rotate-cw-scTEKxeZ.js → rotate-cw-34X3Kx8Z.js} +1 -1
- package/dist/client/assets/{sankeyDiagram-SY24JHO5-QS71aycL.js → sankeyDiagram-SY24JHO5-DH2qnwVI.js} +1 -1
- package/dist/client/assets/{scroll-area-BNFXgTKM.js → scroll-area-DYTbXWMY.js} +1 -1
- package/dist/client/assets/{search-x-Cjf0n9z7.js → search-x-DeFOvp_5.js} +1 -1
- package/dist/client/assets/{sequenceDiagram-BLEHNHQU-Beg7mj69.js → sequenceDiagram-BLEHNHQU-CkHcuOw2.js} +1 -1
- package/dist/client/assets/{shield-x-Dr4BZfo_.js → shield-x-bloGLifl.js} +1 -1
- package/dist/client/assets/{signed-in-L9MLqTuc.js → signed-in-DD2qV0PJ.js} +1 -1
- package/dist/client/assets/{sizeCapture-INFHLROL-3Oo1KjRp.js → sizeCapture-INFHLROL-BXK-Cxjs.js} +1 -1
- package/dist/client/assets/{soul-file-CxpOawh5.js → soul-file-DFPctfHR.js} +1 -1
- package/dist/client/assets/{stateDiagram-v2-A6IESKWZ-DFYIDQ6C.js → stateDiagram-v2-A6IESKWZ-DP_cqXJO.js} +1 -1
- package/dist/client/assets/{swimlanes-B3ENRKFQ-BUgKOOrv.js → swimlanes-B3ENRKFQ-BZxkK7Fr.js} +1 -1
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-DXRZtHKX.js +8 -0
- package/dist/client/assets/{table-B0LsKsEv.js → table-B8zvHC0J.js} +1 -1
- package/dist/client/assets/{timeline-definition-JXYKGLGB-BsPZ0P_8.js → timeline-definition-JXYKGLGB-BPZ64ADa.js} +1 -1
- package/dist/client/assets/{trust-posture-Cm7OhCEx.js → trust-posture-C9r0jGhc.js} +1 -1
- package/dist/client/assets/{unplug-DLA7Ib_s.js → unplug-DYZEcvkR.js} +1 -1
- package/dist/client/assets/{unverified-catalog-notice-CxBO_pta.js → unverified-catalog-notice-DAhwNpy_.js} +1 -1
- package/dist/client/assets/{use-adapter-catalog-C333Z2Q6.js → use-adapter-catalog-DrDMqxhZ.js} +1 -1
- package/dist/client/assets/{use-bindings-Bu4yLLR5.js → use-bindings-Ci7hpEO4.js} +1 -1
- package/dist/client/assets/{use-composer-prefs-BnjCX9pM.js → use-composer-prefs-FpUdi_wE.js} +1 -1
- package/dist/client/assets/{use-connector-management-Bo6wOJQS.js → use-connector-management-CinfkPZI.js} +1 -1
- package/dist/client/assets/{use-deep-link-scroll-D867V6rs.js → use-deep-link-scroll-DZnA4iYZ.js} +1 -1
- package/dist/client/assets/{use-delete-binding-DKObM-zT.js → use-delete-binding-DDtaCc3v.js} +1 -1
- package/dist/client/assets/{use-dev-links-C0Zc30aj.js → use-dev-links-CtHwhTBj.js} +1 -1
- package/dist/client/assets/{use-direct-message-panel-DNWtQq4B.js → use-direct-message-panel-Da9rkfA3.js} +1 -1
- package/dist/client/assets/{use-external-adapter-catalog-Bv5rDkX4.js → use-external-adapter-catalog-CikM-LiV.js} +1 -1
- package/dist/client/assets/{use-full-activity-feed-CFUj0qCS.js → use-full-activity-feed-B6TQc-xB.js} +1 -1
- package/dist/client/assets/use-is-below-desktop-DJQVU5CF.js +1 -0
- package/dist/client/assets/{use-local-browser-BeZjn0gA.js → use-local-browser-ABoWOGv1.js} +1 -1
- package/dist/client/assets/{use-mesh-topology-DurMpvjU.js → use-mesh-topology-C5njB0KY.js} +1 -1
- package/dist/client/assets/{use-mounted-ref-CBSuPNPv.js → use-mounted-ref-Bp9Wp7zY.js} +1 -1
- package/dist/client/assets/{use-notification-prefs-b8iKvzB4.js → use-notification-prefs-DXww4pVV.js} +1 -1
- package/dist/client/assets/{use-panel-tab-placements-BcKEux1G.js → use-panel-tab-placements-DLQeHI7w.js} +1 -1
- package/dist/client/assets/use-pending-read-CgR0BnSW.js +1 -0
- package/dist/client/assets/{use-personality-commit-u3kQ6h3H.js → use-personality-commit-DYQ3KVxd.js} +1 -1
- package/dist/client/assets/{use-promo-activation-C8_cGmEW.js → use-promo-activation-nURLgFxH.js} +1 -1
- package/dist/client/assets/{use-promo-dismissals-B3VuaQCf.js → use-promo-dismissals-BQkeHMCS.js} +1 -1
- package/dist/client/assets/{use-pulse-freshness-CSWQ0TZS.js → use-pulse-freshness-B8VeNnHj.js} +1 -1
- package/dist/client/assets/{use-relay-config-BA6c0FMB.js → use-relay-config-D0BknsXK.js} +1 -1
- package/dist/client/assets/{use-room-follow-claim-BV-MtDQ5.js → use-room-follow-claim-BruRRf3z.js} +1 -1
- package/dist/client/assets/{use-room-sessions-W62Zl72O.js → use-room-sessions-DGcrmZvE.js} +1 -1
- package/dist/client/assets/{use-roving-tab-list-CMITzUHu.js → use-roving-tab-list-YQ4MgIBO.js} +1 -1
- package/dist/client/assets/{use-session-canvas-u63m2mYH.js → use-session-canvas-BaGypLR6.js} +3 -3
- package/dist/client/assets/{use-status-budget-CbmPFvpQ.js → use-status-budget-Q1ltHI80.js} +4 -4
- package/dist/client/assets/{use-unclaimed-chats-D7SEUfiO.js → use-unclaimed-chats-Bext8Aim.js} +1 -1
- package/dist/client/assets/use-update-config-BJEw2LjV.js +1 -0
- package/dist/client/assets/{useMutationState-rOg4bnKv.js → useMutationState-C3WVn0hu.js} +1 -1
- package/dist/client/assets/{usecaseDiagram-WPOLBNNX-C-w0e-nv.js → usecaseDiagram-WPOLBNNX-Dg4P8nSr.js} +1 -1
- package/dist/client/assets/{vennDiagram-Q3Y3IDCW-BNm2WXT5.js → vennDiagram-Q3Y3IDCW-B8Txoqsz.js} +1 -1
- package/dist/client/assets/{wardleyDiagram-IVAIDKWA-BFyFLiir.js → wardleyDiagram-IVAIDKWA-lgQBspKc.js} +1 -1
- package/dist/client/assets/{xychartDiagram-4URNHDU4-BKxZlnEx.js → xychartDiagram-4URNHDU4-Ct9-Lgo9.js} +1 -1
- package/dist/client/index.html +2 -2
- package/dist/server/extension-child.cjs +1701 -435
- package/dist/server/index.js +23150 -21706
- package/dist/server/index.js.map +2 -2
- package/package.json +4 -4
- package/dist/client/assets/ChannelComposer-CutghXOq.js +0 -44
- package/dist/client/assets/HandlePage-XG5mP_e9.js +0 -1
- package/dist/client/assets/NamePage-Cdd9-mZg.js +0 -1
- package/dist/client/assets/PhotoPage-DFic-gDH.js +0 -1
- package/dist/client/assets/_shell.channels-B7lTxkqM.js +0 -10
- package/dist/client/assets/_shell.marketplace-BMqwT9qX.js +0 -1
- package/dist/client/assets/_shell.marketplace_.sources-pXGa7Cqb.js +0 -1
- package/dist/client/assets/_shell.session-CmoE1W38.js +0 -1
- package/dist/client/assets/_shell.x._extensionId-BiXilrSW.js +0 -1
- package/dist/client/assets/_shell.x._extensionId_._-BiXilrSW.js +0 -1
- package/dist/client/assets/channel-A2WD4smw.js +0 -1
- package/dist/client/assets/index-BMCDckcY.js +0 -17
- package/dist/client/assets/index-BOuCpkRb.js +0 -1
- package/dist/client/assets/index-BVq1p60h.js +0 -1
- package/dist/client/assets/index-CjUfPyOM.js +0 -1053
- package/dist/client/assets/index-D2ZFfqZZ.css +0 -1
- package/dist/client/assets/registry-BSucT23N.js +0 -1
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-Bqjv1MSj.js +0 -8
- package/dist/client/assets/use-is-below-desktop-BUS7OPGv.js +0 -1
- package/dist/client/assets/use-is-hub-CFhvDMHt.js +0 -1
- package/dist/client/assets/use-pending-read-BBBAnUYu.js +0 -1
- package/dist/client/assets/use-update-config-Dfd7KMde.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{W as at,r as C,j as d,I as Xt,G as P,T as
|
|
1
|
+
import{W as at,r as C,j as d,I as Xt,G as P,T as Jt,ku as Qt,kv as en,kw as tn,B as ge,ex as nn,kx as sn,a1 as j,as as an,dS as rn,bP as on,i6 as cn,el as dn,a8 as J,ky as ln,ei as un,jl as hn,i7 as mn,dV as pn,a2 as K,kz as gn,kA as bn,kB as it,kC as rt,fu as n,fC as ot,ft as a,fs as p,fA as x,fx as k,fw as E,fD as ae,fE as l,kD as O,kE as fn,kF as m,kG as yn,a3 as we,ap as ct,gi as Ye,kH as dt,gj as Ge,e as wn,hk as Sn,hN as vn,ci as lt,kk as ut,a4 as ht,kI as xn,kJ as kn,fB as mt,kK as An,kL as In,b8 as Tn}from"./index-DSYz85aL.js";import{u as En}from"./use-promo-dismissals-BQkeHMCS.js";import{a as Cn,d as _n,k as Rn}from"./execution-config-ryHuiBdx.js";import{s as Nn}from"./settings-for-runtime-BoOa-ZFG.js";import{u as Pn,a as On,e as R,c as Wn,h as $n,P as Mn,A as jn,d as qn,r as Ln}from"./ApplyToOverridesDialog-BqaoB6AS.js";import{a as Dn,b as pt}from"./RuntimeConnectFlow-BsZsQZS9.js";/**
|
|
2
2
|
* @license lucide-react v1.48.0 - ISC
|
|
3
3
|
*
|
|
4
4
|
* This source code is licensed under the ISC license.
|
|
@@ -8,7 +8,7 @@ import{W as at,r as C,j as d,I as Xt,G as P,T as Qt,k_ as Jt,kI as en,k$ as tn,B
|
|
|
8
8
|
*
|
|
9
9
|
* This source code is licensed under the ISC license.
|
|
10
10
|
* See the LICENSE file in the root directory of this source tree.
|
|
11
|
-
*/const bt={name:"wrench",size:24,node:[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]};bt.node;const
|
|
11
|
+
*/const bt={name:"wrench",size:24,node:[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]};bt.node;const Ma=at(bt);function ja({value:e,min:t,max:i,onCommit:s,disabled:o,className:c,"aria-label":g,"aria-describedby":b}){const[h,y]=C.useState(null),A=C.useId(),f=h===null?e:Number(h),w=h!==null&&(h.trim()===""||!Number.isInteger(f)||f<t||f>i),_=()=>{h!==null&&(w||(y(null),f!==e&&s(f)))};return d.jsxs("div",{"data-slot":"bounded-number-input",className:"flex flex-col items-start gap-1",children:[d.jsx(Xt,{type:"number",inputMode:"numeric",min:t,max:i,step:1,disabled:o,"aria-label":g,"aria-invalid":w||void 0,"aria-describedby":[b,w?A:void 0].filter(Boolean).join(" ")||void 0,value:h??String(e),onChange:W=>y(W.target.value),onBlur:_,onKeyDown:W=>{W.key==="Enter"&&(W.preventDefault(),_()),W.key==="Escape"&&y(null)},className:P("w-24 tabular-nums",c)}),w&&d.jsxs("p",{id:A,className:"text-destructive text-xs",children:["Enter a whole number from ",t," to ",i,"."]})]})}const zn=`{
|
|
12
12
|
"instanceId": "a1b2c3d4-...", // random, not you
|
|
13
13
|
"dorkosVersion": "0.47.0",
|
|
14
14
|
"os": "darwin-arm64",
|
|
@@ -16,4 +16,4 @@ import{W as at,r as C,j as d,I as Xt,G as P,T as Qt,k_ as Jt,kI as en,k$ as tn,B
|
|
|
16
16
|
"tunnelEnabled": false,
|
|
17
17
|
"cloudLinked": false,
|
|
18
18
|
"counts": { "agents": 4, "tasks": 2, "relayAdapters": 1 }
|
|
19
|
-
}`;function La({className:e}){return d.jsxs("div",{className:P("space-y-1.5 text-left",e),children:[d.jsx("pre",{className:"text-muted-foreground bg-background/60 max-w-full overflow-x-auto rounded-md border p-3 text-xs",children:d.jsx("code",{children:zn})}),d.jsx("p",{className:"text-muted-foreground text-xs",children:"That’s the whole daily ping."})]})}function Da({open:e,onToggle:t,className:i}){return d.jsxs("button",{type:"button",onClick:t,"aria-expanded":e,className:P("text-foreground focus-visible:ring-ring inline-flex items-center gap-1 rounded-sm text-xs font-medium underline underline-offset-2 outline-none hover:no-underline focus-visible:ring-2",i),children:["See what’s sent",d.jsx(Qt,{"aria-hidden":!0,className:P("size-3 transition-transform duration-200",e&&"rotate-180")})]})}const me="official-space-join";function Hn(){var k;const{officialLink:e}=Jt(),t=en(e!==null),{dismissedIds:i,dismissPromo:s}=En(),o=tn(f=>f.ask),c=((k=t.data)==null?void 0:k.some(f=>f.official===!0))??!1,g=e!==null&&t.data!==void 0&&!c&&!i.includes(me),b=e!==null&&t.isLoading===!0&&!i.includes(me),h=C.useCallback(()=>{e!==null&&o(e)},[o,e]),y=C.useCallback(()=>s(me),[s]);return{link:e,joined:c,offered:g,pending:b,join:h,skip:y}}function Ka({className:e,onDone:t,compact:i=!1}){const s=Hn(),o=C.useId();if(!s.offered)return null;const c=i?"h4":"h3";return d.jsxs("section",{"aria-labelledby":o,"data-testid":"official-space-offer",className:P("flex items-start",i?"gap-2":"gap-3 rounded-md border p-3",e),children:[d.jsx(Kn,{className:P("text-muted-foreground mt-0.5 shrink-0",i?"size-3.5":"size-4"),"aria-hidden":!0}),d.jsxs("div",{className:"min-w-0 flex-1 space-y-2",children:[d.jsx(c,{id:o,className:P("font-medium",i?"text-xs":"text-sm"),children:"Join the DorkOS community"}),d.jsx("p",{className:P("text-muted-foreground",i?"text-xs":"text-sm"),children:"One space for everyone using DorkOS. Your agents join only if you add them."}),d.jsxs("div",{className:"flex flex-wrap gap-2",children:[d.jsx(ge,{size:"sm",onClick:()=>{s.join(),t==null||t()},children:"Join"}),d.jsx(ge,{size:"sm",variant:"ghost",onClick:()=>{s.skip(),t==null||t()},children:"Not now"})]})]})]})}const Un="Paid plans and hosted spaces are for people in the United States, 18 or older.",Bn="Paid plans are for people in the United States, 18 or older.",Fn=sn("/pricing#faq");function za({className:e,withSpaces:t=!0}){return d.jsxs("p",{className:P("text-muted-foreground text-xs",e),children:[t?Un:Bn," ",d.jsx(nn,{href:Fn,className:"text-foreground underline underline-offset-2",children:"Who can buy a plan?"})]})}const Yn=[];function Ve(e,t){return t?`${e}\0credits`:e}function Gn(e){const[t,i]=e.split("\0");return i?{runtime:t,account:Q}:{runtime:t}}function Ha(e){var Oe,$e,We,Me,je,qe,Le,De,Ke,ze;const t=(e==null?void 0:e.checkModels)??!1,i=j(),{data:s}=an(),{data:o}=rn(),{data:c}=on(),g=C.useMemo(()=>((c==null?void 0:c.agents)??[]).map(S=>S.projectPath),[c]),{data:b}=cn(g),h=((Oe=s==null?void 0:s.executionDefaults)==null?void 0:Oe.runtime)??"claude-code",y=o?Object.keys(o.capabilities):void 0,k=($e=s==null?void 0:s.executionDefaults)==null?void 0:$e.perRuntime,f=(We=s==null?void 0:s.claudeCode)==null?void 0:We.accounts,w=(Me=s==null?void 0:s.claudeCode)==null?void 0:Me.accountsUnavailable,_=f&&[...f.flatMap(S=>S.id===null?[]:[{id:S.id,label:ln(S.path,f)}]),...(je=s==null?void 0:s.claudeCode)!=null&&je.credits?[{id:Q,label:dn}]:[]],$=new Set(((Le=(qe=s==null?void 0:s.claudeCode)==null?void 0:qe.credits)==null?void 0:Le.allowedAgents)??[]),Vt=S=>{var v;return((v=k==null?void 0:k.find(T=>T.runtime===S))==null?void 0:v.model)??null},ue=y==null?void 0:y.join(","),Re=(De=s==null?void 0:s.claudeCode)==null?void 0:De.credits,Z=(Ke=un().data)==null?void 0:Ke.defaults,he=C.useCallback(S=>Cn(S,{defaultRuntime:h,runtimeDeclaresCredits:v=>{var T;return((T=o==null?void 0:o.capabilities[v])==null?void 0:T.credits)!==void 0},credits:Re,runtimeDefaultsToCredits:v=>{var T;return((T=Z==null?void 0:Z[v])==null?void 0:T.runsOn)==="credits"}}),[h,o,Re,Z]),Ne=C.useMemo(()=>{if(!t||!b)return[];const S=ue===void 0?null:new Set(ue.split(",")),v=new Set;for(const T of Object.values(b)){if(!(T!=null&&T.model)&&!(T!=null&&T.effort))continue;const N=T.runtime??h;S&&!S.has(N)||v.add(Ve(N,he(T)))}return[...v].sort()},[t,b,h,ue,he]),Zt=hn({queries:Ne.map(S=>({...mn(i,Gn(S)),retry:!1}))}),Pe=new Map;if(Ne.forEach((S,v)=>{var N;const T=(N=Zt[v])==null?void 0:N.data;T&&Pe.set(S,T)}),!b)return{exceptions:Yn,brokenPaths:[],defaultRuntime:h};const X=[];for(const[S,v]of Object.entries(b)){if(!v)continue;const T=v.runtime??h,N=Pe.get(Ve(T,he(v))),He=Vt(T),Ue=v.model??He,Be=Ue?N==null?void 0:N.find(U=>U.value===Ue):void 0,Fe=_n({agent:{runtime:v.runtime,model:v.model,effort:v.effort,account:v.account},defaultRuntime:h,serverDefaultModel:He,knownRuntimes:y,knownModels:Rn(N),knownAccounts:v.account===Q&&!$.has(v.id)?_==null?void 0:_.filter(U=>U.id!==Q):_,accountsUnavailable:w,modelSupportsEffort:Be?Be.supportsEffort??!1:void 0,runtimeSupportsEffort:(ze=Nn(o,T))==null?void 0:ze.supportsEffort,runtimeLabel:U=>pn(U).label});Fe.isException&&X.push({path:S,agent:v,report:Fe})}return X.sort((S,v)=>S.report.isBroken!==v.report.isBroken?S.report.isBroken?-1:1:S.agent.name.localeCompare(v.agent.name)),{exceptions:X,brokenPaths:X.filter(S=>S.report.isBroken).map(S=>S.path),defaultRuntime:h}}const J={all:["cloud","communities"],list:()=>[...J.all,"list"],move:e=>[...J.all,"move",e],name:e=>[...J.all,"name",e]};function Ua(){var i;const e=j();return((i=K({queryKey:bn,queryFn:()=>e.getCloudStatus(),staleTime:3e4}).data)==null?void 0:i.linked)===!0}function Ba(e){const t=j(),i=gn();return K({queryKey:J.list(),queryFn:()=>t.listHostedCommunities(),enabled:e&&i,staleTime:15e3})}const u=rt({offset:!0}).describe("An ISO-8601 instant with an explicit UTC offset."),r=n().min(1).describe("An opaque server-issued identifier. Clients never parse or enumerate it.");n().regex(/^-?(0|[1-9][0-9]*)$/,"must be a base-10 integer count of micro-units carried as a string").describe("An exact integer count of micro-units, carried as a string so no value goes through a JavaScript number. A micro-unit is a millionth of the major unit of the currency the response names.");const Vn=n().regex(/^[1-9][0-9]*$/,"must be a positive base-10 integer count of micro-units carried as a string").describe("A strictly positive exact integer count of micro-units, carried as a string so no amount goes through a JavaScript number."),Se="amountKind";p(["money","credit"]).describe("What an amount counts: money paid, refunded, offered or capped, or credits held, spent or priced.");const ft=/^-?(0|[1-9][0-9]*)$/,Zn=/^[1-9][0-9]*$/;n().regex(ft,"must be a base-10 integer count of micro-units carried as a string").describe("An exact integer count of micro-units of the response's currency: money paid, refunded, offered or capped.").meta({[Se]:"money"});n().regex(Zn,"must be a positive base-10 integer count of micro-units carried as a string").describe("A strictly positive exact integer count of micro-units of money to be paid, in the currency the service names.").meta({[Se]:"money"});n().regex(ft,"must be a base-10 integer count of micro-units carried as a string").describe("An exact integer count of micro-units of the response's currency, counted as credits: divide by the response's denomination.microPerCredit to get credits.").meta({[Se]:"credit"});a({currency:n().regex(/^[A-Z]{3}$/,"must be an ISO 4217 currency code").describe("An ISO 4217 code. Rendered, never enumerated."),microPerCredit:Vn.describe("How many micro-units of currency one credit is. Served by the service; a client never hard-codes it.")}).describe("The unit these amounts are in: the currency their micro-units are millionths of, and how many micro-units one credit is.");const yt=n().min(1).describe("A credential returned exactly once. Store it as a credential reference; never log it or persist it as configuration."),wt=n().min(1).describe("An opaque pagination cursor, passed back verbatim from a previous page.");a({cursor:wt.optional(),limit:x().int().min(1).max(200).optional().describe("Maximum items in the page. The server may return fewer, and clamps anything larger.")}).describe("Cursor pagination parameters, shared by every collection in this contract.");function z(e,t){return a({items:A(e),nextCursor:wt.nullable().describe("The cursor for the next page, or null when this is the last page.")}).describe(t)}const ie=it({protocol:/^https$/}).regex(/^https:\/\//,"must be an https: link").describe("An absolute https: link. Any other scheme is refused."),Fa=it({protocol:/^https?$/}).regex(/^(https:\/\/|http:\/\/(localhost|127\.0\.0\.1|\[::1\])(:[0-9]+)?([/?#]|$))/,"must be an https: link, or http: to a loopback address").describe("An absolute https: link, or an http: link to a loopback address only."),St="x-dorkos-one-time-credential",Xn="unrecognised";function L(e){return ot([e,n().transform(()=>Xn).describe("A value this release does not know. It reads as unrecognised.")])}const Qn=p(["personal","org"]).describe("Whether an organization is one person`s own or a shared one."),ve=p(["owner","admin","member"]).describe("What a member may do in an organization."),Jn=a({id:r,slug:n().describe("The short name that appears in a canonical address."),name:n(),kind:Qn,createdAt:u}).describe("An organization: the unit seats, addresses and billing hang off.");a({slug:n().min(1),name:n().min(1)}).describe("Create an organization.");a({name:n().min(1).optional(),slug:n().min(1).optional()}).describe("Rename an organization or change its slug.");z(Jn,"A page of the organizations the caller belongs to.");const es=a({id:r,orgId:r,userId:r,role:ve,displayName:n().optional().describe("The name to show for this person, taken from their account profile. Never their email address, and absent when they have set no name."),createdAt:u}).describe("One person`s membership of one organization.");z(es,"A page of an organization`s members.");const ts=p(["pending","accepted","rejected","canceled"]).describe("How far an invitation has got."),ns=a({id:r,orgId:r,email:n(),role:ve,status:ts,expiresAt:u,createdAt:u}).describe("An outstanding or settled invitation to join an organization.");a({email:n().min(1),role:ve}).describe("Invite somebody to an organization.");z(ns,"A page of an organization`s invitations.");const vt=p(["pending","approved","rejected","expired"]).describe("How far a claim to an agent identity has got."),ss=a({id:r,orgId:r,ownerMemberId:r.nullable().describe("The member who owns this agent, or null when nobody does yet."),displayName:n(),emoji:n().optional(),color:n().optional(),imageUrl:n().url().optional(),createdAt:u,retiredAt:u.optional(),claimStatus:L(vt).optional().describe("Where this identity`s claims stand, by precedence: pending when any claim waits, otherwise approved when one stands, otherwise the most recent ended claim. A status this release does not know reads as unrecognised. Absent from an older service, or when no claim was ever asserted."),pendingClaimId:r.optional().describe("One claim waiting for a person`s approval (the oldest), as the `claimId` `POST /v1/agents/{agentId}/claims/{claimId}/approve` takes. Present only while `claimStatus` is `pending`; more may be waiting.")}).describe("An agent identity an organization has registered.");a({displayName:n().min(1),instanceId:r,emoji:n().optional(),color:n().optional(),principalKind:n().min(1).optional().describe("What kind of local principal `naturalKey` belongs to, as a server-recognised token. Optional here so a client one release behind keeps working; the server needs it to register anything."),naturalKey:n().min(1).optional().describe("The raw local key that identifies the principal, sent once and hashed with a per-organization key on receipt. The server discards the input, so no response can be turned back into it. A client never hashes this itself: a client that could compute the hash could forge any identity."),authEnabled:E().optional().describe("Whether the reporting instance requires a signed-in person for every request that does not come from this computer itself. With `hasUsers`, this is the exposure predicate: other devices must sign in, and there is an owner to sign in as. An instance reports this fact, never a single global login switch. The server reads absent as false; the parsed value is still undefined, because a default here would be a claim about what the client sent."),hasUsers:E().optional().describe("Whether the reporting instance has any local users. The server reads absent as false; the parsed value is still undefined.")}).describe("An instance asserting a claim to an agent identity. Mints nothing until a person approves it.");a({claimId:r,agentId:r,instanceId:r,status:vt,createdAt:u,approvedAt:u.nullable()}).describe("The state of an agent claim awaiting a person`s approval.");z(ss,"A page of an organization`s agents.");const as=p(["person","agent"]).describe("Whether a seat holds a person or an agent."),is=p(["unassigned","assigned","suspended","released"]).describe("Where a seat is in its lifecycle."),rs=p(["active","retired"]).describe("Whether an address is live or has been retired."),os=a({id:r,orgId:r,seatId:r,handle:n().describe("The local part of the address, unique within the organization."),canonical:n().describe("The full `dork:<org-slug>/<handle>` form."),status:rs,issuedAt:u,retiredAt:u.optional()}).describe("A routable address issued to a seat."),cs=n().regex(/^[a-z0-9][a-z0-9_-]{0,30}[a-z0-9]$/,"must be lower-case, start and end with a letter or digit, and contain only letters, digits, hyphens and underscores").describe("The grammar every handle obeys: lower case, 2 to 32 characters, starting and ending with a letter or a digit.");a({seatId:r,handle:n().min(1),subject:a({kind:p(["user","agent"]),id:r}).optional().describe("Who or what will hold the seat this address belongs to."),acknowledgeUnauthenticatedExposure:E().optional().describe("Somebody accepting, explicitly, that an agent is being given an address while the reporting machine has no local sign-in. Spelled in full on purpose: a shorter name invites a default, and defaulting it would be the whole problem. The server reads absent as not accepted; the parsed value is still undefined.")}).describe("Issue an address to a seat.");const ds=a({id:r,orgId:r,kind:as,status:is,subject:a({kind:p(["user","agent"]),id:r}).nullable().describe("Who or what currently occupies the seat, or null when nobody does."),address:os.nullable(),createdAt:u,assignedAt:u.optional(),releasedAt:u.optional()}).describe("One seat in an organization.");z(ds,"A page of an organization`s seats.");a({subject:a({kind:p(["user","agent"]),id:r}),handle:n().min(1).optional().describe("The name the seat`s address gets, written once and never renamed in place.")}).describe("Put a person or an agent into a seat, and give it its address.");const B=a({id:r,seatId:r,granteeKind:p(["org","seat","connected-channel","public"]).describe("What kind of thing the grant is about."),granteeRef:r.nullable().describe("Which one, or null when the kind is enough (`public`)."),capability:p(["address","trigger"]).describe("What the grantee may do: reach the address, or trigger the seat."),effect:p(["allow","deny"]).describe("Deny wins over allow.")}).describe("One rule about who may reach a seat, and for what.");a({grants:A(B.omit({id:!0,seatId:!0}))}).describe("Replace a seat`s entire grant set. A partial update is not offered, so no two clients can interleave.");a({grants:A(B),effective:A(a({granteeKind:B.shape.granteeKind,capability:B.shape.capability,effect:B.shape.effect}).describe("One resolved verdict: what a kind of grantee may do, after the default.")).optional().describe("The resolved verdict per grantee kind and capability, including whatever the organization`s default supplies. Absent when the server did not resolve it.")}).describe("A seat`s entire grant set, and optionally what it resolves to.");const ls=a({id:r,seatId:r,kind:n().describe("An opaque add-on identifier. The set is never enumerated in this package."),status:p(["attached","detached"]),attachedAt:u,detachedAt:u.optional()}).describe("Something attached to a seat beyond what it includes by default.");a({kind:r.describe("An opaque identifier the server supplied earlier.")}).describe("Attach an add-on to a seat.");a({addons:A(ls)}).describe("Everything attached to a seat.");const us=p(["email","a2a","seat","connected-channel"]).describe("Where an inbox item arrived from."),xt=a({id:r,leaseToken:n().min(1).describe("The receipt that acknowledges exactly this delivery."),receivedAt:u,expiresAt:u.describe("When the lease lapses and the item becomes pullable again."),sourceKind:us,sourceRef:n().describe("Which sender, in whatever form that source names one."),envelope:ae().describe("The source-shaped metadata of the item."),bodyUrl:n().url().describe("Where to fetch the item body."),sizeBytes:x().int().nonnegative()}).describe("One item leased from a seat`s inbox.");a({limit:x().int().min(1).max(100).optional().describe("Defaults to 50, capped at 100.")}).describe("Lease a batch of inbox items. Cursor-free by design, exactly like the connector event pull.");a({items:A(xt)}).describe("A leased batch of inbox items. No cursor, by design.");a({items:A(a({id:r,leaseToken:n().min(1)})).min(1).max(100)}).describe("Settle inbox leases with exact receipts. One to a hundred at a time.");a({acknowledged:x().int().nonnegative()}).describe("How many inbox leases the server settled.");z(xt.omit({leaseToken:!0}),"A read-only page of a seat`s inbox. Takes no lease and changes no status.");const hs=p(["offline","unknown","reachable","active"]).describe("How reachable a seat is right now.");a({seatId:r,state:hs,lastSeenAt:u.nullable(),source:p(["cloud-link","heartbeat"]).describe("Which signal this reading came from.")}).describe("How reachable a seat is right now, and where that reading came from.");a({eventId:r.describe("Idempotency key. A redelivery with the same key is a complete no-op."),orgId:r.describe("The organization the seat belongs to. Opaque."),seatId:r.describe("Agent seats only. A person seat never produces a seat-activity event."),periodStart:u.describe("The start of the organization`s subscription period — NOT a calendar month."),periodEnd:u.describe("The end of the organization`s subscription period — NOT a calendar month. Clamped on a short month rather than rolled over."),occurredAt:u.describe("When the qualifying activity happened."),reason:p(["inbound-from-org-seat","inbound-from-connected-channel","turn-triggered-by-qualifying-message","turn-triggered-by-attached-addon","addon-attached"]).describe("What made the seat active. Mechanism: it names a kind of activity, nothing else."),sourceKind:p(["seat","connected-channel","addon"]).describe("What kind of thing the activity came from. Deliberately not the inbox`s own source kinds: `addon` is not a place mail arrives from, and `email` is absent because no mail source is ever named here. Do not reuse inbox handling on this field."),sourceRef:n().describe("Opaque. Never a sender, never anything from a message.")}).describe("One agent seat became active in one subscription period. At most one per seat per period; a redelivery is a no-op. Carries no message and no presence.");const ms=p(["off","byo","managed"]).describe("How remote access is arranged: off, the caller`s own tunnel, or a managed one."),xe=p(["closed","opening","open","draining","blocked"]).describe("Where the tunnel is in its lifecycle.");a({instanceId:r.optional().describe("The instance this status is about, echoed from the request so an answer can be matched to its instance. Absent from an older service."),mode:ms,state:xe,address:n().describe("The address this instance is reachable at."),url:n().url().optional().describe("The full URL, when the tunnel is open."),openedAt:u.optional(),idleClosesAt:u.optional().describe("When an idle tunnel will close itself."),idleWindowSeconds:x().int().nonnegative().optional().describe("How long the tunnel may sit idle before it closes itself. The window the instance is told to honour, in seconds."),drainDeadlineSeconds:x().int().nonnegative().optional().describe("How long the instance has to finish work already in flight once it is asked to close, in seconds."),lastActivityAt:u.optional(),alwaysAvailable:E().describe("Computed by the server. The client renders the promise and never derives it from a subscription."),reason:n().optional().describe("Why the tunnel is in this state, when the state needs explaining.")}).describe("The current remote-access state of one instance.");a({instanceId:r,wakeId:r.describe("A client-chosen idempotency key. The same key repeats the answer, not the effect.")}).describe("Open the tunnel for an instance. Idempotent on the instance and wake identifier together.");a({wakeId:r,state:xe,pollAfterMs:x().int().nonnegative().describe("How long to wait before reading the status again.")}).describe("The accepted open request, and how long to wait before checking the status.");a({state:xe}).describe("The state the tunnel is in after being asked to close.");a({token:yt,expiresAt:u,singleUse:E()}).describe("A token that can open a closed tunnel. The value is returned exactly once.");a({address:n(),host:n(),kind:l("canonical")}).describe("The canonical address an instance is reachable at.");const ps=p(["pending_verification","verifying","active","failed"]).describe("Where a custom hostname is in its setup."),gs=p(["none","pending","issued","renewing","failed"]).describe("Where a custom hostname`s certificate is.");a({hostname:n(),status:ps,verification:a({recordName:n().describe("The DNS record name to create."),recordValue:n().describe("The DNS record value to set.")}).describe("The DNS record that proves the caller controls the hostname."),certificate:a({state:gs,renewsAt:u.nullable()}).describe("The certificate this hostname is served with.")}).describe("A custom hostname for an instance, its verification record and its certificate.");a({instanceId:r}).describe("Designate which instance an organization keeps always available.");a({instanceId:r,effectiveAt:u,cooldownUntil:u.describe("Until when the designation cannot be changed again.")}).describe("The accepted designation, and when it may next be changed.");a({instanceId:r.nullable().describe("The designated instance, or null when the organization has none."),effectiveAt:u.nullable().describe("When the current designation took effect, or null when there is none."),cooldownUntil:u.nullable().describe("Until when the designation cannot be changed, or null when it can be changed now.")}).describe("Which instance an organization keeps always available, if any, and when that may next change.");const bs=p(["hours","GB","count"]).describe("What a remote-usage figure is counted in: hours, gigabytes, or a plain count."),fs=p(["clear","alert","reached"]).describe("Where an account stands against one limit: well within it, past the warning point, or at it."),ys=a({ceiling:n().describe("Which limit, as a server-supplied mechanism name. Render the rest of the entry; a name this client does not know is still a valid entry."),limit:x().nonnegative().describe("The published limit, in `unit`."),used:x().nonnegative().describe("What the account has used this period, in `unit`."),unit:L(bs).describe("What `limit` and `used` are counted in. A unit this release does not know reads as unrecognised."),fraction:x().nonnegative().describe("`used / limit`, as the server computed it. May exceed 1. Never recompute it."),alertFraction:x().nonnegative().describe("The fraction at which the published copy says a warning fires."),state:L(fs).describe("Where the account stands against this limit. A state this release does not know reads as unrecognised."),enforceable:E().describe("False when `used` is the period`s high-water mark rather than a figure for now. Such a limit frees as soon as the usage ends, so do not present the peak as a present count."),provenance:a({source:n().describe("How the limit was arrived at, as a server-supplied string. Render it."),measuredAt:u.nullable().describe("When it was measured, or null when nothing measured it.")}).describe("Where this limit came from.")}).describe("Where one account stands against one published remote-access limit, this period.");a({orgId:r.describe("The account the figures were counted against, in the same space as `/v1/orgs`."),period:n().regex(/^\d{4}-(0[1-9]|1[0-2])$/,"must be YYYY-MM").describe("The service`s own period, a calendar month in UTC, as YYYY-MM."),ceilings:A(ys)}).describe("Where the caller`s account stands against every published remote-access limit this period. An account that used nothing gets zeroes, never a 404.");a({instanceId:r,idempotencyKey:n().min(1).describe("A client-chosen key that stops a retry from creating a second credential. A key already used is refused with `conflict`, never answered with the value again. After a lost answer, issue again with a fresh key; a rotate command supplies its own key.")}).describe("An instance asking for a tunnel credential. Instance API key only. A repeated key is refused, not replayed; recover a lost answer with a fresh key.");const ws=["authorization","proxy-authorization","cookie","set-cookie","host","connection","upgrade","content-length","transfer-encoding","te","forwarded"],At=a({header:n().max(64).regex(/^[a-z0-9]+(-[a-z0-9]+)*$/,"must be a lower-case header name: letters, digits and single hyphens").refine(e=>!ws.includes(e)&&!e.startsWith("x-forwarded-"),"must not be a header HTTP, a proxy or a session already uses").describe("The request header that carries the proof, in lower case. Never a header HTTP, a proxy or a session already uses. Compare header names without regard to case."),secret:n().min(32).max(512).regex(/^[\x21-\x7e]+$/,"must be printable ASCII with no spaces").meta({description:"The value the header carries: opaque, high-entropy, at least 32 characters. Returned once, with its credential. Never log it or return it to a browser.",[St]:!0})}).describe("The header the managed edge adds to every request it forwards, and the secret it carries. Every request over managed access must carry exactly one matching copy; refuse it otherwise.");a({issuanceId:r,credentialId:r,value:yt,fingerprint:n().describe("A stable digest of the credential, safe to log and compare."),acl:A(n()).describe("What this credential may do, as opaque server-supplied strings."),hosts:A(n().min(1)).min(1).optional().describe("Every hostname this credential lets the instance serve: its own address first, then any custom hostname its organization added. The instance serves each one, and stops serving any hostname it served before that is not in the list. Compare hostnames without regard to case. Read this rather than `acl`, which stays opaque. When the field is absent, keep serving as before: absent is not an empty list, and a present list is never empty."),edgeProof:At.optional().describe("The header and secret every request forwarded by the managed edge carries for this credential. Refuse a managed request without exactly one matching copy. Absent only from an older service; do not open managed access without it.")}).describe("A freshly issued tunnel credential. The `value` and the edge proof secret are returned exactly once.");a({credentialId:r}).describe("An instance confirming it has stored an issued credential.");a({credentialId:r,confirmedAt:u}).describe("When the server recorded the instance`s confirmation.");a({revokedAt:u.describe("When the instance`s credentials were marked revoked.")}).describe("When an instance`s own tunnel credentials were revoked. Answered even when there was nothing to revoke.");O("kind",[a({kind:l("open"),id:r,leaseToken:n().min(1),wakeId:r,leaseId:r.optional().describe("The lease the instance echoes when it reconnects. Opaque: the instance stores it and sends it back, and reads nothing from it."),address:n().optional().describe("The address this instance is reachable at once the tunnel is open."),host:n().optional().describe("The host part of that address."),idleWindowSeconds:x().int().nonnegative().optional().describe("How long the tunnel may sit idle before it closes itself, in seconds. The same window `RemoteStatusSchema` reports."),drainDeadlineSeconds:x().int().nonnegative().optional().describe("How long the instance has to finish work already in flight once it is asked to close, in seconds.")}).describe("Open the tunnel."),a({kind:l("close"),id:r,leaseToken:n().min(1),reason:n()}).describe("Close the tunnel."),a({kind:l("rotate"),id:r,leaseToken:n().min(1),credentialId:r.describe("An issue key, not a credential id. Present it as the `idempotencyKey` of `POST /v1/remote/credentials/issue` to receive the replacement, then confirm the replacement with the `credentialId` that call returns. If that call is refused, keep using the current credential; the service may offer another replacement later.")}).describe("Replace the tunnel credential. Nothing is created until the instance asks for it, with the id this command carries."),a({kind:l("revoke"),id:r,leaseToken:n().min(1),credentialId:r}).describe("Stop using the tunnel credential and forget it."),a({kind:l("inbox_pending"),id:r,leaseToken:n().min(1),seatId:r}).describe("There is mail waiting for a seat."),a({kind:l("viewer_open"),id:r,leaseToken:n().min(1),expiresAt:u.describe("Dial before this. A command read after it is acknowledged `ignored`.")}).describe("Somebody opened a chat of this computer`s on its hub: dial the hub address and key this computer pinned. Carries no address, on purpose."),a({kind:l("hub_assignment_changed"),id:r,leaseToken:n().min(1)}).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."),a({kind:l("agent_computer_assignment_changed"),id:r,leaseToken:n().min(1)}).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."),a({kind:l("keepalive"),id:r,reconnectAfterMs:x().int().nonnegative().optional().describe("How long to wait before reconnecting if the stream drops. A convenience rather than a gap: the server-sent-events `retry:` field already carries the same number, and an instance that honours it needs nothing here.")}).describe("Nothing to do. Sent so a silent stream can be told from a dead one.")]).describe("One event on the `GET /v1/remote/commands` stream. Server-sent events; instance API key only.");const Ss=ot([p(["applied","ignored","failed"]),fn(["refused:",cs])]).describe("What the instance did with a command: applied, ignored, failed, or refused with a slug bounded by the handle grammar.");a({items:A(a({id:r,leaseToken:n().min(1),outcome:Ss.describe("What the instance did with the command.")})).min(1).max(100)}).describe("Report what an instance did with the commands it leased.");a({acknowledged:x().int().nonnegative()}).describe("How many command leases the server settled.");const Ze=n().max(30).regex(/^(0|[1-9][0-9]*)$/,"must be a non-negative base-10 integer with no leading zeros").describe("A count of bytes, as a base-10 integer string. Parse it with BigInt, never Number.");n().min(1).max(200).describe("The Idempotency-Key header of a POST /v1/remote/events batch: an opaque string the instance chooses, one per batch, at most 200 characters. Reuse it to retry the same batch. A key whose batch was already accepted from the same instance is answered { accepted: 0 } and counts nothing again; a batch that was refused or failed was not accepted, so its retry is applied as new.");a({instanceId:r,activity:A(a({at:u,requests:x().int().nonnegative()})).describe("Windowed request counters."),closeReports:A(a({at:u.describe("When the tunnel closed."),reason:n(),wakeId:r.nullable(),openedAt:u.optional().describe("When the tunnel this report closes was opened, so the report names a span. Absent from an older instance."),requests:x().int().nonnegative().optional().describe("How many requests crossed the tunnel between `openedAt` and `at`. Scoped to this span, unlike the running `activity[].requests`."),bytesIn:Ze.optional().describe("Bytes received through the tunnel in this span."),bytesOut:Ze.optional().describe("Bytes sent through the tunnel in this span.")})).describe("Why and when the tunnel closed itself, and what crossed it while it was open.")}).describe("Batched activity, close reports and window counters from one instance. The request names the batch in its Idempotency-Key header.");a({accepted:x().int().nonnegative()}).describe("How many of the reported events the server accepted. Zero for a batch whose Idempotency-Key was already accepted from the same instance, and for an empty batch, so zero alone does not say which.");p(["pooled","assigned"]).describe("Where a hub is in being given to a person: nobody`s yet, or one person`s.");const Ae=ie.refine(e=>{try{return new URL(e).origin===e}catch{return!1}},{message:"must be an https origin with no path, query or fragment"}).describe("An https origin and nothing more: no path, query, fragment or user part."),vs=a({clientId:r.describe("The client id this hub presents to the issuer."),redirectUri:ie.describe("The one redirect address registered for this client, matched exactly. It is on the hub`s own address.")}).describe("The sign-in client registered for one hub. Public: no secret, PKCE, one exact redirect address.");O("state",[a({state:l("pooled"),pollAfterSeconds:x().int().positive().optional().describe("How long to wait before reading again when no command arrives. Absent leaves the wait to the hub.")}).describe("Nobody owns this hub yet. Refuse every sign-in."),a({state:l("assigned"),assignmentId:r.describe("This assignment. Echo it to confirm; a different one means the address, proof or sign-in client changed, never the owner."),assignedAt:u,ownerAccountId:r.describe("The owner`s account id at `issuer`: the subject a sign-in must carry. Never an email."),issuer:ie.describe("The one issuer whose sign-ins this hub accepts, compared exactly."),address:Ae.describe("The hub`s one origin, with no path. Answer to this exact host and nothing else."),frontDoorProof:At.describe("The header the front door adds to every request it passes on, and the secret it carries. Same rules as a remote edge proof."),signIn:vs.optional().describe("The sign-in client registered for this hub. Absent until the service registers one.")}).describe("This hub is one person`s, and never anybody else`s: an assigned hub is never reassigned. Serve only them, at this address, behind this proof.")]).describe("Who a hub belongs to, and the keys it serves with. Hub instance API key only; never cached by a proxy.");a({assignmentId:r.describe("The assignment the hub now serves with."),signingPublicKey:n().regex(/^[A-Za-z0-9_-]{43}$/,"must be base64url of exactly 32 bytes, unpadded").optional().describe("The public half of the hub`s own Ed25519 signing key: base64url of the raw 32 bytes, 43 characters, no padding. The hub makes the pair before its first confirmation and never replaces it, so it sends the same key every time; a Mac pins it at pairing and checks the hub`s relay handshakes with it. Optional so an older hub still confirms.")}).describe("Tell the service the hub now serves with this assignment`s owner, address and proof. A stale id is `conflict`.");a({confirmedAt:u}).describe("When the service recorded that the hub serves with this assignment.");const xs=p(["starting","running","stopping","stopped","failed"]).describe("Where a cloud agent computer is in its life."),As=p(["requested","idle","out_of_credits","held","suspended"]).describe("Why a cloud agent computer is stopped, in terms the app can show."),ke=a({id:r.describe("This computer. Stable across starts and stops."),instanceId:r.nullable().describe("The instance id the computer reports under once it has first booted, or null before then."),displayName:n().describe("The name to show for this computer."),state:L(xs).describe("Where the computer is now. A state this release does not know reads as unrecognised."),stopReason:L(As).nullable().describe("Why it is stopped, or null when it is not."),reasonText:n().optional().describe("The service`s own words about why it is stopped, to show as given. Absent when there is nothing to add."),createdAt:u,stateChangedAt:u.describe("When `state` last changed.")}).describe("One cloud agent computer the caller`s account owns.");a({items:A(ke)}).describe("Every cloud agent computer the caller`s account owns. An account with none gets []");a({idempotencyKey:n().min(1).max(200).describe("A key you choose, one per computer you mean to make."),displayName:n().min(1).max(100).optional()}).describe("Make a cloud agent computer for the caller`s account.");a({computer:ke,replayed:E().describe("True when an earlier request with this key made it.")}).describe("The computer a create made, or the one an earlier create with the same key made.");a({computer:ke}).describe("The computer as it is after a start or stop was accepted.");const ks=p(["turn","viewer","beat"]).describe("Why a hub starts a computer: a turn, a viewer, or a beat. For metering only.");a({reason:L(ks).optional().describe("Why the computer is started, for metering. A reason this release does not know reads as unrecognised. Absent says nothing.")}).describe("Start a cloud agent computer, optionally saying why. The body may be left out.");a({commandId:r.describe("The command waiting for the computer: the `id` it will see on its stream."),queuedAt:u}).describe("The service queued a viewer-open command for the computer.");a({deletedAt:u}).describe("When the computer, its disk and its snapshots were deleted. Cannot be undone.");const kt=a({code:n().regex(/^[0-9A-HJKMNP-TV-Z]{16}$/,"must be 16 characters of uppercase Crockford base32, with no spaces or dashes").meta({description:"The code itself: 16 characters of uppercase Crockford base32, 80 bits. Single use. Never log it or return it to a browser.",[St]:!0}),expiresAt:u.describe("When the code stops working: at most ten minutes after the hub minted it.")}).describe("A one-time code an agent computer links to its hub with. Single use, ten minutes at most, bound to one computer.");kt.describe("The link code a hub minted for an agent computer on its account. Hub instance key only; answered 204.");a({computerId:r.describe("This computer, as the hub and `GET /v1/computers` name it."),hubOrigin:Ae.describe("Where this computer reaches its hub: an https origin with no path, through the hub`s front door."),ownerAccountId:r.describe("The account id, at `issuer`, of the person the hub belongs to. Never an email, and never changes."),issuer:ie.describe("The issuer `ownerAccountId` belongs to, compared exactly."),linkCode:kt.nullable().describe("The one-time code to redeem at the hub, or null when none is waiting. Handed out once."),pollAfterSeconds:x().int().positive().optional().describe("How long to wait before reading again when no command arrives. Absent leaves the wait to the computer.")}).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.");a({busy:E().describe("True while the computer is in the middle of work. Holds for ten minutes unless sent again.")}).describe("Whether an agent computer is in the middle of work. That computer`s instance key only; answered 204.");a({at:u.nullable().describe("When the hub next has a schedule due, or null when nothing is. More than 31 days ahead is ignored.")}).describe("When a hub next needs waking for a due schedule. Hub instance key only; answered 204.");const Is=262144,It=Math.ceil(Is*4/3),Tt=16,W=e=>n().min(1).max(e).regex(/^[A-Za-z0-9_-]+$/),M=n().min(1).max(64).regex(/^[\w.:-]+$/).describe("The id of one challenge the computer issued. Letters, digits and _ . : - only."),Et=M,Ts=/^[^\u0000-\u001f\u007f]*$/,Es=/[\p{Cf}\u2028\u2029]/u,ee=e=>n().min(1).max(e).regex(Ts).refine(t=>t.trim()===t,"no leading or trailing whitespace").refine(t=>!Es.test(t),"no invisible characters"),Cs=n().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),_s=n().min(1).max(256).regex(/^[\w.:-]+$/),Rs=n().regex(/^[0-9a-f]{64}$/),Ct=n().length(43).regex(/^[A-Za-z0-9_-]+$/),ne=rt({precision:3}),Ie=W(1400),_t=n().max(253).regex(/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/),be=Ae.max(256),Ns=n().max(2048).regex(/^http:\/\/(127\.0\.0\.1|\[::1\]):[1-9][0-9]{0,4}\//,"must be a loopback http page").refine(e=>{try{const t=new URL(e);return t.protocol==="http:"&&(t.hostname==="127.0.0.1"||t.hostname==="[::1]")&&t.port!==""&&t.username===""&&t.password===""&&t.hash===""&&t.href===e}catch{return!1}},"must be a loopback http page with an explicit port, written canonically").describe("A page on the computer itself: plain http to its loopback address, explicit port.");function Rt(e){return new URL(e.origin).hostname===e.rpId}function Nt(e){return Date.parse(e.expiresAt)>Date.parse(e.issuedAt)}const Ps="dorkos.relay.approval.v1",Os="dorkos.relay.passkey-enrol.v1",$s=m({t:l(Ps),challengeId:M,computerId:Et,computerName:ee(64),hubOrigin:be,sessionId:Cs,toolCallId:_s,decision:p(["approve","deny"]),toolName:ee(256),displayName:ee(256).optional(),input:yn(),inputSha256:Rs,nonce:Ct,issuedAt:ne,expiresAt:ne,rpId:_t,origin:be,credentialIds:A(Ie).min(1).max(Tt)}).refine(Rt,"the origin`s host must be the relying party id").refine(Nt,"a statement must expire after it was issued").describe("What the owner signs to approve or deny one tool call from the web."),Ws=m({t:l(Os),challengeId:M,computerId:Et,computerName:ee(64),accountId:M,userHandle:W(128),nonce:Ct,issuedAt:ne,expiresAt:ne,rpId:_t,origin:be,returnTo:Ns,excludeCredentialIds:A(Ie).max(Tt)}).refine(Rt,"the origin`s host must be the relying party id").refine(Nt,"a statement must expire after it was issued").describe("What the owner signs, at the computer, to add an approvals passkey.");O("t",[$s,Ws]).describe("An approval statement or a passkey enrol statement, told apart by `t`.");const Pt=m({challengeId:M,credentialId:Ie,clientDataJSON:W(4096),authenticatorData:W(1024),signature:W(512),userHandle:W(128).optional()}).describe("A WebAuthn assertion over a challenge the computer issued, binary fields base64url.");O("type",[m({type:l("dorkos.stepup.ready")}),m({type:l("dorkos.stepup.request"),v:l(1),statement:W(It)}),m({type:l("dorkos.stepup.result"),challengeId:M,assertion:Pt}).refine(e=>e.assertion.challengeId===e.challengeId,"the assertion must be for the same challenge"),m({type:l("dorkos.stepup.cancel"),challengeId:M,reason:p(["dismissed","expired","not-allowed"])})]).describe("A message between the hub`s page and the approve page, told apart by `type`.");const Ms=/^-?(0|[1-9][0-9]*)$/,js=/^[1-9][0-9]*$/,qs=/^[A-Z]{3}$/,re=6,Ls=BigInt(10)**BigInt(re),I=BigInt(0),oe=BigInt(1),Ds=BigInt(2),ce=BigInt(10);function Ot(e,t){const i=e/t;return e%t!==I&&e<I?i-oe:i}function Te(e,t){const i=e<I?-e:e;let s=i/t;return i%t*Ds>=t&&(s+=oe),e<I?-s:s}function H(e){return typeof e!="string"||!Ms.test(e)?null:BigInt(e)}function de(e){if(typeof e!="object"||e===null)return null;const{microPerCredit:t}=e;return typeof t!="string"||!js.test(t)||Ee(e)===null?null:BigInt(t)}const Xe=new Map;function Ks(e){const t=Xe.get(e);if(t!==void 0)return t;let i=null;try{const s=new Intl.NumberFormat("en-US",{style:"currency",currency:e}),o=s.formatToParts(0),c=new Set(["integer","group","decimal","fraction"]),g=o.findIndex(y=>c.has(y.type));let b=-1;o.forEach((y,k)=>{c.has(y.type)&&(b=k)});const h=s.resolvedOptions().maximumFractionDigits??0;if(g>=0&&h>=0&&h<=re){const y=k=>k.filter(f=>f.type!=="minusSign"&&f.type!=="plusSign").map(f=>f.value).join("");i={prefix:y(o.slice(0,g)),suffix:y(o.slice(b+1)),minorDigits:h}}}catch{i=null}return Xe.set(e,i),i}function Ee(e){if(typeof e!="object"||e===null)return null;const{currency:t}=e;return typeof t!="string"||!qs.test(t)?null:Ks(t)}function Y(e){const t=e.toString();let i="";for(let s=0;s<t.length;s+=1)s>0&&(t.length-s)%3===0&&(i+=","),i+=t[s];return i}function Ce(e,t,i){const s=ce**BigInt(t),o=e/s;let c=t>0?(e%s).toString().padStart(t,"0"):"";for(;c.length>i&&c.endsWith("0");)c=c.slice(0,-1);return c.length>0?`${Y(o)}.${c}`:Y(o)}function _e(e){return e<I?`-${Y(-e)}`:Y(e)}function Qe(e,t,i){const s=e<I?-e:e,o=i?Y(s/ce**BigInt(t.minorDigits)):Ce(s,t.minorDigits,t.minorDigits);return`${e<I?"-":""}${t.prefix}${o}${t.suffix}`}function zs(e,t,i){const s=H(e),o=Ee(t);if(s===null||o===null)return null;const c=ce**BigInt(re-o.minorDigits),g=i(s,c);if(g===I&&s!==I){const b=Qe(oe,o,o.minorDigits===0);return s<I?`-<${b}`:`<${b}`}return Qe(g,o,s%Ls===I)}function Hs(e,t){const i=H(e),s=de(t);return i===null||s===null?null:_e(Ot(i,s))}function Ya(e,t){const i=H(e),s=de(t);if(i===null||s===null)return null;if(i===I)return"0";const o=Te(i,s);return o===I?i<I?"-<1":"<1":_e(o)}function Us(e,t){const i=H(e),s=de(t);if(i===null||s===null)return null;let o=0,c=i<I?-i:i,g=oe;for(;c*g%s!==I;)if(o+=1,g*=ce,o>s.toString().length*4)return null;c=c*g/s;const b=Ce(c,o,0);return i<I?`-${b}`:b}function Je(e,t){return zs(e,t,Te)}function Bs(e,t){const i=H(e),s=Ee(t);if(i===null||s===null)return null;const o=i<I?-i:i;return`${i<I?"-":""}${s.prefix}${Ce(o,re,s.minorDigits)}${s.suffix}`}function Ga(e,t,i){const s=H(e),o=de(t);if(s===null||o===null)return null;const c=h=>h==="1"||h==="-1"?`${h} credit`:`${h} credits`;if(i==="rate"){const h=Us(e,t),y=Bs(e,t);return h===null||y===null?null:`${c(h)} (${y})`}let g;if(i==="position")g=Ot(s,o);else if(g=s===I?I:Te(s,o),g===I&&s!==I){const h=Je(o.toString(),t);if(h===null)return null;const y=h.startsWith("<")?h:`<${h}`;return s<I?`-<1 credit (-${y})`:`<1 credit (${y})`}const b=Je((g*o).toString(),t);return b===null?null:`${c(_e(g))} (${b})`}function Va(e){return Hs("0",e)!==null}function Za(e){return e===null?null:`${e} ${e==="1"||e==="-1"||e==="<1"||e==="-<1"?"credit":"credits"}`}const et=1n<<16n;function Xa(e,t){if(!/^\d+$/.test(e)||!/^\d+$/.test(t))return null;const i=BigInt(t);if(i===0n)return null;const s=BigInt(e);return s>=i?1:s<=0n?0:Number(s*et/i)/Number(et)}const $t=["keep-awake"],Fs=5*6e4;function Qa(){const e=j(),{data:t}=K({queryKey:[...$t],queryFn:()=>e.getKeepAwake(),staleTime:Fs});return t}function Ys(e){if(typeof e!="object"||e===null)return!1;const t=e,i=t.working;return typeof t.enabled=="boolean"&&typeof t.supported=="boolean"&&typeof t.asserted=="boolean"&&typeof i=="object"&&i!==null&&typeof i.chats=="number"&&typeof i.rooms=="number"&&typeof i.tasks=="number"}function Ja(){const e=we();ct("keep_awake_status",t=>{Ys(t)&&e.setQueryData([...$t],t)})}const ei={tab:"tools",section:"sleep"},Gs=[["chats","chat","chats"],["rooms","room","rooms"],["tasks","task","tasks"]];function Vs(e){const t=Gs.filter(([i])=>e[i]>0).map(([i,s,o])=>`${e[i]} ${e[i]===1?s:o}`);return t.length===0?null:t.length===1?`${t[0]} running`:t.join(", ")}function ti(e){return(e==null?void 0:e.asserted)===!0&&Vs(e.working)!==null}const ni={container:"Not available in a container.","tool-missing":"Not available: this computer has no sleep control tool.",denied:"This computer refused to stay awake. Tries again while agents work.",platform:"Not available on this operating system."};function si(e){return e.supported||e.reason==="denied"}const ai="Closing the lid usually still sleeps. The screen still locks. Uses more battery.";function Zs(e,t){return t===0?R[e]:`${R[e]}, ${t} ${t===1?"change":"changes"}`}function Xs(e){const t=new Map,i=(s,o)=>{const c=t.get(s)??{agentName:o,count:0};c.count+=1,t.set(s,c)};for(const s of e.exceptions)i(s.agentId,s.agentName);for(const s of e.filesAndCommands.exceptions)i(s.agentId,s.agentName);return[...t].map(([s,{agentName:o,count:c}])=>({agentId:s,agentName:o,detail:`${c} ${c===1?"setting":"settings"} of its own`}))}function Qs(e){const t=dt;return t.includes(e)?t:[...t,e]}function ii({surface:e}){const t=Pn(),i=On({kind:"default"}),[s,o]=C.useState(null),c=C.useMemo(()=>t.data?Xs(t.data):[],[t.data]);if(t.isError)return d.jsx("p",{className:"text-muted-foreground text-sm",children:"Couldn’t read the permissions."});if(!t.data)return d.jsxs("div",{className:"flex flex-col gap-3","data-testid":"preset-picker","aria-busy":"true",children:[d.jsx(Ye,{"aria-label":"Preset",className:"w-full",value:"",onValueChange:()=>{},children:dt.map(w=>d.jsx(Ge,{value:w,"aria-label":R[w],children:d.jsx("span",{className:"truncate",children:R[w]})},w))}),d.jsx(wn,{className:"h-4 w-2/3"})]});const g=t.data,b=g.preset??"trusted",h=$n(g,{kind:"preset"}),y=`Changing it ${qn(h)}`,k=(w,_)=>i.mutate({kind:"preset",preset:w,surface:e,..._&&_.length>0?{applyToAgents:_}:{}},{onError:Ln}),f=w=>{w===g.preset&&g.changeCount===0||(c.length>0?o(w):k(w))};return d.jsxs("div",{className:"flex flex-col gap-3","data-testid":"preset-picker",children:[d.jsx(Ye,{"aria-label":"Preset",className:"w-full",value:b,onValueChange:w=>w&&f(w),disabled:i.isPending,children:Qs(b).map(w=>d.jsx(Ge,{value:w,"aria-label":R[w],children:d.jsx("span",{className:"truncate",children:R[w]})},w))}),d.jsxs("div",{className:"flex flex-col gap-1 @lg:flex-row @lg:items-center @lg:justify-between",children:[d.jsxs("div",{className:"space-y-0.5",children:[d.jsxs("p",{className:"text-sm","data-testid":"permissions-preset",children:[d.jsx("span",{className:"font-medium",children:Zs(b,g.changeCount)}),d.jsxs("span",{className:"text-muted-foreground",children:[" · ",Wn[b]]})]}),d.jsxs("p",{className:"text-muted-foreground text-xs","data-testid":"permissions-preset-preview",children:[y," ·"," ",d.jsx(Mn,{question:`Why is the preset set to ${R[b]}?`,sentence:`${R[b]} is the preset every agent starts from.`,...g.presetLastChange?{lastChange:g.presetLastChange}:{}})]})]}),g.changeCount>0?d.jsxs(ge,{variant:"ghost",size:"sm",className:"self-start",disabled:i.isPending,onClick:()=>f(b),children:["Reset to ",R[b]]}):null]}),d.jsx(Sn,{descriptor:vn.find(w=>w.stop===g.filesAndCommands.stop)}),d.jsx(jn,{open:s!==null,onCancel:()=>o(null),subject:"Preset",title:s?`Switch everyone to ${R[s]}?`:void 0,next:s?R[s]:"",agents:c,affectedCount:h,onKeep:()=>{s&&k(s),o(null)},onUpdate:w=>{s&&k(s,w),o(null)},pending:i.isPending})]})}const fe=["session-relay","status"],pe=["session-relay","presence"],Wt=["session-relay","devices"],ri=["session-relay","passkeys"],Mt="sessionRelay.enabled";function Js(e){const t=e instanceof Error?e.message:"";return t&&!/^HTTP \d+$/.test(t)?t:"Couldn’t change that. Try again."}function oi(){const e=j(),t=we(),{enabled:i}=lt(Mt),s=pt(),o=Dn(),c=mt(),g=i&&!s,[b,h]=C.useState(null),y=K({queryKey:fe,queryFn:()=>e.getSessionRelayStatus(),enabled:g,retry:!1,staleTime:1e4}),k=ut({mutationFn:f=>f(),onMutate:()=>h(null),onSuccess:f=>t.setQueryData(fe,f),onError:f=>h(Js(f))});return{available:g&&y.isSuccess,atThisComputer:o,canChange:c,status:y.data,error:b,busy:k.isPending,link:f=>k.mutate(()=>e.linkSessionRelay(f)),setLevel:(f,w)=>k.mutate(()=>e.setSessionRelayLevel(f,w)),pause:()=>k.mutate(()=>e.pauseSessionRelay()),resume:f=>k.mutate(()=>e.resumeSessionRelay(f)),unlink:()=>k.mutate(()=>e.unlinkSessionRelay())}}const ea=1048576,ta=2e5,na=n().min(1).max(ta),sa=200,ye=x().int().positive(),jt=m({min:ye,max:ye}).refine(e=>e.min<=e.max,{message:"min must not exceed max"}),aa=A(n().min(1).max(64)).max(64),D=n().min(1).max(64).regex(/^[\w.:-]+$/),se=D,q=n().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),qt=n().regex(/^[0-9A-HJKMNP-TV-Z]{26}$/),te=n().min(1).max(256).regex(/^[\w.:-]+$/),Lt=n().max(256).regex(/^[0-9a-f-]+-\d+-g\d+-\d+$/),ia=/^[^\u0000-\u001f\u007f]*$/,ra=/[\p{Cf}\u2028\u2029]/u,Dt=n().min(1).max(64).regex(ia).refine(e=>e.trim()===e,"no leading or trailing whitespace").refine(e=>!ra.test(e),"no invisible characters"),oa=m({id:n().min(8).max(64).regex(/^[A-Za-z0-9_-]+$/),label:Dt}),ca=e=>n().min(1).max(e).regex(/^[A-Za-z0-9_-]+$/),da=m({op:l("chats.list"),agentId:qt}),la=m({op:l("session.stream"),streamId:se,sessionId:q,resume:Lt.optional()}),ua=m({op:l("session.send"),sessionId:q,content:na,clientMessageId:D.optional(),disposition:xn.optional(),newChat:m({agentId:qt}).optional()}),ha=m({op:l("session.interrupt"),sessionId:q}),ma=p(["approve","deny"]),pa=m({op:l("interaction.challenge"),sessionId:q,toolCallId:te,decision:ma}),tt=Pt,ga=O("kind",[m({kind:l("approve"),toolCallId:te,proof:tt}),m({kind:l("deny"),toolCallId:te,reason:n().max(An).optional(),proof:tt}),m({kind:l("answer"),toolCallId:te,answers:ht(n().regex(/^\d{1,3}$/),n().max(1e4))})]),ba=m({op:l("interaction.respond"),sessionId:q,answer:ga}),fa=O("op",[da,la,ua,ha,pa,ba]),ya=m({sessionId:q,title:n().max(500),updatedAt:n().datetime(),lastMessagePreview:n().max(500).optional()});m({chats:A(ya).max(sa)}),m({sessionId:q}),m({receipt:kn,cancelledQueued:A(In)}),m({challengeId:D,statement:ca(It),expiresAt:n().datetime()}),m({ok:E()});const nt=m({status:x().int().min(400).max(599),code:n().min(1).max(64),message:n().max(1e3),feature:n().min(1).max(64).optional()}),le=e=>n().length(Math.ceil(e*4/3)).regex(/^[A-Za-z0-9_-]+$/),Kt=le(32),G=le(64),wa=le(32),zt=le(32);m({type:l("hello"),computerId:n().min(1).max(64).regex(/^[\w.:-]+$/),versions:jt,features:aa,appVersion:n().min(1).max(64),nonce:wa,ephemeralKey:Kt});O("type",[m({type:l("welcome"),version:ye,ephemeralKey:Kt,signature:G}),m({type:l("refuse"),versions:jt,signature:G})]);m({type:l("sealed"),seq:x().int().min(0).max(Number.MAX_SAFE_INTEGER),box:n().min(1).max(ea).regex(/^[A-Za-z0-9_-]+$/)});const Ht=m({type:l("heartbeat")});O("type",[m({type:l("request"),id:D,request:fa,device:oa.optional()}),m({type:l("stream.close"),streamId:se}),m({type:l("viewers"),count:x().int().min(0).max(1e4)}),Ht]);const Sa=m({event:n().min(1).max(100),data:ae().optional(),id:Lt.optional()});O("type",[m({type:l("result"),id:D,ok:l(!0),body:ae()}),m({type:l("error"),id:D,ok:l(!1),error:nt}),m({type:l("stream.frame"),streamId:se,frame:Sa}),m({type:l("stream.end"),streamId:se,error:nt.optional()}),Ht]);m({type:l("finish"),signature:G});const va=n().min(1).max(64).regex(/^[\w.:-]+$/),xa=n().length(43).regex(/^[A-Za-z0-9_-]+$/),st=/^[^\u0000-\u001f\u007f]*$/,Ut=Dt;m({v:l(1),code:n().min(1).max(64),computerId:va,computerKey:zt,secretHash:xa,computerName:Ut,signature:G});m({v:l(1),hubKey:zt,ownerAccountId:n().min(1).max(128).regex(st).optional(),issuer:n().min(1).max(512).startsWith("https://").regex(st).optional(),signature:G});const Aa=a({computerId:n(),computerName:n().nullable(),linkedAt:n().nullable(),connected:E(),features:A(n())});a({computers:A(Aa)});a({linkCode:n(),expiresAt:n()});const Bt=p(["chat","full"]);a({linked:E(),hubOrigin:n().nullable(),computerName:n().nullable(),level:Bt,paused:E(),connected:E(),pinnedAt:n().nullable(),suggestedName:n()});const V=n().max(1024);a({linkCode:n().min(1).max(512),computerName:Ut.optional(),password:V.optional()});a({level:Bt,password:V.optional()});a({password:V.optional()});p(["bad-code","hub-unreachable","hub-refused","signature-failed","different-account","not-public","already-linked","account-unreadable"]);const Ft=a({label:n(),firstSeenAt:n(),lastSeenAt:n()}),ka=a({active:E(),since:n().optional(),devices:A(Ft)});a({devices:A(Ft)});const Ia=n().trim().min(1).max(64).regex(/^[^\u0000-\u001f\u007f]*$/);a({password:V.optional(),label:Ia,rpId:n().min(1).max(253).optional(),origin:n().min(1).max(256).optional()});a({statement:n(),challenge:n(),approveUrl:n(),expiresAt:n()});const F=e=>n().min(1).max(e).regex(/^[A-Za-z0-9_-]+$/),Ta=a({id:F(1400),rawId:F(1400),type:l("public-key"),response:a({clientDataJSON:F(4096),attestationObject:F(16384),transports:A(n().max(32)).max(8).optional()}),clientExtensionResults:ht(n(),ae()).default({}),authenticatorAttachment:p(["platform","cross-platform"]).optional()}),Ea=8192;a({statement:F(Ea),attestation:Ta});const Ca=a({credentialId:n(),label:n(),addedAt:n(),alg:x().int()});a({damaged:E().optional(),rpId:n().nullable(),origin:n().nullable(),keys:A(Ca)});a({password:V.optional()});const Yt=5*6e4;function Gt(){const{enabled:e}=lt(Mt),t=pt();return e&&!t}function ci(){const e=j(),t=we(),i=Gt(),s=mt(),[o,c]=C.useState(null),g=K({queryKey:pe,queryFn:()=>e.getSessionRelayPresence(),enabled:i,retry:!1,staleTime:Yt});ct("session_relay_presence",h=>{const y=ka.safeParse(h);y.success&&(t.setQueryData(pe,y.data),t.invalidateQueries({queryKey:Wt}))});const b=ut({mutationFn:()=>e.endSessionRelayPresence(),onMutate:()=>c(null),onSuccess:h=>{t.setQueryData(pe,h),t.invalidateQueries({queryKey:fe})},onError:()=>c("Couldn’t end it. Try again.")});return{presence:i?g.data:void 0,canEnd:s,end:()=>b.mutate(),ending:b.isPending,error:o}}function di(e){const t=j(),i=Gt(),{data:s}=K({queryKey:Wt,queryFn:()=>t.listSessionRelayDevices(),enabled:i&&e,retry:!1,staleTime:Yt});return(s==null?void 0:s.devices)??[]}function _a({devices:e}){return e.length===0?null:d.jsx("ul",{className:"space-y-1",children:e.map(t=>d.jsxs("li",{className:"flex items-baseline justify-between gap-3 text-sm",children:[d.jsx("span",{className:"truncate",children:t.label}),d.jsx("span",{className:"text-muted-foreground shrink-0 text-xs",children:Tn(t.lastSeenAt)})]},`${t.label}-${t.firstSeenAt}`))})}function li({devices:e}){return e.length===0?null:d.jsxs("div",{className:"space-y-1.5","data-testid":"web-access-devices",children:[d.jsx("p",{className:"text-muted-foreground text-xs font-medium",children:"Devices that used this"}),d.jsx(_a,{devices:e})]})}export{Kn as A,qa as B,za as C,ti as D,Vs as E,ci as F,_a as G,ie as H,r as I,Ja as J,$t as K,Ka as O,ii as P,ei as S,Da as T,ni as U,ri as W,La as a,Hs as b,Ga as c,Je as d,Qa as e,Ya as f,si as g,ai as h,Va as i,Ha as j,oi as k,di as l,li as m,ja as n,Hn as o,J as p,u as q,Xa as r,Fa as s,L as t,Ba as u,z as v,Za as w,yt as x,St as y,Ua as z};
|
|
19
|
+
}`;function qa({className:e}){return d.jsxs("div",{className:P("space-y-1.5 text-left",e),children:[d.jsx("pre",{className:"text-muted-foreground bg-background/60 max-w-full overflow-x-auto rounded-md border p-3 text-xs",children:d.jsx("code",{children:zn})}),d.jsx("p",{className:"text-muted-foreground text-xs",children:"That’s the whole daily ping."})]})}function La({open:e,onToggle:t,className:i}){return d.jsxs("button",{type:"button",onClick:t,"aria-expanded":e,className:P("text-foreground focus-visible:ring-ring inline-flex items-center gap-1 rounded-sm text-xs font-medium underline underline-offset-2 outline-none hover:no-underline focus-visible:ring-2",i),children:["See what’s sent",d.jsx(Jt,{"aria-hidden":!0,className:P("size-3 transition-transform duration-200",e&&"rotate-180")})]})}const me="official-space-join";function Hn(){var A;const{officialLink:e}=Qt(),t=en(e!==null),{dismissedIds:i,dismissPromo:s}=En(),o=tn(f=>f.ask),c=((A=t.data)==null?void 0:A.some(f=>f.official===!0))??!1,g=e!==null&&t.data!==void 0&&!c&&!i.includes(me),b=e!==null&&t.isLoading===!0&&!i.includes(me),h=C.useCallback(()=>{e!==null&&o(e)},[o,e]),y=C.useCallback(()=>s(me),[s]);return{link:e,joined:c,offered:g,pending:b,join:h,skip:y}}function Da({className:e,onDone:t,compact:i=!1}){const s=Hn(),o=C.useId();if(!s.offered)return null;const c=i?"h4":"h3";return d.jsxs("section",{"aria-labelledby":o,"data-testid":"official-space-offer",className:P("flex items-start",i?"gap-2":"gap-3 rounded-md border p-3",e),children:[d.jsx(Kn,{className:P("text-muted-foreground mt-0.5 shrink-0",i?"size-3.5":"size-4"),"aria-hidden":!0}),d.jsxs("div",{className:"min-w-0 flex-1 space-y-2",children:[d.jsx(c,{id:o,className:P("font-medium",i?"text-xs":"text-sm"),children:"Join the DorkOS community"}),d.jsx("p",{className:P("text-muted-foreground",i?"text-xs":"text-sm"),children:"One space for everyone using DorkOS. Your agents join only if you add them."}),d.jsxs("div",{className:"flex flex-wrap gap-2",children:[d.jsx(ge,{size:"sm",onClick:()=>{s.join(),t==null||t()},children:"Join"}),d.jsx(ge,{size:"sm",variant:"ghost",onClick:()=>{s.skip(),t==null||t()},children:"Not now"})]})]})]})}const Un="Paid plans and hosted spaces are for people in the United States, 18 or older.",Bn="Paid plans are for people in the United States, 18 or older.",Fn=sn("/pricing#faq");function Ka({className:e,withSpaces:t=!0}){return d.jsxs("p",{className:P("text-muted-foreground text-xs",e),children:[t?Un:Bn," ",d.jsx(nn,{href:Fn,className:"text-foreground underline underline-offset-2",children:"Who can buy a plan?"})]})}const Yn=[];function Ve(e,t){return t?`${e}\0credits`:e}function Gn(e){const[t,i]=e.split("\0");return i?{runtime:t,account:J}:{runtime:t}}function za(e){var Oe,We,$e,Me,je,qe,Le,De,Ke,ze;const t=(e==null?void 0:e.checkModels)??!1,i=j(),{data:s}=an(),{data:o}=rn(),{data:c}=on(),g=C.useMemo(()=>((c==null?void 0:c.agents)??[]).map(S=>S.projectPath),[c]),{data:b}=cn(g),h=((Oe=s==null?void 0:s.executionDefaults)==null?void 0:Oe.runtime)??"claude-code",y=o?Object.keys(o.capabilities):void 0,A=(We=s==null?void 0:s.executionDefaults)==null?void 0:We.perRuntime,f=($e=s==null?void 0:s.claudeCode)==null?void 0:$e.accounts,w=(Me=s==null?void 0:s.claudeCode)==null?void 0:Me.accountsUnavailable,_=f&&[...f.flatMap(S=>S.id===null?[]:[{id:S.id,label:ln(S.path,f)}]),...(je=s==null?void 0:s.claudeCode)!=null&&je.credits?[{id:J,label:dn}]:[]],W=new Set(((Le=(qe=s==null?void 0:s.claudeCode)==null?void 0:qe.credits)==null?void 0:Le.allowedAgents)??[]),Vt=S=>{var v;return((v=A==null?void 0:A.find(T=>T.runtime===S))==null?void 0:v.model)??null},ue=y==null?void 0:y.join(","),Re=(De=s==null?void 0:s.claudeCode)==null?void 0:De.credits,Z=(Ke=un().data)==null?void 0:Ke.defaults,he=C.useCallback(S=>Cn(S,{defaultRuntime:h,runtimeDeclaresCredits:v=>{var T;return((T=o==null?void 0:o.capabilities[v])==null?void 0:T.credits)!==void 0},credits:Re,runtimeDefaultsToCredits:v=>{var T;return((T=Z==null?void 0:Z[v])==null?void 0:T.runsOn)==="credits"}}),[h,o,Re,Z]),Ne=C.useMemo(()=>{if(!t||!b)return[];const S=ue===void 0?null:new Set(ue.split(",")),v=new Set;for(const T of Object.values(b)){if(!(T!=null&&T.model)&&!(T!=null&&T.effort))continue;const N=T.runtime??h;S&&!S.has(N)||v.add(Ve(N,he(T)))}return[...v].sort()},[t,b,h,ue,he]),Zt=hn({queries:Ne.map(S=>({...mn(i,Gn(S)),retry:!1}))}),Pe=new Map;if(Ne.forEach((S,v)=>{var N;const T=(N=Zt[v])==null?void 0:N.data;T&&Pe.set(S,T)}),!b)return{exceptions:Yn,brokenPaths:[],defaultRuntime:h};const X=[];for(const[S,v]of Object.entries(b)){if(!v)continue;const T=v.runtime??h,N=Pe.get(Ve(T,he(v))),He=Vt(T),Ue=v.model??He,Be=Ue?N==null?void 0:N.find(U=>U.value===Ue):void 0,Fe=_n({agent:{runtime:v.runtime,model:v.model,effort:v.effort,account:v.account},defaultRuntime:h,serverDefaultModel:He,knownRuntimes:y,knownModels:Rn(N),knownAccounts:v.account===J&&!W.has(v.id)?_==null?void 0:_.filter(U=>U.id!==J):_,accountsUnavailable:w,modelSupportsEffort:Be?Be.supportsEffort??!1:void 0,runtimeSupportsEffort:(ze=Nn(o,T))==null?void 0:ze.supportsEffort,runtimeLabel:U=>pn(U).label});Fe.isException&&X.push({path:S,agent:v,report:Fe})}return X.sort((S,v)=>S.report.isBroken!==v.report.isBroken?S.report.isBroken?-1:1:S.agent.name.localeCompare(v.agent.name)),{exceptions:X,brokenPaths:X.filter(S=>S.report.isBroken).map(S=>S.path),defaultRuntime:h}}const Q={all:["cloud","communities"],list:()=>[...Q.all,"list"],move:e=>[...Q.all,"move",e],name:e=>[...Q.all,"name",e]};function Ha(){var i;const e=j();return((i=K({queryKey:bn,queryFn:()=>e.getCloudStatus(),staleTime:3e4}).data)==null?void 0:i.linked)===!0}function Ua(e){const t=j(),i=gn();return K({queryKey:Q.list(),queryFn:()=>t.listHostedCommunities(),enabled:e&&i,staleTime:15e3})}const u=rt({offset:!0}).describe("An ISO-8601 instant with an explicit UTC offset."),r=n().min(1).describe("An opaque server-issued identifier. Clients never parse or enumerate it.");n().regex(/^-?(0|[1-9][0-9]*)$/,"must be a base-10 integer count of micro-units carried as a string").describe("An exact integer count of micro-units, carried as a string so no value goes through a JavaScript number. A micro-unit is a millionth of the major unit of the currency the response names.");const Vn=n().regex(/^[1-9][0-9]*$/,"must be a positive base-10 integer count of micro-units carried as a string").describe("A strictly positive exact integer count of micro-units, carried as a string so no amount goes through a JavaScript number."),Se="amountKind";p(["money","credit"]).describe("What an amount counts: money paid, refunded, offered or capped, or credits held, spent or priced.");const ft=/^-?(0|[1-9][0-9]*)$/,Zn=/^[1-9][0-9]*$/;n().regex(ft,"must be a base-10 integer count of micro-units carried as a string").describe("An exact integer count of micro-units of the response's currency: money paid, refunded, offered or capped.").meta({[Se]:"money"});n().regex(Zn,"must be a positive base-10 integer count of micro-units carried as a string").describe("A strictly positive exact integer count of micro-units of money to be paid, in the currency the service names.").meta({[Se]:"money"});n().regex(ft,"must be a base-10 integer count of micro-units carried as a string").describe("An exact integer count of micro-units of the response's currency, counted as credits: divide by the response's denomination.microPerCredit to get credits.").meta({[Se]:"credit"});a({currency:n().regex(/^[A-Z]{3}$/,"must be an ISO 4217 currency code").describe("An ISO 4217 code. Rendered, never enumerated."),microPerCredit:Vn.describe("How many micro-units of currency one credit is. Served by the service; a client never hard-codes it.")}).describe("The unit these amounts are in: the currency their micro-units are millionths of, and how many micro-units one credit is.");const yt=n().min(1).describe("A credential returned exactly once. Store it as a credential reference; never log it or persist it as configuration."),wt=n().min(1).describe("An opaque pagination cursor, passed back verbatim from a previous page.");a({cursor:wt.optional(),limit:x().int().min(1).max(200).optional().describe("Maximum items in the page. The server may return fewer, and clamps anything larger.")}).describe("Cursor pagination parameters, shared by every collection in this contract.");function z(e,t){return a({items:k(e),nextCursor:wt.nullable().describe("The cursor for the next page, or null when this is the last page.")}).describe(t)}const ie=it({protocol:/^https$/}).regex(/^https:\/\//,"must be an https: link").describe("An absolute https: link. Any other scheme is refused."),Ba=it({protocol:/^https?$/}).regex(/^(https:\/\/|http:\/\/(localhost|127\.0\.0\.1|\[::1\])(:[0-9]+)?([/?#]|$))/,"must be an https: link, or http: to a loopback address").describe("An absolute https: link, or an http: link to a loopback address only."),St="x-dorkos-one-time-credential",Xn="unrecognised";function L(e){return ot([e,n().transform(()=>Xn).describe("A value this release does not know. It reads as unrecognised.")])}const Jn=p(["personal","org"]).describe("Whether an organization is one person`s own or a shared one."),ve=p(["owner","admin","member"]).describe("What a member may do in an organization."),Qn=a({id:r,slug:n().describe("The short name that appears in a canonical address."),name:n(),kind:Jn,createdAt:u}).describe("An organization: the unit seats, addresses and billing hang off.");a({slug:n().min(1),name:n().min(1)}).describe("Create an organization.");a({name:n().min(1).optional(),slug:n().min(1).optional()}).describe("Rename an organization or change its slug.");z(Qn,"A page of the organizations the caller belongs to.");const es=a({id:r,orgId:r,userId:r,role:ve,displayName:n().optional().describe("The name to show for this person, taken from their account profile. Never their email address, and absent when they have set no name."),createdAt:u}).describe("One person`s membership of one organization.");z(es,"A page of an organization`s members.");const ts=p(["pending","accepted","rejected","canceled"]).describe("How far an invitation has got."),ns=a({id:r,orgId:r,email:n(),role:ve,status:ts,expiresAt:u,createdAt:u}).describe("An outstanding or settled invitation to join an organization.");a({email:n().min(1),role:ve}).describe("Invite somebody to an organization.");z(ns,"A page of an organization`s invitations.");const vt=p(["pending","approved","rejected","expired"]).describe("How far a claim to an agent identity has got."),ss=a({id:r,orgId:r,ownerMemberId:r.nullable().describe("The member who owns this agent, or null when nobody does yet."),displayName:n(),emoji:n().optional(),color:n().optional(),imageUrl:n().url().optional(),createdAt:u,retiredAt:u.optional(),claimStatus:L(vt).optional().describe("Where this identity`s claims stand, by precedence: pending when any claim waits, otherwise approved when one stands, otherwise the most recent ended claim. A status this release does not know reads as unrecognised. Absent from an older service, or when no claim was ever asserted."),pendingClaimId:r.optional().describe("One claim waiting for a person`s approval (the oldest), as the `claimId` `POST /v1/agents/{agentId}/claims/{claimId}/approve` takes. Present only while `claimStatus` is `pending`; more may be waiting.")}).describe("An agent identity an organization has registered.");a({displayName:n().min(1),instanceId:r,emoji:n().optional(),color:n().optional(),principalKind:n().min(1).optional().describe("What kind of local principal `naturalKey` belongs to, as a server-recognised token. Optional here so a client one release behind keeps working; the server needs it to register anything."),naturalKey:n().min(1).optional().describe("The raw local key that identifies the principal, sent once and hashed with a per-organization key on receipt. The server discards the input, so no response can be turned back into it. A client never hashes this itself: a client that could compute the hash could forge any identity."),authEnabled:E().optional().describe("Whether the reporting instance requires a signed-in person for every request that does not come from this computer itself. With `hasUsers`, this is the exposure predicate: other devices must sign in, and there is an owner to sign in as. An instance reports this fact, never a single global login switch. The server reads absent as false; the parsed value is still undefined, because a default here would be a claim about what the client sent."),hasUsers:E().optional().describe("Whether the reporting instance has any local users. The server reads absent as false; the parsed value is still undefined.")}).describe("An instance asserting a claim to an agent identity. Mints nothing until a person approves it.");a({claimId:r,agentId:r,instanceId:r,status:vt,createdAt:u,approvedAt:u.nullable()}).describe("The state of an agent claim awaiting a person`s approval.");z(ss,"A page of an organization`s agents.");const as=p(["person","agent"]).describe("Whether a seat holds a person or an agent."),is=p(["unassigned","assigned","suspended","released"]).describe("Where a seat is in its lifecycle."),rs=p(["active","retired"]).describe("Whether an address is live or has been retired."),os=a({id:r,orgId:r,seatId:r,handle:n().describe("The local part of the address, unique within the organization."),canonical:n().describe("The full `dork:<org-slug>/<handle>` form."),status:rs,issuedAt:u,retiredAt:u.optional()}).describe("A routable address issued to a seat."),cs=n().regex(/^[a-z0-9][a-z0-9_-]{0,30}[a-z0-9]$/,"must be lower-case, start and end with a letter or digit, and contain only letters, digits, hyphens and underscores").describe("The grammar every handle obeys: lower case, 2 to 32 characters, starting and ending with a letter or a digit.");a({seatId:r,handle:n().min(1),subject:a({kind:p(["user","agent"]),id:r}).optional().describe("Who or what will hold the seat this address belongs to."),acknowledgeUnauthenticatedExposure:E().optional().describe("Somebody accepting, explicitly, that an agent is being given an address while the reporting machine has no local sign-in. Spelled in full on purpose: a shorter name invites a default, and defaulting it would be the whole problem. The server reads absent as not accepted; the parsed value is still undefined.")}).describe("Issue an address to a seat.");const ds=a({id:r,orgId:r,kind:as,status:is,subject:a({kind:p(["user","agent"]),id:r}).nullable().describe("Who or what currently occupies the seat, or null when nobody does."),address:os.nullable(),createdAt:u,assignedAt:u.optional(),releasedAt:u.optional()}).describe("One seat in an organization.");z(ds,"A page of an organization`s seats.");a({subject:a({kind:p(["user","agent"]),id:r}),handle:n().min(1).optional().describe("The name the seat`s address gets, written once and never renamed in place.")}).describe("Put a person or an agent into a seat, and give it its address.");const B=a({id:r,seatId:r,granteeKind:p(["org","seat","connected-channel","public"]).describe("What kind of thing the grant is about."),granteeRef:r.nullable().describe("Which one, or null when the kind is enough (`public`)."),capability:p(["address","trigger"]).describe("What the grantee may do: reach the address, or trigger the seat."),effect:p(["allow","deny"]).describe("Deny wins over allow.")}).describe("One rule about who may reach a seat, and for what.");a({grants:k(B.omit({id:!0,seatId:!0}))}).describe("Replace a seat`s entire grant set. A partial update is not offered, so no two clients can interleave.");a({grants:k(B),effective:k(a({granteeKind:B.shape.granteeKind,capability:B.shape.capability,effect:B.shape.effect}).describe("One resolved verdict: what a kind of grantee may do, after the default.")).optional().describe("The resolved verdict per grantee kind and capability, including whatever the organization`s default supplies. Absent when the server did not resolve it.")}).describe("A seat`s entire grant set, and optionally what it resolves to.");const ls=a({id:r,seatId:r,kind:n().describe("An opaque add-on identifier. The set is never enumerated in this package."),status:p(["attached","detached"]),attachedAt:u,detachedAt:u.optional()}).describe("Something attached to a seat beyond what it includes by default.");a({kind:r.describe("An opaque identifier the server supplied earlier.")}).describe("Attach an add-on to a seat.");a({addons:k(ls)}).describe("Everything attached to a seat.");const us=p(["email","a2a","seat","connected-channel"]).describe("Where an inbox item arrived from."),xt=a({id:r,leaseToken:n().min(1).describe("The receipt that acknowledges exactly this delivery."),receivedAt:u,expiresAt:u.describe("When the lease lapses and the item becomes pullable again."),sourceKind:us,sourceRef:n().describe("Which sender, in whatever form that source names one."),envelope:ae().describe("The source-shaped metadata of the item."),bodyUrl:n().url().describe("Where to fetch the item body."),sizeBytes:x().int().nonnegative()}).describe("One item leased from a seat`s inbox.");a({limit:x().int().min(1).max(100).optional().describe("Defaults to 50, capped at 100.")}).describe("Lease a batch of inbox items. Cursor-free by design, exactly like the connector event pull.");a({items:k(xt)}).describe("A leased batch of inbox items. No cursor, by design.");a({items:k(a({id:r,leaseToken:n().min(1)})).min(1).max(100)}).describe("Settle inbox leases with exact receipts. One to a hundred at a time.");a({acknowledged:x().int().nonnegative()}).describe("How many inbox leases the server settled.");z(xt.omit({leaseToken:!0}),"A read-only page of a seat`s inbox. Takes no lease and changes no status.");const hs=p(["offline","unknown","reachable","active"]).describe("How reachable a seat is right now.");a({seatId:r,state:hs,lastSeenAt:u.nullable(),source:p(["cloud-link","heartbeat"]).describe("Which signal this reading came from.")}).describe("How reachable a seat is right now, and where that reading came from.");a({eventId:r.describe("Idempotency key. A redelivery with the same key is a complete no-op."),orgId:r.describe("The organization the seat belongs to. Opaque."),seatId:r.describe("Agent seats only. A person seat never produces a seat-activity event."),periodStart:u.describe("The start of the organization`s subscription period — NOT a calendar month."),periodEnd:u.describe("The end of the organization`s subscription period — NOT a calendar month. Clamped on a short month rather than rolled over."),occurredAt:u.describe("When the qualifying activity happened."),reason:p(["inbound-from-org-seat","inbound-from-connected-channel","turn-triggered-by-qualifying-message","turn-triggered-by-attached-addon","addon-attached"]).describe("What made the seat active. Mechanism: it names a kind of activity, nothing else."),sourceKind:p(["seat","connected-channel","addon"]).describe("What kind of thing the activity came from. Deliberately not the inbox`s own source kinds: `addon` is not a place mail arrives from, and `email` is absent because no mail source is ever named here. Do not reuse inbox handling on this field."),sourceRef:n().describe("Opaque. Never a sender, never anything from a message.")}).describe("One agent seat became active in one subscription period. At most one per seat per period; a redelivery is a no-op. Carries no message and no presence.");const ms=p(["off","byo","managed"]).describe("How remote access is arranged: off, the caller`s own tunnel, or a managed one."),xe=p(["closed","opening","open","draining","blocked"]).describe("Where the tunnel is in its lifecycle.");a({instanceId:r.optional().describe("The instance this status is about, echoed from the request so an answer can be matched to its instance. Absent from an older service."),mode:ms,state:xe,address:n().describe("The address this instance is reachable at."),url:n().url().optional().describe("The full URL, when the tunnel is open."),openedAt:u.optional(),idleClosesAt:u.optional().describe("When an idle tunnel will close itself."),idleWindowSeconds:x().int().nonnegative().optional().describe("How long the tunnel may sit idle before it closes itself. The window the instance is told to honour, in seconds."),drainDeadlineSeconds:x().int().nonnegative().optional().describe("How long the instance has to finish work already in flight once it is asked to close, in seconds."),lastActivityAt:u.optional(),alwaysAvailable:E().describe("Computed by the server. The client renders the promise and never derives it from a subscription."),reason:n().optional().describe("Why the tunnel is in this state, when the state needs explaining.")}).describe("The current remote-access state of one instance.");a({instanceId:r,wakeId:r.describe("A client-chosen idempotency key. The same key repeats the answer, not the effect.")}).describe("Open the tunnel for an instance. Idempotent on the instance and wake identifier together.");a({wakeId:r,state:xe,pollAfterMs:x().int().nonnegative().describe("How long to wait before reading the status again.")}).describe("The accepted open request, and how long to wait before checking the status.");a({state:xe}).describe("The state the tunnel is in after being asked to close.");a({token:yt,expiresAt:u,singleUse:E()}).describe("A token that can open a closed tunnel. The value is returned exactly once.");a({address:n(),host:n(),kind:l("canonical")}).describe("The canonical address an instance is reachable at.");const ps=p(["pending_verification","verifying","active","failed"]).describe("Where a custom hostname is in its setup."),gs=p(["none","pending","issued","renewing","failed"]).describe("Where a custom hostname`s certificate is.");a({hostname:n(),status:ps,verification:a({recordName:n().describe("The DNS record name to create."),recordValue:n().describe("The DNS record value to set.")}).describe("The DNS record that proves the caller controls the hostname."),certificate:a({state:gs,renewsAt:u.nullable()}).describe("The certificate this hostname is served with.")}).describe("A custom hostname for an instance, its verification record and its certificate.");a({instanceId:r}).describe("Designate which instance an organization keeps always available.");a({instanceId:r,effectiveAt:u,cooldownUntil:u.describe("Until when the designation cannot be changed again.")}).describe("The accepted designation, and when it may next be changed.");a({instanceId:r.nullable().describe("The designated instance, or null when the organization has none."),effectiveAt:u.nullable().describe("When the current designation took effect, or null when there is none."),cooldownUntil:u.nullable().describe("Until when the designation cannot be changed, or null when it can be changed now.")}).describe("Which instance an organization keeps always available, if any, and when that may next change.");const bs=p(["hours","GB","count"]).describe("What a remote-usage figure is counted in: hours, gigabytes, or a plain count."),fs=p(["clear","alert","reached"]).describe("Where an account stands against one limit: well within it, past the warning point, or at it."),ys=a({ceiling:n().describe("Which limit, as a server-supplied mechanism name. Render the rest of the entry; a name this client does not know is still a valid entry."),limit:x().nonnegative().describe("The published limit, in `unit`."),used:x().nonnegative().describe("What the account has used this period, in `unit`."),unit:L(bs).describe("What `limit` and `used` are counted in. A unit this release does not know reads as unrecognised."),fraction:x().nonnegative().describe("`used / limit`, as the server computed it. May exceed 1. Never recompute it."),alertFraction:x().nonnegative().describe("The fraction at which the published copy says a warning fires."),state:L(fs).describe("Where the account stands against this limit. A state this release does not know reads as unrecognised."),enforceable:E().describe("False when `used` is the period`s high-water mark rather than a figure for now. Such a limit frees as soon as the usage ends, so do not present the peak as a present count."),provenance:a({source:n().describe("How the limit was arrived at, as a server-supplied string. Render it."),measuredAt:u.nullable().describe("When it was measured, or null when nothing measured it.")}).describe("Where this limit came from.")}).describe("Where one account stands against one published remote-access limit, this period.");a({orgId:r.describe("The account the figures were counted against, in the same space as `/v1/orgs`."),period:n().regex(/^\d{4}-(0[1-9]|1[0-2])$/,"must be YYYY-MM").describe("The service`s own period, a calendar month in UTC, as YYYY-MM."),ceilings:k(ys)}).describe("Where the caller`s account stands against every published remote-access limit this period. An account that used nothing gets zeroes, never a 404.");a({instanceId:r,idempotencyKey:n().min(1).describe("A client-chosen key that stops a retry from creating a second credential. A key already used is refused with `conflict`, never answered with the value again. After a lost answer, issue again with a fresh key; a rotate command supplies its own key.")}).describe("An instance asking for a tunnel credential. Instance API key only. A repeated key is refused, not replayed; recover a lost answer with a fresh key.");const ws=["authorization","proxy-authorization","cookie","set-cookie","host","connection","upgrade","content-length","transfer-encoding","te","forwarded"],kt=a({header:n().max(64).regex(/^[a-z0-9]+(-[a-z0-9]+)*$/,"must be a lower-case header name: letters, digits and single hyphens").refine(e=>!ws.includes(e)&&!e.startsWith("x-forwarded-"),"must not be a header HTTP, a proxy or a session already uses").describe("The request header that carries the proof, in lower case. Never a header HTTP, a proxy or a session already uses. Compare header names without regard to case."),secret:n().min(32).max(512).regex(/^[\x21-\x7e]+$/,"must be printable ASCII with no spaces").meta({description:"The value the header carries: opaque, high-entropy, at least 32 characters. Returned once, with its credential. Never log it or return it to a browser.",[St]:!0})}).describe("The header the managed edge adds to every request it forwards, and the secret it carries. Every request over managed access must carry exactly one matching copy; refuse it otherwise.");a({issuanceId:r,credentialId:r,value:yt,fingerprint:n().describe("A stable digest of the credential, safe to log and compare."),acl:k(n()).describe("What this credential may do, as opaque server-supplied strings."),hosts:k(n().min(1)).min(1).optional().describe("Every hostname this credential lets the instance serve: its own address first, then any custom hostname its organization added. The instance serves each one, and stops serving any hostname it served before that is not in the list. Compare hostnames without regard to case. Read this rather than `acl`, which stays opaque. When the field is absent, keep serving as before: absent is not an empty list, and a present list is never empty."),edgeProof:kt.optional().describe("The header and secret every request forwarded by the managed edge carries for this credential. Refuse a managed request without exactly one matching copy. Absent only from an older service; do not open managed access without it.")}).describe("A freshly issued tunnel credential. The `value` and the edge proof secret are returned exactly once.");a({credentialId:r}).describe("An instance confirming it has stored an issued credential.");a({credentialId:r,confirmedAt:u}).describe("When the server recorded the instance`s confirmation.");a({revokedAt:u.describe("When the instance`s credentials were marked revoked.")}).describe("When an instance`s own tunnel credentials were revoked. Answered even when there was nothing to revoke.");O("kind",[a({kind:l("open"),id:r,leaseToken:n().min(1),wakeId:r,leaseId:r.optional().describe("The lease the instance echoes when it reconnects. Opaque: the instance stores it and sends it back, and reads nothing from it."),address:n().optional().describe("The address this instance is reachable at once the tunnel is open."),host:n().optional().describe("The host part of that address."),idleWindowSeconds:x().int().nonnegative().optional().describe("How long the tunnel may sit idle before it closes itself, in seconds. The same window `RemoteStatusSchema` reports."),drainDeadlineSeconds:x().int().nonnegative().optional().describe("How long the instance has to finish work already in flight once it is asked to close, in seconds.")}).describe("Open the tunnel."),a({kind:l("close"),id:r,leaseToken:n().min(1),reason:n()}).describe("Close the tunnel."),a({kind:l("rotate"),id:r,leaseToken:n().min(1),credentialId:r.describe("An issue key, not a credential id. Present it as the `idempotencyKey` of `POST /v1/remote/credentials/issue` to receive the replacement, then confirm the replacement with the `credentialId` that call returns. If that call is refused, keep using the current credential; the service may offer another replacement later.")}).describe("Replace the tunnel credential. Nothing is created until the instance asks for it, with the id this command carries."),a({kind:l("revoke"),id:r,leaseToken:n().min(1),credentialId:r}).describe("Stop using the tunnel credential and forget it."),a({kind:l("inbox_pending"),id:r,leaseToken:n().min(1),seatId:r}).describe("There is mail waiting for a seat."),a({kind:l("viewer_open"),id:r,leaseToken:n().min(1),expiresAt:u.describe("Dial before this. A command read after it is acknowledged `ignored`.")}).describe("Somebody opened a chat of this computer`s on its hub: dial the hub address and key this computer pinned. Carries no address, on purpose."),a({kind:l("hub_assignment_changed"),id:r,leaseToken:n().min(1)}).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."),a({kind:l("agent_computer_assignment_changed"),id:r,leaseToken:n().min(1)}).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."),a({kind:l("keepalive"),id:r,reconnectAfterMs:x().int().nonnegative().optional().describe("How long to wait before reconnecting if the stream drops. A convenience rather than a gap: the server-sent-events `retry:` field already carries the same number, and an instance that honours it needs nothing here.")}).describe("Nothing to do. Sent so a silent stream can be told from a dead one.")]).describe("One event on the `GET /v1/remote/commands` stream. Server-sent events; instance API key only.");const Ss=ot([p(["applied","ignored","failed"]),fn(["refused:",cs])]).describe("What the instance did with a command: applied, ignored, failed, or refused with a slug bounded by the handle grammar.");a({items:k(a({id:r,leaseToken:n().min(1),outcome:Ss.describe("What the instance did with the command.")})).min(1).max(100)}).describe("Report what an instance did with the commands it leased.");a({acknowledged:x().int().nonnegative()}).describe("How many command leases the server settled.");const Ze=n().max(30).regex(/^(0|[1-9][0-9]*)$/,"must be a non-negative base-10 integer with no leading zeros").describe("A count of bytes, as a base-10 integer string. Parse it with BigInt, never Number.");n().min(1).max(200).describe("The Idempotency-Key header of a POST /v1/remote/events batch: an opaque string the instance chooses, one per batch, at most 200 characters. Reuse it to retry the same batch. A key whose batch was already accepted from the same instance is answered { accepted: 0 } and counts nothing again; a batch that was refused or failed was not accepted, so its retry is applied as new.");a({instanceId:r,activity:k(a({at:u,requests:x().int().nonnegative()})).describe("Windowed request counters."),closeReports:k(a({at:u.describe("When the tunnel closed."),reason:n(),wakeId:r.nullable(),openedAt:u.optional().describe("When the tunnel this report closes was opened, so the report names a span. Absent from an older instance."),requests:x().int().nonnegative().optional().describe("How many requests crossed the tunnel between `openedAt` and `at`. Scoped to this span, unlike the running `activity[].requests`."),bytesIn:Ze.optional().describe("Bytes received through the tunnel in this span."),bytesOut:Ze.optional().describe("Bytes sent through the tunnel in this span.")})).describe("Why and when the tunnel closed itself, and what crossed it while it was open.")}).describe("Batched activity, close reports and window counters from one instance. The request names the batch in its Idempotency-Key header.");a({accepted:x().int().nonnegative()}).describe("How many of the reported events the server accepted. Zero for a batch whose Idempotency-Key was already accepted from the same instance, and for an empty batch, so zero alone does not say which.");p(["pooled","assigned"]).describe("Where a hub is in being given to a person: nobody`s yet, or one person`s.");const ke=ie.refine(e=>{try{return new URL(e).origin===e}catch{return!1}},{message:"must be an https origin with no path, query or fragment"}).describe("An https origin and nothing more: no path, query, fragment or user part."),vs=a({clientId:r.describe("The client id this hub presents to the issuer."),redirectUri:ie.describe("The one redirect address registered for this client, matched exactly. It is on the hub`s own address.")}).describe("The sign-in client registered for one hub. Public: no secret, PKCE, one exact redirect address.");O("state",[a({state:l("pooled"),pollAfterSeconds:x().int().positive().optional().describe("How long to wait before reading again when no command arrives. Absent leaves the wait to the hub.")}).describe("Nobody owns this hub yet. Refuse every sign-in."),a({state:l("assigned"),assignmentId:r.describe("This assignment. Echo it to confirm; a different one means the address, proof or sign-in client changed, never the owner."),assignedAt:u,ownerAccountId:r.describe("The owner`s account id at `issuer`: the subject a sign-in must carry. Never an email."),issuer:ie.describe("The one issuer whose sign-ins this hub accepts, compared exactly."),address:ke.describe("The hub`s one origin, with no path. Answer to this exact host and nothing else."),frontDoorProof:kt.describe("The header the front door adds to every request it passes on, and the secret it carries. Same rules as a remote edge proof."),signIn:vs.optional().describe("The sign-in client registered for this hub. Absent until the service registers one.")}).describe("This hub is one person`s, and never anybody else`s: an assigned hub is never reassigned. Serve only them, at this address, behind this proof.")]).describe("Who a hub belongs to, and the keys it serves with. Hub instance API key only; never cached by a proxy.");a({assignmentId:r.describe("The assignment the hub now serves with."),signingPublicKey:n().regex(/^[A-Za-z0-9_-]{43}$/,"must be base64url of exactly 32 bytes, unpadded").optional().describe("The public half of the hub`s own Ed25519 signing key: base64url of the raw 32 bytes, 43 characters, no padding. The hub makes the pair before its first confirmation and never replaces it, so it sends the same key every time; a Mac pins it at pairing and checks the hub`s relay handshakes with it. Optional so an older hub still confirms.")}).describe("Tell the service the hub now serves with this assignment`s owner, address and proof. A stale id is `conflict`.");a({confirmedAt:u}).describe("When the service recorded that the hub serves with this assignment.");const xs=p(["starting","running","stopping","stopped","failed"]).describe("Where a cloud agent computer is in its life."),ks=p(["requested","idle","out_of_credits","held","suspended"]).describe("Why a cloud agent computer is stopped, in terms the app can show."),Ae=a({id:r.describe("This computer. Stable across starts and stops."),instanceId:r.nullable().describe("The instance id the computer reports under once it has first booted, or null before then."),displayName:n().describe("The name to show for this computer."),state:L(xs).describe("Where the computer is now. A state this release does not know reads as unrecognised."),stopReason:L(ks).nullable().describe("Why it is stopped, or null when it is not."),reasonText:n().optional().describe("The service`s own words about why it is stopped, to show as given. Absent when there is nothing to add."),createdAt:u,stateChangedAt:u.describe("When `state` last changed.")}).describe("One cloud agent computer the caller`s account owns.");a({items:k(Ae)}).describe("Every cloud agent computer the caller`s account owns. An account with none gets []");a({idempotencyKey:n().min(1).max(200).describe("A key you choose, one per computer you mean to make."),displayName:n().min(1).max(100).optional()}).describe("Make a cloud agent computer for the caller`s account.");a({computer:Ae,replayed:E().describe("True when an earlier request with this key made it.")}).describe("The computer a create made, or the one an earlier create with the same key made.");a({computer:Ae}).describe("The computer as it is after a start or stop was accepted.");const As=p(["turn","viewer","beat"]).describe("Why a hub starts a computer: a turn, a viewer, or a beat. For metering only.");a({reason:L(As).optional().describe("Why the computer is started, for metering. A reason this release does not know reads as unrecognised. Absent says nothing.")}).describe("Start a cloud agent computer, optionally saying why. The body may be left out.");a({commandId:r.describe("The command waiting for the computer: the `id` it will see on its stream."),queuedAt:u}).describe("The service queued a viewer-open command for the computer.");a({deletedAt:u}).describe("When the computer, its disk and its snapshots were deleted. Cannot be undone.");const At=a({code:n().regex(/^[0-9A-HJKMNP-TV-Z]{16}$/,"must be 16 characters of uppercase Crockford base32, with no spaces or dashes").meta({description:"The code itself: 16 characters of uppercase Crockford base32, 80 bits. Single use. Never log it or return it to a browser.",[St]:!0}),expiresAt:u.describe("When the code stops working: at most ten minutes after the hub minted it.")}).describe("A one-time code an agent computer links to its hub with. Single use, ten minutes at most, bound to one computer.");At.describe("The link code a hub minted for an agent computer on its account. Hub instance key only; answered 204.");a({computerId:r.describe("This computer, as the hub and `GET /v1/computers` name it."),hubOrigin:ke.describe("Where this computer reaches its hub: an https origin with no path, through the hub`s front door."),ownerAccountId:r.describe("The account id, at `issuer`, of the person the hub belongs to. Never an email, and never changes."),issuer:ie.describe("The issuer `ownerAccountId` belongs to, compared exactly."),linkCode:At.nullable().describe("The one-time code to redeem at the hub, or null when none is waiting. Handed out once."),pollAfterSeconds:x().int().positive().optional().describe("How long to wait before reading again when no command arrives. Absent leaves the wait to the computer.")}).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.");a({busy:E().describe("True while the computer is in the middle of work. Holds for ten minutes unless sent again.")}).describe("Whether an agent computer is in the middle of work. That computer`s instance key only; answered 204.");a({at:u.nullable().describe("When the hub next has a schedule due, or null when nothing is. More than 31 days ahead is ignored.")}).describe("When a hub next needs waking for a due schedule. Hub instance key only; answered 204.");const Is=262144,It=Math.ceil(Is*4/3),Tt=16,$=e=>n().min(1).max(e).regex(/^[A-Za-z0-9_-]+$/),M=n().min(1).max(64).regex(/^[\w.:-]+$/).describe("The id of one challenge the computer issued. Letters, digits and _ . : - only."),Et=M,Ts=/^[^\u0000-\u001f\u007f]*$/,Es=/[\p{Cf}\u2028\u2029]/u,ee=e=>n().min(1).max(e).regex(Ts).refine(t=>t.trim()===t,"no leading or trailing whitespace").refine(t=>!Es.test(t),"no invisible characters"),Cs=n().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),_s=n().min(1).max(256).regex(/^[\w.:-]+$/),Rs=n().regex(/^[0-9a-f]{64}$/),Ct=n().length(43).regex(/^[A-Za-z0-9_-]+$/),ne=rt({precision:3}),Ie=$(1400),_t=n().max(253).regex(/^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/),be=ke.max(256),Ns=n().max(2048).regex(/^http:\/\/(127\.0\.0\.1|\[::1\]):[1-9][0-9]{0,4}\//,"must be a loopback http page").refine(e=>{try{const t=new URL(e);return t.protocol==="http:"&&(t.hostname==="127.0.0.1"||t.hostname==="[::1]")&&t.port!==""&&t.username===""&&t.password===""&&t.hash===""&&t.href===e}catch{return!1}},"must be a loopback http page with an explicit port, written canonically").describe("A page on the computer itself: plain http to its loopback address, explicit port.");function Rt(e){return new URL(e.origin).hostname===e.rpId}function Nt(e){return Date.parse(e.expiresAt)>Date.parse(e.issuedAt)}const Ps="dorkos.relay.approval.v1",Os="dorkos.relay.passkey-enrol.v1",Ws=m({t:l(Ps),challengeId:M,computerId:Et,computerName:ee(64),hubOrigin:be,sessionId:Cs,toolCallId:_s,decision:p(["approve","deny"]),toolName:ee(256),displayName:ee(256).optional(),input:yn(),inputSha256:Rs,nonce:Ct,issuedAt:ne,expiresAt:ne,rpId:_t,origin:be,credentialIds:k(Ie).min(1).max(Tt)}).refine(Rt,"the origin`s host must be the relying party id").refine(Nt,"a statement must expire after it was issued").describe("What the owner signs to approve or deny one tool call from the web."),$s=m({t:l(Os),challengeId:M,computerId:Et,computerName:ee(64),accountId:M,userHandle:$(128),nonce:Ct,issuedAt:ne,expiresAt:ne,rpId:_t,origin:be,returnTo:Ns,excludeCredentialIds:k(Ie).max(Tt)}).refine(Rt,"the origin`s host must be the relying party id").refine(Nt,"a statement must expire after it was issued").describe("What the owner signs, at the computer, to add an approvals passkey.");O("t",[Ws,$s]).describe("An approval statement or a passkey enrol statement, told apart by `t`.");const Pt=m({challengeId:M,credentialId:Ie,clientDataJSON:$(4096),authenticatorData:$(1024),signature:$(512),userHandle:$(128).optional()}).describe("A WebAuthn assertion over a challenge the computer issued, binary fields base64url.");O("type",[m({type:l("dorkos.stepup.ready")}),m({type:l("dorkos.stepup.request"),v:l(1),statement:$(It)}),m({type:l("dorkos.stepup.result"),challengeId:M,assertion:Pt}).refine(e=>e.assertion.challengeId===e.challengeId,"the assertion must be for the same challenge"),m({type:l("dorkos.stepup.cancel"),challengeId:M,reason:p(["dismissed","expired","not-allowed"])})]).describe("A message between the hub`s page and the approve page, told apart by `type`.");const Ms=/^-?(0|[1-9][0-9]*)$/,js=/^[1-9][0-9]*$/,qs=/^[A-Z]{3}$/,re=6,Ls=BigInt(10)**BigInt(re),I=BigInt(0),oe=BigInt(1),Ds=BigInt(2),ce=BigInt(10);function Ot(e,t){const i=e/t;return e%t!==I&&e<I?i-oe:i}function Te(e,t){const i=e<I?-e:e;let s=i/t;return i%t*Ds>=t&&(s+=oe),e<I?-s:s}function H(e){return typeof e!="string"||!Ms.test(e)?null:BigInt(e)}function de(e){if(typeof e!="object"||e===null)return null;const{microPerCredit:t}=e;return typeof t!="string"||!js.test(t)||Ee(e)===null?null:BigInt(t)}const Xe=new Map;function Ks(e){const t=Xe.get(e);if(t!==void 0)return t;let i=null;try{const s=new Intl.NumberFormat("en-US",{style:"currency",currency:e}),o=s.formatToParts(0),c=new Set(["integer","group","decimal","fraction"]),g=o.findIndex(y=>c.has(y.type));let b=-1;o.forEach((y,A)=>{c.has(y.type)&&(b=A)});const h=s.resolvedOptions().maximumFractionDigits??0;if(g>=0&&h>=0&&h<=re){const y=A=>A.filter(f=>f.type!=="minusSign"&&f.type!=="plusSign").map(f=>f.value).join("");i={prefix:y(o.slice(0,g)),suffix:y(o.slice(b+1)),minorDigits:h}}}catch{i=null}return Xe.set(e,i),i}function Ee(e){if(typeof e!="object"||e===null)return null;const{currency:t}=e;return typeof t!="string"||!qs.test(t)?null:Ks(t)}function Y(e){const t=e.toString();let i="";for(let s=0;s<t.length;s+=1)s>0&&(t.length-s)%3===0&&(i+=","),i+=t[s];return i}function Ce(e,t,i){const s=ce**BigInt(t),o=e/s;let c=t>0?(e%s).toString().padStart(t,"0"):"";for(;c.length>i&&c.endsWith("0");)c=c.slice(0,-1);return c.length>0?`${Y(o)}.${c}`:Y(o)}function _e(e){return e<I?`-${Y(-e)}`:Y(e)}function Je(e,t,i){const s=e<I?-e:e,o=i?Y(s/ce**BigInt(t.minorDigits)):Ce(s,t.minorDigits,t.minorDigits);return`${e<I?"-":""}${t.prefix}${o}${t.suffix}`}function zs(e,t,i){const s=H(e),o=Ee(t);if(s===null||o===null)return null;const c=ce**BigInt(re-o.minorDigits),g=i(s,c);if(g===I&&s!==I){const b=Je(oe,o,o.minorDigits===0);return s<I?`-<${b}`:`<${b}`}return Je(g,o,s%Ls===I)}function Hs(e,t){const i=H(e),s=de(t);return i===null||s===null?null:_e(Ot(i,s))}function Fa(e,t){const i=H(e),s=de(t);if(i===null||s===null)return null;if(i===I)return"0";const o=Te(i,s);return o===I?i<I?"-<1":"<1":_e(o)}function Us(e,t){const i=H(e),s=de(t);if(i===null||s===null)return null;let o=0,c=i<I?-i:i,g=oe;for(;c*g%s!==I;)if(o+=1,g*=ce,o>s.toString().length*4)return null;c=c*g/s;const b=Ce(c,o,0);return i<I?`-${b}`:b}function Qe(e,t){return zs(e,t,Te)}function Bs(e,t){const i=H(e),s=Ee(t);if(i===null||s===null)return null;const o=i<I?-i:i;return`${i<I?"-":""}${s.prefix}${Ce(o,re,s.minorDigits)}${s.suffix}`}function Ya(e,t,i){const s=H(e),o=de(t);if(s===null||o===null)return null;const c=h=>h==="1"||h==="-1"?`${h} credit`:`${h} credits`;if(i==="rate"){const h=Us(e,t),y=Bs(e,t);return h===null||y===null?null:`${c(h)} (${y})`}let g;if(i==="position")g=Ot(s,o);else if(g=s===I?I:Te(s,o),g===I&&s!==I){const h=Qe(o.toString(),t);if(h===null)return null;const y=h.startsWith("<")?h:`<${h}`;return s<I?`-<1 credit (-${y})`:`<1 credit (${y})`}const b=Qe((g*o).toString(),t);return b===null?null:`${c(_e(g))} (${b})`}function Ga(e){return Hs("0",e)!==null}function Va(e){return e===null?null:`${e} ${e==="1"||e==="-1"||e==="<1"||e==="-<1"?"credit":"credits"}`}const et=1n<<16n;function Za(e,t){if(!/^\d+$/.test(e)||!/^\d+$/.test(t))return null;const i=BigInt(t);if(i===0n)return null;const s=BigInt(e);return s>=i?1:s<=0n?0:Number(s*et/i)/Number(et)}const Wt=["keep-awake"],Fs=5*6e4;function Xa(){const e=j(),{data:t}=K({queryKey:[...Wt],queryFn:()=>e.getKeepAwake(),staleTime:Fs});return t}function Ys(e){if(typeof e!="object"||e===null)return!1;const t=e,i=t.working;return typeof t.enabled=="boolean"&&typeof t.supported=="boolean"&&typeof t.asserted=="boolean"&&typeof i=="object"&&i!==null&&typeof i.chats=="number"&&typeof i.rooms=="number"&&typeof i.tasks=="number"}function Ja(){const e=we();ct("keep_awake_status",t=>{Ys(t)&&e.setQueryData([...Wt],t)})}const Qa={tab:"tools",section:"sleep"},Gs=[["chats","chat","chats"],["rooms","room","rooms"],["tasks","task","tasks"]];function Vs(e){const t=Gs.filter(([i])=>e[i]>0).map(([i,s,o])=>`${e[i]} ${e[i]===1?s:o}`);return t.length===0?null:t.length===1?`${t[0]} running`:t.join(", ")}function ei(e){return(e==null?void 0:e.asserted)===!0&&Vs(e.working)!==null}const ti={container:"Not available in a container.","tool-missing":"Not available: this computer has no sleep control tool.",denied:"This computer refused to stay awake. Tries again while agents work.",platform:"Not available on this operating system."};function ni(e){return e.supported||e.reason==="denied"}const si="Closing the lid usually still sleeps. The screen still locks. Uses more battery.";function Zs(e,t){return t===0?R[e]:`${R[e]}, ${t} ${t===1?"change":"changes"}`}function Xs(e){const t=new Map,i=(s,o)=>{const c=t.get(s)??{agentName:o,count:0};c.count+=1,t.set(s,c)};for(const s of e.exceptions)i(s.agentId,s.agentName);for(const s of e.filesAndCommands.exceptions)i(s.agentId,s.agentName);return[...t].map(([s,{agentName:o,count:c}])=>({agentId:s,agentName:o,detail:`${c} ${c===1?"setting":"settings"} of its own`}))}function Js(e){const t=dt;return t.includes(e)?t:[...t,e]}function ai({surface:e}){const t=Pn(),i=On({kind:"default"}),[s,o]=C.useState(null),c=C.useMemo(()=>t.data?Xs(t.data):[],[t.data]);if(t.isError)return d.jsx("p",{className:"text-muted-foreground text-sm",children:"Couldn’t read the permissions."});if(!t.data)return d.jsxs("div",{className:"flex flex-col gap-3","data-testid":"preset-picker","aria-busy":"true",children:[d.jsx(Ye,{"aria-label":"Preset",className:"w-full",value:"",onValueChange:()=>{},children:dt.map(w=>d.jsx(Ge,{value:w,"aria-label":R[w],children:d.jsx("span",{className:"truncate",children:R[w]})},w))}),d.jsx(wn,{className:"h-4 w-2/3"})]});const g=t.data,b=g.preset??"trusted",h=Wn(g,{kind:"preset"}),y=`Changing it ${qn(h)}`,A=(w,_)=>i.mutate({kind:"preset",preset:w,surface:e,..._&&_.length>0?{applyToAgents:_}:{}},{onError:Ln}),f=w=>{w===g.preset&&g.changeCount===0||(c.length>0?o(w):A(w))};return d.jsxs("div",{className:"flex flex-col gap-3","data-testid":"preset-picker",children:[d.jsx(Ye,{"aria-label":"Preset",className:"w-full",value:b,onValueChange:w=>w&&f(w),disabled:i.isPending,children:Js(b).map(w=>d.jsx(Ge,{value:w,"aria-label":R[w],children:d.jsx("span",{className:"truncate",children:R[w]})},w))}),d.jsxs("div",{className:"flex flex-col gap-1 @lg:flex-row @lg:items-center @lg:justify-between",children:[d.jsxs("div",{className:"space-y-0.5",children:[d.jsxs("p",{className:"text-sm","data-testid":"permissions-preset",children:[d.jsx("span",{className:"font-medium",children:Zs(b,g.changeCount)}),d.jsxs("span",{className:"text-muted-foreground",children:[" · ",$n[b]]})]}),d.jsxs("p",{className:"text-muted-foreground text-xs","data-testid":"permissions-preset-preview",children:[y," ·"," ",d.jsx(Mn,{question:`Why is the preset set to ${R[b]}?`,sentence:`${R[b]} is the preset every agent starts from.`,...g.presetLastChange?{lastChange:g.presetLastChange}:{}})]})]}),g.changeCount>0?d.jsxs(ge,{variant:"ghost",size:"sm",className:"self-start",disabled:i.isPending,onClick:()=>f(b),children:["Reset to ",R[b]]}):null]}),d.jsx(Sn,{descriptor:vn.find(w=>w.stop===g.filesAndCommands.stop)}),d.jsx(jn,{open:s!==null,onCancel:()=>o(null),subject:"Preset",title:s?`Switch everyone to ${R[s]}?`:void 0,next:s?R[s]:"",agents:c,affectedCount:h,onKeep:()=>{s&&A(s),o(null)},onUpdate:w=>{s&&A(s,w),o(null)},pending:i.isPending})]})}const fe=["session-relay","status"],pe=["session-relay","presence"],$t=["session-relay","devices"],ii=["session-relay","passkeys"],Mt="sessionRelay.enabled";function Qs(e){const t=e instanceof Error?e.message:"";return t&&!/^HTTP \d+$/.test(t)?t:"Couldn’t change that. Try again."}function ri(){const e=j(),t=we(),{enabled:i}=lt(Mt),s=ut(),o=Dn(),c=pt(),g=i&&!s,[b,h]=C.useState(null),y=K({queryKey:fe,queryFn:()=>e.getSessionRelayStatus(),enabled:g,retry:!1,staleTime:1e4}),A=ht({mutationFn:f=>f(),onMutate:()=>h(null),onSuccess:f=>t.setQueryData(fe,f),onError:f=>h(Qs(f))});return{available:g&&y.isSuccess,atThisComputer:o,canChange:c,status:y.data,error:b,busy:A.isPending,link:f=>A.mutate(()=>e.linkSessionRelay(f)),setLevel:(f,w)=>A.mutate(()=>e.setSessionRelayLevel(f,w)),pause:()=>A.mutate(()=>e.pauseSessionRelay()),resume:f=>A.mutate(()=>e.resumeSessionRelay(f)),unlink:()=>A.mutate(()=>e.unlinkSessionRelay())}}const ea=1048576,ta=2e5,na=n().min(1).max(ta),sa=200,ye=x().int().positive(),jt=m({min:ye,max:ye}).refine(e=>e.min<=e.max,{message:"min must not exceed max"}),aa=k(n().min(1).max(64)).max(64),D=n().min(1).max(64).regex(/^[\w.:-]+$/),se=D,q=n().regex(/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/),qt=n().regex(/^[0-9A-HJKMNP-TV-Z]{26}$/),te=n().min(1).max(256).regex(/^[\w.:-]+$/),Lt=n().max(256).regex(/^[0-9a-f-]+-\d+-g\d+-\d+$/),ia=/^[^\u0000-\u001f\u007f]*$/,ra=/[\p{Cf}\u2028\u2029]/u,Dt=n().min(1).max(64).regex(ia).refine(e=>e.trim()===e,"no leading or trailing whitespace").refine(e=>!ra.test(e),"no invisible characters"),oa=m({id:n().min(8).max(64).regex(/^[A-Za-z0-9_-]+$/),label:Dt}),ca=e=>n().min(1).max(e).regex(/^[A-Za-z0-9_-]+$/),da=m({op:l("chats.list"),agentId:qt}),la=m({op:l("session.stream"),streamId:se,sessionId:q,resume:Lt.optional()}),ua=m({op:l("session.send"),sessionId:q,content:na,clientMessageId:D.optional(),disposition:xn.optional(),newChat:m({agentId:qt}).optional()}),ha=m({op:l("session.interrupt"),sessionId:q}),ma=p(["approve","deny"]),pa=m({op:l("interaction.challenge"),sessionId:q,toolCallId:te,decision:ma}),tt=Pt,ga=O("kind",[m({kind:l("approve"),toolCallId:te,proof:tt}),m({kind:l("deny"),toolCallId:te,reason:n().max(kn).optional(),proof:tt}),m({kind:l("answer"),toolCallId:te,answers:mt(n().regex(/^\d{1,3}$/),n().max(1e4))})]),ba=m({op:l("interaction.respond"),sessionId:q,answer:ga}),fa=O("op",[da,la,ua,ha,pa,ba]),ya=m({sessionId:q,title:n().max(500),updatedAt:n().datetime(),lastMessagePreview:n().max(500).optional()});m({chats:k(ya).max(sa)}),m({sessionId:q}),m({receipt:An,cancelledQueued:k(In)}),m({challengeId:D,statement:ca(It),expiresAt:n().datetime()}),m({ok:E()});const nt=m({status:x().int().min(400).max(599),code:n().min(1).max(64),message:n().max(1e3),feature:n().min(1).max(64).optional()}),le=e=>n().length(Math.ceil(e*4/3)).regex(/^[A-Za-z0-9_-]+$/),Kt=le(32),G=le(64),wa=le(32),zt=le(32);m({type:l("hello"),computerId:n().min(1).max(64).regex(/^[\w.:-]+$/),versions:jt,features:aa,appVersion:n().min(1).max(64),nonce:wa,ephemeralKey:Kt});O("type",[m({type:l("welcome"),version:ye,ephemeralKey:Kt,signature:G}),m({type:l("refuse"),versions:jt,signature:G})]);m({type:l("sealed"),seq:x().int().min(0).max(Number.MAX_SAFE_INTEGER),box:n().min(1).max(ea).regex(/^[A-Za-z0-9_-]+$/)});const Ht=m({type:l("heartbeat")});O("type",[m({type:l("request"),id:D,request:fa,device:oa.optional()}),m({type:l("stream.close"),streamId:se}),m({type:l("viewers"),count:x().int().min(0).max(1e4)}),Ht]);const Sa=m({event:n().min(1).max(100),data:ae().optional(),id:Lt.optional()});O("type",[m({type:l("result"),id:D,ok:l(!0),body:ae()}),m({type:l("error"),id:D,ok:l(!1),error:nt}),m({type:l("stream.frame"),streamId:se,frame:Sa}),m({type:l("stream.end"),streamId:se,error:nt.optional()}),Ht]);m({type:l("finish"),signature:G});const va=n().min(1).max(64).regex(/^[\w.:-]+$/),xa=n().length(43).regex(/^[A-Za-z0-9_-]+$/),st=/^[^\u0000-\u001f\u007f]*$/,Ut=Dt;m({v:l(1),code:n().min(1).max(64),computerId:va,computerKey:zt,secretHash:xa,computerName:Ut,signature:G});m({v:l(1),hubKey:zt,ownerAccountId:n().min(1).max(128).regex(st).optional(),issuer:n().min(1).max(512).startsWith("https://").regex(st).optional(),signature:G});const ka=a({computerId:n(),computerName:n().nullable(),linkedAt:n().nullable(),connected:E(),features:k(n())});a({computers:k(ka)});a({linkCode:n(),expiresAt:n()});const Bt=p(["chat","full"]);a({linked:E(),hubOrigin:n().nullable(),computerName:n().nullable(),level:Bt,paused:E(),connected:E(),pinnedAt:n().nullable(),suggestedName:n()});const V=n().max(1024);a({linkCode:n().min(1).max(512),computerName:Ut.optional(),password:V.optional()});a({level:Bt,password:V.optional()});a({password:V.optional()});p(["bad-code","hub-unreachable","hub-refused","signature-failed","different-account","not-public","already-linked","account-unreadable"]);const Ft=a({label:n(),firstSeenAt:n(),lastSeenAt:n()}),Aa=a({active:E(),since:n().optional(),devices:k(Ft)});a({devices:k(Ft)});const Ia=n().trim().min(1).max(64).regex(/^[^\u0000-\u001f\u007f]*$/);a({password:V.optional(),label:Ia,rpId:n().min(1).max(253).optional(),origin:n().min(1).max(256).optional()});a({statement:n(),challenge:n(),approveUrl:n(),expiresAt:n()});const F=e=>n().min(1).max(e).regex(/^[A-Za-z0-9_-]+$/),Ta=a({id:F(1400),rawId:F(1400),type:l("public-key"),response:a({clientDataJSON:F(4096),attestationObject:F(16384),transports:k(n().max(32)).max(8).optional()}),clientExtensionResults:mt(n(),ae()).default({}),authenticatorAttachment:p(["platform","cross-platform"]).optional()}),Ea=8192;a({statement:F(Ea),attestation:Ta});const Ca=a({credentialId:n(),label:n(),addedAt:n(),alg:x().int()});a({damaged:E().optional(),rpId:n().nullable(),origin:n().nullable(),keys:k(Ca)});a({password:V.optional()});const Yt=5*6e4;function Gt(){const{enabled:e}=lt(Mt),t=ut();return e&&!t}function oi(){const e=j(),t=we(),i=Gt(),s=pt(),[o,c]=C.useState(null),g=K({queryKey:pe,queryFn:()=>e.getSessionRelayPresence(),enabled:i,retry:!1,staleTime:Yt});ct("session_relay_presence",h=>{const y=Aa.safeParse(h);y.success&&(t.setQueryData(pe,y.data),t.invalidateQueries({queryKey:$t}))});const b=ht({mutationFn:()=>e.endSessionRelayPresence(),onMutate:()=>c(null),onSuccess:h=>{t.setQueryData(pe,h),t.invalidateQueries({queryKey:fe})},onError:()=>c("Couldn’t end it. Try again.")});return{presence:i?g.data:void 0,canEnd:s,end:()=>b.mutate(),ending:b.isPending,error:o}}function ci(e){const t=j(),i=Gt(),{data:s}=K({queryKey:$t,queryFn:()=>t.listSessionRelayDevices(),enabled:i&&e,retry:!1,staleTime:Yt});return(s==null?void 0:s.devices)??[]}function _a({devices:e}){return e.length===0?null:d.jsx("ul",{className:"space-y-1",children:e.map(t=>d.jsxs("li",{className:"flex items-baseline justify-between gap-3 text-sm",children:[d.jsx("span",{className:"truncate",children:t.label}),d.jsx("span",{className:"text-muted-foreground shrink-0 text-xs",children:Tn(t.lastSeenAt)})]},`${t.label}-${t.firstSeenAt}`))})}function di({devices:e}){return e.length===0?null:d.jsxs("div",{className:"space-y-1.5","data-testid":"web-access-devices",children:[d.jsx("p",{className:"text-muted-foreground text-xs font-medium",children:"Devices that used this"}),d.jsx(_a,{devices:e})]})}export{Kn as A,ja as B,Ka as C,ei as D,Vs as E,oi as F,_a as G,ie as H,r as I,Ja as J,Wt as K,Da as O,ai as P,Qa as S,La as T,ti as U,ii as W,qa as a,Hs as b,Ya as c,Qe as d,Xa as e,Fa as f,ni as g,si as h,Ga as i,za as j,ri as k,ci as l,di as m,Ma as n,Hn as o,Q as p,u as q,Za as r,Ba as s,L as t,Ua as u,z as v,Va as w,yt as x,St as y,Ha as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as g,o as p,r as i,q as c,s as f,j as d,v as S}from"./index-
|
|
1
|
+
import{h as g,o as p,r as i,q as c,s as f,j as d,v as S}from"./index-DSYz85aL.js";function N({member:t}){var o,r;const e=((o=t.agent)==null?void 0:o.projectPath)??null,s=g(),n=p(),u=i.useCallback(a=>{!s||e===null||(c.getState().recordOpened("agent",e),s(f({dir:e,session:a})))},[s,e]),l=i.useCallback(()=>{var a;e!==null&&(c.getState().recordOpened("agent",e),n(e,{runtime:(a=t.agent)==null?void 0:a.effectiveRuntimeId}))},[e,n,(r=t.agent)==null?void 0:r.effectiveRuntimeId]);return d.jsx(S,{agentPath:e,agentName:t.displayName,onOpenChat:u,onNewChat:l,searchable:!0,className:"flex-1"})}export{N as SessionsPage};
|