hyperclaw 5.4.0 → 5.4.1
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-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-B0RBl1B8.js +424 -0
- package/dist/agents-routing-BSUaOpce.js +7 -0
- package/dist/agents-routing-C4PVN8G6.js +7 -0
- package/dist/agents-routing-Dcr29-JV.js +424 -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-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/audit-BLMB8qp7.js +445 -0
- package/dist/audit-Cb2TvqYZ.js +445 -0
- package/dist/audit-D7koAKvj.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-D8dFYDXV.js +86 -0
- package/dist/banner-CZ2BfvQq.js +143 -0
- package/dist/banner-CjTRWmks.js +7 -0
- package/dist/banner-Dpygks0H.js +143 -0
- package/dist/banner-ZX1WLr44.js +7 -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-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/claw-tasks-Cio1Q7eA.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-CYPw2v4l.js +261 -0
- package/dist/config-DN9fdLL3.js +261 -0
- package/dist/config-FejpHHTz.js +261 -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-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/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-hiSga8qn.js +89 -0
- package/dist/credentials-store-kLdrmqSt.js +7 -0
- package/dist/cron-tasks-BFsaCKxE.js +89 -0
- package/dist/cron-tasks-BelA2aUW.js +89 -0
- package/dist/cron-tasks-D1T9fWAb.js +89 -0
- package/dist/cron-tasks-f_ieXSG2.js +89 -0
- package/dist/daemon-BTYhQvD_.js +7 -0
- package/dist/daemon-BoaFnmdF.js +421 -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-D57KIIA3.js +421 -0
- package/dist/daemon-D8uyH9et.js +7 -0
- package/dist/daemon-DBTtYx6E.js +421 -0
- package/dist/daemon-srcdhzUG.js +7 -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/destructive-gate-5LYh6brt.js +116 -0
- package/dist/destructive-gate-B_hNKtu6.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-BBJlKpMP.js +7 -0
- package/dist/engine-BNygJfCo.js +335 -0
- package/dist/engine-DB4MBzki.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-D3dP1-Xt.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-DP3kDRx1.js +42 -0
- package/dist/heartbeat-engine-5iOlL7Dj.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-CNVUtvYC.js +516 -0
- package/dist/hyperclawbot-D5ofLNgm.js +516 -0
- package/dist/hyperclawbot-D61zVMyQ.js +516 -0
- package/dist/hyperclawbot-DwScttSx.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-CRF6HyyH.js +2854 -0
- package/dist/inference-CfhTACI8.js +2854 -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-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-DUhmG3V9.js +410 -0
- package/dist/loader-Dl8LNycw.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/manager-3-q8zuAW.js +250 -0
- package/dist/manager-BkMzc-EJ.js +250 -0
- package/dist/manager-Bq5LApdR.js +6 -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-DGo37Ifb.js +142 -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-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-CcFRxMj-.js +306 -0
- package/dist/memory-auto-CifT5aj_.js +5 -0
- package/dist/memory-auto-Cp2Jwx3Y.js +306 -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-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-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-Du2H2Ddi.js +226 -0
- package/dist/node-domexception-v89b0Nwz.js +21 -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-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-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-DqPXPiiC.js +111 -0
- package/dist/oauth-provider-MEgHjij2.js +111 -0
- package/dist/observability-0spm7MPz.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-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-DPmufMqX.js +14 -0
- package/dist/onboard-F9lKA2ie.js +14 -0
- package/dist/onboard-UTQXzlPD.js +3854 -0
- package/dist/onboard-hK098kjl.js +14 -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-CTMbjgH_.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-UUHsFKiH.js +6 -0
- package/dist/orchestrator-oa7HbCnF.js +189 -0
- package/dist/orchestrator-tUKag7pG.js +189 -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-cAAdO-cx.js +283 -0
- package/dist/osint-chat-B0lc0Y6r.js +789 -0
- package/dist/osint-chat-BUhiSpf9.js +789 -0
- package/dist/osint-chat-C-9FVAkU.js +789 -0
- package/dist/osint-chat-CWET8Fno.js +789 -0
- package/dist/osint-chat-Cgdzg3lh.js +789 -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-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-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-Cg3c41A5.js +228 -0
- package/dist/renderer-UoPcgaAd.js +228 -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 +457 -131
- 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-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-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-DPTXaJJF.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-BP0kZfmM.js +5 -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-DQRi9sIf.js +5 -0
- package/dist/skill-runtime-DRd56NWK.js +104 -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-BY3On_zO.js +462 -0
- package/dist/src-BdgKAlMQ.js +20 -0
- package/dist/src-C52A3OwC.js +301 -0
- package/dist/src-C8cbfjat.js +173 -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-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-lltU5gkh.js +20 -0
- package/dist/sub-agent-tools-CE8pVUdb.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/tool-policy-1EBdJkSG.js +190 -0
- package/dist/tool-policy-B1bL0X-E.js +189 -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-CHrJZuNW.js +64 -0
- package/dist/tts-elevenlabs-DHqQsqMz.js +64 -0
- package/dist/tts-elevenlabs-TUKPkSV2.js +64 -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-DyP6lRA5.js +5 -0
- package/dist/vision-tools-RIVKEUeY.js +5 -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/web/assets/{index-Bf8pf7Wg.js → index-8bDizzaq.js} +2 -2
- package/static/web/index.html +1 -1
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-NNM3F6Eo.js');
|
|
5
|
+
const require_config = require('./config-DN9fdLL3.js');
|
|
6
|
+
require('./server-MDmdWHob.js');
|
|
7
|
+
const require_daemon = require('./daemon-DBTtYx6E.js');
|
|
8
8
|
const require_gateway = require('./gateway-CzI8dnlS.js');
|
|
9
|
-
require('./providers-
|
|
10
|
-
const require_onboard = require('./onboard-
|
|
9
|
+
require('./providers-dHhpJo9j.js');
|
|
10
|
+
const require_onboard = require('./onboard-CXSVPnP7.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-CZ2BfvQq.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-D6yjBYo4.js');
|
|
18
|
+
const require_agents_routing = require('./agents-routing-EwzORQQv.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');
|
|
@@ -674,17 +674,26 @@ const CHANNELS = [
|
|
|
674
674
|
platforms: ["all"],
|
|
675
675
|
tokenLabel: "Telegram Bot Token",
|
|
676
676
|
tokenHint: "Get from @BotFather → /newbot",
|
|
677
|
-
extraFields: [
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
677
|
+
extraFields: [
|
|
678
|
+
{
|
|
679
|
+
name: "dmPolicy",
|
|
680
|
+
label: "DM policy",
|
|
681
|
+
hint: "pairing (default) | allowlist | open | disabled",
|
|
682
|
+
required: false
|
|
683
|
+
},
|
|
684
|
+
{
|
|
685
|
+
name: "groupActivation",
|
|
686
|
+
label: "Group activation",
|
|
687
|
+
hint: "mention (default) | always",
|
|
688
|
+
required: false
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
name: "inlineMode",
|
|
692
|
+
label: "Inline mode",
|
|
693
|
+
hint: "Use @botname <query> in any chat. Enable via BotFather /setinline first.",
|
|
694
|
+
required: false
|
|
695
|
+
}
|
|
696
|
+
],
|
|
688
697
|
setupSteps: [
|
|
689
698
|
"1. Open Telegram → @BotFather → /newbot. Save the token.",
|
|
690
699
|
"2. Config: channels.telegram.botToken, dmPolicy (default: pairing), groups.",
|
|
@@ -734,6 +743,12 @@ const CHANNELS = [
|
|
|
734
743
|
label: "DM policy",
|
|
735
744
|
hint: "\"pairing\" (default) | \"allowlist\" | \"open\" | \"none\"",
|
|
736
745
|
required: false
|
|
746
|
+
},
|
|
747
|
+
{
|
|
748
|
+
name: "autoArchiveDuration",
|
|
749
|
+
label: "Thread auto-archive duration (min)",
|
|
750
|
+
hint: "60=1h (default) | 1440=1d | 4320=3d | 10080=1w",
|
|
751
|
+
required: false
|
|
737
752
|
}
|
|
738
753
|
],
|
|
739
754
|
status: "recommended",
|
|
@@ -1957,6 +1972,66 @@ const ZALO_PERSONAL = {
|
|
|
1957
1972
|
notes: "Zalo Web cookie auth. DMs only. No groups. Text chunked ~2000 chars."
|
|
1958
1973
|
};
|
|
1959
1974
|
CHANNELS.push(ZALO_PERSONAL);
|
|
1975
|
+
const NOTION = {
|
|
1976
|
+
id: "notion",
|
|
1977
|
+
name: "Notion",
|
|
1978
|
+
emoji: "📋",
|
|
1979
|
+
requiresGateway: false,
|
|
1980
|
+
supportsDM: false,
|
|
1981
|
+
platforms: ["all"],
|
|
1982
|
+
tokenLabel: "Notion Integration Token",
|
|
1983
|
+
tokenHint: "notion.so/my-integrations → New integration → Copy token",
|
|
1984
|
+
extraFields: [{
|
|
1985
|
+
name: "defaultDatabaseId",
|
|
1986
|
+
label: "Default Database ID",
|
|
1987
|
+
hint: "Paste the 32-char ID from your Notion DB URL",
|
|
1988
|
+
required: false
|
|
1989
|
+
}, {
|
|
1990
|
+
name: "defaultPageId",
|
|
1991
|
+
label: "Default Page ID",
|
|
1992
|
+
hint: "Optional: page to write notes to by default",
|
|
1993
|
+
required: false
|
|
1994
|
+
}],
|
|
1995
|
+
setupSteps: [
|
|
1996
|
+
"1. Go to notion.so/my-integrations → New integration → give it a name.",
|
|
1997
|
+
"2. Copy the Internal Integration Token (starts with secret_...).",
|
|
1998
|
+
"3. Open the Notion page/database you want to use → Share → Invite your integration.",
|
|
1999
|
+
"4. Set NOTION_TOKEN in your env or config: channels.notion.token.",
|
|
2000
|
+
"5. Optional: set defaultDatabaseId to auto-create pages in a DB.",
|
|
2001
|
+
"",
|
|
2002
|
+
" 🔗 docs/notion.md — full setup"
|
|
2003
|
+
],
|
|
2004
|
+
status: "available",
|
|
2005
|
+
notes: "Read/write pages, create DB entries, search workspace. Needs explicit page share."
|
|
2006
|
+
};
|
|
2007
|
+
CHANNELS.push(NOTION);
|
|
2008
|
+
const SHAZAM = {
|
|
2009
|
+
id: "shazam",
|
|
2010
|
+
name: "Shazam (Song Recognition)",
|
|
2011
|
+
emoji: "🎵",
|
|
2012
|
+
requiresGateway: false,
|
|
2013
|
+
supportsDM: false,
|
|
2014
|
+
platforms: ["all"],
|
|
2015
|
+
tokenLabel: "RapidAPI Key (Shazam API)",
|
|
2016
|
+
tokenHint: "rapidapi.com/apidojo/api/shazam → Subscribe → Copy X-RapidAPI-Key",
|
|
2017
|
+
extraFields: [{
|
|
2018
|
+
name: "autoRecognize",
|
|
2019
|
+
label: "Auto-recognize on audio messages",
|
|
2020
|
+
hint: "true | false (default)",
|
|
2021
|
+
required: false
|
|
2022
|
+
}],
|
|
2023
|
+
setupSteps: [
|
|
2024
|
+
"1. Sign up at rapidapi.com → search \"Shazam\" → subscribe to the free plan.",
|
|
2025
|
+
"2. Copy your X-RapidAPI-Key from the API dashboard.",
|
|
2026
|
+
"3. Set SHAZAM_API_KEY in your env or config: channels.shazam.apiKey.",
|
|
2027
|
+
"4. Send an audio clip or hum detection query to identify a song.",
|
|
2028
|
+
"",
|
|
2029
|
+
" 🔗 docs/shazam.md — full setup"
|
|
2030
|
+
],
|
|
2031
|
+
status: "available",
|
|
2032
|
+
notes: "Song recognition via Shazam API on RapidAPI. Free tier: 500 req/month."
|
|
2033
|
+
};
|
|
2034
|
+
CHANNELS.push(SHAZAM);
|
|
1960
2035
|
|
|
1961
2036
|
//#endregion
|
|
1962
2037
|
//#region src/commands/channels/add.ts
|
|
@@ -2527,6 +2602,22 @@ var init_queue = require_chunk.__esm({ "src/delivery/queue.ts"() {
|
|
|
2527
2602
|
//#endregion
|
|
2528
2603
|
//#region src/cli/run-main.ts
|
|
2529
2604
|
require_device_auth_store.init_device_auth_store();
|
|
2605
|
+
function getGitShortHash() {
|
|
2606
|
+
try {
|
|
2607
|
+
const { execSync } = require("child_process");
|
|
2608
|
+
return execSync("git rev-parse --short HEAD", { stdio: [
|
|
2609
|
+
"ignore",
|
|
2610
|
+
"pipe",
|
|
2611
|
+
"ignore"
|
|
2612
|
+
] }).toString().trim();
|
|
2613
|
+
} catch {
|
|
2614
|
+
return "";
|
|
2615
|
+
}
|
|
2616
|
+
}
|
|
2617
|
+
const cliVersion = (() => {
|
|
2618
|
+
const h = getGitShortHash();
|
|
2619
|
+
return h ? `5.4.1+${h}` : "5.4.1";
|
|
2620
|
+
})();
|
|
2530
2621
|
process.on("unhandledRejection", (reason) => {
|
|
2531
2622
|
console.error("[hyperclaw] Unhandled rejection:", reason);
|
|
2532
2623
|
process.exit(1);
|
|
@@ -2539,34 +2630,40 @@ function sanitizeForLog(value) {
|
|
|
2539
2630
|
return String(value ?? "").replace(/[\r\n\t]+/g, " ").replace(/[^\x20-\x7e]+/g, "?").slice(0, 200);
|
|
2540
2631
|
}
|
|
2541
2632
|
const program = new commander.Command();
|
|
2542
|
-
program.name("hyperclaw").description("⚡ HyperClaw — AI Gateway Platform. The Lobster Evolution 🦅").version(
|
|
2543
|
-
Full
|
|
2633
|
+
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", `
|
|
2634
|
+
Full reference: READMECOMMAND.md (all commands + options)
|
|
2544
2635
|
|
|
2545
|
-
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2565
|
-
|
|
2566
|
-
|
|
2636
|
+
Command groups:
|
|
2637
|
+
init, onboard, quickstart, setup
|
|
2638
|
+
gateway status|start|stop|restart|config, daemon start|stop|restart|status|logs|install|uninstall
|
|
2639
|
+
web (--port, --skip-install), chat (--session, --model, --workspace)
|
|
2640
|
+
agent -m "message" (--thinking, --model, --multi-step, --parallel)
|
|
2641
|
+
channels list|add|remove|login|status
|
|
2642
|
+
hooks list|info|enable|disable|install
|
|
2643
|
+
pairing list|approve, devices list|pair|approve|reject|unpair
|
|
2644
|
+
hub, hub search [query], hub install <id>, hub list, hub scan <id>, hub marketplace
|
|
2645
|
+
skill search|list|install (alias for hub)
|
|
2646
|
+
memory show|add-rule|add-fact|add-image|add-audio|search|search-vector|auto-show|clear|save
|
|
2647
|
+
backup create|verify <dir>|restore <dir>
|
|
2648
|
+
config show|set-key|set-service-key|schema
|
|
2649
|
+
secrets audit|set|apply|reload|remove|credentials
|
|
2650
|
+
doctor [--fix], health, security audit
|
|
2651
|
+
status (--all, --deep), dashboard
|
|
2652
|
+
acp, threads create (--resume <id>)|list|terminate, canvas show|add|clear|export
|
|
2653
|
+
mcp list|add|remove|probe [id], node list|add|probe [id]|remove|queue [nodeId]
|
|
2654
|
+
nodes, delivery status|retry
|
|
2655
|
+
cron list|add|remove (-s --skill), webhooks list|remove|toggle
|
|
2656
|
+
gmail watch-setup, auto-reply list|toggle|remove
|
|
2657
|
+
voice-call, voice, theme list|set|preview
|
|
2658
|
+
workspace init|show, pc status|enable|disable|log|run
|
|
2659
|
+
bot status|setup|start|stop
|
|
2660
|
+
auth add|remove|oauth|setup-token|oauth-set
|
|
2661
|
+
developer-key create|list|revoke
|
|
2662
|
+
agents bindings|bind|unbind, sandbox explain
|
|
2663
|
+
message send, deploy, update, osint [workflow], logs (--follow)
|
|
2567
2664
|
|
|
2568
|
-
Examples: hyperclaw onboard | hyperclaw chat | hyperclaw
|
|
2569
|
-
|
|
2665
|
+
Examples: hyperclaw onboard | hyperclaw chat | hyperclaw hub search
|
|
2666
|
+
Full list: READMECOMMAND.md`).hook("preAction", (thisCommand) => {
|
|
2570
2667
|
const profile = thisCommand.opts().profile;
|
|
2571
2668
|
if (profile) {
|
|
2572
2669
|
const os$2 = require("os");
|
|
@@ -2710,8 +2807,8 @@ sandboxCmd.command("explain").description("Show effective sandbox mode, tool pol
|
|
|
2710
2807
|
}
|
|
2711
2808
|
const sandboxMode = cfg?.agents?.defaults?.sandbox?.mode ?? "non-main";
|
|
2712
2809
|
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-
|
|
2810
|
+
const { describeToolPolicy, applyToolPolicy } = await Promise.resolve().then(() => require("./tool-policy-1EBdJkSG.js"));
|
|
2811
|
+
const { getBuiltinTools, getSessionsTools, getPCAccessTools, getBrowserTools, getExtractionTools, getWebsiteWatchTools, getVisionTools } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
|
|
2715
2812
|
const allTools = [
|
|
2716
2813
|
...getBuiltinTools(),
|
|
2717
2814
|
...getSessionsTools(() => null),
|
|
@@ -2875,15 +2972,70 @@ msgCmd.command("send").description("Send a message via a configured channel").op
|
|
|
2875
2972
|
await sendMessage(opts);
|
|
2876
2973
|
process.exit(0);
|
|
2877
2974
|
});
|
|
2878
|
-
program.command("hub").description("Skill
|
|
2975
|
+
const hubCmd = program.command("hub").description("Skill marketplace — browse, search, install community skills");
|
|
2976
|
+
hubCmd.command("search [query]").description("Search skills (ClawHub + bundled registry)").option("-c, --category <cat>", "Filter by category").action(async (query, opts) => {
|
|
2977
|
+
const hub = new require_hub.SkillHub();
|
|
2978
|
+
const q = query || "";
|
|
2979
|
+
const skills = await hub.searchClawHub(q, opts.category);
|
|
2980
|
+
if (skills.length === 0) {
|
|
2981
|
+
console.log(chalk.default.gray(q ? `No skills found for "${q}"` : "Browse: hyperclaw hub"));
|
|
2982
|
+
process.exit(0);
|
|
2983
|
+
return;
|
|
2984
|
+
}
|
|
2985
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n Skill marketplace — search results:\n"));
|
|
2986
|
+
for (const s of skills) {
|
|
2987
|
+
const stars = "★".repeat(Math.round(s.rating || 0)) + "☆".repeat(5 - Math.round(s.rating || 0));
|
|
2988
|
+
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`);
|
|
2989
|
+
console.log(` ${chalk.default.gray(s.description || "")}`);
|
|
2990
|
+
console.log(` ${chalk.default.hex("#06b6d4")("hyperclaw hub install " + (s.id || s.name))}\n`);
|
|
2991
|
+
}
|
|
2992
|
+
process.exit(0);
|
|
2993
|
+
});
|
|
2994
|
+
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) => {
|
|
2879
2995
|
const hub = new require_hub.SkillHub();
|
|
2880
|
-
|
|
2881
|
-
|
|
2882
|
-
|
|
2883
|
-
|
|
2996
|
+
const ora$4 = (await import("ora")).default;
|
|
2997
|
+
const s = ora$4(`Installing ${id}...`).start();
|
|
2998
|
+
try {
|
|
2999
|
+
const dest = await hub.installFromClawHub(id, opts.version);
|
|
3000
|
+
s.succeed(`Installed to ${dest}`);
|
|
3001
|
+
} catch (e) {
|
|
3002
|
+
const match = require_hub.SKILL_REGISTRY.find((x) => x.id === id);
|
|
3003
|
+
if (match) {
|
|
3004
|
+
await hub.install(id, !!opts?.force);
|
|
3005
|
+
s.succeed(`Installed bundled skill: ${match.name}`);
|
|
3006
|
+
} else s.fail(e.message);
|
|
3007
|
+
}
|
|
2884
3008
|
process.exit(0);
|
|
2885
3009
|
});
|
|
2886
|
-
|
|
3010
|
+
hubCmd.command("list").description("List installed skills").action(async () => {
|
|
3011
|
+
const hub = new require_hub.SkillHub();
|
|
3012
|
+
const installed = await hub.getInstalled();
|
|
3013
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n Installed skills:\n"));
|
|
3014
|
+
for (const s of installed) {
|
|
3015
|
+
const src = require_hub.SKILL_REGISTRY.some((r) => r.id === s.id) ? "" : " (registry)";
|
|
3016
|
+
console.log(` ${chalk.default.hex("#06b6d4")("✓")} ${s.name} ${chalk.default.gray(`(${s.id})${src}`)}`);
|
|
3017
|
+
}
|
|
3018
|
+
if (installed.length === 0) console.log(chalk.default.gray(" No skills installed. Run: hyperclaw hub search <query> or hyperclaw hub\n"));
|
|
3019
|
+
else console.log();
|
|
3020
|
+
process.exit(0);
|
|
3021
|
+
});
|
|
3022
|
+
hubCmd.command("scan <id>").description("Security scan a skill").action(async (id) => {
|
|
3023
|
+
const hub = new require_hub.SkillHub();
|
|
3024
|
+
await hub.scan(id);
|
|
3025
|
+
process.exit(0);
|
|
3026
|
+
});
|
|
3027
|
+
hubCmd.command("marketplace").description("Browse marketplace (installed + bundled)").option("--hide-suspicious", "Hide suspicious/dangerous").action(async (opts) => {
|
|
3028
|
+
const hub = new require_hub.SkillHub();
|
|
3029
|
+
await hub.showMarketplace({ hideSuspicious: opts.hideSuspicious });
|
|
3030
|
+
process.exit(0);
|
|
3031
|
+
});
|
|
3032
|
+
hubCmd.option("--hide-suspicious", "Hide suspicious skills");
|
|
3033
|
+
hubCmd.action(async (opts) => {
|
|
3034
|
+
const hub = new require_hub.SkillHub();
|
|
3035
|
+
await hub.showHub(opts?.hideSuspicious);
|
|
3036
|
+
process.exit(0);
|
|
3037
|
+
});
|
|
3038
|
+
const skillCmd = program.command("skill").description("Skills — alias for hyperclaw hub (search, install, list)");
|
|
2887
3039
|
skillCmd.command("search [query]").description("Search ClawHub for skills").option("-c, --category <cat>", "Filter by category").action(async (query, opts) => {
|
|
2888
3040
|
const hub = new require_hub.SkillHub();
|
|
2889
3041
|
const q = query || "";
|
|
@@ -3194,8 +3346,120 @@ memCmd.command("add-rule <rule>").description("Append a global rule to AGENTS.md
|
|
|
3194
3346
|
await new require_memory.MemoryManager().appendRule(rule);
|
|
3195
3347
|
process.exit(0);
|
|
3196
3348
|
});
|
|
3197
|
-
memCmd.command("add-
|
|
3198
|
-
|
|
3349
|
+
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) => {
|
|
3350
|
+
try {
|
|
3351
|
+
const pkg = "@hyperclaw/memory-lancedb";
|
|
3352
|
+
const mod = await (async () => {
|
|
3353
|
+
try {
|
|
3354
|
+
return await import(pkg);
|
|
3355
|
+
} catch {
|
|
3356
|
+
return null;
|
|
3357
|
+
}
|
|
3358
|
+
})();
|
|
3359
|
+
if (!mod?.VectorMemoryService) throw new Error("Install: npm install @hyperclaw/memory-lancedb vectordb");
|
|
3360
|
+
const cfg = await new require_manager.ConfigManager().load();
|
|
3361
|
+
const apiKey = process.env.GOOGLE_AI_API_KEY ?? (cfg?.provider?.providerId === "google" ? cfg?.provider?.apiKey : void 0);
|
|
3362
|
+
if (!apiKey) throw new Error("GOOGLE_AI_API_KEY required for image indexing");
|
|
3363
|
+
const path$5 = await import("path");
|
|
3364
|
+
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3365
|
+
const svc = new mod.VectorMemoryService({
|
|
3366
|
+
dbPath: path$5.join(getHyperClawDir$1(), "memory-lancedb"),
|
|
3367
|
+
apiKey,
|
|
3368
|
+
embeddingProvider: "gemini"
|
|
3369
|
+
});
|
|
3370
|
+
await svc.addImage(imagePath, opts.caption);
|
|
3371
|
+
console.log(chalk.default.green(`\n ✓ Image indexed: ${imagePath}\n`));
|
|
3372
|
+
} catch (e) {
|
|
3373
|
+
console.log(chalk.default.yellow(`\n ${e.message}\n`));
|
|
3374
|
+
process.exit(1);
|
|
3375
|
+
}
|
|
3376
|
+
process.exit(0);
|
|
3377
|
+
});
|
|
3378
|
+
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) => {
|
|
3379
|
+
try {
|
|
3380
|
+
const pkg = "@hyperclaw/memory-lancedb";
|
|
3381
|
+
const mod = await (async () => {
|
|
3382
|
+
try {
|
|
3383
|
+
return await import(pkg);
|
|
3384
|
+
} catch {
|
|
3385
|
+
return null;
|
|
3386
|
+
}
|
|
3387
|
+
})();
|
|
3388
|
+
if (!mod?.VectorMemoryService) throw new Error("Install: npm install @hyperclaw/memory-lancedb vectordb");
|
|
3389
|
+
const cfg = await new require_manager.ConfigManager().load();
|
|
3390
|
+
const apiKey = process.env.GOOGLE_AI_API_KEY ?? (cfg?.provider?.providerId === "google" ? cfg?.provider?.apiKey : void 0);
|
|
3391
|
+
if (!apiKey) throw new Error("GOOGLE_AI_API_KEY required for audio indexing");
|
|
3392
|
+
const path$5 = await import("path");
|
|
3393
|
+
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3394
|
+
const svc = new mod.VectorMemoryService({
|
|
3395
|
+
dbPath: path$5.join(getHyperClawDir$1(), "memory-lancedb"),
|
|
3396
|
+
apiKey,
|
|
3397
|
+
embeddingProvider: "gemini"
|
|
3398
|
+
});
|
|
3399
|
+
await svc.addAudio(audioPath, opts.transcript);
|
|
3400
|
+
console.log(chalk.default.green(`\n ✓ Audio indexed: ${audioPath}\n`));
|
|
3401
|
+
} catch (e) {
|
|
3402
|
+
console.log(chalk.default.yellow(`\n ${e.message}\n`));
|
|
3403
|
+
process.exit(1);
|
|
3404
|
+
}
|
|
3405
|
+
process.exit(0);
|
|
3406
|
+
});
|
|
3407
|
+
memCmd.command("add-fact <fact>").description("Add a fact to MEMORY.md (and vector DB when memory-lancedb is available)").action(async (fact) => {
|
|
3408
|
+
let vectorStore;
|
|
3409
|
+
try {
|
|
3410
|
+
const pkg = "@hyperclaw/memory-lancedb";
|
|
3411
|
+
const mod = await (async () => {
|
|
3412
|
+
try {
|
|
3413
|
+
return await import(pkg);
|
|
3414
|
+
} catch {
|
|
3415
|
+
return null;
|
|
3416
|
+
}
|
|
3417
|
+
})();
|
|
3418
|
+
const VectorMemoryService = mod?.VectorMemoryService;
|
|
3419
|
+
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3420
|
+
const path$5 = await import("path");
|
|
3421
|
+
if (!VectorMemoryService) throw new Error("not available");
|
|
3422
|
+
const svc = new VectorMemoryService({
|
|
3423
|
+
dbPath: path$5.join(getHyperClawDir$1(), "memory-lancedb"),
|
|
3424
|
+
apiKey: (await new require_manager.ConfigManager().load())?.provider?.apiKey
|
|
3425
|
+
});
|
|
3426
|
+
await svc.init();
|
|
3427
|
+
vectorStore = { addMemory: (t) => svc.addMemory(t) };
|
|
3428
|
+
} catch {}
|
|
3429
|
+
await new require_memory.MemoryManager().addMemory(fact, vectorStore);
|
|
3430
|
+
process.exit(0);
|
|
3431
|
+
});
|
|
3432
|
+
const backupCmd = program.command("backup").description("Backup and restore local HyperClaw state");
|
|
3433
|
+
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) => {
|
|
3434
|
+
const { createBackup } = await Promise.resolve().then(() => require("./backup-7l3iovkX.js"));
|
|
3435
|
+
const dir = await createBackup(opts.output);
|
|
3436
|
+
console.log(chalk.default.green(`\n ✓ Backup created: ${dir}\n`));
|
|
3437
|
+
process.exit(0);
|
|
3438
|
+
});
|
|
3439
|
+
backupCmd.command("verify <dir>").description("Verify backup integrity (checksums)").action(async (dir) => {
|
|
3440
|
+
const { verifyBackup } = await Promise.resolve().then(() => require("./backup-7l3iovkX.js"));
|
|
3441
|
+
const { ok, errors } = await verifyBackup(dir);
|
|
3442
|
+
if (ok) console.log(chalk.default.green("\n ✓ Backup OK\n"));
|
|
3443
|
+
else console.log(chalk.default.red("\n ✗ Errors:\n"), errors.map((e) => " " + e).join("\n"), "\n");
|
|
3444
|
+
process.exit(ok ? 0 : 1);
|
|
3445
|
+
});
|
|
3446
|
+
backupCmd.command("restore <dir>").description("Restore from backup (overwrites local files)").option("-y, --yes", "Skip confirmation").action(async (dir, opts) => {
|
|
3447
|
+
const { restoreBackup } = await Promise.resolve().then(() => require("./backup-7l3iovkX.js"));
|
|
3448
|
+
if (!opts.yes) {
|
|
3449
|
+
console.log(chalk.default.yellow(`\n This will overwrite files in ~/.hyperclaw. Confirm? (y/N) `));
|
|
3450
|
+
const readline$1 = (await import("readline")).createInterface({
|
|
3451
|
+
input: process.stdin,
|
|
3452
|
+
output: process.stdout
|
|
3453
|
+
});
|
|
3454
|
+
const line = await new Promise((r) => readline$1.question("", r));
|
|
3455
|
+
readline$1.close();
|
|
3456
|
+
if (line?.toLowerCase() !== "y") {
|
|
3457
|
+
console.log(chalk.default.gray("\n Aborted.\n"));
|
|
3458
|
+
process.exit(0);
|
|
3459
|
+
}
|
|
3460
|
+
}
|
|
3461
|
+
await restoreBackup(dir);
|
|
3462
|
+
console.log(chalk.default.green("\n ✓ Restored.\n"));
|
|
3199
3463
|
process.exit(0);
|
|
3200
3464
|
});
|
|
3201
3465
|
const cfgCmd = program.command("config").description("Configuration management");
|
|
@@ -3253,7 +3517,7 @@ cfgCmd.command("set-key <KEY=value>").description("Set provider API key or confi
|
|
|
3253
3517
|
xai: "xai"
|
|
3254
3518
|
};
|
|
3255
3519
|
const pid = keyToProvider[key] ?? keyToProvider[key.toLowerCase()] ?? cfg?.provider?.providerId ?? key.toLowerCase();
|
|
3256
|
-
const { validateApiKeyFormat } = await Promise.resolve().then(() => require("./api-key-validation-
|
|
3520
|
+
const { validateApiKeyFormat } = await Promise.resolve().then(() => require("./api-key-validation-BANgbsfO.js"));
|
|
3257
3521
|
const formatErr = validateApiKeyFormat(pid, value);
|
|
3258
3522
|
if (formatErr) {
|
|
3259
3523
|
console.log(chalk.default.yellow(`\n ⚠ ${formatErr}\n`));
|
|
@@ -3315,7 +3579,7 @@ cfgCmd.command("set-service-key <serviceId> [apiKey]").description("Set API key
|
|
|
3315
3579
|
cfgCmd.command("schema").description("Show configuration schema").action(() => {
|
|
3316
3580
|
console.log(chalk.default.bold.hex("#06b6d4")("\n Config schema: ~/.hyperclaw/hyperclaw.json\n"));
|
|
3317
3581
|
const schema = {
|
|
3318
|
-
version: "string (e.g. \"5.4.
|
|
3582
|
+
version: "string (e.g. \"5.4.1\")",
|
|
3319
3583
|
workspaceName: "string",
|
|
3320
3584
|
provider: {
|
|
3321
3585
|
providerId: "string",
|
|
@@ -3370,11 +3634,11 @@ devKeyCmd.command("revoke <id>").description("Revoke a developer key").action(as
|
|
|
3370
3634
|
else console.log(chalk.default.red(` Key not found: ${id}\n`));
|
|
3371
3635
|
process.exit(ok ? 0 : 1);
|
|
3372
3636
|
});
|
|
3373
|
-
program.command("deploy").description("
|
|
3637
|
+
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
3638
|
const platform = (opts.platform ?? "fly").toLowerCase();
|
|
3375
3639
|
const dryRun = !!opts.dryRun;
|
|
3376
3640
|
if (platform === "fly") {
|
|
3377
|
-
console.log(chalk.default.bold.hex("#06b6d4")("\n Deploy to Fly.io\n"));
|
|
3641
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n 🚀 Deploy to Fly.io\n"));
|
|
3378
3642
|
if (dryRun) {
|
|
3379
3643
|
console.log(chalk.default.gray(" Commands to run:"));
|
|
3380
3644
|
console.log(chalk.default.gray(" fly launch # first time"));
|
|
@@ -3395,12 +3659,21 @@ program.command("deploy").description("Deploy gateway to cloud (Fly.io or Render
|
|
|
3395
3659
|
}
|
|
3396
3660
|
}
|
|
3397
3661
|
} 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.
|
|
3662
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n 🚀 Deploy to Render\n"));
|
|
3663
|
+
console.log(chalk.default.gray(" 1. Push to GitHub and connect at https://render.com"));
|
|
3664
|
+
console.log(chalk.default.gray(" 2. New Web Service → connect repo, use render.yaml"));
|
|
3665
|
+
console.log(chalk.default.gray(" 3. Environment: OPENROUTER_API_KEY, HYPERCLAW_GATEWAY_TOKEN"));
|
|
3666
|
+
console.log(chalk.default.cyan("\n One-click: https://render.com/deploy\n"));
|
|
3667
|
+
} else if (platform === "railway") {
|
|
3668
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n 🚀 Deploy to Railway\n"));
|
|
3669
|
+
console.log(chalk.default.gray(" 1. Create project: https://railway.app/new"));
|
|
3670
|
+
console.log(chalk.default.gray(" 2. Deploy from GitHub or use Railway CLI:"));
|
|
3671
|
+
console.log(chalk.default.gray(" npm i -g @railway/cli && railway login"));
|
|
3672
|
+
console.log(chalk.default.gray(" railway init; railway add"));
|
|
3673
|
+
console.log(chalk.default.gray(" 3. Variables: OPENROUTER_API_KEY, HYPERCLAW_GATEWAY_TOKEN, PORT=18789"));
|
|
3674
|
+
console.log(chalk.default.cyan("\n One-click: https://railway.app/template (use Docker)\n"));
|
|
3402
3675
|
} else {
|
|
3403
|
-
console.log(chalk.default.red(` Unknown platform: ${platform}. Use fly or
|
|
3676
|
+
console.log(chalk.default.red(` Unknown platform: ${platform}. Use fly, render, or railway.\n`));
|
|
3404
3677
|
process.exit(1);
|
|
3405
3678
|
}
|
|
3406
3679
|
process.exit(0);
|
|
@@ -3593,40 +3866,40 @@ themeCmd.command("preview").description("Preview all themes side-by-side").actio
|
|
|
3593
3866
|
});
|
|
3594
3867
|
const secretsCmd = program.command("secrets").description("External secrets management");
|
|
3595
3868
|
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-
|
|
3869
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CNgdJunf.js"));
|
|
3597
3870
|
const filter = opts.requiredBy?.split(",");
|
|
3598
3871
|
await new SecretsManager().audit(filter);
|
|
3599
3872
|
process.exit(0);
|
|
3600
3873
|
});
|
|
3601
3874
|
secretsCmd.command("set <KEY=value>").description("Set a secret in .env file").action(async (kv) => {
|
|
3602
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3875
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CNgdJunf.js"));
|
|
3603
3876
|
await new SecretsManager().set(kv);
|
|
3604
3877
|
process.exit(0);
|
|
3605
3878
|
});
|
|
3606
3879
|
secretsCmd.command("apply").description("Write secrets from .env to shell config (~/.bashrc, ~/.zshrc)").action(async () => {
|
|
3607
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3880
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CNgdJunf.js"));
|
|
3608
3881
|
await new SecretsManager().apply();
|
|
3609
3882
|
process.exit(0);
|
|
3610
3883
|
});
|
|
3611
3884
|
secretsCmd.command("reload").description("Reload secrets into running gateway").action(async () => {
|
|
3612
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3885
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CNgdJunf.js"));
|
|
3613
3886
|
await new SecretsManager().reload();
|
|
3614
3887
|
process.exit(0);
|
|
3615
3888
|
});
|
|
3616
3889
|
secretsCmd.command("remove <key>").description("Remove a secret from .env").action(async (key) => {
|
|
3617
|
-
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-
|
|
3890
|
+
const { SecretsManager } = await Promise.resolve().then(() => require("./manager-CNgdJunf.js"));
|
|
3618
3891
|
await new SecretsManager().remove(key);
|
|
3619
3892
|
process.exit(0);
|
|
3620
3893
|
});
|
|
3621
3894
|
secretsCmd.command("credentials").description("List provider credential files (credentials/*.json)").action(async () => {
|
|
3622
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
3895
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-CR4WSDGl.js"));
|
|
3623
3896
|
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
3624
3897
|
await new CredentialsStore(getHyperClawDir$1()).showList();
|
|
3625
3898
|
process.exit(0);
|
|
3626
3899
|
});
|
|
3627
3900
|
const securityCmd = program.command("security").description("Security tools");
|
|
3628
3901
|
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-
|
|
3902
|
+
const { runSecurityAudit } = await Promise.resolve().then(() => require("./audit-BLMB8qp7.js"));
|
|
3630
3903
|
await runSecurityAudit({
|
|
3631
3904
|
deep: opts.deep,
|
|
3632
3905
|
fix: opts.fix,
|
|
@@ -3635,20 +3908,20 @@ securityCmd.command("audit").description("Security audit — file permissions, D
|
|
|
3635
3908
|
process.exit(0);
|
|
3636
3909
|
});
|
|
3637
3910
|
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-
|
|
3911
|
+
const { osintSetup, osintQuickStart } = await Promise.resolve().then(() => require("./osint-DLYZsp1k.js"));
|
|
3639
3912
|
if (opts.show || opts.reset) await osintSetup({
|
|
3640
3913
|
show: opts.show,
|
|
3641
3914
|
reset: opts.reset
|
|
3642
3915
|
});
|
|
3643
3916
|
else if (workflow === "chat") {
|
|
3644
|
-
const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-
|
|
3917
|
+
const { runOsintChat } = await Promise.resolve().then(() => require("./osint-chat-B0lc0Y6r.js"));
|
|
3645
3918
|
await runOsintChat({ model: opts.model });
|
|
3646
3919
|
} else if (workflow === "setup" || workflow) await osintSetup({ mode: workflow });
|
|
3647
3920
|
else await osintQuickStart();
|
|
3648
3921
|
process.exit(0);
|
|
3649
3922
|
});
|
|
3650
3923
|
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-
|
|
3924
|
+
const { runChat } = await Promise.resolve().then(() => require("./chat-CiuT-GTs.js"));
|
|
3652
3925
|
const cfg = await new require_manager.ConfigManager().load().catch(() => null);
|
|
3653
3926
|
const port = cfg?.gateway?.port ?? 18789;
|
|
3654
3927
|
const gm = new GatewayManager$1();
|
|
@@ -3663,7 +3936,7 @@ program.command("chat").description("Interactive terminal chat with the agent").
|
|
|
3663
3936
|
});
|
|
3664
3937
|
const agentRunCmd = program.command("agent").description("Run agent with thinking control");
|
|
3665
3938
|
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-
|
|
3939
|
+
const { runAgent } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
|
|
3667
3940
|
await runAgent({
|
|
3668
3941
|
message: opts.message,
|
|
3669
3942
|
thinking: opts.thinking,
|
|
@@ -3678,8 +3951,19 @@ agentRunCmd.requiredOption("-m, --message <text>", "Message to send to the agent
|
|
|
3678
3951
|
process.exit(0);
|
|
3679
3952
|
});
|
|
3680
3953
|
const threadsCmd = program.command("threads").description("ACP thread-bound agent sessions");
|
|
3954
|
+
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) => {
|
|
3955
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
|
|
3956
|
+
const mgr = new ACPThreadManager();
|
|
3957
|
+
const thread = await mgr.create({
|
|
3958
|
+
resumeSessionId: opts.resume,
|
|
3959
|
+
name: opts.name,
|
|
3960
|
+
channelId: opts.channel
|
|
3961
|
+
});
|
|
3962
|
+
console.log(require("chalk").green(`\n ✔ Thread: ${thread.name} (${thread.id})\n`));
|
|
3963
|
+
process.exit(0);
|
|
3964
|
+
});
|
|
3681
3965
|
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-
|
|
3966
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
|
|
3683
3967
|
const mgr = new ACPThreadManager();
|
|
3684
3968
|
const threads = await mgr.list({
|
|
3685
3969
|
channelId: opts.channel,
|
|
@@ -3689,29 +3973,33 @@ threadsCmd.command("list").description("List agent threads").option("--channel <
|
|
|
3689
3973
|
process.exit(0);
|
|
3690
3974
|
});
|
|
3691
3975
|
threadsCmd.command("terminate <id>").description("Terminate a thread").action(async (id) => {
|
|
3692
|
-
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-
|
|
3976
|
+
const { ACPThreadManager } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
|
|
3693
3977
|
await new ACPThreadManager().terminate(id);
|
|
3694
3978
|
console.log(require("chalk").green(`\n ✔ Thread terminated: ${id}\n`));
|
|
3695
3979
|
process.exit(0);
|
|
3696
3980
|
});
|
|
3981
|
+
program.command("acp").description("Start ACP server on stdio for IDE integration (VS Code, Zed, Cursor, Codex)").action(async () => {
|
|
3982
|
+
const { runACPStdio } = await Promise.resolve().then(() => require("./src-D-OND_62.js"));
|
|
3983
|
+
await runACPStdio();
|
|
3984
|
+
});
|
|
3697
3985
|
const canvasCmd = program.command("canvas").description("Live AI-driven UI canvas");
|
|
3698
3986
|
canvasCmd.command("show").description("Show current canvas components").action(async () => {
|
|
3699
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
3987
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-Cg3c41A5.js"));
|
|
3700
3988
|
await new CanvasRenderer().show();
|
|
3701
3989
|
process.exit(0);
|
|
3702
3990
|
});
|
|
3703
3991
|
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-
|
|
3992
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-Cg3c41A5.js"));
|
|
3705
3993
|
await new CanvasRenderer().addComponent(type, title);
|
|
3706
3994
|
process.exit(0);
|
|
3707
3995
|
});
|
|
3708
3996
|
canvasCmd.command("clear").description("Clear all canvas components").action(async () => {
|
|
3709
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
3997
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-Cg3c41A5.js"));
|
|
3710
3998
|
await new CanvasRenderer().clear();
|
|
3711
3999
|
process.exit(0);
|
|
3712
4000
|
});
|
|
3713
4001
|
canvasCmd.command("export").description("Export canvas as HTML file").action(async () => {
|
|
3714
|
-
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-
|
|
4002
|
+
const { CanvasRenderer } = await Promise.resolve().then(() => require("./renderer-Cg3c41A5.js"));
|
|
3715
4003
|
const fs$7 = require("fs-extra");
|
|
3716
4004
|
const html = await new CanvasRenderer().exportHtml();
|
|
3717
4005
|
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
@@ -3733,62 +4021,67 @@ deliveryCmd.command("retry <id>").description("Retry a dead-lettered delivery it
|
|
|
3733
4021
|
});
|
|
3734
4022
|
const mcpCmd = program.command("mcp").description("MCP (Model Context Protocol) server management");
|
|
3735
4023
|
mcpCmd.command("list").description("List configured MCP servers").action(async () => {
|
|
3736
|
-
const { mcpList } = await Promise.resolve().then(() => require("./mcp-
|
|
4024
|
+
const { mcpList } = await Promise.resolve().then(() => require("./mcp-CAJSA_ee.js"));
|
|
3737
4025
|
await mcpList();
|
|
3738
4026
|
process.exit(0);
|
|
3739
4027
|
});
|
|
3740
4028
|
mcpCmd.command("add").description("Add MCP server").action(async () => {
|
|
3741
|
-
const { mcpAdd } = await Promise.resolve().then(() => require("./mcp-
|
|
4029
|
+
const { mcpAdd } = await Promise.resolve().then(() => require("./mcp-CAJSA_ee.js"));
|
|
3742
4030
|
await mcpAdd();
|
|
3743
4031
|
process.exit(0);
|
|
3744
4032
|
});
|
|
3745
4033
|
mcpCmd.command("remove <id>").description("Remove MCP server").action(async (id) => {
|
|
3746
|
-
const { mcpRemove } = await Promise.resolve().then(() => require("./mcp-
|
|
4034
|
+
const { mcpRemove } = await Promise.resolve().then(() => require("./mcp-CAJSA_ee.js"));
|
|
3747
4035
|
await mcpRemove(id);
|
|
3748
4036
|
process.exit(0);
|
|
3749
4037
|
});
|
|
3750
4038
|
mcpCmd.command("probe [id]").description("Test MCP server connection").action(async (id) => {
|
|
3751
|
-
const { mcpProbe } = await Promise.resolve().then(() => require("./mcp-
|
|
4039
|
+
const { mcpProbe } = await Promise.resolve().then(() => require("./mcp-CAJSA_ee.js"));
|
|
3752
4040
|
await mcpProbe(id);
|
|
3753
4041
|
process.exit(0);
|
|
3754
4042
|
});
|
|
3755
4043
|
const nodeCmd = program.command("node").description("HyperClaw node management (local, remote, android)");
|
|
3756
4044
|
nodeCmd.command("list").description("List paired nodes").action(async () => {
|
|
3757
|
-
const { nodeList } = await Promise.resolve().then(() => require("./node-
|
|
4045
|
+
const { nodeList } = await Promise.resolve().then(() => require("./node-CLWgPlAk.js"));
|
|
3758
4046
|
await nodeList();
|
|
3759
4047
|
process.exit(0);
|
|
3760
4048
|
});
|
|
3761
4049
|
nodeCmd.command("add").description("Add or pair a node").action(async () => {
|
|
3762
|
-
const { nodeAdd } = await Promise.resolve().then(() => require("./node-
|
|
4050
|
+
const { nodeAdd } = await Promise.resolve().then(() => require("./node-CLWgPlAk.js"));
|
|
3763
4051
|
await nodeAdd();
|
|
3764
4052
|
process.exit(0);
|
|
3765
4053
|
});
|
|
3766
4054
|
nodeCmd.command("probe [id]").description("Probe node connection").action(async (id) => {
|
|
3767
|
-
const { nodeProbe } = await Promise.resolve().then(() => require("./node-
|
|
4055
|
+
const { nodeProbe } = await Promise.resolve().then(() => require("./node-CLWgPlAk.js"));
|
|
3768
4056
|
await nodeProbe(id);
|
|
3769
4057
|
process.exit(0);
|
|
3770
4058
|
});
|
|
3771
4059
|
nodeCmd.command("remove <id>").description("Remove paired node").action(async (id) => {
|
|
3772
|
-
const { nodeRemove } = await Promise.resolve().then(() => require("./node-
|
|
4060
|
+
const { nodeRemove } = await Promise.resolve().then(() => require("./node-CLWgPlAk.js"));
|
|
3773
4061
|
await nodeRemove(id);
|
|
3774
4062
|
process.exit(0);
|
|
3775
4063
|
});
|
|
4064
|
+
nodeCmd.command("queue [nodeId]").description("List pending work queued for dormant nodes").action(async (nodeId) => {
|
|
4065
|
+
const { nodeQueue } = await Promise.resolve().then(() => require("./node-CLWgPlAk.js"));
|
|
4066
|
+
await nodeQueue(nodeId);
|
|
4067
|
+
process.exit(0);
|
|
4068
|
+
});
|
|
3776
4069
|
const arCmd = program.command("auto-reply").description("Auto-reply rule engine");
|
|
3777
4070
|
arCmd.command("list").action(async () => {
|
|
3778
|
-
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-
|
|
4071
|
+
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-D0v5nuSE.js"));
|
|
3779
4072
|
const e = new AutoReplyEngine();
|
|
3780
4073
|
await e.load();
|
|
3781
4074
|
e.showList();
|
|
3782
4075
|
process.exit(0);
|
|
3783
4076
|
});
|
|
3784
4077
|
arCmd.command("toggle <id>").action(async (id) => {
|
|
3785
|
-
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-
|
|
4078
|
+
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-D0v5nuSE.js"));
|
|
3786
4079
|
const e = new AutoReplyEngine();
|
|
3787
4080
|
await e.toggle(id);
|
|
3788
4081
|
process.exit(0);
|
|
3789
4082
|
});
|
|
3790
4083
|
arCmd.command("remove <id>").action(async (id) => {
|
|
3791
|
-
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-
|
|
4084
|
+
const { AutoReplyEngine } = await Promise.resolve().then(() => require("./rules-D0v5nuSE.js"));
|
|
3792
4085
|
const e = new AutoReplyEngine();
|
|
3793
4086
|
await e.remove(id);
|
|
3794
4087
|
process.exit(0);
|
|
@@ -3797,7 +4090,7 @@ const gmailCmd = program.command("gmail").description("Gmail Pub/Sub real-time n
|
|
|
3797
4090
|
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
4091
|
const chalk$11 = require("chalk");
|
|
3799
4092
|
try {
|
|
3800
|
-
const { setupGmailWatch } = await Promise.resolve().then(() => require("./gmail-watch-setup
|
|
4093
|
+
const { setupGmailWatch } = await Promise.resolve().then(() => require("./gmail-watch-setup--eQ8raeb.js"));
|
|
3801
4094
|
const labelIds = opts.labels.split(",").map((s) => s.trim()).filter(Boolean);
|
|
3802
4095
|
const result = await setupGmailWatch({
|
|
3803
4096
|
topicName: opts.topic,
|
|
@@ -3817,7 +4110,7 @@ gmailCmd.command("watch-setup").description("Register Gmail watch for push notif
|
|
|
3817
4110
|
const cronCmd = program.command("cron").description("Scheduled tasks (cron → agent prompt)");
|
|
3818
4111
|
cronCmd.command("list").action(async () => {
|
|
3819
4112
|
const chalk$11 = require("chalk");
|
|
3820
|
-
const { loadCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
4113
|
+
const { loadCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-f_ieXSG2.js"));
|
|
3821
4114
|
const tasks = await loadCronTasks();
|
|
3822
4115
|
console.log(chalk$11.bold.cyan("\n ⏰ CRON TASKS\n"));
|
|
3823
4116
|
if (tasks.length === 0) {
|
|
@@ -3830,16 +4123,17 @@ cronCmd.command("list").action(async () => {
|
|
|
3830
4123
|
console.log(` ${dot} ${chalk$11.white(t.name || t.id)}`);
|
|
3831
4124
|
console.log(` ${chalk$11.gray("Schedule:")} ${t.schedule}`);
|
|
3832
4125
|
console.log(` ${chalk$11.gray("Prompt:")} ${t.prompt.slice(0, 60)}${t.prompt.length > 60 ? "..." : ""}`);
|
|
4126
|
+
if (t.skillId) console.log(` ${chalk$11.gray("Skill:")} ${t.skillId}`);
|
|
3833
4127
|
if (t.lastRunAt) console.log(` ${chalk$11.gray("Last run:")} ${t.lastRunAt}`);
|
|
3834
4128
|
console.log();
|
|
3835
4129
|
}
|
|
3836
4130
|
process.exit(0);
|
|
3837
4131
|
});
|
|
3838
|
-
cronCmd.command("add").arguments("<schedule> <prompt>").option("-n, --name <name>", "Task name").action(async (schedule, prompt, opts) => {
|
|
4132
|
+
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
4133
|
const chalk$11 = require("chalk");
|
|
3840
|
-
const { loadCronTasks, addCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
4134
|
+
const { loadCronTasks, addCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-f_ieXSG2.js"));
|
|
3841
4135
|
await loadCronTasks();
|
|
3842
|
-
addCronTask(schedule, prompt, opts.name);
|
|
4136
|
+
addCronTask(schedule, prompt, opts.name, opts.skill);
|
|
3843
4137
|
await saveCronTasks();
|
|
3844
4138
|
console.log(chalk$11.green(`\n ✔ Cron task added: ${schedule} → "${prompt.slice(0, 40)}..."\n`));
|
|
3845
4139
|
console.log(chalk$11.gray(" Restart gateway to apply.\n"));
|
|
@@ -3847,7 +4141,7 @@ cronCmd.command("add").arguments("<schedule> <prompt>").option("-n, --name <name
|
|
|
3847
4141
|
});
|
|
3848
4142
|
cronCmd.command("remove <id>").action(async (id) => {
|
|
3849
4143
|
const chalk$11 = require("chalk");
|
|
3850
|
-
const { loadCronTasks, removeCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-
|
|
4144
|
+
const { loadCronTasks, removeCronTask, saveCronTasks } = await Promise.resolve().then(() => require("./cron-tasks-f_ieXSG2.js"));
|
|
3851
4145
|
await loadCronTasks();
|
|
3852
4146
|
if (removeCronTask(id)) {
|
|
3853
4147
|
await saveCronTasks();
|
|
@@ -3907,20 +4201,20 @@ program.command("nodes").description("List connected mobile nodes (iOS/Android C
|
|
|
3907
4201
|
});
|
|
3908
4202
|
const whCmd = program.command("webhooks").description("Webhook endpoint management");
|
|
3909
4203
|
whCmd.command("list").action(async () => {
|
|
3910
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager
|
|
4204
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-R0TlRMZy.js"));
|
|
3911
4205
|
const m = new WebhookManager();
|
|
3912
4206
|
await m.load();
|
|
3913
4207
|
m.showList();
|
|
3914
4208
|
process.exit(0);
|
|
3915
4209
|
});
|
|
3916
4210
|
whCmd.command("remove <id>").action(async (id) => {
|
|
3917
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager
|
|
4211
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-R0TlRMZy.js"));
|
|
3918
4212
|
const m = new WebhookManager();
|
|
3919
4213
|
await m.remove(id);
|
|
3920
4214
|
process.exit(0);
|
|
3921
4215
|
});
|
|
3922
4216
|
whCmd.command("toggle <id>").action(async (id) => {
|
|
3923
|
-
const { WebhookManager } = await Promise.resolve().then(() => require("./manager
|
|
4217
|
+
const { WebhookManager } = await Promise.resolve().then(() => require("./manager-R0TlRMZy.js"));
|
|
3924
4218
|
const m = new WebhookManager();
|
|
3925
4219
|
await m.toggle(id);
|
|
3926
4220
|
process.exit(0);
|
|
@@ -3929,7 +4223,7 @@ const logsCmd = program.command("logs").description("View gateway logs");
|
|
|
3929
4223
|
logsCmd.option("-n, --lines <n>", "Number of lines to show", "50");
|
|
3930
4224
|
logsCmd.option("-f, --follow", "Stream logs in real time");
|
|
3931
4225
|
logsCmd.action(async (opts) => {
|
|
3932
|
-
const { tailLog, streamLog } = await Promise.resolve().then(() => require("./logger-
|
|
4226
|
+
const { tailLog, streamLog } = await Promise.resolve().then(() => require("./logger-CmphFNmW.js"));
|
|
3933
4227
|
if (opts.follow) await streamLog();
|
|
3934
4228
|
else {
|
|
3935
4229
|
await tailLog(parseInt(opts.lines));
|
|
@@ -3937,7 +4231,7 @@ logsCmd.action(async (opts) => {
|
|
|
3937
4231
|
}
|
|
3938
4232
|
});
|
|
3939
4233
|
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-
|
|
4234
|
+
const { startGateway } = await Promise.resolve().then(() => require("./server-BlqWBbS7.js"));
|
|
3941
4235
|
await startGateway();
|
|
3942
4236
|
process.on("SIGINT", () => process.exit(0));
|
|
3943
4237
|
process.on("SIGTERM", () => process.exit(0));
|
|
@@ -3994,9 +4288,9 @@ const authCmd = program.command("auth").description("OAuth and provider credenti
|
|
|
3994
4288
|
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
4289
|
const chalk$11 = require("chalk");
|
|
3996
4290
|
const inquirer$2 = require("inquirer");
|
|
3997
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
4291
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-CR4WSDGl.js"));
|
|
3998
4292
|
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
|
|
4293
|
+
const { getApiKeyGuide, GENERIC_API_KEY_STEPS } = await Promise.resolve().then(() => require("./api-keys-guide-CFJPrgsL.js"));
|
|
4000
4294
|
const fs$7 = (await import("fs-extra")).default;
|
|
4001
4295
|
const path$5 = await import("path");
|
|
4002
4296
|
const guide = getApiKeyGuide(serviceId);
|
|
@@ -4049,7 +4343,7 @@ authCmd.command("add <service_id>").description("Add API key for a service (any
|
|
|
4049
4343
|
});
|
|
4050
4344
|
authCmd.command("remove <service_id>").description("Remove API key for a service from credentials and .env").action(async (serviceId) => {
|
|
4051
4345
|
const chalk$11 = require("chalk");
|
|
4052
|
-
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-
|
|
4346
|
+
const { CredentialsStore } = await Promise.resolve().then(() => require("./credentials-store-CR4WSDGl.js"));
|
|
4053
4347
|
const { getHyperClawDir: getHyperClawDir$1, getEnvFilePath } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
4054
4348
|
const fs$7 = (await import("fs-extra")).default;
|
|
4055
4349
|
const safeId = serviceId.replace(/[^a-zA-Z0-9_-]/g, "_").toLowerCase();
|
|
@@ -4069,7 +4363,7 @@ authCmd.command("oauth <provider>").description("Run full OAuth flow. Providers:
|
|
|
4069
4363
|
const chalk$11 = require("chalk");
|
|
4070
4364
|
const ora$4 = (await import("ora")).default;
|
|
4071
4365
|
try {
|
|
4072
|
-
const { runOAuthFlow } = await Promise.resolve().then(() => require("./oauth-flow-
|
|
4366
|
+
const { runOAuthFlow } = await Promise.resolve().then(() => require("./oauth-flow-C4QSMsbl.js"));
|
|
4073
4367
|
const spinner = ora$4("Starting OAuth flow...").start();
|
|
4074
4368
|
spinner.text = "Opening browser — complete the consent and return here.";
|
|
4075
4369
|
const tokens = await runOAuthFlow(provider, {
|
|
@@ -4077,7 +4371,7 @@ authCmd.command("oauth <provider>").description("Run full OAuth flow. Providers:
|
|
|
4077
4371
|
clientSecret: opts.clientSecret
|
|
4078
4372
|
});
|
|
4079
4373
|
spinner.stop();
|
|
4080
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
4374
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-Bnul5A_Z.js"));
|
|
4081
4375
|
const now = Math.floor(Date.now() / 1e3);
|
|
4082
4376
|
const expires_at = tokens.expires_in ? now + tokens.expires_in : void 0;
|
|
4083
4377
|
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 +4406,7 @@ authCmd.command("setup-token <provider>").description("Save setup token (Anthrop
|
|
|
4112
4406
|
console.log(chalk$11.red("\n ✖ No token provided.\n"));
|
|
4113
4407
|
process.exit(1);
|
|
4114
4408
|
}
|
|
4115
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
4409
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-Bnul5A_Z.js"));
|
|
4116
4410
|
await writeOAuthToken("anthropic-setup", {
|
|
4117
4411
|
access_token: token.trim(),
|
|
4118
4412
|
token_url: "https://api.anthropic.com"
|
|
@@ -4123,7 +4417,7 @@ authCmd.command("setup-token <provider>").description("Save setup token (Anthrop
|
|
|
4123
4417
|
});
|
|
4124
4418
|
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
4419
|
const chalk$11 = require("chalk");
|
|
4126
|
-
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-
|
|
4420
|
+
const { writeOAuthToken } = await Promise.resolve().then(() => require("./oauth-provider-Bnul5A_Z.js"));
|
|
4127
4421
|
const access_token = opts.token || process.env.OAUTH_ACCESS_TOKEN;
|
|
4128
4422
|
if (!access_token) {
|
|
4129
4423
|
console.log(chalk$11.red("\n ✖ Provide --token <access_token> or set OAUTH_ACCESS_TOKEN\n"));
|
|
@@ -4151,7 +4445,7 @@ workspaceCmd.command("init [dir]").description("Initialize workspace files (SOUL
|
|
|
4151
4445
|
try {
|
|
4152
4446
|
cfg = await fs$7.readJson(getConfigPath$1());
|
|
4153
4447
|
} catch {}
|
|
4154
|
-
const { initWorkspaceFiles } = await Promise.resolve().then(() => require("./memory-
|
|
4448
|
+
const { initWorkspaceFiles } = await Promise.resolve().then(() => require("./memory-CyonlkTy.js"));
|
|
4155
4449
|
await initWorkspaceFiles({
|
|
4156
4450
|
agentName: cfg.identity?.agentName || "Hyper",
|
|
4157
4451
|
personality: cfg.identity?.personality || "helpful and concise",
|
|
@@ -4190,13 +4484,13 @@ workspaceCmd.command("show [dir]").description("Show workspace files summary").a
|
|
|
4190
4484
|
});
|
|
4191
4485
|
const botCmd = program.command("bot").description("HyperClaw Bot — companion bot for remote gateway control");
|
|
4192
4486
|
botCmd.command("status").action(async () => {
|
|
4193
|
-
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4487
|
+
const { showBotStatus } = await Promise.resolve().then(() => require("./hyperclawbot-v65eL2U0.js"));
|
|
4194
4488
|
await showBotStatus();
|
|
4195
4489
|
process.exit(0);
|
|
4196
4490
|
});
|
|
4197
4491
|
botCmd.command("setup").description("Configure HyperClaw Bot (Telegram token, allowed users)").action(async () => {
|
|
4198
4492
|
const inquirer$2 = require("inquirer");
|
|
4199
|
-
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4493
|
+
const { saveBotConfig } = await Promise.resolve().then(() => require("./hyperclawbot-v65eL2U0.js"));
|
|
4200
4494
|
const chalk$11 = require("chalk");
|
|
4201
4495
|
console.log(chalk$11.bold.hex("#06b6d4")("\n 🦅 HYPERCLAW BOT SETUP\n"));
|
|
4202
4496
|
console.log(chalk$11.gray(" Create a bot at t.me/BotFather, then paste the token below.\n"));
|
|
@@ -4258,14 +4552,14 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4258
4552
|
cwd: process.cwd()
|
|
4259
4553
|
});
|
|
4260
4554
|
child.unref();
|
|
4261
|
-
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4555
|
+
const { writeBotPid } = await Promise.resolve().then(() => require("./hyperclawbot-v65eL2U0.js"));
|
|
4262
4556
|
await writeBotPid(child.pid);
|
|
4263
4557
|
console.log(require("chalk").green(`\n ✔ HyperClaw Bot started in background (PID ${child.pid})`));
|
|
4264
4558
|
console.log(require("chalk").gray(" Stop with: hyperclaw bot stop\n"));
|
|
4265
4559
|
process.exit(0);
|
|
4266
4560
|
return;
|
|
4267
4561
|
}
|
|
4268
|
-
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4562
|
+
const { loadBotConfig, TelegramHyperClawBot, DiscordHyperClawBot } = await Promise.resolve().then(() => require("./hyperclawbot-v65eL2U0.js"));
|
|
4269
4563
|
const cfg = await loadBotConfig();
|
|
4270
4564
|
if (!cfg) {
|
|
4271
4565
|
console.log(require("chalk").red("\n ✖ HyperClaw Bot not configured. Run: hyperclaw bot setup\n"));
|
|
@@ -4292,41 +4586,73 @@ botCmd.command("start").description("Start HyperClaw Bot (foreground or backgrou
|
|
|
4292
4586
|
});
|
|
4293
4587
|
botCmd.command("stop").description("Stop HyperClaw Bot (when running in background)").action(async () => {
|
|
4294
4588
|
const chalk$11 = require("chalk");
|
|
4295
|
-
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-
|
|
4589
|
+
const { stopBotProcess } = await Promise.resolve().then(() => require("./hyperclawbot-v65eL2U0.js"));
|
|
4296
4590
|
const stopped = await stopBotProcess();
|
|
4297
4591
|
if (stopped) console.log(chalk$11.green("\n ✔ HyperClaw Bot stopped\n"));
|
|
4298
4592
|
else console.log(chalk$11.gray("\n Bot not running in background (no PID file). Use Ctrl+C to stop foreground bot.\n"));
|
|
4299
4593
|
process.exit(stopped ? 0 : 1);
|
|
4300
4594
|
});
|
|
4301
|
-
memCmd.command("search <query>").description("
|
|
4302
|
-
|
|
4595
|
+
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) => {
|
|
4596
|
+
try {
|
|
4597
|
+
const pkg = "@hyperclaw/memory-lancedb";
|
|
4598
|
+
const mod = await (async () => {
|
|
4599
|
+
try {
|
|
4600
|
+
return await import(pkg);
|
|
4601
|
+
} catch {
|
|
4602
|
+
return null;
|
|
4603
|
+
}
|
|
4604
|
+
})();
|
|
4605
|
+
if (!mod?.VectorMemoryService) throw new Error("not available");
|
|
4606
|
+
const { VectorMemoryService } = mod;
|
|
4607
|
+
const { getHyperClawDir: getHyperClawDir$1 } = await Promise.resolve().then(() => require("./paths-D-QecARF.js"));
|
|
4608
|
+
const path$5 = await import("path");
|
|
4609
|
+
const cfg = await new require_manager.ConfigManager().load();
|
|
4610
|
+
const svc = new VectorMemoryService({
|
|
4611
|
+
dbPath: path$5.join(getHyperClawDir$1(), "memory-lancedb"),
|
|
4612
|
+
apiKey: cfg?.provider?.apiKey
|
|
4613
|
+
});
|
|
4614
|
+
await svc.init();
|
|
4615
|
+
const results = await svc.search(query, parseInt(opts.limit));
|
|
4616
|
+
if (results.length === 0) console.log(chalk.default.gray("\n No results. Add facts with: hyperclaw memory add-fact \"...\"\n"));
|
|
4617
|
+
else {
|
|
4618
|
+
console.log(chalk.default.bold.hex("#06b6d4")("\n Vector memory search:\n"));
|
|
4619
|
+
for (const r of results) console.log(chalk.default.gray(` • ${r.text}`));
|
|
4620
|
+
console.log();
|
|
4621
|
+
}
|
|
4622
|
+
} catch (e) {
|
|
4623
|
+
console.log(chalk.default.yellow("\n Vector memory not available. Install: npm install @hyperclaw/memory-lancedb vectordb openai\n"));
|
|
4624
|
+
}
|
|
4625
|
+
process.exit(0);
|
|
4626
|
+
});
|
|
4627
|
+
memCmd.command("search <query>").description("Search MEMORY.md (text search)").action(async (query) => {
|
|
4628
|
+
const { searchMemory } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
|
|
4303
4629
|
await searchMemory(query);
|
|
4304
4630
|
process.exit(0);
|
|
4305
4631
|
});
|
|
4306
4632
|
memCmd.command("auto-show").description("Show auto-extracted memories from MEMORY.md").action(async () => {
|
|
4307
|
-
const { showMemory } = await Promise.resolve().then(() => require("./src-
|
|
4633
|
+
const { showMemory } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
|
|
4308
4634
|
await showMemory();
|
|
4309
4635
|
process.exit(0);
|
|
4310
4636
|
});
|
|
4311
4637
|
memCmd.command("clear").description("Clear all auto-extracted memories").action(async () => {
|
|
4312
|
-
const { clearMemory } = await Promise.resolve().then(() => require("./src-
|
|
4638
|
+
const { clearMemory } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
|
|
4313
4639
|
await clearMemory();
|
|
4314
4640
|
process.exit(0);
|
|
4315
4641
|
});
|
|
4316
4642
|
memCmd.command("save <text>").description("Manually save a fact to MEMORY.md").action(async (text) => {
|
|
4317
|
-
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-
|
|
4643
|
+
const { saveMemoryDirect } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
|
|
4318
4644
|
await saveMemoryDirect(text);
|
|
4319
4645
|
console.log(chalk.default.hex("#06b6d4")(` ✅ Saved: ${text}\n`));
|
|
4320
4646
|
process.exit(0);
|
|
4321
4647
|
});
|
|
4322
4648
|
const pcCmd = program.command("pc").description("PC access — give the AI access to your computer");
|
|
4323
4649
|
pcCmd.command("status").description("Show PC access status and config").action(async () => {
|
|
4324
|
-
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-
|
|
4650
|
+
const { showPCAccessStatus } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
|
|
4325
4651
|
await showPCAccessStatus();
|
|
4326
4652
|
process.exit(0);
|
|
4327
4653
|
});
|
|
4328
4654
|
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-
|
|
4655
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
|
|
4330
4656
|
const level = opts.level;
|
|
4331
4657
|
const allowed = [
|
|
4332
4658
|
"read-only",
|
|
@@ -4353,7 +4679,7 @@ pcCmd.command("enable").description("Enable PC access for the AI").option("--lev
|
|
|
4353
4679
|
process.exit(0);
|
|
4354
4680
|
});
|
|
4355
4681
|
pcCmd.command("disable").description("Disable PC access").action(async () => {
|
|
4356
|
-
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-
|
|
4682
|
+
const { savePCAccessConfig } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
|
|
4357
4683
|
await savePCAccessConfig({ enabled: false });
|
|
4358
4684
|
console.log(chalk.default.hex("#06b6d4")("\n ✅ PC access disabled\n"));
|
|
4359
4685
|
process.exit(0);
|
|
@@ -4378,7 +4704,7 @@ pcCmd.command("log").description("Show PC access audit log").option("-n, --lines
|
|
|
4378
4704
|
process.exit(0);
|
|
4379
4705
|
});
|
|
4380
4706
|
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-
|
|
4707
|
+
const { loadPCAccessConfig, getPCAccessTools } = await Promise.resolve().then(() => require("./src-CyCLoqIP.js"));
|
|
4382
4708
|
const cfg = await loadPCAccessConfig();
|
|
4383
4709
|
if (!cfg.enabled) {
|
|
4384
4710
|
console.log(chalk.default.red("\n ✖ PC access disabled. Run: hyperclaw pc enable\n"));
|
|
@@ -4419,7 +4745,7 @@ async function runUpdateCheck() {
|
|
|
4419
4745
|
} catch {}
|
|
4420
4746
|
}
|
|
4421
4747
|
if (process.argv.length === 2) (async () => {
|
|
4422
|
-
const { ConfigManager: ConfigManager$1 } = await Promise.resolve().then(() => require("./manager-
|
|
4748
|
+
const { ConfigManager: ConfigManager$1 } = await Promise.resolve().then(() => require("./manager-Bq5LApdR.js"));
|
|
4423
4749
|
const cfg = await new ConfigManager$1().load().catch(() => null);
|
|
4424
4750
|
if (cfg?.provider?.apiKey || cfg?.provider?.providerId) {
|
|
4425
4751
|
await new require_banner.Banner().showNeonBanner(false);
|
|
@@ -4437,7 +4763,7 @@ if (process.argv.length === 2) (async () => {
|
|
|
4437
4763
|
console.log(` ✓ ${t.c("hyperclaw --help")} — 📖 all commands\n`);
|
|
4438
4764
|
} else {
|
|
4439
4765
|
await new require_banner.Banner().showNeonBanner(false);
|
|
4440
|
-
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-
|
|
4766
|
+
const { HyperClawWizard: HyperClawWizard$1 } = await Promise.resolve().then(() => require("./onboard-DPmufMqX.js"));
|
|
4441
4767
|
await new HyperClawWizard$1().run({ wizard: true });
|
|
4442
4768
|
}
|
|
4443
4769
|
await runUpdateCheck();
|