hyperclaw 5.4.0 → 5.4.2
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/README.md +1 -0
- package/dist/a2ui-protocol-CUqdJGh7.js +75 -0
- package/dist/a2ui-protocol-CibzbTxL.js +75 -0
- package/dist/a2ui-protocol-Dtb8zlog.js +75 -0
- package/dist/a2ui-protocol-ORP2Etw0.js +75 -0
- package/dist/a2ui-protocol-whRZHdBk.js +75 -0
- package/dist/abort-controller-B55O1IgK.js +47995 -0
- package/dist/agents-routing-Ai2BQVpU.js +7 -0
- package/dist/agents-routing-B0D0vcp5.js +424 -0
- package/dist/agents-routing-B0RBl1B8.js +424 -0
- package/dist/agents-routing-BC6GndVe.js +7 -0
- package/dist/agents-routing-BSUaOpce.js +7 -0
- package/dist/agents-routing-C4PVN8G6.js +7 -0
- package/dist/agents-routing-CyFBHvyk.js +424 -0
- package/dist/agents-routing-Dcr29-JV.js +424 -0
- package/dist/agents-routing-DdpszaMx.js +7 -0
- package/dist/agents-routing-EwzORQQv.js +424 -0
- package/dist/agents-routing-Fd-uQ4R_.js +7 -0
- package/dist/agents-routing-eLjVYBAk.js +424 -0
- package/dist/api-key-validation-BANgbsfO.js +66 -0
- package/dist/api-key-validation-Bnz-0MMK.js +66 -0
- package/dist/api-key-validation-D_fMCaO5.js +66 -0
- package/dist/api-key-validation-Db7rG3JU.js +66 -0
- package/dist/api-key-validation-DrMrLEa0.js +66 -0
- package/dist/api-keys-guide-B6AJ1V5D.js +149 -0
- package/dist/api-keys-guide-C75JQOdH.js +149 -0
- package/dist/api-keys-guide-CFJPrgsL.js +149 -0
- package/dist/api-keys-guide-DDz08BJQ.js +149 -0
- package/dist/api-keys-guide-DmKF7tB-.js +149 -0
- package/dist/audit-BLMB8qp7.js +445 -0
- package/dist/audit-Cb2TvqYZ.js +445 -0
- package/dist/audit-D7koAKvj.js +445 -0
- package/dist/audit-Q-Uy5nem.js +445 -0
- package/dist/audit-xP_175jB.js +445 -0
- package/dist/backup-7l3iovkX.js +86 -0
- package/dist/backup-BKLTHh62.js +86 -0
- package/dist/backup-CspxXk78.js +86 -0
- package/dist/backup-CtHJEqGr.js +86 -0
- package/dist/backup-D8dFYDXV.js +86 -0
- package/dist/banner-CZ2BfvQq.js +143 -0
- package/dist/banner-CjTRWmks.js +7 -0
- package/dist/banner-DYzQ8cCb.js +143 -0
- package/dist/banner-Dpygks0H.js +143 -0
- package/dist/banner-ZX1WLr44.js +7 -0
- package/dist/banner-jW84OrYg.js +7 -0
- package/dist/bounty-tools-CCwY61YO.js +211 -0
- package/dist/bounty-tools-Cq-oC9gk.js +211 -0
- package/dist/bounty-tools-DZ-WtRdE.js +211 -0
- package/dist/bounty-tools-DhpmjF5Y.js +211 -0
- package/dist/bounty-tools-NGuBWI55.js +211 -0
- package/dist/browser-tools-5Fl1hP_2.js +5 -0
- package/dist/browser-tools-Ay-wU_a4.js +5 -0
- package/dist/browser-tools-BMgBB2fK.js +179 -0
- package/dist/browser-tools-kcViDwk5.js +179 -0
- package/dist/chat-BUa1oGqj.js +528 -0
- package/dist/chat-CJa0ph8c.js +528 -0
- package/dist/chat-CKnfxa1-.js +528 -0
- package/dist/chat-CQKCIrIY.js +528 -0
- package/dist/chat-CiuT-GTs.js +528 -0
- package/dist/chat-DfI8uOzF.js +528 -0
- package/dist/chat-Dz5rmUSs.js +528 -0
- package/dist/chat-RTmX1F16.js +528 -0
- package/dist/chat-npW_ZOmo.js +528 -0
- package/dist/claw-tasks-Cio1Q7eA.js +80 -0
- package/dist/claw-tasks-Dq38PrL5.js +80 -0
- package/dist/claw-tasks-DzxNWVcz.js +80 -0
- package/dist/claw-tasks-L7vQSGlt.js +80 -0
- package/dist/claw-tasks-dndWneZW.js +80 -0
- package/dist/config-B-W-Mz4X.js +7 -0
- package/dist/config-BAwkTUJC.js +261 -0
- package/dist/config-BzK_Xl4Y.js +261 -0
- package/dist/config-CYPw2v4l.js +261 -0
- package/dist/config-ClsdlpXc.js +261 -0
- package/dist/config-DN9fdLL3.js +261 -0
- package/dist/config-Dm394B6X.js +7 -0
- package/dist/config-FejpHHTz.js +261 -0
- package/dist/config-SiLqEezw.js +7 -0
- package/dist/config-Tq_GJHf7.js +7 -0
- package/dist/config-n4qy5jIy.js +7 -0
- package/dist/config-qJUYRMzx.js +7 -0
- package/dist/connector-BYPxgmsD.js +312 -0
- package/dist/connector-CwT7KZm2.js +309 -0
- package/dist/connector-DX4k-lGd.js +442 -0
- package/dist/cost-tracker-C2q5zKic.js +103 -0
- package/dist/cost-tracker-CsRQAOEr.js +103 -0
- package/dist/cost-tracker-DAXWN5YT.js +103 -0
- package/dist/cost-tracker-bySvehH6.js +103 -0
- package/dist/cost-tracker-x9E8VKtk.js +103 -0
- package/dist/credentials-store-BAW87r6f.js +7 -0
- package/dist/credentials-store-BHtk7_H_.js +7 -0
- package/dist/credentials-store-CESgFvFU.js +89 -0
- package/dist/credentials-store-CR4WSDGl.js +7 -0
- package/dist/credentials-store-CXq4kZub.js +89 -0
- package/dist/credentials-store-DUp8dtaS.js +89 -0
- package/dist/credentials-store-Ddhgmbpz.js +7 -0
- package/dist/credentials-store-hiSga8qn.js +89 -0
- package/dist/credentials-store-kLdrmqSt.js +7 -0
- package/dist/credentials-store-onL1tYct.js +89 -0
- package/dist/cron-tasks-BFsaCKxE.js +89 -0
- package/dist/cron-tasks-BelA2aUW.js +89 -0
- package/dist/cron-tasks-CF4MJoIU.js +89 -0
- package/dist/cron-tasks-D1T9fWAb.js +89 -0
- package/dist/cron-tasks-f_ieXSG2.js +89 -0
- package/dist/daemon-ApB1nMs2.js +421 -0
- package/dist/daemon-B2ghXB-I.js +7 -0
- package/dist/daemon-BTYhQvD_.js +7 -0
- package/dist/daemon-BldYSrDj.js +421 -0
- package/dist/daemon-BoaFnmdF.js +421 -0
- package/dist/daemon-BqTcxMZe.js +7 -0
- package/dist/daemon-BrHxr4ut.js +421 -0
- package/dist/daemon-BzdeLgON.js +421 -0
- package/dist/daemon-BzqWIC4v.js +7 -0
- package/dist/daemon-C3OczPR1.js +7 -0
- package/dist/daemon-CivMFYkD.js +7 -0
- package/dist/daemon-D57KIIA3.js +421 -0
- package/dist/daemon-D8uyH9et.js +7 -0
- package/dist/daemon-DBTtYx6E.js +421 -0
- package/dist/daemon-DBXFUMue.js +421 -0
- package/dist/daemon-srcdhzUG.js +7 -0
- package/dist/delivery-BURWi8wu.js +4 -0
- package/dist/delivery-Bt0xW6L9.js +4 -0
- package/dist/delivery-C2sAERN7.js +4 -0
- package/dist/delivery-CF2Q4hb1.js +95 -0
- package/dist/delivery-CfMljOwk.js +95 -0
- package/dist/delivery-DP0d4_A4.js +95 -0
- package/dist/delivery-DXYt4aMO.js +4 -0
- package/dist/delivery-DXxP2UL4.js +4 -0
- package/dist/delivery-jT2UIDlU.js +95 -0
- package/dist/delivery-kZ2mVkU5.js +95 -0
- package/dist/destructive-gate-5LYh6brt.js +116 -0
- package/dist/destructive-gate-B_hNKtu6.js +116 -0
- package/dist/destructive-gate-C1ny9ek2.js +116 -0
- package/dist/destructive-gate-DvxPSDMR.js +116 -0
- package/dist/destructive-gate-Qd2y7x1B.js +116 -0
- package/dist/dist-B1qvBUax.js +30541 -0
- package/dist/engine-B-JvIt_Y.js +7 -0
- package/dist/engine-BBJlKpMP.js +7 -0
- package/dist/engine-BGZnBZ4m.js +7 -0
- package/dist/engine-BNygJfCo.js +335 -0
- package/dist/engine-BTSXJNba.js +346 -0
- package/dist/engine-C7LyH310.js +353 -0
- package/dist/engine-C_nC_Ioe.js +351 -0
- package/dist/engine-DB4MBzki.js +7 -0
- package/dist/engine-DCtJSbKU.js +7 -0
- package/dist/engine-DPi9fhMl.js +332 -0
- package/dist/engine-DeaqDcaT.js +7 -0
- package/dist/engine-DuvXJrUP.js +335 -0
- package/dist/engine-HkyTC_xl.js +332 -0
- package/dist/engine-JysunhPR.js +7 -0
- package/dist/engine-MzEUw7qb.js +7 -0
- package/dist/engine-j9Yaqt_-.js +332 -0
- package/dist/env-resolve--MaE2kFF.js +167 -0
- package/dist/env-resolve-BYWG94tK.js +11 -0
- package/dist/env-resolve-Bop7KbNq.js +167 -0
- package/dist/env-resolve-Buos635Y.js +167 -0
- package/dist/env-resolve-C0R8R7pb.js +167 -0
- package/dist/env-resolve-D3dP1-Xt.js +11 -0
- package/dist/env-resolve-Dr-KfTtw.js +11 -0
- package/dist/env-resolve-DvsbhPKl.js +11 -0
- package/dist/env-resolve-NNM3F6Eo.js +167 -0
- package/dist/env-resolve-dTjn-g8X.js +11 -0
- package/dist/extraction-tools-Bh5F0ENP.js +91 -0
- package/dist/extraction-tools-BjzXD9LW.js +5 -0
- package/dist/extraction-tools-D1lrDYhe.js +5 -0
- package/dist/extraction-tools-FBwtT2Bx.js +91 -0
- package/dist/fileFromPath-CodL6KXh.js +85 -0
- package/dist/gmail-watch-setup--eQ8raeb.js +42 -0
- package/dist/gmail-watch-setup-9t14gy1B.js +42 -0
- package/dist/gmail-watch-setup-B9fx_OLg.js +42 -0
- package/dist/gmail-watch-setup-BzbG0ICM.js +42 -0
- package/dist/gmail-watch-setup-DP3kDRx1.js +42 -0
- package/dist/heartbeat-engine-5iOlL7Dj.js +89 -0
- package/dist/heartbeat-engine-B9bhAHNi.js +89 -0
- package/dist/heartbeat-engine-Bu4q18GH.js +89 -0
- package/dist/heartbeat-engine-CF_JjNJ4.js +89 -0
- package/dist/heartbeat-engine-CLADYZxE.js +89 -0
- package/dist/hub-CZeGrS20.js +6 -0
- package/dist/hub-DAkEVTEy.js +545 -0
- package/dist/hyperclawbot-BEm8_87h.js +516 -0
- package/dist/hyperclawbot-CNVUtvYC.js +516 -0
- package/dist/hyperclawbot-D5ofLNgm.js +516 -0
- package/dist/hyperclawbot-D61zVMyQ.js +516 -0
- package/dist/hyperclawbot-DR6BgI_d.js +516 -0
- package/dist/hyperclawbot-DwScttSx.js +516 -0
- package/dist/hyperclawbot-hZv4pde0.js +516 -0
- package/dist/hyperclawbot-v65eL2U0.js +516 -0
- package/dist/inference-BEvs7s3c.js +2854 -0
- package/dist/inference-C4b9YqXk.js +8 -0
- package/dist/inference-C874-2MI.js +8 -0
- package/dist/inference-CRF6HyyH.js +2854 -0
- package/dist/inference-CfhTACI8.js +2854 -0
- package/dist/inference-DCSz6Sb1.js +2880 -0
- package/dist/inference-DGsy36Ru.js +8 -0
- package/dist/inference-Da7Hw4J3.js +8 -0
- package/dist/inference-DhJ-SHZn.js +8 -0
- package/dist/inference-K7Jrnzre.js +2854 -0
- package/dist/isFile-CSxoSB8X.js +2274 -0
- package/dist/knowledge-graph-BdsJ5KEL.js +134 -0
- package/dist/knowledge-graph-BiIvoxPt.js +134 -0
- package/dist/knowledge-graph-CFRBepzr.js +134 -0
- package/dist/knowledge-graph-CeDeahui.js +134 -0
- package/dist/knowledge-graph-DoYFZnUr.js +134 -0
- package/dist/loader-C2qtNbtF.js +6 -0
- package/dist/loader-D6yjBYo4.js +410 -0
- package/dist/loader-DBO6yRNh.js +6 -0
- package/dist/loader-DMMb9emn.js +410 -0
- package/dist/loader-DUhmG3V9.js +410 -0
- package/dist/loader-Dl8LNycw.js +6 -0
- package/dist/loader-JktrmJOG.js +6 -0
- package/dist/loader-UpOYxgZv.js +6 -0
- package/dist/loader-hXv2mZjK.js +410 -0
- package/dist/loader-nDBcv3Tm.js +410 -0
- package/dist/logger-BD316YbA.js +86 -0
- package/dist/logger-BnXZkfsp.js +86 -0
- package/dist/logger-CmphFNmW.js +86 -0
- package/dist/logger-DkHzhh56.js +86 -0
- package/dist/logger-Oty9sC13.js +86 -0
- package/dist/manager-3-q8zuAW.js +250 -0
- package/dist/manager-BIc6zzZV.js +250 -0
- package/dist/manager-BkMzc-EJ.js +250 -0
- package/dist/manager-Bq5LApdR.js +6 -0
- package/dist/manager-BwobWy0l.js +120 -0
- package/dist/manager-CNgdJunf.js +250 -0
- package/dist/manager-CozyZSDG.js +250 -0
- package/dist/manager-D4mDWXph.js +120 -0
- package/dist/manager-DuS-WQhZ.js +120 -0
- package/dist/manager-Dz2eKYqo.js +116 -0
- package/dist/manager-R0TlRMZy.js +120 -0
- package/dist/manager-aJfY7rt6.js +120 -0
- package/dist/mcp-BH7HtOQ8.js +142 -0
- package/dist/mcp-CAJSA_ee.js +142 -0
- package/dist/mcp-CD-iIQa2.js +142 -0
- package/dist/mcp-CI2F3m8G.js +142 -0
- package/dist/mcp-DGo37Ifb.js +142 -0
- package/dist/mcp-loader-C-21ynRH.js +93 -0
- package/dist/mcp-loader-Ct1NQKnX.js +93 -0
- package/dist/mcp-loader-D1T6UX73.js +93 -0
- package/dist/mcp-loader-DJk6MEof.js +93 -0
- package/dist/mcp-loader-DdXvU63s.js +93 -0
- package/dist/mcp-loader-Di7n__ta.js +93 -0
- package/dist/mcp-loader-gMliiJ7R.js +93 -0
- package/dist/memory-CyonlkTy.js +6 -0
- package/dist/memory-DPSWQBc0.js +276 -0
- package/dist/memory-auto-B0QOqaUD.js +306 -0
- package/dist/memory-auto-BSxYJugl.js +5 -0
- package/dist/memory-auto-BVCJeTwd.js +306 -0
- package/dist/memory-auto-CcFRxMj-.js +306 -0
- package/dist/memory-auto-CifT5aj_.js +5 -0
- package/dist/memory-auto-Cp2Jwx3Y.js +306 -0
- package/dist/memory-auto-DXKe2ayf.js +5 -0
- package/dist/memory-auto-DjK_D8CA.js +306 -0
- package/dist/memory-auto-N57dp4Do.js +5 -0
- package/dist/memory-auto-n0kOcU7F.js +5 -0
- package/dist/memory-integration-D2RvZ-MB.js +91 -0
- package/dist/memory-integration-D8shLJwp.js +91 -0
- package/dist/memory-integration-DLmzJ62L.js +91 -0
- package/dist/memory-integration-DMXDbMIL.js +91 -0
- package/dist/memory-integration-Dgr-mjue.js +91 -0
- package/dist/moltbook-CIeOshK6.js +81 -0
- package/dist/moltbook-CX5XWn06.js +81 -0
- package/dist/moltbook-DUfiE4NY.js +81 -0
- package/dist/moltbook-DvV6GFFL.js +81 -0
- package/dist/moltbook-YEiNI8Cm.js +81 -0
- package/dist/multi-agent-tools-jzfvT4zP.js +87 -0
- package/dist/multimodal-zZdwqISl.js +77 -0
- package/dist/node-BYrxELx2.js +251 -0
- package/dist/node-CLWgPlAk.js +251 -0
- package/dist/node-Czz8Y85D.js +251 -0
- package/dist/node-DFKhz7Zn.js +251 -0
- package/dist/node-Du2H2Ddi.js +226 -0
- package/dist/node-domexception-v89b0Nwz.js +21 -0
- package/dist/node-pending-queue-CIMXPU6K.js +32 -0
- package/dist/node-pending-queue-DUXCbYkp.js +32 -0
- package/dist/node-pending-queue-DZp7cdfo.js +32 -0
- package/dist/node-pending-queue-iYpoWqxe.js +32 -0
- package/dist/nodes-registry-BTy7Sc7D.js +52 -0
- package/dist/nodes-registry-BYjmmJBU.js +52 -0
- package/dist/nodes-registry-BeiEjd9U.js +52 -0
- package/dist/nodes-registry-C8GeEGq0.js +52 -0
- package/dist/nodes-registry-Du6Klz0l.js +52 -0
- package/dist/oauth-flow-BA0yMrHx.js +148 -0
- package/dist/oauth-flow-C4QSMsbl.js +148 -0
- package/dist/oauth-flow-CIuDBDsp.js +148 -0
- package/dist/oauth-flow-CZOsvU1v.js +148 -0
- package/dist/oauth-flow-CniM4jlJ.js +148 -0
- package/dist/oauth-provider-BA4GVFKg.js +111 -0
- package/dist/oauth-provider-Bnul5A_Z.js +111 -0
- package/dist/oauth-provider-Dk-6BmGL.js +111 -0
- package/dist/oauth-provider-DqPXPiiC.js +111 -0
- package/dist/oauth-provider-MEgHjij2.js +111 -0
- package/dist/observability-0spm7MPz.js +89 -0
- package/dist/observability-B3dDQSdI.js +89 -0
- package/dist/observability-BOMYgHUh.js +89 -0
- package/dist/observability-CDqHr-_o.js +89 -0
- package/dist/observability-ah2a7sh1.js +89 -0
- package/dist/onboard-BJ78s3NT.js +3854 -0
- package/dist/onboard-BnyHie0K.js +14 -0
- package/dist/onboard-C55YXd_e.js +14 -0
- package/dist/onboard-CNnm4yYp.js +3841 -0
- package/dist/onboard-CXSVPnP7.js +3854 -0
- package/dist/onboard-CwvXXOR1.js +14 -0
- package/dist/onboard-CxlIsNhX.js +3854 -0
- package/dist/onboard-D-5gWzH0.js +3854 -0
- package/dist/onboard-D9pjgaVR.js +3854 -0
- package/dist/onboard-DPmufMqX.js +14 -0
- package/dist/onboard-F9lKA2ie.js +14 -0
- package/dist/onboard-UTQXzlPD.js +3854 -0
- package/dist/onboard-UhWVcTap.js +14 -0
- package/dist/onboard-W5DsxVf2.js +3854 -0
- package/dist/onboard-YszvVNgS.js +14 -0
- package/dist/onboard-hK098kjl.js +14 -0
- package/dist/onboard-pLDBUBpO.js +14 -0
- package/dist/onboard-zISipu-l.js +3854 -0
- package/dist/openai-CrdtuLxw.js +6292 -0
- package/dist/orchestrator-5M-6MB7r.js +6 -0
- package/dist/orchestrator-B3BjP1dy.js +6 -0
- package/dist/orchestrator-BZS62iDS.js +6 -0
- package/dist/orchestrator-C0t11xj7.js +189 -0
- package/dist/orchestrator-CA4eKeGn.js +189 -0
- package/dist/orchestrator-CNxTIlOK.js +189 -0
- package/dist/orchestrator-CTMbjgH_.js +6 -0
- package/dist/orchestrator-Cg1vgEHb.js +6 -0
- package/dist/orchestrator-Crn4fgbI.js +189 -0
- package/dist/orchestrator-Cs6s-QmS.js +189 -0
- package/dist/orchestrator-DGqwsLmO.js +189 -0
- package/dist/orchestrator-DV5t6wQ0.js +6 -0
- package/dist/orchestrator-UUHsFKiH.js +6 -0
- package/dist/orchestrator-eT0ZL4yl.js +6 -0
- package/dist/orchestrator-oa7HbCnF.js +189 -0
- package/dist/orchestrator-tUKag7pG.js +189 -0
- package/dist/osint-47yIek6w.js +283 -0
- package/dist/osint-BJvOCmVk.js +283 -0
- package/dist/osint-CK9xVUUm.js +283 -0
- package/dist/osint-D6vQXCWh.js +283 -0
- package/dist/osint-DLYZsp1k.js +283 -0
- package/dist/osint-c-xDjLb-.js +283 -0
- package/dist/osint-cAAdO-cx.js +283 -0
- package/dist/osint-chat-B0lc0Y6r.js +789 -0
- package/dist/osint-chat-BJgnkFDm.js +789 -0
- package/dist/osint-chat-BUhiSpf9.js +789 -0
- package/dist/osint-chat-C-9FVAkU.js +789 -0
- package/dist/osint-chat-C09BvbGy.js +789 -0
- package/dist/osint-chat-CWET8Fno.js +789 -0
- package/dist/osint-chat-Cgdzg3lh.js +789 -0
- package/dist/osint-chat-zdeaaw7a.js +789 -0
- package/dist/osint-e6oBrtlj.js +283 -0
- package/dist/pc-access-BCaF5mRs.js +858 -0
- package/dist/pc-access-BOcXappE.js +858 -0
- package/dist/pc-access-BgZNmAdB.js +8 -0
- package/dist/pc-access-CAoM6WN4.js +8 -0
- package/dist/pc-access-D2HdoziZ.js +8 -0
- package/dist/pc-access-D4g0fjQb.js +858 -0
- package/dist/pending-approval-CEu_-DGQ.js +22 -0
- package/dist/pending-approval-CJPyt8U5.js +22 -0
- package/dist/pending-approval-CzMNCTfZ.js +22 -0
- package/dist/pending-approval-DaXi7otO.js +22 -0
- package/dist/pending-approval-KcyeiifE.js +22 -0
- package/dist/providers-BfW-fgpw.js +5 -0
- package/dist/providers-Cs1h_TJA.js +1137 -0
- package/dist/providers-DrZP0NeR.js +5 -0
- package/dist/providers-dHhpJo9j.js +1120 -0
- package/dist/reminders-store-B58LldEG.js +58 -0
- package/dist/reminders-store-C4gWckLa.js +58 -0
- package/dist/reminders-store-DT0o6a60.js +58 -0
- package/dist/renderer-B8c22rbg.js +228 -0
- package/dist/renderer-BS0ETL20.js +228 -0
- package/dist/renderer-B_ew6jRs.js +228 -0
- package/dist/renderer-Cg3c41A5.js +228 -0
- package/dist/renderer-UoPcgaAd.js +228 -0
- package/dist/rules-BAYXiKiJ.js +106 -0
- package/dist/rules-D0v5nuSE.js +106 -0
- package/dist/rules-DCKPgwLb.js +106 -0
- package/dist/rules-Zn9j4PnO.js +106 -0
- package/dist/rules-oAgOSPHC.js +106 -0
- package/dist/run-main.js +492 -131
- package/dist/runner-B5uo6C5q.js +1310 -0
- package/dist/runner-BaZ2V27T.js +1307 -0
- package/dist/runner-Bgl7UTbV.js +1307 -0
- package/dist/runner-DOKp3-v5.js +1307 -0
- package/dist/runner-voYdfM_f.js +1307 -0
- package/dist/search-tools-BBwMa8VX.js +107 -0
- package/dist/search-tools-CEUOO9Jf.js +107 -0
- package/dist/search-tools-DXVuVXW_.js +107 -0
- package/dist/search-tools-VHP3xVyC.js +107 -0
- package/dist/search-tools-w_zT7-dr.js +107 -0
- package/dist/server-BAdJwMM9.js +4 -0
- package/dist/server-BD9FLc7S.js +1384 -0
- package/dist/server-BJkDIs8Z.js +1467 -0
- package/dist/server-BlqWBbS7.js +4 -0
- package/dist/server-BzwPvTbD.js +1447 -0
- package/dist/server-CBvSfG4w.js +4 -0
- package/dist/server-CbNBcB41.js +4 -0
- package/dist/server-CtFoXM88.js +4 -0
- package/dist/server-DPTXaJJF.js +4 -0
- package/dist/server-DVxVLu_G.js +1467 -0
- package/dist/server-DZj6Nobr.js +1467 -0
- package/dist/server-Diu80smx.js +4 -0
- package/dist/server-DszV63tu.js +4 -0
- package/dist/server-Dv2zHHy-.js +1447 -0
- package/dist/server-MDmdWHob.js +1447 -0
- package/dist/server-N9LnLQCS.js +1447 -0
- package/dist/session-store-C6Otslf9.js +5 -0
- package/dist/session-store-Cmfnvuw9.js +141 -0
- package/dist/session-store-CuR9DgRf.js +5 -0
- package/dist/session-store-Cx1RMBhS.js +5 -0
- package/dist/session-store-DPPHkJBn.js +5 -0
- package/dist/session-store-DWLCWQFS.js +141 -0
- package/dist/session-store-qGufR_m5.js +141 -0
- package/dist/session-store-sUpA509O.js +141 -0
- package/dist/sessions-tools-9Z8TtdmP.js +5 -0
- package/dist/sessions-tools-BAZnoQLp.js +95 -0
- package/dist/sessions-tools-Bb_zF947.js +95 -0
- package/dist/sessions-tools-ClrKqLII.js +131 -0
- package/dist/sessions-tools-DFe23ZDD.js +5 -0
- package/dist/sessions-tools-JHSZ6Bns.js +5 -0
- package/dist/sessions-tools-TsRdeFb7.js +95 -0
- package/dist/sessions-tools-nYP3Agfs.js +5 -0
- package/dist/skill-loader-9jg876RH.js +160 -0
- package/dist/skill-loader-CM4KWQ7_.js +160 -0
- package/dist/skill-loader-CS3OP4Lr.js +160 -0
- package/dist/skill-loader-CnJDLNbY.js +7 -0
- package/dist/skill-loader-DRLgt5V2.js +160 -0
- package/dist/skill-loader-DVpEgYV2.js +7 -0
- package/dist/skill-loader-Df5T_UFl.js +7 -0
- package/dist/skill-loader-DxE-gZkT.js +7 -0
- package/dist/skill-runtime-8Xh5874w.js +104 -0
- package/dist/skill-runtime-B3aUdWKh.js +104 -0
- package/dist/skill-runtime-BKyhYvpW.js +5 -0
- package/dist/skill-runtime-BLkXA1mO.js +104 -0
- package/dist/skill-runtime-BMk-h6Dl.js +5 -0
- package/dist/skill-runtime-BP0kZfmM.js +5 -0
- package/dist/skill-runtime-BaTX-RGy.js +5 -0
- package/dist/skill-runtime-CB9tnc-P.js +104 -0
- package/dist/skill-runtime-CLK5HTVE.js +5 -0
- package/dist/skill-runtime-COyc3Bci.js +104 -0
- package/dist/skill-runtime-CvDXX7wN.js +5 -0
- package/dist/skill-runtime-D4REZnhY.js +104 -0
- package/dist/skill-runtime-D6-rGzX1.js +104 -0
- package/dist/skill-runtime-DQRi9sIf.js +5 -0
- package/dist/skill-runtime-DRd56NWK.js +104 -0
- package/dist/skill-runtime-Dej1Yr5V.js +5 -0
- package/dist/src-6dmkVQGq.js +63 -0
- package/dist/src-7yBXPAs6.js +315 -0
- package/dist/src-9GyYED0T.js +63 -0
- package/dist/src-B9L6qb-Z.js +462 -0
- package/dist/src-BEjIVOmq.js +63 -0
- package/dist/src-BOnuFlI4.js +23 -0
- package/dist/src-BY3On_zO.js +462 -0
- package/dist/src-BdgKAlMQ.js +20 -0
- package/dist/src-BkEtHLLy.js +462 -0
- package/dist/src-C52A3OwC.js +301 -0
- package/dist/src-C8cbfjat.js +173 -0
- package/dist/src-CDeWGebw.js +315 -0
- package/dist/src-CNAVUFC6.js +462 -0
- package/dist/src-CQ2lZvdF.js +462 -0
- package/dist/src-Cdwn9xpG.js +462 -0
- package/dist/src-CyCLoqIP.js +63 -0
- package/dist/src-D-OND_62.js +301 -0
- package/dist/src-DB6dPsbY.js +63 -0
- package/dist/src-DE4mH0BB.js +63 -0
- package/dist/src-DFo8lVfV.js +300 -0
- package/dist/src-DJbpP4Gs.js +462 -0
- package/dist/src-DPfnArdr.js +300 -0
- package/dist/src-DTft7Qvt.js +63 -0
- package/dist/src-DgvFah8g.js +153 -0
- package/dist/src-TYvV_oFO.js +63 -0
- package/dist/src-krHV0uVj.js +315 -0
- package/dist/src-lltU5gkh.js +20 -0
- package/dist/src-tF0sBtr3.js +462 -0
- package/dist/sub-agent-tools-BwOxHu6f.js +39 -0
- package/dist/sub-agent-tools-CE8pVUdb.js +39 -0
- package/dist/sub-agent-tools-CJVEIF1F.js +39 -0
- package/dist/sub-agent-tools-CQWNfYn_.js +39 -0
- package/dist/sub-agent-tools-CViiqebO.js +39 -0
- package/dist/sub-agent-tools-DgT4jUHC.js +39 -0
- package/dist/sub-agent-tools-Lbin_4S3.js +39 -0
- package/dist/sub-agent-tools-f4X1M-li.js +39 -0
- package/dist/tool-policy-1EBdJkSG.js +190 -0
- package/dist/tool-policy-B1bL0X-E.js +189 -0
- package/dist/tool-policy-CfWEnRxy.js +190 -0
- package/dist/tool-policy-NLbucl5-.js +189 -0
- package/dist/tool-policy-yNVTLNDY.js +189 -0
- package/dist/tts-elevenlabs-Bk24wQ2V.js +64 -0
- package/dist/tts-elevenlabs-CCeOqqrh.js +64 -0
- package/dist/tts-elevenlabs-CHrJZuNW.js +64 -0
- package/dist/tts-elevenlabs-DHqQsqMz.js +64 -0
- package/dist/tts-elevenlabs-TUKPkSV2.js +64 -0
- package/dist/vision-BMRKyu3c.js +167 -0
- package/dist/vision-CW1YCKed.js +167 -0
- package/dist/vision-DPLmrwUA.js +167 -0
- package/dist/vision-Q4EOcBS6.js +167 -0
- package/dist/vision-XyAGO5La.js +167 -0
- package/dist/vision-tools-B5DNR28M.js +5 -0
- package/dist/vision-tools-CC9HSuvN.js +51 -0
- package/dist/vision-tools-Ca3OhtdX.js +51 -0
- package/dist/vision-tools-CpU2fSRv.js +51 -0
- package/dist/vision-tools-Ct52djW8.js +51 -0
- package/dist/vision-tools-DF7N2DDI.js +5 -0
- package/dist/vision-tools-DVYx9-Jw.js +5 -0
- package/dist/vision-tools-DyP6lRA5.js +5 -0
- package/dist/vision-tools-RIVKEUeY.js +5 -0
- package/dist/vision-tools-kYb3effk.js +51 -0
- package/dist/voice-transcription-B1D1rpca.js +170 -0
- package/dist/voice-transcription-Bz2y0nPK.js +170 -0
- package/dist/voice-transcription-CVFcHpPF.js +170 -0
- package/dist/voice-transcription-CvQuWPYK.js +170 -0
- package/dist/voice-transcription-YqndiLA7.js +170 -0
- package/dist/website-watch-tools-B036Y8OQ.js +176 -0
- package/dist/website-watch-tools-B8CHie8v.js +5 -0
- package/dist/website-watch-tools-Brk5oIEv.js +176 -0
- package/dist/website-watch-tools-CJqRj_GB.js +5 -0
- package/dist/website-watch-tools-CSSEu3Qy.js +5 -0
- package/dist/website-watch-tools-D92dkYZa.js +176 -0
- package/dist/website-watch-tools-Du_a8lXq.js +176 -0
- package/dist/website-watch-tools-UdTBGgRk.js +5 -0
- package/package.json +5 -3
- package/static/chat.html +18 -4
- package/static/web/assets/index-D2ekZ-uM.js +75 -0
- package/static/web/assets/index-D_9lvvup.css +1 -0
- package/static/web/index.html +2 -2
- package/static/web/assets/index-B5N1LHGR.css +0 -1
- package/static/web/assets/index-Bf8pf7Wg.js +0 -75
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
|
+
const require_paths = require('./paths-AIyBxIzm.js');
|
|
3
|
+
const require_paths$1 = require('./paths-DPovhojT.js');
|
|
4
|
+
const chalk = require_chunk.__toESM(require("chalk"));
|
|
5
|
+
const fs_extra = require_chunk.__toESM(require("fs-extra"));
|
|
6
|
+
const path = require_chunk.__toESM(require("path"));
|
|
7
|
+
const crypto = require_chunk.__toESM(require("crypto"));
|
|
8
|
+
|
|
9
|
+
//#region src/webhooks/manager.ts
|
|
10
|
+
require_paths$1.init_paths();
|
|
11
|
+
const getWebhooksFile = () => path.default.join(require_paths.getHyperClawDir(), "webhooks.json");
|
|
12
|
+
function generateSecret() {
|
|
13
|
+
return crypto.default.randomBytes(24).toString("hex");
|
|
14
|
+
}
|
|
15
|
+
function generateId() {
|
|
16
|
+
return crypto.default.randomBytes(6).toString("hex");
|
|
17
|
+
}
|
|
18
|
+
var WebhookManager = class {
|
|
19
|
+
webhooks = [];
|
|
20
|
+
async load() {
|
|
21
|
+
try {
|
|
22
|
+
this.webhooks = await fs_extra.default.readJson(getWebhooksFile());
|
|
23
|
+
} catch {
|
|
24
|
+
this.webhooks = [];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async save() {
|
|
28
|
+
const f = getWebhooksFile();
|
|
29
|
+
await fs_extra.default.ensureDir(path.default.dirname(f));
|
|
30
|
+
await fs_extra.default.writeJson(f, this.webhooks, { spaces: 2 });
|
|
31
|
+
}
|
|
32
|
+
async add(opts) {
|
|
33
|
+
await this.load();
|
|
34
|
+
const wh = {
|
|
35
|
+
id: generateId(),
|
|
36
|
+
name: opts.name,
|
|
37
|
+
secret: opts.withSecret ? generateSecret() : void 0,
|
|
38
|
+
format: opts.format || "json",
|
|
39
|
+
routeTo: opts.routeTo,
|
|
40
|
+
enabled: true,
|
|
41
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
42
|
+
hitCount: 0,
|
|
43
|
+
filterPath: opts.filterPath,
|
|
44
|
+
template: opts.template
|
|
45
|
+
};
|
|
46
|
+
this.webhooks.push(wh);
|
|
47
|
+
await this.save();
|
|
48
|
+
return wh;
|
|
49
|
+
}
|
|
50
|
+
async remove(id) {
|
|
51
|
+
await this.load();
|
|
52
|
+
this.webhooks = this.webhooks.filter((w) => w.id !== id);
|
|
53
|
+
await this.save();
|
|
54
|
+
}
|
|
55
|
+
async toggle(id) {
|
|
56
|
+
await this.load();
|
|
57
|
+
const wh = this.webhooks.find((w) => w.id === id);
|
|
58
|
+
if (wh) {
|
|
59
|
+
wh.enabled = !wh.enabled;
|
|
60
|
+
await this.save();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async recordHit(id) {
|
|
64
|
+
const wh = this.webhooks.find((w) => w.id === id);
|
|
65
|
+
if (wh) {
|
|
66
|
+
wh.hitCount++;
|
|
67
|
+
wh.lastHitAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
68
|
+
await this.save();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
verifySignature(webhook, payload, sig) {
|
|
72
|
+
if (!webhook.secret) return true;
|
|
73
|
+
const expected = crypto.default.createHmac("sha256", webhook.secret).update(payload).digest("hex");
|
|
74
|
+
return crypto.default.timingSafeEqual(Buffer.from(sig.replace("sha256=", ""), "hex"), Buffer.from(expected, "hex"));
|
|
75
|
+
}
|
|
76
|
+
extractMessage(webhook, rawBody) {
|
|
77
|
+
if (!webhook.filterPath && !webhook.template) return rawBody;
|
|
78
|
+
let body;
|
|
79
|
+
try {
|
|
80
|
+
body = JSON.parse(rawBody);
|
|
81
|
+
} catch {
|
|
82
|
+
body = { text: rawBody };
|
|
83
|
+
}
|
|
84
|
+
if (webhook.template) return webhook.template.replace(/\{\{([^}]+)\}\}/g, (_, key) => {
|
|
85
|
+
const parts = key.trim().split(".");
|
|
86
|
+
let val = body;
|
|
87
|
+
for (const p of parts) val = val?.[p];
|
|
88
|
+
return val !== void 0 ? String(val) : "";
|
|
89
|
+
});
|
|
90
|
+
if (webhook.filterPath) {
|
|
91
|
+
const parts = webhook.filterPath.split(".");
|
|
92
|
+
let val = body;
|
|
93
|
+
for (const p of parts) val = val?.[p];
|
|
94
|
+
return val !== void 0 ? String(val) : rawBody;
|
|
95
|
+
}
|
|
96
|
+
return rawBody;
|
|
97
|
+
}
|
|
98
|
+
showList(gatewayPort = 18789) {
|
|
99
|
+
console.log(chalk.default.bold.cyan("\n 🪝 WEBHOOKS\n"));
|
|
100
|
+
if (this.webhooks.length === 0) {
|
|
101
|
+
console.log(chalk.default.gray(" No webhooks configured.\n"));
|
|
102
|
+
console.log(chalk.default.gray(" Add with: hyperclaw webhooks add\n"));
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
for (const wh of this.webhooks) {
|
|
106
|
+
const dot = wh.enabled ? chalk.default.green("●") : chalk.default.gray("○");
|
|
107
|
+
const url = chalk.default.underline.cyan(`http://localhost:${gatewayPort}/webhook/${wh.id}`);
|
|
108
|
+
console.log(` ${dot} ${chalk.default.white(wh.name)} ${chalk.default.gray(`[${wh.format}]`)}`);
|
|
109
|
+
console.log(` ${chalk.default.gray("URL:")} ${url}`);
|
|
110
|
+
console.log(` ${chalk.default.gray("Route:")} ${wh.routeTo.type} → ${wh.routeTo.target}`);
|
|
111
|
+
if (wh.secret) console.log(` ${chalk.default.gray("Secret:")} ${wh.secret.slice(0, 8)}...`);
|
|
112
|
+
if (wh.template) console.log(` ${chalk.default.gray("Template:")} ${wh.template.slice(0, 50)}`);
|
|
113
|
+
console.log(` ${chalk.default.gray(`Hits: ${wh.hitCount} Last: ${wh.lastHitAt ? new Date(wh.lastHitAt).toLocaleString() : "never"}`)}`);
|
|
114
|
+
console.log();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
//#endregion
|
|
120
|
+
exports.WebhookManager = WebhookManager;
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
|
+
const require_paths = require('./paths-AIyBxIzm.js');
|
|
3
|
+
const require_paths$1 = require('./paths-DPovhojT.js');
|
|
4
|
+
const chalk = require_chunk.__toESM(require("chalk"));
|
|
5
|
+
const fs_extra = require_chunk.__toESM(require("fs-extra"));
|
|
6
|
+
const path = require_chunk.__toESM(require("path"));
|
|
7
|
+
const crypto = require_chunk.__toESM(require("crypto"));
|
|
8
|
+
|
|
9
|
+
//#region src/webhooks/manager.ts
|
|
10
|
+
require_paths$1.init_paths();
|
|
11
|
+
const getWebhooksFile = () => path.default.join(require_paths.getHyperClawDir(), "webhooks.json");
|
|
12
|
+
function generateSecret() {
|
|
13
|
+
return crypto.default.randomBytes(24).toString("hex");
|
|
14
|
+
}
|
|
15
|
+
function generateId() {
|
|
16
|
+
return crypto.default.randomBytes(6).toString("hex");
|
|
17
|
+
}
|
|
18
|
+
var WebhookManager = class {
|
|
19
|
+
webhooks = [];
|
|
20
|
+
async load() {
|
|
21
|
+
try {
|
|
22
|
+
this.webhooks = await fs_extra.default.readJson(getWebhooksFile());
|
|
23
|
+
} catch {
|
|
24
|
+
this.webhooks = [];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
async save() {
|
|
28
|
+
const f = getWebhooksFile();
|
|
29
|
+
await fs_extra.default.ensureDir(path.default.dirname(f));
|
|
30
|
+
await fs_extra.default.writeJson(f, this.webhooks, { spaces: 2 });
|
|
31
|
+
}
|
|
32
|
+
async add(opts) {
|
|
33
|
+
await this.load();
|
|
34
|
+
const wh = {
|
|
35
|
+
id: generateId(),
|
|
36
|
+
name: opts.name,
|
|
37
|
+
secret: opts.withSecret ? generateSecret() : void 0,
|
|
38
|
+
format: opts.format || "json",
|
|
39
|
+
routeTo: opts.routeTo,
|
|
40
|
+
enabled: true,
|
|
41
|
+
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
42
|
+
hitCount: 0,
|
|
43
|
+
filterPath: opts.filterPath,
|
|
44
|
+
template: opts.template
|
|
45
|
+
};
|
|
46
|
+
this.webhooks.push(wh);
|
|
47
|
+
await this.save();
|
|
48
|
+
return wh;
|
|
49
|
+
}
|
|
50
|
+
async remove(id) {
|
|
51
|
+
await this.load();
|
|
52
|
+
this.webhooks = this.webhooks.filter((w) => w.id !== id);
|
|
53
|
+
await this.save();
|
|
54
|
+
}
|
|
55
|
+
async toggle(id) {
|
|
56
|
+
await this.load();
|
|
57
|
+
const wh = this.webhooks.find((w) => w.id === id);
|
|
58
|
+
if (wh) {
|
|
59
|
+
wh.enabled = !wh.enabled;
|
|
60
|
+
await this.save();
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async recordHit(id) {
|
|
64
|
+
const wh = this.webhooks.find((w) => w.id === id);
|
|
65
|
+
if (wh) {
|
|
66
|
+
wh.hitCount++;
|
|
67
|
+
wh.lastHitAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
68
|
+
await this.save();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
verifySignature(webhook, payload, sig) {
|
|
72
|
+
if (!webhook.secret) return true;
|
|
73
|
+
const expected = crypto.default.createHmac("sha256", webhook.secret).update(payload).digest("hex");
|
|
74
|
+
return crypto.default.timingSafeEqual(Buffer.from(sig.replace("sha256=", ""), "hex"), Buffer.from(expected, "hex"));
|
|
75
|
+
}
|
|
76
|
+
extractMessage(webhook, rawBody) {
|
|
77
|
+
if (!webhook.filterPath && !webhook.template) return rawBody;
|
|
78
|
+
let body;
|
|
79
|
+
try {
|
|
80
|
+
body = JSON.parse(rawBody);
|
|
81
|
+
} catch {
|
|
82
|
+
body = { text: rawBody };
|
|
83
|
+
}
|
|
84
|
+
if (webhook.template) return webhook.template.replace(/\{\{([^}]+)\}\}/g, (_, key) => {
|
|
85
|
+
const parts = key.trim().split(".");
|
|
86
|
+
let val = body;
|
|
87
|
+
for (const p of parts) val = val?.[p];
|
|
88
|
+
return val !== void 0 ? String(val) : "";
|
|
89
|
+
});
|
|
90
|
+
if (webhook.filterPath) {
|
|
91
|
+
const parts = webhook.filterPath.split(".");
|
|
92
|
+
let val = body;
|
|
93
|
+
for (const p of parts) val = val?.[p];
|
|
94
|
+
return val !== void 0 ? String(val) : rawBody;
|
|
95
|
+
}
|
|
96
|
+
return rawBody;
|
|
97
|
+
}
|
|
98
|
+
showList(gatewayPort = 18789) {
|
|
99
|
+
console.log(chalk.default.bold.cyan("\n 🪝 WEBHOOKS\n"));
|
|
100
|
+
if (this.webhooks.length === 0) {
|
|
101
|
+
console.log(chalk.default.gray(" No webhooks configured.\n"));
|
|
102
|
+
console.log(chalk.default.gray(" Add with: hyperclaw webhooks add\n"));
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
for (const wh of this.webhooks) {
|
|
106
|
+
const dot = wh.enabled ? chalk.default.green("●") : chalk.default.gray("○");
|
|
107
|
+
const url = chalk.default.underline.cyan(`http://localhost:${gatewayPort}/webhook/${wh.id}`);
|
|
108
|
+
console.log(` ${dot} ${chalk.default.white(wh.name)} ${chalk.default.gray(`[${wh.format}]`)}`);
|
|
109
|
+
console.log(` ${chalk.default.gray("URL:")} ${url}`);
|
|
110
|
+
console.log(` ${chalk.default.gray("Route:")} ${wh.routeTo.type} → ${wh.routeTo.target}`);
|
|
111
|
+
if (wh.secret) console.log(` ${chalk.default.gray("Secret:")} ${wh.secret.slice(0, 8)}...`);
|
|
112
|
+
if (wh.template) console.log(` ${chalk.default.gray("Template:")} ${wh.template.slice(0, 50)}`);
|
|
113
|
+
console.log(` ${chalk.default.gray(`Hits: ${wh.hitCount} Last: ${wh.lastHitAt ? new Date(wh.lastHitAt).toLocaleString() : "never"}`)}`);
|
|
114
|
+
console.log();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
//#endregion
|
|
120
|
+
exports.WebhookManager = WebhookManager;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
|
+
const require_paths = require('./paths-AIyBxIzm.js');
|
|
3
|
+
const require_paths$1 = require('./paths-DPovhojT.js');
|
|
4
|
+
const chalk = require_chunk.__toESM(require("chalk"));
|
|
5
|
+
const inquirer = require_chunk.__toESM(require("inquirer"));
|
|
6
|
+
const ora = require_chunk.__toESM(require("ora"));
|
|
7
|
+
const fs_extra = require_chunk.__toESM(require("fs-extra"));
|
|
8
|
+
const path = require_chunk.__toESM(require("path"));
|
|
9
|
+
|
|
10
|
+
//#region src/commands/mcp.ts
|
|
11
|
+
require_paths$1.init_paths();
|
|
12
|
+
const getMcpFile = () => path.default.join(require_paths.getHyperClawDir(), "mcp-servers.json");
|
|
13
|
+
async function loadServers() {
|
|
14
|
+
try {
|
|
15
|
+
return await fs_extra.default.readJson(getMcpFile());
|
|
16
|
+
} catch {
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async function saveServers(servers) {
|
|
21
|
+
const mcpFile = getMcpFile();
|
|
22
|
+
await fs_extra.default.ensureDir(path.default.dirname(mcpFile));
|
|
23
|
+
await fs_extra.default.writeJson(mcpFile, servers, { spaces: 2 });
|
|
24
|
+
}
|
|
25
|
+
async function mcpList() {
|
|
26
|
+
const servers = await loadServers();
|
|
27
|
+
console.log(chalk.default.bold.cyan("\n 🔌 MCP SERVERS\n"));
|
|
28
|
+
if (servers.length === 0) {
|
|
29
|
+
console.log(chalk.default.gray(" No MCP servers registered.\n"));
|
|
30
|
+
console.log(chalk.default.gray(" Add one: hyperclaw mcp add\n"));
|
|
31
|
+
console.log(chalk.default.gray(" Or install via skill hub: hyperclaw hub --install mcp-filesystem\n"));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
for (const s of servers) {
|
|
35
|
+
const dot = s.enabled ? chalk.default.green("●") : chalk.default.gray("○");
|
|
36
|
+
console.log(` ${dot} ${chalk.default.white(s.name)} ${chalk.default.gray(`[${s.transport}]`)}`);
|
|
37
|
+
if (s.command) console.log(` ${chalk.default.gray("cmd:")} ${s.command}`);
|
|
38
|
+
if (s.url) console.log(` ${chalk.default.gray("url:")} ${chalk.default.cyan(s.url)}`);
|
|
39
|
+
if (s.tools?.length) console.log(` ${chalk.default.gray("tools:")} ${s.tools.slice(0, 5).join(", ")}${s.tools.length > 5 ? ` +${s.tools.length - 5} more` : ""}`);
|
|
40
|
+
if (s.lastProbeAt) console.log(` ${chalk.default.gray(`last probe: ${new Date(s.lastProbeAt).toLocaleString()}`)}`);
|
|
41
|
+
console.log();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async function mcpAdd() {
|
|
45
|
+
console.log(chalk.default.bold.cyan("\n ➕ ADD MCP SERVER\n"));
|
|
46
|
+
const { name } = await inquirer.default.prompt([{
|
|
47
|
+
type: "input",
|
|
48
|
+
name: "name",
|
|
49
|
+
message: "Server name:",
|
|
50
|
+
validate: (v) => !!v.trim() || "Required"
|
|
51
|
+
}]);
|
|
52
|
+
const { transport } = await inquirer.default.prompt([{
|
|
53
|
+
type: "list",
|
|
54
|
+
name: "transport",
|
|
55
|
+
message: "Transport:",
|
|
56
|
+
choices: [
|
|
57
|
+
"stdio",
|
|
58
|
+
"sse",
|
|
59
|
+
"http"
|
|
60
|
+
]
|
|
61
|
+
}]);
|
|
62
|
+
let command;
|
|
63
|
+
let url;
|
|
64
|
+
if (transport === "stdio") {
|
|
65
|
+
const res = await inquirer.default.prompt([{
|
|
66
|
+
type: "input",
|
|
67
|
+
name: "command",
|
|
68
|
+
message: "Start command (e.g. node /path/to/server.js):",
|
|
69
|
+
validate: (v) => !!v.trim() || "Required"
|
|
70
|
+
}]);
|
|
71
|
+
command = res.command;
|
|
72
|
+
} else {
|
|
73
|
+
const res = await inquirer.default.prompt([{
|
|
74
|
+
type: "input",
|
|
75
|
+
name: "url",
|
|
76
|
+
message: `URL (e.g. http://localhost:3001):`,
|
|
77
|
+
validate: (v) => v.startsWith("http") || "Must start with http"
|
|
78
|
+
}]);
|
|
79
|
+
url = res.url;
|
|
80
|
+
}
|
|
81
|
+
const server = {
|
|
82
|
+
id: name.toLowerCase().replace(/\s+/g, "-"),
|
|
83
|
+
name,
|
|
84
|
+
transport,
|
|
85
|
+
command,
|
|
86
|
+
url,
|
|
87
|
+
enabled: true,
|
|
88
|
+
addedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
89
|
+
};
|
|
90
|
+
const servers = await loadServers();
|
|
91
|
+
servers.push(server);
|
|
92
|
+
await saveServers(servers);
|
|
93
|
+
console.log(chalk.default.green(`\n ✔ MCP server added: ${name}`));
|
|
94
|
+
console.log(chalk.default.gray(" Run: hyperclaw mcp probe to test the connection\n"));
|
|
95
|
+
}
|
|
96
|
+
async function mcpRemove(id) {
|
|
97
|
+
const servers = await loadServers();
|
|
98
|
+
const idx = servers.findIndex((s) => s.id === id);
|
|
99
|
+
if (idx === -1) {
|
|
100
|
+
console.log(chalk.default.red(`\n ✖ Server not found: ${id}\n`));
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
servers.splice(idx, 1);
|
|
104
|
+
await saveServers(servers);
|
|
105
|
+
console.log(chalk.default.green(`\n ✔ MCP server removed: ${id}\n`));
|
|
106
|
+
}
|
|
107
|
+
async function mcpProbe(id) {
|
|
108
|
+
const servers = await loadServers();
|
|
109
|
+
const targets = id ? servers.filter((s) => s.id === id) : servers;
|
|
110
|
+
if (targets.length === 0) {
|
|
111
|
+
console.log(chalk.default.gray("\n No servers to probe. Add one: hyperclaw mcp add\n"));
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
console.log(chalk.default.bold.cyan("\n 🔍 PROBING MCP SERVERS\n"));
|
|
115
|
+
for (const server of targets) {
|
|
116
|
+
const spinner = (0, ora.default)(` Probing ${server.name}...`).start();
|
|
117
|
+
await new Promise((r) => setTimeout(r, 800));
|
|
118
|
+
if (server.transport === "http" || server.transport === "sse") try {
|
|
119
|
+
const axios = (await import("axios")).default;
|
|
120
|
+
const res = await axios.get(`${server.url}/tools`, { timeout: 3e3 });
|
|
121
|
+
server.tools = res.data?.tools?.map((t) => t.name) || [];
|
|
122
|
+
server.lastProbeAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
123
|
+
await saveServers(servers);
|
|
124
|
+
spinner.succeed(`${server.name} — ${server.tools?.length ?? 0} tools`);
|
|
125
|
+
if ((server.tools?.length ?? 0) > 0) console.log(chalk.default.gray(` ${server.tools?.join(", ") ?? ""}`));
|
|
126
|
+
} catch {
|
|
127
|
+
spinner.warn(`${server.name} — unreachable (${server.url})`);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
server.lastProbeAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
131
|
+
await saveServers(servers);
|
|
132
|
+
spinner.succeed(`${server.name} — stdio (probe requires running server)`);
|
|
133
|
+
}
|
|
134
|
+
console.log();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
//#endregion
|
|
139
|
+
exports.mcpAdd = mcpAdd;
|
|
140
|
+
exports.mcpList = mcpList;
|
|
141
|
+
exports.mcpProbe = mcpProbe;
|
|
142
|
+
exports.mcpRemove = mcpRemove;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
|
+
const require_paths = require('./paths-AIyBxIzm.js');
|
|
3
|
+
const require_paths$1 = require('./paths-DPovhojT.js');
|
|
4
|
+
const chalk = require_chunk.__toESM(require("chalk"));
|
|
5
|
+
const inquirer = require_chunk.__toESM(require("inquirer"));
|
|
6
|
+
const ora = require_chunk.__toESM(require("ora"));
|
|
7
|
+
const fs_extra = require_chunk.__toESM(require("fs-extra"));
|
|
8
|
+
const path = require_chunk.__toESM(require("path"));
|
|
9
|
+
|
|
10
|
+
//#region src/commands/mcp.ts
|
|
11
|
+
require_paths$1.init_paths();
|
|
12
|
+
const getMcpFile = () => path.default.join(require_paths.getHyperClawDir(), "mcp-servers.json");
|
|
13
|
+
async function loadServers() {
|
|
14
|
+
try {
|
|
15
|
+
return await fs_extra.default.readJson(getMcpFile());
|
|
16
|
+
} catch {
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async function saveServers(servers) {
|
|
21
|
+
const mcpFile = getMcpFile();
|
|
22
|
+
await fs_extra.default.ensureDir(path.default.dirname(mcpFile));
|
|
23
|
+
await fs_extra.default.writeJson(mcpFile, servers, { spaces: 2 });
|
|
24
|
+
}
|
|
25
|
+
async function mcpList() {
|
|
26
|
+
const servers = await loadServers();
|
|
27
|
+
console.log(chalk.default.bold.cyan("\n 🔌 MCP SERVERS\n"));
|
|
28
|
+
if (servers.length === 0) {
|
|
29
|
+
console.log(chalk.default.gray(" No MCP servers registered.\n"));
|
|
30
|
+
console.log(chalk.default.gray(" Add one: hyperclaw mcp add\n"));
|
|
31
|
+
console.log(chalk.default.gray(" Or install via skill hub: hyperclaw hub --install mcp-filesystem\n"));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
for (const s of servers) {
|
|
35
|
+
const dot = s.enabled ? chalk.default.green("●") : chalk.default.gray("○");
|
|
36
|
+
console.log(` ${dot} ${chalk.default.white(s.name)} ${chalk.default.gray(`[${s.transport}]`)}`);
|
|
37
|
+
if (s.command) console.log(` ${chalk.default.gray("cmd:")} ${s.command}`);
|
|
38
|
+
if (s.url) console.log(` ${chalk.default.gray("url:")} ${chalk.default.cyan(s.url)}`);
|
|
39
|
+
if (s.tools?.length) console.log(` ${chalk.default.gray("tools:")} ${s.tools.slice(0, 5).join(", ")}${s.tools.length > 5 ? ` +${s.tools.length - 5} more` : ""}`);
|
|
40
|
+
if (s.lastProbeAt) console.log(` ${chalk.default.gray(`last probe: ${new Date(s.lastProbeAt).toLocaleString()}`)}`);
|
|
41
|
+
console.log();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async function mcpAdd() {
|
|
45
|
+
console.log(chalk.default.bold.cyan("\n ➕ ADD MCP SERVER\n"));
|
|
46
|
+
const { name } = await inquirer.default.prompt([{
|
|
47
|
+
type: "input",
|
|
48
|
+
name: "name",
|
|
49
|
+
message: "Server name:",
|
|
50
|
+
validate: (v) => !!v.trim() || "Required"
|
|
51
|
+
}]);
|
|
52
|
+
const { transport } = await inquirer.default.prompt([{
|
|
53
|
+
type: "list",
|
|
54
|
+
name: "transport",
|
|
55
|
+
message: "Transport:",
|
|
56
|
+
choices: [
|
|
57
|
+
"stdio",
|
|
58
|
+
"sse",
|
|
59
|
+
"http"
|
|
60
|
+
]
|
|
61
|
+
}]);
|
|
62
|
+
let command;
|
|
63
|
+
let url;
|
|
64
|
+
if (transport === "stdio") {
|
|
65
|
+
const res = await inquirer.default.prompt([{
|
|
66
|
+
type: "input",
|
|
67
|
+
name: "command",
|
|
68
|
+
message: "Start command (e.g. node /path/to/server.js):",
|
|
69
|
+
validate: (v) => !!v.trim() || "Required"
|
|
70
|
+
}]);
|
|
71
|
+
command = res.command;
|
|
72
|
+
} else {
|
|
73
|
+
const res = await inquirer.default.prompt([{
|
|
74
|
+
type: "input",
|
|
75
|
+
name: "url",
|
|
76
|
+
message: `URL (e.g. http://localhost:3001):`,
|
|
77
|
+
validate: (v) => v.startsWith("http") || "Must start with http"
|
|
78
|
+
}]);
|
|
79
|
+
url = res.url;
|
|
80
|
+
}
|
|
81
|
+
const server = {
|
|
82
|
+
id: name.toLowerCase().replace(/\s+/g, "-"),
|
|
83
|
+
name,
|
|
84
|
+
transport,
|
|
85
|
+
command,
|
|
86
|
+
url,
|
|
87
|
+
enabled: true,
|
|
88
|
+
addedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
89
|
+
};
|
|
90
|
+
const servers = await loadServers();
|
|
91
|
+
servers.push(server);
|
|
92
|
+
await saveServers(servers);
|
|
93
|
+
console.log(chalk.default.green(`\n ✔ MCP server added: ${name}`));
|
|
94
|
+
console.log(chalk.default.gray(" Run: hyperclaw mcp probe to test the connection\n"));
|
|
95
|
+
}
|
|
96
|
+
async function mcpRemove(id) {
|
|
97
|
+
const servers = await loadServers();
|
|
98
|
+
const idx = servers.findIndex((s) => s.id === id);
|
|
99
|
+
if (idx === -1) {
|
|
100
|
+
console.log(chalk.default.red(`\n ✖ Server not found: ${id}\n`));
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
servers.splice(idx, 1);
|
|
104
|
+
await saveServers(servers);
|
|
105
|
+
console.log(chalk.default.green(`\n ✔ MCP server removed: ${id}\n`));
|
|
106
|
+
}
|
|
107
|
+
async function mcpProbe(id) {
|
|
108
|
+
const servers = await loadServers();
|
|
109
|
+
const targets = id ? servers.filter((s) => s.id === id) : servers;
|
|
110
|
+
if (targets.length === 0) {
|
|
111
|
+
console.log(chalk.default.gray("\n No servers to probe. Add one: hyperclaw mcp add\n"));
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
console.log(chalk.default.bold.cyan("\n 🔍 PROBING MCP SERVERS\n"));
|
|
115
|
+
for (const server of targets) {
|
|
116
|
+
const spinner = (0, ora.default)(` Probing ${server.name}...`).start();
|
|
117
|
+
await new Promise((r) => setTimeout(r, 800));
|
|
118
|
+
if (server.transport === "http" || server.transport === "sse") try {
|
|
119
|
+
const axios = (await import("axios")).default;
|
|
120
|
+
const res = await axios.get(`${server.url}/tools`, { timeout: 3e3 });
|
|
121
|
+
server.tools = res.data?.tools?.map((t) => t.name) || [];
|
|
122
|
+
server.lastProbeAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
123
|
+
await saveServers(servers);
|
|
124
|
+
spinner.succeed(`${server.name} — ${server.tools?.length ?? 0} tools`);
|
|
125
|
+
if ((server.tools?.length ?? 0) > 0) console.log(chalk.default.gray(` ${server.tools?.join(", ") ?? ""}`));
|
|
126
|
+
} catch {
|
|
127
|
+
spinner.warn(`${server.name} — unreachable (${server.url})`);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
server.lastProbeAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
131
|
+
await saveServers(servers);
|
|
132
|
+
spinner.succeed(`${server.name} — stdio (probe requires running server)`);
|
|
133
|
+
}
|
|
134
|
+
console.log();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
//#endregion
|
|
139
|
+
exports.mcpAdd = mcpAdd;
|
|
140
|
+
exports.mcpList = mcpList;
|
|
141
|
+
exports.mcpProbe = mcpProbe;
|
|
142
|
+
exports.mcpRemove = mcpRemove;
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
|
+
const require_paths = require('./paths-AIyBxIzm.js');
|
|
3
|
+
const require_paths$1 = require('./paths-DPovhojT.js');
|
|
4
|
+
const chalk = require_chunk.__toESM(require("chalk"));
|
|
5
|
+
const inquirer = require_chunk.__toESM(require("inquirer"));
|
|
6
|
+
const ora = require_chunk.__toESM(require("ora"));
|
|
7
|
+
const fs_extra = require_chunk.__toESM(require("fs-extra"));
|
|
8
|
+
const path = require_chunk.__toESM(require("path"));
|
|
9
|
+
|
|
10
|
+
//#region src/commands/mcp.ts
|
|
11
|
+
require_paths$1.init_paths();
|
|
12
|
+
const getMcpFile = () => path.default.join(require_paths.getHyperClawDir(), "mcp-servers.json");
|
|
13
|
+
async function loadServers() {
|
|
14
|
+
try {
|
|
15
|
+
return await fs_extra.default.readJson(getMcpFile());
|
|
16
|
+
} catch {
|
|
17
|
+
return [];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
async function saveServers(servers) {
|
|
21
|
+
const mcpFile = getMcpFile();
|
|
22
|
+
await fs_extra.default.ensureDir(path.default.dirname(mcpFile));
|
|
23
|
+
await fs_extra.default.writeJson(mcpFile, servers, { spaces: 2 });
|
|
24
|
+
}
|
|
25
|
+
async function mcpList() {
|
|
26
|
+
const servers = await loadServers();
|
|
27
|
+
console.log(chalk.default.bold.cyan("\n 🔌 MCP SERVERS\n"));
|
|
28
|
+
if (servers.length === 0) {
|
|
29
|
+
console.log(chalk.default.gray(" No MCP servers registered.\n"));
|
|
30
|
+
console.log(chalk.default.gray(" Add one: hyperclaw mcp add\n"));
|
|
31
|
+
console.log(chalk.default.gray(" Or install via skill hub: hyperclaw hub --install mcp-filesystem\n"));
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
for (const s of servers) {
|
|
35
|
+
const dot = s.enabled ? chalk.default.green("●") : chalk.default.gray("○");
|
|
36
|
+
console.log(` ${dot} ${chalk.default.white(s.name)} ${chalk.default.gray(`[${s.transport}]`)}`);
|
|
37
|
+
if (s.command) console.log(` ${chalk.default.gray("cmd:")} ${s.command}`);
|
|
38
|
+
if (s.url) console.log(` ${chalk.default.gray("url:")} ${chalk.default.cyan(s.url)}`);
|
|
39
|
+
if (s.tools?.length) console.log(` ${chalk.default.gray("tools:")} ${s.tools.slice(0, 5).join(", ")}${s.tools.length > 5 ? ` +${s.tools.length - 5} more` : ""}`);
|
|
40
|
+
if (s.lastProbeAt) console.log(` ${chalk.default.gray(`last probe: ${new Date(s.lastProbeAt).toLocaleString()}`)}`);
|
|
41
|
+
console.log();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async function mcpAdd() {
|
|
45
|
+
console.log(chalk.default.bold.cyan("\n ➕ ADD MCP SERVER\n"));
|
|
46
|
+
const { name } = await inquirer.default.prompt([{
|
|
47
|
+
type: "input",
|
|
48
|
+
name: "name",
|
|
49
|
+
message: "Server name:",
|
|
50
|
+
validate: (v) => !!v.trim() || "Required"
|
|
51
|
+
}]);
|
|
52
|
+
const { transport } = await inquirer.default.prompt([{
|
|
53
|
+
type: "list",
|
|
54
|
+
name: "transport",
|
|
55
|
+
message: "Transport:",
|
|
56
|
+
choices: [
|
|
57
|
+
"stdio",
|
|
58
|
+
"sse",
|
|
59
|
+
"http"
|
|
60
|
+
]
|
|
61
|
+
}]);
|
|
62
|
+
let command;
|
|
63
|
+
let url;
|
|
64
|
+
if (transport === "stdio") {
|
|
65
|
+
const res = await inquirer.default.prompt([{
|
|
66
|
+
type: "input",
|
|
67
|
+
name: "command",
|
|
68
|
+
message: "Start command (e.g. node /path/to/server.js):",
|
|
69
|
+
validate: (v) => !!v.trim() || "Required"
|
|
70
|
+
}]);
|
|
71
|
+
command = res.command;
|
|
72
|
+
} else {
|
|
73
|
+
const res = await inquirer.default.prompt([{
|
|
74
|
+
type: "input",
|
|
75
|
+
name: "url",
|
|
76
|
+
message: `URL (e.g. http://localhost:3001):`,
|
|
77
|
+
validate: (v) => v.startsWith("http") || "Must start with http"
|
|
78
|
+
}]);
|
|
79
|
+
url = res.url;
|
|
80
|
+
}
|
|
81
|
+
const server = {
|
|
82
|
+
id: name.toLowerCase().replace(/\s+/g, "-"),
|
|
83
|
+
name,
|
|
84
|
+
transport,
|
|
85
|
+
command,
|
|
86
|
+
url,
|
|
87
|
+
enabled: true,
|
|
88
|
+
addedAt: (/* @__PURE__ */ new Date()).toISOString()
|
|
89
|
+
};
|
|
90
|
+
const servers = await loadServers();
|
|
91
|
+
servers.push(server);
|
|
92
|
+
await saveServers(servers);
|
|
93
|
+
console.log(chalk.default.green(`\n ✔ MCP server added: ${name}`));
|
|
94
|
+
console.log(chalk.default.gray(" Run: hyperclaw mcp probe to test the connection\n"));
|
|
95
|
+
}
|
|
96
|
+
async function mcpRemove(id) {
|
|
97
|
+
const servers = await loadServers();
|
|
98
|
+
const idx = servers.findIndex((s) => s.id === id);
|
|
99
|
+
if (idx === -1) {
|
|
100
|
+
console.log(chalk.default.red(`\n ✖ Server not found: ${id}\n`));
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
servers.splice(idx, 1);
|
|
104
|
+
await saveServers(servers);
|
|
105
|
+
console.log(chalk.default.green(`\n ✔ MCP server removed: ${id}\n`));
|
|
106
|
+
}
|
|
107
|
+
async function mcpProbe(id) {
|
|
108
|
+
const servers = await loadServers();
|
|
109
|
+
const targets = id ? servers.filter((s) => s.id === id) : servers;
|
|
110
|
+
if (targets.length === 0) {
|
|
111
|
+
console.log(chalk.default.gray("\n No servers to probe. Add one: hyperclaw mcp add\n"));
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
console.log(chalk.default.bold.cyan("\n 🔍 PROBING MCP SERVERS\n"));
|
|
115
|
+
for (const server of targets) {
|
|
116
|
+
const spinner = (0, ora.default)(` Probing ${server.name}...`).start();
|
|
117
|
+
await new Promise((r) => setTimeout(r, 800));
|
|
118
|
+
if (server.transport === "http" || server.transport === "sse") try {
|
|
119
|
+
const axios = (await import("axios")).default;
|
|
120
|
+
const res = await axios.get(`${server.url}/tools`, { timeout: 3e3 });
|
|
121
|
+
server.tools = res.data?.tools?.map((t) => t.name) || [];
|
|
122
|
+
server.lastProbeAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
123
|
+
await saveServers(servers);
|
|
124
|
+
spinner.succeed(`${server.name} — ${server.tools?.length ?? 0} tools`);
|
|
125
|
+
if ((server.tools?.length ?? 0) > 0) console.log(chalk.default.gray(` ${server.tools?.join(", ") ?? ""}`));
|
|
126
|
+
} catch {
|
|
127
|
+
spinner.warn(`${server.name} — unreachable (${server.url})`);
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
server.lastProbeAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
131
|
+
await saveServers(servers);
|
|
132
|
+
spinner.succeed(`${server.name} — stdio (probe requires running server)`);
|
|
133
|
+
}
|
|
134
|
+
console.log();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
//#endregion
|
|
139
|
+
exports.mcpAdd = mcpAdd;
|
|
140
|
+
exports.mcpList = mcpList;
|
|
141
|
+
exports.mcpProbe = mcpProbe;
|
|
142
|
+
exports.mcpRemove = mcpRemove;
|