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
package/dist/run-main.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
2
|
const require_paths = require('./paths-AIyBxIzm.js');
|
|
3
3
|
const require_paths$1 = require('./paths-DPovhojT.js');
|
|
4
|
-
require('./env-resolve-
|
|
5
|
-
const require_config = require('./config-
|
|
6
|
-
require('./server-
|
|
7
|
-
const require_daemon = require('./daemon-
|
|
4
|
+
require('./env-resolve-C0R8R7pb.js');
|
|
5
|
+
const require_config = require('./config-BzK_Xl4Y.js');
|
|
6
|
+
require('./server-DVxVLu_G.js');
|
|
7
|
+
const require_daemon = require('./daemon-BldYSrDj.js');
|
|
8
8
|
const require_gateway = require('./gateway-CzI8dnlS.js');
|
|
9
|
-
require('./providers-
|
|
10
|
-
const require_onboard = require('./onboard-
|
|
9
|
+
require('./providers-Cs1h_TJA.js');
|
|
10
|
+
const require_onboard = require('./onboard-W5DsxVf2.js');
|
|
11
11
|
require('./theme-CLXvI6Hr.js');
|
|
12
|
-
const require_banner = require('./banner-
|
|
13
|
-
const require_hub = require('./hub-
|
|
12
|
+
const require_banner = require('./banner-DYzQ8cCb.js');
|
|
13
|
+
const require_hub = require('./hub-DAkEVTEy.js');
|
|
14
14
|
const require_update_check = require('./update-check-DlUFL81n.js');
|
|
15
|
-
const require_manager = require('./manager-
|
|
16
|
-
const require_memory = require('./memory-
|
|
17
|
-
const require_loader = require('./loader-
|
|
18
|
-
const require_agents_routing = require('./agents-routing-
|
|
15
|
+
const require_manager = require('./manager-Dz2eKYqo.js');
|
|
16
|
+
const require_memory = require('./memory-DPSWQBc0.js');
|
|
17
|
+
const require_loader = require('./loader-DMMb9emn.js');
|
|
18
|
+
const require_agents_routing = require('./agents-routing-B0D0vcp5.js');
|
|
19
19
|
const require_pairing = require('./pairing-B4NoBvyE.js');
|
|
20
20
|
const require_doctor = require('./doctor-C6nAGdH8.js');
|
|
21
21
|
const require_health = require('./health-BMUmUNoe.js');
|
|
@@ -346,6 +346,7 @@ var GatewayManager$1 = class {
|
|
|
346
346
|
return crypto.default.randomBytes(32).toString("hex");
|
|
347
347
|
}
|
|
348
348
|
async isRunning(port) {
|
|
349
|
+
if (typeof port !== "number" || port < 1 || port > 65535) return false;
|
|
349
350
|
return new Promise((resolve) => {
|
|
350
351
|
const socket = new net.default.Socket();
|
|
351
352
|
socket.setTimeout(500);
|
|
@@ -674,17 +675,26 @@ const CHANNELS = [
|
|
|
674
675
|
platforms: ["all"],
|
|
675
676
|
tokenLabel: "Telegram Bot Token",
|
|
676
677
|
tokenHint: "Get from @BotFather → /newbot",
|
|
677
|
-
extraFields: [
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
678
|
+
extraFields: [
|
|
679
|
+
{
|
|
680
|
+
name: "dmPolicy",
|
|
681
|
+
label: "DM policy",
|
|
682
|
+
hint: "pairing (default) | allowlist | open | disabled",
|
|
683
|
+
required: false
|
|
684
|
+
},
|
|
685
|
+
{
|
|
686
|
+
name: "groupActivation",
|
|
687
|
+
label: "Group activation",
|
|
688
|
+
hint: "mention (default) | always",
|
|
689
|
+
required: false
|
|
690
|
+
},
|
|
691
|
+
{
|
|
692
|
+
name: "inlineMode",
|
|
693
|
+
label: "Inline mode",
|
|
694
|
+
hint: "Use @botname <query> in any chat. Enable via BotFather /setinline first.",
|
|
695
|
+
required: false
|
|
696
|
+
}
|
|
697
|
+
],
|
|
688
698
|
setupSteps: [
|
|
689
699
|
"1. Open Telegram → @BotFather → /newbot. Save the token.",
|
|
690
700
|
"2. Config: channels.telegram.botToken, dmPolicy (default: pairing), groups.",
|
|
@@ -734,6 +744,12 @@ const CHANNELS = [
|
|
|
734
744
|
label: "DM policy",
|
|
735
745
|
hint: "\"pairing\" (default) | \"allowlist\" | \"open\" | \"none\"",
|
|
736
746
|
required: false
|
|
747
|
+
},
|
|
748
|
+
{
|
|
749
|
+
name: "autoArchiveDuration",
|
|
750
|
+
label: "Thread auto-archive duration (min)",
|
|
751
|
+
hint: "60=1h (default) | 1440=1d | 4320=3d | 10080=1w",
|
|
752
|
+
required: false
|
|
737
753
|
}
|
|
738
754
|
],
|
|
739
755
|
status: "recommended",
|
|
@@ -1957,6 +1973,66 @@ const ZALO_PERSONAL = {
|
|
|
1957
1973
|
notes: "Zalo Web cookie auth. DMs only. No groups. Text chunked ~2000 chars."
|
|
1958
1974
|
};
|
|
1959
1975
|
CHANNELS.push(ZALO_PERSONAL);
|
|
1976
|
+
const NOTION = {
|
|
1977
|
+
id: "notion",
|
|
1978
|
+
name: "Notion",
|
|
1979
|
+
emoji: "📋",
|
|
1980
|
+
requiresGateway: false,
|
|
1981
|
+
supportsDM: false,
|
|
1982
|
+
platforms: ["all"],
|
|
1983
|
+
tokenLabel: "Notion Integration Token",
|
|
1984
|
+
tokenHint: "notion.so/my-integrations → New integration → Copy token",
|
|
1985
|
+
extraFields: [{
|
|
1986
|
+
name: "defaultDatabaseId",
|
|
1987
|
+
label: "Default Database ID",
|
|
1988
|
+
hint: "Paste the 32-char ID from your Notion DB URL",
|
|
1989
|
+
required: false
|
|
1990
|
+
}, {
|
|
1991
|
+
name: "defaultPageId",
|
|
1992
|
+
label: "Default Page ID",
|
|
1993
|
+
hint: "Optional: page to write notes to by default",
|
|
1994
|
+
required: false
|
|
1995
|
+
}],
|
|
1996
|
+
setupSteps: [
|
|
1997
|
+
"1. Go to notion.so/my-integrations → New integration → give it a name.",
|
|
1998
|
+
"2. Copy the Internal Integration Token (starts with secret_...).",
|
|
1999
|
+
"3. Open the Notion page/database you want to use → Share → Invite your integration.",
|
|
2000
|
+
"4. Set NOTION_TOKEN in your env or config: channels.notion.token.",
|
|
2001
|
+
"5. Optional: set defaultDatabaseId to auto-create pages in a DB.",
|
|
2002
|
+
"",
|
|
2003
|
+
" 🔗 docs/notion.md — full setup"
|
|
2004
|
+
],
|
|
2005
|
+
status: "available",
|
|
2006
|
+
notes: "Read/write pages, create DB entries, search workspace. Needs explicit page share."
|
|
2007
|
+
};
|
|
2008
|
+
CHANNELS.push(NOTION);
|
|
2009
|
+
const SHAZAM = {
|
|
2010
|
+
id: "shazam",
|
|
2011
|
+
name: "Shazam (Song Recognition)",
|
|
2012
|
+
emoji: "🎵",
|
|
2013
|
+
requiresGateway: false,
|
|
2014
|
+
supportsDM: false,
|
|
2015
|
+
platforms: ["all"],
|
|
2016
|
+
tokenLabel: "RapidAPI Key (Shazam API)",
|
|
2017
|
+
tokenHint: "rapidapi.com/apidojo/api/shazam → Subscribe → Copy X-RapidAPI-Key",
|
|
2018
|
+
extraFields: [{
|
|
2019
|
+
name: "autoRecognize",
|
|
2020
|
+
label: "Auto-recognize on audio messages",
|
|
2021
|
+
hint: "true | false (default)",
|
|
2022
|
+
required: false
|
|
2023
|
+
}],
|
|
2024
|
+
setupSteps: [
|
|
2025
|
+
"1. Sign up at rapidapi.com → search \"Shazam\" → subscribe to the free plan.",
|
|
2026
|
+
"2. Copy your X-RapidAPI-Key from the API dashboard.",
|
|
2027
|
+
"3. Set SHAZAM_API_KEY in your env or config: channels.shazam.apiKey.",
|
|
2028
|
+
"4. Send an audio clip or hum detection query to identify a song.",
|
|
2029
|
+
"",
|
|
2030
|
+
" 🔗 docs/shazam.md — full setup"
|
|
2031
|
+
],
|
|
2032
|
+
status: "available",
|
|
2033
|
+
notes: "Song recognition via Shazam API on RapidAPI. Free tier: 500 req/month."
|
|
2034
|
+
};
|
|
2035
|
+
CHANNELS.push(SHAZAM);
|
|
1960
2036
|
|
|
1961
2037
|
//#endregion
|
|
1962
2038
|
//#region src/commands/channels/add.ts
|
|
@@ -2527,6 +2603,22 @@ var init_queue = require_chunk.__esm({ "src/delivery/queue.ts"() {
|
|
|
2527
2603
|
//#endregion
|
|
2528
2604
|
//#region src/cli/run-main.ts
|
|
2529
2605
|
require_device_auth_store.init_device_auth_store();
|
|
2606
|
+
function getGitShortHash() {
|
|
2607
|
+
try {
|
|
2608
|
+
const { execSync } = require("child_process");
|
|
2609
|
+
return execSync("git rev-parse --short HEAD", { stdio: [
|
|
2610
|
+
"ignore",
|
|
2611
|
+
"pipe",
|
|
2612
|
+
"ignore"
|
|
2613
|
+
] }).toString().trim();
|
|
2614
|
+
} catch {
|
|
2615
|
+
return "";
|
|
2616
|
+
}
|
|
2617
|
+
}
|
|
2618
|
+
const cliVersion = (() => {
|
|
2619
|
+
const h = getGitShortHash();
|
|
2620
|
+
return h ? `5.4.2+${h}` : "5.4.2";
|
|
2621
|
+
})();
|
|
2530
2622
|
process.on("unhandledRejection", (reason) => {
|
|
2531
2623
|
console.error("[hyperclaw] Unhandled rejection:", reason);
|
|
2532
2624
|
process.exit(1);
|
|
@@ -2539,34 +2631,41 @@ function sanitizeForLog(value) {
|
|
|
2539
2631
|
return String(value ?? "").replace(/[\r\n\t]+/g, " ").replace(/[^\x20-\x7e]+/g, "?").slice(0, 200);
|
|
2540
2632
|
}
|
|
2541
2633
|
const program = new commander.Command();
|
|
2542
|
-
program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version(
|
|
2543
|
-
Full
|
|
2634
|
+
program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version(cliVersion).option("--profile <name>", "Use an isolated gateway profile. Auto-scopes HYPERCLAW_STATE_DIR and HYPERCLAW_CONFIG_PATH. Required for multi-gateway setups (rescue bot, staging, etc.). Example: hyperclaw --profile rescue gateway --port 19001").addHelpText("after", `
|
|
2635
|
+
Full reference: READMECOMMAND.md (all commands + options)
|
|
2544
2636
|
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2565
|
-
|
|
2566
|
-
|
|
2637
|
+
Command groups:
|
|
2638
|
+
init, onboard, quickstart, setup
|
|
2639
|
+
gateway status|start|stop|restart|config, daemon start|stop|restart|status|logs|install|uninstall
|
|
2640
|
+
web (--port, --skip-install), chat (--session, --model, --workspace)
|
|
2641
|
+
agent -m "message" (--thinking, --model, --multi-step, --parallel)
|
|
2642
|
+
channels list|add|remove|login|status
|
|
2643
|
+
hooks list|info|enable|disable|install
|
|
2644
|
+
pairing list|approve, devices list|pair|approve|reject|unpair
|
|
2645
|
+
hub, hub search [query], hub install <id>, hub list, hub scan <id>, hub marketplace
|
|
2646
|
+
skill search|list|install (alias for hub)
|
|
2647
|
+
memory show|add-rule|add-fact|add-image|add-audio|search|search-vector|auto-show|clear|save
|
|
2648
|
+
rag add <path>
|
|
2649
|
+
backup create|verify <dir>|restore <dir>
|
|
2650
|
+
config show|set-key|set-service-key|schema
|
|
2651
|
+
secrets audit|set|apply|reload|remove|credentials
|
|
2652
|
+
doctor [--fix], health, security audit
|
|
2653
|
+
status (--all, --deep), dashboard
|
|
2654
|
+
acp, threads create (--resume <id>)|list|terminate, canvas show|add|clear|export
|
|
2655
|
+
mcp list|add|remove|probe [id], node list|add|probe [id]|remove|queue [nodeId]
|
|
2656
|
+
nodes, delivery status|retry
|
|
2657
|
+
cron list|add|remove (-s --skill), webhooks list|remove|toggle
|
|
2658
|
+
gmail watch-setup, auto-reply list|toggle|remove
|
|
2659
|
+
voice-call, voice, theme list|set|preview
|
|
2660
|
+
workspace init|show, pc status|enable|disable|log|run
|
|
2661
|
+
bot status|setup|start|stop
|
|
2662
|
+
auth add|remove|oauth|setup-token|oauth-set
|
|
2663
|
+
developer-key create|list|revoke
|
|
2664
|
+
agents bindings|bind|unbind, sandbox explain
|
|
2665
|
+
message send, deploy, update, osint [workflow], logs (--follow)
|
|
2567
2666
|
|
|
2568
|
-
Examples: hyperclaw onboard | hyperclaw chat | hyperclaw
|
|
2569
|
-
|
|
2667
|
+
Examples: hyperclaw onboard | hyperclaw chat | hyperclaw hub search
|
|
2668
|
+
Full list: READMECOMMAND.md`).hook("preAction", (thisCommand) => {
|
|
2570
2669
|
const profile = thisCommand.opts().profile;
|
|
2571
2670
|
if (profile) {
|
|
2572
2671
|
const os$2 = require("os");
|
|
@@ -2710,8 +2809,8 @@ sandboxCmd.command("explain").description("Show effective sandbox mode, tool pol
|
|
|
2710
2809
|
}
|
|
2711
2810
|
const sandboxMode = cfg?.agents?.defaults?.sandbox?.mode ?? "non-main";
|
|
2712
2811
|
const toolsCfg = cfg?.tools ?? {};
|
|
2713
|
-
const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-
|
|
2714
|
-
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-
|
|
2812
|
+
const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-CfWEnRxy.js"));
|
|
2813
|
+
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
2715
2814
|
const allTools = [
|
|
2716
2815
|
...getBuiltinTools(),
|
|
2717
2816
|
...getSessionsTools(() => null),
|
|
@@ -2875,15 +2974,70 @@ msgCmd.command("send").description("Send a message via a configured channel").op
|
|
|
2875
2974
|
await sendMessage(opts);
|
|
2876
2975
|
process.exit(0);
|
|
2877
2976
|
});
|
|
2878
|
-
program.command("hub").description("Skill
|
|
2977
|
+
const hubCmd = program.command("hub").description("Skill marketplace — browse, search, install community skills");
|
|
2978
|
+
hubCmd.command("search [query]").description("Search skills (ClawHub + bundled registry)").option("-c, --category <cat>", "Filter by category").action(async (query, opts) => {
|
|
2979
|
+
const hub = new require_hub.SkillHub();
|
|
2980
|
+
const q = query || "";
|
|
2981
|
+
const skills = await hub.searchClawHub(q, opts.category);
|
|
2982
|
+
if (skills.length === 0) {
|
|
2983
|
+
console.log(chalk.default.gray(q ? `No skills found for "${q}"` : "Browse: hyperclaw hub"));
|
|
2984
|
+
process.exit(0);
|
|
2985
|
+
return;
|
|
2986
|
+
}
|
|
2987
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n Skill marketplace — search results:\n"));
|
|
2988
|
+
for (const s of skills) {
|
|
2989
|
+
const stars = "★".repeat(Math.round(s.rating || 0)) + "☆".repeat(5 - Math.round(s.rating || 0));
|
|
2990
|
+
console.log(` ${chalk.default.bold(s.name || s.id)} ${chalk.default.gray(s.author || "")} ${chalk.default.hex("#06b6d4")(stars)} ${chalk.default.gray((s.downloads || 0).toLocaleString())} dl`);
|
|
2991
|
+
console.log(` ${chalk.default.gray(s.description || "")}`);
|
|
2992
|
+
console.log(` ${chalk.default.hex("#06b6d4")("hyperclaw hub install " + (s.id || s.name))}\n`);
|
|
2993
|
+
}
|
|
2994
|
+
process.exit(0);
|
|
2995
|
+
});
|
|
2996
|
+
hubCmd.command("install <id>").description("Install skill from registry (or bundled)").option("-v, --version <ver>", "Pin version").option("--force", "Force install (bypass risk block)").action(async (id, opts) => {
|
|
2997
|
+
const hub = new require_hub.SkillHub();
|
|
2998
|
+
const ora$4 = (await import("ora")).default;
|
|
2999
|
+
const s = ora$4(`Installing ${id}...`).start();
|
|
3000
|
+
try {
|
|
3001
|
+
const dest = await hub.installFromClawHub(id, opts.version);
|
|
3002
|
+
s.succeed(`Installed to ${dest}`);
|
|
3003
|
+
} catch (e) {
|
|
3004
|
+
const match = require_hub.SKILL_REGISTRY.find((x) => x.id === id);
|
|
3005
|
+
if (match) {
|
|
3006
|
+
await hub.install(id, !!opts?.force);
|
|
3007
|
+
s.succeed(`Installed bundled skill: ${match.name}`);
|
|
3008
|
+
} else s.fail(e.message);
|
|
3009
|
+
}
|
|
3010
|
+
process.exit(0);
|
|
3011
|
+
});
|
|
3012
|
+
hubCmd.command("list").description("List installed skills").action(async () => {
|
|
3013
|
+
const hub = new require_hub.SkillHub();
|
|
3014
|
+
const installed = await hub.getInstalled();
|
|
3015
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n Installed skills:\n"));
|
|
3016
|
+
for (const s of installed) {
|
|
3017
|
+
const src = require_hub.SKILL_REGISTRY.some((r) => r.id === s.id) ? "" : " (registry)";
|
|
3018
|
+
console.log(` ${chalk.default.hex("#06b6d4")("✓")} ${s.name} ${chalk.default.gray(`(${s.id})${src}`)}`);
|
|
3019
|
+
}
|
|
3020
|
+
if (installed.length === 0) console.log(chalk.default.gray(" No skills installed. Run: hyperclaw hub search <query> or hyperclaw hub\n"));
|
|
3021
|
+
else console.log();
|
|
3022
|
+
process.exit(0);
|
|
3023
|
+
});
|
|
3024
|
+
hubCmd.command("scan <id>").description("Security scan a skill").action(async (id) => {
|
|
2879
3025
|
const hub = new require_hub.SkillHub();
|
|
2880
|
-
|
|
2881
|
-
else if (opts.install) await hub.install(opts.install, opts.force);
|
|
2882
|
-
else if (opts.marketplace) await hub.showMarketplace({ hideSuspicious: opts.hideSuspicious });
|
|
2883
|
-
else await hub.showHub(opts.hideSuspicious);
|
|
3026
|
+
await hub.scan(id);
|
|
2884
3027
|
process.exit(0);
|
|
2885
3028
|
});
|
|
2886
|
-
|
|
3029
|
+
hubCmd.command("marketplace").description("Browse marketplace (installed + bundled)").option("--hide-suspicious", "Hide suspicious/dangerous").action(async (opts) => {
|
|
3030
|
+
const hub = new require_hub.SkillHub();
|
|
3031
|
+
await hub.showMarketplace({ hideSuspicious: opts.hideSuspicious });
|
|
3032
|
+
process.exit(0);
|
|
3033
|
+
});
|
|
3034
|
+
hubCmd.option("--hide-suspicious", "Hide suspicious skills");
|
|
3035
|
+
hubCmd.action(async (opts) => {
|
|
3036
|
+
const hub = new require_hub.SkillHub();
|
|
3037
|
+
await hub.showHub(opts?.hideSuspicious);
|
|
3038
|
+
process.exit(0);
|
|
3039
|
+
});
|
|
3040
|
+
const skillCmd = program.command("skill").description("Skills — alias for hyperclaw hub (search, install, list)");
|
|
2887
3041
|
skillCmd.command("search [query]").description("Search ClawHub for skills").option("-c, --category <cat>", "Filter by category").action(async (query, opts) => {
|
|
2888
3042
|
const hub = new require_hub.SkillHub();
|
|
2889
3043
|
const q = query || "";
|
|
@@ -3194,8 +3348,153 @@ memCmd.command("add-rule <rule>").description("Append a global rule to AGENTS.md
|
|
|
3194
3348
|
await new require_memory.MemoryManager().appendRule(rule);
|
|
3195
3349
|
process.exit(0);
|
|
3196
3350
|
});
|
|
3197
|
-
memCmd.command("add-
|
|
3198
|
-
|
|
3351
|
+
memCmd.command("add-image <path>").description("Add image to multimodal vector memory (requires memory-lancedb + embeddingProvider: gemini + GOOGLE_AI_API_KEY)").option("-c, --caption <text>", "Caption for the image").action(async (imagePath, opts) => {
|
|
3352
|
+
try {
|
|
3353
|
+
const pkg = "@hyperclaw/memory-lancedb";
|
|
3354
|
+
const mod = await (async () => {
|
|
3355
|
+
try {
|
|
3356
|
+
return await import(pkg);
|
|
3357
|
+
} catch {
|
|
3358
|
+
return null;
|
|
3359
|
+
}
|
|
3360
|
+
})();
|
|
3361
|
+
if (!mod?.VectorMemoryService) throw new Error("Install: npm install @hyperclaw/memory-lancedb vectordb");
|
|
3362
|
+
const cfg = await new require_manager.ConfigManager().load();
|
|
3363
|
+
const apiKey = process.env.GOOGLE_AI_API_KEY ?? (cfg?.provider?.providerId === "google" ? cfg?.provider?.apiKey : void 0);
|
|
3364
|
+
if (!apiKey) throw new Error("GOOGLE_AI_API_KEY required for image indexing");
|
|
3365
|
+
const path$5 = await import("path");
|
|
3366
|
+
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3367
|
+
const svc = new mod.VectorMemoryService({
|
|
3368
|
+
dbPath: path$5.join(getHyperClawDir$1(), "memory-lancedb"),
|
|
3369
|
+
apiKey,
|
|
3370
|
+
embeddingProvider: "gemini"
|
|
3371
|
+
});
|
|
3372
|
+
await svc.addImage(imagePath, opts.caption);
|
|
3373
|
+
console.log(chalk.default.green(`\n ✓ Image indexed: ${imagePath}\n`));
|
|
3374
|
+
} catch (e) {
|
|
3375
|
+
console.log(chalk.default.yellow(`\n ${e.message}\n`));
|
|
3376
|
+
process.exit(1);
|
|
3377
|
+
}
|
|
3378
|
+
process.exit(0);
|
|
3379
|
+
});
|
|
3380
|
+
memCmd.command("add-audio <path>").description("Add audio to multimodal vector memory (requires memory-lancedb + embeddingProvider: gemini + GOOGLE_AI_API_KEY)").option("-t, --transcript <text>", "Transcript for the audio").action(async (audioPath, opts) => {
|
|
3381
|
+
try {
|
|
3382
|
+
const pkg = "@hyperclaw/memory-lancedb";
|
|
3383
|
+
const mod = await (async () => {
|
|
3384
|
+
try {
|
|
3385
|
+
return await import(pkg);
|
|
3386
|
+
} catch {
|
|
3387
|
+
return null;
|
|
3388
|
+
}
|
|
3389
|
+
})();
|
|
3390
|
+
if (!mod?.VectorMemoryService) throw new Error("Install: npm install @hyperclaw/memory-lancedb vectordb");
|
|
3391
|
+
const cfg = await new require_manager.ConfigManager().load();
|
|
3392
|
+
const apiKey = process.env.GOOGLE_AI_API_KEY ?? (cfg?.provider?.providerId === "google" ? cfg?.provider?.apiKey : void 0);
|
|
3393
|
+
if (!apiKey) throw new Error("GOOGLE_AI_API_KEY required for audio indexing");
|
|
3394
|
+
const path$5 = await import("path");
|
|
3395
|
+
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3396
|
+
const svc = new mod.VectorMemoryService({
|
|
3397
|
+
dbPath: path$5.join(getHyperClawDir$1(), "memory-lancedb"),
|
|
3398
|
+
apiKey,
|
|
3399
|
+
embeddingProvider: "gemini"
|
|
3400
|
+
});
|
|
3401
|
+
await svc.addAudio(audioPath, opts.transcript);
|
|
3402
|
+
console.log(chalk.default.green(`\n ✓ Audio indexed: ${audioPath}\n`));
|
|
3403
|
+
} catch (e) {
|
|
3404
|
+
console.log(chalk.default.yellow(`\n ${e.message}\n`));
|
|
3405
|
+
process.exit(1);
|
|
3406
|
+
}
|
|
3407
|
+
process.exit(0);
|
|
3408
|
+
});
|
|
3409
|
+
const ragCmd = program.command("rag").description("RAG document ingestion — chunk and index into vector memory");
|
|
3410
|
+
ragCmd.command("add <path>").description("Chunk file and add to vector DB (requires memory-lancedb + OPENAI_API_KEY)").option("-s, --chunk-size <n>", "Chunk size", "1000").option("-o, --overlap <n>", "Chunk overlap", "200").action(async (filePath, opts) => {
|
|
3411
|
+
try {
|
|
3412
|
+
const fs$7 = await import("fs-extra");
|
|
3413
|
+
const pathMod = await import("path");
|
|
3414
|
+
const { chunkText } = await Promise.resolve().then(() => require("./src-BOnuFlI4.js"));
|
|
3415
|
+
const pkg = "@hyperclaw/memory-lancedb";
|
|
3416
|
+
const mod = await import(pkg).catch(() => null);
|
|
3417
|
+
if (!mod?.VectorMemoryService) throw new Error("Install: npm install @hyperclaw/rag @hyperclaw/memory-lancedb vectordb openai");
|
|
3418
|
+
const cfg = await new require_manager.ConfigManager().load();
|
|
3419
|
+
const absPath = pathMod.resolve(filePath);
|
|
3420
|
+
if (!await fs$7.pathExists(absPath)) throw new Error(`File not found: ${absPath}`);
|
|
3421
|
+
const content = await fs$7.readFile(absPath, "utf8");
|
|
3422
|
+
const size = parseInt(opts.chunkSize, 10) || 1e3;
|
|
3423
|
+
const overlap = parseInt(opts.overlap, 10) || 200;
|
|
3424
|
+
const chunks = chunkText(content, {
|
|
3425
|
+
size,
|
|
3426
|
+
overlap
|
|
3427
|
+
});
|
|
3428
|
+
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3429
|
+
const svc = new mod.VectorMemoryService({
|
|
3430
|
+
dbPath: pathMod.join(getHyperClawDir$1(), "memory-lancedb"),
|
|
3431
|
+
apiKey: cfg?.provider?.apiKey ?? process.env.OPENAI_API_KEY
|
|
3432
|
+
});
|
|
3433
|
+
await svc.init();
|
|
3434
|
+
for (let i = 0; i < chunks.length; i++) await svc.addMemory(chunks[i], "rag", `file:${absPath}:chunk:${i}`);
|
|
3435
|
+
console.log(chalk.default.green(`\n ✓ Indexed ${chunks.length} chunks from ${pathMod.basename(absPath)}\n`));
|
|
3436
|
+
} catch (e) {
|
|
3437
|
+
console.log(chalk.default.yellow(`\n ${e.message}\n`));
|
|
3438
|
+
process.exit(1);
|
|
3439
|
+
}
|
|
3440
|
+
process.exit(0);
|
|
3441
|
+
});
|
|
3442
|
+
memCmd.command("add-fact <fact>").description("Add a fact to MEMORY.md (and vector DB when memory-lancedb is available)").action(async (fact) => {
|
|
3443
|
+
let vectorStore;
|
|
3444
|
+
try {
|
|
3445
|
+
const pkg = "@hyperclaw/memory-lancedb";
|
|
3446
|
+
const mod = await (async () => {
|
|
3447
|
+
try {
|
|
3448
|
+
return await import(pkg);
|
|
3449
|
+
} catch {
|
|
3450
|
+
return null;
|
|
3451
|
+
}
|
|
3452
|
+
})();
|
|
3453
|
+
const VectorMemoryService = mod?.VectorMemoryService;
|
|
3454
|
+
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3455
|
+
const path$5 = await import("path");
|
|
3456
|
+
if (!VectorMemoryService) throw new Error("not available");
|
|
3457
|
+
const svc = new VectorMemoryService({
|
|
3458
|
+
dbPath: path$5.join(getHyperClawDir$1(), "memory-lancedb"),
|
|
3459
|
+
apiKey: (await new require_manager.ConfigManager().load())?.provider?.apiKey
|
|
3460
|
+
});
|
|
3461
|
+
await svc.init();
|
|
3462
|
+
vectorStore = { addMemory: (t) => svc.addMemory(t) };
|
|
3463
|
+
} catch {}
|
|
3464
|
+
await new require_memory.MemoryManager().addMemory(fact, vectorStore);
|
|
3465
|
+
process.exit(0);
|
|
3466
|
+
});
|
|
3467
|
+
const backupCmd = program.command("backup").description("Backup and restore local HyperClaw state");
|
|
3468
|
+
backupCmd.command("create").description("Create a timestamped backup of hyperclaw.json, AGENTS.md, MEMORY.md, etc.").option("-o, --output <dir>", "Output directory (default: ~/.hyperclaw/backups)").action(async (opts) => {
|
|
3469
|
+
const { createBackup } = await Promise.resolve().then(() => require("./backup-CtHJEqGr.js"));
|
|
3470
|
+
const dir = await createBackup(opts.output);
|
|
3471
|
+
console.log(chalk.default.green(`\n ✓ Backup created: ${dir}\n`));
|
|
3472
|
+
process.exit(0);
|
|
3473
|
+
});
|
|
3474
|
+
backupCmd.command("verify <dir>").description("Verify backup integrity (checksums)").action(async (dir) => {
|
|
3475
|
+
const { verifyBackup } = await Promise.resolve().then(() => require("./backup-CtHJEqGr.js"));
|
|
3476
|
+
const { ok, errors } = await verifyBackup(dir);
|
|
3477
|
+
if (ok) console.log(chalk.default.green("\n ✓ Backup OK\n"));
|
|
3478
|
+
else console.log(chalk.default.red("\n ✗ Errors:\n"), errors.map((e) => " " + e).join("\n"), "\n");
|
|
3479
|
+
process.exit(ok ? 0 : 1);
|
|
3480
|
+
});
|
|
3481
|
+
backupCmd.command("restore <dir>").description("Restore from backup (overwrites local files)").option("-y, --yes", "Skip confirmation").action(async (dir, opts) => {
|
|
3482
|
+
const { restoreBackup } = await Promise.resolve().then(() => require("./backup-CtHJEqGr.js"));
|
|
3483
|
+
if (!opts.yes) {
|
|
3484
|
+
console.log(chalk.default.yellow(`\n This will overwrite files in ~/.hyperclaw. Confirm? (y/N) `));
|
|
3485
|
+
const readline$1 = (await import("readline")).createInterface({
|
|
3486
|
+
input: process.stdin,
|
|
3487
|
+
output: process.stdout
|
|
3488
|
+
});
|
|
3489
|
+
const line = await new Promise((r) => readline$1.question("", r));
|
|
3490
|
+
readline$1.close();
|
|
3491
|
+
if (line?.toLowerCase() !== "y") {
|
|
3492
|
+
console.log(chalk.default.gray("\n Aborted.\n"));
|
|
3493
|
+
process.exit(0);
|
|
3494
|
+
}
|
|
3495
|
+
}
|
|
3496
|
+
await restoreBackup(dir);
|
|
3497
|
+
console.log(chalk.default.green("\n ✓ Restored.\n"));
|
|
3199
3498
|
process.exit(0);
|
|
3200
3499
|
});
|
|
3201
3500
|
const cfgCmd = program.command("config").description("Configuration management");
|
|
@@ -3253,7 +3552,7 @@ cfgCmd.command("set-key <KEY=value>").description("Set provider API key or confi
|
|
|
3253
3552
|
xai: "xai"
|
|
3254
3553
|
};
|
|
3255
3554
|
const pid = keyToProvider[key] ?? keyToProvider[key.toLowerCase()] ?? cfg?.provider?.providerId ?? key.toLowerCase();
|
|
3256
|
-
const { validateApiKeyFormat } = await Promise.resolve().then(() => require("./api-key-validation-
|
|
3555
|
+
const { validateApiKeyFormat } = await Promise.resolve().then(() => require("./api-key-validation-DrMrLEa0.js"));
|
|
3257
3556
|
const formatErr = validateApiKeyFormat(pid, value);
|
|
3258
3557
|
if (formatErr) {
|
|
3259
3558
|
console.log(chalk.default.yellow(`\n ⚠ ${formatErr}\n`));
|
|
@@ -3315,7 +3614,7 @@ cfgCmd.command("set-service-key <serviceId> [apiKey]").description("Set API key
|
|
|
3315
3614
|
cfgCmd.command("schema").description("Show configuration schema").action(() => {
|
|
3316
3615
|
console.log(chalk.default.bold.hex("#06b6d4")("\n Config schema: ~/.hyperclaw/hyperclaw.json\n"));
|
|
3317
3616
|
const schema = {
|
|
3318
|
-
version: "string (e.g. \"5.4.
|
|
3617
|
+
version: "string (e.g. \"5.4.1\")",
|
|
3319
3618
|
workspaceName: "string",
|
|
3320
3619
|
provider: {
|
|
3321
3620
|
providerId: "string",
|
|
@@ -3370,11 +3669,11 @@ devKeyCmd.command("revoke <id>").description("Revoke a developer key").action(as
|
|
|
3370
3669
|
else console.log(chalk.default.red(` Key not found: ${id}\n`));
|
|
3371
3670
|
process.exit(ok ? 0 : 1);
|
|
3372
3671
|
});
|
|
3373
|
-
program.command("deploy").description("
|
|
3672
|
+
program.command("deploy").description("One-click deploy to cloud (Fly.io, Render, Railway)").option("-p, --platform <platform>", "Platform: fly | render | railway", "fly").option("--dry-run", "Show commands without running").action(async (opts) => {
|
|
3374
3673
|
const platform = (opts.platform ?? "fly").toLowerCase();
|
|
3375
3674
|
const dryRun = !!opts.dryRun;
|
|
3376
3675
|
if (platform === "fly") {
|
|
3377
|
-
console.log(chalk.default.bold.hex("#06b6d4")("\n Deploy to Fly.io\n"));
|
|
3676
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n 🚀 Deploy to Fly.io\n"));
|
|
3378
3677
|
if (dryRun) {
|
|
3379
3678
|
console.log(chalk.default.gray(" Commands to run:"));
|
|
3380
3679
|
console.log(chalk.default.gray(" fly launch # first time"));
|
|
@@ -3395,12 +3694,21 @@ program.command("deploy").description("Deploy gateway to cloud (Fly.io or Render
|
|
|
3395
3694
|
}
|
|
3396
3695
|
}
|
|
3397
3696
|
} else if (platform === "render") {
|
|
3398
|
-
console.log(chalk.default.bold.hex("#06b6d4")("\n Deploy to Render\n"));
|
|
3399
|
-
console.log(chalk.default.gray(" 1. Push to GitHub and connect
|
|
3400
|
-
console.log(chalk.default.gray(" 2. New Web Service → use render.yaml"));
|
|
3401
|
-
console.log(chalk.default.gray(" 3.
|
|
3697
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n 🚀 Deploy to Render\n"));
|
|
3698
|
+
console.log(chalk.default.gray(" 1. Push to GitHub and connect at https://render.com"));
|
|
3699
|
+
console.log(chalk.default.gray(" 2. New Web Service → connect repo, use render.yaml"));
|
|
3700
|
+
console.log(chalk.default.gray(" 3. Environment: OPENROUTER_API_KEY, HYPERCLAW_GATEWAY_TOKEN"));
|
|
3701
|
+
console.log(chalk.default.cyan("\n One-click: https://render.com/deploy\n"));
|
|
3702
|
+
} else if (platform === "railway") {
|
|
3703
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n 🚀 Deploy to Railway\n"));
|
|
3704
|
+
console.log(chalk.default.gray(" 1. Create project: https://railway.app/new"));
|
|
3705
|
+
console.log(chalk.default.gray(" 2. Deploy from GitHub or use Railway CLI:"));
|
|
3706
|
+
console.log(chalk.default.gray(" npm i -g @railway/cli && railway login"));
|
|
3707
|
+
console.log(chalk.default.gray(" railway init; railway add"));
|
|
3708
|
+
console.log(chalk.default.gray(" 3. Variables: OPENROUTER_API_KEY, HYPERCLAW_GATEWAY_TOKEN, PORT=18789"));
|
|
3709
|
+
console.log(chalk.default.cyan("\n One-click: https://railway.app/template (use Docker)\n"));
|
|
3402
3710
|
} else {
|
|
3403
|
-
console.log(chalk.default.red(` Unknown platform: ${platform}. Use fly or
|
|
3711
|
+
console.log(chalk.default.red(` Unknown platform: ${platform}. Use fly, render, or railway.\n`));
|
|
3404
3712
|
process.exit(1);
|
|
3405
3713
|
}
|
|
3406
3714
|
process.exit(0);
|
|
@@ -3593,40 +3901,40 @@ themeCmd.command("preview").description("Preview all themes side-by-side").actio
|
|
|
3593
3901
|
});
|
|
3594
3902
|
const secretsCmd = program.command("secrets").description("External secrets management");
|
|
3595
3903
|
secretsCmd.command("audit").description("Audit all required secrets").option("--required-by <ids>", "Filter by skill/provider IDs (comma-separated)").action(async (opts) => {
|
|
3596
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3904
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-BIc6zzZV.js"));
|
|
3597
3905
|
const filter = opts.requiredBy?.split(",");
|
|
3598
3906
|
await new SecretsManager().audit(filter);
|
|
3599
3907
|
process.exit(0);
|
|
3600
3908
|
});
|
|
3601
3909
|
secretsCmd.command("set <KEY=value>").description("Set a secret in .env file").action(async (kv) => {
|
|
3602
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3910
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-BIc6zzZV.js"));
|
|
3603
3911
|
await new SecretsManager().set(kv);
|
|
3604
3912
|
process.exit(0);
|
|
3605
3913
|
});
|
|
3606
3914
|
secretsCmd.command("apply").description("Write secrets from .env to shell config (~/.bashrc, ~/.zshrc)").action(async () => {
|
|
3607
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3915
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-BIc6zzZV.js"));
|
|
3608
3916
|
await new SecretsManager().apply();
|
|
3609
3917
|
process.exit(0);
|
|
3610
3918
|
});
|
|
3611
3919
|
secretsCmd.command("reload").description("Reload secrets into running gateway").action(async () => {
|
|
3612
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3920
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-BIc6zzZV.js"));
|
|
3613
3921
|
await new SecretsManager().reload();
|
|
3614
3922
|
process.exit(0);
|
|
3615
3923
|
});
|
|
3616
3924
|
secretsCmd.command("remove <key>").description("Remove a secret from .env").action(async (key) => {
|
|
3617
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3925
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-BIc6zzZV.js"));
|
|
3618
3926
|
await new SecretsManager().remove(key);
|
|
3619
3927
|
process.exit(0);
|
|
3620
3928
|
});
|
|
3621
3929
|
secretsCmd.command("credentials").description("List provider credential files (credentials/*.json)").action(async () => {
|
|
3622
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
3930
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-Ddhgmbpz.js"));
|
|
3623
3931
|
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3624
3932
|
await new CredentialsStore(getHyperClawDir$1()).showList();
|
|
3625
3933
|
process.exit(0);
|
|
3626
3934
|
});
|
|
3627
3935
|
const securityCmd = program.command("security").description("Security tools");
|
|
3628
3936
|
securityCmd.command("audit").description("Security audit — file permissions, DM policies, embedded secrets").option("--deep", "Full deep scan including token entropy and installed skill risks").option("--fix", "Auto-fix safe findings (file permissions etc.)").option("--json", "Machine-readable JSON output").action(async (opts) => {
|
|
3629
|
-
const { runSecurityAudit } = await Promise.resolve().then(() => require("./audit-
|
|
3937
|
+
const { runSecurityAudit } = await Promise.resolve().then(() => require("./audit-Q-Uy5nem.js"));
|
|
3630
3938
|
await runSecurityAudit({
|
|
3631
3939
|
deep: opts.deep,
|
|
3632
3940
|
fix: opts.fix,
|
|
@@ -3635,20 +3943,20 @@ securityCmd.command("audit").description("Security audit — file permissions, D
|
|
|
3635
3943
|
process.exit(0);
|
|
3636
3944
|
});
|
|
3637
3945
|
program.command("osint").description("OSINT / Ethical Hacking mode — configure HyperClaw for security research").argument("[workflow]", "Workflow preset: recon | bugbounty | pentest | footprint | custom | chat").option("--show", "Show current OSINT profile").option("--reset", "Clear OSINT profile and disable OSINT mode").option("--model <model>", "Override model for OSINT chat").action(async (workflow, opts) => {
|
|
3638
|
-
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-
|
|
3946
|
+
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-c-xDjLb-.js"));
|
|
3639
3947
|
if (opts.show || opts.reset) await osintSetup({
|
|
3640
3948
|
show: opts.show,
|
|
3641
3949
|
reset: opts.reset
|
|
3642
3950
|
});
|
|
3643
3951
|
else if (workflow === "chat") {
|
|
3644
|
-
const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-
|
|
3952
|
+
const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-C09BvbGy.js"));
|
|
3645
3953
|
await runOsintChat({ model: opts.model });
|
|
3646
3954
|
} else if (workflow === "setup" || workflow) await osintSetup({ mode: workflow });
|
|
3647
3955
|
else await osintQuickStart();
|
|
3648
3956
|
process.exit(0);
|
|
3649
3957
|
});
|
|
3650
3958
|
program.command("chat").description("Interactive terminal chat with the agent").option("--session <id>", "Resume a named session").option("--model <model>", "Override model").option("--thinking <level>", "Thinking level: high|medium|low|none", "none").option("--workspace <dir>", "Override workspace directory").option("--daemon", "Use daemon theme (red borders & prompt)").action(async (opts) => {
|
|
3651
|
-
const { runChat } = await Promise.resolve().then(() => require("./chat-
|
|
3959
|
+
const { runChat } = await Promise.resolve().then(() => require("./chat-CJa0ph8c.js"));
|
|
3652
3960
|
const cfg = await new require_manager.ConfigManager().load().catch(() => null);
|
|
3653
3961
|
const port = cfg?.gateway?.port ?? 18789;
|
|
3654
3962
|
const gm = new GatewayManager$1();
|
|
@@ -3663,7 +3971,7 @@ program.command("chat").description("Interactive terminal chat with the agent").
|
|
|
3663
3971
|
});
|
|
3664
3972
|
const agentRunCmd = program.command("agent").description("Run agent with thinking control");
|
|
3665
3973
|
agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent").option("--thinking <level>", "Thinking level: high|medium|low|none", "none").option("--model <model>", "Override model").option("--session <id>", "Session/thread ID").option("--multi-step", "Decompose into steps and run each (sequential)").option("--parallel", "Run sub-agents in parallel for independent subtasks").option("--verbose", "Show thinking blocks and request details").option("--workspace <dir>", "Override workspace directory").action(async (opts) => {
|
|
3666
|
-
const { runAgent } = await Promise.resolve().then(() => require("./src-
|
|
3974
|
+
const { runAgent } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
3667
3975
|
await runAgent({
|
|
3668
3976
|
message: opts.message,
|
|
3669
3977
|
thinking: opts.thinking,
|
|
@@ -3678,8 +3986,19 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
|
|
|
3678
3986
|
process.exit(0);
|
|
3679
3987
|
});
|
|
3680
3988
|
const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
|
|
3989
|
+
threadsCmd.command("create").description("Create or resume an ACP thread").option("--resume <id>", "Resume existing session by thread ID (ACP resumeSessionId)").option("--name <name>", "Thread name").option("--channel <id>", "Channel ID").action(async (opts) => {
|
|
3990
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
3991
|
+
const mgr = new ACPThreadManager();
|
|
3992
|
+
const thread = await mgr.create({
|
|
3993
|
+
resumeSessionId: opts.resume,
|
|
3994
|
+
name: opts.name,
|
|
3995
|
+
channelId: opts.channel
|
|
3996
|
+
});
|
|
3997
|
+
console.log(require("chalk").green(`\n ✔ Thread: ${thread.name} (${thread.id})\n`));
|
|
3998
|
+
process.exit(0);
|
|
3999
|
+
});
|
|
3681
4000
|
threadsCmd.command("list").description("List agent threads").option("--channel <id>", "Filter by channel").option("--active", "Show only active threads").action(async (opts) => {
|
|
3682
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
4001
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
3683
4002
|
const mgr = new ACPThreadManager();
|
|
3684
4003
|
const threads = await mgr.list({
|
|
3685
4004
|
channelId: opts.channel,
|
|
@@ -3689,29 +4008,33 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
|
|
|
3689
4008
|
process.exit(0);
|
|
3690
4009
|
});
|
|
3691
4010
|
threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
|
|
3692
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
4011
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
3693
4012
|
await new ACPThreadManager().terminate(id);
|
|
3694
4013
|
console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
|
|
3695
4014
|
process.exit(0);
|
|
3696
4015
|
});
|
|
4016
|
+
program.command("acp").description("Start ACP server on stdio for IDE integration (VS Code, Zed, Cursor, Codex)").action(async () => {
|
|
4017
|
+
const { runACPStdio } = await Promise.resolve().then(() => require("./src-CDeWGebw.js"));
|
|
4018
|
+
await runACPStdio();
|
|
4019
|
+
});
|
|
3697
4020
|
const canvasCmd = program.command("canvas").description("Live AI-driven UI canvas");
|
|
3698
4021
|
canvasCmd.command("show").description("Show current canvas components").action(async () => {
|
|
3699
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
4022
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-B_ew6jRs.js"));
|
|
3700
4023
|
await new CanvasRenderer().show();
|
|
3701
4024
|
process.exit(0);
|
|
3702
4025
|
});
|
|
3703
4026
|
canvasCmd.command("add <type> <title>").description("Add a canvas component (type: chart|table|form|markdown|image|custom)").action(async (type, title) => {
|
|
3704
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
4027
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-B_ew6jRs.js"));
|
|
3705
4028
|
await new CanvasRenderer().addComponent(type, title);
|
|
3706
4029
|
process.exit(0);
|
|
3707
4030
|
});
|
|
3708
4031
|
canvasCmd.command("clear").description("Clear all canvas components").action(async () => {
|
|
3709
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
4032
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-B_ew6jRs.js"));
|
|
3710
4033
|
await new CanvasRenderer().clear();
|
|
3711
4034
|
process.exit(0);
|
|
3712
4035
|
});
|
|
3713
4036
|
canvasCmd.command("export").description("Export canvas as HTML file").action(async () => {
|
|
3714
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
4037
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-B_ew6jRs.js"));
|
|
3715
4038
|
const fs$7 = require("fs-extra");
|
|
3716
4039
|
const html = await new CanvasRenderer().exportHtml();
|
|
3717
4040
|
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
@@ -3733,62 +4056,67 @@ deliveryCmd.command("retry <id>").description("Retry a dead-lettered delivery it
|
|
|
3733
4056
|
});
|
|
3734
4057
|
const mcpCmd = program.command("mcp").description("MCP (Model Context Protocol) server management");
|
|
3735
4058
|
mcpCmd.command("list").description("List configured MCP servers").action(async () => {
|
|
3736
|
-
const { mcpList } = await Promise.resolve().then(() => require("./mcp-
|
|
4059
|
+
const { mcpList } = await Promise.resolve().then(() => require("./mcp-CI2F3m8G.js"));
|
|
3737
4060
|
await mcpList();
|
|
3738
4061
|
process.exit(0);
|
|
3739
4062
|
});
|
|
3740
4063
|
mcpCmd.command("add").description("Add MCP server").action(async () => {
|
|
3741
|
-
const { mcpAdd } = await Promise.resolve().then(() => require("./mcp-
|
|
4064
|
+
const { mcpAdd } = await Promise.resolve().then(() => require("./mcp-CI2F3m8G.js"));
|
|
3742
4065
|
await mcpAdd();
|
|
3743
4066
|
process.exit(0);
|
|
3744
4067
|
});
|
|
3745
4068
|
mcpCmd.command("remove <id>").description("Remove MCP server").action(async (id) => {
|
|
3746
|
-
const { mcpRemove } = await Promise.resolve().then(() => require("./mcp-
|
|
4069
|
+
const { mcpRemove } = await Promise.resolve().then(() => require("./mcp-CI2F3m8G.js"));
|
|
3747
4070
|
await mcpRemove(id);
|
|
3748
4071
|
process.exit(0);
|
|
3749
4072
|
});
|
|
3750
4073
|
mcpCmd.command("probe [id]").description("Test MCP server connection").action(async (id) => {
|
|
3751
|
-
const { mcpProbe } = await Promise.resolve().then(() => require("./mcp-
|
|
4074
|
+
const { mcpProbe } = await Promise.resolve().then(() => require("./mcp-CI2F3m8G.js"));
|
|
3752
4075
|
await mcpProbe(id);
|
|
3753
4076
|
process.exit(0);
|
|
3754
4077
|
});
|
|
3755
4078
|
const nodeCmd = program.command("node").description("HyperClaw node management (local, remote, android)");
|
|
3756
4079
|
nodeCmd.command("list").description("List paired nodes").action(async () => {
|
|
3757
|
-
const { nodeList } = await Promise.resolve().then(() => require("./node-
|
|
4080
|
+
const { nodeList } = await Promise.resolve().then(() => require("./node-DFKhz7Zn.js"));
|
|
3758
4081
|
await nodeList();
|
|
3759
4082
|
process.exit(0);
|
|
3760
4083
|
});
|
|
3761
4084
|
nodeCmd.command("add").description("Add or pair a node").action(async () => {
|
|
3762
|
-
const { nodeAdd } = await Promise.resolve().then(() => require("./node-
|
|
4085
|
+
const { nodeAdd } = await Promise.resolve().then(() => require("./node-DFKhz7Zn.js"));
|
|
3763
4086
|
await nodeAdd();
|
|
3764
4087
|
process.exit(0);
|
|
3765
4088
|
});
|
|
3766
4089
|
nodeCmd.command("probe [id]").description("Probe node connection").action(async (id) => {
|
|
3767
|
-
const { nodeProbe } = await Promise.resolve().then(() => require("./node-
|
|
4090
|
+
const { nodeProbe } = await Promise.resolve().then(() => require("./node-DFKhz7Zn.js"));
|
|
3768
4091
|
await nodeProbe(id);
|
|
3769
4092
|
process.exit(0);
|
|
3770
4093
|
});
|
|
3771
4094
|
nodeCmd.command("remove <id>").description("Remove paired node").action(async (id) => {
|
|
3772
|
-
const { nodeRemove } = await Promise.resolve().then(() => require("./node-
|
|
4095
|
+
const { nodeRemove } = await Promise.resolve().then(() => require("./node-DFKhz7Zn.js"));
|
|
3773
4096
|
await nodeRemove(id);
|
|
3774
4097
|
process.exit(0);
|
|
3775
4098
|
});
|
|
4099
|
+
nodeCmd.command("queue [nodeId]").description("List pending work queued for dormant nodes").action(async (nodeId) => {
|
|
4100
|
+
const { nodeQueue } = await Promise.resolve().then(() => require("./node-DFKhz7Zn.js"));
|
|
4101
|
+
await nodeQueue(nodeId);
|
|
4102
|
+
process.exit(0);
|
|
4103
|
+
});
|
|
3776
4104
|
const arCmd = program.command("auto-reply").description("Auto-reply rule engine");
|
|
3777
4105
|
arCmd.command("list").action(async () => {
|
|
3778
|
-
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-
|
|
4106
|
+
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-BAYXiKiJ.js"));
|
|
3779
4107
|
const e = new AutoReplyEngine();
|
|
3780
4108
|
await e.load();
|
|
3781
4109
|
e.showList();
|
|
3782
4110
|
process.exit(0);
|
|
3783
4111
|
});
|
|
3784
4112
|
arCmd.command("toggle <id>").action(async (id) => {
|
|
3785
|
-
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-
|
|
4113
|
+
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-BAYXiKiJ.js"));
|
|
3786
4114
|
const e = new AutoReplyEngine();
|
|
3787
4115
|
await e.toggle(id);
|
|
3788
4116
|
process.exit(0);
|
|
3789
4117
|
});
|
|
3790
4118
|
arCmd.command("remove <id>").action(async (id) => {
|
|
3791
|
-
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-
|
|
4119
|
+
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-BAYXiKiJ.js"));
|
|
3792
4120
|
const e = new AutoReplyEngine();
|
|
3793
4121
|
await e.remove(id);
|
|
3794
4122
|
process.exit(0);
|
|
@@ -3797,7 +4125,7 @@ const gmailCmd = program.command("gmail").description("Gmail Pub/Sub real-time n
|
|
|
3797
4125
|
gmailCmd.command("watch-setup").description("Register Gmail watch for push notifications. Requires: hyperclaw auth oauth google-gmail").requiredOption("-t, --topic <name>", "Pub/Sub topic (e.g. projects/myproject/topics/gmail-push)").option("-l, --labels <ids>", "Label IDs to watch (comma-separated)", "INBOX").action(async (opts) => {
|
|
3798
4126
|
const chalk$11 = require("chalk");
|
|
3799
4127
|
try {
|
|
3800
|
-
const { setupGmailWatch } = await Promise.resolve().then(() => require("./gmail-watch-setup-
|
|
4128
|
+
const { setupGmailWatch } = await Promise.resolve().then(() => require("./gmail-watch-setup-BzbG0ICM.js"));
|
|
3801
4129
|
const labelIds = opts.labels.split(",").map((s) => s.trim()).filter(Boolean);
|
|
3802
4130
|
const result = await setupGmailWatch({
|
|
3803
4131
|
topicName: opts.topic,
|
|
@@ -3817,7 +4145,7 @@ gmailCmd.command("watch-setup").description("Register Gmail watch for push notif
|
|
|
3817
4145
|
const cronCmd = program.command("cron").description("Scheduled tasks (cron → agent prompt)");
|
|
3818
4146
|
cronCmd.command("list").action(async () => {
|
|
3819
4147
|
const chalk$11 = require("chalk");
|
|
3820
|
-
const { loadCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
4148
|
+
const { loadCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-CF4MJoIU.js"));
|
|
3821
4149
|
const tasks = await loadCronTasks();
|
|
3822
4150
|
console.log(chalk$11.bold.cyan("\n ⏰ CRON TASKS\n"));
|
|
3823
4151
|
if (tasks.length === 0) {
|
|
@@ -3830,16 +4158,17 @@ cronCmd.command("list").action(async () => {
|
|
|
3830
4158
|
console.log(` ${dot} ${chalk$11.white(t.name || t.id)}`);
|
|
3831
4159
|
console.log(` ${chalk$11.gray("Schedule:")} ${t.schedule}`);
|
|
3832
4160
|
console.log(` ${chalk$11.gray("Prompt:")} ${t.prompt.slice(0, 60)}${t.prompt.length > 60 ? "..." : ""}`);
|
|
4161
|
+
if (t.skillId) console.log(` ${chalk$11.gray("Skill:")} ${t.skillId}`);
|
|
3833
4162
|
if (t.lastRunAt) console.log(` ${chalk$11.gray("Last run:")} ${t.lastRunAt}`);
|
|
3834
4163
|
console.log();
|
|
3835
4164
|
}
|
|
3836
4165
|
process.exit(0);
|
|
3837
4166
|
});
|
|
3838
|
-
cronCmd.command("add").arguments("<schedule> <prompt>").option("-n, --name <name>", "Task name").action(async (schedule, prompt, opts) => {
|
|
4167
|
+
cronCmd.command("add").arguments("<schedule> <prompt>").option("-n, --name <name>", "Task name").option("-s, --skill <skillId>", "Skill ID to route task (e.g. morning-briefing)").action(async (schedule, prompt, opts) => {
|
|
3839
4168
|
const chalk$11 = require("chalk");
|
|
3840
|
-
const { loadCronTasks, addCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
4169
|
+
const { loadCronTasks, addCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-CF4MJoIU.js"));
|
|
3841
4170
|
await loadCronTasks();
|
|
3842
|
-
addCronTask(schedule, prompt, opts.name);
|
|
4171
|
+
addCronTask(schedule, prompt, opts.name, opts.skill);
|
|
3843
4172
|
await saveCronTasks();
|
|
3844
4173
|
console.log(chalk$11.green(`\n ✔ Cron task added: ${schedule} → "${prompt.slice(0, 40)}..."\n`));
|
|
3845
4174
|
console.log(chalk$11.gray(" Restart gateway to apply.\n"));
|
|
@@ -3847,7 +4176,7 @@ cronCmd.command("add").arguments("<schedule> <prompt>").option("-n, --name <name
|
|
|
3847
4176
|
});
|
|
3848
4177
|
cronCmd.command("remove <id>").action(async (id) => {
|
|
3849
4178
|
const chalk$11 = require("chalk");
|
|
3850
|
-
const { loadCronTasks, removeCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
4179
|
+
const { loadCronTasks, removeCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-CF4MJoIU.js"));
|
|
3851
4180
|
await loadCronTasks();
|
|
3852
4181
|
if (removeCronTask(id)) {
|
|
3853
4182
|
await saveCronTasks();
|
|
@@ -3907,20 +4236,20 @@ program.command("nodes").description("List connected mobile nodes (iOS/Android C
|
|
|
3907
4236
|
});
|
|
3908
4237
|
const whCmd = program.command("webhooks").description("Webhook endpoint management");
|
|
3909
4238
|
whCmd.command("list").action(async () => {
|
|
3910
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager
|
|
4239
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-BwobWy0l.js"));
|
|
3911
4240
|
const m = new WebhookManager();
|
|
3912
4241
|
await m.load();
|
|
3913
4242
|
m.showList();
|
|
3914
4243
|
process.exit(0);
|
|
3915
4244
|
});
|
|
3916
4245
|
whCmd.command("remove <id>").action(async (id) => {
|
|
3917
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager
|
|
4246
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-BwobWy0l.js"));
|
|
3918
4247
|
const m = new WebhookManager();
|
|
3919
4248
|
await m.remove(id);
|
|
3920
4249
|
process.exit(0);
|
|
3921
4250
|
});
|
|
3922
4251
|
whCmd.command("toggle <id>").action(async (id) => {
|
|
3923
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager
|
|
4252
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-BwobWy0l.js"));
|
|
3924
4253
|
const m = new WebhookManager();
|
|
3925
4254
|
await m.toggle(id);
|
|
3926
4255
|
process.exit(0);
|
|
@@ -3929,7 +4258,7 @@ const logsCmd = program.command("logs").description("View gateway logs");
|
|
|
3929
4258
|
logsCmd.option("-n, --lines <n>", "Number of lines to show", "50");
|
|
3930
4259
|
logsCmd.option("-f, --follow", "Stream logs in real time");
|
|
3931
4260
|
logsCmd.action(async (opts) => {
|
|
3932
|
-
const { tailLog, streamLog } = await Promise.resolve().then(() => require("./logger-
|
|
4261
|
+
const { tailLog, streamLog } = await Promise.resolve().then(() => require("./logger-Oty9sC13.js"));
|
|
3933
4262
|
if (opts.follow) await streamLog();
|
|
3934
4263
|
else {
|
|
3935
4264
|
await tailLog(parseInt(opts.lines));
|
|
@@ -3937,7 +4266,7 @@ logsCmd.action(async (opts) => {
|
|
|
3937
4266
|
}
|
|
3938
4267
|
});
|
|
3939
4268
|
program.command("gateway:serve").description("Start the gateway server in the foreground (used by daemon)").action(async () => {
|
|
3940
|
-
const { startGateway } = await Promise.resolve().then(() => require("./server-
|
|
4269
|
+
const { startGateway } = await Promise.resolve().then(() => require("./server-DszV63tu.js"));
|
|
3941
4270
|
await startGateway();
|
|
3942
4271
|
process.on("SIGINT", () => process.exit(0));
|
|
3943
4272
|
process.on("SIGTERM", () => process.exit(0));
|
|
@@ -3994,9 +4323,9 @@ const authCmd = program.command("auth").description("OAuth and provider credenti
|
|
|
3994
4323
|
authCmd.command("add <service_id>").description("Add API key for a service (any provider we do not ship). Stored in credentials/ and .env.").option("--key <api_key>", "API key (prompts if omitted)").option("--base-url <url>", "Base URL (optional, e.g. https://api.example.com)").option("--env-var <name>", "Env var name (default: <SERVICE_ID>_API_KEY)").action(async (serviceId, opts) => {
|
|
3995
4324
|
const chalk$11 = require("chalk");
|
|
3996
4325
|
const inquirer$2 = require("inquirer");
|
|
3997
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
4326
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-Ddhgmbpz.js"));
|
|
3998
4327
|
const { getHyperClawDir: getHyperClawDir$1, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3999
|
-
const { getApiKeyGuide, GENERIC_API_KEY_STEPS } = await Promise.resolve().then(() => require("./api-keys-guide
|
|
4328
|
+
const { getApiKeyGuide, GENERIC_API_KEY_STEPS } = await Promise.resolve().then(() => require("./api-keys-guide-DmKF7tB-.js"));
|
|
4000
4329
|
const fs$7 = (await import("fs-extra")).default;
|
|
4001
4330
|
const path$5 = await import("path");
|
|
4002
4331
|
const guide = getApiKeyGuide(serviceId);
|
|
@@ -4049,7 +4378,7 @@ authCmd.command("add <service_id>").description("Add API key for a service (any
|
|
|
4049
4378
|
});
|
|
4050
4379
|
authCmd.command("remove <service_id>").description("Remove API key for a service from credentials and .env").action(async (serviceId) => {
|
|
4051
4380
|
const chalk$11 = require("chalk");
|
|
4052
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
4381
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-Ddhgmbpz.js"));
|
|
4053
4382
|
const { getHyperClawDir: getHyperClawDir$1, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
4054
4383
|
const fs$7 = (await import("fs-extra")).default;
|
|
4055
4384
|
const safeId = serviceId.replace(/[^a-zA-Z0-9_-]/g, "_").toLowerCase();
|
|
@@ -4069,7 +4398,7 @@ authCmd.command("oauth <provider>").description("Run full OAuth flow. Providers:
|
|
|
4069
4398
|
const chalk$11 = require("chalk");
|
|
4070
4399
|
const ora$4 = (await import("ora")).default;
|
|
4071
4400
|
try {
|
|
4072
|
-
const { runOAuthFlow } = await Promise.resolve().then(() => require("./oauth-flow-
|
|
4401
|
+
const { runOAuthFlow } = await Promise.resolve().then(() => require("./oauth-flow-CZOsvU1v.js"));
|
|
4073
4402
|
const spinner = ora$4("Starting OAuth flow...").start();
|
|
4074
4403
|
spinner.text = "Opening browser — complete the consent and return here.";
|
|
4075
4404
|
const tokens = await runOAuthFlow(provider, {
|
|
@@ -4077,7 +4406,7 @@ authCmd.command("oauth <provider>").description("Run full OAuth flow. Providers:
|
|
|
4077
4406
|
clientSecret: opts.clientSecret
|
|
4078
4407
|
});
|
|
4079
4408
|
spinner.stop();
|
|
4080
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
4409
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-Dk-6BmGL.js"));
|
|
4081
4410
|
const now = Math.floor(Date.now() / 1e3);
|
|
4082
4411
|
const expires_at = tokens.expires_in ? now + tokens.expires_in : void 0;
|
|
4083
4412
|
const tokenUrl = provider === "google" || provider === "google-gmail" ? "https://oauth2.googleapis.com/token" : provider === "microsoft" ? "https://login.microsoftonline.com/common/oauth2/v2.0/token" : void 0;
|
|
@@ -4112,7 +4441,7 @@ authCmd.command("setup-token <provider>").description("Save setup token (Anthrop
|
|
|
4112
4441
|
console.log(chalk$11.red("\n ✖ No token provided.\n"));
|
|
4113
4442
|
process.exit(1);
|
|
4114
4443
|
}
|
|
4115
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
4444
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-Dk-6BmGL.js"));
|
|
4116
4445
|
await writeOAuthToken("anthropic-setup", {
|
|
4117
4446
|
access_token: token.trim(),
|
|
4118
4447
|
token_url: "https://api.anthropic.com"
|
|
@@ -4123,7 +4452,7 @@ authCmd.command("setup-token <provider>").description("Save setup token (Anthrop
|
|
|
4123
4452
|
});
|
|
4124
4453
|
authCmd.command("oauth-set <provider>").description("Save OAuth tokens manually (access_token, refresh_token, etc.) to ~/.hyperclaw/oauth-<provider>.json").option("--token <access_token>", "Access token").option("--refresh <refresh_token>", "Refresh token (optional)").option("--expires-in <seconds>", "Token lifetime in seconds (optional)").option("--token-url <url>", "Refresh endpoint URL (optional)").action(async (provider, opts) => {
|
|
4125
4454
|
const chalk$11 = require("chalk");
|
|
4126
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
4455
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-Dk-6BmGL.js"));
|
|
4127
4456
|
const access_token = opts.token || process.env.OAUTH_ACCESS_TOKEN;
|
|
4128
4457
|
if (!access_token) {
|
|
4129
4458
|
console.log(chalk$11.red("\n ✖ Provide --token <access_token> or set OAUTH_ACCESS_TOKEN\n"));
|
|
@@ -4151,7 +4480,7 @@ workspaceCmd.command("init [dir]").description("Initialize workspace files (SOUL
|
|
|
4151
4480
|
try {
|
|
4152
4481
|
cfg = await fs$7.readJson(getConfigPath$1());
|
|
4153
4482
|
} catch {}
|
|
4154
|
-
const { initWorkspaceFiles } = await Promise.resolve().then(() => require("./memory-
|
|
4483
|
+
const { initWorkspaceFiles } = await Promise.resolve().then(() => require("./memory-CyonlkTy.js"));
|
|
4155
4484
|
await initWorkspaceFiles({
|
|
4156
4485
|
agentName: cfg.identity?.agentName || "Hyper",
|
|
4157
4486
|
personality: cfg.identity?.personality || "helpful and concise",
|
|
@@ -4190,13 +4519,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
|
|
|
4190
4519
|
});
|
|
4191
4520
|
const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
|
|
4192
4521
|
botCmd.command("status").action(async () => {
|
|
4193
|
-
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4522
|
+
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-DR6BgI_d.js"));
|
|
4194
4523
|
await showBotStatus();
|
|
4195
4524
|
process.exit(0);
|
|
4196
4525
|
});
|
|
4197
4526
|
botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
|
|
4198
4527
|
const inquirer$2 = require("inquirer");
|
|
4199
|
-
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4528
|
+
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-DR6BgI_d.js"));
|
|
4200
4529
|
const chalk$11 = require("chalk");
|
|
4201
4530
|
console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
|
|
4202
4531
|
console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
|
|
@@ -4258,14 +4587,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4258
4587
|
cwd: process.cwd()
|
|
4259
4588
|
});
|
|
4260
4589
|
child.unref();
|
|
4261
|
-
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4590
|
+
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-DR6BgI_d.js"));
|
|
4262
4591
|
await writeBotPid(child.pid);
|
|
4263
4592
|
console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
|
|
4264
4593
|
console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
|
|
4265
4594
|
process.exit(0);
|
|
4266
4595
|
return;
|
|
4267
4596
|
}
|
|
4268
|
-
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4597
|
+
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-DR6BgI_d.js"));
|
|
4269
4598
|
const cfg = await loadBotConfig();
|
|
4270
4599
|
if (!cfg) {
|
|
4271
4600
|
console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
|
|
@@ -4292,41 +4621,73 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4292
4621
|
});
|
|
4293
4622
|
botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
|
|
4294
4623
|
const chalk$11 = require("chalk");
|
|
4295
|
-
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4624
|
+
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-DR6BgI_d.js"));
|
|
4296
4625
|
const stopped = await stopBotProcess();
|
|
4297
4626
|
if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
|
|
4298
4627
|
else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
|
|
4299
4628
|
process.exit(stopped ? 0 : 1);
|
|
4300
4629
|
});
|
|
4301
|
-
memCmd.command("search <query>").description("
|
|
4302
|
-
|
|
4630
|
+
memCmd.command("search-vector <query>").description("Semantic search over vector memory (requires memory-lancedb + OPENAI_API_KEY)").option("-n, --limit <n>", "Max results", "10").action(async (query, opts) => {
|
|
4631
|
+
try {
|
|
4632
|
+
const pkg = "@hyperclaw/memory-lancedb";
|
|
4633
|
+
const mod = await (async () => {
|
|
4634
|
+
try {
|
|
4635
|
+
return await import(pkg);
|
|
4636
|
+
} catch {
|
|
4637
|
+
return null;
|
|
4638
|
+
}
|
|
4639
|
+
})();
|
|
4640
|
+
if (!mod?.VectorMemoryService) throw new Error("not available");
|
|
4641
|
+
const { VectorMemoryService } = mod;
|
|
4642
|
+
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
4643
|
+
const path$5 = await import("path");
|
|
4644
|
+
const cfg = await new require_manager.ConfigManager().load();
|
|
4645
|
+
const svc = new VectorMemoryService({
|
|
4646
|
+
dbPath: path$5.join(getHyperClawDir$1(), "memory-lancedb"),
|
|
4647
|
+
apiKey: cfg?.provider?.apiKey
|
|
4648
|
+
});
|
|
4649
|
+
await svc.init();
|
|
4650
|
+
const results = await svc.search(query, parseInt(opts.limit));
|
|
4651
|
+
if (results.length === 0) console.log(chalk.default.gray("\n No results. Add facts with: hyperclaw memory add-fact \"...\"\n"));
|
|
4652
|
+
else {
|
|
4653
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n Vector memory search:\n"));
|
|
4654
|
+
for (const r of results) console.log(chalk.default.gray(` • ${r.text}`));
|
|
4655
|
+
console.log();
|
|
4656
|
+
}
|
|
4657
|
+
} catch (e) {
|
|
4658
|
+
console.log(chalk.default.yellow("\n Vector memory not available. Install: npm install @hyperclaw/memory-lancedb vectordb openai\n"));
|
|
4659
|
+
}
|
|
4660
|
+
process.exit(0);
|
|
4661
|
+
});
|
|
4662
|
+
memCmd.command("search <query>").description("Search MEMORY.md (text search)").action(async (query) => {
|
|
4663
|
+
const { searchMemory } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4303
4664
|
await searchMemory(query);
|
|
4304
4665
|
process.exit(0);
|
|
4305
4666
|
});
|
|
4306
4667
|
memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
|
|
4307
|
-
const { showMemory } = await Promise.resolve().then(() => require("./src-
|
|
4668
|
+
const { showMemory } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4308
4669
|
await showMemory();
|
|
4309
4670
|
process.exit(0);
|
|
4310
4671
|
});
|
|
4311
4672
|
memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
|
|
4312
|
-
const { clearMemory } = await Promise.resolve().then(() => require("./src-
|
|
4673
|
+
const { clearMemory } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4313
4674
|
await clearMemory();
|
|
4314
4675
|
process.exit(0);
|
|
4315
4676
|
});
|
|
4316
4677
|
memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
|
|
4317
|
-
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-
|
|
4678
|
+
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4318
4679
|
await saveMemoryDirect(text);
|
|
4319
4680
|
console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
|
|
4320
4681
|
process.exit(0);
|
|
4321
4682
|
});
|
|
4322
4683
|
const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
|
|
4323
4684
|
pcCmd.command("status").description("Show PC access status and config").action(async () => {
|
|
4324
|
-
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-
|
|
4685
|
+
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4325
4686
|
await showPCAccessStatus();
|
|
4326
4687
|
process.exit(0);
|
|
4327
4688
|
});
|
|
4328
4689
|
pcCmd.command("enable").description("Enable PC access for the AI").option("--level <level>", "Access level: read-only | sandboxed | full", "full").option("--paths <paths>", "Comma-separated allowed paths (sandboxed mode)").action(async (opts) => {
|
|
4329
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
4690
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4330
4691
|
const level = opts.level;
|
|
4331
4692
|
const allowed = [
|
|
4332
4693
|
"read-only",
|
|
@@ -4353,7 +4714,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
|
|
|
4353
4714
|
process.exit(0);
|
|
4354
4715
|
});
|
|
4355
4716
|
pcCmd.command("disable").description("Disable PC access").action(async () => {
|
|
4356
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
4717
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4357
4718
|
await savePCAccessConfig({ enabled: false });
|
|
4358
4719
|
console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
|
|
4359
4720
|
process.exit(0);
|
|
@@ -4378,7 +4739,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
|
|
|
4378
4739
|
process.exit(0);
|
|
4379
4740
|
});
|
|
4380
4741
|
pcCmd.command("run <command>").description("Run a shell command via PC access (must be enabled)").action(async (command) => {
|
|
4381
|
-
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-
|
|
4742
|
+
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-6dmkVQGq.js"));
|
|
4382
4743
|
const cfg = await loadPCAccessConfig();
|
|
4383
4744
|
if (!cfg.enabled) {
|
|
4384
4745
|
console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
|
|
@@ -4419,7 +4780,7 @@ async function runUpdateCheck() {
|
|
|
4419
4780
|
} catch {}
|
|
4420
4781
|
}
|
|
4421
4782
|
if (process.argv.length === 2) (async () => {
|
|
4422
|
-
const { ConfigManager: ConfigManager$1 } = await Promise.resolve().then(() => require("./manager-
|
|
4783
|
+
const { ConfigManager: ConfigManager$1 } = await Promise.resolve().then(() => require("./manager-Bq5LApdR.js"));
|
|
4423
4784
|
const cfg = await new ConfigManager$1().load().catch(() => null);
|
|
4424
4785
|
if (cfg?.provider?.apiKey || cfg?.provider?.providerId) {
|
|
4425
4786
|
await new require_banner.Banner().showNeonBanner(false);
|
|
@@ -4437,7 +4798,7 @@ if (process.argv.length === 2) (async () => {
|
|
|
4437
4798
|
console.log(` ✓ ${t.c("hyperclaw --help")} — 📖 all commands\n`);
|
|
4438
4799
|
} else {
|
|
4439
4800
|
await new require_banner.Banner().showNeonBanner(false);
|
|
4440
|
-
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-
|
|
4801
|
+
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-YszvVNgS.js"));
|
|
4441
4802
|
await new HyperClawWizard$1().run({ wizard: true });
|
|
4442
4803
|
}
|
|
4443
4804
|
await runUpdateCheck();
|