hyperclaw 5.3.45 → 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-B2Qo91lq.js +143 -0
- package/dist/banner-CZ2BfvQq.js +143 -0
- package/dist/banner-CjTRWmks.js +7 -0
- package/dist/banner-CmNA9NKE.js +7 -0
- package/dist/banner-D3-Ik5d2.js +143 -0
- package/dist/banner-D3X8tQ-0.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-BGD9AWhr.js +523 -0
- package/dist/chat-BUa1oGqj.js +528 -0
- package/dist/chat-CiuT-GTs.js +528 -0
- package/dist/chat-D8wFNN4z.js +523 -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-D-klsy3i.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-D_bYfHgn.js +421 -0
- package/dist/daemon-DcE6vcjH.js +421 -0
- package/dist/daemon-NFwpuo3L.js +7 -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-B7Q4Vx-C.js +7 -0
- package/dist/engine-BBJlKpMP.js +7 -0
- package/dist/engine-BNygJfCo.js +335 -0
- package/dist/engine-C-G3G-U7.js +7 -0
- package/dist/engine-DB4MBzki.js +7 -0
- package/dist/engine-DPi9fhMl.js +332 -0
- package/dist/engine-DRpy9Y5O.js +327 -0
- package/dist/engine-DeaqDcaT.js +7 -0
- package/dist/engine-DetHi9LP.js +327 -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-BqyZr2GM.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-DTzP20Up.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-BAGRKfJz.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-Dt64EewT.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-32d2Gsuy.js +14 -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-Cgj_CIrq.js +3812 -0
- package/dist/onboard-ChnsqU5z.js +14 -0
- package/dist/onboard-CjzqTYq3.js +3812 -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-Bcj7uc1F.js +189 -0
- package/dist/orchestrator-C7oLWNFW.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-Cuyqncql.js +189 -0
- package/dist/orchestrator-CxlEm5li.js +6 -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-ADgw_Gkd.js +283 -0
- package/dist/osint-B5j3IuJK.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-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-BbH6eW8z.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/osint-chat-xRP672b-.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-6TIyu0mb.js +4 -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-Da_jSrfS.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/server-gai_RW1u.js +1356 -0
- package/dist/server-vbYKep6r.js +1356 -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-CHQT7c1k.js +5 -0
- package/dist/skill-runtime-CLK5HTVE.js +5 -0
- package/dist/skill-runtime-COyc3Bci.js +104 -0
- package/dist/skill-runtime-Cfd0OLkP.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/skill-runtime-Dr0fimDf.js +5 -0
- package/dist/skill-runtime-DtO4i9vK.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-CDLnbsLp.js +458 -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-D4VRanxB.js +458 -0
- package/dist/src-DFo8lVfV.js +300 -0
- package/dist/src-DJbpP4Gs.js +462 -0
- package/dist/src-DK-ayUx7.js +63 -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-H1I7JC2E.js +63 -0
- package/dist/src-TYvV_oFO.js +63 -0
- package/dist/src-lltU5gkh.js +20 -0
- package/dist/sub-agent-tools-BoMCZ6jz.js +39 -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-Dla3ZB5N.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 +147 -143
- package/scripts/fix-mojibake.mjs +166 -0
- package/static/web/assets/{index-BeAuHLb2.js → index-8bDizzaq.js} +2 -2
- package/static/web/assets/index-B5N1LHGR.css +1 -0
- package/static/web/index.html +2 -2
- package/static/web/assets/index-D2RfO0dG.css +0 -1
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
|
+
|
|
3
|
+
//#region packages/core/src/agent/sessions-tools.ts
|
|
4
|
+
function getSessionsTools(getServer, currentSessionId) {
|
|
5
|
+
return [
|
|
6
|
+
{
|
|
7
|
+
name: "sessions_list",
|
|
8
|
+
description: "List active WebSocket sessions connected to the gateway. Use to discover other agents or clients.",
|
|
9
|
+
input_schema: {
|
|
10
|
+
type: "object",
|
|
11
|
+
properties: {},
|
|
12
|
+
required: []
|
|
13
|
+
},
|
|
14
|
+
handler: async () => {
|
|
15
|
+
const server = getServer();
|
|
16
|
+
if (!server) return "Gateway not available (sessions tools only work when running in gateway).";
|
|
17
|
+
const list = server.getSessionsList?.() ?? [];
|
|
18
|
+
return JSON.stringify(list, null, 2);
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "sessions_send",
|
|
23
|
+
description: "Send a message to another session. Use sessions_list to get session IDs.",
|
|
24
|
+
input_schema: {
|
|
25
|
+
type: "object",
|
|
26
|
+
properties: {
|
|
27
|
+
sessionId: {
|
|
28
|
+
type: "string",
|
|
29
|
+
description: "Target session ID from sessions_list"
|
|
30
|
+
},
|
|
31
|
+
content: {
|
|
32
|
+
type: "string",
|
|
33
|
+
description: "Message content to send"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
required: ["sessionId", "content"]
|
|
37
|
+
},
|
|
38
|
+
handler: async (input) => {
|
|
39
|
+
const server = getServer();
|
|
40
|
+
if (!server) return "Gateway not available.";
|
|
41
|
+
const sessionId = input.sessionId;
|
|
42
|
+
const content = input.content;
|
|
43
|
+
const ok = server.sendToSession?.(sessionId, {
|
|
44
|
+
type: "chat:incoming",
|
|
45
|
+
content,
|
|
46
|
+
fromSession: currentSessionId ?? "unknown"
|
|
47
|
+
});
|
|
48
|
+
if (ok) return `Sent to session ${sessionId}.`;
|
|
49
|
+
return `Session ${sessionId} not found or disconnected.`;
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "sessions_history",
|
|
54
|
+
description: "Get recent chat transcript for a session. Returns user/assistant turns.",
|
|
55
|
+
input_schema: {
|
|
56
|
+
type: "object",
|
|
57
|
+
properties: {
|
|
58
|
+
sessionId: {
|
|
59
|
+
type: "string",
|
|
60
|
+
description: "Session ID (use \"self\" for current session)"
|
|
61
|
+
},
|
|
62
|
+
limit: {
|
|
63
|
+
type: "string",
|
|
64
|
+
description: "Max turns to return (default 20)"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
required: ["sessionId"]
|
|
68
|
+
},
|
|
69
|
+
handler: async (input) => {
|
|
70
|
+
const server = getServer();
|
|
71
|
+
if (!server) return "Gateway not available.";
|
|
72
|
+
const sid = input.sessionId === "self" ? currentSessionId : input.sessionId;
|
|
73
|
+
if (!sid) return "No current session.";
|
|
74
|
+
const limit = parseInt(input.limit || "20");
|
|
75
|
+
const history = server.getSessionHistory?.(sid, limit) ?? [];
|
|
76
|
+
return JSON.stringify(history, null, 2);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
var init_sessions_tools = require_chunk.__esm({ "packages/core/src/agent/sessions-tools.ts"() {} });
|
|
82
|
+
|
|
83
|
+
//#endregion
|
|
84
|
+
Object.defineProperty(exports, 'getSessionsTools', {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
get: function () {
|
|
87
|
+
return getSessionsTools;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(exports, 'init_sessions_tools', {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function () {
|
|
93
|
+
return init_sessions_tools;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
|
+
|
|
3
|
+
//#region packages/core/src/agent/sessions-tools.ts
|
|
4
|
+
function getSessionsTools(getServer, currentSessionId) {
|
|
5
|
+
return [
|
|
6
|
+
{
|
|
7
|
+
name: "sessions_list",
|
|
8
|
+
description: "List active WebSocket sessions connected to the gateway. Use to discover other agents or clients.",
|
|
9
|
+
input_schema: {
|
|
10
|
+
type: "object",
|
|
11
|
+
properties: {},
|
|
12
|
+
required: []
|
|
13
|
+
},
|
|
14
|
+
handler: async () => {
|
|
15
|
+
const server = getServer();
|
|
16
|
+
if (!server) return "Gateway not available (sessions tools only work when running in gateway).";
|
|
17
|
+
const list = server.getSessionsList?.() ?? [];
|
|
18
|
+
return JSON.stringify(list, null, 2);
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "sessions_send",
|
|
23
|
+
description: "Send a message to another session. Use sessions_list to get session IDs.",
|
|
24
|
+
input_schema: {
|
|
25
|
+
type: "object",
|
|
26
|
+
properties: {
|
|
27
|
+
sessionId: {
|
|
28
|
+
type: "string",
|
|
29
|
+
description: "Target session ID from sessions_list"
|
|
30
|
+
},
|
|
31
|
+
content: {
|
|
32
|
+
type: "string",
|
|
33
|
+
description: "Message content to send"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
required: ["sessionId", "content"]
|
|
37
|
+
},
|
|
38
|
+
handler: async (input) => {
|
|
39
|
+
const server = getServer();
|
|
40
|
+
if (!server) return "Gateway not available.";
|
|
41
|
+
const sessionId = input.sessionId;
|
|
42
|
+
const content = input.content;
|
|
43
|
+
const ok = server.sendToSession?.(sessionId, {
|
|
44
|
+
type: "chat:incoming",
|
|
45
|
+
content,
|
|
46
|
+
fromSession: currentSessionId ?? "unknown"
|
|
47
|
+
});
|
|
48
|
+
if (ok) return `Sent to session ${sessionId}.`;
|
|
49
|
+
return `Session ${sessionId} not found or disconnected.`;
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "sessions_history",
|
|
54
|
+
description: "Get recent chat transcript for a session. Returns user/assistant turns.",
|
|
55
|
+
input_schema: {
|
|
56
|
+
type: "object",
|
|
57
|
+
properties: {
|
|
58
|
+
sessionId: {
|
|
59
|
+
type: "string",
|
|
60
|
+
description: "Session ID (use \"self\" for current session)"
|
|
61
|
+
},
|
|
62
|
+
limit: {
|
|
63
|
+
type: "string",
|
|
64
|
+
description: "Max turns to return (default 20)"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
required: ["sessionId"]
|
|
68
|
+
},
|
|
69
|
+
handler: async (input) => {
|
|
70
|
+
const server = getServer();
|
|
71
|
+
if (!server) return "Gateway not available.";
|
|
72
|
+
const sid = input.sessionId === "self" ? currentSessionId : input.sessionId;
|
|
73
|
+
if (!sid) return "No current session.";
|
|
74
|
+
const limit = parseInt(input.limit || "20");
|
|
75
|
+
const history = server.getSessionHistory?.(sid, limit) ?? [];
|
|
76
|
+
return JSON.stringify(history, null, 2);
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: "sessions_spawn",
|
|
81
|
+
description: "Spawn a child agent to handle a task. Returns the child session ID and result. Use for delegation and parallel work.",
|
|
82
|
+
input_schema: {
|
|
83
|
+
type: "object",
|
|
84
|
+
properties: {
|
|
85
|
+
prompt: {
|
|
86
|
+
type: "string",
|
|
87
|
+
description: "Task for the child agent"
|
|
88
|
+
},
|
|
89
|
+
model: {
|
|
90
|
+
type: "string",
|
|
91
|
+
description: "Model override (optional)"
|
|
92
|
+
},
|
|
93
|
+
workspace: {
|
|
94
|
+
type: "string",
|
|
95
|
+
description: "Workspace path for child (optional)"
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
required: ["prompt"]
|
|
99
|
+
},
|
|
100
|
+
handler: async (input) => {
|
|
101
|
+
const server = getServer();
|
|
102
|
+
if (!server) return "Gateway not available (sessions_spawn requires gateway context).";
|
|
103
|
+
const spawn = server.spawnChildAgent;
|
|
104
|
+
if (!spawn) return "sessions_spawn not supported by this gateway.";
|
|
105
|
+
const prompt = input.prompt;
|
|
106
|
+
const model = input.model || void 0;
|
|
107
|
+
const workspace = input.workspace || void 0;
|
|
108
|
+
const result = await spawn(prompt, {
|
|
109
|
+
model,
|
|
110
|
+
workspace
|
|
111
|
+
});
|
|
112
|
+
return JSON.stringify(result, null, 2);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
];
|
|
116
|
+
}
|
|
117
|
+
var init_sessions_tools = require_chunk.__esm({ "packages/core/src/agent/sessions-tools.ts"() {} });
|
|
118
|
+
|
|
119
|
+
//#endregion
|
|
120
|
+
Object.defineProperty(exports, 'getSessionsTools', {
|
|
121
|
+
enumerable: true,
|
|
122
|
+
get: function () {
|
|
123
|
+
return getSessionsTools;
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
Object.defineProperty(exports, 'init_sessions_tools', {
|
|
127
|
+
enumerable: true,
|
|
128
|
+
get: function () {
|
|
129
|
+
return init_sessions_tools;
|
|
130
|
+
}
|
|
131
|
+
});
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
|
+
|
|
3
|
+
//#region packages/core/src/agent/sessions-tools.ts
|
|
4
|
+
function getSessionsTools(getServer, currentSessionId) {
|
|
5
|
+
return [
|
|
6
|
+
{
|
|
7
|
+
name: "sessions_list",
|
|
8
|
+
description: "List active WebSocket sessions connected to the gateway. Use to discover other agents or clients.",
|
|
9
|
+
input_schema: {
|
|
10
|
+
type: "object",
|
|
11
|
+
properties: {},
|
|
12
|
+
required: []
|
|
13
|
+
},
|
|
14
|
+
handler: async () => {
|
|
15
|
+
const server = getServer();
|
|
16
|
+
if (!server) return "Gateway not available (sessions tools only work when running in gateway).";
|
|
17
|
+
const list = server.getSessionsList?.() ?? [];
|
|
18
|
+
return JSON.stringify(list, null, 2);
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
name: "sessions_send",
|
|
23
|
+
description: "Send a message to another session. Use sessions_list to get session IDs.",
|
|
24
|
+
input_schema: {
|
|
25
|
+
type: "object",
|
|
26
|
+
properties: {
|
|
27
|
+
sessionId: {
|
|
28
|
+
type: "string",
|
|
29
|
+
description: "Target session ID from sessions_list"
|
|
30
|
+
},
|
|
31
|
+
content: {
|
|
32
|
+
type: "string",
|
|
33
|
+
description: "Message content to send"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
required: ["sessionId", "content"]
|
|
37
|
+
},
|
|
38
|
+
handler: async (input) => {
|
|
39
|
+
const server = getServer();
|
|
40
|
+
if (!server) return "Gateway not available.";
|
|
41
|
+
const sessionId = input.sessionId;
|
|
42
|
+
const content = input.content;
|
|
43
|
+
const ok = server.sendToSession?.(sessionId, {
|
|
44
|
+
type: "chat:incoming",
|
|
45
|
+
content,
|
|
46
|
+
fromSession: currentSessionId ?? "unknown"
|
|
47
|
+
});
|
|
48
|
+
if (ok) return `Sent to session ${sessionId}.`;
|
|
49
|
+
return `Session ${sessionId} not found or disconnected.`;
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
name: "sessions_history",
|
|
54
|
+
description: "Get recent chat transcript for a session. Returns user/assistant turns.",
|
|
55
|
+
input_schema: {
|
|
56
|
+
type: "object",
|
|
57
|
+
properties: {
|
|
58
|
+
sessionId: {
|
|
59
|
+
type: "string",
|
|
60
|
+
description: "Session ID (use \"self\" for current session)"
|
|
61
|
+
},
|
|
62
|
+
limit: {
|
|
63
|
+
type: "string",
|
|
64
|
+
description: "Max turns to return (default 20)"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
required: ["sessionId"]
|
|
68
|
+
},
|
|
69
|
+
handler: async (input) => {
|
|
70
|
+
const server = getServer();
|
|
71
|
+
if (!server) return "Gateway not available.";
|
|
72
|
+
const sid = input.sessionId === "self" ? currentSessionId : input.sessionId;
|
|
73
|
+
if (!sid) return "No current session.";
|
|
74
|
+
const limit = parseInt(input.limit || "20");
|
|
75
|
+
const history = server.getSessionHistory?.(sid, limit) ?? [];
|
|
76
|
+
return JSON.stringify(history, null, 2);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
];
|
|
80
|
+
}
|
|
81
|
+
var init_sessions_tools = require_chunk.__esm({ "packages/core/src/agent/sessions-tools.ts"() {} });
|
|
82
|
+
|
|
83
|
+
//#endregion
|
|
84
|
+
Object.defineProperty(exports, 'getSessionsTools', {
|
|
85
|
+
enumerable: true,
|
|
86
|
+
get: function () {
|
|
87
|
+
return getSessionsTools;
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
Object.defineProperty(exports, 'init_sessions_tools', {
|
|
91
|
+
enumerable: true,
|
|
92
|
+
get: function () {
|
|
93
|
+
return init_sessions_tools;
|
|
94
|
+
}
|
|
95
|
+
});
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
|
+
const fs_extra = require_chunk.__toESM(require("fs-extra"));
|
|
3
|
+
const path = require_chunk.__toESM(require("path"));
|
|
4
|
+
const os = require_chunk.__toESM(require("os"));
|
|
5
|
+
|
|
6
|
+
//#region packages/core/src/agent/skill-loader.ts
|
|
7
|
+
/** Validate skill id and content (manifest checks). */
|
|
8
|
+
function validateSkill(id, content) {
|
|
9
|
+
const errors = [];
|
|
10
|
+
if (!id || id.length > 64) errors.push("id must be 1–64 characters");
|
|
11
|
+
else if (!ID_REGEX.test(id)) errors.push("id must be lowercase alphanumeric with only - or _");
|
|
12
|
+
const trimmed = (content || "").trim();
|
|
13
|
+
if (!trimmed) errors.push("content is empty");
|
|
14
|
+
if (trimmed.length > MAX_SKILL_CONTENT_SIZE) errors.push(`content exceeds ${MAX_SKILL_CONTENT_SIZE} characters`);
|
|
15
|
+
return {
|
|
16
|
+
valid: errors.length === 0,
|
|
17
|
+
errors
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/** Extract manifest (title, version) from content. */
|
|
21
|
+
function extractManifest(content) {
|
|
22
|
+
const titleMatch = content.match(/^#\s+(.+)$/m);
|
|
23
|
+
const versionMatch = content.match(/^(?:version|Version):\s*(\S+)/m);
|
|
24
|
+
return {
|
|
25
|
+
title: titleMatch ? titleMatch[1].trim().slice(0, 120) : void 0,
|
|
26
|
+
version: versionMatch ? versionMatch[1].trim().slice(0, 32) : void 0
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
async function runBeforeLoad() {
|
|
30
|
+
for (const h of lifecycleHooks) if (h.onBeforeLoad) await Promise.resolve(h.onBeforeLoad());
|
|
31
|
+
}
|
|
32
|
+
async function runAfterLoad(skills) {
|
|
33
|
+
for (const h of lifecycleHooks) if (h.onAfterLoad) await Promise.resolve(h.onAfterLoad(skills));
|
|
34
|
+
}
|
|
35
|
+
async function runUnload(skills) {
|
|
36
|
+
for (const h of lifecycleHooks) if (h.onUnload) await Promise.resolve(h.onUnload(skills));
|
|
37
|
+
}
|
|
38
|
+
function extractCapabilities(content) {
|
|
39
|
+
const capMatch = content.match(/## Capabilities?\s*\n+([\s\S]*?)(?=\n## |\n# |$)/i);
|
|
40
|
+
if (capMatch) return capMatch[1].trim().slice(0, 200);
|
|
41
|
+
const firstPara = content.replace(/^#.*\n+/, "").split(/\n\n/)[0]?.trim();
|
|
42
|
+
return firstPara ? firstPara.slice(0, 200) : "";
|
|
43
|
+
}
|
|
44
|
+
async function loadSkills(opts) {
|
|
45
|
+
await runBeforeLoad();
|
|
46
|
+
const skills = [];
|
|
47
|
+
for (const base of [BUNDLED_SKILLS, WORKSPACE_SKILLS]) {
|
|
48
|
+
if (!await fs_extra.default.pathExists(base)) continue;
|
|
49
|
+
const dirs = await fs_extra.default.readdir(base);
|
|
50
|
+
for (const id of dirs) {
|
|
51
|
+
const skillPath = path.default.join(base, id, "SKILL.md");
|
|
52
|
+
if (!await fs_extra.default.pathExists(skillPath)) continue;
|
|
53
|
+
const content = await fs_extra.default.readFile(skillPath, "utf8");
|
|
54
|
+
if (skills.some((s) => s.id === id)) continue;
|
|
55
|
+
if (!opts?.skipValidation) {
|
|
56
|
+
const v = validateSkill(id, content);
|
|
57
|
+
if (!v.valid) continue;
|
|
58
|
+
}
|
|
59
|
+
const manifest = extractManifest(content);
|
|
60
|
+
skills.push({
|
|
61
|
+
id,
|
|
62
|
+
path: skillPath,
|
|
63
|
+
content,
|
|
64
|
+
capabilities: extractCapabilities(content),
|
|
65
|
+
title: manifest.title,
|
|
66
|
+
version: manifest.version
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
lastLoaded = skills;
|
|
71
|
+
await runAfterLoad(skills);
|
|
72
|
+
return skills;
|
|
73
|
+
}
|
|
74
|
+
/** Unload current skills (run onUnload), then load again. */
|
|
75
|
+
async function reloadSkills() {
|
|
76
|
+
await runUnload(lastLoaded);
|
|
77
|
+
return loadSkills();
|
|
78
|
+
}
|
|
79
|
+
function buildSkillsContext(skills) {
|
|
80
|
+
if (skills.length === 0) return "";
|
|
81
|
+
const capabilityList = skills.filter((s) => s.capabilities).map((s) => `- ${s.id}: ${s.capabilities}`).join("\n");
|
|
82
|
+
const header = capabilityList ? `\nCapability summary:\n${capabilityList}\n\n` : "";
|
|
83
|
+
const blocks = skills.map((s) => `## Skill: ${s.id}\n\n${s.content}`).join("\n\n---\n\n");
|
|
84
|
+
return `\n\n# Loaded Skills\n${header}${blocks}\n`;
|
|
85
|
+
}
|
|
86
|
+
/** Capability discovery: return id + summary for each loaded skill. */
|
|
87
|
+
function getSkillCapabilities(skills) {
|
|
88
|
+
return skills.filter((s) => s.capabilities).map((s) => ({
|
|
89
|
+
id: s.id,
|
|
90
|
+
capabilities: s.capabilities
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
/** Create or overwrite a skill from agent (self-writing skills). */
|
|
94
|
+
async function writeSkill(skillId, opts) {
|
|
95
|
+
const id = skillId.replace(/[^a-z0-9-_]/gi, "-").toLowerCase() || "unnamed-skill";
|
|
96
|
+
const dir = path.default.join(WORKSPACE_SKILLS, id);
|
|
97
|
+
await fs_extra.default.ensureDir(dir);
|
|
98
|
+
const header = opts.name || id ? `# ${opts.name || id}\n\n${opts.description ? `> ${opts.description}\n\n` : ""}` : "";
|
|
99
|
+
const full = header + opts.content.trim();
|
|
100
|
+
await fs_extra.default.writeFile(path.default.join(dir, "SKILL.md"), full, "utf8");
|
|
101
|
+
return {
|
|
102
|
+
path: path.default.join(dir, "SKILL.md"),
|
|
103
|
+
id,
|
|
104
|
+
dir
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
var HC_DIR, BUNDLED_SKILLS, WORKSPACE_SKILLS, MAX_SKILL_CONTENT_SIZE, ID_REGEX, lifecycleHooks, lastLoaded;
|
|
108
|
+
var init_skill_loader = require_chunk.__esm({ "packages/core/src/agent/skill-loader.ts"() {
|
|
109
|
+
HC_DIR = path.default.join(os.default.homedir(), ".hyperclaw");
|
|
110
|
+
BUNDLED_SKILLS = path.default.join(__dirname, "..", "skills");
|
|
111
|
+
WORKSPACE_SKILLS = path.default.join(HC_DIR, "workspace", "skills");
|
|
112
|
+
MAX_SKILL_CONTENT_SIZE = 2e5;
|
|
113
|
+
ID_REGEX = /^[a-z0-9][a-z0-9-_]*$/;
|
|
114
|
+
lifecycleHooks = [];
|
|
115
|
+
lastLoaded = [];
|
|
116
|
+
} });
|
|
117
|
+
|
|
118
|
+
//#endregion
|
|
119
|
+
Object.defineProperty(exports, 'buildSkillsContext', {
|
|
120
|
+
enumerable: true,
|
|
121
|
+
get: function () {
|
|
122
|
+
return buildSkillsContext;
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
Object.defineProperty(exports, 'getSkillCapabilities', {
|
|
126
|
+
enumerable: true,
|
|
127
|
+
get: function () {
|
|
128
|
+
return getSkillCapabilities;
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
Object.defineProperty(exports, 'init_skill_loader', {
|
|
132
|
+
enumerable: true,
|
|
133
|
+
get: function () {
|
|
134
|
+
return init_skill_loader;
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
Object.defineProperty(exports, 'loadSkills', {
|
|
138
|
+
enumerable: true,
|
|
139
|
+
get: function () {
|
|
140
|
+
return loadSkills;
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
Object.defineProperty(exports, 'reloadSkills', {
|
|
144
|
+
enumerable: true,
|
|
145
|
+
get: function () {
|
|
146
|
+
return reloadSkills;
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
Object.defineProperty(exports, 'validateSkill', {
|
|
150
|
+
enumerable: true,
|
|
151
|
+
get: function () {
|
|
152
|
+
return validateSkill;
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
Object.defineProperty(exports, 'writeSkill', {
|
|
156
|
+
enumerable: true,
|
|
157
|
+
get: function () {
|
|
158
|
+
return writeSkill;
|
|
159
|
+
}
|
|
160
|
+
});
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-jS-bbMI5.js');
|
|
2
|
+
const fs_extra = require_chunk.__toESM(require("fs-extra"));
|
|
3
|
+
const path = require_chunk.__toESM(require("path"));
|
|
4
|
+
const os = require_chunk.__toESM(require("os"));
|
|
5
|
+
|
|
6
|
+
//#region packages/core/src/agent/skill-loader.ts
|
|
7
|
+
/** Validate skill id and content (manifest checks). */
|
|
8
|
+
function validateSkill(id, content) {
|
|
9
|
+
const errors = [];
|
|
10
|
+
if (!id || id.length > 64) errors.push("id must be 1–64 characters");
|
|
11
|
+
else if (!ID_REGEX.test(id)) errors.push("id must be lowercase alphanumeric with only - or _");
|
|
12
|
+
const trimmed = (content || "").trim();
|
|
13
|
+
if (!trimmed) errors.push("content is empty");
|
|
14
|
+
if (trimmed.length > MAX_SKILL_CONTENT_SIZE) errors.push(`content exceeds ${MAX_SKILL_CONTENT_SIZE} characters`);
|
|
15
|
+
return {
|
|
16
|
+
valid: errors.length === 0,
|
|
17
|
+
errors
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
/** Extract manifest (title, version) from content. */
|
|
21
|
+
function extractManifest(content) {
|
|
22
|
+
const titleMatch = content.match(/^#\s+(.+)$/m);
|
|
23
|
+
const versionMatch = content.match(/^(?:version|Version):\s*(\S+)/m);
|
|
24
|
+
return {
|
|
25
|
+
title: titleMatch ? titleMatch[1].trim().slice(0, 120) : void 0,
|
|
26
|
+
version: versionMatch ? versionMatch[1].trim().slice(0, 32) : void 0
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
async function runBeforeLoad() {
|
|
30
|
+
for (const h of lifecycleHooks) if (h.onBeforeLoad) await Promise.resolve(h.onBeforeLoad());
|
|
31
|
+
}
|
|
32
|
+
async function runAfterLoad(skills) {
|
|
33
|
+
for (const h of lifecycleHooks) if (h.onAfterLoad) await Promise.resolve(h.onAfterLoad(skills));
|
|
34
|
+
}
|
|
35
|
+
async function runUnload(skills) {
|
|
36
|
+
for (const h of lifecycleHooks) if (h.onUnload) await Promise.resolve(h.onUnload(skills));
|
|
37
|
+
}
|
|
38
|
+
function extractCapabilities(content) {
|
|
39
|
+
const capMatch = content.match(/## Capabilities?\s*\n+([\s\S]*?)(?=\n## |\n# |$)/i);
|
|
40
|
+
if (capMatch) return capMatch[1].trim().slice(0, 200);
|
|
41
|
+
const firstPara = content.replace(/^#.*\n+/, "").split(/\n\n/)[0]?.trim();
|
|
42
|
+
return firstPara ? firstPara.slice(0, 200) : "";
|
|
43
|
+
}
|
|
44
|
+
async function loadSkills(opts) {
|
|
45
|
+
await runBeforeLoad();
|
|
46
|
+
const skills = [];
|
|
47
|
+
for (const base of [BUNDLED_SKILLS, WORKSPACE_SKILLS]) {
|
|
48
|
+
if (!await fs_extra.default.pathExists(base)) continue;
|
|
49
|
+
const dirs = await fs_extra.default.readdir(base);
|
|
50
|
+
for (const id of dirs) {
|
|
51
|
+
const skillPath = path.default.join(base, id, "SKILL.md");
|
|
52
|
+
if (!await fs_extra.default.pathExists(skillPath)) continue;
|
|
53
|
+
const content = await fs_extra.default.readFile(skillPath, "utf8");
|
|
54
|
+
if (skills.some((s) => s.id === id)) continue;
|
|
55
|
+
if (!opts?.skipValidation) {
|
|
56
|
+
const v = validateSkill(id, content);
|
|
57
|
+
if (!v.valid) continue;
|
|
58
|
+
}
|
|
59
|
+
const manifest = extractManifest(content);
|
|
60
|
+
skills.push({
|
|
61
|
+
id,
|
|
62
|
+
path: skillPath,
|
|
63
|
+
content,
|
|
64
|
+
capabilities: extractCapabilities(content),
|
|
65
|
+
title: manifest.title,
|
|
66
|
+
version: manifest.version
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
lastLoaded = skills;
|
|
71
|
+
await runAfterLoad(skills);
|
|
72
|
+
return skills;
|
|
73
|
+
}
|
|
74
|
+
/** Unload current skills (run onUnload), then load again. */
|
|
75
|
+
async function reloadSkills() {
|
|
76
|
+
await runUnload(lastLoaded);
|
|
77
|
+
return loadSkills();
|
|
78
|
+
}
|
|
79
|
+
function buildSkillsContext(skills) {
|
|
80
|
+
if (skills.length === 0) return "";
|
|
81
|
+
const capabilityList = skills.filter((s) => s.capabilities).map((s) => `- ${s.id}: ${s.capabilities}`).join("\n");
|
|
82
|
+
const header = capabilityList ? `\nCapability summary:\n${capabilityList}\n\n` : "";
|
|
83
|
+
const blocks = skills.map((s) => `## Skill: ${s.id}\n\n${s.content}`).join("\n\n---\n\n");
|
|
84
|
+
return `\n\n# Loaded Skills\n${header}${blocks}\n`;
|
|
85
|
+
}
|
|
86
|
+
/** Capability discovery: return id + summary for each loaded skill. */
|
|
87
|
+
function getSkillCapabilities(skills) {
|
|
88
|
+
return skills.filter((s) => s.capabilities).map((s) => ({
|
|
89
|
+
id: s.id,
|
|
90
|
+
capabilities: s.capabilities
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
/** Create or overwrite a skill from agent (self-writing skills). */
|
|
94
|
+
async function writeSkill(skillId, opts) {
|
|
95
|
+
const id = skillId.replace(/[^a-z0-9-_]/gi, "-").toLowerCase() || "unnamed-skill";
|
|
96
|
+
const dir = path.default.join(WORKSPACE_SKILLS, id);
|
|
97
|
+
await fs_extra.default.ensureDir(dir);
|
|
98
|
+
const header = opts.name || id ? `# ${opts.name || id}\n\n${opts.description ? `> ${opts.description}\n\n` : ""}` : "";
|
|
99
|
+
const full = header + opts.content.trim();
|
|
100
|
+
await fs_extra.default.writeFile(path.default.join(dir, "SKILL.md"), full, "utf8");
|
|
101
|
+
return {
|
|
102
|
+
path: path.default.join(dir, "SKILL.md"),
|
|
103
|
+
id,
|
|
104
|
+
dir
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
var HC_DIR, BUNDLED_SKILLS, WORKSPACE_SKILLS, MAX_SKILL_CONTENT_SIZE, ID_REGEX, lifecycleHooks, lastLoaded;
|
|
108
|
+
var init_skill_loader = require_chunk.__esm({ "packages/core/src/agent/skill-loader.ts"() {
|
|
109
|
+
HC_DIR = path.default.join(os.default.homedir(), ".hyperclaw");
|
|
110
|
+
BUNDLED_SKILLS = path.default.join(__dirname, "..", "skills");
|
|
111
|
+
WORKSPACE_SKILLS = path.default.join(HC_DIR, "workspace", "skills");
|
|
112
|
+
MAX_SKILL_CONTENT_SIZE = 2e5;
|
|
113
|
+
ID_REGEX = /^[a-z0-9][a-z0-9-_]*$/;
|
|
114
|
+
lifecycleHooks = [];
|
|
115
|
+
lastLoaded = [];
|
|
116
|
+
} });
|
|
117
|
+
|
|
118
|
+
//#endregion
|
|
119
|
+
Object.defineProperty(exports, 'buildSkillsContext', {
|
|
120
|
+
enumerable: true,
|
|
121
|
+
get: function () {
|
|
122
|
+
return buildSkillsContext;
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
Object.defineProperty(exports, 'getSkillCapabilities', {
|
|
126
|
+
enumerable: true,
|
|
127
|
+
get: function () {
|
|
128
|
+
return getSkillCapabilities;
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
Object.defineProperty(exports, 'init_skill_loader', {
|
|
132
|
+
enumerable: true,
|
|
133
|
+
get: function () {
|
|
134
|
+
return init_skill_loader;
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
Object.defineProperty(exports, 'loadSkills', {
|
|
138
|
+
enumerable: true,
|
|
139
|
+
get: function () {
|
|
140
|
+
return loadSkills;
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
Object.defineProperty(exports, 'reloadSkills', {
|
|
144
|
+
enumerable: true,
|
|
145
|
+
get: function () {
|
|
146
|
+
return reloadSkills;
|
|
147
|
+
}
|
|
148
|
+
});
|
|
149
|
+
Object.defineProperty(exports, 'validateSkill', {
|
|
150
|
+
enumerable: true,
|
|
151
|
+
get: function () {
|
|
152
|
+
return validateSkill;
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
Object.defineProperty(exports, 'writeSkill', {
|
|
156
|
+
enumerable: true,
|
|
157
|
+
get: function () {
|
|
158
|
+
return writeSkill;
|
|
159
|
+
}
|
|
160
|
+
});
|