@myagentroam/server 0.13.4 → 0.13.7
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/quick-start/node-runtime.js +21 -3
- package/dist/quick-start/run.js +11 -2
- package/node_modules/@myagentroam/protocol/dist/index.d.ts +8 -0
- package/node_modules/@myagentroam/protocol/dist/index.js +2 -0
- package/node_modules/@myagentroam/protocol/package.json +1 -1
- package/node_modules/@myagentroam/server-core/dist/mcp-service.js +5 -3
- package/node_modules/@myagentroam/server-core/dist/mysql-node-identity.d.ts +5 -0
- package/node_modules/@myagentroam/server-core/dist/mysql-node-identity.js +31 -0
- package/node_modules/@myagentroam/server-core/dist/skill-source-service.js +5 -3
- package/node_modules/@myagentroam/server-core/package.json +2 -2
- package/node_modules/@myagentroam-enterprise/server-implementation/dist/cli-messages.en-US.d.ts +1 -0
- package/node_modules/@myagentroam-enterprise/server-implementation/dist/cli-messages.en-US.js +1 -0
- package/node_modules/@myagentroam-enterprise/server-implementation/dist/cli-messages.zh-CN.d.ts +1 -0
- package/node_modules/@myagentroam-enterprise/server-implementation/dist/cli-messages.zh-CN.js +1 -0
- package/node_modules/@myagentroam-enterprise/server-implementation/dist/composition/quick-start-node-bootstrap.d.ts +5 -1
- package/node_modules/@myagentroam-enterprise/server-implementation/dist/composition/quick-start-node-bootstrap.js +9 -1
- package/node_modules/@myagentroam-enterprise/server-implementation/dist/composition/server-application.js +1 -0
- package/node_modules/@myagentroam-enterprise/server-implementation/dist/license/management-gate.js +3 -2
- package/node_modules/@myagentroam-enterprise/server-implementation/dist/mysql/server-database.d.ts +4 -0
- package/node_modules/@myagentroam-enterprise/server-implementation/dist/mysql/server-database.js +3 -0
- package/node_modules/@myagentroam-enterprise/server-implementation/dist/rbac/authorization-service.js +7 -1
- package/node_modules/@myagentroam-enterprise/server-implementation/package.json +3 -3
- package/package.json +6 -6
- package/web/assets/{AuditManagementPage-DnsGADhX.js → AuditManagementPage-fDpTFGAJ.js} +1 -1
- package/web/assets/{BusyIndicator-DuQN1wm-.js → BusyIndicator-81gYfHFI.js} +1 -1
- package/web/assets/{CodeFileEditor-BIIXeX-W.js → CodeFileEditor-BWA7aZwM.js} +3 -3
- package/web/assets/{ConversationTemplateManagementPage-Cq610Ift.js → ConversationTemplateManagementPage-CMwsINqq.js} +1 -1
- package/web/assets/{ConversationTemplateManagementPage-Bo4oyW8_.js → ConversationTemplateManagementPage-DM2WlZlh.js} +1 -1
- package/web/assets/{EnterpriseUserManagementPage-CaTrDqbs.js → EnterpriseUserManagementPage-BKCNfftS.js} +1 -1
- package/web/assets/{EnvironmentSecretManager-BsrTY2rn.js → EnvironmentSecretManager-jWSJQLLY.js} +1 -1
- package/web/assets/{FilePreviewLoading-RwWQoi6Y.js → FilePreviewLoading-EXabASKn.js} +1 -1
- package/web/assets/HtmlPreviewFrame-DQimcizh.js +5 -0
- package/web/assets/{HtmlPreviewFrame-CXd4x0y-.css → HtmlPreviewFrame-D_oKBx6Z.css} +1 -1
- package/web/assets/{LicenseManagementPage-7_EsyrhF.js → LicenseManagementPage-li8NTgz0.js} +1 -1
- package/web/assets/{ManagementPagination-2xmt9Zfx.js → ManagementPagination-DC_Jtk72.js} +1 -1
- package/web/assets/{MarAgentModelManagementPage-B5_l5kMw.js → MarAgentModelManagementPage-BhuEt5ck.js} +1 -1
- package/web/assets/{MarAgentModelManagementPage-CjMpM_RC.js → MarAgentModelManagementPage-DtQDSKsm.js} +1 -1
- package/web/assets/{MarIcon-Bey6vvFS.js → MarIcon-DRzNI1TJ.js} +1 -1
- package/web/assets/{MarkdownFilePreview-DroSJppq.js → MarkdownFilePreview-DRxwzEkP.js} +2 -2
- package/web/assets/{McpDetailsDialog-BrklXkCL.js → McpDetailsDialog-C4hLhwaZ.js} +1 -1
- package/web/assets/{McpSourceManagementPage-CCugQvg2.js → McpSourceManagementPage-B4o2soUo.js} +1 -1
- package/web/assets/{McpSourceManagementPage-BBw8Fnb7.js → McpSourceManagementPage-ChCP_9Wx.js} +1 -1
- package/web/assets/{NodeDetailsDialogs-U0lssvGT.js → NodeDetailsDialogs-jvve59Rc.js} +1 -1
- package/web/assets/NodeManagementPage-BaoMHEc6.js +1 -0
- package/web/assets/NodeManagementPage-DcE_Tno8.js +1 -0
- package/web/assets/{OAuthManagementPage-BeiBNSsN.js → OAuthManagementPage-oSorMLvE.js} +1 -1
- package/web/assets/{OrganizationManagementPage-CS9sBwhZ.js → OrganizationManagementPage-CEcAvCJe.js} +1 -1
- package/web/assets/{ResourceManagementPanel-Ck53eFHZ.js → ResourceManagementPanel-kqq0Svx_.js} +1 -1
- package/web/assets/{ResourceManagementPanel.vue_vue_type_script_setup_true_lang-D1vZJR_l.js → ResourceManagementPanel.vue_vue_type_script_setup_true_lang-DWpc58cT.js} +1 -1
- package/web/assets/{SecretManagementPage-CkoIPpRk.js → SecretManagementPage-CXmPmuQ7.js} +1 -1
- package/web/assets/SecretManagementPage-DnHmkYKn.js +1 -0
- package/web/assets/{SecretManagementPage.vue_vue_type_script_setup_true_lang-Bq3JYt0N.js → SecretManagementPage.vue_vue_type_script_setup_true_lang-DBmhix-s.js} +1 -1
- package/web/assets/{SessionSharePage-UYao-99J.js → SessionSharePage-Bfibf3C2.js} +2 -2
- package/web/assets/{SettingsContent-Cdhq2mMs.js → SettingsContent-BQYXFW0-.js} +1 -1
- package/web/assets/{SettingsContent-CxwrhDv3.js → SettingsContent-KFZsk8Yv.js} +1 -1
- package/web/assets/{SkillCenterPage-7USQN-DP.js → SkillCenterPage-5lJUA9pl.js} +1 -1
- package/web/assets/SkillCenterPage-BmqIek5Q.js +1 -0
- package/web/assets/{SkillDetailsDialog-BsiPRfbz.js → SkillDetailsDialog-CrN5o6Jk.js} +1 -1
- package/web/assets/{SkillSourceManagementPage-DFnaYnRe.js → SkillSourceManagementPage-Di_lVA5-.js} +1 -1
- package/web/assets/{SkillSourceManagementPage-BvOdElvU.js → SkillSourceManagementPage-DpenHp3H.js} +1 -1
- package/web/assets/{StandaloneFilePreviewPage-Cb1MpQfh.js → StandaloneFilePreviewPage-_Lh1H6-k.js} +1 -1
- package/web/assets/{SystemConfigurationPage-DME6cns0.js → SystemConfigurationPage-BpCsGW-2.js} +1 -1
- package/web/assets/SystemConfigurationPage-BqqdmrAK.js +1 -0
- package/web/assets/{SystemInformationPage-DGZWfrXE.js → SystemInformationPage-G9WA9kpj.js} +1 -1
- package/web/assets/{TerminalTabView-CuQzSev1.js → TerminalTabView-KFAT6dN-.js} +1 -1
- package/web/assets/{WorkbenchPage-B7W9kyOw.js → WorkbenchPage-BQdwbvse.js} +15 -15
- package/web/assets/WorkbenchPage-ptvzMUTa.css +1 -0
- package/web/assets/WorkspaceManagementPage-BYtbXfHc.js +1 -0
- package/web/assets/WorkspaceManagementPage-C-9iCpGW.js +1 -0
- package/web/assets/{_baseIteratee-3ynz4yPF.js → _baseIteratee-CEjLB6P0.js} +1 -1
- package/web/assets/{abnfDiagram-VCTEODGH-DupmQ6Er.js → abnfDiagram-VCTEODGH-DwwJ-B6X.js} +1 -1
- package/web/assets/{advancedFormat-Bqm4Kq1b.js → advancedFormat-DwAKrlQQ.js} +1 -1
- package/web/assets/{arc-Fq0BJf1Q.js → arc-BhUv0GFi.js} +1 -1
- package/web/assets/{architectureDiagram-5GKGNRK7-B4EFAJN2.js → architectureDiagram-5GKGNRK7-BYwr4pOI.js} +1 -1
- package/web/assets/{blockDiagram-OSKFZWR5-B75Yxltl.js → blockDiagram-OSKFZWR5-BQ0G5RBd.js} +1 -1
- package/web/assets/{c4Diagram-7LVT6UL2-2IJLHGl0.js → c4Diagram-7LVT6UL2-DLmelPF5.js} +1 -1
- package/web/assets/{catalog-ownership-service-BMQL4KAM.js → catalog-ownership-service-BQ72dnlA.js} +1 -1
- package/web/assets/{catalog-page-service-Cnb4fp1m.js → catalog-page-service-D4eWT4uF.js} +1 -1
- package/web/assets/channel-BAHh016e.js +1 -0
- package/web/assets/{chunk-2Q5K7J3B-BbIlpi0m.js → chunk-2Q5K7J3B-CQf0ME4y.js} +1 -1
- package/web/assets/{chunk-5VM5RSS4-Ds5gdCgX.js → chunk-5VM5RSS4-DQY_-Ks6.js} +1 -1
- package/web/assets/{chunk-F27PBJKO-DBafPcM9.js → chunk-F27PBJKO-CklCJyS6.js} +1 -1
- package/web/assets/{chunk-HLEWEB6X-Ctl85JUs.js → chunk-HLEWEB6X-Ofa5loFJ.js} +1 -1
- package/web/assets/{chunk-JWPE2WC7-Df0cT3j7.js → chunk-JWPE2WC7-Dc7083sU.js} +1 -1
- package/web/assets/{chunk-POPQ4Y6H-OSXerjxo.js → chunk-POPQ4Y6H-D4Zc7_fI.js} +1 -1
- package/web/assets/{chunk-SVP7TREG-4azsKQ7R.js → chunk-SVP7TREG-DiJC9xJx.js} +1 -1
- package/web/assets/{chunk-XXDRQBXY-RCyyudHN.js → chunk-XXDRQBXY-BhYPRykj.js} +1 -1
- package/web/assets/{chunk-ZLD2IHE6-CE_CQEwa.js → chunk-ZLD2IHE6-Cc-O9KsT.js} +1 -1
- package/web/assets/classDiagram-CYGNFDIV-IKe_y23-.js +1 -0
- package/web/assets/classDiagram-v2-TLXNO2FR-IKe_y23-.js +1 -0
- package/web/assets/{conversation-history-CUVjobW9.js → conversation-history-DsSE1wLH.js} +1 -1
- package/web/assets/{cose-bilkent-JH36ORCC-B4UTqEAs.js → cose-bilkent-JH36ORCC-rFqp0SYn.js} +1 -1
- package/web/assets/{cynefin-OW5HDTMX-B9U7i_AE.js → cynefin-OW5HDTMX-deO0LWKC.js} +1 -1
- package/web/assets/{cynefinDiagram-5FMLGOSQ-DjOvM95v.js → cynefinDiagram-5FMLGOSQ-BCj0mYAO.js} +1 -1
- package/web/assets/{dagre-OS7QT2EB-DC57hRv_.js → dagre-OS7QT2EB-faTq17DR.js} +1 -1
- package/web/assets/{diagram-S7CK7UJ4-D6mHX9Fx.js → diagram-S7CK7UJ4-cAbTZ8qd.js} +1 -1
- package/web/assets/{diagram-UQ7AKVKN-B2kIa0Jp.js → diagram-UQ7AKVKN-CxoALt7V.js} +1 -1
- package/web/assets/{diagram-VSXAHHWV-Bxv36NlF.js → diagram-VSXAHHWV-BcZM5S7Z.js} +1 -1
- package/web/assets/{diagram-VX7I27RA-xZ_Rnq6j.js → diagram-VX7I27RA-QIaSkKCU.js} +1 -1
- package/web/assets/{diagram-Z3DM3KII-CdSuHCfk.js → diagram-Z3DM3KII-tYE8PEsy.js} +1 -1
- package/web/assets/{ebnfDiagram-PWID7BFC-yx8cKpo-.js → ebnfDiagram-PWID7BFC-CQON9X8w.js} +1 -1
- package/web/assets/{el-alert-YwFfkzFY.js → el-alert-DQT74Z6k.js} +1 -1
- package/web/assets/{el-cascader-DLHPkFf2.js → el-cascader-B52hB1X4.js} +1 -1
- package/web/assets/{el-checkbox-D7B8QPnv.js → el-checkbox-D8E82IC3.js} +1 -1
- package/web/assets/{el-date-picker-3YbpvR4-.js → el-date-picker-CzlIv3iG.js} +1 -1
- package/web/assets/{el-descriptions-pbjjg_nj.js → el-descriptions-CrLOiLtM.js} +1 -1
- package/web/assets/{el-form-item-C0hI6zRh.js → el-form-item-CjLvz7IR.js} +1 -1
- package/web/assets/{el-input-BBSbjFbs.js → el-input-DsD8wPgd.js} +1 -1
- package/web/assets/{el-input-number-BD9kOXXp.js → el-input-number-DYTEBnhp.js} +1 -1
- package/web/assets/{el-radio-ByQM3NKI.js → el-radio-rHorotS0.js} +1 -1
- package/web/assets/{el-select-BEIvaLbl.js → el-select-vQRSFUuU.js} +1 -1
- package/web/assets/{el-switch-DNSjKrx8.js → el-switch-D49n4nYq.js} +1 -1
- package/web/assets/{el-tab-pane-P1W8N6RB.js → el-tab-pane-CpoewUFm.js} +1 -1
- package/web/assets/{el-table-column-BkxhVRss.js → el-table-column-DIe-Jdox.js} +1 -1
- package/web/assets/{enterprise-management-service-C_5GRorU.js → enterprise-management-service-CYSkSkqU.js} +1 -1
- package/web/assets/{erDiagram-2YWLMYGG-CysMQY_a.js → erDiagram-2YWLMYGG-D6cLXjx4.js} +1 -1
- package/web/assets/{error-presentation-CMcHjWH1.js → error-presentation-CKm32JzU.js} +1 -1
- package/web/assets/{flowDiagram-T62WH6J4-D3EWUl6L.js → flowDiagram-T62WH6J4-CWSvQfIj.js} +1 -1
- package/web/assets/{ganttDiagram-EL5Y4UJY-D8p3UoZQ.js → ganttDiagram-EL5Y4UJY-Bk9PlmQ0.js} +1 -1
- package/web/assets/{gitGraphDiagram-WWUBYQGX-DOStzbFz.js → gitGraphDiagram-WWUBYQGX-JFxyzn2J.js} +1 -1
- package/web/assets/{hosted-conversation-template-client-D4Wn8q89.js → hosted-conversation-template-client-CYBI7IvT.js} +1 -1
- package/web/assets/{index-D8dMhcz9.js → index-98DLRplS.js} +1 -1
- package/web/assets/{index-DkfdzgTk.js → index-BP-OH85t.js} +1 -1
- package/web/assets/{index-CM_0TkoS.js → index-BQ4D3lnr.js} +1 -1
- package/web/assets/{index-bl_S7WPN.js → index-BS-OsBk1.js} +1 -1
- package/web/assets/{index-DbuM3bO4.js → index-BTXpkf3M.js} +1 -1
- package/web/assets/{index-DLalpHzD.js → index-BbOzeZis.js} +1 -1
- package/web/assets/{index-m9YdF02w.js → index-BzBol34B.js} +1 -1
- package/web/assets/{index-DW6tcz5Z.js → index-C-rtGAiQ.js} +1 -1
- package/web/assets/{index-CYeXhiRu.js → index-C20Ctqox.js} +1 -1
- package/web/assets/{index-BwULrRvu.js → index-C20z2yeK.js} +1 -1
- package/web/assets/{index-0Qtks3Zu.js → index-C38uEGP7.js} +1 -1
- package/web/assets/{index-DuKtBO_u.js → index-C8HJ-7wK.js} +1 -1
- package/web/assets/{index-CwiFFfS1.js → index-CNYQPSEc.js} +1 -1
- package/web/assets/{index-BLspLxxD.js → index-CRCrq0fK.js} +1 -1
- package/web/assets/{index-nTguJepi.js → index-CeewrlMR.js} +1 -1
- package/web/assets/{index-C4XljgeB.js → index-D0gqeuOi.js} +1 -1
- package/web/assets/{index-Df8FjIGd.js → index-DCX6wtGf.js} +1 -1
- package/web/assets/{index-DswoMecP.js → index-DFYUX44y.js} +1 -1
- package/web/assets/{index-CGPHfg1G.js → index-DYEKyod1.js} +1 -1
- package/web/assets/{index-DrVPbxCP.js → index-Dmjcd9dH.js} +1 -1
- package/web/assets/{index-B35Hh-19.js → index-DqPiRdTW.js} +1 -1
- package/web/assets/{index-CvclBhn2.js → index-Dw3xGHpw.js} +1 -1
- package/web/assets/{index-B26xf70t.js → index-FxdcMPQK.js} +1 -1
- package/web/assets/{index-ft9uuHSX.js → index-GDJZ4nKF.js} +1 -1
- package/web/assets/{index-CiC8263F.js → index-QkybH-4Y.js} +1 -1
- package/web/assets/{index-dMLXuty7.js → index-X_ZLsJF-.js} +1 -1
- package/web/assets/{index-DTE-qCKl.js → index-oJjFup0f.js} +1 -1
- package/web/assets/{index-eJcmffyl.js → index-s_IiIj3Q.js} +1 -1
- package/web/assets/{index-BCZqekVb.js → index-tebwt16R.js} +3 -3
- package/web/assets/infoDiagram-FKFFQAWI-odw5ek8A.js +2 -0
- package/web/assets/{isArrayLikeObject-DBTZh06Y.js → isArrayLikeObject-CNIeaAGq.js} +1 -1
- package/web/assets/{ishikawaDiagram-5VMMS53U-KdtSHy0d.js → ishikawaDiagram-5VMMS53U-S3I395rk.js} +1 -1
- package/web/assets/{journeyDiagram-EYS64GPL-BWm62hPR.js → journeyDiagram-EYS64GPL-CEURtMQT.js} +1 -1
- package/web/assets/{kanban-definition-UXKFOSKX-97_o1WCj.js → kanban-definition-UXKFOSKX-B_I_ageX.js} +1 -1
- package/web/assets/{layout-6_PY2p7c.js → layout-C28pcZJ3.js} +1 -1
- package/web/assets/{linear-BT7Hx9AK.js → linear-B5pI1vN0.js} +1 -1
- package/web/assets/{management-url-service-B2_kg7lH.js → management-url-service-BUrqsIPf.js} +1 -1
- package/web/assets/{mcp-center-service-Cvb3tmP2.js → mcp-center-service-Bt8KNvBQ.js} +1 -1
- package/web/assets/{merge-DaI_T8rv.js → merge-k_TKlNxw.js} +1 -1
- package/web/assets/{mermaid.core-DL0NmHpa.js → mermaid.core-DPF_lBS3.js} +5 -5
- package/web/assets/{message-box-service-Vs92kolE.js → message-box-service-BzqjQhzH.js} +1 -1
- package/web/assets/{mindmap-definition-THT77NOG-CAPKaXNd.js → mindmap-definition-THT77NOG-D1wx2rOh.js} +1 -1
- package/web/assets/{mobile-dialog-return-service-3QafxIkr.js → mobile-dialog-return-service-CDghLsut.js} +1 -1
- package/web/assets/{oauth-callback-BlSeaEf-.js → oauth-callback-B21gNkv-.js} +1 -1
- package/web/assets/{pegDiagram-XKGWAZYB-hJB71Znn.js → pegDiagram-XKGWAZYB-0meuEp8g.js} +1 -1
- package/web/assets/{pieDiagram-E7YTZNPT-COeAYSnz.js → pieDiagram-E7YTZNPT-jC3klXwe.js} +1 -1
- package/web/assets/{quadrantDiagram-AXDQQJYC-DHTuVvw3.js → quadrantDiagram-AXDQQJYC-DzQbzknx.js} +1 -1
- package/web/assets/{railroadDiagram-O6MQD6OU-bKHrlAIG.js → railroadDiagram-O6MQD6OU-DwiX_44I.js} +1 -1
- package/web/assets/{requirementDiagram-IS5BZ75X--2VkiRxe.js → requirementDiagram-IS5BZ75X-DdBB28Xn.js} +1 -1
- package/web/assets/{runner-presentation-BW-vKSQP.js → runner-presentation-CjPY5Dey.js} +1 -1
- package/web/assets/{sankeyDiagram-P5KCCOFB-k5g8_UfF.js → sankeyDiagram-P5KCCOFB-B1WX3WR_.js} +1 -1
- package/web/assets/{sequenceDiagram-WJ2MYXX4-3T1cTiKX.js → sequenceDiagram-WJ2MYXX4-Cz_KunCM.js} +1 -1
- package/web/assets/{session-share-client-service-BePcCd8T.js → session-share-client-service-C-0DdFRE.js} +1 -1
- package/web/assets/{sizeCapture-INFHLROL-CAmN45ar.js → sizeCapture-INFHLROL-sB2YOfNo.js} +1 -1
- package/web/assets/{stateDiagram-XQSTLZYL-DyCNMKfm.js → stateDiagram-XQSTLZYL-Bwb7A16z.js} +1 -1
- package/web/assets/stateDiagram-v2-IH3M54BS-DY5Ukxza.js +1 -0
- package/web/assets/{swimlanes-V6O3JKXN-CShGr_U7.js → swimlanes-V6O3JKXN-BNtAnq9r.js} +1 -1
- package/web/assets/swimlanesDiagram-JKAHXJPX-BZu5MiNn.js +8 -0
- package/web/assets/{time-presentation-DYGS-swy.js → time-presentation-Cz63DSUv.js} +1 -1
- package/web/assets/{timeline-definition-24CTP7MA-CRagiyPI.js → timeline-definition-24CTP7MA-Cs6NtxYd.js} +1 -1
- package/web/assets/{union-SQqiJk16.js → union-C5QcR3bq.js} +1 -1
- package/web/assets/{use-form-common-props-CiMdMq_M.js → use-form-common-props-C_muwpbj.js} +1 -1
- package/web/assets/{use-wheel-BGpTGiSt.js → use-wheel-7n7Aiy_e.js} +1 -1
- package/web/assets/{vennDiagram-4TSXK5OY-_jtB4CJn.js → vennDiagram-4TSXK5OY-DQcN4PIp.js} +1 -1
- package/web/assets/{wardleyDiagram-VM6X3IG4-Blsdb7g_.js → wardleyDiagram-VM6X3IG4-B5qQJgni.js} +1 -1
- package/web/assets/{workbench-composer-interaction-controller-BvnJG4HW.js → workbench-composer-interaction-controller-BFZkEbwV.js} +19 -19
- package/web/assets/{workbench-presentation-b_MlZ-jq.js → workbench-presentation-DSjYJkKK.js} +1 -1
- package/web/assets/{xychartDiagram-S5SC5T6Z-BTu61LZj.js → xychartDiagram-S5SC5T6Z-B8yJLdGw.js} +1 -1
- package/web/docs/404.html +2 -2
- package/web/docs/administration/account.html +4 -4
- package/web/docs/administration/audit.html +4 -4
- package/web/docs/administration/conversation-templates.html +4 -4
- package/web/docs/administration/email-notifications.html +4 -4
- package/web/docs/administration/license.html +5 -5
- package/web/docs/administration/nodes-workspaces.html +4 -4
- package/web/docs/administration/oauth.html +4 -4
- package/web/docs/administration/secrets.html +4 -4
- package/web/docs/administration/template-workspace-maintenance.html +4 -4
- package/web/docs/administration/users-organizations.html +4 -4
- package/web/docs/assets/administration_license.md.CVLEsGB6.js +1 -0
- package/web/docs/assets/{administration_license.md.CdgtKnVd.lean.js → administration_license.md.CVLEsGB6.lean.js} +1 -1
- package/web/docs/assets/{app.DQ73g8Ca.js → app.HBmL36pQ.js} +1 -1
- package/web/docs/assets/chunks/@localSearchIndexen-US.pxMPDJyo.js +1 -0
- package/web/docs/assets/chunks/@localSearchIndexroot.Bmvw1ncU.js +1 -0
- package/web/docs/assets/chunks/{VPLocalSearchBox.vP8fXe46.js → VPLocalSearchBox.9e8uHIOt.js} +1 -1
- package/web/docs/assets/chunks/{theme.CES2lSYr.js → theme.CXF2ox30.js} +2 -2
- package/web/docs/assets/deployment_network.md.Bbi7-zH2.js +1 -0
- package/web/docs/assets/deployment_network.md.Bbi7-zH2.lean.js +1 -0
- package/web/docs/assets/deployment_upgrade.md.CG_VFxvG.js +1 -0
- package/web/docs/assets/deployment_upgrade.md.CG_VFxvG.lean.js +1 -0
- package/web/docs/assets/{en-US_administration_license.md.jmAMVJjC.js → en-US_administration_license.md.GCAYq1LT.js} +1 -1
- package/web/docs/assets/{en-US_administration_license.md.jmAMVJjC.lean.js → en-US_administration_license.md.GCAYq1LT.lean.js} +1 -1
- package/web/docs/assets/en-US_deployment_network.md.770EzfaT.js +1 -0
- package/web/docs/assets/en-US_deployment_network.md.770EzfaT.lean.js +1 -0
- package/web/docs/assets/en-US_deployment_upgrade.md.DDevql7U.js +1 -0
- package/web/docs/assets/{en-US_deployment_upgrade.md.DZiDDiLn.lean.js → en-US_deployment_upgrade.md.DDevql7U.lean.js} +1 -1
- package/web/docs/assets/en-US_getting-started_npm-quick-start.md.D46Ec15e.js +3 -0
- package/web/docs/assets/en-US_getting-started_npm-quick-start.md.D46Ec15e.lean.js +1 -0
- package/web/docs/assets/{en-US_getting-started_overview.md.Bug5sh21.js → en-US_getting-started_overview.md.CB-43rGR.js} +1 -1
- package/web/docs/assets/{en-US_getting-started_overview.md.Bug5sh21.lean.js → en-US_getting-started_overview.md.CB-43rGR.lean.js} +1 -1
- package/web/docs/assets/en-US_getting-started_prerequisites.md.BFxGOlUy.js +1 -0
- package/web/docs/assets/en-US_getting-started_prerequisites.md.BFxGOlUy.lean.js +1 -0
- package/web/docs/assets/{en-US_getting-started_server-installation.md._k2XGM85.js → en-US_getting-started_server-installation.md.C7SjGDJt.js} +2 -2
- package/web/docs/assets/en-US_workbench_skills.md.xchi27R9.js +1 -0
- package/web/docs/assets/{en-US_workbench_skills.md.C4xlXyjC.lean.js → en-US_workbench_skills.md.xchi27R9.lean.js} +1 -1
- package/web/docs/assets/getting-started_npm-quick-start.md.CIYjFmiu.js +3 -0
- package/web/docs/assets/getting-started_npm-quick-start.md.CIYjFmiu.lean.js +1 -0
- package/web/docs/assets/{getting-started_overview.md.CA1CCOBc.js → getting-started_overview.md.Cv-HSfAh.js} +1 -1
- package/web/docs/assets/getting-started_prerequisites.md.DjWWTA7V.js +1 -0
- package/web/docs/assets/{getting-started_prerequisites.md.D26KU42D.lean.js → getting-started_prerequisites.md.DjWWTA7V.lean.js} +1 -1
- package/web/docs/assets/{getting-started_server-installation.md.D3P3Lmc2.js → getting-started_server-installation.md.BsEfVH6b.js} +2 -2
- package/web/docs/assets/workbench_skills.md.BQw1Wuiy.js +1 -0
- package/web/docs/assets/{workbench_skills.md.rWZ_VuoB.lean.js → workbench_skills.md.BQw1Wuiy.lean.js} +1 -1
- package/web/docs/concepts/architecture.html +4 -4
- package/web/docs/concepts/data-and-security.html +4 -4
- package/web/docs/concepts/files-git-terminal.html +4 -4
- package/web/docs/concepts/node-and-workspace.html +4 -4
- package/web/docs/concepts/permissions-and-sharing.html +4 -4
- package/web/docs/concepts/runner-control.html +4 -4
- package/web/docs/concepts/secrets.html +4 -4
- package/web/docs/concepts/session-run-turn.html +4 -4
- package/web/docs/deployment/backup-restore.html +4 -4
- package/web/docs/deployment/network.html +5 -5
- package/web/docs/deployment/node-installation.html +4 -4
- package/web/docs/deployment/node-linux.html +4 -4
- package/web/docs/deployment/node-macos.html +4 -4
- package/web/docs/deployment/node-windows.html +4 -4
- package/web/docs/deployment/production.html +4 -4
- package/web/docs/deployment/security-checklist.html +4 -4
- package/web/docs/deployment/upgrade.html +5 -5
- package/web/docs/en-US/administration/account.html +4 -4
- package/web/docs/en-US/administration/audit.html +4 -4
- package/web/docs/en-US/administration/conversation-templates.html +4 -4
- package/web/docs/en-US/administration/email-notifications.html +4 -4
- package/web/docs/en-US/administration/license.html +5 -5
- package/web/docs/en-US/administration/nodes-workspaces.html +4 -4
- package/web/docs/en-US/administration/oauth.html +4 -4
- package/web/docs/en-US/administration/secrets.html +4 -4
- package/web/docs/en-US/administration/template-workspace-maintenance.html +4 -4
- package/web/docs/en-US/administration/users-organizations.html +4 -4
- package/web/docs/en-US/concepts/architecture.html +4 -4
- package/web/docs/en-US/concepts/data-and-security.html +4 -4
- package/web/docs/en-US/concepts/files-git-terminal.html +4 -4
- package/web/docs/en-US/concepts/node-and-workspace.html +4 -4
- package/web/docs/en-US/concepts/permissions-and-sharing.html +4 -4
- package/web/docs/en-US/concepts/runner-control.html +4 -4
- package/web/docs/en-US/concepts/secrets.html +4 -4
- package/web/docs/en-US/concepts/session-run-turn.html +4 -4
- package/web/docs/en-US/deployment/backup-restore.html +4 -4
- package/web/docs/en-US/deployment/network.html +5 -5
- package/web/docs/en-US/deployment/node-installation.html +4 -4
- package/web/docs/en-US/deployment/node-linux.html +4 -4
- package/web/docs/en-US/deployment/node-macos.html +4 -4
- package/web/docs/en-US/deployment/node-windows.html +4 -4
- package/web/docs/en-US/deployment/production.html +4 -4
- package/web/docs/en-US/deployment/security-checklist.html +4 -4
- package/web/docs/en-US/deployment/upgrade.html +5 -5
- package/web/docs/en-US/getting-started/connect-node.html +4 -4
- package/web/docs/en-US/getting-started/first-agent-session.html +4 -4
- package/web/docs/en-US/getting-started/first-login.html +4 -4
- package/web/docs/en-US/getting-started/next-steps.html +4 -4
- package/web/docs/en-US/getting-started/npm-quick-start.html +7 -7
- package/web/docs/en-US/getting-started/overview.html +5 -5
- package/web/docs/en-US/getting-started/prerequisites.html +5 -5
- package/web/docs/en-US/getting-started/register-workspace.html +4 -4
- package/web/docs/en-US/getting-started/server-installation.html +6 -6
- package/web/docs/en-US/operations/marctl.html +4 -4
- package/web/docs/en-US/reference/configuration.html +4 -4
- package/web/docs/en-US/reference/keyboard-shortcuts.html +4 -4
- package/web/docs/en-US/reference/limits.html +4 -4
- package/web/docs/en-US/reference/ports-paths-data.html +4 -4
- package/web/docs/en-US/reference/status-and-errors.html +4 -4
- package/web/docs/en-US/runners/claude-code.html +4 -4
- package/web/docs/en-US/runners/codex.html +4 -4
- package/web/docs/en-US/runners/mar-agent.html +4 -4
- package/web/docs/en-US/runners/opencode.html +4 -4
- package/web/docs/en-US/runners/overview.html +4 -4
- package/web/docs/en-US/runners/runner-troubleshooting.html +4 -4
- package/web/docs/en-US/troubleshooting/node-offline.html +4 -4
- package/web/docs/en-US/troubleshooting/quick-diagnosis.html +4 -4
- package/web/docs/en-US/troubleshooting/session-run.html +4 -4
- package/web/docs/en-US/troubleshooting/terminal.html +4 -4
- package/web/docs/en-US/troubleshooting/workspace-files.html +4 -4
- package/web/docs/en-US/workbench/composer.html +4 -4
- package/web/docs/en-US/workbench/context-and-plan.html +4 -4
- package/web/docs/en-US/workbench/conversation.html +4 -4
- package/web/docs/en-US/workbench/file-reference-and-attachment.html +4 -4
- package/web/docs/en-US/workbench/files.html +4 -4
- package/web/docs/en-US/workbench/git-changes.html +4 -4
- package/web/docs/en-US/workbench/git-history.html +4 -4
- package/web/docs/en-US/workbench/hosted-conversations.html +4 -4
- package/web/docs/en-US/workbench/mobile.html +4 -4
- package/web/docs/en-US/workbench/navigation.html +4 -4
- package/web/docs/en-US/workbench/sessions.html +4 -4
- package/web/docs/en-US/workbench/skills.html +5 -5
- package/web/docs/en-US/workbench/terminal.html +4 -4
- package/web/docs/getting-started/connect-node.html +4 -4
- package/web/docs/getting-started/first-agent-session.html +4 -4
- package/web/docs/getting-started/first-login.html +4 -4
- package/web/docs/getting-started/next-steps.html +4 -4
- package/web/docs/getting-started/npm-quick-start.html +7 -7
- package/web/docs/getting-started/overview.html +5 -5
- package/web/docs/getting-started/prerequisites.html +5 -5
- package/web/docs/getting-started/register-workspace.html +4 -4
- package/web/docs/getting-started/server-installation.html +6 -6
- package/web/docs/hashmap.json +1 -1
- package/web/docs/operations/marctl.html +4 -4
- package/web/docs/reference/configuration.html +4 -4
- package/web/docs/reference/keyboard-shortcuts.html +4 -4
- package/web/docs/reference/limits.html +4 -4
- package/web/docs/reference/ports-paths-data.html +4 -4
- package/web/docs/reference/status-and-errors.html +4 -4
- package/web/docs/runners/claude-code.html +4 -4
- package/web/docs/runners/codex.html +4 -4
- package/web/docs/runners/mar-agent.html +4 -4
- package/web/docs/runners/opencode.html +4 -4
- package/web/docs/runners/overview.html +4 -4
- package/web/docs/runners/runner-troubleshooting.html +4 -4
- package/web/docs/troubleshooting/node-offline.html +4 -4
- package/web/docs/troubleshooting/quick-diagnosis.html +4 -4
- package/web/docs/troubleshooting/session-run.html +4 -4
- package/web/docs/troubleshooting/terminal.html +4 -4
- package/web/docs/troubleshooting/workspace-files.html +4 -4
- package/web/docs/workbench/composer.html +4 -4
- package/web/docs/workbench/context-and-plan.html +4 -4
- package/web/docs/workbench/conversation.html +4 -4
- package/web/docs/workbench/file-reference-and-attachment.html +4 -4
- package/web/docs/workbench/files.html +4 -4
- package/web/docs/workbench/git-changes.html +4 -4
- package/web/docs/workbench/git-history.html +4 -4
- package/web/docs/workbench/hosted-conversations.html +4 -4
- package/web/docs/workbench/mobile.html +4 -4
- package/web/docs/workbench/navigation.html +4 -4
- package/web/docs/workbench/sessions.html +4 -4
- package/web/docs/workbench/skills.html +5 -5
- package/web/docs/workbench/terminal.html +4 -4
- package/web/index.html +1 -1
- package/web/service-worker.js +1 -1
- package/web/web-version.json +1 -1
- package/web/assets/HtmlPreviewFrame-ClcGdqP1.js +0 -5
- package/web/assets/NodeManagementPage-8rxZ_6Zt.js +0 -1
- package/web/assets/NodeManagementPage-Ccod7oYU.js +0 -1
- package/web/assets/SecretManagementPage-CdgTv3Ov.js +0 -1
- package/web/assets/SkillCenterPage-93Mc7S1A.js +0 -1
- package/web/assets/SystemConfigurationPage-Dg5txhny.js +0 -1
- package/web/assets/WorkbenchPage-C1l73Bo7.css +0 -1
- package/web/assets/WorkspaceManagementPage-D_xOZ93I.js +0 -1
- package/web/assets/WorkspaceManagementPage-K7-IdW3A.js +0 -1
- package/web/assets/channel-Df00MEsi.js +0 -1
- package/web/assets/classDiagram-CYGNFDIV-BkPukKVs.js +0 -1
- package/web/assets/classDiagram-v2-TLXNO2FR-BkPukKVs.js +0 -1
- package/web/assets/infoDiagram-FKFFQAWI-DMowyzbG.js +0 -2
- package/web/assets/stateDiagram-v2-IH3M54BS-BEZ0_9G2.js +0 -1
- package/web/assets/swimlanesDiagram-JKAHXJPX-2keKlibd.js +0 -8
- package/web/docs/assets/administration_license.md.CdgtKnVd.js +0 -1
- package/web/docs/assets/chunks/@localSearchIndexen-US.BmMs0yM1.js +0 -1
- package/web/docs/assets/chunks/@localSearchIndexroot.BUqMaw8-.js +0 -1
- package/web/docs/assets/deployment_network.md.BarghfLt.js +0 -1
- package/web/docs/assets/deployment_network.md.BarghfLt.lean.js +0 -1
- package/web/docs/assets/deployment_upgrade.md.BESOToM5.js +0 -1
- package/web/docs/assets/deployment_upgrade.md.BESOToM5.lean.js +0 -1
- package/web/docs/assets/en-US_deployment_network.md.DdOgOLns.js +0 -1
- package/web/docs/assets/en-US_deployment_network.md.DdOgOLns.lean.js +0 -1
- package/web/docs/assets/en-US_deployment_upgrade.md.DZiDDiLn.js +0 -1
- package/web/docs/assets/en-US_getting-started_npm-quick-start.md.CLCHq7k_.js +0 -3
- package/web/docs/assets/en-US_getting-started_npm-quick-start.md.CLCHq7k_.lean.js +0 -1
- package/web/docs/assets/en-US_getting-started_prerequisites.md.Bpx_AQD1.js +0 -1
- package/web/docs/assets/en-US_getting-started_prerequisites.md.Bpx_AQD1.lean.js +0 -1
- package/web/docs/assets/en-US_workbench_skills.md.C4xlXyjC.js +0 -1
- package/web/docs/assets/getting-started_npm-quick-start.md.B9varoSe.js +0 -3
- package/web/docs/assets/getting-started_npm-quick-start.md.B9varoSe.lean.js +0 -1
- package/web/docs/assets/getting-started_prerequisites.md.D26KU42D.js +0 -1
- package/web/docs/assets/workbench_skills.md.rWZ_VuoB.js +0 -1
- /package/web/docs/assets/{en-US_getting-started_server-installation.md._k2XGM85.lean.js → en-US_getting-started_server-installation.md.C7SjGDJt.lean.js} +0 -0
- /package/web/docs/assets/{getting-started_overview.md.CA1CCOBc.lean.js → getting-started_overview.md.Cv-HSfAh.lean.js} +0 -0
- /package/web/docs/assets/{getting-started_server-installation.md.D3P3Lmc2.lean.js → getting-started_server-installation.md.BsEfVH6b.lean.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as t,o as a,c as n,a3 as o}from"./chunks/framework.BHjrhdiC.js";const u=JSON.parse('{"title":"What Is MyAgentRoam?","description":"","frontmatter":{"title":"What Is MyAgentRoam?","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/getting-started/overview.md","filePath":"en-US/getting-started/overview.md"}'),r={name:"en-US/getting-started/overview.md"};function i
|
|
1
|
+
import{_ as t,o as a,c as n,a3 as o}from"./chunks/framework.BHjrhdiC.js";const u=JSON.parse('{"title":"What Is MyAgentRoam?","description":"","frontmatter":{"title":"What Is MyAgentRoam?","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/getting-started/overview.md","filePath":"en-US/getting-started/overview.md"}'),r={name:"en-US/getting-started/overview.md"};function s(i,e,d,l,c,h){return a(),n("div",null,[...e[0]||(e[0]=[o('<h1 id="what-is-myagentroam" tabindex="-1">What Is MyAgentRoam? <a class="header-anchor" href="#what-is-myagentroam" aria-label="Permalink to "What Is MyAgentRoam?""></a></h1><p>MyAgentRoam is a privately deployed, shared Agent workbench for teams with two ways to work: <strong>Work</strong> and <strong>Conversation</strong>. Configure Agents, models, project directories, and toolchains once on team-owned Windows, Linux, or macOS hosts. Work mode provides the complete Node, Workspace, Agent session, file, Git, and terminal environment; Conversation mode lets members start directly from a published template. The environment does not need to be rebuilt on every personal device. Hosted conversations require Bubblewrap and therefore run only on Linux Nodes.</p><p>Workspace source, external Agents' local credentials, and terminals remain on your hosts. Server-managed model and credential configuration is stored on Server. MyAgentRoam lets authorized members share the work environment and continue work with clear data and permission boundaries.</p><h2 id="four-components" tabindex="-1">Four components <a class="header-anchor" href="#four-components" aria-label="Permalink to "Four components""></a></h2><table tabindex="0"><thead><tr><th>Component</th><th>Location</th><th>Responsibility</th></tr></thead><tbody><tr><td>Web</td><td>Browser</td><td>Workbench, conversations, files, and terminal UI</td></tr><tr><td>Server</td><td>Your server</td><td>Sign-in, Node registration, authorization, and browser connections</td></tr><tr><td>Node</td><td>Each work host</td><td>Workspaces, Agents, files, Git, and terminals</td></tr><tr><td>Agent</td><td>On the Node</td><td>Performs work using your configured Agent and model</td></tr></tbody></table><p>Browsers authenticate and obtain authorization through Server, while each Node opens an outbound control connection. Authorized ordinary Workspace data can also use direct WebRTC; see <a href="./../deployment/network">Network, TLS, and WebSocket</a> for its requirements and fallback. Each Workspace belongs to one Node; files, terminals, and sessions do not cross Node boundaries.</p><h2 id="interface-language" tabindex="-1">Interface Language <a class="header-anchor" href="#interface-language" aria-label="Permalink to "Interface Language""></a></h2><p>Console and the documentation center use the language saved in the current browser. Opening documentation from Console takes you to the matching language. When you sign in or return to Console, the browser's language is synchronized to your account and used for notifications created afterward; changing the language in Settings also updates the account preference. A notification keeps the final text generated when it was created, so later language changes do not rewrite it. Switching languages in the documentation center opens the matching version of the current page; a direct documentation link takes precedence over the saved language.</p><h2 id="installation-interface-caching-and-updates" tabindex="-1">Installation, interface caching, and updates <a class="header-anchor" href="#installation-interface-caching-and-updates" aria-label="Permalink to "Installation, interface caching, and updates""></a></h2><p>Console caches the static resources needed for its interface on the first online visit, avoiding repeated downloads of unchanged files. <strong>Settings → About</strong> shows the current display mode (browser tab or standalone PWA window) separately from the application resource cache status. Display mode describes the current window, not whether the application is installed on the device. When cached, the app shell can open offline, but sign-in, sessions, files, terminals, and other features still require a connection. Documentation and search are not included in the application cache. Browser tabs and installed applications use the same mechanism. Browser storage may be separate or reclaimed; the application remains usable online when caching is unavailable.</p><p>To install a standalone application window, use the browser's install-app control in the address bar or menu. On supported mobile browsers, you can also choose <strong>Add to Home Screen</strong> from the share or browser menu. The name and location vary by browser and operating system; installation is not required for static resource caching.</p><p>Offline resources do not include sign-in state, permissions, sessions, Workspace files, or terminals. If Server cannot be reached on a cold start, the interface reports that your identity is unconfirmed; reconnect to open documentation or retry. Identity and Server- or Node-dependent functions require a connection. An already open page does not sign you out merely because the network is lost.</p><p>A notification appears when a new version is prepared, without immediately interrupting the current page. Clicking the notification, applying the update in <strong>Settings → About</strong>, or reloading the page after the update is prepared activates that version and automatically reloads all open same-origin application windows and tabs, without closing them individually, asking for extra confirmation, or waiting for edits and file transfers to finish. If the update is not ready when you reload, the page keeps using the previous version and notifies you when preparation finishes. A failed automatic switch does not retry in a loop; you can still apply the update manually. Browser tabs and installed applications behave the same way. Reloading may discard unsaved content and interrupt file transfers, so save first if needed. Migration from an older version or reclaimed cache may require reconnecting and closing all same-origin application windows and tabs before reopening the application.</p><h2 id="fastest-path-to-success" tabindex="-1">Fastest path to success <a class="header-anchor" href="#fastest-path-to-success" aria-label="Permalink to "Fastest path to success""></a></h2><p>Choose <a href="./npm-quick-start">npm Quick Start</a> for a quick installation: it prepares a local Node by default, unless disabled. For Docker Compose, follow <a href="./prerequisites">Before You Deploy</a> and <a href="./server-installation">Deploy Server and Web</a>; install and register Nodes separately.</p><ol><li>Prepare and start Server using the selected path.</li><li>Sign in as <code>admin</code> and change the initial password.</li><li>Confirm that a Node is online; for Docker Compose, install and register it on a work host.</li><li>Register a Workspace and confirm that an Agent is available.</li><li>Create a session and send the first message.</li></ol><p><strong>Success:</strong> Work mode shows the Node online, the Workspace file tree opens, and a new session can send messages.</p><p>Community Edition is intended for individual use and does not limit the number of registered Nodes. Enterprise licenses add organizations, roles, sharing, SSO, and auditing. See <a href="./../concepts/permissions-and-sharing">Users, Organizations, and Access</a>.</p><p>If Server is already available, start with <a href="./first-login">First Sign-in</a>, <a href="./connect-node">Connect a Node</a>, or <a href="./first-agent-session">Your First Agent Session</a>. Administrators deploying the product can start with <a href="./prerequisites">Before You Deploy</a>.</p>',19)])])}const g=t(r,[["render",s]]);export{u as __pageData,g as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as t,o as a,c as n,a3 as o}from"./chunks/framework.BHjrhdiC.js";const u=JSON.parse('{"title":"What Is MyAgentRoam?","description":"","frontmatter":{"title":"What Is MyAgentRoam?","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/getting-started/overview.md","filePath":"en-US/getting-started/overview.md"}'),r={name:"en-US/getting-started/overview.md"};function i
|
|
1
|
+
import{_ as t,o as a,c as n,a3 as o}from"./chunks/framework.BHjrhdiC.js";const u=JSON.parse('{"title":"What Is MyAgentRoam?","description":"","frontmatter":{"title":"What Is MyAgentRoam?","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/getting-started/overview.md","filePath":"en-US/getting-started/overview.md"}'),r={name:"en-US/getting-started/overview.md"};function s(i,e,d,l,c,h){return a(),n("div",null,[...e[0]||(e[0]=[o("",19)])])}const g=t(r,[["render",s]]);export{u as __pageData,g as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as o,o as t,c as r,a3 as a}from"./chunks/framework.BHjrhdiC.js";const p=JSON.parse('{"title":"Before You Deploy","description":"","frontmatter":{"title":"Before You Deploy","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/getting-started/prerequisites.md","filePath":"en-US/getting-started/prerequisites.md"}'),n={name:"en-US/getting-started/prerequisites.md"};function i(s,e,l,c,d,u){return t(),r("div",null,[...e[0]||(e[0]=[a('<h1 id="before-you-deploy" tabindex="-1">Before You Deploy <a class="header-anchor" href="#before-you-deploy" aria-label="Permalink to "Before You Deploy""></a></h1><p>Choose your installation first. With the <a href="./npm-quick-start">npm Quick Start</a>, you do not need to deploy Docker or MySQL yourself, or manually register the local Node. Access is local by default; configure your own remote entry point and HTTPS when needed. It does not configure models or external Agents for you.</p><p>The checklist below covers Docker Compose or a separately managed Server/MySQL installation. Quick Start has different component preparation and UUID requirements; follow its dedicated guide. Remote access still requires a secure network entry point.</p><h2 id="requirements" tabindex="-1">Requirements <a class="header-anchor" href="#requirements" aria-label="Permalink to "Requirements""></a></h2><ul><li>A Server host that can run Docker Compose, or an environment where you manage MySQL 8.4, Server, and Web yourself.</li><li>An HTTPS hostname for browsers. Production deployments should terminate TLS at a reverse proxy.</li><li>Node.js <code>>=22.13</code> on every Windows, Linux, or macOS work host, plus a Workspace writable by the Node service account. Hosted conversations require a Linux Node with Bubblewrap.</li><li>For built-in MAR Agent, no external Agent CLI is required. An administrator must <a href="./../runners/mar-agent">configure, enable, and authorize a model</a>, and the user must be within its bound credential scope.</li><li>For Codex, Claude Code, or OpenCode, install only the required Agent CLI and complete authentication or provider configuration under the same Node service account.</li></ul><h2 id="checklist" tabindex="-1">Checklist <a class="header-anchor" href="#checklist" aria-label="Permalink to "Checklist""></a></h2><ol><li>Choose <code>MAR_PUBLIC_ORIGIN</code>, such as <code>https://mar.example.com</code>. It must exactly match the browser-facing origin.</li><li>Prepare strong, separate passwords for the MySQL root and application accounts.</li><li>Confirm that Server can serve HTTPS and every Node can make outbound HTTPS/WSS connections to it.</li><li>Under the final Node service account, check <code>node --version</code> and <code>npm --version</code>. For MAR Agent, test the model in management; for external Agents, also check the corresponding CLI version.</li><li>Record the exact Workspace paths. Never use an entire disk as <code>allowedRoots</code>.</li></ol><p><strong>Success:</strong> every Node resolves and reaches the Server hostname, and its service account can enter the target Workspace.</p><p>If an Agent works in an interactive shell but not as a service, the service account likely has a different home directory or <code>PATH</code>. Follow <a href="./../deployment/node-installation">Install and Register a Node</a>.</p><p>Next: <a href="./server-installation">Deploy Server and Web</a>.</p><p>Formal deployments require a valid real host UUID in both Community and Enterprise states. Containers must mount <code>/sys/class/dmi/id/product_uuid</code> read-only at <code>/license-host/product_uuid</code>; the source must exist. Native formal deployments may use <code>MAR_LICENSE_HOST_PATH</code> to select the real UUID file. The <a href="./npm-quick-start">npm Quick Start</a> does not require a UUID and cannot be activated.</p>',11)])])}const m=o(n,[["render",i]]);export{p as __pageData,m as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as o,o as t,c as r,a3 as a}from"./chunks/framework.BHjrhdiC.js";const p=JSON.parse('{"title":"Before You Deploy","description":"","frontmatter":{"title":"Before You Deploy","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/getting-started/prerequisites.md","filePath":"en-US/getting-started/prerequisites.md"}'),n={name:"en-US/getting-started/prerequisites.md"};function i(s,e,l,c,d,u){return t(),r("div",null,[...e[0]||(e[0]=[a("",11)])])}const m=o(n,[["render",i]]);export{p as __pageData,m as default};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{_ as s,o as a,c as t,a3 as i}from"./chunks/framework.BHjrhdiC.js";const k=JSON.parse('{"title":"Deploy MyAgentRoam Server and Web","description":"","frontmatter":{"title":"Deploy MyAgentRoam Server and Web","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/getting-started/server-installation.md","filePath":"en-US/getting-started/server-installation.md"}'),n={name:"en-US/getting-started/server-installation.md"};function o(r,e,l,d,p,h){return a(),t("div",null,[...e[0]||(e[0]=[i(`<h1 id="deploy-myagentroam-server-and-web" tabindex="-1">Deploy MyAgentRoam Server and Web <a class="header-anchor" href="#deploy-myagentroam-server-and-web" aria-label="Permalink to "Deploy MyAgentRoam Server and Web""></a></h1><p>The public product repository's single root <code>compose.yaml</code> runs MySQL, SearXNG, and Server with its bundled Web application. Your reverse proxy provides the production HTTPS entry point.</p><h2 id="formal-deployment" tabindex="-1">Formal deployment <a class="header-anchor" href="#formal-deployment" aria-label="Permalink to "Formal deployment""></a></h2><p>The formal deployment uses the single product source and build, with <code>mar-server/</code>, <code>mar-web-console/</code>, and the root <code>compose.yaml</code>. Without activation it is Community, with Workspace sessions, files, Git, terminals, model and credential management, Skill/MCP configuration, personal templates, and hosted conversations. A valid Enterprise license enables organizations, users, sharing, SSO, and auditing in the same installation without replacing images. For
|
|
1
|
+
import{_ as s,o as a,c as t,a3 as i}from"./chunks/framework.BHjrhdiC.js";const k=JSON.parse('{"title":"Deploy MyAgentRoam Server and Web","description":"","frontmatter":{"title":"Deploy MyAgentRoam Server and Web","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/getting-started/server-installation.md","filePath":"en-US/getting-started/server-installation.md"}'),n={name:"en-US/getting-started/server-installation.md"};function o(r,e,l,d,p,h){return a(),t("div",null,[...e[0]||(e[0]=[i(`<h1 id="deploy-myagentroam-server-and-web" tabindex="-1">Deploy MyAgentRoam Server and Web <a class="header-anchor" href="#deploy-myagentroam-server-and-web" aria-label="Permalink to "Deploy MyAgentRoam Server and Web""></a></h1><p>The public product repository's single root <code>compose.yaml</code> runs MySQL, SearXNG, and Server with its bundled Web application. Your reverse proxy provides the production HTTPS entry point.</p><h2 id="formal-deployment" tabindex="-1">Formal deployment <a class="header-anchor" href="#formal-deployment" aria-label="Permalink to "Formal deployment""></a></h2><p>The formal deployment uses the single product source and build, with <code>mar-server/</code>, <code>mar-web-console/</code>, and the root <code>compose.yaml</code>. Without activation it is Community, with Workspace sessions, files, Git, terminals, model and credential management, Skill/MCP configuration, personal templates, and hosted conversations. A valid Enterprise license enables organizations, users, sharing, SSO, and auditing in the same installation without replacing images. For another installation option, see <a href="./npm-quick-start">npm Quick Start</a>.</p><p>Both license states use <code>/console</code> for the workbench and <code>/docs/</code> for documentation. Existing links to <code>/</code> keep working: the browser opens the same product at <code>/console</code>, preserving query parameters and fragments. Verify sign-in and a Workspace operation rather than treating <code>/health</code> alone as proof that the full workbench is usable.</p><h2 id="procedure" tabindex="-1">Procedure <a class="header-anchor" href="#procedure" aria-label="Permalink to "Procedure""></a></h2><ol><li><p>In an administrator-only source deployment directory, copy the root template and protect it:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">cp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env.example</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env</span></span>
|
|
2
2
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 600</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env</span></span></code></pre></div><p>Edit every blank value before continuing. Set <code>MAR_PUBLIC_ORIGIN</code> to your external HTTPS origin, generate separate strong MySQL root/application passwords and a long random <code>MAR_SEARXNG_SECRET</code>, and set <code>MAR_SERVER_SSH_DIR</code> to an existing absolute directory. Use a URL-safe application password because Compose embeds <code>MAR_MYSQL_PASSWORD</code> in a database URL. The template intentionally has no working secrets; Compose rejects missing required values.</p><p><code>MAR_SERVER_SSH_DIR</code> must be the deployment account's absolute <code>.ssh</code> path. Compose mounts it read-only. Create a correctly protected empty directory even if SSH skill sources are not yet used.</p></li><li><p>Restrict the directory and private keys to the deployment account. If using an SSH Skill source, verify non-interactive access as that account on the deployment host, replacing the example with a repository you are authorized to access:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">GIT_SSH_COMMAND</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \\</span></span>
|
|
3
3
|
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ls-remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> git@</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"><</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">repository-hos</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">t</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">:</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"><</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">owne</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">r</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"><</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">repositor</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">y</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> HEAD</span></span></code></pre></div><p>This command contacts an external repository and, like Server's SSH Skill source, skips host fingerprint verification. That permits server impersonation; use it only for trusted networks and repositories, and do not set this option as a global SSH default. In <code>.ssh/config</code>, use <code>~/.ssh/key-name</code> for <code>IdentityFile</code>. The host deployment UID should match the image <code>node</code> user UID (<code>1000</code> by default).</p></li><li><p>Start and inspect the services:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build</span></span>
|
|
4
4
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ps</span></span>
|
|
5
|
-
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -fsS</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> http://127.0.0.1:5190/health</span></span></code></pre></div></li><li><p>Proxy HTTPS traffic to the unified Server host port <code>5190</code>. Allow Upgrade/WebSocket requests and do not cache <code>/api/</code> or upgraded connections.</p></li><li><p>Open <code>MAR_PUBLIC_ORIGIN</code> in a browser.</p></li></ol><p><strong>Success:</strong> all three Compose services—MySQL, SearXNG, and Server—are healthy, and <code>/console</code> opens for sign-in through the HTTPS site.</p><p>For failures, inspect <code>docker compose logs mysql</code>, verify the external origin, certificate chain, <code>/api/</code> proxying, and outbound HTTPS/WSS from Nodes. The Node control connection does not require a public inbound HTTP API; see <a href="./../deployment/network">Network, TLS, and WebSocket</a> for optional LAN direct-transfer UDP requirements.</p><p>Keep <code>.env</code> out of Git, chats, and the Web root because it contains database credentials.</p><p>Next: <a href="./first-login">First Sign-in</a>. See also <a href="./../deployment/network">Network, TLS, and WebSocket</a>.</p><p>Formal deployments require a valid real host UUID in both Community and Enterprise states. Containers must mount <code>/sys/class/dmi/id/product_uuid</code> read-only at <code>/license-host/product_uuid</code>; the source must exist. Native formal deployments may use <code>MAR_LICENSE_HOST_PATH</code> to select the real UUID file. The
|
|
5
|
+
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -fsS</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> http://127.0.0.1:5190/health</span></span></code></pre></div></li><li><p>Proxy HTTPS traffic to the unified Server host port <code>5190</code>. Allow Upgrade/WebSocket requests and do not cache <code>/api/</code> or upgraded connections.</p></li><li><p>Open <code>MAR_PUBLIC_ORIGIN</code> in a browser.</p></li></ol><p><strong>Success:</strong> all three Compose services—MySQL, SearXNG, and Server—are healthy, and <code>/console</code> opens for sign-in through the HTTPS site.</p><p>For failures, inspect <code>docker compose logs mysql</code>, verify the external origin, certificate chain, <code>/api/</code> proxying, and outbound HTTPS/WSS from Nodes. The Node control connection does not require a public inbound HTTP API; see <a href="./../deployment/network">Network, TLS, and WebSocket</a> for optional LAN direct-transfer UDP requirements.</p><p>Keep <code>.env</code> out of Git, chats, and the Web root because it contains database credentials.</p><p>Next: <a href="./first-login">First Sign-in</a>. See also <a href="./../deployment/network">Network, TLS, and WebSocket</a>.</p><p>Formal deployments require a valid real host UUID in both Community and Enterprise states. Containers must mount <code>/sys/class/dmi/id/product_uuid</code> read-only at <code>/license-host/product_uuid</code>; the source must exist. Native formal deployments may use <code>MAR_LICENSE_HOST_PATH</code> to select the real UUID file. The <a href="./npm-quick-start">npm Quick Start</a> does not require a UUID and cannot be activated.</p><h2 id="connect-an-independent-node" tabindex="-1">Connect an independent Node <a class="header-anchor" href="#connect-an-independent-node" aria-label="Permalink to "Connect an independent Node""></a></h2><p>In this formal deployment, Server hosts Web and API only; it does not include a Node executor. Before using Workspaces, Agents, files, terminals or hosted conversations, <a href="./../deployment/node-installation">install and register a separate Node</a>. Configure hosting and browser execution dependencies on the Node host, not in the Server image.</p>`,14)])])}const g=s(n,[["render",o]]);export{k as __pageData,g as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as t,o as n,c as a,a3 as s}from"./chunks/framework.BHjrhdiC.js";const p=JSON.parse('{"title":"Favorite and Install Skills","description":"","frontmatter":{"title":"Favorite and Install Skills","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/workbench/skills.md","filePath":"en-US/workbench/skills.md"}'),o={name:"en-US/workbench/skills.md"};function r(i,e,l,d,c,g){return n(),a("div",null,[...e[0]||(e[0]=[s('<h1 id="favorite-and-install-skills" tabindex="-1">Favorite and Install Skills <a class="header-anchor" href="#favorite-and-install-skills" aria-label="Permalink to "Favorite and Install Skills""></a></h1><p>Configurable and added catalog lists request 20 entries per page from the Server. Search, ordering and categories cover the complete visible catalog; category tags do not shrink to the current page or search results. Source definitions and the current target’s installed Skill/MCP entries are complete configuration snapshots and are shown without pagination. An installation remains visible if its catalog reference disappears, but only its existing permitted operations remain available; this does not grant reinstallation or changes to inherited configuration.</p><p>Open <strong>Admin > Skill Configuration</strong> to browse Skill and MCP entries made available from enabled sources. Skill Configuration, Skill Sources, and Secrets are consecutive flat Admin entries; there is no separate top-level Skills or Skill Center entry.</p><p>Choose the Node and, when required, the Workspace before installing. Review version, source, and target status. Updating replaces the installed copy with the selected catalog version; reinstalling restores the same version. If files conflict, inspect the target before approving an overwrite.</p><p>Skill Configuration shows installed state and environment checks. Removing an installation does not remove the catalog favorite or its source. Authorized users administer external sources under <strong>Admin > Skill Sources</strong> and configure referenced secrets under <strong>Admin > Environment Secrets</strong>.</p><h2 id="skill-sources-and-installation" tabindex="-1">Skill sources and installation <a class="header-anchor" href="#skill-sources-and-installation" aria-label="Permalink to "Skill sources and installation""></a></h2><p>When management writes are enabled, only administrators can enable or disable the preinstalled <code>skills.sh</code> source and Official MCP Registry; neither can be deleted. This includes the fixed <code>admin</code> account in Community mode and does not grant management access to organization sources, other users' personal sources, or enterprise catalogs.</p><p>Skills provide reusable instructions; MCP servers connect Agents to tools and services. Node-level configuration applies to its Workspaces, while a same-named Workspace configuration takes precedence. In <strong>Skill Sources</strong>, choose an enabled source and add a Skill to the available personal, organization, or enterprise catalog. Check its source and version before adding it. Catalog updates do not automatically update installed copies: check for updates, confirm the new version, and install it on each intended target.</p><p>Repository sources require a recognizable Git revision. Public GitHub and compatible GitLab repositories can use HTTPS; SSH sources use <code>git@host:owner/repo.git</code> and the Server deployment account's SSH configuration. SSH Skill sources skip host fingerprint verification, so use only trusted networks and sources; see <a href="./../getting-started/server-installation">Server deployment</a>. Source addresses are checked against local and private targets. TLS verification is enabled by default; disabling it for a self-signed source is a separate, high-risk administrator setting and does not relax address checks.</p><p>Choose an online Node and optionally its Workspace in <strong>Skill Configuration</strong>. Check the environment, then install, update, or reinstall. Node installations use the service account's <code>~/.agents/skills</code>; Workspace installations maintain <code>.agents/skills</code> and <code>.claude/skills</code>, with managed local Git exclusions rather than changes to the tracked <code>.gitignore</code>. A Node or browser interruption does not automatically retry an installation. If confirmation times out, refresh the target's actual status before deciding whether to retry. Unknown installed versions can be reinstalled; inspect permission, target path, and environment errors before trying again.</p><p>To see a Workspace's shared skills, open the Workspace and choose <strong>Loaded Skills</strong> from the menu next to <strong>New Session</strong>. This list and the Composer's <code>/</code> skill list read only the Node account's <code>~/.agents/skills</code> and the Workspace's <code>.agents/skills</code>, not the <code>.claude/skills</code> compatibility directories. Entries show their source, and a same-named Workspace skill takes precedence. Installation and removal remain in <strong>Skill Configuration</strong>; removing a Workspace override can expose a same-named Node entry again.</p><h2 id="mcp-servers" tabindex="-1">MCP servers <a class="header-anchor" href="#mcp-servers" aria-label="Permalink to "MCP servers""></a></h2><p>In <strong>MCP Sources</strong>, search an enabled Registry, inspect the server and pinned version, and add it to the available catalog. In <strong>Skill Configuration</strong>, switch to the MCP tab, select the online Node or Workspace, and install the intended entry. Node installation uses the Node account's command environment: npm-based entries may download a pinned package via <code>npx</code>. MAR validates initialization and reads at least one tool before saving the configuration. Resolve network, authentication, package, or system dependency errors on that Node before retrying.</p><p>Changes affect new or reopened Agent sessions, not an already running session. Removing the configuration does not clear npm caches. Environment variables and request headers refer to names in <strong>Environment Secrets</strong>, not secret values; add a missing referenced secret before using the MCP. Use <strong>Loaded MCP</strong> beside <strong>New Session</strong> to inspect the effective Workspace and Node configuration.</p><p>For Playwright, add a pinned Registry version and install it on the intended target. Its default browser is headless, each Agent session has an isolated browser context, and browser state is not retained after the session. The Node must be able to run the package and access the target site. If tools are unavailable, verify the target and installation and start a new session.</p>',15)])])}const u=t(o,[["render",r]]);export{p as __pageData,u as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as t,o as n,c as a,a3 as s}from"./chunks/framework.BHjrhdiC.js";const p=JSON.parse('{"title":"Favorite and Install Skills","description":"","frontmatter":{"title":"Favorite and Install Skills","lastUpdated":"2026-11-
|
|
1
|
+
import{_ as t,o as n,c as a,a3 as s}from"./chunks/framework.BHjrhdiC.js";const p=JSON.parse('{"title":"Favorite and Install Skills","description":"","frontmatter":{"title":"Favorite and Install Skills","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"en-US/workbench/skills.md","filePath":"en-US/workbench/skills.md"}'),o={name:"en-US/workbench/skills.md"};function r(i,e,l,d,c,g){return n(),a("div",null,[...e[0]||(e[0]=[s("",15)])])}const u=t(o,[["render",r]]);export{p as __pageData,u as default};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{_ as o,o as a,c as d,a3 as t}from"./chunks/framework.BHjrhdiC.js";const u=JSON.parse('{"title":"npm 快速开始","description":"","frontmatter":{"title":"npm 快速开始","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/npm-quick-start.md","filePath":"getting-started/npm-quick-start.md"}'),r={name:"getting-started/npm-quick-start.md"};function n(s,e,c,i,p,l){return a(),d("div",null,[...e[0]||(e[0]=[t(`<h1 id="npm-快速开始" tabindex="-1">npm 快速开始 <a class="header-anchor" href="#npm-快速开始" aria-label="Permalink to "npm 快速开始""></a></h1><p>Quick Start 一次准备固定社区版 Server、专用 MySQL 和本机 Node,并在支持受管搜索的平台准备 SearXNG。默认通过本机回环 HTTP 访问;远程访问的网络入口和安全配置由你自行管理。它不安装系统常驻服务,不要求主机 UUID,也不支持激活 License。另一种安装方式见 <a href="./server-installation">Docker Compose 部署</a>。</p><p>目前实际验证的安装目标是带 glibc 2.28 或更高版本、<code>tar</code> 和 <code>dpkg-deb</code> 的 Linux x64(例如受支持的 Debian 或 Ubuntu 系统),以及可使用 <code>tar</code> 的 Windows x64。需要 Node.js 24.12 或更高版本以及 npm。安装包时原生依赖可能要求系统已有可用的构建工具;安装和 setup 均不安装系统包,也不请求提权。浏览器和所选组件的准备需要网络。其他原生平台尚未完成此 Quick Start 的验证。</p><p>终端依赖固定为 <code>node-pty@1.2.0-beta.18</code>,随包提供 Linux x64/arm64、macOS x64/arm64 和 Windows x64/arm64 预编译文件;已验证的 Linux x64 默认安装无需为 node-pty 安装 GCC、make 或 Python,程序目录和 HOME 含空格也可使用。不要设置 <code>npm_config_build_from_source=true</code> 或全局跳过安装脚本;前者会强制源码编译,后者可能使其他依赖未正确准备。其他原生依赖或无匹配预编译文件的平台仍可能需要构建工具;包内有预编译文件不代表该平台的完整 Quick Start 已验证。</p><h2 id="安装与启动" tabindex="-1">安装与启动 <a class="header-anchor" href="#安装与启动" aria-label="Permalink to "安装与启动""></a></h2><p>当 npm Registry 中已有 Server 包及其所需依赖后,以普通用户运行:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">npm</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> @myagentroam/server</span></span>
|
|
2
|
+
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">npx</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mar-server</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> setup</span></span>
|
|
3
|
+
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">npx</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --no-install</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> mar-server</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> run</span></span></code></pre></div><p>Server 以普通依赖使用同版本 Node;npm 安装会按 Node 原有生命周期安装原生依赖并准备 Chromium,即使之后使用 <code>--no-node</code>。安装或查看 <code>mar-server --help</code> 不配置、注册或启动本机 Node。setup 下载所选固定组件并初始化专用数据库,不使用已有 MySQL,也不接受 <code>MAR_DATABASE_URL</code>。跳过本地搜索使用 <code>--no-searxng</code>;两个参数可以组合。搜索准备是可选步骤,失败会报告但不会丢弃其他组件。</p><p><code>--no-node</code> 会持久保存禁用选择,但不会从 Server 包移除 Node 依赖。之后如需启用本机 Node,先停止 run,在 <code>server.json</code> 中将 <code>node.enabled</code> 设为 <code>true</code>,保留身份,再运行 setup。</p><p>run 在前台运行并打印本机浏览器地址。使用 Ctrl+C 停止并等待子进程退出;run 不会下载缺失组件。同一数据目录不能并发执行 setup 和 run。</p><p>Windows 本机 Quick Start 的受管 Node 使用 IPv4 直连;如果只能通过 IPv6 连接,文件和终端流量会回退到 Server 中继。</p><h2 id="远程访问" tabindex="-1">远程访问 <a class="header-anchor" href="#远程访问" aria-label="Permalink to "远程访问""></a></h2><p>默认本机访问不是使用场景限制。你可以自行配置安全隧道或对外入口;setup 不会配置域名、TLS、防火墙或访问控制。公网入口应使用 HTTPS,并支持 WebSocket;不要直接裸露 HTTP 端口。</p><p>当前 run 监听 <code>127.0.0.1</code>,应用 Origin 固定为打印出的 <code>http://127.0.0.1:<端口></code>,不会采用 <code>MAR_PUBLIC_ORIGIN</code> 覆盖值。隧道访问应保留浏览器侧相同的回环地址和端口;使用自定义域名时,仅转发端口不足以保证登录、Origin 校验和 WebSocket 正常,还需匹配应用与网关的配置。不要关闭 Origin 校验来绕过问题。网络要求见<a href="./../deployment/network">网络、TLS 与 WebSocket</a>。</p><h2 id="更新-server-与受管-node" tabindex="-1">更新 Server 与受管 Node <a class="header-anchor" href="#更新-server-与受管-node" aria-label="Permalink to "更新 Server 与受管 Node""></a></h2><ol><li>正常停止 run,等待其管理的进程全部退出。</li><li>在原 npm 安装目录安装目标 Server 版本,例如 <code>npm install --save-exact @myagentroam/server@X.Y.Z</code>,将 <code>X.Y.Z</code> 替换为已发布且依赖齐全的目标版本。</li><li>用原配置重新执行 <code>npx --no-install mar-server run</code>;此前使用 <code>--config</code> 时继续传入同一路径。刷新浏览器并确认原 Node、工作区和终端可用。</li></ol><p>Node 随 Server 的精确依赖一起更新,不单独使用节点管理中的推送升级。不要删除部署目录、重建 Node 身份或修改 <code>allowedRoots</code> 来完成更新;重复 setup 不是更新 npm 程序的方式。独立 Node 的升级流程见<a href="./../deployment/upgrade">升级 MyAgentRoam</a>。</p><p>以上步骤更新 Server/Node 的 npm 程序,不会自动升级已有的受管 MySQL 或搜索组件。更新前核对目标版本的发行说明;若要求组件迁移,按该版本说明操作,不要手工删除安装记录来强制重装。</p><h2 id="登录并开始工作" tabindex="-1">登录并开始工作 <a class="header-anchor" href="#登录并开始工作" aria-label="Permalink to "登录并开始工作""></a></h2><p>按<a href="./first-login">首次登录与修改密码</a>立即修改初始管理员密码。等待本机 Node 显示在线,再在部署目录的 <code>workspace</code> 下<a href="./register-workspace">登记 Workspace</a>。本机 Node 默认只能访问该目录,不会自动启用托管对话。<a href="./first-agent-session">开始会话</a>前还需配置模型和凭据;Node 在线或 <code>/health</code> 成功并不代表 Agent 已能执行。</p><p>本机 Node 的默认允许目录仅为本部署的 <code>workspace/</code>。如需使用其他项目,先停止 run,只编辑部署数据目录内 <code>node-data/node.json</code> 的 <code>allowedRoots</code> 数组,填写一个或多个绝对路径,然后重新 run。例如 Unix 可用 <code>"allowedRoots": ["/home/alice/project", "/srv/work"]</code>,Windows 可用 <code>"allowedRoots": ["C:\\\\Projects", "D:\\\\Work"]</code>。不要覆盖整个文件或删除 <code>nodeId</code>、凭据及 <code>serverUrl</code> 等身份字段。允许目录不会提升操作系统账号权限;账号仍需有相应文件权限。npm 程序安装目录与部署数据目录不同,后者默认为 <code>~/.myagentroam/quick-start/</code>,也可由 <code>--config</code> 指定。</p><p>首次注册失败后,可停止并重新 <code>run</code>:若 <code>node.json</code> 只有注册令牌、尚无身份,系统会复用未使用的有效令牌,或替换已过期但未使用的令牌,保留允许目录和数据配置。若报告 <code>QUICK_START_NODE_BOOTSTRAP_RECOVERY_REQUIRED</code>,说明令牌已使用或状态无法确认,系统不会自动重复登记。请保留 <code>node-data/node.json</code>,从备份恢复已有身份,或先核对并处理管理页面中的上次登记;不要直接删除配置或数据目录。身份字段残缺会报告配置无效,不会自动重置身份。</p><h2 id="数据与可选搜索" tabindex="-1">数据与可选搜索 <a class="header-anchor" href="#数据与可选搜索" aria-label="Permalink to "数据与可选搜索""></a></h2><p>默认私有配置、凭据和组件数据位于 <code>~/.myagentroam/quick-start/</code>。如需其他私有位置,setup 和 run 均传入相同的 <code>--config /path/to/server.json</code>。请保护并备份该目录。重复 setup 保留凭据、Node 数据、Workspace 及其他组件版本。受管 Node 程序随 Server 依赖更新,不使用独立升级或活动入口。</p><p><code>server.json</code> 的 <code>search</code> 对象只有 <code>managed</code>、<code>disabled</code>、<code>external</code> 三种模式。Windows 不支持受管 SearXNG;如需搜索,可使用外部服务。如需使用已有 SearXNG,停止 run,只将 <code>search.mode</code> 改为 <code>"external"</code>、将 <code>search.url</code> 改为服务地址,保留已有的 <code>search.installation</code> 记录,再重新启动。该服务必须允许 JSON 搜索。JSON 检查失败时,本次运行不提供客户端搜索,也不会回退到其他地址;<code>web_fetch</code> 和模型托管搜索是独立能力。<code>--no-searxng</code> 不会清除外部地址。</p><p>禁用后如需重试本地搜索,停止 run,将搜索模式设为 <code>managed</code>,保留已有 <code>installation</code> 记录,再运行 setup。不受支持的平台请保持禁用并改用外部地址。独立管理 Node 参见 <a href="./../deployment/node-installation">Node 安装</a>,正式运维参见<a href="./../deployment/production">生产部署</a>。</p>`,26)])])}const k=o(r,[["render",n]]);export{u as __pageData,k as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as o,o as a,c as d,a3 as t}from"./chunks/framework.BHjrhdiC.js";const u=JSON.parse('{"title":"npm 快速开始","description":"","frontmatter":{"title":"npm 快速开始","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/npm-quick-start.md","filePath":"getting-started/npm-quick-start.md"}'),r={name:"getting-started/npm-quick-start.md"};function n(s,e,c,i,p,l){return a(),d("div",null,[...e[0]||(e[0]=[t("",26)])])}const k=o(r,[["render",n]]);export{u as __pageData,k as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as t,o as a,c as r,a3 as o}from"./chunks/framework.BHjrhdiC.js";const m=JSON.parse('{"title":"MyAgentRoam 是什么","description":"","frontmatter":{"title":"MyAgentRoam 是什么","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/overview.md","filePath":"getting-started/overview.md"}'),d={name:"getting-started/overview.md"};function n(i,e,s,l,p,h){return a(),r("div",null,[...e[0]||(e[0]=[o('<h1 id="myagentroam-是什么" tabindex="-1">MyAgentRoam 是什么 <a class="header-anchor" href="#myagentroam-是什么" aria-label="Permalink to "MyAgentRoam 是什么""></a></h1><p>MyAgentRoam 是面向团队私有化部署、支持“工作 / 对话”两种模式的共享 Agent 工作台。团队只需在自己的 Windows、Linux 或 macOS 主机上配置一次 Agent、任意大模型、项目目录和工具链,就能把这个可直接工作的空间授权给成员。“工作”模式提供完整的 Node、Workspace、Agent 会话、文件、Git 和终端能力;“对话”模式让成员从管理员发布并授权的模板直接开始。无需在每台个人设备重复搭建环境。托管对话因依赖 Bubblewrap 沙箱,目前仅可由 Linux Node 承载。</p><p>工作区源码、外部 Agent 的本机凭据和终端留在团队自己的主机中;Server 管理的模型与凭据配置保存在 Server。MyAgentRoam 让获授权的成员共享工作环境并衔接进度,同时保留清晰的数据和权限边界。个人用户也可以用它统一管理自己的多台工作主机。</p><h2 id="四个组件" tabindex="-1">四个组件 <a class="header-anchor" href="#四个组件" aria-label="Permalink to "四个组件""></a></h2><table tabindex="0"><thead><tr><th>组件</th><th>放在哪里</th><th>负责什么</th></tr></thead><tbody><tr><td>Web</td><td>浏览器</td><td>工作台、对话、文件和终端界面</td></tr><tr><td>Server</td><td>你的服务器</td><td>登录、Node 登记、授权和浏览器连接</td></tr><tr><td>Node</td><td>每台工作主机</td><td>工作区、Agent、文件、Git 与终端</td></tr><tr><td>Agent</td><td>Node 本机</td><td>使用团队接入的 Agent 与大模型完成工作</td></tr></tbody></table><p>浏览器通过 Server 认证和授权,Node 主动向 Server 建立出站控制连接;普通工作区数据也可在授权后使用 WebRTC 直传。直传的网络条件和回退见<a href="./../deployment/network">网络、TLS 与 WebSocket</a>。每个 Workspace 属于一台 Node,不能跨 Node 混用文件、终端或会话。</p><h2 id="界面语言" tabindex="-1">界面语言 <a class="header-anchor" href="#界面语言" aria-label="Permalink to "界面语言""></a></h2><p>控制台和文档中心使用当前浏览器保存的语言选择;从控制台打开文档时会进入对应语言。登录或返回控制台时,当前浏览器语言会同步到账号并作为后续通知的生成语言;在设置中切换语言也会更新账号偏好。通知保存创建时的最终文案,切换语言不会改写已有通知。文档中心切换语言时会打开当前文档的对应语言版本;直接打开文档链接时,该链接的语言优先。</p><h2 id="安装、界面缓存与更新" tabindex="-1">安装、界面缓存与更新 <a class="header-anchor" href="#安装、界面缓存与更新" aria-label="Permalink to "安装、界面缓存与更新""></a></h2><p>控制台会在首次联网打开时缓存应用界面所需的静态资源,避免之后反复下载相同文件。“设置 → 关于”可查看当前运行方式(浏览器标签页或 PWA 独立窗口)和应用资源缓存状态;运行方式表示当前窗口的打开方式,不表示此设备是否安装过应用。缓存可用时,断网也能打开应用外壳,但登录、会话、文件和终端等功能仍需联网。帮助文档和搜索不进入应用缓存。普通浏览器标签页与已安装应用使用相同机制;浏览器存储可能隔离或被回收,缓存不可用时仍可在线使用。</p><p>如需安装为独立应用窗口,可使用浏览器地址栏或菜单中的“安装应用”入口;支持添加到主屏幕的移动浏览器也可从分享或浏览器菜单选择“添加到主屏幕”。入口名称和位置因浏览器与操作系统而异,无需安装也可使用静态资源缓存。</p><p>离线资源不包含登录状态、权限、会话、工作区文件或终端。冷启动时若无法联系 Server,界面会显示身份尚未确认,可在恢复连接后打开帮助或重试;恢复连接后才能确认身份和使用依赖 Server、Node 的功能。已打开的页面不会仅因断网而退出登录。</p><p>新版资源准备完成后会显示更新通知,不会立即打断当前页面。点击通知、在“设置 → 关于”应用更新,或在更新已准备好后主动刷新页面,都会切换到已准备的新版本,并自动刷新所有已打开的同源应用窗口和标签页;无需逐个关闭、额外确认或等待编辑和文件传输结束。如果刷新时新版尚未准备好,本次页面会继续使用旧版,准备完成后再提示更新。自动切换失败不会循环重试,仍可手动应用更新。浏览器标签页与已安装应用行为一致。刷新可能丢弃未保存内容并中断文件传输,请按需先保存。旧版迁移或缓存受损时,可能需要联网、关闭所有同源应用窗口和标签页后重新打开应用。</p><h2 id="最快成功路径" tabindex="-1">最快成功路径 <a class="header-anchor" href="#最快成功路径" aria-label="Permalink to "最快成功路径""></a></h2><p
|
|
1
|
+
import{_ as t,o as a,c as r,a3 as o}from"./chunks/framework.BHjrhdiC.js";const m=JSON.parse('{"title":"MyAgentRoam 是什么","description":"","frontmatter":{"title":"MyAgentRoam 是什么","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/overview.md","filePath":"getting-started/overview.md"}'),d={name:"getting-started/overview.md"};function n(i,e,s,l,p,h){return a(),r("div",null,[...e[0]||(e[0]=[o('<h1 id="myagentroam-是什么" tabindex="-1">MyAgentRoam 是什么 <a class="header-anchor" href="#myagentroam-是什么" aria-label="Permalink to "MyAgentRoam 是什么""></a></h1><p>MyAgentRoam 是面向团队私有化部署、支持“工作 / 对话”两种模式的共享 Agent 工作台。团队只需在自己的 Windows、Linux 或 macOS 主机上配置一次 Agent、任意大模型、项目目录和工具链,就能把这个可直接工作的空间授权给成员。“工作”模式提供完整的 Node、Workspace、Agent 会话、文件、Git 和终端能力;“对话”模式让成员从管理员发布并授权的模板直接开始。无需在每台个人设备重复搭建环境。托管对话因依赖 Bubblewrap 沙箱,目前仅可由 Linux Node 承载。</p><p>工作区源码、外部 Agent 的本机凭据和终端留在团队自己的主机中;Server 管理的模型与凭据配置保存在 Server。MyAgentRoam 让获授权的成员共享工作环境并衔接进度,同时保留清晰的数据和权限边界。个人用户也可以用它统一管理自己的多台工作主机。</p><h2 id="四个组件" tabindex="-1">四个组件 <a class="header-anchor" href="#四个组件" aria-label="Permalink to "四个组件""></a></h2><table tabindex="0"><thead><tr><th>组件</th><th>放在哪里</th><th>负责什么</th></tr></thead><tbody><tr><td>Web</td><td>浏览器</td><td>工作台、对话、文件和终端界面</td></tr><tr><td>Server</td><td>你的服务器</td><td>登录、Node 登记、授权和浏览器连接</td></tr><tr><td>Node</td><td>每台工作主机</td><td>工作区、Agent、文件、Git 与终端</td></tr><tr><td>Agent</td><td>Node 本机</td><td>使用团队接入的 Agent 与大模型完成工作</td></tr></tbody></table><p>浏览器通过 Server 认证和授权,Node 主动向 Server 建立出站控制连接;普通工作区数据也可在授权后使用 WebRTC 直传。直传的网络条件和回退见<a href="./../deployment/network">网络、TLS 与 WebSocket</a>。每个 Workspace 属于一台 Node,不能跨 Node 混用文件、终端或会话。</p><h2 id="界面语言" tabindex="-1">界面语言 <a class="header-anchor" href="#界面语言" aria-label="Permalink to "界面语言""></a></h2><p>控制台和文档中心使用当前浏览器保存的语言选择;从控制台打开文档时会进入对应语言。登录或返回控制台时,当前浏览器语言会同步到账号并作为后续通知的生成语言;在设置中切换语言也会更新账号偏好。通知保存创建时的最终文案,切换语言不会改写已有通知。文档中心切换语言时会打开当前文档的对应语言版本;直接打开文档链接时,该链接的语言优先。</p><h2 id="安装、界面缓存与更新" tabindex="-1">安装、界面缓存与更新 <a class="header-anchor" href="#安装、界面缓存与更新" aria-label="Permalink to "安装、界面缓存与更新""></a></h2><p>控制台会在首次联网打开时缓存应用界面所需的静态资源,避免之后反复下载相同文件。“设置 → 关于”可查看当前运行方式(浏览器标签页或 PWA 独立窗口)和应用资源缓存状态;运行方式表示当前窗口的打开方式,不表示此设备是否安装过应用。缓存可用时,断网也能打开应用外壳,但登录、会话、文件和终端等功能仍需联网。帮助文档和搜索不进入应用缓存。普通浏览器标签页与已安装应用使用相同机制;浏览器存储可能隔离或被回收,缓存不可用时仍可在线使用。</p><p>如需安装为独立应用窗口,可使用浏览器地址栏或菜单中的“安装应用”入口;支持添加到主屏幕的移动浏览器也可从分享或浏览器菜单选择“添加到主屏幕”。入口名称和位置因浏览器与操作系统而异,无需安装也可使用静态资源缓存。</p><p>离线资源不包含登录状态、权限、会话、工作区文件或终端。冷启动时若无法联系 Server,界面会显示身份尚未确认,可在恢复连接后打开帮助或重试;恢复连接后才能确认身份和使用依赖 Server、Node 的功能。已打开的页面不会仅因断网而退出登录。</p><p>新版资源准备完成后会显示更新通知,不会立即打断当前页面。点击通知、在“设置 → 关于”应用更新,或在更新已准备好后主动刷新页面,都会切换到已准备的新版本,并自动刷新所有已打开的同源应用窗口和标签页;无需逐个关闭、额外确认或等待编辑和文件传输结束。如果刷新时新版尚未准备好,本次页面会继续使用旧版,准备完成后再提示更新。自动切换失败不会循环重试,仍可手动应用更新。浏览器标签页与已安装应用行为一致。刷新可能丢弃未保存内容并中断文件传输,请按需先保存。旧版迁移或缓存受损时,可能需要联网、关闭所有同源应用窗口和标签页后重新打开应用。</p><h2 id="最快成功路径" tabindex="-1">最快成功路径 <a class="header-anchor" href="#最快成功路径" aria-label="Permalink to "最快成功路径""></a></h2><p>快速安装可选 <a href="./npm-quick-start">npm 快速开始</a>:默认准备本机 Node,也可禁用。选择 Docker Compose 时,先完成<a href="./prerequisites">部署前准备</a>并<a href="./server-installation">部署 Server/Web</a>,再独立安装和注册 Node。</p><ol><li>按所选路径准备并启动 Server。</li><li>用 <code>admin</code> 首次登录并修改初始密码。</li><li>确认 Node 在线;Docker Compose 部署需在工作主机独立安装并注册。</li><li>登记一个工作区,确认所选 Agent 已登录可用。</li><li>新建会话并发送第一条消息。</li></ol><p><strong>成功标志:</strong> “工作”模式的资源树显示 Node 在线;打开 Workspace 后能看到文件树,并能创建可发送消息的会话。</p><p>社区版适合单人使用,不限制登记 Node 数量;企业 License 启用组织、角色、共享、SSO 和审计。详情见<a href="./../concepts/permissions-and-sharing">用户、组织与资源权限</a>。</p><p>已有可用 Server 的用户可从<a href="./first-login">首次登录</a>、<a href="./connect-node">接入 Node</a>或<a href="./first-agent-session">开始第一次 Agent 对话</a>进入;管理员部署时从<a href="./prerequisites">部署前准备</a>开始。</p>',19)])])}const g=t(d,[["render",n]]);export{m as __pageData,g as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as o,o as a,c as t,a3 as r}from"./chunks/framework.BHjrhdiC.js";const _=JSON.parse('{"title":"部署前准备","description":"","frontmatter":{"title":"部署前准备","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/prerequisites.md","filePath":"getting-started/prerequisites.md"}'),i={name:"getting-started/prerequisites.md"};function d(l,e,n,s,c,p){return a(),t("div",null,[...e[0]||(e[0]=[r('<h1 id="部署前准备" tabindex="-1">部署前准备 <a class="header-anchor" href="#部署前准备" aria-label="Permalink to "部署前准备""></a></h1><p>先选择安装方式:使用 <a href="./npm-quick-start">npm 快速开始</a>,无需自行部署 Docker 或 MySQL,也无需手工注册本机 Node;默认通过本机地址访问,远程入口与 HTTPS 由你自行配置。它不会自动配置模型或外部 Agent。</p><p>以下清单用于 Docker Compose 或自行管理 Server/MySQL 的安装。Quick Start 的组件准备和 UUID 规则不同,请按其专页操作;远程访问同样需要安全的网络入口。</p><h2 id="前置条件" tabindex="-1">前置条件 <a class="header-anchor" href="#前置条件" aria-label="Permalink to "前置条件""></a></h2><ul><li>一台可运行 Docker Compose 的 Server 主机,或能自行提供 MySQL 8.4、Server 和 Web 的运行环境。</li><li>一个供浏览器访问的 HTTPS 域名;生产环境应由反向代理终止 TLS。</li><li>每台 Windows、Linux 或 macOS 工作主机安装 Node.js <code>>=22.13</code>,并为 Node 运行账号准备可读写的 Workspace;托管对话仅部署在具备 Bubblewrap 的 Linux Node。</li><li>使用内置 MAR Agent:不需要外部 Agent CLI,管理员须先<a href="./../runners/mar-agent">配置、启用并授权模型</a>,且当前用户处于所绑定凭据的作用域内。</li><li>使用 Codex、Claude Code 或 OpenCode:仅安装需要的 Agent CLI,并在同一 Node 服务账号下完成登录或模型服务配置。</li></ul><h2 id="检查清单" tabindex="-1">检查清单 <a class="header-anchor" href="#检查清单" aria-label="Permalink to "检查清单""></a></h2><ol><li>为 Server 准备 <code>MAR_PUBLIC_ORIGIN</code>,例如 <code>https://mar.example.com</code>;它必须与浏览器实际访问地址完全一致。</li><li>准备两个强密码:MySQL root 密码和 MySQL 应用账号密码。</li><li>确认 Server 可对外提供 HTTPS,Node 主机可向该地址发起 HTTPS/WSS 出站连接。</li><li>在每台 Node 主机用最终服务账号执行 <code>node --version</code>、<code>npm --version</code>。使用 MAR Agent 时,在管理页测试模型;使用外部 Agent 时再检查对应 CLI 版本。</li><li>记录需要登记的真实 Workspace 路径,不要将整个磁盘作为 <code>allowedRoots</code>。</li></ol><p><strong>成功标志:</strong> 所有 Node 主机都能解析并访问 Server 域名,且服务账号能进入目标 Workspace。</p><h2 id="常见问题" tabindex="-1">常见问题 <a class="header-anchor" href="#常见问题" aria-label="Permalink to "常见问题""></a></h2><ul><li>浏览器与 <code>MAR_PUBLIC_ORIGIN</code> 不一致:登录或 WebSocket 可能被 Origin 校验拒绝;先统一协议、域名和端口。</li><li>Agent 在交互终端可用、服务中不可用:通常是服务账号的用户目录或 <code>PATH</code> 不同,按<a href="./../deployment/node-installation">Node 安装与注册</a>配置。</li></ul><p>下一步:<a href="./server-installation">部署 Server 与 Web</a>。</p><p>正式部署的社区与企业状态都要求有效的真实主机 UUID。容器必须将宿主 <code>/sys/class/dmi/id/product_uuid</code> 只读挂载到 <code>/license-host/product_uuid</code>,源文件必须存在;原生正式部署可用 <code>MAR_LICENSE_HOST_PATH</code> 指定真实 UUID 文件。<a href="./npm-quick-start">npm 快速开始</a>无需 UUID,也不支持激活。</p>',12)])])}const h=o(i,[["render",d]]);export{_ as __pageData,h as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as o,o as a,c as t,a3 as r}from"./chunks/framework.BHjrhdiC.js";const _=JSON.parse('{"title":"部署前准备","description":"","frontmatter":{"title":"部署前准备","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/prerequisites.md","filePath":"getting-started/prerequisites.md"}'),i={name:"getting-started/prerequisites.md"};function d(l,e,n,s,c,p){return a(),t("div",null,[...e[0]||(e[0]=[r("",
|
|
1
|
+
import{_ as o,o as a,c as t,a3 as r}from"./chunks/framework.BHjrhdiC.js";const _=JSON.parse('{"title":"部署前准备","description":"","frontmatter":{"title":"部署前准备","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/prerequisites.md","filePath":"getting-started/prerequisites.md"}'),i={name:"getting-started/prerequisites.md"};function d(l,e,n,s,c,p){return a(),t("div",null,[...e[0]||(e[0]=[r("",12)])])}const h=o(i,[["render",d]]);export{_ as __pageData,h as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as s,o as i,c as a,a3 as t}from"./chunks/framework.BHjrhdiC.js";const k=JSON.parse('{"title":"部署 MyAgentRoam Server 与 Web","description":"","frontmatter":{"title":"部署 MyAgentRoam Server 与 Web","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/server-installation.md","filePath":"getting-started/server-installation.md"}'),o={name:"getting-started/server-installation.md"};function l(d,e,n,h,p,r){return i(),a("div",null,[...e[0]||(e[0]=[t(`<h1 id="部署-myagentroam-server-与-web" tabindex="-1">部署 MyAgentRoam Server 与 Web <a class="header-anchor" href="#部署-myagentroam-server-与-web" aria-label="Permalink to "部署 MyAgentRoam Server 与 Web""></a></h1><p>本页以公开产品根目录的唯一 <code>compose.yaml</code> 部署 MySQL、SearXNG 和自带 Web 的 Server;生产入口由你的反向代理提供 HTTPS。</p><h2 id="正式部署" tabindex="-1">正式部署 <a class="header-anchor" href="#正式部署" aria-label="Permalink to "正式部署""></a></h2><p>正式部署使用同一套产品源码和构建,入口为 <code>mar-server/</code>、<code>mar-web-console/</code> 和根 <code>compose.yaml</code>。未激活时显示社区版,提供工作区会话、文件、Git、终端、模型与凭据管理、Skill/MCP,以及个人模板和托管对话;有效企业 License 在同一安装中启用组织、用户、共享授权、SSO
|
|
1
|
+
import{_ as s,o as i,c as a,a3 as t}from"./chunks/framework.BHjrhdiC.js";const k=JSON.parse('{"title":"部署 MyAgentRoam Server 与 Web","description":"","frontmatter":{"title":"部署 MyAgentRoam Server 与 Web","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"getting-started/server-installation.md","filePath":"getting-started/server-installation.md"}'),o={name:"getting-started/server-installation.md"};function l(d,e,n,h,p,r){return i(),a("div",null,[...e[0]||(e[0]=[t(`<h1 id="部署-myagentroam-server-与-web" tabindex="-1">部署 MyAgentRoam Server 与 Web <a class="header-anchor" href="#部署-myagentroam-server-与-web" aria-label="Permalink to "部署 MyAgentRoam Server 与 Web""></a></h1><p>本页以公开产品根目录的唯一 <code>compose.yaml</code> 部署 MySQL、SearXNG 和自带 Web 的 Server;生产入口由你的反向代理提供 HTTPS。</p><h2 id="正式部署" tabindex="-1">正式部署 <a class="header-anchor" href="#正式部署" aria-label="Permalink to "正式部署""></a></h2><p>正式部署使用同一套产品源码和构建,入口为 <code>mar-server/</code>、<code>mar-web-console/</code> 和根 <code>compose.yaml</code>。未激活时显示社区版,提供工作区会话、文件、Git、终端、模型与凭据管理、Skill/MCP,以及个人模板和托管对话;有效企业 License 在同一安装中启用组织、用户、共享授权、SSO 和审计,无需更换镜像。另一种安装入口见 <a href="./npm-quick-start">npm 快速开始</a>。</p><p>两种授权状态都使用 <code>/console</code> 工作台和 <code>/docs/</code> 文档中心。原有指向 <code>/</code> 的链接继续可用,浏览器在产品内进入 <code>/console</code>,保留查询参数与片段。部署后应验证实际登录和一次工作区操作,不能仅凭 <code>/health</code> 成功判断完整工作台已可用。</p><h2 id="前置条件" tabindex="-1">前置条件 <a class="header-anchor" href="#前置条件" aria-label="Permalink to "前置条件""></a></h2><p>完成<a href="./prerequisites">部署前准备</a>,并取得当前发布版本的项目目录或镜像构建上下文。</p><h2 id="步骤" tabindex="-1">步骤 <a class="header-anchor" href="#步骤" aria-label="Permalink to "步骤""></a></h2><ol><li><p>在仅管理员可读的源码部署目录复制根模板并保护配置文件:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">cp</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env.example</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env</span></span>
|
|
2
2
|
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">chmod</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> 600</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> .env</span></span></code></pre></div><p>继续前填写所有空值:<code>MAR_PUBLIC_ORIGIN</code> 为外部 HTTPS 地址;MySQL Root 与应用密码应分别生成高强度值,<code>MAR_SEARXNG_SECRET</code> 使用随机长字符串;<code>MAR_SERVER_SSH_DIR</code> 指向已存在目录的绝对路径。Compose 会把 <code>MAR_MYSQL_PASSWORD</code> 嵌入数据库 URL,因此应用密码应使用 URL 安全字符。模板故意不提供可用秘密值,缺少必填值时 Compose 会拒绝启动。</p><p><code>MAR_SERVER_SSH_DIR</code> 填写当前独立部署账号的 <code>.ssh</code> 绝对路径。Compose 会把整个目录只读挂载到 Server;即使暂不使用 SSH 技能源,也应创建权限正确的空目录。</p></li><li><p>检查该目录及私钥只允许部署账号访问。如果使用 SSH Skill 源,在部署主机以部署账号验证对目标仓库的非交互读取;将下例中的地址替换为你有权访问的仓库:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">GIT_SSH_COMMAND</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">=</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">'ssh -o BatchMode=yes -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> \\</span></span>
|
|
3
3
|
<span class="line"><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ls-remote</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> git@</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"><</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">repository-hos</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">t</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">:</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"><</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">owne</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">r</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">/</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"><</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">repositor</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">y</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">></span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">.git</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> HEAD</span></span></code></pre></div><p>上例会连接外部仓库,且与 Server 的 SSH Skill 源一样跳过主机指纹校验,存在冒充服务器的风险;仅对可信网络和仓库使用,不要把该选项设为全局 SSH 默认值。<code>.ssh/config</code> 中的 <code>IdentityFile</code> 应写成 <code>~/.ssh/密钥名</code>,不要引用容器内不存在的宿主机绝对路径。宿主机部署账号 UID 应与镜像内 <code>node</code> 用户 UID 一致(默认 <code>1000</code>),否则 OpenSSH 可能因所有权不匹配拒绝私钥。</p></li><li><p>启动服务:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> up</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -d</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> --build</span></span>
|
|
4
|
-
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ps</span></span></code></pre></div></li><li><p>将反向代理的 HTTPS 流量转发到统一 Server 的宿主机 <code>5190</code> 端口;同时允许 Upgrade/WebSocket 请求,不要把 <code>/api/</code> 或 WebSocket 升级请求缓存。</p></li><li><p>在 Server 主机检查健康状态:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -fsS</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> http://127.0.0.1:5190/health</span></span></code></pre></div></li><li><p>用浏览器打开 <code>MAR_PUBLIC_ORIGIN</code>。</p></li></ol><p><strong>成功标志:</strong> <code>docker compose ps</code> 中 MySQL、SearXNG、Server 三个服务健康,打开 HTTPS 站点后可进入 <code>/console</code> 登录。</p><h2 id="失败排查" tabindex="-1">失败排查 <a class="header-anchor" href="#失败排查" aria-label="Permalink to "失败排查""></a></h2><ul><li>MySQL 未健康:执行 <code>docker compose logs mysql</code>,确认密码变量已填写且 <code>13006</code> 未被占用。</li><li>SSH 技能源不可读:确认 <code>MAR_SERVER_SSH_DIR</code> 是绝对路径、部署账号 UID 为 <code>1000</code>,并检查 <code>.ssh/config</code> 的 <code>IdentityFile</code> 在容器内仍指向 <code>~/.ssh/</code>。</li><li>登录页打开但请求失败:检查反向代理是否把 <code>/api/</code> 转到同一站点,以及 <code>MAR_PUBLIC_ORIGIN</code> 是否完全匹配外部地址。</li><li>Node 无法连接:Node 控制连接无需开放入站 HTTP API;检查 Node 到 <code>MAR_PUBLIC_ORIGIN</code> 的出站 HTTPS/WSS 与证书链。</li></ul><p>安全提示:<code>.env</code> 含数据库密码,不要提交 Git、贴入对话或放在 Web 根目录。</p><p>下一步:<a href="./first-login">首次登录与修改初始密码</a>;生产网络细节见<a href="./../deployment/network">网络、TLS 与 WebSocket</a>。</p><p>正式部署的社区与企业状态都要求有效的真实主机 UUID。容器必须将宿主 <code>/sys/class/dmi/id/product_uuid</code> 只读挂载到 <code>/license-host/product_uuid</code>,源文件必须存在;原生正式部署可用 <code>MAR_LICENSE_HOST_PATH</code> 指定真实 UUID
|
|
4
|
+
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">docker</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> compose</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> ps</span></span></code></pre></div></li><li><p>将反向代理的 HTTPS 流量转发到统一 Server 的宿主机 <code>5190</code> 端口;同时允许 Upgrade/WebSocket 请求,不要把 <code>/api/</code> 或 WebSocket 升级请求缓存。</p></li><li><p>在 Server 主机检查健康状态:</p><div class="language-bash vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">bash</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">curl</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> -fsS</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> http://127.0.0.1:5190/health</span></span></code></pre></div></li><li><p>用浏览器打开 <code>MAR_PUBLIC_ORIGIN</code>。</p></li></ol><p><strong>成功标志:</strong> <code>docker compose ps</code> 中 MySQL、SearXNG、Server 三个服务健康,打开 HTTPS 站点后可进入 <code>/console</code> 登录。</p><h2 id="失败排查" tabindex="-1">失败排查 <a class="header-anchor" href="#失败排查" aria-label="Permalink to "失败排查""></a></h2><ul><li>MySQL 未健康:执行 <code>docker compose logs mysql</code>,确认密码变量已填写且 <code>13006</code> 未被占用。</li><li>SSH 技能源不可读:确认 <code>MAR_SERVER_SSH_DIR</code> 是绝对路径、部署账号 UID 为 <code>1000</code>,并检查 <code>.ssh/config</code> 的 <code>IdentityFile</code> 在容器内仍指向 <code>~/.ssh/</code>。</li><li>登录页打开但请求失败:检查反向代理是否把 <code>/api/</code> 转到同一站点,以及 <code>MAR_PUBLIC_ORIGIN</code> 是否完全匹配外部地址。</li><li>Node 无法连接:Node 控制连接无需开放入站 HTTP API;检查 Node 到 <code>MAR_PUBLIC_ORIGIN</code> 的出站 HTTPS/WSS 与证书链。</li></ul><p>安全提示:<code>.env</code> 含数据库密码,不要提交 Git、贴入对话或放在 Web 根目录。</p><p>下一步:<a href="./first-login">首次登录与修改初始密码</a>;生产网络细节见<a href="./../deployment/network">网络、TLS 与 WebSocket</a>。</p><p>正式部署的社区与企业状态都要求有效的真实主机 UUID。容器必须将宿主 <code>/sys/class/dmi/id/product_uuid</code> 只读挂载到 <code>/license-host/product_uuid</code>,源文件必须存在;原生正式部署可用 <code>MAR_LICENSE_HOST_PATH</code> 指定真实 UUID 文件。<a href="./npm-quick-start">npm 快速开始</a>无需 UUID,也不支持激活。</p><h2 id="连接独立-node" tabindex="-1">连接独立 Node <a class="header-anchor" href="#连接独立-node" aria-label="Permalink to "连接独立 Node""></a></h2><p>正式部署中,Server 只托管 Web 与 API,不包含 Node 执行器。使用工作区、Agent、文件、终端或托管对话前,请独立<a href="./../deployment/node-installation">安装并注册 Node</a>。托管与浏览器执行依赖配置在 Node 主机上,不在 Server 镜像中。</p>`,17)])])}const g=s(o,[["render",l]]);export{k as __pageData,g as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as l,o as a,c as i,a3 as o}from"./chunks/framework.BHjrhdiC.js";const P=JSON.parse('{"title":"添加与安装技能","description":"","frontmatter":{"title":"添加与安装技能","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"workbench/skills.md","filePath":"workbench/skills.md"}'),r={name:"workbench/skills.md"};function t(s,e,c,d,p,n){return a(),i("div",null,[...e[0]||(e[0]=[o('<h1 id="查找与配置-skill、mcp" tabindex="-1">查找与配置 Skill、MCP <a class="header-anchor" href="#查找与配置-skill、mcp" aria-label="Permalink to "查找与配置 Skill、MCP""></a></h1><p>可配置目录和已加入目录每页向服务端读取 20 条,搜索、排序和分类覆盖完整可见目录;标签分类不随当前页或搜索结果缩小。来源定义和当前目标的已安装 Skill/MCP 是完整配置快照,直接全部展示,不分页。已安装项即使失去目录引用仍保留,但只能使用原有合法操作,不能借此重新安装或更改继承配置。</p><p>“管理”菜单中的“技能配置”同时提供 Skill 与 MCP 两类 Agent 扩展。Skill 为 Agent 提供可复用的操作说明和工作流;MCP Server 让 Agent 连接浏览器、业务系统或其他工具。两者都可以配置到节点或工作区:节点配置对该节点上的工作区生效,工作区同名配置优先。</p><p>技能配置直接展示当前用户可用的企业、组织和个人目录,并用于将目录项安装到节点用户目录或工作区。页面默认在“可配置技能”Tab 选择并安装 Skill,“当前目标中的技能”Tab 用于查看、更新、重新安装或删除目标目录中的 Skill。</p><p>打开 Workspace 后,可点击会话栏“新建会话”右侧的“更多”按钮,再选择“已加载技能”,只读查看该 Workspace 的公共技能。此列表和 Composer 的 <code>/</code> 技能列表只读取节点用户目录 <code>~/.agents/skills</code> 与 Workspace 的 <code>.agents/skills</code>,不读取 <code>.claude/skills</code> 兼容目录;列表标注来源,名称相同时以 Workspace 技能为准。安装、更新和删除仍在“管理 → 技能配置”中完成。</p><h2 id="管理来源与可用技能" tabindex="-1">管理来源与可用技能 <a class="header-anchor" href="#管理来源与可用技能" aria-label="Permalink to "管理来源与可用技能""></a></h2><p>管理写入可用时,只有系统管理员可以启停部署预置的 <code>skills.sh</code> 和官方 MCP Registry,两者都不能删除。社区版固定 <code>admin</code> 账号也可执行启停操作;这不会开放组织来源、其他用户个人来源或企业目录的管理权限。</p><ol><li>打开“管理 → 技能源管理”。下方默认进入“源内技能”Tab,在下拉框选择已启用的来源;页面会自动加载该来源的技能,skills.sh 默认显示缓存 24 小时的 Hot 热门榜,也可在下方输入名称或描述后搜索。“已加入的技能”Tab 用于维护已经加入可用目录的技能。</li><li>点击技能卡片的“加入可用目录”,选择个人、组织或企业范围;可同时启用星标推荐并添加最多 10 个 Tag 标签。标签下拉提供当前账号有权查看的已有标签,也可以直接输入新标签。加入后可按名称、描述和分类标签筛选,可查看详情,或编辑星标和标签。</li><li>已加入目录的技能显示当前 Commit 短版本和更新时间。“检查更新”只比较原仓库最新 Commit,发现新版本后再由用户确认更新;目录更新后,Node 或 Workspace 不会自动变化。</li></ol><p>星标技能会优先出现在技能配置的可配置目录中,Tag 用于说明技能用途。更新技能内容不会改变已有星标和 Tag。</p><p>仓库源必须具备可识别的 Git 版本,不接受直接下载地址。公开仓库可使用 HTTPS,支持 GitHub,以及使用标准接口的 GitLab.com/自托管 GitLab;SSH 仓库使用 <code>git@host:owner/repo.git</code> 格式。Compose 部署会把独立部署账号的完整 <code>.ssh</code> 目录只读提供给 Server,具体配置见<a href="./../reference/configuration">配置项参考</a>;连接时跳过主机指纹校验。仓库根目录或标准技能目录均可,系统会拒绝指向本机、私网或链路本地地址的来源。每个用户都可以添加自己的个人源,而且只有本人能查看和管理;企业或组织源需要相应管理权限。默认 <code>skills.sh</code> 源可停用但不能删除。</p><p>TLS 证书校验默认启用。企业管理员可在“管理 → 系统配置”打开高风险的关闭开关,以兼容自签名来源;该设置不会放宽来源地址校验。</p><h2 id="安装到节点或工作区" tabindex="-1">安装到节点或工作区 <a class="header-anchor" href="#安装到节点或工作区" aria-label="Permalink to "安装到节点或工作区""></a></h2><ol><li>打开“管理 → 技能配置”,直接在页面中选择在线节点以及安装位置;安装到工作区时再选择该节点下的工作区。</li><li>节点或工作区切换后会自动检查环境,也可手动点击“检查环境”,随后执行“安装”“更新”或“重新安装”。页面选择独立于工作台资源树,不会切换当前打开的工作区。</li><li>节点以 <code>~/.agents/skills</code> 为主目录,并在首次安装时检查或创建 <code>.claude/skills</code> 兼容链接;若已有目录不能安全链接,则维护兼容副本。</li><li>工作区同时维护 <code>.agents/skills</code> 和 <code>.claude/skills</code> 两份副本,并将受管目录写入本地 <code>.git/info/exclude</code>,不会修改版本化 <code>.gitignore</code>。</li></ol><p>安装由节点在后台下载、校验并写入目录;页面会等待完成后刷新状态,耗时较长时在对应卡片显示进度,无需重复点击或刷新。安装失败会释放当前目标,处理错误原因后可以再次安装;状态确认超时时应先刷新目录确认真实结果,再决定是否重试。浏览器断开或服务重启不会自动重复安装。</p><p>系统不会覆盖人工修改的判断结果;无法识别已安装版本时会显示“版本未知”,可以从技能配置重新安装。</p><p>技能配置提供名称/描述搜索和“全部 + 分类标签”筛选,技能卡片可查看详情并在页面内容区内独立滚动。手动“检查环境”会弹窗显示兼容模式、技能数量和待修复项;Workspace 环境检查发现 Git 本地排除规则异常时,可点击带工具图标的“修正环境”,确认后重新生成 MAR 维护的规则块,取消不会修改 Workspace。</p><h2 id="平台与失败处理" tabindex="-1">平台与失败处理 <a class="header-anchor" href="#平台与失败处理" aria-label="Permalink to "平台与失败处理""></a></h2><p>Linux 与 Windows 均支持节点和工作区技能;Windows 不能创建目录链接时会使用受管副本。节点离线、版本过旧、目录权限不足、技能根目录指向 Workspace 外部,或工作区 Git 排除文件不可写时,界面会禁用操作或显示明确错误。单个技能名称位置若为链接,重新安装会原子替换该链接且不会修改链接指向的外部内容;MAR 不会跟随或覆盖越界的技能根目录。</p><h2 id="使用-mcp-server" tabindex="-1">使用 MCP Server <a class="header-anchor" href="#使用-mcp-server" aria-label="Permalink to "使用 MCP Server""></a></h2><h3 id="将-mcp-server-加入中心" tabindex="-1">将 MCP Server 加入中心 <a class="header-anchor" href="#将-mcp-server-加入中心" aria-label="Permalink to "将 MCP Server 加入中心""></a></h3><ol><li>打开“管理 → MCP 源管理”。系统已提供官方 MCP Registry;也可以新增兼容 Registry,并选择个人、组织或企业范围。</li><li>选择一个已启用来源,按名称或说明搜索 MCP Server。可先点击“详情”核对 Server 名称、连接方式和固定版本,再点击“加入可用目录”,设置可见范围、推荐状态和标签;标签可以从当前已有标签中选择,也可以直接输入新标签。</li><li>在“已加入的 MCP”中可查看详情、编辑推荐和标签、检查 Registry 更新、确认更新或移除。更新可用目录不会自动改变已经配置到节点或工作区的版本。</li><li>返回“管理 → 技能配置”,切换到“MCP”Tab,即可浏览当前账号可用的 MCP Server;可按名称或说明搜索,也可使用“全部 + 标签”切换分类,并可在选择目标后直接安装。</li></ol><p>目录只保存固定版本,不使用会在未来自动变化的 <code>latest</code>。新增或升级版本不会自动改变节点与工作区中的现有配置,需要用户明确安装。</p><h3 id="配置到节点或工作区" tabindex="-1">配置到节点或工作区 <a class="header-anchor" href="#配置到节点或工作区" aria-label="Permalink to "配置到节点或工作区""></a></h3><ol><li>打开“管理 → 技能配置”,切换到“MCP”Tab。</li><li>选择“节点”或“工作区”,然后选择在线目标。节点配置适合多个工作区共用;仅某个项目需要的 MCP 应配置到对应工作区。目标离线、停用、版本不支持、工作区缺失或权限不足时,页面会保留具体原因,不再只显示笼统的不可用提示。</li><li>在“可配置 MCP”Tab 可查看详情并点击“安装”;已经安装旧版本时按钮显示“更新”。安装由目标 Node 使用其运行账号的本地命令环境执行:<code>npx</code> 可按用户自己的 npm 配置下载和缓存固定版本,MAR 每次都会完成 MCP 初始化和工具读取验证,并至少确认一个可用工具,耗时较长时卡片会显示进度。只有验证完成才会保存配置并提示成功;失败时可先在 Node 终端修正 npm、网络、鉴权或系统依赖后重试。安装成功后只影响随后新建或重新打开的 Agent 会话,不修改已经运行的会话;删除配置不会清理用户的 npm/npx 缓存。</li><li>在“当前目标中的 MCP”Tab 可查看详情、启用、停用、更新、重新安装或删除。工作区删除同名配置后,若节点仍配置了该 MCP,新会话会继续使用节点配置。</li><li>在节点工作台中,点击“新建会话”右侧的“…”并选择“已加载 MCP”,可以在创建会话前确认该 Workspace 最终启用的 MCP 及其来自 Workspace 还是 Node。被 Workspace 同名配置停用的 Node MCP 不会出现在这里。</li></ol><p>MCP Server 的环境变量和请求头只引用“环境密钥”中已有的环境变量名,页面和保存记录不会包含密钥值。引用的环境密钥不存在时,该 MCP 不会注入 Agent 会话,应先在“管理 → 环境密钥”补齐。</p><h3 id="使用-playwright" tabindex="-1">使用 Playwright <a class="header-anchor" href="#使用-playwright" aria-label="Permalink to "使用 Playwright""></a></h3><p>在官方 MCP Registry 中搜索 Playwright,将需要的固定版本加入可用目录并安装到目标后,Agent 即可在浏览器中打开页面、交互、截图和验证 Web 功能。Playwright 不是不可删除的内置目录项,可从可用目录、节点或工作区移除。默认配置具有以下边界:</p><ul><li>使用无头浏览器,不弹出本机浏览器窗口;</li><li>每个 Agent 会话使用独立浏览器上下文,不共享 Cookie、登录态或页面;</li><li>会话结束后不保留浏览状态;需要登录时,应在当前会话内完成;</li><li>Node 主机需要能够执行该 MCP Server 的固定 npm 包版本并访问待测页面。</li></ul><p>如果 Agent 无法调用 Playwright,先确认目标节点在线、Node 版本支持 MCP、Playwright 已安装到正确的节点或工作区,并新建一个会话重试。运行中的旧会话不会热加载刚安装的 MCP。</p>',29)])])}const k=l(r,[["render",t]]);export{P as __pageData,k as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as l,o as a,c as i,a3 as o}from"./chunks/framework.BHjrhdiC.js";const P=JSON.parse('{"title":"添加与安装技能","description":"","frontmatter":{"title":"添加与安装技能","lastUpdated":"2026-11-
|
|
1
|
+
import{_ as l,o as a,c as i,a3 as o}from"./chunks/framework.BHjrhdiC.js";const P=JSON.parse('{"title":"添加与安装技能","description":"","frontmatter":{"title":"添加与安装技能","lastUpdated":"2026-11-10T00:00:00.000Z"},"headers":[],"relativePath":"workbench/skills.md","filePath":"workbench/skills.md"}'),r={name:"workbench/skills.md"};function t(s,e,c,d,p,n){return a(),i("div",null,[...e[0]||(e[0]=[o("",29)])])}const k=l(r,[["render",t]]);export{P as __pageData,k as default};
|