dorkos 0.120.0 → 0.122.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/cli.js +497 -356
- package/dist/browser/native/package-manifest.json +1 -1
- package/dist/browser/source-manifest.json +1 -1
- package/dist/client/assets/{AboutPage-Y8O56Cz5.js → AboutPage-ClN3P9B8.js} +1 -1
- package/dist/client/assets/{ActivityErrorState-DlROxqde.js → ActivityErrorState-B2lq1pyE.js} +1 -1
- package/dist/client/assets/{ActivityPage-BdV90CV2.js → ActivityPage-htTkSy18.js} +1 -1
- package/dist/client/assets/{ActivityRow-B5yiD_uD.js → ActivityRow-BqV0B1T0.js} +1 -1
- package/dist/client/assets/{AdapterIcon-Dyq92Eup.js → AdapterIcon-DlkN0YJo.js} +1 -1
- package/dist/client/assets/{AdapterSetupWizard-D9tqz7Hl.js → AdapterSetupWizard-RyNPjSmU.js} +1 -1
- package/dist/client/assets/{AgentOptionRow-BeRqDo7c.js → AgentOptionRow-DSievGfL.js} +1 -1
- package/dist/client/assets/{AgentPicker-BRyYVJZu.js → AgentPicker-BCtWrhsA.js} +1 -1
- package/dist/client/assets/{AgentRequestCard-xX6fAKgO.js → AgentRequestCard-BHIHWNRz.js} +4 -4
- package/dist/client/assets/{AppearancePage-DKF9BqRt.js → AppearancePage-B2eduuT0.js} +1 -1
- package/dist/client/assets/{ApplyToOverridesDialog-CPvtr_-f.js → ApplyToOverridesDialog-C7G2t3X2.js} +1 -1
- package/dist/client/assets/{AttentionSignalRow-vBfioH1A.js → AttentionSignalRow-_8thTHYX.js} +1 -1
- package/dist/client/assets/{BaseTanStackRouterDevtoolsPanel-B-iktbLX-B50zNtwB.js → BaseTanStackRouterDevtoolsPanel-B-iktbLX-WpZU5xiO.js} +1 -1
- package/dist/client/assets/{BindingDialog-CSNjws3F.js → BindingDialog-BAwbHFq3.js} +1 -1
- package/dist/client/assets/BlintzCanvas-BEtRmEbL.js +1231 -0
- package/dist/client/assets/{BlintzCanvas-GgiCXV7C.css → BlintzCanvas-DCXOV_yN.css} +1 -1
- package/dist/client/assets/{CanvasCsvContent-0Mb7uOuA.js → CanvasCsvContent--6i2ETyZ.js} +2 -2
- package/dist/client/assets/CanvasFileContent-C86nyLbI.js +2 -0
- package/dist/client/assets/CanvasModel3dContent-wYHHAovt.js +2 -0
- package/dist/client/assets/{ChatAppsOff-CLRB0YU5.js → ChatAppsOff-2Wvch1rr.js} +1 -1
- package/dist/client/assets/{CodeMirrorDiff-B4uFJD6g.js → CodeMirrorDiff-s1TWguZ8.js} +1 -1
- package/dist/client/assets/{CodeMirrorEditor-rYOrBAZc.js → CodeMirrorEditor-1ndoTbcZ.js} +1 -1
- package/dist/client/assets/{CommitmentList-i-IZ4gbr.js → CommitmentList-BK97ndab.js} +1 -1
- package/dist/client/assets/{CommitmentsPage-ChO1JkrE.js → CommitmentsPage-_nd37gVX.js} +1 -1
- package/dist/client/assets/{ComputerResourceView-pLuD2ie6.js → ComputerResourceView-C2Broer4.js} +1 -1
- package/dist/client/assets/{ComputerViewer-D7tPmpY5.js → ComputerViewer-DgG7t2KZ.js} +1 -1
- package/dist/client/assets/{ConnectionAccessLists-D6VH1vX3.js → ConnectionAccessLists-Pbo2lft8.js} +1 -1
- package/dist/client/assets/{ConnectionsPage-7x5olD9q.js → ConnectionsPage-Dm2d9owX.js} +2 -2
- package/dist/client/assets/{ConventionPage-BTYLWw6p.js → ConventionPage-BUltejHJ.js} +1 -1
- package/dist/client/assets/{ExtensionPageRoute-A9AdBBbw.js → ExtensionPageRoute-DAomCiMw.js} +2 -2
- package/dist/client/assets/{FloatingTanStackRouterDevtools-CqogiFob-ayv0yz1C.js → FloatingTanStackRouterDevtools-CqogiFob-5fT29ZEV.js} +1 -1
- package/dist/client/assets/HandlePage-BoBFGnUB.js +1 -0
- package/dist/client/assets/{HeartbeatPage-Dh6W9Qg5.js → HeartbeatPage-BW0X4YAL.js} +1 -1
- package/dist/client/assets/{KeyEntry-owhPGtw3.js → KeyEntry-ClqAj0dS.js} +1 -1
- package/dist/client/assets/{LexicalField-B1NFMLD6.js → LexicalField-CbswpPQ7.js} +1 -1
- package/dist/client/assets/{ManagesPage-BAnBmBdo.js → ManagesPage-Daqs8hys.js} +1 -1
- package/dist/client/assets/{Marketplace-67maxdwz.js → Marketplace-BNMIm8g_.js} +1 -1
- package/dist/client/assets/{MarketplaceSourcesView-CzPBNJJj.js → MarketplaceSourcesView-B4WpzVpr.js} +1 -1
- package/dist/client/assets/{McpAppFrame-CuObpQTg.js → McpAppFrame-Dbg_Ni39.js} +1 -1
- package/dist/client/assets/{McpSigninBody-B-ayj6bQ.js → McpSigninBody-ZmmY1BZ4.js} +1 -1
- package/dist/client/assets/{Model3dViewer-DRVqxazk.js → Model3dViewer-DT8x0h7T.js} +1 -1
- package/dist/client/assets/NamePage-bC_9FOtD.js +1 -0
- package/dist/client/assets/{NewDirectMessageMenu-B3DxayR2.js → NewDirectMessageMenu-BbehZd6I.js} +1 -1
- package/dist/client/assets/{NotificationsPage-BavEo7VZ.js → NotificationsPage-B9zEN26O.js} +1 -1
- package/dist/client/assets/{OpenMeshSwitch-BwkX2Toa.js → OpenMeshSwitch-D-AYDXjH.js} +1 -1
- package/dist/client/assets/{OperatorIdentityForm-CtWgz2yi.js → OperatorIdentityForm-BdAqzVEG.js} +1 -1
- package/dist/client/assets/{PermissionHistory-DvM0F2bS.js → PermissionHistory-IOgLQ7qN.js} +1 -1
- package/dist/client/assets/{PermissionsPage-D1DJHezV.js → PermissionsPage-CKfDf5Pj.js} +1 -1
- package/dist/client/assets/{PersonalityPopover-BV-9wfIl.js → PersonalityPopover-CHPTuHIH.js} +1 -1
- package/dist/client/assets/PhotoPage-BOe3xwyN.js +1 -0
- package/dist/client/assets/{PresetPicker-BOQKgYAK.js → PresetPicker-BcKF2ds8.js} +2 -2
- package/dist/client/assets/{PreviewRefusedNotice-BdhUln2h.js → PreviewRefusedNotice-BuVUhjq3.js} +1 -1
- package/dist/client/assets/{ProfileFields-DFRnRR38.js → ProfileFields-DimHNpR4.js} +1 -1
- package/dist/client/assets/{ProfilePanelContainer-CkxX9Dps.js → ProfilePanelContainer-FRZ5Px2L.js} +1 -1
- package/dist/client/assets/{ProfileRolePicker-BSYi_luB.js → ProfileRolePicker-UWhM5yuR.js} +1 -1
- package/dist/client/assets/{PromptSuggestionChips-r08GqBH1.js → PromptSuggestionChips-DQaDSd7Y.js} +1 -1
- package/dist/client/assets/{ReportsToPopover-BcsM5Eia.js → ReportsToPopover-BOuCM8il.js} +1 -1
- package/dist/client/assets/RoomSurface-Dhv-LkWz.js +44 -0
- package/dist/client/assets/{RoomsPage-CQqsdVvB.js → RoomsPage-glKYJBpq.js} +1 -1
- package/dist/client/assets/{RunsOnPopover-DFb4xEhP.js → RunsOnPopover-BvxoHUeo.js} +1 -1
- package/dist/client/assets/{RuntimeConnectFlow-pKFJlNSJ.js → RuntimeConnectFlow-CgB_X5wo.js} +1 -1
- package/dist/client/assets/{RuntimeSetupDialog-DvBJbrmj.js → RuntimeSetupDialog-r1Ss_YQW.js} +1 -1
- package/dist/client/assets/{SessionsPage-CGgnEPh7.js → SessionsPage-CFLDx-aF.js} +1 -1
- package/dist/client/assets/{SettingsDialog-D0cmzjrH.js → SettingsDialog-BT5rYJUm.js} +3 -3
- package/dist/client/assets/{SkillsPage-DDoPlsn2.js → SkillsPage-CUQZ4I_r.js} +1 -1
- package/dist/client/assets/{TaskDialogWrapper-DoIVzbKU.js → TaskDialogWrapper-DWpxyxBb.js} +1 -1
- package/dist/client/assets/{TasksEmptyState-B68O6dnT.js → TasksEmptyState-B4TjUm8G.js} +2 -2
- package/dist/client/assets/{TasksPage-BsBDphim.js → TasksPage-D_vFBDA1.js} +1 -1
- package/dist/client/assets/{TeamComputerEntry-CoQ4EsDm.js → TeamComputerEntry-EQ1fjMRb.js} +1 -1
- package/dist/client/assets/{ToolsPage-Cl1aOpev.js → ToolsPage-CyNXCe2l.js} +1 -1
- package/dist/client/assets/TopologyGraph-DsPEpDjt.js +30 -0
- package/dist/client/assets/{TourHost-4O6TJzc-.js → TourHost-D1z2mH5S.js} +1 -1
- package/dist/client/assets/{UnlinkDialog-DIMY60Fi.js → UnlinkDialog-q-6B4Ftt.js} +1 -1
- package/dist/client/assets/{WidgetErrorCard-CzWw_SPD.js → WidgetErrorCard-BYMiUiAf.js} +23 -23
- package/dist/client/assets/_commonjs-dynamic-modules-TDtrdbi3.js +1 -0
- package/dist/client/assets/_shell-scIpUrVY.js +80 -0
- package/dist/client/assets/{_shell._home-DG3Vw7S5.js → _shell._home-D-8JcUYq.js} +1 -1
- package/dist/client/assets/{_shell._home.activity-COI96oAO.js → _shell._home.activity-xJKxWbtL.js} +1 -1
- package/dist/client/assets/{_shell._home.index-CTwsTjcQ.js → _shell._home.index-C74gh1aE.js} +1 -1
- package/dist/client/assets/{_shell._home.tasks-DOVoPYaf.js → _shell._home.tasks-Bh8jwRYJ.js} +1 -1
- package/dist/client/assets/{_shell._home.workspaces-ApZhnjwy.js → _shell._home.workspaces-BKkUl6wW.js} +1 -1
- package/dist/client/assets/_shell.channels-B2A1G9n8.js +10 -0
- package/dist/client/assets/{_shell.connections-bhAK3jnE.js → _shell.connections-eDlPXmuG.js} +1 -1
- package/dist/client/assets/{_shell.feedback-requests-k43R8-rW.js → _shell.feedback-requests-Cdbl3oKj.js} +1 -1
- package/dist/client/assets/_shell.marketplace-FHQpZxgB.js +1 -0
- package/dist/client/assets/_shell.marketplace_.sources-DXv90Z-v.js +1 -0
- package/dist/client/assets/_shell.session-BNeYm91q.js +63 -0
- package/dist/client/assets/{_shell.team-DHCM1QoO.js → _shell.team-Consxq97.js} +4 -4
- package/dist/client/assets/_shell.x._extensionId-DirEl_qN.js +1 -0
- package/dist/client/assets/_shell.x._extensionId_._-DirEl_qN.js +1 -0
- package/dist/client/assets/abnfDiagram-WEYOIA3C-DXTlLd8s.js +1 -0
- package/dist/client/assets/{access-copy-BVzi1REx.js → access-copy-B1SlOYEi.js} +1 -1
- package/dist/client/assets/arc-B3IW5TXq.js +1 -0
- package/dist/client/assets/architectureDiagram-ZHVYKT53-Bx-4szWe.js +36 -0
- package/dist/client/assets/{banner-3xXXsU5J.js → banner-RKoWGrEp.js} +1 -1
- package/dist/client/assets/blockDiagram-RJAE7QA3-D_B3EDQ1.js +140 -0
- package/dist/client/assets/c4Diagram-XDPPPE54-CSBl4ROD.js +38 -0
- package/dist/client/assets/{card-Bt6IU-Bh.js → card-DTMhLU7B.js} +1 -1
- package/dist/client/assets/channel-BlEJg4XA.js +1 -0
- package/dist/client/assets/chunk-2E7WHVMD-QSgLcVHQ.js +88 -0
- package/dist/client/assets/chunk-2Q5K7J3B-CAEYyBSj.js +1 -0
- package/dist/client/assets/chunk-4EMNKR2T-CQ_90aiz.js +1 -0
- package/dist/client/assets/chunk-55XCU76K-jsUyUA3N.js +1 -0
- package/dist/client/assets/chunk-5VM5RSS4-JHkf15PA.js +15 -0
- package/dist/client/assets/chunk-JWPE2WC7-BT-3krv8.js +1 -0
- package/dist/client/assets/chunk-VQ5W62QI-CJP11I5o.js +1 -0
- package/dist/client/assets/chunk-XXDRQBXY-BpqBecnj.js +1 -0
- package/dist/client/assets/chunk-ZCHMQSOR-BLb4KcT4.js +2 -0
- package/dist/client/assets/classDiagram-v2-4MYWR3UA-DwLyYGkw.js +217 -0
- package/dist/client/assets/{command-CWokzKS1.js → command-DDSiiJlP.js} +1 -1
- package/dist/client/assets/cose-bilkent-JH36ORCC-CxYTET88.js +1 -0
- package/dist/client/assets/{cpu-BzByzE9V.js → cpu--56q_Ey0.js} +1 -1
- package/dist/client/assets/cynefin-EF2NZ3EQ-9fHLZRHz.js +141 -0
- package/dist/client/assets/cynefinDiagram-WF24UDRP-DpfQecff.js +62 -0
- package/dist/client/assets/cytoscape.esm-BLAcgzS2.js +331 -0
- package/dist/client/assets/dagre-NK4GIZVX-DuV6buEQ.js +4 -0
- package/dist/client/assets/defaultLocale-DX6XiGOO.js +1 -0
- package/dist/client/assets/diagram-CBK3MWTC-B-A9Sx5n.js +24 -0
- package/dist/client/assets/diagram-I5XIIV2D-Ds5Hq9aV.js +24 -0
- package/dist/client/assets/diagram-ODIL2UCW-UUfSjM-R.js +30 -0
- package/dist/client/assets/diagram-PFBEJUXE-CUzSSYf9.js +3 -0
- package/dist/client/assets/diagram-RJA3I4VV-Cgp6U3q1.js +41 -0
- package/dist/client/assets/diagram-TYUNFSNR-BxVgzMNE.js +200 -0
- package/dist/client/assets/ebnfDiagram-V4P3TTPT-BgDiHzoi.js +1 -0
- package/dist/client/assets/elk-QONTBCTQ-BCCN6mFs.js +27 -0
- package/dist/client/assets/{empty-state-BgnQDiMZ.js → empty-state-BsA3jcrO.js} +1 -1
- package/dist/client/assets/erDiagram-KYQIGQAA-5RkmUbLz.js +99 -0
- package/dist/client/assets/{execution-config-D5-SEt2t.js → execution-config-CRkSeCj7.js} +1 -1
- package/dist/client/assets/{file-VHDTQub2.js → file-Bg_qGvWR.js} +1 -1
- package/dist/client/assets/{file-exclamation-point-DbWvGys0.js → file-exclamation-point-BWsLZQVN.js} +1 -1
- package/dist/client/assets/{file-text-BAhi2zct.js → file-text-DQThCdY3.js} +1 -1
- package/dist/client/assets/{find-latest-widget-fence-Z0HPVqeK.js → find-latest-widget-fence-DFpYPIlS.js} +1 -1
- package/dist/client/assets/flowDiagram-IUGLLWBU-C2FFT_4u.js +213 -0
- package/dist/client/assets/{form-Blrb1xBU.js → form-DjMe15QR.js} +1 -1
- package/dist/client/assets/{format-cron-lKWqEmle.js → format-cron-Bo3D4N9C.js} +1 -1
- package/dist/client/assets/ganttDiagram-R7GPNTJY-BHG-HNDj.js +292 -0
- package/dist/client/assets/{git-branch-BObm8Rlz.js → git-branch-CJ1NlVLY.js} +1 -1
- package/dist/client/assets/gitGraphDiagram-PDYL7XHY-D4bvs6_J.js +106 -0
- package/dist/client/assets/graph-D8MBmHRU.js +1 -0
- package/dist/client/assets/{heart-Du7nuefC.js → heart-Beze5rli.js} +1 -1
- package/dist/client/assets/{highlighted-body-KPVGNVTW-B_GO7V1P.js → highlighted-body-KPVGNVTW-B-za1R0D.js} +1 -1
- package/dist/client/assets/{image-lightbox-BZ1TV3mN.js → image-lightbox-a4gqhNXS.js} +1 -1
- package/dist/client/assets/{image-off-hnjcBIzN.js → image-off-dQCXn9D_.js} +1 -1
- package/dist/client/assets/{index-DoMJUxt_.js → index--vwACals.js} +1 -1
- package/dist/client/assets/{index-BVKXIbLh.js → index-B3VKw60l.js} +1 -1
- package/dist/client/assets/index-B3ybVnXe.js +23 -0
- package/dist/client/assets/{index-HxT_wkaZ.js → index-BJv8b9cZ.js} +1 -1
- package/dist/client/assets/{index-aXm0xP_2.js → index-BMhblg3s.js} +1 -1
- package/dist/client/assets/{index-4GC2fkeO.js → index-BMktWriw.js} +1 -1
- package/dist/client/assets/{index-Ci74HAFs.js → index-BPa0ZczY.js} +1 -1
- package/dist/client/assets/{index-1I8qHZDt.js → index-BTVsyrd0.js} +1 -1
- package/dist/client/assets/{index-DRea_Gi0.js → index-BTfwunle.js} +1 -1
- package/dist/client/assets/{index-BtbZpz4b.js → index-BaocSCDH.js} +1 -1
- package/dist/client/assets/{index-CCg7yRe1.js → index-Bk6YahnN.js} +1 -1
- package/dist/client/assets/{index-B0tAedq7.js → index-BqwfU5a7.js} +1 -1
- package/dist/client/assets/index-BydIKjk5.js +1 -0
- package/dist/client/assets/{index-Bm0z9mHt.js → index-C38pc-JE.js} +1 -1
- package/dist/client/assets/{index-Df7a-2P5.js → index-C9qjJR0B.js} +1 -1
- package/dist/client/assets/{index-CqoIjNC2.js → index-CAGOE4EU.js} +2 -2
- package/dist/client/assets/{index-D5TZCu8j.js → index-CDm1XkU1.js} +1 -1
- package/dist/client/assets/{index-CQCN6kWR.js → index-CGVRWEpN.js} +1 -1
- package/dist/client/assets/{index-CiQxS4Bn.js → index-CMlVfxJv.js} +1 -1
- package/dist/client/assets/{index-BeVbHOwX.js → index-CPxcbKL6.js} +2 -2
- package/dist/client/assets/{index-4PAAWURd.js → index-CU-gekzq.js} +1 -1
- package/dist/client/assets/{index-BnNTKsbt.js → index-Ckv0K82u.js} +1 -1
- package/dist/client/assets/{index-BUOcbPfv.js → index-CocSe_I3.js} +3 -3
- package/dist/client/assets/index-CodC2rG4.js +1 -0
- package/dist/client/assets/{index-BgzgdvDn.js → index-CxWJDJW7.js} +1 -1
- package/dist/client/assets/index-D18FqQKB.js +1 -0
- package/dist/client/assets/{index-BaRQVgiN.js → index-D4mYlxG0.js} +1 -1
- package/dist/client/assets/{index-Dc5cpBoO.js → index-DBdO-_iL.js} +240 -240
- package/dist/client/assets/{index-r_O6CmXY.js → index-DFN-GU8r.js} +1 -1
- package/dist/client/assets/{index-DkhM0fDi.js → index-DLdpa3d4.js} +1 -1
- package/dist/client/assets/{index-EZHlD3gf.js → index-DNlhbCX_.js} +1 -1
- package/dist/client/assets/{index-ox3ce99A.js → index-D_KBdkA4.js} +1 -1
- package/dist/client/assets/{index-WxtASL5_.js → index-Dbt6ttQb.js} +1 -1
- package/dist/client/assets/index-DfSOcv9s.js +74 -0
- package/dist/client/assets/{index-CBm3whA-.js → index-DnfhvN3q.js} +1 -1
- package/dist/client/assets/{index-BvjuGXcS.js → index-DpX_xwGs.js} +1 -1
- package/dist/client/assets/{index-C60RrnTd.js → index-DqD-Sg0W.js} +1 -1
- package/dist/client/assets/{index-Lh82Rz5C.js → index-Ds-LCBb6.js} +1 -1
- package/dist/client/assets/index-dnaC3n0i.js +17 -0
- package/dist/client/assets/{index-DB8TDRSm.js → index-hKY0860x.js} +1 -1
- package/dist/client/assets/{index-BP68J4pb.js → index-vNaWkS8Y.js} +1 -1
- package/dist/client/assets/{index-Ch-ON5gw.js → index-vieeLeZH.js} +1 -1
- package/dist/client/assets/{index-D6y4WeTi.js → index-yDf4EVDy.js} +1 -1
- package/dist/client/assets/{index.esm-DXsF3Bua.js → index.esm-Ruqz-OsH.js} +1 -1
- package/dist/client/assets/infoDiagram-MVDRKAX5-CmDlX3lx.js +2 -0
- package/dist/client/assets/init-Gi6I4Gst.js +1 -0
- package/dist/client/assets/{inline-code-DAEoWvTf.js → inline-code-plzdKGm9.js} +1 -1
- package/dist/client/assets/ishikawaDiagram-HPEHV2GE-DZFRAvrx.js +70 -0
- package/dist/client/assets/journeyDiagram-BOSHW7O7-B140KXYu.js +139 -0
- package/dist/client/assets/kanban-definition-FNSA4HC5-QCZgRJic.js +89 -0
- package/dist/client/assets/katex-DLorvT8M.js +257 -0
- package/dist/client/assets/{layers-CsM34LRv.js → layers-Br3LALac.js} +1 -1
- package/dist/client/assets/{lightbulb-B8JAixK_.js → lightbulb-CeJgUDoT.js} +1 -1
- package/dist/client/assets/linear-BT-xgETh.js +1 -0
- package/dist/client/assets/{link-2-Csc6okl3.js → link-2-BXcZwTAC.js} +1 -1
- package/dist/client/assets/{list-runtime-types-DQrZNB7x.js → list-runtime-types-CqKIrt9D.js} +1 -1
- package/dist/client/assets/{markdown-content-DPc7aD1j.js → markdown-content-BKbjOTI2.js} +1 -1
- package/dist/client/assets/{mention-pill-8P_w4muj.js → mention-pill-B-FgNE6o.js} +1 -1
- package/dist/client/assets/mermaid.core-Br9hJ7FR.js +312 -0
- package/dist/client/assets/{message-square-off-D5DXu2cY.js → message-square-off-Co0W--np.js} +1 -1
- package/dist/client/assets/mindmap-definition-6OY57UG3-BxjSZAec.js +98 -0
- package/dist/client/assets/{more-details-DEeu2M-p.js → more-details-BsdCkGTg.js} +1 -1
- package/dist/client/assets/ordinal-Cboi1Yqb.js +1 -0
- package/dist/client/assets/{owner-notice-BW4k1ycg.js → owner-notice-BxltHzJH.js} +1 -1
- package/dist/client/assets/{package-BSwwAFVm.js → package-DPgmy9lP.js} +1 -1
- package/dist/client/assets/{page-container-CjPUNtNw.js → page-container-HokGbFg_.js} +1 -1
- package/dist/client/assets/{paperclip-DQaRz34E.js → paperclip-BDnApT-_.js} +1 -1
- package/dist/client/assets/{path-input-CgXSYNZn.js → path-input-C22n3ghr.js} +1 -1
- package/dist/client/assets/pegDiagram-ECIUJNBX-utA2pUiu.js +1 -0
- package/dist/client/assets/pieDiagram-GNMPY74T-DjEry_VP.js +39 -0
- package/dist/client/assets/{plug-BaUXMfIl.js → plug-tLTAmXis.js} +1 -1
- package/dist/client/assets/{primer-trigger-DHB0vilf.js → primer-trigger-CfVHNFbe.js} +2 -2
- package/dist/client/assets/{profile-errors-JW2XTgia.js → profile-errors-Dvm4O6MR.js} +1 -1
- package/dist/client/assets/{progress-CErAw8zp.js → progress-BduTwXMX.js} +1 -1
- package/dist/client/assets/quadrantDiagram-D57K4MC3-DO9NgnEq.js +7 -0
- package/dist/client/assets/{query-error-state-BFWpEXsl.js → query-error-state-puwJHnzi.js} +1 -1
- package/dist/client/assets/query-keys-DeYqUDia.js +1 -0
- package/dist/client/assets/{radio-Bkx216ga.js → radio-DR4E05zZ.js} +1 -1
- package/dist/client/assets/railroadDiagram-Y72NRBL7-BTilAS9p.js +1 -0
- package/dist/client/assets/registry-B3Ss4ItQ.js +1 -0
- package/dist/client/assets/{relay-trace-schemas-DiZj_AFV.js → relay-trace-schemas-DwqIIDB9.js} +2 -2
- package/dist/client/assets/requirementDiagram-EQYSW5RA-C6rzY7GK.js +84 -0
- package/dist/client/assets/{room-files-source-BilZvdpf.js → room-files-source-Duo4oiqX.js} +1 -1
- package/dist/client/assets/{rotate-ccw-clock-D_SO1stN.js → rotate-ccw-clock-RJuoRE3k.js} +1 -1
- package/dist/client/assets/{rotate-cw-C68kM23F.js → rotate-cw-C0EpbK5k.js} +1 -1
- package/dist/client/assets/sankeyDiagram-SY24JHO5-BqpJRY1t.js +40 -0
- package/dist/client/assets/{scroll-area-CVWFUmJV.js → scroll-area-07T90PR6.js} +1 -1
- package/dist/client/assets/{search-x-BTFVvyA2.js → search-x-DQabogEL.js} +1 -1
- package/dist/client/assets/sequenceDiagram-BLEHNHQU-BHfzZpFt.js +169 -0
- package/dist/client/assets/{shield-check-Dpxi6WqO.js → shield-check-DbbCy17l.js} +1 -1
- package/dist/client/assets/{shield-x-CdCCgyXk.js → shield-x-Cuo1GTv4.js} +1 -1
- package/dist/client/assets/{signed-in-BxAnDo0S.js → signed-in-CFtA8gTK.js} +1 -1
- package/dist/client/assets/sizeCapture-INFHLROL-U0MO-4ua.js +1 -0
- package/dist/client/assets/{soul-file-CRfKVJX3.js → soul-file-wKTqbR0Y.js} +1 -1
- package/dist/client/assets/stateDiagram-v2-A6IESKWZ-fzo1sDsX.js +291 -0
- package/dist/client/assets/swimlanes-B3ENRKFQ-B7QcCUBU.js +1 -0
- package/dist/client/assets/swimlanesDiagram-AYQRV4AK-CgZZnzbW.js +8 -0
- package/dist/client/assets/{table-BL3xUC41.js → table-BjHA85BX.js} +1 -1
- package/dist/client/assets/{terminal-u_UCRzSM.js → terminal-qfxxVZaa.js} +1 -1
- package/dist/client/assets/timeline-definition-JXYKGLGB-okVlmef4.js +120 -0
- package/dist/client/assets/transform-BqqRT-Iy.js +1 -0
- package/dist/client/assets/{trust-posture-B-v4BWo7.js → trust-posture-BmW0KVP6.js} +1 -1
- package/dist/client/assets/{unplug-CFbC-L5W.js → unplug-BYKBdSMl.js} +1 -1
- package/dist/client/assets/{unverified-catalog-notice-ZUqscVFM.js → unverified-catalog-notice-CQHA4Cst.js} +1 -1
- package/dist/client/assets/{use-adapter-catalog-Z4MDWZAZ.js → use-adapter-catalog-rB4qQQ5D.js} +1 -1
- package/dist/client/assets/{use-bindings-CsTavmf-.js → use-bindings-DiFC7kWg.js} +1 -1
- package/dist/client/assets/{use-composer-prefs-BY2dTvep.js → use-composer-prefs-DHY5vJ0l.js} +1 -1
- package/dist/client/assets/{use-connector-management-L9l21yTi.js → use-connector-management-CoinXIID.js} +1 -1
- package/dist/client/assets/{use-deep-link-scroll-Bn2ZUtDY.js → use-deep-link-scroll-Cm8BRFAE.js} +1 -1
- package/dist/client/assets/{use-delete-binding-DLvdHtPD.js → use-delete-binding-FtM6qPfF.js} +1 -1
- package/dist/client/assets/{use-dev-links-DFvL8mIg.js → use-dev-links-TQFCV3vk.js} +1 -1
- package/dist/client/assets/{use-external-adapter-catalog-Be57G4tz.js → use-external-adapter-catalog-Lx8LZDAa.js} +1 -1
- package/dist/client/assets/{use-full-activity-feed-Cp3lYXdi.js → use-full-activity-feed-CmcBAvUM.js} +1 -1
- package/dist/client/assets/use-is-below-desktop-BB9kHnYm.js +1 -0
- package/dist/client/assets/use-is-hub-ab4UGRdN.js +1 -0
- package/dist/client/assets/{use-jump-back-in-ChH1FSEK.js → use-jump-back-in-V8G_6fYj.js} +3 -3
- package/dist/client/assets/{use-local-browser-zA8gMhcC.js → use-local-browser-CbS4typW.js} +1 -1
- package/dist/client/assets/{use-mesh-topology-CvoD-L1G.js → use-mesh-topology-DZ1qMT3J.js} +1 -1
- package/dist/client/assets/{use-mounted-ref-Ch0wqQry.js → use-mounted-ref-DUbNzP-m.js} +1 -1
- package/dist/client/assets/{use-notification-prefs-DeR05zhp.js → use-notification-prefs-BAsICJ96.js} +1 -1
- package/dist/client/assets/{use-panel-tab-placements-DdjrmaoK.js → use-panel-tab-placements-ymrpuL_s.js} +1 -1
- package/dist/client/assets/use-pending-read-BkCvAuX4.js +1 -0
- package/dist/client/assets/{use-personality-commit-qQfISO2-.js → use-personality-commit-rJOmDgC2.js} +1 -1
- package/dist/client/assets/{use-promo-activation-CwGoE7b-.js → use-promo-activation-BKeBloMI.js} +2 -2
- package/dist/client/assets/{use-promo-dismissals-BBqVN4hx.js → use-promo-dismissals-Cio8QMjL.js} +1 -1
- package/dist/client/assets/{use-pulse-freshness-BKW7tjvX.js → use-pulse-freshness-DZkMVbSM.js} +1 -1
- package/dist/client/assets/{use-relay-config-D5iieBXl.js → use-relay-config-CbZQKFhZ.js} +1 -1
- package/dist/client/assets/{use-room-follow-claim-BwZh2ZPH.js → use-room-follow-claim-DbJIsuWz.js} +1 -1
- package/dist/client/assets/{use-roving-tab-list-Ct7yDAUE.js → use-roving-tab-list-B4nZ7trj.js} +1 -1
- package/dist/client/assets/use-session-canvas-sAwc2L1A.js +25 -0
- package/dist/client/assets/{use-session-diagnostics-Dn-Wnyhh.js → use-session-diagnostics-0gcI762B.js} +2 -2
- package/dist/client/assets/{use-unclaimed-chats-M-c5tjXH.js → use-unclaimed-chats-BWIqOrvs.js} +1 -1
- package/dist/client/assets/use-update-config-DTL7WyZV.js +1 -0
- package/dist/client/assets/{useMutationState-Cd-VqRAv.js → useMutationState-C9Q5lRej.js} +1 -1
- package/dist/client/assets/usecaseDiagram-WPOLBNNX-CMjVaeX9.js +370 -0
- package/dist/client/assets/value-wA6veExk.js +1 -0
- package/dist/client/assets/vennDiagram-Q3Y3IDCW-BajZBf0H.js +34 -0
- package/dist/client/assets/wardleyDiagram-IVAIDKWA-BN4xF6JT.js +78 -0
- package/dist/client/assets/xychartDiagram-4URNHDU4-Cy0Z9a28.js +7 -0
- package/dist/client/index.html +1 -1
- package/dist/server/index.js +31467 -29078
- package/dist/server/index.js.map +2 -2
- package/package.json +5 -5
- package/dist/client/assets/BlintzCanvas-ClOKWzws.js +0 -1141
- package/dist/client/assets/CanvasFileContent-B_8zsIas.js +0 -2
- package/dist/client/assets/CanvasModel3dContent-UokbHY9i.js +0 -2
- package/dist/client/assets/HandlePage-BdRWgke2.js +0 -1
- package/dist/client/assets/NamePage-DyH8JAqT.js +0 -1
- package/dist/client/assets/PhotoPage-BHvRQnex.js +0 -1
- package/dist/client/assets/RoomSurface-DaRCf4og.js +0 -44
- package/dist/client/assets/TopologyGraph-D3CxaLGX.js +0 -30
- package/dist/client/assets/_shell-BRH2Y-U-.js +0 -80
- package/dist/client/assets/_shell.channels-CRkJHU5R.js +0 -10
- package/dist/client/assets/_shell.marketplace-DGN_IdZY.js +0 -1
- package/dist/client/assets/_shell.marketplace_.sources-2YMpLInp.js +0 -1
- package/dist/client/assets/_shell.session-D871zZl3.js +0 -61
- package/dist/client/assets/_shell.x._extensionId-D3-n5IRW.js +0 -1
- package/dist/client/assets/_shell.x._extensionId_._-D3-n5IRW.js +0 -1
- package/dist/client/assets/index-Cdyszxoa.js +0 -17
- package/dist/client/assets/index-DCOOlbEt.js +0 -1
- package/dist/client/assets/index-DHYvT3nr.js +0 -23
- package/dist/client/assets/index-Dain_3cO.js +0 -1
- package/dist/client/assets/index-_5Dn0bFm.js +0 -74
- package/dist/client/assets/registry-Ce1VRIS3.js +0 -1
- package/dist/client/assets/use-is-below-desktop-DmekpHAF.js +0 -1
- package/dist/client/assets/use-is-hub-el7LTkg3.js +0 -1
- package/dist/client/assets/use-pending-read-DBpte0GI.js +0 -1
- package/dist/client/assets/use-session-canvas-CJrfZrYG.js +0 -24
- package/dist/client/assets/use-update-config-DhlbZldm.js +0 -1
package/dist/bin/cli.js
CHANGED
|
@@ -23009,7 +23009,7 @@ var init_config_sections = __esm({
|
|
|
23009
23009
|
});
|
|
23010
23010
|
|
|
23011
23011
|
// ../shared/src/memory-provider.ts
|
|
23012
|
-
var AgentMemoryRefSchema, MemoryCapabilitiesSchema, BUILTIN_MEMORY_PROVIDER_ID, MemoryProviderInfoSchema, MemorySnapshotSchema, MemoryProvenanceSchema, MemoryWriteOpSchema, MemoryWriteResultSchema, MemoryQuerySchema, MemoryHitSchema, MemoryHitsSchema, MemorySelectorSchema;
|
|
23012
|
+
var AgentMemoryRefSchema, MemoryCapabilitiesSchema, BUILTIN_MEMORY_PROVIDER_ID, MemoryProviderInfoSchema, MemorySnapshotSchema, WINDOWS_RESERVED_NAME, MemoryNoteNameSchema, MemoryNoteDescriptionSchema, MemoryProvenanceSchema, MemoryWriteOpSchema, MemoryWriteResultSchema, MemoryQuerySchema, MemoryHitSchema, MemoryHitsSchema, MemorySelectorSchema, MemoryNoteListQuerySchema, MemoryNoteEntrySchema, MemoryNoteListSchema;
|
|
23013
23013
|
var init_memory_provider = __esm({
|
|
23014
23014
|
"../shared/src/memory-provider.ts"() {
|
|
23015
23015
|
"use strict";
|
|
@@ -23039,7 +23039,18 @@ var init_memory_provider = __esm({
|
|
|
23039
23039
|
* ({@link MemoryCapExceededError}), not a background rewrite of a file the
|
|
23040
23040
|
* operator can open in an editor.
|
|
23041
23041
|
*/
|
|
23042
|
-
consolidate: external_exports.boolean()
|
|
23042
|
+
consolidate: external_exports.boolean(),
|
|
23043
|
+
/**
|
|
23044
|
+
* Can this backend keep NOTES FILES beside the capped memory — the second
|
|
23045
|
+
* level, read on demand rather than carried in every prompt
|
|
23046
|
+
* ({@link MemoryProvider.listNotes}, {@link MemoryProvider.readNote}, and a
|
|
23047
|
+
* write or forget that names a `note`)?
|
|
23048
|
+
*
|
|
23049
|
+
* The builtin provider declares `true`: `<agentPath>/.dork/memory/<name>.md`.
|
|
23050
|
+
* A backend without it refuses all four loudly, so "this backend keeps no
|
|
23051
|
+
* notes" never arrives as "you have no notes".
|
|
23052
|
+
*/
|
|
23053
|
+
notes: external_exports.boolean()
|
|
23043
23054
|
});
|
|
23044
23055
|
BUILTIN_MEMORY_PROVIDER_ID = "builtin";
|
|
23045
23056
|
MemoryProviderInfoSchema = external_exports.object({
|
|
@@ -23135,6 +23146,12 @@ var init_memory_provider = __esm({
|
|
|
23135
23146
|
});
|
|
23136
23147
|
}
|
|
23137
23148
|
});
|
|
23149
|
+
WINDOWS_RESERVED_NAME = /^(?:con|prn|aux|nul|com\d|lpt\d)$/;
|
|
23150
|
+
MemoryNoteNameSchema = external_exports.string().regex(
|
|
23151
|
+
/^[a-z0-9][a-z0-9_-]{0,79}$/,
|
|
23152
|
+
"a note name is lowercase letters, digits, - and _, starting with a letter or digit, at most 80 characters, with no extension"
|
|
23153
|
+
).refine((name2) => !WINDOWS_RESERVED_NAME.test(name2), "that name is reserved on Windows");
|
|
23154
|
+
MemoryNoteDescriptionSchema = external_exports.string().trim().min(1).max(200).refine((value) => !/[\r\n\u0085\u2028\u2029]/.test(value), "a description is one line");
|
|
23138
23155
|
MemoryProvenanceSchema = external_exports.object({
|
|
23139
23156
|
/**
|
|
23140
23157
|
* The room this was learned in, as a person would name it (`'#general'`), or
|
|
@@ -23150,7 +23167,14 @@ var init_memory_provider = __esm({
|
|
|
23150
23167
|
* stamp then says so, wherever the note was written, so a later session
|
|
23151
23168
|
* never reads it as the operator's own.
|
|
23152
23169
|
*/
|
|
23153
|
-
outsider: external_exports.boolean().optional()
|
|
23170
|
+
outsider: external_exports.boolean().optional(),
|
|
23171
|
+
/**
|
|
23172
|
+
* True only for a note a migration copied in from Claude Code's own memory,
|
|
23173
|
+
* never for one an agent saved: the stamp then reads
|
|
23174
|
+
* `(migrated from Claude Code memory, <date>)` instead of naming a room.
|
|
23175
|
+
* Set by the migration script, which has no turn to derive a room from.
|
|
23176
|
+
*/
|
|
23177
|
+
migrated: external_exports.boolean().optional()
|
|
23154
23178
|
});
|
|
23155
23179
|
MemoryWriteOpSchema = external_exports.discriminatedUnion("action", [
|
|
23156
23180
|
external_exports.object({
|
|
@@ -23159,7 +23183,15 @@ var init_memory_provider = __esm({
|
|
|
23159
23183
|
/** What to remember, in the agent's own words. */
|
|
23160
23184
|
text: external_exports.string().min(1),
|
|
23161
23185
|
/** Where it was learned. Omitted only by a caller with no turn context, e.g. a migration. */
|
|
23162
|
-
provenance: MemoryProvenanceSchema.optional()
|
|
23186
|
+
provenance: MemoryProvenanceSchema.optional(),
|
|
23187
|
+
/** Which notes file to write, or omitted for the capped memory itself. Gated on `notes`. */
|
|
23188
|
+
note: MemoryNoteNameSchema.optional(),
|
|
23189
|
+
/**
|
|
23190
|
+
* What the notes file is about, in one line. REQUIRED when this `add`
|
|
23191
|
+
* creates the file and ignored otherwise: a list of bare names gives an
|
|
23192
|
+
* agent nothing to choose by.
|
|
23193
|
+
*/
|
|
23194
|
+
description: MemoryNoteDescriptionSchema.optional()
|
|
23163
23195
|
}),
|
|
23164
23196
|
external_exports.object({
|
|
23165
23197
|
/** Rewrite an existing note. */
|
|
@@ -23167,13 +23199,17 @@ var init_memory_provider = __esm({
|
|
|
23167
23199
|
/** Text that must appear EXACTLY ONCE in the current memory. */
|
|
23168
23200
|
oldText: external_exports.string().min(1),
|
|
23169
23201
|
/** What replaces it. */
|
|
23170
|
-
text: external_exports.string().min(1)
|
|
23202
|
+
text: external_exports.string().min(1),
|
|
23203
|
+
/** Which notes file to edit, or omitted for the capped memory itself. */
|
|
23204
|
+
note: MemoryNoteNameSchema.optional()
|
|
23171
23205
|
}),
|
|
23172
23206
|
external_exports.object({
|
|
23173
23207
|
/** Forget an existing note. */
|
|
23174
23208
|
action: external_exports.literal("remove"),
|
|
23175
23209
|
/** Text that must appear EXACTLY ONCE in the current memory. */
|
|
23176
|
-
oldText: external_exports.string().min(1)
|
|
23210
|
+
oldText: external_exports.string().min(1),
|
|
23211
|
+
/** Which notes file to edit, or omitted for the capped memory itself. */
|
|
23212
|
+
note: MemoryNoteNameSchema.optional()
|
|
23177
23213
|
})
|
|
23178
23214
|
]);
|
|
23179
23215
|
MemoryWriteResultSchema = external_exports.object({
|
|
@@ -23202,7 +23238,45 @@ var init_memory_provider = __esm({
|
|
|
23202
23238
|
});
|
|
23203
23239
|
MemorySelectorSchema = external_exports.object({
|
|
23204
23240
|
/** Text that must appear EXACTLY ONCE in the current memory. */
|
|
23205
|
-
text: external_exports.string().min(1)
|
|
23241
|
+
text: external_exports.string().min(1),
|
|
23242
|
+
/** Which notes file to forget from, or omitted for the capped memory itself. */
|
|
23243
|
+
note: MemoryNoteNameSchema.optional()
|
|
23244
|
+
});
|
|
23245
|
+
MemoryNoteListQuerySchema = external_exports.object({
|
|
23246
|
+
/** Only notes whose name or description contains this, case-insensitively. */
|
|
23247
|
+
query: external_exports.string().trim().min(1).max(200).optional(),
|
|
23248
|
+
/** Where the previous page stopped: the `nextCursor` it returned. */
|
|
23249
|
+
cursor: external_exports.string().min(1).max(200).optional(),
|
|
23250
|
+
/** How many notes at most. A backend may return fewer. */
|
|
23251
|
+
limit: external_exports.number().int().positive().max(200).optional()
|
|
23252
|
+
});
|
|
23253
|
+
MemoryNoteEntrySchema = external_exports.object({
|
|
23254
|
+
/** The file's name, which is what `readNote` and a write's `note` take. */
|
|
23255
|
+
name: MemoryNoteNameSchema,
|
|
23256
|
+
/**
|
|
23257
|
+
* What it is about: its `description:` frontmatter, or its first line of text
|
|
23258
|
+
* when it has none (a note written before descriptions were required).
|
|
23259
|
+
*/
|
|
23260
|
+
description: external_exports.string(),
|
|
23261
|
+
/** Size on disk, in bytes. */
|
|
23262
|
+
bytes: external_exports.number().int().min(0),
|
|
23263
|
+
/** When it last changed, ISO 8601. The list is newest first. */
|
|
23264
|
+
updatedAt: external_exports.string().min(1),
|
|
23265
|
+
/** When a migration copied it in from Claude Code's memory, ISO date. Absent for the agent's own. */
|
|
23266
|
+
migratedAt: external_exports.string().min(1).optional()
|
|
23267
|
+
});
|
|
23268
|
+
MemoryNoteListSchema = external_exports.object({
|
|
23269
|
+
status: external_exports.enum(["ok", "error"]),
|
|
23270
|
+
/** This page of notes, newest first. */
|
|
23271
|
+
notes: external_exports.array(MemoryNoteEntrySchema),
|
|
23272
|
+
/** How many notes match, across every page. */
|
|
23273
|
+
total: external_exports.number().int().min(0),
|
|
23274
|
+
/** How many of those a migration copied in within the last week, for the tidy nudge. */
|
|
23275
|
+
recentlyMigrated: external_exports.number().int().min(0),
|
|
23276
|
+
/** Pass back as `cursor` for the next page. Absent on the last page. */
|
|
23277
|
+
nextCursor: external_exports.string().min(1).optional(),
|
|
23278
|
+
/** Why the read failed. Present iff `status === 'error'`; for the server log. */
|
|
23279
|
+
error: external_exports.string().min(1).optional()
|
|
23206
23280
|
});
|
|
23207
23281
|
}
|
|
23208
23282
|
});
|
|
@@ -23615,6 +23689,20 @@ var init_config_schema = __esm({
|
|
|
23615
23689
|
sessionRelay: external_exports.object({
|
|
23616
23690
|
enabled: external_exports.boolean().default(false)
|
|
23617
23691
|
}).default(() => ({ enabled: false })),
|
|
23692
|
+
/**
|
|
23693
|
+
* Docs: markdown documents people and agents write together, with embeds,
|
|
23694
|
+
* wiki links, comments and live editing (DOR-2981 to DOR-2984).
|
|
23695
|
+
*
|
|
23696
|
+
* An experiment, OFF by default: while it is off the `/api/documents`
|
|
23697
|
+
* routes answer 404 and the canvas editor gets no embed components, wiki
|
|
23698
|
+
* link resolution, comments or live editing (the editor still parses the
|
|
23699
|
+
* `::name` and `[[link]]` syntax either way). Read on every request, so a
|
|
23700
|
+
* change takes effect at once. It joins Settings → Experiments with the
|
|
23701
|
+
* first Docs feature; graduation is DOR-2993.
|
|
23702
|
+
*/
|
|
23703
|
+
docs: external_exports.object({
|
|
23704
|
+
enabled: external_exports.boolean().default(false)
|
|
23705
|
+
}).default(() => ({ enabled: false })),
|
|
23618
23706
|
/**
|
|
23619
23707
|
* Letting agents on other systems talk to the agents on this one.
|
|
23620
23708
|
*
|
|
@@ -26274,7 +26362,6 @@ function repoUrl(path66 = "") {
|
|
|
26274
26362
|
var GITHUB_ORG, links;
|
|
26275
26363
|
var init_links = __esm({
|
|
26276
26364
|
"../shared/src/links.ts"() {
|
|
26277
|
-
"use strict";
|
|
26278
26365
|
GITHUB_ORG = "dork-labs";
|
|
26279
26366
|
links = {
|
|
26280
26367
|
/** The public origin of the marketing site, the docs and DorkOS Cloud. */
|
|
@@ -26673,7 +26760,7 @@ import path2 from "path";
|
|
|
26673
26760
|
import { fileURLToPath } from "url";
|
|
26674
26761
|
function resolveVersion() {
|
|
26675
26762
|
if (env2.DORKOS_VERSION_OVERRIDE) return env2.DORKOS_VERSION_OVERRIDE;
|
|
26676
|
-
if (true) return "0.
|
|
26763
|
+
if (true) return "0.122.0";
|
|
26677
26764
|
const pkgPath = path2.join(path2.dirname(fileURLToPath(import.meta.url)), "../../package.json");
|
|
26678
26765
|
return JSON.parse(readFileSync(pkgPath, "utf-8")).version;
|
|
26679
26766
|
}
|
|
@@ -45986,6 +46073,7 @@ var init_marketplace_schemas = __esm({
|
|
|
45986
46073
|
var SKILL_FILENAME, WIDGET_TEMPLATE_SUFFIX;
|
|
45987
46074
|
var init_constants7 = __esm({
|
|
45988
46075
|
"../skills/src/constants.ts"() {
|
|
46076
|
+
"use strict";
|
|
45989
46077
|
SKILL_FILENAME = "SKILL.md";
|
|
45990
46078
|
WIDGET_TEMPLATE_SUFFIX = ".widget.json";
|
|
45991
46079
|
}
|
|
@@ -49168,7 +49256,6 @@ function parseFrontmatter(content) {
|
|
|
49168
49256
|
var DATA_LANGUAGES, FRONTMATTER_LIMITS, UnsupportedFrontmatterError, OversizedFrontmatterError, NonMappingFrontmatterError, ALIAS_NODE, FRONTMATTER_PARSERS;
|
|
49169
49257
|
var init_frontmatter = __esm({
|
|
49170
49258
|
"../skills/src/frontmatter.ts"() {
|
|
49171
|
-
"use strict";
|
|
49172
49259
|
init_js_yaml();
|
|
49173
49260
|
DATA_LANGUAGES = /* @__PURE__ */ new Map([
|
|
49174
49261
|
["yaml", "yaml"],
|
|
@@ -52299,7 +52386,6 @@ function foldLegacyPermissionFields(raw) {
|
|
|
52299
52386
|
var AgentRuntimeSchema, AgentHealthStatusSchema, ResponseModeSchema, AgentBehaviorSchema, McpServerAuthKindSchema, McpServerTransportSchema, ManagedMcpServerSchema, McpServerAuthStatusSchema, McpClientOriginSchema, ManagedMcpServerViewSchema, TraitsSchema, ConventionsSchema, AgentModelSchema, AgentEffortSchema, AgentWorkspaceBindingSchema, WORKSPACE_BINDING_OPENAPI, UNREADABLE_BINDING_FALLBACK, AgentManifestSchema2, LEGACY_GROUP_AREAS, AgentManifestFileSchema, AgentPathEntrySchema, AgentHintsSchema, DiscoveryCandidateSchema, DenialRecordSchema, AGENT_PAUSED_CODE, AGENT_PAUSE_REASON_MAX, AgentPauseSchema, AgentPauseListSchema, AgentPauseRequestSchema, AgentPauseResultSchema, TopologyAgentSchema, NamespaceInfoSchema, OPEN_MESH_NAMESPACE, CrossNamespaceRuleSchema, TopologyViewSchema, DiscoverRequestSchema, RegisterAgentRequestSchema, DenyRequestSchema, UpdateAgentRequestSchema, UpdateAgentConventionsSchema, WILDCARD_NAMESPACE_BOTH_SIDES_MESSAGE, UpdateAccessRuleRequestSchema, ResolveAgentsRequestSchema, ResolveAgentsResponseSchema, CreateAgentOptionsSchema, CreateAgentRequestSchema, AgentListQuerySchema, AgentHealthSchema, MeshStatusSchema, MeshInspectSchema, MeshLifecycleEventSchema, HeartbeatRequestSchema, ScanProgressSchema;
|
|
52300
52387
|
var init_mesh_schemas = __esm({
|
|
52301
52388
|
"../shared/src/mesh-schemas.ts"() {
|
|
52302
|
-
"use strict";
|
|
52303
52389
|
init_zod();
|
|
52304
52390
|
init_zod_openapi();
|
|
52305
52391
|
init_validation();
|
|
@@ -52895,15 +52981,36 @@ var init_mesh_schemas = __esm({
|
|
|
52895
52981
|
}
|
|
52896
52982
|
});
|
|
52897
52983
|
|
|
52984
|
+
// ../shared/src/direct-notes-context.ts
|
|
52985
|
+
var DirectNotesDataSchema;
|
|
52986
|
+
var init_direct_notes_context = __esm({
|
|
52987
|
+
"../shared/src/direct-notes-context.ts"() {
|
|
52988
|
+
"use strict";
|
|
52989
|
+
init_zod();
|
|
52990
|
+
DirectNotesDataSchema = external_exports.object({
|
|
52991
|
+
withName: external_exports.string().min(1),
|
|
52992
|
+
notes: external_exports.array(
|
|
52993
|
+
external_exports.object({
|
|
52994
|
+
at: external_exports.string().min(1),
|
|
52995
|
+
from: external_exports.string().min(1),
|
|
52996
|
+
fromYou: external_exports.boolean(),
|
|
52997
|
+
text: external_exports.string()
|
|
52998
|
+
})
|
|
52999
|
+
).min(1),
|
|
53000
|
+
omitted: external_exports.number().int().nonnegative()
|
|
53001
|
+
});
|
|
53002
|
+
}
|
|
53003
|
+
});
|
|
53004
|
+
|
|
52898
53005
|
// ../shared/src/additional-context.ts
|
|
52899
53006
|
var GitStatusDataSchema, EnvDataSchema, RelayContextDataSchema, RoomContextOriginSchema, RoomContextAuthorSchema, RoomContextMemberSchema, RoomContextEntrySchema, RoomContextAcknowledgmentSchema, MainMovedSchema, WorktreeRefreshOutcomeSchema, RoomContextFilesSchema, RoomContextDataSchema, SeedContextDataSchema, StagedContextDataSchema, AccountsAccessDataSchema, ContextWarningDataSchema, ApprovalVerdictDataSchema, AdditionalContextEntrySchema, AdditionalContextSchema, ClientContextSchema;
|
|
52900
53007
|
var init_additional_context = __esm({
|
|
52901
53008
|
"../shared/src/additional-context.ts"() {
|
|
52902
|
-
"use strict";
|
|
52903
53009
|
init_zod();
|
|
52904
53010
|
init_canvas_channel_schemas();
|
|
52905
53011
|
init_mesh_schemas();
|
|
52906
53012
|
init_schemas4();
|
|
53013
|
+
init_direct_notes_context();
|
|
52907
53014
|
GitStatusDataSchema = external_exports.object({
|
|
52908
53015
|
isRepo: external_exports.boolean(),
|
|
52909
53016
|
branch: external_exports.string().optional(),
|
|
@@ -53126,6 +53233,11 @@ var init_additional_context = __esm({
|
|
|
53126
53233
|
scope: external_exports.literal("per-turn"),
|
|
53127
53234
|
data: ApprovalVerdictDataSchema
|
|
53128
53235
|
}),
|
|
53236
|
+
external_exports.object({
|
|
53237
|
+
kind: external_exports.literal("direct_notes"),
|
|
53238
|
+
scope: external_exports.literal("per-turn"),
|
|
53239
|
+
data: DirectNotesDataSchema
|
|
53240
|
+
}),
|
|
53129
53241
|
external_exports.object({
|
|
53130
53242
|
kind: external_exports.literal("context_warning"),
|
|
53131
53243
|
scope: external_exports.literal("per-turn"),
|
|
@@ -53178,7 +53290,6 @@ var init_capabilities = __esm({
|
|
|
53178
53290
|
var PROJECT_NAME_PATTERN, ProjectRefSchema, ProjectInfoSchema, ProjectListResponseSchema, ProjectResolveQuerySchema, ProjectResolveResponseSchema, AccountEligibilityRowSchema, AccountEligibilityQuerySchema, AccountEligibilityResponseSchema, ProjectAccountsRequestSchema, ProjectWithoutCreditsRequestSchema, OnlyProjectsRequestSchema, OnlyProjectsResponseSchema;
|
|
53179
53291
|
var init_project_schemas = __esm({
|
|
53180
53292
|
"../shared/src/project-schemas.ts"() {
|
|
53181
|
-
"use strict";
|
|
53182
53293
|
init_zod();
|
|
53183
53294
|
init_zod_openapi();
|
|
53184
53295
|
extendZodWithOpenApiOnce();
|
|
@@ -53974,7 +54085,6 @@ function isSafeSigninUrl(value) {
|
|
|
53974
54085
|
var PermissionModeSchema, PermissionModeIdSchema, PermissionStopSchema2, SessionTaskStatusSchema, StreamEventTypeSchema, QuestionOptionSchema, QuestionItemSchema, EffortLevelSchema, SessionOriginSchema, SessionLifecycleSchema, LimitPlanSchema, LimitStateSchema, SessionLimitSchema, ContinueAccountOptionSchema, ContinueOptionsResponseSchema, ContinueSessionRequestSchema, ContinueSessionResponseSchema, WaitForResetRequestSchema, LimitPlanResponseSchema, TrackerItemRefSchema, SessionStartedBySchema, SessionSchema, SessionUpdateResponseSchema, SessionSettingsSchema, StoredSessionSettingsResponseSchema, UpdateSessionRequestSchema, ForkSessionRequestSchema, ReloadPluginsResultSchema, SEED_CONTEXT_MAX_LENGTH, MessageDispositionSchema, DispositionDowngradeReasonSchema, MessageDeliveryOutcomeSchema, InterruptOutcomeSchema, InterruptReasonSchema, InterruptReceiptSchema, QueuedWaitingOnSchema, QueuedMessageSchema, SendMessageRequestSchema, SendMessageResponseSchema, SessionTriggerResponseSchema, SessionQueueResponseSchema, QueueMoveTargetSchema, UpdateQueuedMessageRequestSchema, UpdateQueuedMessageResponseSchema, DENY_REASON_MAX_LENGTH, ApprovalRequestSchema, BatchApprovalRequestSchema, SubmitAnswersRequestSchema, UI_ACTION_ID_MAX_LENGTH, UI_ACTION_TITLE_MAX_LENGTH, UI_ACTION_PAYLOAD_MAX_LENGTH, UiActionRequestSchema, McpAppPermissionSchema, McpAppResourceRequestSchema, McpAppResourceResponseSchema, ElicitationModeSchema, ElicitationActionSchema, SubmitElicitationRequestSchema, ListSessionsQuerySchema, SessionListWarningSchema, SessionListResponseSchema, RecentSessionsQuerySchema, RecentSessionsResponseSchema, SessionDailyCountsQuerySchema, SessionDailyCountsResponseSchema, CommandsQuerySchema, TextDeltaSchema, ThinkingDeltaSchema, ToolCallStatusSchema, McpAppRefSchema, ToolCallEventSchema, ToolProgressEventSchema, AlwaysAllowScopeSchema, ApprovalEventSchema, QuestionPromptEventSchema, PendingInteractionDTOSchema, ErrorCategorySchema, ErrorEventSchema, ApiRetryEventSchema, DoneEventSchema, TerminalReasonSchema, UsageStateSchema, UsageStatusSchema, SessionStatusEventSchema, ContextUsageCategorySchema, ContextUsageSchema, TaskItemSchema, TaskUpdateEventSchema, RelayReceiptEventSchema, MessageDeliveredEventSchema, RelayMessageEventSchema, BackgroundTaskTypeSchema, BackgroundTaskStatusSchema, BackgroundTaskStartedEventSchema, BackgroundTaskProgressEventSchema, BackgroundTaskDoneEventSchema, SubagentTextDeltaEventSchema, SystemStatusEventSchema, OperationKindSchema, OperationStateSchema, OperationProgressEventShapeSchema, OperationProgressEventSchema, MemoryEntrySchema, MemoryRecallEventSchema, agentCompactionShape, CompactBoundaryEventSchema, sessionImageShape, SessionImageEventSchema, deniedAgentShape, PermissionDeniedEventSchema, ModelSubstitutedEventSchema, PromptSuggestionEventSchema, HookStartedEventSchema, HookProgressEventSchema, HookResponseEventSchema, SdkSessionStateSchema, SessionStateChangedEventSchema, ElicitationPromptEventSchema, ElicitationCompleteEventSchema, InteractionCancelledEventSchema, CapabilityApprovalRequiredEventSchema, CapabilityApprovalResolvedEventSchema, SigninUrlSchema, MCP_SIGNIN_OUTCOMES, McpSigninOutcomeSchema, McpSigninRequiredEventSchema, McpSigninResolvedEventSchema, StreamEventSchema, TextPartSchema, HookStatusSchema, HookPartSchema, ToolApprovalOutcomeSchema, QuestionOutcomeSchema, ToolCallPartSchema, BackgroundTaskPartSchema, ThinkingPartSchema, ErrorPartSchema, ElicitationPartSchema, CapabilityApprovalPartSchema, McpSigninPartSchema, MemoryRecallPartSchema, PermissionDeniedPartSchema, ModelSubstitutedPartSchema, CompactBoundaryPartSchema, ImagePartSchema, MessagePartSchema, MessageTypeSchema, HistoryToolCallSchema, CompactMetadataSchema, HistoryMessageSchema, HistoryReadSchema, CommandEntrySchema, CommandRegistrySchema, FileListQuerySchema, RawFileQuerySchema, FileListResponseSchema, FileEntrySchema, FileTreeQuerySchema, FileTreeResponseSchema, FileContentQuerySchema, FileContentResponseSchema, CreateEntryRequestSchema, CreateEntryResponseSchema, DeleteEntryQuerySchema, RenameEntryRequestSchema, CopyEntryRequestSchema, RevealEntryRequestSchema, DiffBaselineOriginSchema, DiffBaselineQuerySchema, DiffBaselineResponseSchema, AdvanceDiffBaselineRequestSchema, DiffPendingQuerySchema, DiffPendingResponseSchema, DiffBaselineRawQuerySchema, RevertDiffBaselineRequestSchema, FileMutationResponseSchema, WorkbenchSignRequestSchema, WorkbenchSignResponseSchema, WorkbenchProbeRequestSchema, WorkbenchProbeResponseSchema, BrowseDirectoryQuerySchema, DirectoryEntrySchema, BrowseDirectoryResponseSchema, TunnelStatusSchema, LanAccessStatusSchema, RemoteAccessStateSchema, RemoteAccessAvailabilitySchema, RemoteAccessEnrolmentSchema, RemoteAccessReportSchema, HealthResponseSchema, ExecutionDefaultsSchema, ExperimentStateSchema, ServerConfigSchema2, ModelTierSchema, ModelOptionSchema, SubagentInfoSchema, GitStatusResponseSchema, GitStatusErrorSchema, ErrorResponseSchema, SessionLockedErrorSchema, TaskStatusSchema, SettableTaskStatusSchema, TaskNameSchema, TaskRunStatusSchema, TaskRunTriggerSchema, TaskSchema, TaskRunSchema, CancelTaskRunResponseSchema, TaskTemplateSchema, TASK_DURATION_PATTERN, TASK_DURATION_MAX, TASK_DESCRIPTION_MAX, CreateTaskRequestSchema, SIDEBAR_TAB_ID_PATTERN, ShapeLiveLayoutCaptureSchema, ForkShapeRequestSchema, UpdateTaskRequestSchema, ListTaskRunsQuerySchema, ConfigPatchRequestSchema, ConfigPatchResponseSchema, UploadResultSchema, UploadResponseSchema, UploadProgressSchema, CanvasMediaSrcSchema, UiCanvasContentSchema, UiPanelIdSchema, UiToastLevelSchema, CELEBRATION_KINDS, CELEBRATION_KIND_SYNONYMS, CelebrationKindSchema, UiCommandTargetSchema, UiCommandSchema, UiCommandEventSchema, UiStateSchema, UiStateReportDocumentSchema, UiStateReportSchema, DevtoolsConsoleLevelSchema, DEVTOOLS_ARGS_MAX_CHARS, DevtoolsConsoleEntrySchema, DevtoolsNetworkEntrySchema, DEVTOOLS_CONSOLE_BATCH_MAX, DEVTOOLS_NETWORK_BATCH_MAX, DEVTOOLS_SCREENSHOT_MAX_CHARS, DevtoolsScreenshotResultSchema, DevtoolsIngestSchema, BrowserTargetSchema, BrowserActCommandSchema, BrowserPageSummarySchema, DEVTOOLS_OUTLINE_MAX_CHARS, DevtoolsActionResultSchema, DevtoolsRecordingUploadSchema, KeepAwakeUnsupportedReasonSchema, KeepAwakeStatusSchema;
|
|
53975
54086
|
var init_schemas4 = __esm({
|
|
53976
54087
|
"../shared/src/schemas.ts"() {
|
|
53977
|
-
"use strict";
|
|
53978
54088
|
init_canvas_channel_schemas();
|
|
53979
54089
|
init_zod();
|
|
53980
54090
|
init_zod_openapi();
|
|
@@ -58664,6 +58774,7 @@ function validateSlug(s2) {
|
|
|
58664
58774
|
}
|
|
58665
58775
|
var init_slug = __esm({
|
|
58666
58776
|
"../skills/src/slug.ts"() {
|
|
58777
|
+
"use strict";
|
|
58667
58778
|
}
|
|
58668
58779
|
});
|
|
58669
58780
|
|
|
@@ -82927,7 +83038,7 @@ var init_factory = __esm({
|
|
|
82927
83038
|
}
|
|
82928
83039
|
return transformedData;
|
|
82929
83040
|
};
|
|
82930
|
-
const transformOutput = async (data, inputModel, select2 = [],
|
|
83041
|
+
const transformOutput = async (data, inputModel, select2 = [], join62) => {
|
|
82931
83042
|
const transformSingleOutput = async (data2, inputModel2, select3 = []) => {
|
|
82932
83043
|
if (!data2) return null;
|
|
82933
83044
|
const modelKey2 = getDefaultModelName(inputModel2);
|
|
@@ -82964,10 +83075,10 @@ var init_factory = __esm({
|
|
|
82964
83075
|
}
|
|
82965
83076
|
return transformedData2;
|
|
82966
83077
|
};
|
|
82967
|
-
if (!
|
|
83078
|
+
if (!join62 || Object.keys(join62).length === 0) return await transformSingleOutput(data, inputModel, select2);
|
|
82968
83079
|
const modelKey = getDefaultModelName(inputModel);
|
|
82969
83080
|
const transformedData = await transformSingleOutput(data, modelKey, select2);
|
|
82970
|
-
const requiredModels = Object.entries(
|
|
83081
|
+
const requiredModels = Object.entries(join62).map(([model, joinConfig]) => ({
|
|
82971
83082
|
modelName: model,
|
|
82972
83083
|
defaultModelName: joinConfig.modelKey ?? getDefaultModelName(model),
|
|
82973
83084
|
joinConfig
|
|
@@ -83066,8 +83177,8 @@ var init_factory = __esm({
|
|
|
83066
83177
|
if (!unsanitizedJoin) return void 0;
|
|
83067
83178
|
if (Object.keys(unsanitizedJoin).length === 0) return void 0;
|
|
83068
83179
|
const transformedJoin = {};
|
|
83069
|
-
for (const [model,
|
|
83070
|
-
if (!
|
|
83180
|
+
for (const [model, join62] of Object.entries(unsanitizedJoin)) {
|
|
83181
|
+
if (!join62) continue;
|
|
83071
83182
|
const defaultModelName = getDefaultModelName(model);
|
|
83072
83183
|
const defaultBaseModelName = getDefaultModelName(baseModel);
|
|
83073
83184
|
let foreignKeys = Object.entries(schema3[defaultModelName].fields).filter(([field, fieldAttributes]) => fieldAttributes.references && getDefaultModelName(fieldAttributes.references.model) === defaultBaseModelName);
|
|
@@ -83108,7 +83219,7 @@ var init_factory = __esm({
|
|
|
83108
83219
|
const isUnique = to === "id" ? true : foreignKeyAttributes.unique ?? false;
|
|
83109
83220
|
let limit = options.advanced?.database?.defaultFindManyLimit ?? 100;
|
|
83110
83221
|
if (isUnique) limit = 1;
|
|
83111
|
-
else if (typeof
|
|
83222
|
+
else if (typeof join62 === "object" && typeof join62.limit === "number") limit = join62.limit;
|
|
83112
83223
|
transformedJoin[getModelName(model)] = {
|
|
83113
83224
|
modelKey: model,
|
|
83114
83225
|
on: {
|
|
@@ -83341,21 +83452,21 @@ var init_factory = __esm({
|
|
|
83341
83452
|
where: unsafeWhere,
|
|
83342
83453
|
action: "findOne"
|
|
83343
83454
|
});
|
|
83344
|
-
let
|
|
83455
|
+
let join62;
|
|
83345
83456
|
let passJoinToAdapter = true;
|
|
83346
83457
|
if (!config3.disableTransformJoin) {
|
|
83347
83458
|
const result2 = transformJoinClause(modelKey, unsafeJoin, select2);
|
|
83348
83459
|
if (result2) {
|
|
83349
|
-
|
|
83460
|
+
join62 = result2.join;
|
|
83350
83461
|
select2 = result2.select;
|
|
83351
83462
|
}
|
|
83352
|
-
if (!options.advanced?.database?.joins &&
|
|
83353
|
-
} else
|
|
83463
|
+
if (!options.advanced?.database?.joins && join62 && Object.keys(join62).length > 0) passJoinToAdapter = false;
|
|
83464
|
+
} else join62 = unsafeJoin;
|
|
83354
83465
|
debugLog({ method: "findOne" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 3)}`, `${formatMethod("findOne")}:`, {
|
|
83355
83466
|
model,
|
|
83356
83467
|
where,
|
|
83357
83468
|
select: select2,
|
|
83358
|
-
join:
|
|
83469
|
+
join: join62
|
|
83359
83470
|
});
|
|
83360
83471
|
const res = await withSpan3(`db findOne ${model}`, {
|
|
83361
83472
|
[ATTR_DB_OPERATION_NAME]: "findOne",
|
|
@@ -83365,14 +83476,14 @@ var init_factory = __esm({
|
|
|
83365
83476
|
modelKey,
|
|
83366
83477
|
where,
|
|
83367
83478
|
select: select2,
|
|
83368
|
-
join: passJoinToAdapter ?
|
|
83479
|
+
join: passJoinToAdapter ? join62 : void 0
|
|
83369
83480
|
}));
|
|
83370
83481
|
debugLog({ method: "findOne" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 3)}`, `${formatMethod("findOne")} ${formatAction("DB Result")}:`, {
|
|
83371
83482
|
model,
|
|
83372
83483
|
data: res
|
|
83373
83484
|
});
|
|
83374
83485
|
let transformed = res;
|
|
83375
|
-
if (!config3.disableTransformOutput) transformed = await transformOutput(res, modelKey, select2,
|
|
83486
|
+
if (!config3.disableTransformOutput) transformed = await transformOutput(res, modelKey, select2, join62);
|
|
83376
83487
|
debugLog({ method: "findOne" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 3)}`, `${formatMethod("findOne")} ${formatAction("Parsed Result")}:`, {
|
|
83377
83488
|
model,
|
|
83378
83489
|
data: transformed
|
|
@@ -83390,23 +83501,23 @@ var init_factory = __esm({
|
|
|
83390
83501
|
where: unsafeWhere,
|
|
83391
83502
|
action: "findMany"
|
|
83392
83503
|
});
|
|
83393
|
-
let
|
|
83504
|
+
let join62;
|
|
83394
83505
|
let passJoinToAdapter = true;
|
|
83395
83506
|
if (!config3.disableTransformJoin) {
|
|
83396
83507
|
const result2 = transformJoinClause(modelKey, unsafeJoin, select2);
|
|
83397
83508
|
if (result2) {
|
|
83398
|
-
|
|
83509
|
+
join62 = result2.join;
|
|
83399
83510
|
select2 = result2.select;
|
|
83400
83511
|
}
|
|
83401
|
-
if (!options.advanced?.database?.joins &&
|
|
83402
|
-
} else
|
|
83512
|
+
if (!options.advanced?.database?.joins && join62 && Object.keys(join62).length > 0) passJoinToAdapter = false;
|
|
83513
|
+
} else join62 = unsafeJoin;
|
|
83403
83514
|
debugLog({ method: "findMany" }, `${formatTransactionId(thisTransactionId)} ${formatStep(1, 3)}`, `${formatMethod("findMany")}:`, {
|
|
83404
83515
|
model,
|
|
83405
83516
|
where,
|
|
83406
83517
|
limit,
|
|
83407
83518
|
sortBy,
|
|
83408
83519
|
offset,
|
|
83409
|
-
join:
|
|
83520
|
+
join: join62
|
|
83410
83521
|
});
|
|
83411
83522
|
const res = await withSpan3(`db findMany ${model}`, {
|
|
83412
83523
|
[ATTR_DB_OPERATION_NAME]: "findMany",
|
|
@@ -83419,7 +83530,7 @@ var init_factory = __esm({
|
|
|
83419
83530
|
select: select2,
|
|
83420
83531
|
sortBy,
|
|
83421
83532
|
offset,
|
|
83422
|
-
join: passJoinToAdapter ?
|
|
83533
|
+
join: passJoinToAdapter ? join62 : void 0
|
|
83423
83534
|
}));
|
|
83424
83535
|
debugLog({ method: "findMany" }, `${formatTransactionId(thisTransactionId)} ${formatStep(2, 3)}`, `${formatMethod("findMany")} ${formatAction("DB Result")}:`, {
|
|
83425
83536
|
model,
|
|
@@ -83427,7 +83538,7 @@ var init_factory = __esm({
|
|
|
83427
83538
|
});
|
|
83428
83539
|
let transformed = res;
|
|
83429
83540
|
if (!config3.disableTransformOutput) transformed = await Promise.all(res.map(async (r3) => {
|
|
83430
|
-
return await transformOutput(r3, modelKey, void 0,
|
|
83541
|
+
return await transformOutput(r3, modelKey, void 0, join62);
|
|
83431
83542
|
}));
|
|
83432
83543
|
debugLog({ method: "findMany" }, `${formatTransactionId(thisTransactionId)} ${formatStep(3, 3)}`, `${formatMethod("findMany")} ${formatAction("Parsed Result")}:`, {
|
|
83433
83544
|
model,
|
|
@@ -83782,7 +83893,7 @@ var init_dist9 = __esm({
|
|
|
83782
83893
|
return sortBy.direction === "asc" ? comparison : -comparison;
|
|
83783
83894
|
});
|
|
83784
83895
|
};
|
|
83785
|
-
function convertWhereClause(where, model, modelKey,
|
|
83896
|
+
function convertWhereClause(where, model, modelKey, join62, select2) {
|
|
83786
83897
|
const baseRecords = (() => {
|
|
83787
83898
|
const table2 = activeDb2[model];
|
|
83788
83899
|
if (!table2) {
|
|
@@ -83842,14 +83953,14 @@ var init_dist9 = __esm({
|
|
|
83842
83953
|
})))));
|
|
83843
83954
|
return records;
|
|
83844
83955
|
})();
|
|
83845
|
-
if (!
|
|
83956
|
+
if (!join62) return baseRecords;
|
|
83846
83957
|
const grouped = /* @__PURE__ */ new Map();
|
|
83847
83958
|
const seenIds = /* @__PURE__ */ new Map();
|
|
83848
83959
|
for (const baseRecord of baseRecords) {
|
|
83849
83960
|
const baseId = String(baseRecord.id);
|
|
83850
83961
|
if (!grouped.has(baseId)) {
|
|
83851
83962
|
const nested = { ...baseRecord };
|
|
83852
|
-
for (const [joinModel, joinAttr] of Object.entries(
|
|
83963
|
+
for (const [joinModel, joinAttr] of Object.entries(join62)) {
|
|
83853
83964
|
const joinModelName = joinModel;
|
|
83854
83965
|
if (joinAttr.relation === "one-to-one") nested[joinModelName] = null;
|
|
83855
83966
|
else {
|
|
@@ -83860,7 +83971,7 @@ var init_dist9 = __esm({
|
|
|
83860
83971
|
grouped.set(baseId, nested);
|
|
83861
83972
|
}
|
|
83862
83973
|
const nestedEntry = grouped.get(baseId);
|
|
83863
|
-
for (const [joinModel, joinAttr] of Object.entries(
|
|
83974
|
+
for (const [joinModel, joinAttr] of Object.entries(join62)) {
|
|
83864
83975
|
const joinModelName = joinModel;
|
|
83865
83976
|
const joinTable = activeDb2[joinModelName];
|
|
83866
83977
|
if (!joinTable) {
|
|
@@ -83893,18 +84004,18 @@ var init_dist9 = __esm({
|
|
|
83893
84004
|
activeDb2[model].push(data);
|
|
83894
84005
|
return data;
|
|
83895
84006
|
},
|
|
83896
|
-
findOne: async ({ model, modelKey = model, where, select: select2, join:
|
|
83897
|
-
const res = convertWhereClause(where, model, modelKey,
|
|
83898
|
-
if (
|
|
84007
|
+
findOne: async ({ model, modelKey = model, where, select: select2, join: join62 }) => {
|
|
84008
|
+
const res = convertWhereClause(where, model, modelKey, join62, select2);
|
|
84009
|
+
if (join62) {
|
|
83899
84010
|
const resArray = res;
|
|
83900
84011
|
if (!resArray.length) return null;
|
|
83901
84012
|
return resArray[0];
|
|
83902
84013
|
}
|
|
83903
84014
|
return res[0] || null;
|
|
83904
84015
|
},
|
|
83905
|
-
findMany: async ({ model, modelKey = model, where, sortBy, limit, select: select2, offset, join:
|
|
83906
|
-
const res = convertWhereClause(where || [], model, modelKey,
|
|
83907
|
-
if (
|
|
84016
|
+
findMany: async ({ model, modelKey = model, where, sortBy, limit, select: select2, offset, join: join62 }) => {
|
|
84017
|
+
const res = convertWhereClause(where || [], model, modelKey, join62, select2);
|
|
84018
|
+
if (join62) {
|
|
83908
84019
|
const resArray = res;
|
|
83909
84020
|
if (!resArray.length) return [];
|
|
83910
84021
|
applySortToRecords(resArray, sortBy, modelKey);
|
|
@@ -85902,10 +86013,10 @@ var init_query_node = __esm({
|
|
|
85902
86013
|
where: node2.where ? WhereNode.cloneWithOperation(node2.where, "And", operation) : WhereNode.create(operation)
|
|
85903
86014
|
});
|
|
85904
86015
|
},
|
|
85905
|
-
cloneWithJoin(node2,
|
|
86016
|
+
cloneWithJoin(node2, join62) {
|
|
85906
86017
|
return freeze({
|
|
85907
86018
|
...node2,
|
|
85908
|
-
joins: node2.joins ? freeze([...node2.joins,
|
|
86019
|
+
joins: node2.joins ? freeze([...node2.joins, join62]) : freeze([join62])
|
|
85909
86020
|
});
|
|
85910
86021
|
},
|
|
85911
86022
|
cloneWithReturning(node2, selections) {
|
|
@@ -90416,8 +90527,8 @@ var init_with_schema_transformer = __esm({
|
|
|
90416
90527
|
this.#collectSchemableIdsFromTableExpr(node2.table, schemableIds);
|
|
90417
90528
|
}
|
|
90418
90529
|
if ("joins" in node2 && node2.joins) {
|
|
90419
|
-
for (const
|
|
90420
|
-
this.#collectSchemableIdsFromTableExpr(
|
|
90530
|
+
for (const join62 of node2.joins) {
|
|
90531
|
+
this.#collectSchemableIdsFromTableExpr(join62.table, schemableIds);
|
|
90421
90532
|
}
|
|
90422
90533
|
}
|
|
90423
90534
|
if ("using" in node2 && node2.using) {
|
|
@@ -102589,7 +102700,7 @@ var init_mssql_introspector = __esm({
|
|
|
102589
102700
|
return await this.#db.selectFrom("sys.schemas").select("name").execute();
|
|
102590
102701
|
}
|
|
102591
102702
|
async getTables(options = { withInternalKyselyTables: false }) {
|
|
102592
|
-
const rawColumns = await this.#db.selectFrom("sys.tables as tables").leftJoin("sys.schemas as table_schemas", "table_schemas.schema_id", "tables.schema_id").innerJoin("sys.columns as columns", "columns.object_id", "tables.object_id").innerJoin("sys.types as types", "types.user_type_id", "columns.user_type_id").leftJoin("sys.schemas as type_schemas", "type_schemas.schema_id", "types.schema_id").leftJoin("sys.extended_properties as comments", (
|
|
102703
|
+
const rawColumns = await this.#db.selectFrom("sys.tables as tables").leftJoin("sys.schemas as table_schemas", "table_schemas.schema_id", "tables.schema_id").innerJoin("sys.columns as columns", "columns.object_id", "tables.object_id").innerJoin("sys.types as types", "types.user_type_id", "columns.user_type_id").leftJoin("sys.schemas as type_schemas", "type_schemas.schema_id", "types.schema_id").leftJoin("sys.extended_properties as comments", (join62) => join62.onRef("comments.major_id", "=", "tables.object_id").onRef("comments.minor_id", "=", "columns.column_id").on("comments.name", "=", "MS_Description")).$if(!options.withInternalKyselyTables, (qb) => qb.where("tables.name", "!=", DEFAULT_MIGRATION_TABLE).where("tables.name", "!=", DEFAULT_MIGRATION_LOCK_TABLE)).select([
|
|
102593
102704
|
"tables.name as table_name",
|
|
102594
102705
|
(eb) => eb.ref("tables.type").$castTo().as("table_type"),
|
|
102595
102706
|
"table_schemas.name as table_schema_name",
|
|
@@ -102604,7 +102715,7 @@ var init_mssql_introspector = __esm({
|
|
|
102604
102715
|
"types.name as type_name",
|
|
102605
102716
|
"type_schemas.name as type_schema_name",
|
|
102606
102717
|
"comments.value as column_comment"
|
|
102607
|
-
]).unionAll(this.#db.selectFrom("sys.views as views").leftJoin("sys.schemas as view_schemas", "view_schemas.schema_id", "views.schema_id").innerJoin("sys.columns as columns", "columns.object_id", "views.object_id").innerJoin("sys.types as types", "types.user_type_id", "columns.user_type_id").leftJoin("sys.schemas as type_schemas", "type_schemas.schema_id", "types.schema_id").leftJoin("sys.extended_properties as comments", (
|
|
102718
|
+
]).unionAll(this.#db.selectFrom("sys.views as views").leftJoin("sys.schemas as view_schemas", "view_schemas.schema_id", "views.schema_id").innerJoin("sys.columns as columns", "columns.object_id", "views.object_id").innerJoin("sys.types as types", "types.user_type_id", "columns.user_type_id").leftJoin("sys.schemas as type_schemas", "type_schemas.schema_id", "types.schema_id").leftJoin("sys.extended_properties as comments", (join62) => join62.onRef("comments.major_id", "=", "views.object_id").onRef("comments.minor_id", "=", "columns.column_id").on("comments.name", "=", "MS_Description")).select([
|
|
102608
102719
|
"views.name as table_name",
|
|
102609
102720
|
"views.type as table_type",
|
|
102610
102721
|
"view_schemas.name as table_schema_name",
|
|
@@ -103831,10 +103942,10 @@ var init_dist11 = __esm({
|
|
|
103831
103942
|
mysqlNoIdWarned = true;
|
|
103832
103943
|
logger2.warn(`[Kysely Adapter] MySQL does not support INSERT...RETURNING. With generateId set to false, the adapter uses best-effort fallback strategies (unique columns, full-field match) to retrieve inserted rows. For reliable behavior, use Better Auth's default ID generation, a custom generateId function, or generateId: "serial" for auto-increment.`);
|
|
103833
103944
|
}
|
|
103834
|
-
const selectAllJoins = (
|
|
103945
|
+
const selectAllJoins = (join62) => {
|
|
103835
103946
|
const allSelects = [];
|
|
103836
103947
|
const allSelectsStr = [];
|
|
103837
|
-
if (
|
|
103948
|
+
if (join62) for (const [joinModel, joinConfig] of Object.entries(join62)) {
|
|
103838
103949
|
const fields = schema3[joinConfig.modelKey ?? getDefaultModelName(joinModel)]?.fields;
|
|
103839
103950
|
const [_joinModelSchema, joinModelName] = joinModel.includes(".") ? joinModel.split(".") : [void 0, joinModel];
|
|
103840
103951
|
if (!fields) continue;
|
|
@@ -104059,7 +104170,7 @@ var init_dist11 = __esm({
|
|
|
104059
104170
|
async create({ data, model, modelKey = model }) {
|
|
104060
104171
|
return await withReturning(data, db2.insertInto(model).values(data), model, modelKey, []);
|
|
104061
104172
|
},
|
|
104062
|
-
async findOne({ model, modelKey = model, where, select: select2, join:
|
|
104173
|
+
async findOne({ model, modelKey = model, where, select: select2, join: join62 }) {
|
|
104063
104174
|
const { and: and2, or: or2 } = convertWhereClause(model, modelKey, where);
|
|
104064
104175
|
let query = db2.selectFrom((eb) => {
|
|
104065
104176
|
let b2 = eb.selectFrom(model);
|
|
@@ -104072,19 +104183,19 @@ var init_dist11 = __esm({
|
|
|
104072
104183
|
else b2 = b2.selectAll();
|
|
104073
104184
|
return b2.as("primary");
|
|
104074
104185
|
}).selectAll("primary");
|
|
104075
|
-
if (
|
|
104186
|
+
if (join62) for (const [joinModel, joinAttr] of Object.entries(join62)) {
|
|
104076
104187
|
const [_joinModelSchema, joinModelName] = joinModel.includes(".") ? joinModel.split(".") : [void 0, joinModel];
|
|
104077
|
-
query = query.leftJoin(`${joinModel} as join_${joinModelName}`, (
|
|
104188
|
+
query = query.leftJoin(`${joinModel} as join_${joinModelName}`, (join63) => join63.onRef(`join_${joinModelName}.${joinAttr.on.to}`, "=", `primary.${joinAttr.on.from}`));
|
|
104078
104189
|
}
|
|
104079
|
-
const { allSelectsStr, allSelects } = selectAllJoins(
|
|
104190
|
+
const { allSelectsStr, allSelects } = selectAllJoins(join62);
|
|
104080
104191
|
query = query.select(allSelects);
|
|
104081
104192
|
const res = await query.execute();
|
|
104082
104193
|
if (!res || !Array.isArray(res) || res.length === 0) return null;
|
|
104083
104194
|
const row2 = res[0];
|
|
104084
|
-
if (
|
|
104195
|
+
if (join62) return processJoinedResults(res, join62, allSelectsStr)[0];
|
|
104085
104196
|
return row2;
|
|
104086
104197
|
},
|
|
104087
|
-
async findMany({ model, modelKey = model, where, limit, select: select2, offset, sortBy, join:
|
|
104198
|
+
async findMany({ model, modelKey = model, where, limit, select: select2, offset, sortBy, join: join62 }) {
|
|
104088
104199
|
const { and: and2, or: or2 } = convertWhereClause(model, modelKey, where);
|
|
104089
104200
|
let query = db2.selectFrom((eb) => {
|
|
104090
104201
|
let b2 = eb.selectFrom(model);
|
|
@@ -104113,11 +104224,11 @@ var init_dist11 = __esm({
|
|
|
104113
104224
|
else b2 = b2.selectAll();
|
|
104114
104225
|
return b2.as("primary");
|
|
104115
104226
|
}).selectAll("primary");
|
|
104116
|
-
if (
|
|
104227
|
+
if (join62) for (const [joinModel, joinAttr] of Object.entries(join62)) {
|
|
104117
104228
|
const [_joinModelSchema, joinModelName] = joinModel.includes(".") ? joinModel.split(".") : [void 0, joinModel];
|
|
104118
|
-
query = query.leftJoin(`${joinModel} as join_${joinModelName}`, (
|
|
104229
|
+
query = query.leftJoin(`${joinModel} as join_${joinModelName}`, (join63) => join63.onRef(`join_${joinModelName}.${joinAttr.on.to}`, "=", `primary.${joinAttr.on.from}`));
|
|
104119
104230
|
}
|
|
104120
|
-
const { allSelectsStr, allSelects } = selectAllJoins(
|
|
104231
|
+
const { allSelectsStr, allSelects } = selectAllJoins(join62);
|
|
104121
104232
|
query = query.select(allSelects);
|
|
104122
104233
|
if (sortBy?.field) query = query.orderBy(`${getFieldName({
|
|
104123
104234
|
model: modelKey,
|
|
@@ -104125,7 +104236,7 @@ var init_dist11 = __esm({
|
|
|
104125
104236
|
})}`, sortBy.direction);
|
|
104126
104237
|
const res = await query.execute();
|
|
104127
104238
|
if (!res) return [];
|
|
104128
|
-
if (
|
|
104239
|
+
if (join62) return processJoinedResults(res, join62, allSelectsStr);
|
|
104129
104240
|
return res;
|
|
104130
104241
|
},
|
|
104131
104242
|
async update({ model, modelKey = model, where, update: values2 }) {
|
|
@@ -107058,7 +107169,7 @@ var init_sql2 = __esm({
|
|
|
107058
107169
|
return new SQL([new StringChunk(str2)]);
|
|
107059
107170
|
}
|
|
107060
107171
|
sql22.raw = raw;
|
|
107061
|
-
function
|
|
107172
|
+
function join62(chunks, separator) {
|
|
107062
107173
|
const result2 = [];
|
|
107063
107174
|
for (const [i2, chunk] of chunks.entries()) {
|
|
107064
107175
|
if (i2 > 0 && separator !== void 0) {
|
|
@@ -107068,7 +107179,7 @@ var init_sql2 = __esm({
|
|
|
107068
107179
|
}
|
|
107069
107180
|
return new SQL(result2);
|
|
107070
107181
|
}
|
|
107071
|
-
sql22.join =
|
|
107182
|
+
sql22.join = join62;
|
|
107072
107183
|
function identifier(value) {
|
|
107073
107184
|
return new Name(value);
|
|
107074
107185
|
}
|
|
@@ -108419,10 +108530,10 @@ var init_dist14 = __esm({
|
|
|
108419
108530
|
checkMissingFields(table2, modelKey, values2);
|
|
108420
108531
|
return await withReturning(model, modelKey, db2.insert(table2).values(values2), values2);
|
|
108421
108532
|
},
|
|
108422
|
-
async findOne({ model, modelKey = model, where, select: select2, join:
|
|
108533
|
+
async findOne({ model, modelKey = model, where, select: select2, join: join62 }) {
|
|
108423
108534
|
const table2 = getSchema2(model);
|
|
108424
108535
|
const clause = convertWhereClause(where, model, modelKey);
|
|
108425
|
-
if (
|
|
108536
|
+
if (join62) {
|
|
108426
108537
|
const queryModel = getQueryModel(model);
|
|
108427
108538
|
if (!db2.query || !queryModel) {
|
|
108428
108539
|
logger2.error(`[# Drizzle Adapter]: The model "${model}" was not found in the query object. Please update your Drizzle schema to include relations or re-generate using "npx auth@latest generate".`);
|
|
@@ -108432,7 +108543,7 @@ var init_dist14 = __esm({
|
|
|
108432
108543
|
const renamedJoinResults = [];
|
|
108433
108544
|
const relationKeys = getRelationKeysByModel().get(queryModel);
|
|
108434
108545
|
includes = {};
|
|
108435
|
-
const joinEntries = Object.entries(
|
|
108546
|
+
const joinEntries = Object.entries(join62);
|
|
108436
108547
|
for (const [joinModel, joinAttr] of joinEntries) {
|
|
108437
108548
|
const limit = joinAttr.limit ?? options.advanced?.database?.defaultFindManyLimit ?? 100;
|
|
108438
108549
|
const isUnique = joinAttr.relation === "one-to-one";
|
|
@@ -108474,11 +108585,11 @@ var init_dist14 = __esm({
|
|
|
108474
108585
|
if (!res.length) return null;
|
|
108475
108586
|
return res[0];
|
|
108476
108587
|
},
|
|
108477
|
-
async findMany({ model, modelKey = model, where, sortBy, limit, select: select2, offset, join:
|
|
108588
|
+
async findMany({ model, modelKey = model, where, sortBy, limit, select: select2, offset, join: join62 }) {
|
|
108478
108589
|
const table2 = getSchema2(model);
|
|
108479
108590
|
const clause = where ? convertWhereClause(where, model, modelKey) : [];
|
|
108480
108591
|
const sortFn = sortBy?.direction === "desc" ? desc : asc;
|
|
108481
|
-
if (
|
|
108592
|
+
if (join62) {
|
|
108482
108593
|
const queryModel = getQueryModel(model);
|
|
108483
108594
|
if (!db2.query || !queryModel) {
|
|
108484
108595
|
logger2.error(`[# Drizzle Adapter]: The model "${model}" was not found in the query object. Please update your Drizzle schema to include relations or re-generate using "npx auth@latest generate".`);
|
|
@@ -108488,7 +108599,7 @@ var init_dist14 = __esm({
|
|
|
108488
108599
|
const renamedJoinResults = [];
|
|
108489
108600
|
const relationKeys = getRelationKeysByModel().get(queryModel);
|
|
108490
108601
|
includes = {};
|
|
108491
|
-
const joinEntries = Object.entries(
|
|
108602
|
+
const joinEntries = Object.entries(join62);
|
|
108492
108603
|
for (const [joinModel, joinAttr] of joinEntries) {
|
|
108493
108604
|
const isUnique = joinAttr.relation === "one-to-one";
|
|
108494
108605
|
const limit2 = joinAttr.limit ?? options.advanced?.database?.defaultFindManyLimit ?? 100;
|
|
@@ -120095,7 +120206,7 @@ var init_select2 = __esm({
|
|
|
120095
120206
|
const baseTableName = this.tableName;
|
|
120096
120207
|
const tableName = getTableLikeName(table2);
|
|
120097
120208
|
for (const item of extractUsedTable(table2)) this.usedTables.add(item);
|
|
120098
|
-
if (typeof tableName === "string" && this.config.joins?.some((
|
|
120209
|
+
if (typeof tableName === "string" && this.config.joins?.some((join62) => join62.alias === tableName)) {
|
|
120099
120210
|
throw new Error(`Alias "${tableName}" is already used in this query`);
|
|
120100
120211
|
}
|
|
120101
120212
|
if (!this.isPartialSelect) {
|
|
@@ -120981,7 +121092,7 @@ var init_update = __esm({
|
|
|
120981
121092
|
createJoin(joinType) {
|
|
120982
121093
|
return (table2, on) => {
|
|
120983
121094
|
const tableName = getTableLikeName(table2);
|
|
120984
|
-
if (typeof tableName === "string" && this.config.joins.some((
|
|
121095
|
+
if (typeof tableName === "string" && this.config.joins.some((join62) => join62.alias === tableName)) {
|
|
120985
121096
|
throw new Error(`Alias "${tableName}" is already used in this query`);
|
|
120986
121097
|
}
|
|
120987
121098
|
if (typeof on === "function") {
|
|
@@ -129225,6 +129336,7 @@ function defuseSystemTags(text3, tagNames) {
|
|
|
129225
129336
|
var IDENTITY_MAX_LENGTH, INVISIBLE_FORMAT, CONTROL_CHARS, PATTERN_CACHE;
|
|
129226
129337
|
var init_untrusted_text = __esm({
|
|
129227
129338
|
"../shared/src/untrusted-text.ts"() {
|
|
129339
|
+
"use strict";
|
|
129228
129340
|
IDENTITY_MAX_LENGTH = 80;
|
|
129229
129341
|
INVISIBLE_FORMAT = /[\u00ad\u200b-\u200f\u202a-\u202e\u2060-\u2064\ufeff\ufff9-\ufffb]/g;
|
|
129230
129342
|
CONTROL_CHARS = /[\u0000-\u001f\u007f-\u009f]/g;
|
|
@@ -129407,6 +129519,8 @@ var init_config_disclosure = __esm({
|
|
|
129407
129519
|
// Whether chatting from the web is on (DOR-2946): a plain boolean. The hub's
|
|
129408
129520
|
// address and the relay secret live in the relay's own file, never in config.
|
|
129409
129521
|
"sessionRelay.enabled": "expose",
|
|
129522
|
+
// Whether the Docs experiment is on (DOR-2993): a plain boolean.
|
|
129523
|
+
"docs.enabled": "expose",
|
|
129410
129524
|
// Whether the spaces experiment is on (DOR-2740): a plain boolean, no host.
|
|
129411
129525
|
"spaces.enabled": "expose",
|
|
129412
129526
|
// The official space's public link (spec `official-community-space` D4): a
|
|
@@ -129994,6 +130108,9 @@ var init_config_write_policy = __esm({
|
|
|
129994
130108
|
// (DOR-2946). A "who can reach this computer" door, so a person opens it,
|
|
129995
130109
|
// never an agent.
|
|
129996
130110
|
"sessionRelay.enabled": "operator-only",
|
|
130111
|
+
// Whether the Docs experiment is on (DOR-2993). Like every experiment, a
|
|
130112
|
+
// person tries it, never an agent.
|
|
130113
|
+
"docs.enabled": "operator-only",
|
|
129997
130114
|
// Whether this DorkOS joins and talks to spaces on other servers (DOR-2740).
|
|
129998
130115
|
// Another "who can this instance reach" door, so a person opens it, never an
|
|
129999
130116
|
// agent.
|
|
@@ -130669,7 +130786,9 @@ var init_config_write_policy = __esm({
|
|
|
130669
130786
|
// setting that decides whether a model turn runs at all (DOR-1046).
|
|
130670
130787
|
"welcomeBack.offersEnabled",
|
|
130671
130788
|
// Whether agents wake on their own at all (spec `heartbeats` §3.6).
|
|
130672
|
-
"heartbeats.enabled"
|
|
130789
|
+
"heartbeats.enabled",
|
|
130790
|
+
// Docs: a mention in a doc comment wakes the agent it names (DOR-2983).
|
|
130791
|
+
"docs.enabled"
|
|
130673
130792
|
]
|
|
130674
130793
|
},
|
|
130675
130794
|
{
|
|
@@ -142933,11 +143052,11 @@ function globalInstallReasonOf(plugin, shared) {
|
|
|
142933
143052
|
namedSkills(plugin.skills.map((skill) => skill.name)),
|
|
142934
143053
|
shared
|
|
142935
143054
|
);
|
|
142936
|
-
const
|
|
143055
|
+
const join62 = (into) => shared ? into : `${into}${into.endsWith(".") ? "" : "."} ${GLOBAL_INSTALL_SHARE_OFFER}`;
|
|
142937
143056
|
const timed = plugin.skills.filter((skill) => skill.hasSchedule);
|
|
142938
|
-
if (timed.length === 0) return
|
|
143057
|
+
if (timed.length === 0) return join62(lead);
|
|
142939
143058
|
const allLinked = timed.every((skill) => skill.linkedInDorkHome === true);
|
|
142940
|
-
return
|
|
143059
|
+
return join62(`${lead}. ${allLinked ? GLOBAL_INSTALL_TIMERS_WORK : GLOBAL_INSTALL_TIMERS_PENDING}`);
|
|
142941
143060
|
}
|
|
142942
143061
|
function planGlobalInstallDrops(input4) {
|
|
142943
143062
|
const projectNames = new Set(
|
|
@@ -149506,9 +149625,57 @@ var init_settings_hooks = __esm({
|
|
|
149506
149625
|
}
|
|
149507
149626
|
});
|
|
149508
149627
|
|
|
149628
|
+
// ../harness/src/apply/opencode-command-orphans.ts
|
|
149629
|
+
import { readFileSync as readFileSync16, rmSync as rmSync6 } from "node:fs";
|
|
149630
|
+
import { join as join38 } from "node:path";
|
|
149631
|
+
function findOpencodeCommandOrphans(repoRoot, plan) {
|
|
149632
|
+
return removableOf(repoRoot, allOpencodeCommandOrphans(repoRoot, plan));
|
|
149633
|
+
}
|
|
149634
|
+
function allOpencodeCommandOrphans(repoRoot, plan) {
|
|
149635
|
+
const kept = new Set(
|
|
149636
|
+
plan.actions.filter((a2) => a2.kind === "generate" && a2.target?.startsWith(`${OPENCODE_COMMANDS_DIR}/`)).map((a2) => a2.target)
|
|
149637
|
+
);
|
|
149638
|
+
const commandsDir = join38(repoRoot, OPENCODE_COMMANDS_DIR);
|
|
149639
|
+
const orphans = [];
|
|
149640
|
+
for (const entry of listDirEntries(commandsDir)) {
|
|
149641
|
+
if (!entry.isFile()) continue;
|
|
149642
|
+
const rel = `${OPENCODE_COMMANDS_DIR}/${entry.name}`;
|
|
149643
|
+
const abs = join38(commandsDir, entry.name);
|
|
149644
|
+
if (isAtomicTempName(entry.name)) {
|
|
149645
|
+
if (isStaleAtomicTemp(abs)) orphans.push(rel);
|
|
149646
|
+
continue;
|
|
149647
|
+
}
|
|
149648
|
+
if (kept.has(rel)) continue;
|
|
149649
|
+
if (!isEngineGeneratedCommand(abs)) continue;
|
|
149650
|
+
orphans.push(rel);
|
|
149651
|
+
}
|
|
149652
|
+
return orphans;
|
|
149653
|
+
}
|
|
149654
|
+
function sweepOpencodeCommandOrphans(repoRoot, plan) {
|
|
149655
|
+
const orphans = findOpencodeCommandOrphans(repoRoot, plan);
|
|
149656
|
+
for (const rel of orphans) rmSync6(join38(repoRoot, rel), { force: true });
|
|
149657
|
+
return orphans;
|
|
149658
|
+
}
|
|
149659
|
+
function isEngineGeneratedCommand(abs) {
|
|
149660
|
+
try {
|
|
149661
|
+
return readFileSync16(abs, "utf8").includes(GENERATED_COMMAND_MARKER);
|
|
149662
|
+
} catch {
|
|
149663
|
+
return false;
|
|
149664
|
+
}
|
|
149665
|
+
}
|
|
149666
|
+
var init_opencode_command_orphans = __esm({
|
|
149667
|
+
"../harness/src/apply/opencode-command-orphans.ts"() {
|
|
149668
|
+
"use strict";
|
|
149669
|
+
init_installed_projector();
|
|
149670
|
+
init_atomic_write();
|
|
149671
|
+
init_link_state();
|
|
149672
|
+
init_sweep_warnings();
|
|
149673
|
+
}
|
|
149674
|
+
});
|
|
149675
|
+
|
|
149509
149676
|
// ../harness/src/apply/apply.ts
|
|
149510
|
-
import { existsSync as existsSync12, mkdirSync as mkdirSync5,
|
|
149511
|
-
import { dirname as dirname11, join as
|
|
149677
|
+
import { existsSync as existsSync12, mkdirSync as mkdirSync5, rmSync as rmSync7, symlinkSync as symlinkSync2 } from "node:fs";
|
|
149678
|
+
import { dirname as dirname11, join as join39, relative as relative6 } from "node:path";
|
|
149512
149679
|
function skillSourcesUnreadable(plan) {
|
|
149513
149680
|
return (plan.unreadableSkillRoots?.length ?? 0) > 0;
|
|
149514
149681
|
}
|
|
@@ -149519,13 +149686,13 @@ function scaffoldPresent(absTarget) {
|
|
|
149519
149686
|
return pathExists(absTarget) && !isDanglingSymlink(absTarget);
|
|
149520
149687
|
}
|
|
149521
149688
|
function relativeLink(repoRoot, source, target) {
|
|
149522
|
-
return relative6(dirname11(
|
|
149689
|
+
return relative6(dirname11(join39(repoRoot, target)), absolutePlanPath(repoRoot, source));
|
|
149523
149690
|
}
|
|
149524
149691
|
function applySymlink(repoRoot, action) {
|
|
149525
149692
|
if (!action.source || !action.target) {
|
|
149526
149693
|
throw new Error(`symlink action for "${action.name}" is missing source/target`);
|
|
149527
149694
|
}
|
|
149528
|
-
const absTarget =
|
|
149695
|
+
const absTarget = join39(repoRoot, action.target);
|
|
149529
149696
|
const linkText = relativeLink(repoRoot, action.source, action.target);
|
|
149530
149697
|
const absSource = absolutePlanPath(repoRoot, action.source);
|
|
149531
149698
|
for (let attempt = 0, removalRetries = 0; attempt < SYMLINK_ATTEMPTS; ) {
|
|
@@ -149536,7 +149703,7 @@ function applySymlink(repoRoot, action) {
|
|
|
149536
149703
|
return void 0;
|
|
149537
149704
|
}
|
|
149538
149705
|
try {
|
|
149539
|
-
|
|
149706
|
+
rmSync7(absTarget, { force: true });
|
|
149540
149707
|
} catch (error63) {
|
|
149541
149708
|
if (!waitForSymlinkRemoval(error63, removalRetries++)) throw error63;
|
|
149542
149709
|
continue;
|
|
@@ -149555,13 +149722,13 @@ function applySymlink(repoRoot, action) {
|
|
|
149555
149722
|
}
|
|
149556
149723
|
function applyScaffold(repoRoot, action) {
|
|
149557
149724
|
if (!action.target) throw new Error(`scaffold action for "${action.name}" is missing target`);
|
|
149558
|
-
const absTarget =
|
|
149725
|
+
const absTarget = join39(repoRoot, action.target);
|
|
149559
149726
|
if (scaffoldPresent(absTarget)) return;
|
|
149560
149727
|
writeFileAtomic(absTarget, requireActionContent(action));
|
|
149561
149728
|
}
|
|
149562
149729
|
function applyGenerate(repoRoot, action) {
|
|
149563
149730
|
if (!action.target) throw new Error(`generate action for "${action.name}" is missing target`);
|
|
149564
|
-
const absTarget =
|
|
149731
|
+
const absTarget = join39(repoRoot, action.target);
|
|
149565
149732
|
const shape = blockingGenerateOccupant(absTarget);
|
|
149566
149733
|
if (shape !== void 0) return shape;
|
|
149567
149734
|
const content = requireActionContent(action);
|
|
@@ -149575,7 +149742,7 @@ function applyGenerate(repoRoot, action) {
|
|
|
149575
149742
|
function applyMerge(repoRoot, action) {
|
|
149576
149743
|
if (!action.target) throw new Error(`merge action for "${action.name}" is missing target`);
|
|
149577
149744
|
const managed = JSON.parse(requireActionContent(action));
|
|
149578
|
-
return mergeManagedHooks(
|
|
149745
|
+
return mergeManagedHooks(join39(repoRoot, action.target), managed);
|
|
149579
149746
|
}
|
|
149580
149747
|
function findInstalledOrphans(repoRoot, plan) {
|
|
149581
149748
|
return removableOf(repoRoot, allInstalledOrphans(repoRoot, plan));
|
|
@@ -149587,10 +149754,10 @@ function allInstalledOrphans(repoRoot, plan) {
|
|
|
149587
149754
|
);
|
|
149588
149755
|
const orphans = [];
|
|
149589
149756
|
for (const dir of INSTALLED_SKILL_DIRS) {
|
|
149590
|
-
const skillsDir =
|
|
149757
|
+
const skillsDir = join39(repoRoot, dir);
|
|
149591
149758
|
for (const entry of listDir(skillsDir)) {
|
|
149592
149759
|
if (!entry.includes(INSTALLED_PROJECTION_MARKER)) continue;
|
|
149593
|
-
const abs =
|
|
149760
|
+
const abs = join39(skillsDir, entry);
|
|
149594
149761
|
if (!isSymlink(abs)) continue;
|
|
149595
149762
|
const rel = `${dir}/${entry}`;
|
|
149596
149763
|
if (managed.has(rel)) continue;
|
|
@@ -149602,7 +149769,7 @@ function allInstalledOrphans(repoRoot, plan) {
|
|
|
149602
149769
|
}
|
|
149603
149770
|
function sweepInstalledOrphans(repoRoot, plan) {
|
|
149604
149771
|
const orphans = findInstalledOrphans(repoRoot, plan);
|
|
149605
|
-
for (const rel of orphans)
|
|
149772
|
+
for (const rel of orphans) rmSync7(join39(repoRoot, rel), { force: true });
|
|
149606
149773
|
return orphans;
|
|
149607
149774
|
}
|
|
149608
149775
|
function findGeneratedCommandOrphans(repoRoot, plan) {
|
|
@@ -149612,14 +149779,14 @@ function allGeneratedCommandOrphans(repoRoot, plan) {
|
|
|
149612
149779
|
const kept = new Set(
|
|
149613
149780
|
plan.actions.filter((a2) => a2.kind === "generate" && a2.target?.startsWith(`${CLAUDE_COMMANDS_DIR}/`)).map((a2) => a2.target)
|
|
149614
149781
|
);
|
|
149615
|
-
const commandsDir =
|
|
149782
|
+
const commandsDir = join39(repoRoot, CLAUDE_COMMANDS_DIR);
|
|
149616
149783
|
const orphans = [];
|
|
149617
149784
|
for (const sub of listDirEntries(commandsDir)) {
|
|
149618
149785
|
if (!sub.isDirectory()) continue;
|
|
149619
|
-
const subAbs =
|
|
149786
|
+
const subAbs = join39(commandsDir, sub.name);
|
|
149620
149787
|
for (const file2 of listDir(subAbs)) {
|
|
149621
149788
|
const rel = `${CLAUDE_COMMANDS_DIR}/${sub.name}/${file2}`;
|
|
149622
|
-
const abs =
|
|
149789
|
+
const abs = join39(subAbs, file2);
|
|
149623
149790
|
if (isAtomicTempName(file2)) {
|
|
149624
149791
|
if (isStaleAtomicTemp(abs)) orphans.push(rel);
|
|
149625
149792
|
continue;
|
|
@@ -149633,68 +149800,33 @@ function allGeneratedCommandOrphans(repoRoot, plan) {
|
|
|
149633
149800
|
}
|
|
149634
149801
|
function sweepGeneratedCommandOrphans(repoRoot, plan) {
|
|
149635
149802
|
const orphans = findGeneratedCommandOrphans(repoRoot, plan);
|
|
149636
|
-
for (const rel of orphans)
|
|
149803
|
+
for (const rel of orphans) rmSync7(join39(repoRoot, rel), { force: true });
|
|
149637
149804
|
for (const rel of removableOf(repoRoot, emptiedWrapperDirs(repoRoot, plan))) {
|
|
149638
|
-
|
|
149805
|
+
rmSync7(join39(repoRoot, rel), { recursive: true, force: true });
|
|
149639
149806
|
}
|
|
149640
149807
|
return orphans;
|
|
149641
149808
|
}
|
|
149642
149809
|
function emptiedWrapperDirs(repoRoot, plan) {
|
|
149643
|
-
const commandsDir =
|
|
149810
|
+
const commandsDir = join39(repoRoot, CLAUDE_COMMANDS_DIR);
|
|
149644
149811
|
const taking = new Set(findGeneratedCommandOrphans(repoRoot, plan));
|
|
149645
149812
|
const dirs = [];
|
|
149646
149813
|
for (const sub of listDirEntries(commandsDir)) {
|
|
149647
149814
|
if (!sub.isDirectory()) continue;
|
|
149648
149815
|
const rel = `${CLAUDE_COMMANDS_DIR}/${sub.name}`;
|
|
149649
|
-
const listing = tryListDir(
|
|
149816
|
+
const listing = tryListDir(join39(commandsDir, sub.name));
|
|
149650
149817
|
if (listing === void 0) continue;
|
|
149651
149818
|
if (listing.every((entry) => taking.has(`${rel}/${entry}`))) dirs.push(rel);
|
|
149652
149819
|
}
|
|
149653
149820
|
return dirs.sort();
|
|
149654
149821
|
}
|
|
149655
|
-
function findOpencodeCommandOrphans(repoRoot, plan) {
|
|
149656
|
-
return removableOf(repoRoot, allOpencodeCommandOrphans(repoRoot, plan));
|
|
149657
|
-
}
|
|
149658
|
-
function allOpencodeCommandOrphans(repoRoot, plan) {
|
|
149659
|
-
const kept = new Set(
|
|
149660
|
-
plan.actions.filter((a2) => a2.kind === "generate" && a2.target?.startsWith(`${OPENCODE_COMMANDS_DIR}/`)).map((a2) => a2.target)
|
|
149661
|
-
);
|
|
149662
|
-
const commandsDir = join38(repoRoot, OPENCODE_COMMANDS_DIR);
|
|
149663
|
-
const orphans = [];
|
|
149664
|
-
for (const entry of listDirEntries(commandsDir)) {
|
|
149665
|
-
if (!entry.isFile()) continue;
|
|
149666
|
-
const rel = `${OPENCODE_COMMANDS_DIR}/${entry.name}`;
|
|
149667
|
-
const abs = join38(commandsDir, entry.name);
|
|
149668
|
-
if (isAtomicTempName(entry.name)) {
|
|
149669
|
-
if (isStaleAtomicTemp(abs)) orphans.push(rel);
|
|
149670
|
-
continue;
|
|
149671
|
-
}
|
|
149672
|
-
if (kept.has(rel)) continue;
|
|
149673
|
-
if (!isEngineGeneratedCommand(abs)) continue;
|
|
149674
|
-
orphans.push(rel);
|
|
149675
|
-
}
|
|
149676
|
-
return orphans;
|
|
149677
|
-
}
|
|
149678
|
-
function sweepOpencodeCommandOrphans(repoRoot, plan) {
|
|
149679
|
-
const orphans = findOpencodeCommandOrphans(repoRoot, plan);
|
|
149680
|
-
for (const rel of orphans) rmSync6(join38(repoRoot, rel), { force: true });
|
|
149681
|
-
return orphans;
|
|
149682
|
-
}
|
|
149683
|
-
function isEngineGeneratedCommand(abs) {
|
|
149684
|
-
try {
|
|
149685
|
-
return readFileSync16(abs, "utf8").includes(GENERATED_COMMAND_MARKER);
|
|
149686
|
-
} catch {
|
|
149687
|
-
return false;
|
|
149688
|
-
}
|
|
149689
|
-
}
|
|
149690
149822
|
function findBlockedWrapperDirs(repoRoot, plan) {
|
|
149691
149823
|
const wrapperDirs = new Set(
|
|
149692
149824
|
plan.actions.filter((a2) => a2.kind === "generate" && a2.target?.startsWith(`${CLAUDE_COMMANDS_DIR}/`)).map((a2) => dirname11(a2.target))
|
|
149693
149825
|
);
|
|
149694
149826
|
const blocked = /* @__PURE__ */ new Set();
|
|
149695
149827
|
for (const relDir of wrapperDirs) {
|
|
149696
|
-
const abs =
|
|
149697
|
-
const hasForeignContent = listDir(abs).some((entry) => isForeign(
|
|
149828
|
+
const abs = join39(repoRoot, relDir);
|
|
149829
|
+
const hasForeignContent = listDir(abs).some((entry) => isForeign(join39(abs, entry), entry));
|
|
149698
149830
|
if (hasForeignContent) blocked.add(relDir);
|
|
149699
149831
|
}
|
|
149700
149832
|
return blocked;
|
|
@@ -149710,7 +149842,7 @@ function findBlockedOpencodeCommandFiles(repoRoot, plan) {
|
|
|
149710
149842
|
if (action.kind !== "generate") continue;
|
|
149711
149843
|
const target = action.target;
|
|
149712
149844
|
if (!target?.startsWith(`${OPENCODE_COMMANDS_DIR}/`)) continue;
|
|
149713
|
-
const abs =
|
|
149845
|
+
const abs = join39(repoRoot, target);
|
|
149714
149846
|
if (pathExists(abs) && !isEngineGeneratedCommand(abs)) blocked.add(target);
|
|
149715
149847
|
}
|
|
149716
149848
|
return blocked;
|
|
@@ -149723,11 +149855,11 @@ function allSettingsHooksOrphan(repoRoot, plan) {
|
|
|
149723
149855
|
(a2) => a2.kind === "merge" && a2.target === CLAUDE_SETTINGS_LOCAL_TARGET
|
|
149724
149856
|
);
|
|
149725
149857
|
if (hasMerge) return [];
|
|
149726
|
-
return hasManagedHooks(
|
|
149858
|
+
return hasManagedHooks(join39(repoRoot, CLAUDE_SETTINGS_LOCAL_TARGET)) ? [CLAUDE_SETTINGS_LOCAL_TARGET] : [];
|
|
149727
149859
|
}
|
|
149728
149860
|
function sweepSettingsHooksOrphan(repoRoot, plan) {
|
|
149729
149861
|
const orphans = findSettingsHooksOrphan(repoRoot, plan);
|
|
149730
|
-
if (orphans.length > 0) sweepManagedHooks(
|
|
149862
|
+
if (orphans.length > 0) sweepManagedHooks(join39(repoRoot, CLAUDE_SETTINGS_LOCAL_TARGET));
|
|
149731
149863
|
return orphans;
|
|
149732
149864
|
}
|
|
149733
149865
|
function applyPlan(repoRoot, plan, opts) {
|
|
@@ -149815,7 +149947,7 @@ function isDrifted(repoRoot, action) {
|
|
|
149815
149947
|
switch (action.kind) {
|
|
149816
149948
|
case "symlink": {
|
|
149817
149949
|
if (!action.source || !action.target) return true;
|
|
149818
|
-
const absTarget =
|
|
149950
|
+
const absTarget = join39(repoRoot, action.target);
|
|
149819
149951
|
const kind = occupantKind(absTarget);
|
|
149820
149952
|
if (kind === "absent") return true;
|
|
149821
149953
|
if (kind === "file" || kind === "directory") return false;
|
|
@@ -149828,10 +149960,10 @@ function isDrifted(repoRoot, action) {
|
|
|
149828
149960
|
);
|
|
149829
149961
|
}
|
|
149830
149962
|
case "scaffold":
|
|
149831
|
-
return !action.target || !scaffoldPresent(
|
|
149963
|
+
return !action.target || !scaffoldPresent(join39(repoRoot, action.target));
|
|
149832
149964
|
case "generate": {
|
|
149833
149965
|
if (!action.target) return true;
|
|
149834
|
-
const absTarget =
|
|
149966
|
+
const absTarget = join39(repoRoot, action.target);
|
|
149835
149967
|
if (blockingGenerateOccupant(absTarget) !== void 0) return false;
|
|
149836
149968
|
const onDisk = readFileIfPresent(absTarget);
|
|
149837
149969
|
if (onDisk === void 0) return true;
|
|
@@ -149843,7 +149975,7 @@ function isDrifted(repoRoot, action) {
|
|
|
149843
149975
|
case "merge": {
|
|
149844
149976
|
if (!action.target) return true;
|
|
149845
149977
|
const managed = JSON.parse(requireActionContent(action));
|
|
149846
|
-
return managedHooksDrift(
|
|
149978
|
+
return managedHooksDrift(join39(repoRoot, action.target), managed);
|
|
149847
149979
|
}
|
|
149848
149980
|
case "native":
|
|
149849
149981
|
case "drop":
|
|
@@ -149855,7 +149987,7 @@ function findBlockedSymlinkTargets(repoRoot, plan) {
|
|
|
149855
149987
|
for (const action of plan.actions) {
|
|
149856
149988
|
if (action.kind !== "symlink" || !action.source || !action.target) continue;
|
|
149857
149989
|
const reason = blockingSymlinkOccupant(
|
|
149858
|
-
|
|
149990
|
+
join39(repoRoot, action.target),
|
|
149859
149991
|
relativeLink(repoRoot, action.source, action.target)
|
|
149860
149992
|
);
|
|
149861
149993
|
if (reason !== void 0) blocked.push({ ...action, reason });
|
|
@@ -149961,6 +150093,7 @@ var init_apply = __esm({
|
|
|
149961
150093
|
init_sweep_warnings();
|
|
149962
150094
|
init_installed_projector();
|
|
149963
150095
|
init_settings_hooks();
|
|
150096
|
+
init_opencode_command_orphans();
|
|
149964
150097
|
INSTALLED_SKILL_DIRS = [AGENTS_SKILLS_DIR, CLAUDE_SKILLS_DIR];
|
|
149965
150098
|
SYMLINK_ATTEMPTS = 3;
|
|
149966
150099
|
}
|
|
@@ -149968,7 +150101,7 @@ var init_apply = __esm({
|
|
|
149968
150101
|
|
|
149969
150102
|
// ../harness/src/adopt/apply.ts
|
|
149970
150103
|
import { lstatSync as lstatSync12, mkdirSync as mkdirSync6, renameSync as renameSync3, rmdirSync } from "node:fs";
|
|
149971
|
-
import { join as
|
|
150104
|
+
import { join as join40 } from "node:path";
|
|
149972
150105
|
function applyAdopt(repoRoot, plan) {
|
|
149973
150106
|
const moved = [];
|
|
149974
150107
|
const declared = [];
|
|
@@ -149986,9 +150119,9 @@ function applyAdopt(repoRoot, plan) {
|
|
|
149986
150119
|
return { moved, declared, refusals };
|
|
149987
150120
|
}
|
|
149988
150121
|
function applyMove(repoRoot, move) {
|
|
149989
|
-
const absFrom =
|
|
149990
|
-
const absTo =
|
|
149991
|
-
const canonicalLayer =
|
|
150122
|
+
const absFrom = join40(repoRoot, move.from);
|
|
150123
|
+
const absTo = join40(repoRoot, move.to);
|
|
150124
|
+
const canonicalLayer = join40(repoRoot, ADOPT_TARGET_ROOT);
|
|
149992
150125
|
const layerExisted = somethingIsAt(canonicalLayer);
|
|
149993
150126
|
mkdirSync6(canonicalLayer, { recursive: true });
|
|
149994
150127
|
try {
|
|
@@ -150032,7 +150165,7 @@ function restore(input4) {
|
|
|
150032
150165
|
if (!somethingIsAt(absFrom)) {
|
|
150033
150166
|
try {
|
|
150034
150167
|
renameSync3(absTo, absFrom);
|
|
150035
|
-
if (!layerExisted) removeIfEmpty(
|
|
150168
|
+
if (!layerExisted) removeIfEmpty(join40(repoRoot, ADOPT_TARGET_ROOT));
|
|
150036
150169
|
return { name: move.name, source: move.from, rule: "link-blocked", reason: blocked };
|
|
150037
150170
|
} catch {
|
|
150038
150171
|
}
|
|
@@ -150099,10 +150232,10 @@ import {
|
|
|
150099
150232
|
lstatSync as lstatSync13,
|
|
150100
150233
|
mkdirSync as mkdirSync7,
|
|
150101
150234
|
readlinkSync as readlinkSync5,
|
|
150102
|
-
rmSync as
|
|
150235
|
+
rmSync as rmSync8,
|
|
150103
150236
|
symlinkSync as symlinkSync3
|
|
150104
150237
|
} from "node:fs";
|
|
150105
|
-
import { basename as basename6, dirname as dirname12, join as
|
|
150238
|
+
import { basename as basename6, dirname as dirname12, join as join41, relative as relative7, resolve as resolve6, sep as sep8 } from "node:path";
|
|
150106
150239
|
function globalSweepDirs(roots) {
|
|
150107
150240
|
return [
|
|
150108
150241
|
...new Set(
|
|
@@ -150158,13 +150291,13 @@ function globalOrphanCandidates(plan, roots) {
|
|
|
150158
150291
|
if (pkg === void 0) {
|
|
150159
150292
|
const extension = linkOwnerUnder(abs, extensionRoot);
|
|
150160
150293
|
if (extension === void 0 || planned.has(abs)) continue;
|
|
150161
|
-
if (!existsSync13(
|
|
150294
|
+
if (!existsSync13(join41(extensionRoot, extension)) || plan.extensionLedger === "read") {
|
|
150162
150295
|
orphans.set(abs, SWEEP_REASONS["global-extension-stopped"]);
|
|
150163
150296
|
}
|
|
150164
150297
|
continue;
|
|
150165
150298
|
}
|
|
150166
150299
|
if (planned.has(abs)) continue;
|
|
150167
|
-
if (!existsSync13(
|
|
150300
|
+
if (!existsSync13(join41(pluginsRoot, pkg))) {
|
|
150168
150301
|
orphans.set(abs, SWEEP_REASONS["global-package-gone"]);
|
|
150169
150302
|
continue;
|
|
150170
150303
|
}
|
|
@@ -150191,7 +150324,7 @@ function rawGlobalOrphanPaths(plan, roots) {
|
|
|
150191
150324
|
}
|
|
150192
150325
|
function sweepGlobalOrphans(plan, roots) {
|
|
150193
150326
|
const orphans = findGlobalOrphans(plan, roots);
|
|
150194
|
-
for (const { path: path66 } of orphans)
|
|
150327
|
+
for (const { path: path66 } of orphans) rmSync8(path66, { force: true });
|
|
150195
150328
|
return orphans;
|
|
150196
150329
|
}
|
|
150197
150330
|
function globalLinkText(action) {
|
|
@@ -150248,7 +150381,7 @@ function applyGlobalSymlink(action, memo2) {
|
|
|
150248
150381
|
if (blocked !== void 0) return { kind: "blocked", reason: blocked };
|
|
150249
150382
|
if (linkMatchesPlan(absTarget, absSource, linkText, LINK_CHECK)) return { kind: "unchanged" };
|
|
150250
150383
|
try {
|
|
150251
|
-
|
|
150384
|
+
rmSync8(absTarget, { force: true });
|
|
150252
150385
|
} catch (error63) {
|
|
150253
150386
|
if (!waitForSymlinkRemoval(error63, removalRetries++)) throw error63;
|
|
150254
150387
|
continue;
|
|
@@ -150495,7 +150628,7 @@ import {
|
|
|
150495
150628
|
realpathSync as realpathSync10,
|
|
150496
150629
|
statSync as statSync10
|
|
150497
150630
|
} from "node:fs";
|
|
150498
|
-
import { basename as basename7, isAbsolute as isAbsolute7, join as
|
|
150631
|
+
import { basename as basename7, isAbsolute as isAbsolute7, join as join42, relative as relative8, resolve as resolve7, sep as sep9 } from "node:path";
|
|
150499
150632
|
function statOrUndefined(path66) {
|
|
150500
150633
|
try {
|
|
150501
150634
|
return statSync10(path66, { throwIfNoEntry: false });
|
|
@@ -150532,7 +150665,7 @@ function ascendLevels(root, cwd, stopAtWorktree) {
|
|
|
150532
150665
|
const levels2 = [];
|
|
150533
150666
|
for (; ; ) {
|
|
150534
150667
|
levels2.push(current3);
|
|
150535
|
-
if (stopAtWorktree && existsSync14(
|
|
150668
|
+
if (stopAtWorktree && existsSync14(join42(current3, ".git"))) break;
|
|
150536
150669
|
if (current3 === root) break;
|
|
150537
150670
|
const parent = resolve7(current3, "..");
|
|
150538
150671
|
if (parent === current3) break;
|
|
@@ -150558,7 +150691,7 @@ function descendScopes(root, facts) {
|
|
|
150558
150691
|
if (!entry.isDirectory()) continue;
|
|
150559
150692
|
if (NEVER_DESCEND.has(entry.name)) continue;
|
|
150560
150693
|
if (entry.name.startsWith(".") && !listedDotDirs.has(entry.name)) continue;
|
|
150561
|
-
visit2(
|
|
150694
|
+
visit2(join42(dir, entry.name), depth + 1);
|
|
150562
150695
|
}
|
|
150563
150696
|
};
|
|
150564
150697
|
visit2(root, 0);
|
|
@@ -150570,7 +150703,7 @@ function readDirs(facts, root, cwd) {
|
|
|
150570
150703
|
const seen = /* @__PURE__ */ new Set();
|
|
150571
150704
|
for (const scope3 of scopes) {
|
|
150572
150705
|
for (const readPath2 of facts.readPaths.project) {
|
|
150573
|
-
const abs =
|
|
150706
|
+
const abs = join42(scope3, readPath2);
|
|
150574
150707
|
if (seen.has(abs)) continue;
|
|
150575
150708
|
seen.add(abs);
|
|
150576
150709
|
dirs.push({ abs, via: viaOf(root, abs) });
|
|
@@ -150654,9 +150787,9 @@ function harnessCoverage(harness, root, opts) {
|
|
|
150654
150787
|
continue;
|
|
150655
150788
|
}
|
|
150656
150789
|
for (const entry of [...entries].sort((a2, b2) => a2.name.localeCompare(b2.name))) {
|
|
150657
|
-
const dir =
|
|
150790
|
+
const dir = join42(abs, entry.name);
|
|
150658
150791
|
if (!statOrUndefined(dir)?.isDirectory()) continue;
|
|
150659
|
-
const skillMd =
|
|
150792
|
+
const skillMd = join42(dir, "SKILL.md");
|
|
150660
150793
|
if (!statOrUndefined(skillMd)?.isFile()) continue;
|
|
150661
150794
|
const reachedThroughSymlink = lstatOrUndefined(dir)?.isSymbolicLink() === true;
|
|
150662
150795
|
const { found, reasons, loads, droppedReason } = evaluate(
|
|
@@ -150693,21 +150826,21 @@ var init_coverage = __esm({
|
|
|
150693
150826
|
|
|
150694
150827
|
// ../harness/src/engine.ts
|
|
150695
150828
|
import { existsSync as existsSync15, lstatSync as lstatSync15, readFileSync as readFileSync18, readdirSync as readdirSync9 } from "node:fs";
|
|
150696
|
-
import { join as
|
|
150829
|
+
import { join as join43 } from "node:path";
|
|
150697
150830
|
function loadManifest(repoRoot) {
|
|
150698
150831
|
const raw = JSON.parse(
|
|
150699
|
-
readFileSync18(
|
|
150832
|
+
readFileSync18(join43(repoRoot, ".agents", "harness.manifest.json"), "utf8")
|
|
150700
150833
|
);
|
|
150701
150834
|
return parseHarnessManifest(raw);
|
|
150702
150835
|
}
|
|
150703
150836
|
function loadClaudeHooks(repoRoot) {
|
|
150704
|
-
const settingsPath =
|
|
150837
|
+
const settingsPath = join43(repoRoot, ".claude", "settings.json");
|
|
150705
150838
|
if (!existsSync15(settingsPath)) return void 0;
|
|
150706
150839
|
const settings = JSON.parse(readFileSync18(settingsPath, "utf8"));
|
|
150707
150840
|
return settings.hooks;
|
|
150708
150841
|
}
|
|
150709
150842
|
function agentsMdExists(repoRoot) {
|
|
150710
|
-
return existsSync15(
|
|
150843
|
+
return existsSync15(join43(repoRoot, "AGENTS.md"));
|
|
150711
150844
|
}
|
|
150712
150845
|
function claudeCommandsExist(repoRoot) {
|
|
150713
150846
|
const walk = (dir) => {
|
|
@@ -150719,22 +150852,22 @@ function claudeCommandsExist(repoRoot) {
|
|
|
150719
150852
|
}
|
|
150720
150853
|
for (const entry of entries) {
|
|
150721
150854
|
if (entry.isFile() && entry.name.endsWith(".md")) return true;
|
|
150722
|
-
if (entry.isDirectory() && walk(
|
|
150855
|
+
if (entry.isDirectory() && walk(join43(dir, entry.name))) return true;
|
|
150723
150856
|
}
|
|
150724
150857
|
return false;
|
|
150725
150858
|
};
|
|
150726
|
-
return walk(
|
|
150859
|
+
return walk(join43(repoRoot, CLAUDE_COMMANDS_DIR));
|
|
150727
150860
|
}
|
|
150728
150861
|
function scanClaudeOnlySkills(repoRoot, manifest) {
|
|
150729
150862
|
const resolved = /* @__PURE__ */ new Map();
|
|
150730
150863
|
for (const entry of manifest.claudeOnlySkills) {
|
|
150731
150864
|
const defaultPath = `${CLAUDE_SKILLS_DIR}/${entry.name}`;
|
|
150732
150865
|
const path66 = entry.path.trim() === "" ? defaultPath : entry.path;
|
|
150733
|
-
const abs =
|
|
150866
|
+
const abs = join43(repoRoot, path66);
|
|
150734
150867
|
let kind = "missing";
|
|
150735
150868
|
const stats2 = lstatSync15(abs, { throwIfNoEntry: false });
|
|
150736
150869
|
if (stats2?.isSymbolicLink()) kind = "symlink";
|
|
150737
|
-
else if (stats2?.isDirectory() && existsSync15(
|
|
150870
|
+
else if (stats2?.isDirectory() && existsSync15(join43(abs, "SKILL.md"))) kind = "directory";
|
|
150738
150871
|
resolved.set(entry.name, { path: path66, kind, atProjectionTarget: path66 === defaultPath });
|
|
150739
150872
|
}
|
|
150740
150873
|
return resolved;
|
|
@@ -151082,7 +151215,7 @@ __export(adopt_owned_workspace_exports, {
|
|
|
151082
151215
|
autoAdoptFromDisk: () => autoAdoptFromDisk
|
|
151083
151216
|
});
|
|
151084
151217
|
import { readFileSync as readFileSync19 } from "node:fs";
|
|
151085
|
-
import { join as
|
|
151218
|
+
import { join as join44 } from "node:path";
|
|
151086
151219
|
function autoAdoptPermitted() {
|
|
151087
151220
|
return configManager.get("harness").autoAdopt;
|
|
151088
151221
|
}
|
|
@@ -151090,7 +151223,7 @@ function autoAdoptFromDisk(dorkHome) {
|
|
|
151090
151223
|
const fallback = UserConfigSchema.shape.harness.parse(void 0).autoAdopt;
|
|
151091
151224
|
let raw;
|
|
151092
151225
|
try {
|
|
151093
|
-
raw = JSON.parse(readFileSync19(
|
|
151226
|
+
raw = JSON.parse(readFileSync19(join44(dorkHome, "config.json"), "utf8"));
|
|
151094
151227
|
} catch {
|
|
151095
151228
|
return fallback;
|
|
151096
151229
|
}
|
|
@@ -151192,7 +151325,7 @@ var init_adopt_owned_workspace = __esm({
|
|
|
151192
151325
|
|
|
151193
151326
|
// ../../apps/server/src/services/harness/project-agent-workspace.ts
|
|
151194
151327
|
import { existsSync as existsSync16, realpathSync as realpathSync11 } from "node:fs";
|
|
151195
|
-
import { join as
|
|
151328
|
+
import { join as join45, relative as relative9, resolve as resolve8, isAbsolute as isAbsolute8 } from "node:path";
|
|
151196
151329
|
function canonicalize(p) {
|
|
151197
151330
|
const absolute = resolve8(p);
|
|
151198
151331
|
try {
|
|
@@ -151202,7 +151335,7 @@ function canonicalize(p) {
|
|
|
151202
151335
|
}
|
|
151203
151336
|
}
|
|
151204
151337
|
function isAgentHome(dir, dorkHome) {
|
|
151205
|
-
const rel = relative9(canonicalize(
|
|
151338
|
+
const rel = relative9(canonicalize(join45(dorkHome, "agents")), canonicalize(dir));
|
|
151206
151339
|
return rel !== "" && !rel.startsWith("..") && !isAbsolute8(rel);
|
|
151207
151340
|
}
|
|
151208
151341
|
var AGENT_SKILLS_DIR;
|
|
@@ -151214,7 +151347,7 @@ var init_project_agent_workspace = __esm({
|
|
|
151214
151347
|
init_dork_home();
|
|
151215
151348
|
init_logger();
|
|
151216
151349
|
init_adopt_owned_workspace();
|
|
151217
|
-
AGENT_SKILLS_DIR =
|
|
151350
|
+
AGENT_SKILLS_DIR = join45(".agents", "skills");
|
|
151218
151351
|
}
|
|
151219
151352
|
});
|
|
151220
151353
|
|
|
@@ -151223,14 +151356,14 @@ var directory_ownership_exports = {};
|
|
|
151223
151356
|
__export(directory_ownership_exports, {
|
|
151224
151357
|
resolveDirectoryOwnership: () => resolveDirectoryOwnership
|
|
151225
151358
|
});
|
|
151226
|
-
import { join as
|
|
151359
|
+
import { join as join46, relative as relative10, sep as sep10 } from "node:path";
|
|
151227
151360
|
function resolveDirectoryOwnership(dir, dorkHome) {
|
|
151228
151361
|
if (isAgentHome(dir, dorkHome)) return "agent-home";
|
|
151229
151362
|
if (isRoomWorktree(dir, dorkHome)) return "room-worktree";
|
|
151230
151363
|
return "plain";
|
|
151231
151364
|
}
|
|
151232
151365
|
function isRoomWorktree(dir, dorkHome) {
|
|
151233
|
-
const rel = relative10(canonicalize(
|
|
151366
|
+
const rel = relative10(canonicalize(join46(dorkHome, "rooms")), canonicalize(dir));
|
|
151234
151367
|
if (rel === "" || rel.startsWith("..")) return false;
|
|
151235
151368
|
const parts = rel.split(sep10);
|
|
151236
151369
|
return parts.length === 3 && parts[1] === "worktrees";
|
|
@@ -151242,9 +151375,9 @@ var init_directory_ownership = __esm({
|
|
|
151242
151375
|
});
|
|
151243
151376
|
|
|
151244
151377
|
// src/harness-consent.ts
|
|
151245
|
-
import { join as
|
|
151378
|
+
import { join as join47 } from "node:path";
|
|
151246
151379
|
function configPathFor(dorkHome) {
|
|
151247
|
-
return
|
|
151380
|
+
return join47(dorkHome, "config.json");
|
|
151248
151381
|
}
|
|
151249
151382
|
async function readStoredDecisions(dorkHome) {
|
|
151250
151383
|
const { readHookDecisionsFromDisk: readHookDecisionsFromDisk2 } = await Promise.resolve().then(() => (init_hook_consent(), hook_consent_exports));
|
|
@@ -151405,11 +151538,11 @@ __export(global_scope_exports, {
|
|
|
151405
151538
|
writeGlobalSharing: () => writeGlobalSharing
|
|
151406
151539
|
});
|
|
151407
151540
|
import { readFileSync as readFileSync20 } from "node:fs";
|
|
151408
|
-
import { join as
|
|
151541
|
+
import { join as join48 } from "node:path";
|
|
151409
151542
|
function readGlobalSharingFromDisk(dorkHome) {
|
|
151410
151543
|
let text3;
|
|
151411
151544
|
try {
|
|
151412
|
-
text3 = readFileSync20(
|
|
151545
|
+
text3 = readFileSync20(join48(dorkHome, "config.json"), "utf8");
|
|
151413
151546
|
} catch (err) {
|
|
151414
151547
|
if (err.code === "ENOENT") return NOTHING_SHARED;
|
|
151415
151548
|
return { ...NOTHING_SHARED, unreadable: describeReadFailure2(err) };
|
|
@@ -151438,7 +151571,7 @@ function boundaryConfigFromDisk(dorkHome) {
|
|
|
151438
151571
|
getDot: (key) => {
|
|
151439
151572
|
if (key !== "server.boundary") return void 0;
|
|
151440
151573
|
try {
|
|
151441
|
-
const raw = JSON.parse(readFileSync20(
|
|
151574
|
+
const raw = JSON.parse(readFileSync20(join48(dorkHome, "config.json"), "utf8"));
|
|
151442
151575
|
const server2 = raw?.server;
|
|
151443
151576
|
return server2?.boundary;
|
|
151444
151577
|
} catch {
|
|
@@ -151469,7 +151602,7 @@ function resolveGlobalScopeInputs(dorkHome, env6, config3) {
|
|
|
151469
151602
|
roots: {
|
|
151470
151603
|
dorkHome,
|
|
151471
151604
|
...AGENTS_SKILLS_DIR_READERS.some((harness) => enabled3.has(harness)) ? { agentsSkillsDir: agentsUserSkillsDir() } : {},
|
|
151472
|
-
...enabled3.has("claude-code") ? { claudeSkillsDir:
|
|
151605
|
+
...enabled3.has("claude-code") ? { claudeSkillsDir: join48(inheritedClaudeRoot(), "skills") } : {}
|
|
151473
151606
|
}
|
|
151474
151607
|
};
|
|
151475
151608
|
}
|
|
@@ -151479,7 +151612,7 @@ function globalRootsFor(dorkHome, harnesses, env6, config3) {
|
|
|
151479
151612
|
return {
|
|
151480
151613
|
dorkHome,
|
|
151481
151614
|
...AGENTS_SKILLS_DIR_READERS.some((harness) => enabled3.has(harness)) ? { agentsSkillsDir: agentsUserSkillsDir() } : {},
|
|
151482
|
-
...enabled3.has("claude-code") ? { claudeSkillsDir:
|
|
151615
|
+
...enabled3.has("claude-code") ? { claudeSkillsDir: join48(inheritedClaudeRoot(), "skills") } : {}
|
|
151483
151616
|
};
|
|
151484
151617
|
}
|
|
151485
151618
|
function writeGlobalSharing(harnesses, reason, now3 = /* @__PURE__ */ new Date()) {
|
|
@@ -151958,6 +152091,109 @@ var init_harness_sync_global = __esm({
|
|
|
151958
152091
|
}
|
|
151959
152092
|
});
|
|
151960
152093
|
|
|
152094
|
+
// src/harness-sync-claude-only.ts
|
|
152095
|
+
function formatClaudeOnly(claudeOnly, repoRoot) {
|
|
152096
|
+
const { root, plugins, personalHookCommands: hooks } = claudeOnly;
|
|
152097
|
+
const HEADING = "Installed in Claude Code only";
|
|
152098
|
+
if (claudeOnly.unreadable !== void 0) {
|
|
152099
|
+
return [
|
|
152100
|
+
"",
|
|
152101
|
+
HEADING,
|
|
152102
|
+
` DorkOS could not read ${root}/settings.json, so it cannot tell you what Claude Code has. (${claudeOnly.unreadable})`,
|
|
152103
|
+
" Nothing else in this report is affected."
|
|
152104
|
+
];
|
|
152105
|
+
}
|
|
152106
|
+
const notices = claudeOnly.unreadableParts.length + (claudeOnly.skippedEntries ?? 0);
|
|
152107
|
+
if (plugins.length === 0 && notices === 0) return [];
|
|
152108
|
+
const from = (plugin) => plugin.repo === void 0 ? ` - ${plugin.name} (from a source Claude Code calls "${plugin.marketplace}")` : ` - ${plugin.name} (from ${plugin.repo})`;
|
|
152109
|
+
const machineWide = plugins.filter((plugin) => plugin.settingsScope === "user");
|
|
152110
|
+
const inGroup = (offer) => machineWide.filter((plugin) => plugin.offer === offer);
|
|
152111
|
+
const lines = ["", HEADING, ` Read from ${root}`];
|
|
152112
|
+
if (plugins.length > 0) {
|
|
152113
|
+
lines.push(
|
|
152114
|
+
"",
|
|
152115
|
+
` You turned on ${plugins.length} ${plugins.length === 1 ? "plugin" : "plugins"} in Claude Code. Your other agent tools cannot see them.`
|
|
152116
|
+
);
|
|
152117
|
+
}
|
|
152118
|
+
for (const part of claudeOnly.unreadableParts) {
|
|
152119
|
+
lines.push(
|
|
152120
|
+
"",
|
|
152121
|
+
` DorkOS could not read the ${part} part of ${root}/settings.json; the plugin list is still right.`
|
|
152122
|
+
);
|
|
152123
|
+
}
|
|
152124
|
+
const skipped = claudeOnly.skippedEntries ?? 0;
|
|
152125
|
+
if (skipped > 0) {
|
|
152126
|
+
lines.push(
|
|
152127
|
+
"",
|
|
152128
|
+
skipped === 1 ? " DorkOS could not read 1 of the entries in that file, so it is not listed." : ` DorkOS could not read ${skipped} of the entries in that file, so they are not listed.`
|
|
152129
|
+
);
|
|
152130
|
+
}
|
|
152131
|
+
if (plugins.length === 0) return lines;
|
|
152132
|
+
if (hooks > 0) {
|
|
152133
|
+
lines.push(
|
|
152134
|
+
"",
|
|
152135
|
+
` Your personal Claude Code settings run ${hooks} ${hooks === 1 ? "command" : "commands"} automatically. Only Claude Code runs ${hooks === 1 ? "it" : "them"}.`
|
|
152136
|
+
);
|
|
152137
|
+
}
|
|
152138
|
+
if (claudeOnly.sourcesUnreadable !== void 0) {
|
|
152139
|
+
lines.push(
|
|
152140
|
+
"",
|
|
152141
|
+
` DorkOS could not read its own list of sources (${claudeOnly.sourcesUnreadable}), so it cannot offer installs right now.`,
|
|
152142
|
+
"",
|
|
152143
|
+
" Turned on in Claude Code:",
|
|
152144
|
+
...plugins.map(from),
|
|
152145
|
+
"",
|
|
152146
|
+
" Your company can also turn plugins on or off, in a settings file DorkOS cannot read. So this list may",
|
|
152147
|
+
" not be the whole story."
|
|
152148
|
+
);
|
|
152149
|
+
return lines;
|
|
152150
|
+
}
|
|
152151
|
+
const canInstall = inGroup("install");
|
|
152152
|
+
if (canInstall.length > 0) {
|
|
152153
|
+
lines.push(
|
|
152154
|
+
"",
|
|
152155
|
+
" DorkOS can install these for this project, so every agent tool here gets them:"
|
|
152156
|
+
);
|
|
152157
|
+
for (const plugin of canInstall) {
|
|
152158
|
+
lines.push(from(plugin), ` Run: dorkos install ${plugin.name} --project ${repoRoot}`);
|
|
152159
|
+
}
|
|
152160
|
+
lines.push(" DorkOS has to be running, and it asks you to approve the install first.");
|
|
152161
|
+
}
|
|
152162
|
+
const needsSource = inGroup("add-source-then-install");
|
|
152163
|
+
if (needsSource.length > 0) {
|
|
152164
|
+
lines.push("", " DorkOS does not have these sources yet:");
|
|
152165
|
+
for (const plugin of needsSource) {
|
|
152166
|
+
lines.push(
|
|
152167
|
+
from(plugin),
|
|
152168
|
+
` Add the source first: dorkos marketplace add ${plugin.sourceUrl}`
|
|
152169
|
+
);
|
|
152170
|
+
}
|
|
152171
|
+
}
|
|
152172
|
+
const noPackage = inGroup("no-package");
|
|
152173
|
+
if (noPackage.length > 0) {
|
|
152174
|
+
lines.push("", " DorkOS has that source but nothing by that name:", ...noPackage.map(from));
|
|
152175
|
+
}
|
|
152176
|
+
const unknownSource = inGroup("unknown-source");
|
|
152177
|
+
if (unknownSource.length > 0) {
|
|
152178
|
+
lines.push("", " DorkOS cannot tell where these came from:", ...unknownSource.map(from));
|
|
152179
|
+
}
|
|
152180
|
+
const projectOnly = plugins.filter((plugin) => plugin.settingsScope === "project");
|
|
152181
|
+
if (projectOnly.length > 0) {
|
|
152182
|
+
lines.push("", " On for this project only:", ...projectOnly.map(from));
|
|
152183
|
+
}
|
|
152184
|
+
lines.push(
|
|
152185
|
+
"",
|
|
152186
|
+
" Your company can also turn plugins on or off, in a settings file DorkOS cannot read. So this list may",
|
|
152187
|
+
" not be the whole story."
|
|
152188
|
+
);
|
|
152189
|
+
return lines;
|
|
152190
|
+
}
|
|
152191
|
+
var init_harness_sync_claude_only = __esm({
|
|
152192
|
+
"src/harness-sync-claude-only.ts"() {
|
|
152193
|
+
"use strict";
|
|
152194
|
+
}
|
|
152195
|
+
});
|
|
152196
|
+
|
|
151961
152197
|
// ../../apps/server/src/services/harness/project-with-consent.ts
|
|
151962
152198
|
var project_with_consent_exports = {};
|
|
151963
152199
|
__export(project_with_consent_exports, {
|
|
@@ -152089,11 +152325,11 @@ var init_project_with_consent = __esm({
|
|
|
152089
152325
|
import { AsyncLocalStorage as AsyncLocalStorage7 } from "node:async_hooks";
|
|
152090
152326
|
import { randomUUID as randomUUID3 } from "node:crypto";
|
|
152091
152327
|
import { chmod, mkdir as mkdir3, rename, rm, writeFile as writeFile3 } from "node:fs/promises";
|
|
152092
|
-
import { basename as basename8, dirname as dirname13, join as
|
|
152328
|
+
import { basename as basename8, dirname as dirname13, join as join49, resolve as resolve10 } from "node:path";
|
|
152093
152329
|
async function writeUnlocked(filePath, data, options) {
|
|
152094
152330
|
const dir = dirname13(filePath);
|
|
152095
152331
|
await mkdir3(dir, { recursive: true });
|
|
152096
|
-
const tempPath =
|
|
152332
|
+
const tempPath = join49(dir, `.${basename8(filePath)}.${process.pid}.${randomUUID3()}.tmp`);
|
|
152097
152333
|
try {
|
|
152098
152334
|
await writeFile3(tempPath, data, {
|
|
152099
152335
|
encoding: "utf-8",
|
|
@@ -152258,7 +152494,7 @@ var init_git_tree = __esm({
|
|
|
152258
152494
|
|
|
152259
152495
|
// ../../apps/server/src/services/marketplace/lib/directory-size.ts
|
|
152260
152496
|
import { lstat as lstat3, readdir as readdir3 } from "node:fs/promises";
|
|
152261
|
-
import { join as
|
|
152497
|
+
import { join as join50 } from "node:path";
|
|
152262
152498
|
async function directorySize(root) {
|
|
152263
152499
|
let total = 0;
|
|
152264
152500
|
const walk = async (dir, depth) => {
|
|
@@ -152270,7 +152506,7 @@ async function directorySize(root) {
|
|
|
152270
152506
|
return;
|
|
152271
152507
|
}
|
|
152272
152508
|
for (const entry of entries) {
|
|
152273
|
-
const entryPath =
|
|
152509
|
+
const entryPath = join50(dir, entry.name);
|
|
152274
152510
|
if (entry.isDirectory()) {
|
|
152275
152511
|
await walk(entryPath, depth + 1);
|
|
152276
152512
|
} else if (entry.isFile()) {
|
|
@@ -152306,7 +152542,7 @@ import {
|
|
|
152306
152542
|
stat as stat2,
|
|
152307
152543
|
utimes
|
|
152308
152544
|
} from "node:fs/promises";
|
|
152309
|
-
import { join as
|
|
152545
|
+
import { join as join51 } from "node:path";
|
|
152310
152546
|
function isFetchStatus(value) {
|
|
152311
152547
|
if (typeof value !== "object" || value === null) return false;
|
|
152312
152548
|
const v2 = value;
|
|
@@ -152398,7 +152634,7 @@ var init_marketplace_cache = __esm({
|
|
|
152398
152634
|
entryWrittenListeners = /* @__PURE__ */ new Set();
|
|
152399
152635
|
/** Compute the cache root path: `${dorkHome}/cache/marketplace`. */
|
|
152400
152636
|
get cacheRoot() {
|
|
152401
|
-
return
|
|
152637
|
+
return join51(this.dorkHome, "cache", "marketplace");
|
|
152402
152638
|
}
|
|
152403
152639
|
/**
|
|
152404
152640
|
* Read a cached marketplace.json document.
|
|
@@ -152429,8 +152665,8 @@ var init_marketplace_cache = __esm({
|
|
|
152429
152665
|
if (err instanceof PathEscapeError) return null;
|
|
152430
152666
|
throw err;
|
|
152431
152667
|
}
|
|
152432
|
-
const jsonPath =
|
|
152433
|
-
const stampPath =
|
|
152668
|
+
const jsonPath = join51(dir, MARKETPLACE_FILENAME);
|
|
152669
|
+
const stampPath = join51(dir, LAST_FETCHED_FILENAME);
|
|
152434
152670
|
let raw;
|
|
152435
152671
|
let stamp2;
|
|
152436
152672
|
try {
|
|
@@ -152465,9 +152701,9 @@ var init_marketplace_cache = __esm({
|
|
|
152465
152701
|
async writeMarketplace(marketplaceName, json3) {
|
|
152466
152702
|
const dir = this.marketplaceDir(marketplaceName);
|
|
152467
152703
|
await mkdir4(dir, { recursive: true });
|
|
152468
|
-
await writeFile4(
|
|
152704
|
+
await writeFile4(join51(dir, MARKETPLACE_FILENAME), `${JSON.stringify(json3, null, 2)}
|
|
152469
152705
|
`);
|
|
152470
|
-
await writeFile4(
|
|
152706
|
+
await writeFile4(join51(dir, LAST_FETCHED_FILENAME), (/* @__PURE__ */ new Date()).toISOString());
|
|
152471
152707
|
}
|
|
152472
152708
|
/**
|
|
152473
152709
|
* Record how an attempt to fetch a marketplace's listing went.
|
|
@@ -152486,7 +152722,7 @@ var init_marketplace_cache = __esm({
|
|
|
152486
152722
|
* cache. Callers treat recording as best effort.
|
|
152487
152723
|
*/
|
|
152488
152724
|
async writeFetchStatus(marketplaceName, status) {
|
|
152489
|
-
const file2 =
|
|
152725
|
+
const file2 = join51(this.marketplaceDir(marketplaceName), LAST_CHECK_FILENAME);
|
|
152490
152726
|
await withFileLock(file2, async (write) => {
|
|
152491
152727
|
const current3 = await this.readFetchStatus(marketplaceName);
|
|
152492
152728
|
if (current3 && current3.startedAt > status.startedAt) return;
|
|
@@ -152506,8 +152742,8 @@ var init_marketplace_cache = __esm({
|
|
|
152506
152742
|
try {
|
|
152507
152743
|
const dir = this.marketplaceDir(marketplaceName);
|
|
152508
152744
|
const [stamp2] = await Promise.all([
|
|
152509
|
-
readFile3(
|
|
152510
|
-
access(
|
|
152745
|
+
readFile3(join51(dir, LAST_FETCHED_FILENAME), "utf-8"),
|
|
152746
|
+
access(join51(dir, MARKETPLACE_FILENAME))
|
|
152511
152747
|
]);
|
|
152512
152748
|
const at = new Date(stamp2.trim());
|
|
152513
152749
|
return Number.isNaN(at.getTime()) ? null : at;
|
|
@@ -152525,7 +152761,7 @@ var init_marketplace_cache = __esm({
|
|
|
152525
152761
|
async readFetchStatus(marketplaceName) {
|
|
152526
152762
|
try {
|
|
152527
152763
|
const raw = await readFile3(
|
|
152528
|
-
|
|
152764
|
+
join51(this.marketplaceDir(marketplaceName), LAST_CHECK_FILENAME),
|
|
152529
152765
|
"utf-8"
|
|
152530
152766
|
);
|
|
152531
152767
|
const parsed = JSON.parse(raw);
|
|
@@ -152637,8 +152873,8 @@ var init_marketplace_cache = __esm({
|
|
|
152637
152873
|
* Idempotent. Not safe while a fetch is running in this cache.
|
|
152638
152874
|
*/
|
|
152639
152875
|
async removeLeftovers() {
|
|
152640
|
-
await rm2(
|
|
152641
|
-
const treesRoot =
|
|
152876
|
+
await rm2(join51(this.cacheRoot, LEGACY_PACKAGES_DIRNAME), { recursive: true, force: true });
|
|
152877
|
+
const treesRoot = join51(this.cacheRoot, TREES_DIRNAME);
|
|
152642
152878
|
let entries;
|
|
152643
152879
|
try {
|
|
152644
152880
|
entries = await readdir4(treesRoot);
|
|
@@ -152648,7 +152884,7 @@ var init_marketplace_cache = __esm({
|
|
|
152648
152884
|
await Promise.all(
|
|
152649
152885
|
entries.filter(
|
|
152650
152886
|
(entry) => entry.startsWith(TEMP_FETCH_PREFIX) || entry.startsWith(TEMP_PRUNE_PREFIX)
|
|
152651
|
-
).map((entry) => rm2(
|
|
152887
|
+
).map((entry) => rm2(join51(treesRoot, entry), { recursive: true, force: true }))
|
|
152652
152888
|
);
|
|
152653
152889
|
}
|
|
152654
152890
|
/**
|
|
@@ -152659,9 +152895,9 @@ var init_marketplace_cache = __esm({
|
|
|
152659
152895
|
* @internal
|
|
152660
152896
|
*/
|
|
152661
152897
|
async fetchAndPromote(packageName, subpath, fetch2) {
|
|
152662
|
-
const treesRoot =
|
|
152898
|
+
const treesRoot = join51(this.cacheRoot, TREES_DIRNAME);
|
|
152663
152899
|
await mkdir4(treesRoot, { recursive: true });
|
|
152664
|
-
const tempDir = await mkdtemp(
|
|
152900
|
+
const tempDir = await mkdtemp(join51(treesRoot, TEMP_FETCH_PREFIX));
|
|
152665
152901
|
let commitSha;
|
|
152666
152902
|
let finalPath;
|
|
152667
152903
|
try {
|
|
@@ -152725,7 +152961,7 @@ var init_marketplace_cache = __esm({
|
|
|
152725
152961
|
* removed (the others still are).
|
|
152726
152962
|
*/
|
|
152727
152963
|
async removeUnused(keep) {
|
|
152728
|
-
const treesRoot =
|
|
152964
|
+
const treesRoot = join51(this.cacheRoot, TREES_DIRNAME);
|
|
152729
152965
|
const entries = await this.listPackages();
|
|
152730
152966
|
const kept = keep(entries);
|
|
152731
152967
|
const result2 = { removed: [], freedBytes: 0, failed: [] };
|
|
@@ -152740,7 +152976,7 @@ var init_marketplace_cache = __esm({
|
|
|
152740
152976
|
return null;
|
|
152741
152977
|
}
|
|
152742
152978
|
if (Date.now() - lastUsedMs < IN_USE_GRACE_MS) return null;
|
|
152743
|
-
const target =
|
|
152979
|
+
const target = join51(treesRoot, `${TEMP_PRUNE_PREFIX}${randomUUID4()}`);
|
|
152744
152980
|
await rename2(entry.path, target);
|
|
152745
152981
|
return target;
|
|
152746
152982
|
});
|
|
@@ -152789,7 +153025,7 @@ var init_marketplace_cache = __esm({
|
|
|
152789
153025
|
* Listing is not use: it stamps nothing.
|
|
152790
153026
|
*/
|
|
152791
153027
|
async listPackages() {
|
|
152792
|
-
const root =
|
|
153028
|
+
const root = join51(this.cacheRoot, TREES_DIRNAME);
|
|
152793
153029
|
let entries;
|
|
152794
153030
|
try {
|
|
152795
153031
|
entries = await readdir4(root);
|
|
@@ -152803,7 +153039,7 @@ var init_marketplace_cache = __esm({
|
|
|
152803
153039
|
if (!parsed) {
|
|
152804
153040
|
continue;
|
|
152805
153041
|
}
|
|
152806
|
-
const path66 =
|
|
153042
|
+
const path66 = join51(root, entry);
|
|
152807
153043
|
try {
|
|
152808
153044
|
const info2 = await stat2(path66);
|
|
152809
153045
|
if (!info2.isDirectory()) {
|
|
@@ -152832,8 +153068,8 @@ var init_marketplace_cache = __esm({
|
|
|
152832
153068
|
* the cache.
|
|
152833
153069
|
*/
|
|
152834
153070
|
marketplaceDir(marketplaceName) {
|
|
152835
|
-
const root =
|
|
152836
|
-
return assertContainedIn(root,
|
|
153071
|
+
const root = join51(this.cacheRoot, "marketplaces");
|
|
153072
|
+
return assertContainedIn(root, join51(root, marketplaceName));
|
|
152837
153073
|
}
|
|
152838
153074
|
/**
|
|
152839
153075
|
* Compute the directory path for a content-addressable package tree:
|
|
@@ -152853,10 +153089,10 @@ var init_marketplace_cache = __esm({
|
|
|
152853
153089
|
* the cache.
|
|
152854
153090
|
*/
|
|
152855
153091
|
packageDir(packageName, commitSha, subpath) {
|
|
152856
|
-
const root =
|
|
153092
|
+
const root = join51(this.cacheRoot, TREES_DIRNAME);
|
|
152857
153093
|
const digest2 = subpathDigest(subpath);
|
|
152858
153094
|
const tree = digest2 === "" ? "" : `${SUBPATH_SEPARATOR}${digest2}`;
|
|
152859
|
-
return assertContainedIn(root,
|
|
153095
|
+
return assertContainedIn(root, join51(root, `${packageName}@${commitSha}${tree}`));
|
|
152860
153096
|
}
|
|
152861
153097
|
};
|
|
152862
153098
|
}
|
|
@@ -152917,7 +153153,7 @@ var init_source_url_policy = __esm({
|
|
|
152917
153153
|
|
|
152918
153154
|
// ../../apps/server/src/services/marketplace/sources/marketplace-source-manager.ts
|
|
152919
153155
|
import { readFile as readFile4 } from "node:fs/promises";
|
|
152920
|
-
import { join as
|
|
153156
|
+
import { join as join52 } from "node:path";
|
|
152921
153157
|
function buildDefaultSources() {
|
|
152922
153158
|
const now3 = (/* @__PURE__ */ new Date()).toISOString();
|
|
152923
153159
|
return [
|
|
@@ -152993,7 +153229,7 @@ var init_marketplace_source_manager = __esm({
|
|
|
152993
153229
|
*/
|
|
152994
153230
|
constructor(dorkHome) {
|
|
152995
153231
|
this.dorkHome = dorkHome;
|
|
152996
|
-
this.filePath =
|
|
153232
|
+
this.filePath = join52(dorkHome, MARKETPLACES_FILENAME);
|
|
152997
153233
|
}
|
|
152998
153234
|
dorkHome;
|
|
152999
153235
|
filePath;
|
|
@@ -153433,7 +153669,7 @@ __export(harness_sync_command_exports, {
|
|
|
153433
153669
|
runHarnessSync: () => runHarnessSync
|
|
153434
153670
|
});
|
|
153435
153671
|
import { existsSync as existsSync18, readFileSync as readFileSync21 } from "node:fs";
|
|
153436
|
-
import { join as
|
|
153672
|
+
import { join as join53 } from "node:path";
|
|
153437
153673
|
import { parseArgs as parseArgs4 } from "node:util";
|
|
153438
153674
|
function parseHarnessSyncArgs(rawArgs) {
|
|
153439
153675
|
let parsed;
|
|
@@ -153560,7 +153796,7 @@ function reportCodexTrust(before, after) {
|
|
|
153560
153796
|
}
|
|
153561
153797
|
function reportClaudeSkillsRestart(existedBefore, repoRoot) {
|
|
153562
153798
|
if (existedBefore) return;
|
|
153563
|
-
if (!existsSync18(
|
|
153799
|
+
if (!existsSync18(join53(repoRoot, CLAUDE_SKILLS_DIR))) return;
|
|
153564
153800
|
const facts = skillsFactsFor("claude-code");
|
|
153565
153801
|
console.log("");
|
|
153566
153802
|
console.log(`Created ${CLAUDE_SKILLS_DIR}/, which is where Claude Code reads skills.`);
|
|
@@ -153571,107 +153807,11 @@ function reportClaudeSkillsRestart(existedBefore, repoRoot) {
|
|
|
153571
153807
|
}
|
|
153572
153808
|
function readIfPresent(repoRoot, rel) {
|
|
153573
153809
|
try {
|
|
153574
|
-
return readFileSync21(
|
|
153810
|
+
return readFileSync21(join53(repoRoot, rel), "utf8");
|
|
153575
153811
|
} catch {
|
|
153576
153812
|
return void 0;
|
|
153577
153813
|
}
|
|
153578
153814
|
}
|
|
153579
|
-
function formatClaudeOnly(claudeOnly, repoRoot) {
|
|
153580
|
-
const { root, plugins, personalHookCommands: hooks } = claudeOnly;
|
|
153581
|
-
const HEADING = "Installed in Claude Code only";
|
|
153582
|
-
if (claudeOnly.unreadable !== void 0) {
|
|
153583
|
-
return [
|
|
153584
|
-
"",
|
|
153585
|
-
HEADING,
|
|
153586
|
-
` DorkOS could not read ${root}/settings.json, so it cannot tell you what Claude Code has. (${claudeOnly.unreadable})`,
|
|
153587
|
-
" Nothing else in this report is affected."
|
|
153588
|
-
];
|
|
153589
|
-
}
|
|
153590
|
-
const notices = claudeOnly.unreadableParts.length + (claudeOnly.skippedEntries ?? 0);
|
|
153591
|
-
if (plugins.length === 0 && notices === 0) return [];
|
|
153592
|
-
const from = (plugin) => plugin.repo === void 0 ? ` - ${plugin.name} (from a source Claude Code calls "${plugin.marketplace}")` : ` - ${plugin.name} (from ${plugin.repo})`;
|
|
153593
|
-
const machineWide = plugins.filter((plugin) => plugin.settingsScope === "user");
|
|
153594
|
-
const inGroup = (offer) => machineWide.filter((plugin) => plugin.offer === offer);
|
|
153595
|
-
const lines = ["", HEADING, ` Read from ${root}`];
|
|
153596
|
-
if (plugins.length > 0) {
|
|
153597
|
-
lines.push(
|
|
153598
|
-
"",
|
|
153599
|
-
` You turned on ${plugins.length} ${plugins.length === 1 ? "plugin" : "plugins"} in Claude Code. Your other agent tools cannot see them.`
|
|
153600
|
-
);
|
|
153601
|
-
}
|
|
153602
|
-
for (const part of claudeOnly.unreadableParts) {
|
|
153603
|
-
lines.push(
|
|
153604
|
-
"",
|
|
153605
|
-
` DorkOS could not read the ${part} part of ${root}/settings.json; the plugin list is still right.`
|
|
153606
|
-
);
|
|
153607
|
-
}
|
|
153608
|
-
const skipped = claudeOnly.skippedEntries ?? 0;
|
|
153609
|
-
if (skipped > 0) {
|
|
153610
|
-
lines.push(
|
|
153611
|
-
"",
|
|
153612
|
-
skipped === 1 ? " DorkOS could not read 1 of the entries in that file, so it is not listed." : ` DorkOS could not read ${skipped} of the entries in that file, so they are not listed.`
|
|
153613
|
-
);
|
|
153614
|
-
}
|
|
153615
|
-
if (plugins.length === 0) return lines;
|
|
153616
|
-
if (hooks > 0) {
|
|
153617
|
-
lines.push(
|
|
153618
|
-
"",
|
|
153619
|
-
` Your personal Claude Code settings run ${hooks} ${hooks === 1 ? "command" : "commands"} automatically. Only Claude Code runs ${hooks === 1 ? "it" : "them"}.`
|
|
153620
|
-
);
|
|
153621
|
-
}
|
|
153622
|
-
if (claudeOnly.sourcesUnreadable !== void 0) {
|
|
153623
|
-
lines.push(
|
|
153624
|
-
"",
|
|
153625
|
-
` DorkOS could not read its own list of sources (${claudeOnly.sourcesUnreadable}), so it cannot offer installs right now.`,
|
|
153626
|
-
"",
|
|
153627
|
-
" Turned on in Claude Code:",
|
|
153628
|
-
...plugins.map(from),
|
|
153629
|
-
"",
|
|
153630
|
-
" Your company can also turn plugins on or off, in a settings file DorkOS cannot read. So this list may",
|
|
153631
|
-
" not be the whole story."
|
|
153632
|
-
);
|
|
153633
|
-
return lines;
|
|
153634
|
-
}
|
|
153635
|
-
const canInstall = inGroup("install");
|
|
153636
|
-
if (canInstall.length > 0) {
|
|
153637
|
-
lines.push(
|
|
153638
|
-
"",
|
|
153639
|
-
" DorkOS can install these for this project, so every agent tool here gets them:"
|
|
153640
|
-
);
|
|
153641
|
-
for (const plugin of canInstall) {
|
|
153642
|
-
lines.push(from(plugin), ` Run: dorkos install ${plugin.name} --project ${repoRoot}`);
|
|
153643
|
-
}
|
|
153644
|
-
lines.push(" DorkOS has to be running, and it asks you to approve the install first.");
|
|
153645
|
-
}
|
|
153646
|
-
const needsSource = inGroup("add-source-then-install");
|
|
153647
|
-
if (needsSource.length > 0) {
|
|
153648
|
-
lines.push("", " DorkOS does not have these sources yet:");
|
|
153649
|
-
for (const plugin of needsSource) {
|
|
153650
|
-
lines.push(
|
|
153651
|
-
from(plugin),
|
|
153652
|
-
` Add the source first: dorkos marketplace add ${plugin.sourceUrl}`
|
|
153653
|
-
);
|
|
153654
|
-
}
|
|
153655
|
-
}
|
|
153656
|
-
const noPackage = inGroup("no-package");
|
|
153657
|
-
if (noPackage.length > 0) {
|
|
153658
|
-
lines.push("", " DorkOS has that source but nothing by that name:", ...noPackage.map(from));
|
|
153659
|
-
}
|
|
153660
|
-
const unknownSource = inGroup("unknown-source");
|
|
153661
|
-
if (unknownSource.length > 0) {
|
|
153662
|
-
lines.push("", " DorkOS cannot tell where these came from:", ...unknownSource.map(from));
|
|
153663
|
-
}
|
|
153664
|
-
const projectOnly = plugins.filter((plugin) => plugin.settingsScope === "project");
|
|
153665
|
-
if (projectOnly.length > 0) {
|
|
153666
|
-
lines.push("", " On for this project only:", ...projectOnly.map(from));
|
|
153667
|
-
}
|
|
153668
|
-
lines.push(
|
|
153669
|
-
"",
|
|
153670
|
-
" Your company can also turn plugins on or off, in a settings file DorkOS cannot read. So this list may",
|
|
153671
|
-
" not be the whole story."
|
|
153672
|
-
);
|
|
153673
|
-
return lines;
|
|
153674
|
-
}
|
|
153675
153815
|
function formatNotEnabled(plan) {
|
|
153676
153816
|
if (plan.notEnabled.length === 0) return [];
|
|
153677
153817
|
const enableWith = (harness) => `add it to ${HARNESS_MANIFEST_PATH} or run dorkos harness sync --fix --enable ${harness}`;
|
|
@@ -153898,7 +154038,7 @@ async function runHarnessSync(args) {
|
|
|
153898
154038
|
}
|
|
153899
154039
|
const repoRoot = process.cwd();
|
|
153900
154040
|
const ourHarness = await readDorkosHarness(resolveDorkHome2());
|
|
153901
|
-
if (!existsSync18(
|
|
154041
|
+
if (!existsSync18(join53(repoRoot, HARNESS_MANIFEST_PATH))) {
|
|
153902
154042
|
if (!args.fix) {
|
|
153903
154043
|
console.error(`No harness manifest in ${repoRoot}`);
|
|
153904
154044
|
console.error(` looked for: ${HARNESS_MANIFEST_PATH}`);
|
|
@@ -153978,7 +154118,7 @@ async function runHarnessSync(args) {
|
|
|
153978
154118
|
return { exitCode: strictExit(exitCode2, withheld, args.strict) };
|
|
153979
154119
|
}
|
|
153980
154120
|
const codexHooksBefore = readIfPresent(repoRoot, CODEX_HOOKS_TARGET);
|
|
153981
|
-
const claudeSkillsExistedBefore = existsSync18(
|
|
154121
|
+
const claudeSkillsExistedBefore = existsSync18(join53(repoRoot, CLAUDE_SKILLS_DIR));
|
|
153982
154122
|
const result2 = projectWithConsent2(repoRoot, {
|
|
153983
154123
|
...consentOpts,
|
|
153984
154124
|
sweepOrphans: harnessFilter === void 0
|
|
@@ -154015,6 +154155,7 @@ var init_harness_sync_command = __esm({
|
|
|
154015
154155
|
init_harness_consent();
|
|
154016
154156
|
init_harness_sync_allow_hooks();
|
|
154017
154157
|
init_harness_sync_global();
|
|
154158
|
+
init_harness_sync_claude_only();
|
|
154018
154159
|
init_src5();
|
|
154019
154160
|
SUMMARY_KINDS = ["native", "symlink", "scaffold", "generate", "merge"];
|
|
154020
154161
|
USAGE_LINE5 = "Usage: dorkos harness sync [--check] [--fix] [--global] [--harness <id>] [--strict] [--allow-hooks <package>] [--enable <harness>] [--write-gitignore]";
|
|
@@ -154036,7 +154177,7 @@ __export(harness_adopt_command_exports, {
|
|
|
154036
154177
|
runHarnessAdopt: () => runHarnessAdopt
|
|
154037
154178
|
});
|
|
154038
154179
|
import { existsSync as existsSync19 } from "node:fs";
|
|
154039
|
-
import { join as
|
|
154180
|
+
import { join as join54, resolve as resolve11 } from "node:path";
|
|
154040
154181
|
import { parseArgs as parseArgs5 } from "node:util";
|
|
154041
154182
|
function parseHarnessAdoptArgs(rawArgs) {
|
|
154042
154183
|
let parsed;
|
|
@@ -154077,7 +154218,7 @@ ${USAGE_LINE6}`
|
|
|
154077
154218
|
}
|
|
154078
154219
|
async function runHarnessAdopt(args) {
|
|
154079
154220
|
const repoRoot = args.project === void 0 ? process.cwd() : resolve11(process.cwd(), args.project);
|
|
154080
|
-
if (!existsSync19(
|
|
154221
|
+
if (!existsSync19(join54(repoRoot, HARNESS_MANIFEST_PATH))) {
|
|
154081
154222
|
console.error(`No harness manifest in ${repoRoot}`);
|
|
154082
154223
|
console.error(` looked for: ${HARNESS_MANIFEST_PATH}`);
|
|
154083
154224
|
console.error("");
|
|
@@ -157045,7 +157186,7 @@ import { spawn } from "node:child_process";
|
|
|
157045
157186
|
import { randomBytes as randomBytes5, createHash as createHash7 } from "node:crypto";
|
|
157046
157187
|
import { constants as constants6 } from "node:fs";
|
|
157047
157188
|
import { lstat as lstat5, open as open4, realpath as realpath4 } from "node:fs/promises";
|
|
157048
|
-
import { join as
|
|
157189
|
+
import { join as join55, resolve as resolve12, relative as relative11, isAbsolute as isAbsolute10, dirname as dirname14 } from "node:path";
|
|
157049
157190
|
function requireFact2(value, code) {
|
|
157050
157191
|
if (!value) throw new InstallationFailure(code);
|
|
157051
157192
|
}
|
|
@@ -157326,10 +157467,10 @@ function createInstallationJobs(configuration, options = { ownerKind: "controlle
|
|
|
157326
157467
|
sameBinding(request.attempt.binding, slot.binding) && sameBinding(request.candidate.binding, slot.binding),
|
|
157327
157468
|
"BINDING_MISMATCH"
|
|
157328
157469
|
);
|
|
157329
|
-
const attempt =
|
|
157330
|
-
const candidate =
|
|
157470
|
+
const attempt = join55(config3.cacheRoot, "attempts", slot.binding.attemptId);
|
|
157471
|
+
const candidate = join55(config3.cacheRoot, "candidates", slot.binding.installationId);
|
|
157331
157472
|
requireFact2(
|
|
157332
|
-
request.attempt.attemptRoot === attempt && request.attempt.homeRoot ===
|
|
157473
|
+
request.attempt.attemptRoot === attempt && request.attempt.homeRoot === join55(attempt, "home") && request.attempt.temporaryRoot === join55(attempt, "tmp") && request.candidate.candidateRoot === candidate && request.candidate.payloadRoot === join55(candidate, "payload"),
|
|
157333
157474
|
"BINDING_MISMATCH"
|
|
157334
157475
|
);
|
|
157335
157476
|
await assertDirectory(attempt, request.attempt.identity);
|
|
@@ -157338,7 +157479,7 @@ function createInstallationJobs(configuration, options = { ownerKind: "controlle
|
|
|
157338
157479
|
await assertDirectory(request.candidate.payloadRoot);
|
|
157339
157480
|
await assertDirectory(config3.libraryRoot);
|
|
157340
157481
|
requireFact2(
|
|
157341
|
-
request.library.distributionSHA256 === INSTALLATION_TARGET.libraryDistributionSHA256 && request.library.cli.path ===
|
|
157482
|
+
request.library.distributionSHA256 === INSTALLATION_TARGET.libraryDistributionSHA256 && request.library.cli.path === join55(config3.libraryRoot, "cli.js") && request.library.browsersManifest.path === join55(config3.libraryRoot, "browsers.json") && request.library.files.length > 0 && request.library.files.length <= INSTALLATION_LIMITS.libraryEntries,
|
|
157342
157483
|
"LIBRARY_MISMATCH"
|
|
157343
157484
|
);
|
|
157344
157485
|
const paths2 = /* @__PURE__ */ new Set();
|
|
@@ -157373,9 +157514,9 @@ function createInstallationJobs(configuration, options = { ownerKind: "controlle
|
|
|
157373
157514
|
PATH: dirname14(config3.nodeExecutable) + ":/usr/bin:/bin",
|
|
157374
157515
|
HOME: home2,
|
|
157375
157516
|
TMPDIR: temporary,
|
|
157376
|
-
XDG_CONFIG_HOME:
|
|
157377
|
-
XDG_CACHE_HOME:
|
|
157378
|
-
XDG_DATA_HOME:
|
|
157517
|
+
XDG_CONFIG_HOME: join55(home2, ".config"),
|
|
157518
|
+
XDG_CACHE_HOME: join55(home2, ".cache"),
|
|
157519
|
+
XDG_DATA_HOME: join55(home2, ".local", "share"),
|
|
157379
157520
|
NODE_DISABLE_COMPILE_CACHE: "1",
|
|
157380
157521
|
...payload ? { PLAYWRIGHT_BROWSERS_PATH: payload } : {},
|
|
157381
157522
|
LC_ALL: "C",
|
|
@@ -157708,17 +157849,17 @@ function createInstallationJobs(configuration, options = { ownerKind: "controlle
|
|
|
157708
157849
|
},
|
|
157709
157850
|
async runVersionProbe(request) {
|
|
157710
157851
|
const slot = register("version-probe", request.binding, request.bounds);
|
|
157711
|
-
const attempt =
|
|
157852
|
+
const attempt = join55(config3.cacheRoot, "attempts", slot.binding.attemptId);
|
|
157712
157853
|
return execute(
|
|
157713
157854
|
slot,
|
|
157714
157855
|
request,
|
|
157715
157856
|
request.executable.path,
|
|
157716
157857
|
["--version"],
|
|
157717
157858
|
request.cwd,
|
|
157718
|
-
environment(
|
|
157859
|
+
environment(join55(attempt, "home"), join55(attempt, "tmp")),
|
|
157719
157860
|
async () => {
|
|
157720
157861
|
requireFact2(
|
|
157721
|
-
request.cwd === attempt && request.executable.path ===
|
|
157862
|
+
request.cwd === attempt && request.executable.path === join55(
|
|
157722
157863
|
config3.cacheRoot,
|
|
157723
157864
|
"candidates",
|
|
157724
157865
|
slot.binding.installationId,
|
|
@@ -157727,8 +157868,8 @@ function createInstallationJobs(configuration, options = { ownerKind: "controlle
|
|
|
157727
157868
|
"BINDING_MISMATCH"
|
|
157728
157869
|
);
|
|
157729
157870
|
await assertDirectory(attempt);
|
|
157730
|
-
await assertDirectory(
|
|
157731
|
-
await assertDirectory(
|
|
157871
|
+
await assertDirectory(join55(attempt, "home"));
|
|
157872
|
+
await assertDirectory(join55(attempt, "tmp"));
|
|
157732
157873
|
await sourceIntake(slot);
|
|
157733
157874
|
await readPinned(
|
|
157734
157875
|
slot,
|
|
@@ -157791,7 +157932,7 @@ var init_status2 = __esm({
|
|
|
157791
157932
|
});
|
|
157792
157933
|
|
|
157793
157934
|
// ../browser/src/runtime/installation/transaction.ts
|
|
157794
|
-
import { join as
|
|
157935
|
+
import { join as join56 } from "node:path";
|
|
157795
157936
|
function require2(value, code) {
|
|
157796
157937
|
if (!value) throw new InstallationFailure(code);
|
|
157797
157938
|
}
|
|
@@ -157855,7 +157996,7 @@ function createInstallationTransaction(configuration, dependencies, generation3)
|
|
|
157855
157996
|
require2(facts.cleanupCauses.length === 0 && !facts.stopRequested && facts.exitObserved && facts.closeObserved, "CUSTODY_UNCERTAIN");
|
|
157856
157997
|
require2(facts.exitCode === 0 && facts.signal === null, role2 === "official-install" ? "INSTALLER_FAILED" : "VERIFIER_FAILED");
|
|
157857
157998
|
const birth = facts.birth;
|
|
157858
|
-
require2(birth && sameBinding(birth.binding, expected) && birth.role === role2 && birth.jobId === facts.jobId && birth.executable === config3.nodeExecutable && canonicalDigest(birth.bounds) === canonicalDigest(bounds) && birth.cwd ===
|
|
157999
|
+
require2(birth && sameBinding(birth.binding, expected) && birth.role === role2 && birth.jobId === facts.jobId && birth.executable === config3.nodeExecutable && canonicalDigest(birth.bounds) === canonicalDigest(bounds) && birth.cwd === join56(config3.cacheRoot, "attempts", expected.attemptId) && Number.isSafeInteger(birth.pid) && birth.pid > 0 && canonicalDigest(birth.argv) === canonicalDigest(argv2), "BINDING_MISMATCH");
|
|
157859
158000
|
for (const [stream, bytes] of [
|
|
157860
158001
|
[facts.stdout, run.stdout],
|
|
157861
158002
|
[facts.stderr, run.stderr]
|
|
@@ -157868,11 +158009,11 @@ function createInstallationTransaction(configuration, dependencies, generation3)
|
|
|
157868
158009
|
};
|
|
157869
158010
|
const validateLibrary = (library) => {
|
|
157870
158011
|
require2(library.distributionSHA256 === INSTALLATION_TARGET.libraryDistributionSHA256, "LIBRARY_MISMATCH");
|
|
157871
|
-
require2(library.cli.path ===
|
|
158012
|
+
require2(library.cli.path === join56(config3.libraryRoot, "cli.js") && library.browsersManifest.path === join56(config3.libraryRoot, "browsers.json"), "LIBRARY_MISMATCH");
|
|
157872
158013
|
require2(library.files.length > 0 && library.files.length <= INSTALLATION_LIMITS.libraryEntries, "LIBRARY_MISMATCH");
|
|
157873
158014
|
};
|
|
157874
158015
|
const validateCandidate = (candidate, expected) => {
|
|
157875
|
-
require2(candidate.installationId === expected.installationId && candidate.candidateRoot ===
|
|
158016
|
+
require2(candidate.installationId === expected.installationId && candidate.candidateRoot === join56(config3.cacheRoot, "candidates", expected.installationId) && candidate.payloadRoot === join56(candidate.candidateRoot, "payload") && candidate.executable.path === join56(candidate.candidateRoot, INSTALLATION_TARGET.executablePath), "OWNERSHIP_UNCERTAIN");
|
|
157876
158017
|
FileIdentitySchema.parse(candidate.executable.identity);
|
|
157877
158018
|
DigestSchema.parse(candidate.executable.sha256);
|
|
157878
158019
|
DigestSchema.parse(candidate.inventoryDigest);
|
|
@@ -158059,7 +158200,7 @@ function createInstallationTransaction(configuration, dependencies, generation3)
|
|
|
158059
158200
|
recordBytes(journal, INSTALLATION_LIMITS.journalBytes);
|
|
158060
158201
|
check4(bounds, options.signal);
|
|
158061
158202
|
const written = await fs40.writeReuseJournal(reservation, attempt, journal);
|
|
158062
|
-
require2(written.path ===
|
|
158203
|
+
require2(written.path === join56(attempt.attemptRoot, "reuse.json") && written.sha256 === sha2562(recordBytes(journal, INSTALLATION_LIMITS.journalBytes)), "OWNERSHIP_UNCERTAIN");
|
|
158063
158204
|
const unchanged = await fs40.inspectExisting({ signal: options.signal });
|
|
158064
158205
|
require2(canonicalDigest(unchanged.current) === canonicalDigest(reserved.current) && canonicalDigest(unchanged.installation) === canonicalDigest(reserved.installation), "ROOT_CHANGED");
|
|
158065
158206
|
journalDigest = written.sha256;
|
|
@@ -158167,7 +158308,7 @@ import { createHash as createHash8 } from "node:crypto";
|
|
|
158167
158308
|
import { constants as constants7 } from "node:fs";
|
|
158168
158309
|
import { lstat as lstat6, open as open5, realpath as realpath5 } from "node:fs/promises";
|
|
158169
158310
|
import { createRequire as createRequire3 } from "node:module";
|
|
158170
|
-
import { dirname as dirname15, join as
|
|
158311
|
+
import { dirname as dirname15, join as join57, resolve as resolve13 } from "node:path";
|
|
158171
158312
|
import { fileURLToPath as fileURLToPath6 } from "node:url";
|
|
158172
158313
|
function sameFile(a2, b2) {
|
|
158173
158314
|
return a2.isFile() && b2.isFile() && a2.dev === b2.dev && a2.ino === b2.ino && a2.size === b2.size && a2.mtimeNs === b2.mtimeNs && a2.ctimeNs === b2.ctimeNs && a2.mode === b2.mode && a2.uid === b2.uid;
|
|
@@ -158228,7 +158369,7 @@ async function inspectFile(filename, cap, retainBytes = false) {
|
|
|
158228
158369
|
async function packageRoot(controller) {
|
|
158229
158370
|
let directory = dirname15(controller);
|
|
158230
158371
|
while (true) {
|
|
158231
|
-
const candidate =
|
|
158372
|
+
const candidate = join57(directory, "package.json");
|
|
158232
158373
|
let named3 = null;
|
|
158233
158374
|
try {
|
|
158234
158375
|
named3 = await lstat6(candidate, { bigint: true });
|
|
@@ -158248,10 +158389,10 @@ async function packageRoot(controller) {
|
|
|
158248
158389
|
async function resolveInstalledRuntimeConfiguration(controllerURL, dataDirectory) {
|
|
158249
158390
|
const controllerEntry = await realpath5(fileURLToPath6(controllerURL));
|
|
158250
158391
|
const root = await packageRoot(controllerEntry);
|
|
158251
|
-
if (controllerEntry !==
|
|
158392
|
+
if (controllerEntry !== join57(root, "dist/bin/cli.js"))
|
|
158252
158393
|
throw new Error("The managed browser needs the packaged DorkOS command.");
|
|
158253
|
-
const verifierEntry =
|
|
158254
|
-
const sourceManifestPath =
|
|
158394
|
+
const verifierEntry = join57(root, BROWSER_VERIFIER_ASSET);
|
|
158395
|
+
const sourceManifestPath = join57(root, BROWSER_SOURCE_MANIFEST);
|
|
158255
158396
|
const nodeExecutable = await realpath5(process.execPath);
|
|
158256
158397
|
const node2 = await inspectFile(nodeExecutable, 268435456);
|
|
158257
158398
|
const controller = await inspectFile(controllerEntry, INSTALLATION_LIMITS.controllerBytes);
|
|
@@ -162586,7 +162727,7 @@ var init_provider_process = __esm({
|
|
|
162586
162727
|
// src/commands/community-deploy/runtime/github-release-source.ts
|
|
162587
162728
|
import { mkdtemp as mkdtemp2, rm as rm3, writeFile as writeFile5 } from "node:fs/promises";
|
|
162588
162729
|
import { tmpdir as tmpdir3 } from "node:os";
|
|
162589
|
-
import { join as
|
|
162730
|
+
import { join as join58 } from "node:path";
|
|
162590
162731
|
function createGitHubCommunityReleaseSource(options) {
|
|
162591
162732
|
const verify = async (subject, trusted) => {
|
|
162592
162733
|
await runProviderCommand({
|
|
@@ -162632,8 +162773,8 @@ function createGitHubCommunityReleaseSource(options) {
|
|
|
162632
162773
|
return result2.value;
|
|
162633
162774
|
},
|
|
162634
162775
|
verifyManifest: async (bytes, trusted) => {
|
|
162635
|
-
const directory = await mkdtemp2(
|
|
162636
|
-
const path66 =
|
|
162776
|
+
const directory = await mkdtemp2(join58(tmpdir3(), "dorkos-community-manifest-"));
|
|
162777
|
+
const path66 = join58(directory, "manifest.json");
|
|
162637
162778
|
try {
|
|
162638
162779
|
await writeFile5(path66, bytes, { mode: 384, flag: "wx" });
|
|
162639
162780
|
return await verify(path66, trusted);
|
|
@@ -165387,7 +165528,7 @@ var init_community_release_manifest = __esm({
|
|
|
165387
165528
|
// src/commands/community-deploy/fly-config.ts
|
|
165388
165529
|
import { mkdtemp as mkdtemp3, rm as rm4, writeFile as writeFile6 } from "node:fs/promises";
|
|
165389
165530
|
import { tmpdir as tmpdir4 } from "node:os";
|
|
165390
|
-
import { join as
|
|
165531
|
+
import { join as join59 } from "node:path";
|
|
165391
165532
|
function tomlString(value) {
|
|
165392
165533
|
return JSON.stringify(value);
|
|
165393
165534
|
}
|
|
@@ -165440,8 +165581,8 @@ kill_timeout = "30s"
|
|
|
165440
165581
|
`;
|
|
165441
165582
|
}
|
|
165442
165583
|
async function withCommunityFlyConfig(plan, consumer) {
|
|
165443
|
-
const directory = await mkdtemp3(
|
|
165444
|
-
const path66 =
|
|
165584
|
+
const directory = await mkdtemp3(join59(tmpdir4(), "dorkos-community-fly-"));
|
|
165585
|
+
const path66 = join59(directory, "fly.toml");
|
|
165445
165586
|
try {
|
|
165446
165587
|
await writeFile6(path66, renderCommunityFlyConfig(plan), { mode: 384, flag: "wx" });
|
|
165447
165588
|
return await consumer(path66);
|
|
@@ -165884,7 +166025,7 @@ var init_default_deploy = __esm({
|
|
|
165884
166025
|
// src/commands/community-deploy/runtime/default-owner.ts
|
|
165885
166026
|
import { access as access2, constants as constants9, stat as stat4 } from "node:fs/promises";
|
|
165886
166027
|
import { platform as platform2 } from "node:os";
|
|
165887
|
-
import { delimiter, join as
|
|
166028
|
+
import { delimiter, join as join60 } from "node:path";
|
|
165888
166029
|
import { createInterface as createInterface4 } from "node:readline/promises";
|
|
165889
166030
|
import { stdin as stdin2, stdout as stdout2 } from "node:process";
|
|
165890
166031
|
async function ask(question, signal) {
|
|
@@ -165917,7 +166058,7 @@ function handoffCommands(system) {
|
|
|
165917
166058
|
async function executableOnPath(executable, path66) {
|
|
165918
166059
|
for (const directory of path66.split(delimiter).filter(Boolean)) {
|
|
165919
166060
|
try {
|
|
165920
|
-
await access2(
|
|
166061
|
+
await access2(join60(directory, executable), constants9.X_OK);
|
|
165921
166062
|
return true;
|
|
165922
166063
|
} catch {
|
|
165923
166064
|
}
|
|
@@ -165949,7 +166090,7 @@ async function assertOwnerHandoffPrerequisites(env6, system = platform2()) {
|
|
|
165949
166090
|
`Owner handoff needs an active Wayland clipboard session before setup can create resources. See ${FLY_GUIDE_URL}`
|
|
165950
166091
|
);
|
|
165951
166092
|
}
|
|
165952
|
-
const socketAvailable = await stat4(
|
|
166093
|
+
const socketAvailable = await stat4(join60(runtimeDirectory, display)).then(
|
|
165953
166094
|
(value) => value.isSocket(),
|
|
165954
166095
|
() => false
|
|
165955
166096
|
);
|
|
@@ -166134,10 +166275,10 @@ import {
|
|
|
166134
166275
|
rm as rm5,
|
|
166135
166276
|
unlink as unlink2
|
|
166136
166277
|
} from "node:fs/promises";
|
|
166137
|
-
import { basename as basename9, dirname as dirname16, join as
|
|
166278
|
+
import { basename as basename9, dirname as dirname16, join as join61 } from "node:path";
|
|
166138
166279
|
function launchJournalPath(dorkHome, runId) {
|
|
166139
166280
|
const safeRunId = external_exports.uuid().parse(runId);
|
|
166140
|
-
return
|
|
166281
|
+
return join61(dorkHome, "launches", "community", `${safeRunId}.json`);
|
|
166141
166282
|
}
|
|
166142
166283
|
async function rejectSymlink(path66) {
|
|
166143
166284
|
try {
|
|
@@ -166174,7 +166315,7 @@ async function exists2(path66) {
|
|
|
166174
166315
|
}
|
|
166175
166316
|
async function writeDurably(filePath, data) {
|
|
166176
166317
|
const directory = dirname16(filePath);
|
|
166177
|
-
const temporary =
|
|
166318
|
+
const temporary = join61(
|
|
166178
166319
|
directory,
|
|
166179
166320
|
`.${basename9(filePath)}.${process.pid}.${randomUUID6()}.durable`
|
|
166180
166321
|
);
|
|
@@ -166271,7 +166412,7 @@ async function readLaunchJournal(filePath) {
|
|
|
166271
166412
|
}
|
|
166272
166413
|
}
|
|
166273
166414
|
async function listIncompleteLaunchJournals(dorkHome) {
|
|
166274
|
-
const directory =
|
|
166415
|
+
const directory = join61(dorkHome, "launches", "community");
|
|
166275
166416
|
await rejectSymlink(dirname16(directory));
|
|
166276
166417
|
await rejectSymlink(directory);
|
|
166277
166418
|
let filenames;
|
|
@@ -176581,7 +176722,7 @@ if (process.argv[2] === "community") {
|
|
|
176581
176722
|
);
|
|
176582
176723
|
Object.assign(childEnv, credentialEnv.pickCommunityCredentialEnv(rawProcessEnv));
|
|
176583
176724
|
const exitCode = await dispatcher.runCommunityDispatcher(process.argv.slice(3), {
|
|
176584
|
-
cliVersion: "0.
|
|
176725
|
+
cliVersion: "0.122.0",
|
|
176585
176726
|
dorkHome: DORK_HOME,
|
|
176586
176727
|
processEnv: childEnv,
|
|
176587
176728
|
parseRelease: (bytes) => releaseContract.parseCompatibleCommunityReleaseManifest(
|
|
@@ -176599,7 +176740,7 @@ if (process.argv[2] === "community") {
|
|
|
176599
176740
|
process.exit(1);
|
|
176600
176741
|
}
|
|
176601
176742
|
}
|
|
176602
|
-
var cliErrorReporter = initCliErrorReporting({ dorkHome: DORK_HOME, version: "0.
|
|
176743
|
+
var cliErrorReporter = initCliErrorReporting({ dorkHome: DORK_HOME, version: "0.122.0" });
|
|
176603
176744
|
var uninstallCliErrorHandlers = cliErrorReporter ? installCliErrorHandlers(cliErrorReporter) : void 0;
|
|
176604
176745
|
if (process.argv[2] === "doctor") {
|
|
176605
176746
|
process.env.DORK_HOME = DORK_HOME;
|
|
@@ -176609,7 +176750,7 @@ if (process.argv[2] === "doctor") {
|
|
|
176609
176750
|
if (process.argv[2] === "feedback") {
|
|
176610
176751
|
process.env.DORK_HOME = DORK_HOME;
|
|
176611
176752
|
const { runFeedback: runFeedback2 } = await Promise.resolve().then(() => (init_feedback2(), feedback_exports));
|
|
176612
|
-
process.exit(await runFeedback2(DORK_HOME, "0.
|
|
176753
|
+
process.exit(await runFeedback2(DORK_HOME, "0.122.0", process.argv.slice(3)));
|
|
176613
176754
|
}
|
|
176614
176755
|
if (process.argv[2] === "auth") {
|
|
176615
176756
|
process.env.DORK_HOME = DORK_HOME;
|
|
@@ -176708,7 +176849,7 @@ if (process.argv[2] === "agent" || process.argv[2] === "task" || process.argv[2]
|
|
|
176708
176849
|
}
|
|
176709
176850
|
}
|
|
176710
176851
|
const { runVersionDispatcher: runVersionDispatcher2 } = await Promise.resolve().then(() => (init_version5(), version_exports));
|
|
176711
|
-
process.exit(await runVersionDispatcher2("0.
|
|
176852
|
+
process.exit(await runVersionDispatcher2("0.122.0", DORK_HOME, subArgs));
|
|
176712
176853
|
}
|
|
176713
176854
|
var { values, positionals } = parseCliArgs();
|
|
176714
176855
|
if (positionals[0] && !knownCommands.has(positionals[0])) {
|
|
@@ -176802,14 +176943,14 @@ Examples:
|
|
|
176802
176943
|
process.exit(0);
|
|
176803
176944
|
}
|
|
176804
176945
|
if (values.version) {
|
|
176805
|
-
console.log("0.
|
|
176946
|
+
console.log("0.122.0");
|
|
176806
176947
|
process.exit(0);
|
|
176807
176948
|
}
|
|
176808
176949
|
if (values["post-install-check"]) {
|
|
176809
176950
|
const claudeFound = checkClaude();
|
|
176810
176951
|
const coreExtensionsFound = checkCoreExtensions();
|
|
176811
176952
|
const extensionsCompile = await checkExtensionCompilation();
|
|
176812
|
-
console.log(`dorkos ${"0.
|
|
176953
|
+
console.log(`dorkos ${"0.122.0"}`);
|
|
176813
176954
|
if (!coreExtensionsFound) {
|
|
176814
176955
|
console.log("Installation incomplete \u2014 bundled core extensions are missing.");
|
|
176815
176956
|
}
|
|
@@ -176957,7 +177098,7 @@ if (fs39.existsSync(envPath)) {
|
|
|
176957
177098
|
}
|
|
176958
177099
|
uninstallCliErrorHandlers?.();
|
|
176959
177100
|
process.env.DORKOS_CLI_ENTRYPOINT = fileURLToPath7(import.meta.url);
|
|
176960
|
-
process.env.DORKOS_CLI_VERSION = "0.
|
|
177101
|
+
process.env.DORKOS_CLI_VERSION = "0.122.0";
|
|
176961
177102
|
var server;
|
|
176962
177103
|
try {
|
|
176963
177104
|
server = await import("../server/index.js");
|
|
@@ -176982,7 +177123,7 @@ var ansiReset = "\x1B[0m";
|
|
|
176982
177123
|
console.log("");
|
|
176983
177124
|
console.log(`${purple}${logo}${ansiReset}`);
|
|
176984
177125
|
console.log("");
|
|
176985
|
-
console.log(` DorkOS v${"0.
|
|
177126
|
+
console.log(` DorkOS v${"0.122.0"}`);
|
|
176986
177127
|
console.log(` Local: ${link(localUrl, localUrl)}`);
|
|
176987
177128
|
var nets = networkInterfaces();
|
|
176988
177129
|
var networkUrl = null;
|
|
@@ -177008,9 +177149,9 @@ if (shouldOpenBrowser && process.stdin.isTTY) {
|
|
|
177008
177149
|
const openCmd = process.platform === "darwin" ? "open" : process.platform === "win32" ? "start" : "xdg-open";
|
|
177009
177150
|
exec(`${openCmd} ${localUrl}`);
|
|
177010
177151
|
}
|
|
177011
|
-
checkForUpdate("0.
|
|
177152
|
+
checkForUpdate("0.122.0").then((latestVersion) => {
|
|
177012
177153
|
if (latestVersion) {
|
|
177013
|
-
const msg = `Update available: ${"0.
|
|
177154
|
+
const msg = `Update available: ${"0.122.0"} \u2192 ${latestVersion}`;
|
|
177014
177155
|
const cmd = "Run npm install -g dorkos@latest to update";
|
|
177015
177156
|
const width = Math.max(msg.length, cmd.length) + 6;
|
|
177016
177157
|
const pad2 = (s2) => `\u2502 ${s2}${" ".repeat(width - s2.length - 6)} \u2502`;
|