hyperclaw 5.4.0 → 5.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (522) hide show
  1. package/README.md +1 -0
  2. package/dist/a2ui-protocol-CUqdJGh7.js +75 -0
  3. package/dist/a2ui-protocol-CibzbTxL.js +75 -0
  4. package/dist/a2ui-protocol-Dtb8zlog.js +75 -0
  5. package/dist/a2ui-protocol-ORP2Etw0.js +75 -0
  6. package/dist/a2ui-protocol-whRZHdBk.js +75 -0
  7. package/dist/abort-controller-B55O1IgK.js +47995 -0
  8. package/dist/agents-routing-Ai2BQVpU.js +7 -0
  9. package/dist/agents-routing-B0D0vcp5.js +424 -0
  10. package/dist/agents-routing-B0RBl1B8.js +424 -0
  11. package/dist/agents-routing-BC6GndVe.js +7 -0
  12. package/dist/agents-routing-BSUaOpce.js +7 -0
  13. package/dist/agents-routing-C4PVN8G6.js +7 -0
  14. package/dist/agents-routing-CyFBHvyk.js +424 -0
  15. package/dist/agents-routing-Dcr29-JV.js +424 -0
  16. package/dist/agents-routing-DdpszaMx.js +7 -0
  17. package/dist/agents-routing-EwzORQQv.js +424 -0
  18. package/dist/agents-routing-Fd-uQ4R_.js +7 -0
  19. package/dist/agents-routing-eLjVYBAk.js +424 -0
  20. package/dist/api-key-validation-BANgbsfO.js +66 -0
  21. package/dist/api-key-validation-Bnz-0MMK.js +66 -0
  22. package/dist/api-key-validation-D_fMCaO5.js +66 -0
  23. package/dist/api-key-validation-Db7rG3JU.js +66 -0
  24. package/dist/api-key-validation-DrMrLEa0.js +66 -0
  25. package/dist/api-keys-guide-B6AJ1V5D.js +149 -0
  26. package/dist/api-keys-guide-C75JQOdH.js +149 -0
  27. package/dist/api-keys-guide-CFJPrgsL.js +149 -0
  28. package/dist/api-keys-guide-DDz08BJQ.js +149 -0
  29. package/dist/api-keys-guide-DmKF7tB-.js +149 -0
  30. package/dist/audit-BLMB8qp7.js +445 -0
  31. package/dist/audit-Cb2TvqYZ.js +445 -0
  32. package/dist/audit-D7koAKvj.js +445 -0
  33. package/dist/audit-Q-Uy5nem.js +445 -0
  34. package/dist/audit-xP_175jB.js +445 -0
  35. package/dist/backup-7l3iovkX.js +86 -0
  36. package/dist/backup-BKLTHh62.js +86 -0
  37. package/dist/backup-CspxXk78.js +86 -0
  38. package/dist/backup-CtHJEqGr.js +86 -0
  39. package/dist/backup-D8dFYDXV.js +86 -0
  40. package/dist/banner-CZ2BfvQq.js +143 -0
  41. package/dist/banner-CjTRWmks.js +7 -0
  42. package/dist/banner-DYzQ8cCb.js +143 -0
  43. package/dist/banner-Dpygks0H.js +143 -0
  44. package/dist/banner-ZX1WLr44.js +7 -0
  45. package/dist/banner-jW84OrYg.js +7 -0
  46. package/dist/bounty-tools-CCwY61YO.js +211 -0
  47. package/dist/bounty-tools-Cq-oC9gk.js +211 -0
  48. package/dist/bounty-tools-DZ-WtRdE.js +211 -0
  49. package/dist/bounty-tools-DhpmjF5Y.js +211 -0
  50. package/dist/bounty-tools-NGuBWI55.js +211 -0
  51. package/dist/browser-tools-5Fl1hP_2.js +5 -0
  52. package/dist/browser-tools-Ay-wU_a4.js +5 -0
  53. package/dist/browser-tools-BMgBB2fK.js +179 -0
  54. package/dist/browser-tools-kcViDwk5.js +179 -0
  55. package/dist/chat-BUa1oGqj.js +528 -0
  56. package/dist/chat-CJa0ph8c.js +528 -0
  57. package/dist/chat-CKnfxa1-.js +528 -0
  58. package/dist/chat-CQKCIrIY.js +528 -0
  59. package/dist/chat-CiuT-GTs.js +528 -0
  60. package/dist/chat-DfI8uOzF.js +528 -0
  61. package/dist/chat-Dz5rmUSs.js +528 -0
  62. package/dist/chat-RTmX1F16.js +528 -0
  63. package/dist/chat-npW_ZOmo.js +528 -0
  64. package/dist/claw-tasks-Cio1Q7eA.js +80 -0
  65. package/dist/claw-tasks-Dq38PrL5.js +80 -0
  66. package/dist/claw-tasks-DzxNWVcz.js +80 -0
  67. package/dist/claw-tasks-L7vQSGlt.js +80 -0
  68. package/dist/claw-tasks-dndWneZW.js +80 -0
  69. package/dist/config-B-W-Mz4X.js +7 -0
  70. package/dist/config-BAwkTUJC.js +261 -0
  71. package/dist/config-BzK_Xl4Y.js +261 -0
  72. package/dist/config-CYPw2v4l.js +261 -0
  73. package/dist/config-ClsdlpXc.js +261 -0
  74. package/dist/config-DN9fdLL3.js +261 -0
  75. package/dist/config-Dm394B6X.js +7 -0
  76. package/dist/config-FejpHHTz.js +261 -0
  77. package/dist/config-SiLqEezw.js +7 -0
  78. package/dist/config-Tq_GJHf7.js +7 -0
  79. package/dist/config-n4qy5jIy.js +7 -0
  80. package/dist/config-qJUYRMzx.js +7 -0
  81. package/dist/connector-BYPxgmsD.js +312 -0
  82. package/dist/connector-CwT7KZm2.js +309 -0
  83. package/dist/connector-DX4k-lGd.js +442 -0
  84. package/dist/cost-tracker-C2q5zKic.js +103 -0
  85. package/dist/cost-tracker-CsRQAOEr.js +103 -0
  86. package/dist/cost-tracker-DAXWN5YT.js +103 -0
  87. package/dist/cost-tracker-bySvehH6.js +103 -0
  88. package/dist/cost-tracker-x9E8VKtk.js +103 -0
  89. package/dist/credentials-store-BAW87r6f.js +7 -0
  90. package/dist/credentials-store-BHtk7_H_.js +7 -0
  91. package/dist/credentials-store-CESgFvFU.js +89 -0
  92. package/dist/credentials-store-CR4WSDGl.js +7 -0
  93. package/dist/credentials-store-CXq4kZub.js +89 -0
  94. package/dist/credentials-store-DUp8dtaS.js +89 -0
  95. package/dist/credentials-store-Ddhgmbpz.js +7 -0
  96. package/dist/credentials-store-hiSga8qn.js +89 -0
  97. package/dist/credentials-store-kLdrmqSt.js +7 -0
  98. package/dist/credentials-store-onL1tYct.js +89 -0
  99. package/dist/cron-tasks-BFsaCKxE.js +89 -0
  100. package/dist/cron-tasks-BelA2aUW.js +89 -0
  101. package/dist/cron-tasks-CF4MJoIU.js +89 -0
  102. package/dist/cron-tasks-D1T9fWAb.js +89 -0
  103. package/dist/cron-tasks-f_ieXSG2.js +89 -0
  104. package/dist/daemon-ApB1nMs2.js +421 -0
  105. package/dist/daemon-B2ghXB-I.js +7 -0
  106. package/dist/daemon-BTYhQvD_.js +7 -0
  107. package/dist/daemon-BldYSrDj.js +421 -0
  108. package/dist/daemon-BoaFnmdF.js +421 -0
  109. package/dist/daemon-BqTcxMZe.js +7 -0
  110. package/dist/daemon-BrHxr4ut.js +421 -0
  111. package/dist/daemon-BzdeLgON.js +421 -0
  112. package/dist/daemon-BzqWIC4v.js +7 -0
  113. package/dist/daemon-C3OczPR1.js +7 -0
  114. package/dist/daemon-CivMFYkD.js +7 -0
  115. package/dist/daemon-D57KIIA3.js +421 -0
  116. package/dist/daemon-D8uyH9et.js +7 -0
  117. package/dist/daemon-DBTtYx6E.js +421 -0
  118. package/dist/daemon-DBXFUMue.js +421 -0
  119. package/dist/daemon-srcdhzUG.js +7 -0
  120. package/dist/delivery-BURWi8wu.js +4 -0
  121. package/dist/delivery-Bt0xW6L9.js +4 -0
  122. package/dist/delivery-C2sAERN7.js +4 -0
  123. package/dist/delivery-CF2Q4hb1.js +95 -0
  124. package/dist/delivery-CfMljOwk.js +95 -0
  125. package/dist/delivery-DP0d4_A4.js +95 -0
  126. package/dist/delivery-DXYt4aMO.js +4 -0
  127. package/dist/delivery-DXxP2UL4.js +4 -0
  128. package/dist/delivery-jT2UIDlU.js +95 -0
  129. package/dist/delivery-kZ2mVkU5.js +95 -0
  130. package/dist/destructive-gate-5LYh6brt.js +116 -0
  131. package/dist/destructive-gate-B_hNKtu6.js +116 -0
  132. package/dist/destructive-gate-C1ny9ek2.js +116 -0
  133. package/dist/destructive-gate-DvxPSDMR.js +116 -0
  134. package/dist/destructive-gate-Qd2y7x1B.js +116 -0
  135. package/dist/dist-B1qvBUax.js +30541 -0
  136. package/dist/engine-B-JvIt_Y.js +7 -0
  137. package/dist/engine-BBJlKpMP.js +7 -0
  138. package/dist/engine-BGZnBZ4m.js +7 -0
  139. package/dist/engine-BNygJfCo.js +335 -0
  140. package/dist/engine-BTSXJNba.js +346 -0
  141. package/dist/engine-C7LyH310.js +353 -0
  142. package/dist/engine-C_nC_Ioe.js +351 -0
  143. package/dist/engine-DB4MBzki.js +7 -0
  144. package/dist/engine-DCtJSbKU.js +7 -0
  145. package/dist/engine-DPi9fhMl.js +332 -0
  146. package/dist/engine-DeaqDcaT.js +7 -0
  147. package/dist/engine-DuvXJrUP.js +335 -0
  148. package/dist/engine-HkyTC_xl.js +332 -0
  149. package/dist/engine-JysunhPR.js +7 -0
  150. package/dist/engine-MzEUw7qb.js +7 -0
  151. package/dist/engine-j9Yaqt_-.js +332 -0
  152. package/dist/env-resolve--MaE2kFF.js +167 -0
  153. package/dist/env-resolve-BYWG94tK.js +11 -0
  154. package/dist/env-resolve-Bop7KbNq.js +167 -0
  155. package/dist/env-resolve-Buos635Y.js +167 -0
  156. package/dist/env-resolve-C0R8R7pb.js +167 -0
  157. package/dist/env-resolve-D3dP1-Xt.js +11 -0
  158. package/dist/env-resolve-Dr-KfTtw.js +11 -0
  159. package/dist/env-resolve-DvsbhPKl.js +11 -0
  160. package/dist/env-resolve-NNM3F6Eo.js +167 -0
  161. package/dist/env-resolve-dTjn-g8X.js +11 -0
  162. package/dist/extraction-tools-Bh5F0ENP.js +91 -0
  163. package/dist/extraction-tools-BjzXD9LW.js +5 -0
  164. package/dist/extraction-tools-D1lrDYhe.js +5 -0
  165. package/dist/extraction-tools-FBwtT2Bx.js +91 -0
  166. package/dist/fileFromPath-CodL6KXh.js +85 -0
  167. package/dist/gmail-watch-setup--eQ8raeb.js +42 -0
  168. package/dist/gmail-watch-setup-9t14gy1B.js +42 -0
  169. package/dist/gmail-watch-setup-B9fx_OLg.js +42 -0
  170. package/dist/gmail-watch-setup-BzbG0ICM.js +42 -0
  171. package/dist/gmail-watch-setup-DP3kDRx1.js +42 -0
  172. package/dist/heartbeat-engine-5iOlL7Dj.js +89 -0
  173. package/dist/heartbeat-engine-B9bhAHNi.js +89 -0
  174. package/dist/heartbeat-engine-Bu4q18GH.js +89 -0
  175. package/dist/heartbeat-engine-CF_JjNJ4.js +89 -0
  176. package/dist/heartbeat-engine-CLADYZxE.js +89 -0
  177. package/dist/hub-CZeGrS20.js +6 -0
  178. package/dist/hub-DAkEVTEy.js +545 -0
  179. package/dist/hyperclawbot-BEm8_87h.js +516 -0
  180. package/dist/hyperclawbot-CNVUtvYC.js +516 -0
  181. package/dist/hyperclawbot-D5ofLNgm.js +516 -0
  182. package/dist/hyperclawbot-D61zVMyQ.js +516 -0
  183. package/dist/hyperclawbot-DR6BgI_d.js +516 -0
  184. package/dist/hyperclawbot-DwScttSx.js +516 -0
  185. package/dist/hyperclawbot-hZv4pde0.js +516 -0
  186. package/dist/hyperclawbot-v65eL2U0.js +516 -0
  187. package/dist/inference-BEvs7s3c.js +2854 -0
  188. package/dist/inference-C4b9YqXk.js +8 -0
  189. package/dist/inference-C874-2MI.js +8 -0
  190. package/dist/inference-CRF6HyyH.js +2854 -0
  191. package/dist/inference-CfhTACI8.js +2854 -0
  192. package/dist/inference-DCSz6Sb1.js +2880 -0
  193. package/dist/inference-DGsy36Ru.js +8 -0
  194. package/dist/inference-Da7Hw4J3.js +8 -0
  195. package/dist/inference-DhJ-SHZn.js +8 -0
  196. package/dist/inference-K7Jrnzre.js +2854 -0
  197. package/dist/isFile-CSxoSB8X.js +2274 -0
  198. package/dist/knowledge-graph-BdsJ5KEL.js +134 -0
  199. package/dist/knowledge-graph-BiIvoxPt.js +134 -0
  200. package/dist/knowledge-graph-CFRBepzr.js +134 -0
  201. package/dist/knowledge-graph-CeDeahui.js +134 -0
  202. package/dist/knowledge-graph-DoYFZnUr.js +134 -0
  203. package/dist/loader-C2qtNbtF.js +6 -0
  204. package/dist/loader-D6yjBYo4.js +410 -0
  205. package/dist/loader-DBO6yRNh.js +6 -0
  206. package/dist/loader-DMMb9emn.js +410 -0
  207. package/dist/loader-DUhmG3V9.js +410 -0
  208. package/dist/loader-Dl8LNycw.js +6 -0
  209. package/dist/loader-JktrmJOG.js +6 -0
  210. package/dist/loader-UpOYxgZv.js +6 -0
  211. package/dist/loader-hXv2mZjK.js +410 -0
  212. package/dist/loader-nDBcv3Tm.js +410 -0
  213. package/dist/logger-BD316YbA.js +86 -0
  214. package/dist/logger-BnXZkfsp.js +86 -0
  215. package/dist/logger-CmphFNmW.js +86 -0
  216. package/dist/logger-DkHzhh56.js +86 -0
  217. package/dist/logger-Oty9sC13.js +86 -0
  218. package/dist/manager-3-q8zuAW.js +250 -0
  219. package/dist/manager-BIc6zzZV.js +250 -0
  220. package/dist/manager-BkMzc-EJ.js +250 -0
  221. package/dist/manager-Bq5LApdR.js +6 -0
  222. package/dist/manager-BwobWy0l.js +120 -0
  223. package/dist/manager-CNgdJunf.js +250 -0
  224. package/dist/manager-CozyZSDG.js +250 -0
  225. package/dist/manager-D4mDWXph.js +120 -0
  226. package/dist/manager-DuS-WQhZ.js +120 -0
  227. package/dist/manager-Dz2eKYqo.js +116 -0
  228. package/dist/manager-R0TlRMZy.js +120 -0
  229. package/dist/manager-aJfY7rt6.js +120 -0
  230. package/dist/mcp-BH7HtOQ8.js +142 -0
  231. package/dist/mcp-CAJSA_ee.js +142 -0
  232. package/dist/mcp-CD-iIQa2.js +142 -0
  233. package/dist/mcp-CI2F3m8G.js +142 -0
  234. package/dist/mcp-DGo37Ifb.js +142 -0
  235. package/dist/mcp-loader-C-21ynRH.js +93 -0
  236. package/dist/mcp-loader-Ct1NQKnX.js +93 -0
  237. package/dist/mcp-loader-D1T6UX73.js +93 -0
  238. package/dist/mcp-loader-DJk6MEof.js +93 -0
  239. package/dist/mcp-loader-DdXvU63s.js +93 -0
  240. package/dist/mcp-loader-Di7n__ta.js +93 -0
  241. package/dist/mcp-loader-gMliiJ7R.js +93 -0
  242. package/dist/memory-CyonlkTy.js +6 -0
  243. package/dist/memory-DPSWQBc0.js +276 -0
  244. package/dist/memory-auto-B0QOqaUD.js +306 -0
  245. package/dist/memory-auto-BSxYJugl.js +5 -0
  246. package/dist/memory-auto-BVCJeTwd.js +306 -0
  247. package/dist/memory-auto-CcFRxMj-.js +306 -0
  248. package/dist/memory-auto-CifT5aj_.js +5 -0
  249. package/dist/memory-auto-Cp2Jwx3Y.js +306 -0
  250. package/dist/memory-auto-DXKe2ayf.js +5 -0
  251. package/dist/memory-auto-DjK_D8CA.js +306 -0
  252. package/dist/memory-auto-N57dp4Do.js +5 -0
  253. package/dist/memory-auto-n0kOcU7F.js +5 -0
  254. package/dist/memory-integration-D2RvZ-MB.js +91 -0
  255. package/dist/memory-integration-D8shLJwp.js +91 -0
  256. package/dist/memory-integration-DLmzJ62L.js +91 -0
  257. package/dist/memory-integration-DMXDbMIL.js +91 -0
  258. package/dist/memory-integration-Dgr-mjue.js +91 -0
  259. package/dist/moltbook-CIeOshK6.js +81 -0
  260. package/dist/moltbook-CX5XWn06.js +81 -0
  261. package/dist/moltbook-DUfiE4NY.js +81 -0
  262. package/dist/moltbook-DvV6GFFL.js +81 -0
  263. package/dist/moltbook-YEiNI8Cm.js +81 -0
  264. package/dist/multi-agent-tools-jzfvT4zP.js +87 -0
  265. package/dist/multimodal-zZdwqISl.js +77 -0
  266. package/dist/node-BYrxELx2.js +251 -0
  267. package/dist/node-CLWgPlAk.js +251 -0
  268. package/dist/node-Czz8Y85D.js +251 -0
  269. package/dist/node-DFKhz7Zn.js +251 -0
  270. package/dist/node-Du2H2Ddi.js +226 -0
  271. package/dist/node-domexception-v89b0Nwz.js +21 -0
  272. package/dist/node-pending-queue-CIMXPU6K.js +32 -0
  273. package/dist/node-pending-queue-DUXCbYkp.js +32 -0
  274. package/dist/node-pending-queue-DZp7cdfo.js +32 -0
  275. package/dist/node-pending-queue-iYpoWqxe.js +32 -0
  276. package/dist/nodes-registry-BTy7Sc7D.js +52 -0
  277. package/dist/nodes-registry-BYjmmJBU.js +52 -0
  278. package/dist/nodes-registry-BeiEjd9U.js +52 -0
  279. package/dist/nodes-registry-C8GeEGq0.js +52 -0
  280. package/dist/nodes-registry-Du6Klz0l.js +52 -0
  281. package/dist/oauth-flow-BA0yMrHx.js +148 -0
  282. package/dist/oauth-flow-C4QSMsbl.js +148 -0
  283. package/dist/oauth-flow-CIuDBDsp.js +148 -0
  284. package/dist/oauth-flow-CZOsvU1v.js +148 -0
  285. package/dist/oauth-flow-CniM4jlJ.js +148 -0
  286. package/dist/oauth-provider-BA4GVFKg.js +111 -0
  287. package/dist/oauth-provider-Bnul5A_Z.js +111 -0
  288. package/dist/oauth-provider-Dk-6BmGL.js +111 -0
  289. package/dist/oauth-provider-DqPXPiiC.js +111 -0
  290. package/dist/oauth-provider-MEgHjij2.js +111 -0
  291. package/dist/observability-0spm7MPz.js +89 -0
  292. package/dist/observability-B3dDQSdI.js +89 -0
  293. package/dist/observability-BOMYgHUh.js +89 -0
  294. package/dist/observability-CDqHr-_o.js +89 -0
  295. package/dist/observability-ah2a7sh1.js +89 -0
  296. package/dist/onboard-BJ78s3NT.js +3854 -0
  297. package/dist/onboard-BnyHie0K.js +14 -0
  298. package/dist/onboard-C55YXd_e.js +14 -0
  299. package/dist/onboard-CNnm4yYp.js +3841 -0
  300. package/dist/onboard-CXSVPnP7.js +3854 -0
  301. package/dist/onboard-CwvXXOR1.js +14 -0
  302. package/dist/onboard-CxlIsNhX.js +3854 -0
  303. package/dist/onboard-D-5gWzH0.js +3854 -0
  304. package/dist/onboard-D9pjgaVR.js +3854 -0
  305. package/dist/onboard-DPmufMqX.js +14 -0
  306. package/dist/onboard-F9lKA2ie.js +14 -0
  307. package/dist/onboard-UTQXzlPD.js +3854 -0
  308. package/dist/onboard-UhWVcTap.js +14 -0
  309. package/dist/onboard-W5DsxVf2.js +3854 -0
  310. package/dist/onboard-YszvVNgS.js +14 -0
  311. package/dist/onboard-hK098kjl.js +14 -0
  312. package/dist/onboard-pLDBUBpO.js +14 -0
  313. package/dist/onboard-zISipu-l.js +3854 -0
  314. package/dist/openai-CrdtuLxw.js +6292 -0
  315. package/dist/orchestrator-5M-6MB7r.js +6 -0
  316. package/dist/orchestrator-B3BjP1dy.js +6 -0
  317. package/dist/orchestrator-BZS62iDS.js +6 -0
  318. package/dist/orchestrator-C0t11xj7.js +189 -0
  319. package/dist/orchestrator-CA4eKeGn.js +189 -0
  320. package/dist/orchestrator-CNxTIlOK.js +189 -0
  321. package/dist/orchestrator-CTMbjgH_.js +6 -0
  322. package/dist/orchestrator-Cg1vgEHb.js +6 -0
  323. package/dist/orchestrator-Crn4fgbI.js +189 -0
  324. package/dist/orchestrator-Cs6s-QmS.js +189 -0
  325. package/dist/orchestrator-DGqwsLmO.js +189 -0
  326. package/dist/orchestrator-DV5t6wQ0.js +6 -0
  327. package/dist/orchestrator-UUHsFKiH.js +6 -0
  328. package/dist/orchestrator-eT0ZL4yl.js +6 -0
  329. package/dist/orchestrator-oa7HbCnF.js +189 -0
  330. package/dist/orchestrator-tUKag7pG.js +189 -0
  331. package/dist/osint-47yIek6w.js +283 -0
  332. package/dist/osint-BJvOCmVk.js +283 -0
  333. package/dist/osint-CK9xVUUm.js +283 -0
  334. package/dist/osint-D6vQXCWh.js +283 -0
  335. package/dist/osint-DLYZsp1k.js +283 -0
  336. package/dist/osint-c-xDjLb-.js +283 -0
  337. package/dist/osint-cAAdO-cx.js +283 -0
  338. package/dist/osint-chat-B0lc0Y6r.js +789 -0
  339. package/dist/osint-chat-BJgnkFDm.js +789 -0
  340. package/dist/osint-chat-BUhiSpf9.js +789 -0
  341. package/dist/osint-chat-C-9FVAkU.js +789 -0
  342. package/dist/osint-chat-C09BvbGy.js +789 -0
  343. package/dist/osint-chat-CWET8Fno.js +789 -0
  344. package/dist/osint-chat-Cgdzg3lh.js +789 -0
  345. package/dist/osint-chat-zdeaaw7a.js +789 -0
  346. package/dist/osint-e6oBrtlj.js +283 -0
  347. package/dist/pc-access-BCaF5mRs.js +858 -0
  348. package/dist/pc-access-BOcXappE.js +858 -0
  349. package/dist/pc-access-BgZNmAdB.js +8 -0
  350. package/dist/pc-access-CAoM6WN4.js +8 -0
  351. package/dist/pc-access-D2HdoziZ.js +8 -0
  352. package/dist/pc-access-D4g0fjQb.js +858 -0
  353. package/dist/pending-approval-CEu_-DGQ.js +22 -0
  354. package/dist/pending-approval-CJPyt8U5.js +22 -0
  355. package/dist/pending-approval-CzMNCTfZ.js +22 -0
  356. package/dist/pending-approval-DaXi7otO.js +22 -0
  357. package/dist/pending-approval-KcyeiifE.js +22 -0
  358. package/dist/providers-BfW-fgpw.js +5 -0
  359. package/dist/providers-Cs1h_TJA.js +1137 -0
  360. package/dist/providers-DrZP0NeR.js +5 -0
  361. package/dist/providers-dHhpJo9j.js +1120 -0
  362. package/dist/reminders-store-B58LldEG.js +58 -0
  363. package/dist/reminders-store-C4gWckLa.js +58 -0
  364. package/dist/reminders-store-DT0o6a60.js +58 -0
  365. package/dist/renderer-B8c22rbg.js +228 -0
  366. package/dist/renderer-BS0ETL20.js +228 -0
  367. package/dist/renderer-B_ew6jRs.js +228 -0
  368. package/dist/renderer-Cg3c41A5.js +228 -0
  369. package/dist/renderer-UoPcgaAd.js +228 -0
  370. package/dist/rules-BAYXiKiJ.js +106 -0
  371. package/dist/rules-D0v5nuSE.js +106 -0
  372. package/dist/rules-DCKPgwLb.js +106 -0
  373. package/dist/rules-Zn9j4PnO.js +106 -0
  374. package/dist/rules-oAgOSPHC.js +106 -0
  375. package/dist/run-main.js +492 -131
  376. package/dist/runner-B5uo6C5q.js +1310 -0
  377. package/dist/runner-BaZ2V27T.js +1307 -0
  378. package/dist/runner-Bgl7UTbV.js +1307 -0
  379. package/dist/runner-DOKp3-v5.js +1307 -0
  380. package/dist/runner-voYdfM_f.js +1307 -0
  381. package/dist/search-tools-BBwMa8VX.js +107 -0
  382. package/dist/search-tools-CEUOO9Jf.js +107 -0
  383. package/dist/search-tools-DXVuVXW_.js +107 -0
  384. package/dist/search-tools-VHP3xVyC.js +107 -0
  385. package/dist/search-tools-w_zT7-dr.js +107 -0
  386. package/dist/server-BAdJwMM9.js +4 -0
  387. package/dist/server-BD9FLc7S.js +1384 -0
  388. package/dist/server-BJkDIs8Z.js +1467 -0
  389. package/dist/server-BlqWBbS7.js +4 -0
  390. package/dist/server-BzwPvTbD.js +1447 -0
  391. package/dist/server-CBvSfG4w.js +4 -0
  392. package/dist/server-CbNBcB41.js +4 -0
  393. package/dist/server-CtFoXM88.js +4 -0
  394. package/dist/server-DPTXaJJF.js +4 -0
  395. package/dist/server-DVxVLu_G.js +1467 -0
  396. package/dist/server-DZj6Nobr.js +1467 -0
  397. package/dist/server-Diu80smx.js +4 -0
  398. package/dist/server-DszV63tu.js +4 -0
  399. package/dist/server-Dv2zHHy-.js +1447 -0
  400. package/dist/server-MDmdWHob.js +1447 -0
  401. package/dist/server-N9LnLQCS.js +1447 -0
  402. package/dist/session-store-C6Otslf9.js +5 -0
  403. package/dist/session-store-Cmfnvuw9.js +141 -0
  404. package/dist/session-store-CuR9DgRf.js +5 -0
  405. package/dist/session-store-Cx1RMBhS.js +5 -0
  406. package/dist/session-store-DPPHkJBn.js +5 -0
  407. package/dist/session-store-DWLCWQFS.js +141 -0
  408. package/dist/session-store-qGufR_m5.js +141 -0
  409. package/dist/session-store-sUpA509O.js +141 -0
  410. package/dist/sessions-tools-9Z8TtdmP.js +5 -0
  411. package/dist/sessions-tools-BAZnoQLp.js +95 -0
  412. package/dist/sessions-tools-Bb_zF947.js +95 -0
  413. package/dist/sessions-tools-ClrKqLII.js +131 -0
  414. package/dist/sessions-tools-DFe23ZDD.js +5 -0
  415. package/dist/sessions-tools-JHSZ6Bns.js +5 -0
  416. package/dist/sessions-tools-TsRdeFb7.js +95 -0
  417. package/dist/sessions-tools-nYP3Agfs.js +5 -0
  418. package/dist/skill-loader-9jg876RH.js +160 -0
  419. package/dist/skill-loader-CM4KWQ7_.js +160 -0
  420. package/dist/skill-loader-CS3OP4Lr.js +160 -0
  421. package/dist/skill-loader-CnJDLNbY.js +7 -0
  422. package/dist/skill-loader-DRLgt5V2.js +160 -0
  423. package/dist/skill-loader-DVpEgYV2.js +7 -0
  424. package/dist/skill-loader-Df5T_UFl.js +7 -0
  425. package/dist/skill-loader-DxE-gZkT.js +7 -0
  426. package/dist/skill-runtime-8Xh5874w.js +104 -0
  427. package/dist/skill-runtime-B3aUdWKh.js +104 -0
  428. package/dist/skill-runtime-BKyhYvpW.js +5 -0
  429. package/dist/skill-runtime-BLkXA1mO.js +104 -0
  430. package/dist/skill-runtime-BMk-h6Dl.js +5 -0
  431. package/dist/skill-runtime-BP0kZfmM.js +5 -0
  432. package/dist/skill-runtime-BaTX-RGy.js +5 -0
  433. package/dist/skill-runtime-CB9tnc-P.js +104 -0
  434. package/dist/skill-runtime-CLK5HTVE.js +5 -0
  435. package/dist/skill-runtime-COyc3Bci.js +104 -0
  436. package/dist/skill-runtime-CvDXX7wN.js +5 -0
  437. package/dist/skill-runtime-D4REZnhY.js +104 -0
  438. package/dist/skill-runtime-D6-rGzX1.js +104 -0
  439. package/dist/skill-runtime-DQRi9sIf.js +5 -0
  440. package/dist/skill-runtime-DRd56NWK.js +104 -0
  441. package/dist/skill-runtime-Dej1Yr5V.js +5 -0
  442. package/dist/src-6dmkVQGq.js +63 -0
  443. package/dist/src-7yBXPAs6.js +315 -0
  444. package/dist/src-9GyYED0T.js +63 -0
  445. package/dist/src-B9L6qb-Z.js +462 -0
  446. package/dist/src-BEjIVOmq.js +63 -0
  447. package/dist/src-BOnuFlI4.js +23 -0
  448. package/dist/src-BY3On_zO.js +462 -0
  449. package/dist/src-BdgKAlMQ.js +20 -0
  450. package/dist/src-BkEtHLLy.js +462 -0
  451. package/dist/src-C52A3OwC.js +301 -0
  452. package/dist/src-C8cbfjat.js +173 -0
  453. package/dist/src-CDeWGebw.js +315 -0
  454. package/dist/src-CNAVUFC6.js +462 -0
  455. package/dist/src-CQ2lZvdF.js +462 -0
  456. package/dist/src-Cdwn9xpG.js +462 -0
  457. package/dist/src-CyCLoqIP.js +63 -0
  458. package/dist/src-D-OND_62.js +301 -0
  459. package/dist/src-DB6dPsbY.js +63 -0
  460. package/dist/src-DE4mH0BB.js +63 -0
  461. package/dist/src-DFo8lVfV.js +300 -0
  462. package/dist/src-DJbpP4Gs.js +462 -0
  463. package/dist/src-DPfnArdr.js +300 -0
  464. package/dist/src-DTft7Qvt.js +63 -0
  465. package/dist/src-DgvFah8g.js +153 -0
  466. package/dist/src-TYvV_oFO.js +63 -0
  467. package/dist/src-krHV0uVj.js +315 -0
  468. package/dist/src-lltU5gkh.js +20 -0
  469. package/dist/src-tF0sBtr3.js +462 -0
  470. package/dist/sub-agent-tools-BwOxHu6f.js +39 -0
  471. package/dist/sub-agent-tools-CE8pVUdb.js +39 -0
  472. package/dist/sub-agent-tools-CJVEIF1F.js +39 -0
  473. package/dist/sub-agent-tools-CQWNfYn_.js +39 -0
  474. package/dist/sub-agent-tools-CViiqebO.js +39 -0
  475. package/dist/sub-agent-tools-DgT4jUHC.js +39 -0
  476. package/dist/sub-agent-tools-Lbin_4S3.js +39 -0
  477. package/dist/sub-agent-tools-f4X1M-li.js +39 -0
  478. package/dist/tool-policy-1EBdJkSG.js +190 -0
  479. package/dist/tool-policy-B1bL0X-E.js +189 -0
  480. package/dist/tool-policy-CfWEnRxy.js +190 -0
  481. package/dist/tool-policy-NLbucl5-.js +189 -0
  482. package/dist/tool-policy-yNVTLNDY.js +189 -0
  483. package/dist/tts-elevenlabs-Bk24wQ2V.js +64 -0
  484. package/dist/tts-elevenlabs-CCeOqqrh.js +64 -0
  485. package/dist/tts-elevenlabs-CHrJZuNW.js +64 -0
  486. package/dist/tts-elevenlabs-DHqQsqMz.js +64 -0
  487. package/dist/tts-elevenlabs-TUKPkSV2.js +64 -0
  488. package/dist/vision-BMRKyu3c.js +167 -0
  489. package/dist/vision-CW1YCKed.js +167 -0
  490. package/dist/vision-DPLmrwUA.js +167 -0
  491. package/dist/vision-Q4EOcBS6.js +167 -0
  492. package/dist/vision-XyAGO5La.js +167 -0
  493. package/dist/vision-tools-B5DNR28M.js +5 -0
  494. package/dist/vision-tools-CC9HSuvN.js +51 -0
  495. package/dist/vision-tools-Ca3OhtdX.js +51 -0
  496. package/dist/vision-tools-CpU2fSRv.js +51 -0
  497. package/dist/vision-tools-Ct52djW8.js +51 -0
  498. package/dist/vision-tools-DF7N2DDI.js +5 -0
  499. package/dist/vision-tools-DVYx9-Jw.js +5 -0
  500. package/dist/vision-tools-DyP6lRA5.js +5 -0
  501. package/dist/vision-tools-RIVKEUeY.js +5 -0
  502. package/dist/vision-tools-kYb3effk.js +51 -0
  503. package/dist/voice-transcription-B1D1rpca.js +170 -0
  504. package/dist/voice-transcription-Bz2y0nPK.js +170 -0
  505. package/dist/voice-transcription-CVFcHpPF.js +170 -0
  506. package/dist/voice-transcription-CvQuWPYK.js +170 -0
  507. package/dist/voice-transcription-YqndiLA7.js +170 -0
  508. package/dist/website-watch-tools-B036Y8OQ.js +176 -0
  509. package/dist/website-watch-tools-B8CHie8v.js +5 -0
  510. package/dist/website-watch-tools-Brk5oIEv.js +176 -0
  511. package/dist/website-watch-tools-CJqRj_GB.js +5 -0
  512. package/dist/website-watch-tools-CSSEu3Qy.js +5 -0
  513. package/dist/website-watch-tools-D92dkYZa.js +176 -0
  514. package/dist/website-watch-tools-Du_a8lXq.js +176 -0
  515. package/dist/website-watch-tools-UdTBGgRk.js +5 -0
  516. package/package.json +5 -3
  517. package/static/chat.html +18 -4
  518. package/static/web/assets/index-D2ekZ-uM.js +75 -0
  519. package/static/web/assets/index-D_9lvvup.css +1 -0
  520. package/static/web/index.html +2 -2
  521. package/static/web/assets/index-B5N1LHGR.css +0 -1
  522. package/static/web/assets/index-Bf8pf7Wg.js +0 -75
@@ -0,0 +1,148 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ const crypto = require_chunk.__toESM(require("crypto"));
3
+ const http = require_chunk.__toESM(require("http"));
4
+
5
+ //#region src/services/oauth-flow.ts
6
+ const REDIRECT_PORT = 38789;
7
+ const REDIRECT_PATH = "/oauth/callback";
8
+ const PROVIDERS = {
9
+ google: {
10
+ authorize_url: "https://accounts.google.com/o/oauth2/v2/auth",
11
+ token_url: "https://oauth2.googleapis.com/token",
12
+ scopes: [
13
+ "openid",
14
+ "email",
15
+ "profile",
16
+ "https://www.googleapis.com/auth/aiplatform"
17
+ ],
18
+ client_id: process.env.GOOGLE_OAUTH_CLIENT_ID || "",
19
+ client_secret: process.env.GOOGLE_OAUTH_CLIENT_SECRET
20
+ },
21
+ "google-gmail": {
22
+ authorize_url: "https://accounts.google.com/o/oauth2/v2/auth",
23
+ token_url: "https://oauth2.googleapis.com/token",
24
+ scopes: [
25
+ "openid",
26
+ "email",
27
+ "profile",
28
+ "https://www.googleapis.com/auth/gmail.modify",
29
+ "https://mail.google.com/"
30
+ ],
31
+ client_id: process.env.GOOGLE_OAUTH_CLIENT_ID || "",
32
+ client_secret: process.env.GOOGLE_OAUTH_CLIENT_SECRET
33
+ },
34
+ microsoft: {
35
+ authorize_url: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
36
+ token_url: "https://login.microsoftonline.com/common/oauth2/v2.0/token",
37
+ scopes: [
38
+ "openid",
39
+ "profile",
40
+ "offline_access",
41
+ "https://cognitiveservices.azure.com/.default"
42
+ ],
43
+ client_id: process.env.AZURE_OAUTH_CLIENT_ID || process.env.MICROSOFT_OAUTH_CLIENT_ID || "",
44
+ client_secret: process.env.AZURE_OAUTH_CLIENT_SECRET || process.env.MICROSOFT_OAUTH_CLIENT_SECRET
45
+ }
46
+ };
47
+ async function runOAuthFlow(providerId, opts) {
48
+ const cfg = PROVIDERS[providerId];
49
+ if (!cfg) throw new Error(`OAuth provider "${providerId}" not configured. Supported: google, google-gmail (Gmail Pub/Sub), microsoft. Anthropic/OpenAI: use "hyperclaw auth add" (API keys) or "hyperclaw auth setup-token anthropic" for Claude Pro/Max.`);
50
+ const clientId = opts?.clientId || cfg.client_id || process.env.OAUTH_CLIENT_ID;
51
+ const clientSecret = opts?.clientSecret || cfg.client_secret || process.env.OAUTH_CLIENT_SECRET;
52
+ const scopes = opts?.scopes || cfg.scopes;
53
+ if (!clientId) {
54
+ const hint = providerId === "google" ? "Set GOOGLE_OAUTH_CLIENT_ID or OAUTH_CLIENT_ID. Create at: https://console.cloud.google.com/apis/credentials" : providerId === "microsoft" ? "Set AZURE_OAUTH_CLIENT_ID. Create at: https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade" : "Set OAUTH_CLIENT_ID or pass --client-id";
55
+ throw new Error(`OAuth client_id required. ${hint}`);
56
+ }
57
+ const codeVerifier = crypto.default.randomBytes(32).toString("base64url");
58
+ const codeChallenge = crypto.default.createHash("sha256").update(codeVerifier).digest("base64url");
59
+ const authParams = new URLSearchParams({
60
+ client_id: clientId,
61
+ redirect_uri: `http://127.0.0.1:${REDIRECT_PORT}${REDIRECT_PATH}`,
62
+ response_type: "code",
63
+ scope: scopes.join(" "),
64
+ code_challenge: codeChallenge,
65
+ code_challenge_method: "S256",
66
+ access_type: "offline",
67
+ prompt: "consent"
68
+ });
69
+ const authUrl = `${cfg.authorize_url}?${authParams}`;
70
+ return new Promise((resolve, reject) => {
71
+ const server = http.default.createServer(async (req, res) => {
72
+ const url = new URL(req.url || "/", `http://127.0.0.1`);
73
+ if (url.pathname !== REDIRECT_PATH) {
74
+ res.writeHead(404);
75
+ res.end("Not found");
76
+ return;
77
+ }
78
+ const code = url.searchParams.get("code");
79
+ const error = url.searchParams.get("error");
80
+ res.setHeader("Content-Type", "text/html; charset=utf-8");
81
+ if (error) {
82
+ const safeError = String(error).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
83
+ res.writeHead(400);
84
+ res.end(`<h1>OAuth error</h1><p>${safeError}</p><p>You can close this tab.</p>`);
85
+ server.close();
86
+ reject(new Error(`OAuth error: ${error}`));
87
+ return;
88
+ }
89
+ if (!code) {
90
+ res.writeHead(400);
91
+ res.end("<h1>No code received</h1><p>You can close this tab.</p>");
92
+ server.close();
93
+ reject(new Error("No authorization code received"));
94
+ return;
95
+ }
96
+ const body = new URLSearchParams({
97
+ grant_type: "authorization_code",
98
+ code,
99
+ redirect_uri: `http://127.0.0.1:${REDIRECT_PORT}${REDIRECT_PATH}`,
100
+ code_verifier: codeVerifier
101
+ });
102
+ if (clientSecret) body.set("client_secret", clientSecret);
103
+ body.set("client_id", clientId);
104
+ try {
105
+ const tokenRes = await fetch(cfg.token_url, {
106
+ method: "POST",
107
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
108
+ body: body.toString()
109
+ });
110
+ const tokenData = await tokenRes.json();
111
+ if (tokenData.error) {
112
+ res.writeHead(400);
113
+ res.end(`<h1>Token error</h1><p>${tokenData.error}</p><p>You can close this tab.</p>`);
114
+ server.close();
115
+ reject(new Error(tokenData.error_description || tokenData.error));
116
+ return;
117
+ }
118
+ res.writeHead(200);
119
+ res.end("<h1>Success!</h1><p>HyperClaw has received your tokens. You can close this tab and return to the terminal.</p>");
120
+ server.close();
121
+ resolve({
122
+ access_token: tokenData.access_token,
123
+ refresh_token: tokenData.refresh_token,
124
+ expires_in: tokenData.expires_in
125
+ });
126
+ } catch (e) {
127
+ res.writeHead(500);
128
+ res.end(`<h1>Error</h1><p>${e.message}</p><p>You can close this tab.</p>`);
129
+ server.close();
130
+ reject(e);
131
+ }
132
+ });
133
+ server.listen(REDIRECT_PORT, "127.0.0.1", () => {
134
+ try {
135
+ const { exec } = require("child_process");
136
+ const opener = process.platform === "win32" ? `start "" "${authUrl}"` : (process.platform === "darwin" ? "open" : "xdg-open") + ` "${authUrl}"`;
137
+ exec(opener);
138
+ } catch {}
139
+ });
140
+ server.on("error", (err) => {
141
+ server.close();
142
+ reject(err);
143
+ });
144
+ });
145
+ }
146
+
147
+ //#endregion
148
+ exports.runOAuthFlow = runOAuthFlow;
@@ -0,0 +1,148 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ const crypto = require_chunk.__toESM(require("crypto"));
3
+ const http = require_chunk.__toESM(require("http"));
4
+
5
+ //#region src/services/oauth-flow.ts
6
+ const REDIRECT_PORT = 38789;
7
+ const REDIRECT_PATH = "/oauth/callback";
8
+ const PROVIDERS = {
9
+ google: {
10
+ authorize_url: "https://accounts.google.com/o/oauth2/v2/auth",
11
+ token_url: "https://oauth2.googleapis.com/token",
12
+ scopes: [
13
+ "openid",
14
+ "email",
15
+ "profile",
16
+ "https://www.googleapis.com/auth/aiplatform"
17
+ ],
18
+ client_id: process.env.GOOGLE_OAUTH_CLIENT_ID || "",
19
+ client_secret: process.env.GOOGLE_OAUTH_CLIENT_SECRET
20
+ },
21
+ "google-gmail": {
22
+ authorize_url: "https://accounts.google.com/o/oauth2/v2/auth",
23
+ token_url: "https://oauth2.googleapis.com/token",
24
+ scopes: [
25
+ "openid",
26
+ "email",
27
+ "profile",
28
+ "https://www.googleapis.com/auth/gmail.modify",
29
+ "https://mail.google.com/"
30
+ ],
31
+ client_id: process.env.GOOGLE_OAUTH_CLIENT_ID || "",
32
+ client_secret: process.env.GOOGLE_OAUTH_CLIENT_SECRET
33
+ },
34
+ microsoft: {
35
+ authorize_url: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
36
+ token_url: "https://login.microsoftonline.com/common/oauth2/v2.0/token",
37
+ scopes: [
38
+ "openid",
39
+ "profile",
40
+ "offline_access",
41
+ "https://cognitiveservices.azure.com/.default"
42
+ ],
43
+ client_id: process.env.AZURE_OAUTH_CLIENT_ID || process.env.MICROSOFT_OAUTH_CLIENT_ID || "",
44
+ client_secret: process.env.AZURE_OAUTH_CLIENT_SECRET || process.env.MICROSOFT_OAUTH_CLIENT_SECRET
45
+ }
46
+ };
47
+ async function runOAuthFlow(providerId, opts) {
48
+ const cfg = PROVIDERS[providerId];
49
+ if (!cfg) throw new Error(`OAuth provider "${providerId}" not configured. Supported: google, google-gmail (Gmail Pub/Sub), microsoft. Anthropic/OpenAI: use "hyperclaw auth add" (API keys) or "hyperclaw auth setup-token anthropic" for Claude Pro/Max.`);
50
+ const clientId = opts?.clientId || cfg.client_id || process.env.OAUTH_CLIENT_ID;
51
+ const clientSecret = opts?.clientSecret || cfg.client_secret || process.env.OAUTH_CLIENT_SECRET;
52
+ const scopes = opts?.scopes || cfg.scopes;
53
+ if (!clientId) {
54
+ const hint = providerId === "google" ? "Set GOOGLE_OAUTH_CLIENT_ID or OAUTH_CLIENT_ID. Create at: https://console.cloud.google.com/apis/credentials" : providerId === "microsoft" ? "Set AZURE_OAUTH_CLIENT_ID. Create at: https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade" : "Set OAUTH_CLIENT_ID or pass --client-id";
55
+ throw new Error(`OAuth client_id required. ${hint}`);
56
+ }
57
+ const codeVerifier = crypto.default.randomBytes(32).toString("base64url");
58
+ const codeChallenge = crypto.default.createHash("sha256").update(codeVerifier).digest("base64url");
59
+ const authParams = new URLSearchParams({
60
+ client_id: clientId,
61
+ redirect_uri: `http://127.0.0.1:${REDIRECT_PORT}${REDIRECT_PATH}`,
62
+ response_type: "code",
63
+ scope: scopes.join(" "),
64
+ code_challenge: codeChallenge,
65
+ code_challenge_method: "S256",
66
+ access_type: "offline",
67
+ prompt: "consent"
68
+ });
69
+ const authUrl = `${cfg.authorize_url}?${authParams}`;
70
+ return new Promise((resolve, reject) => {
71
+ const server = http.default.createServer(async (req, res) => {
72
+ const url = new URL(req.url || "/", `http://127.0.0.1`);
73
+ if (url.pathname !== REDIRECT_PATH) {
74
+ res.writeHead(404);
75
+ res.end("Not found");
76
+ return;
77
+ }
78
+ const code = url.searchParams.get("code");
79
+ const error = url.searchParams.get("error");
80
+ res.setHeader("Content-Type", "text/html; charset=utf-8");
81
+ if (error) {
82
+ const safeError = String(error).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
83
+ res.writeHead(400);
84
+ res.end(`<h1>OAuth error</h1><p>${safeError}</p><p>You can close this tab.</p>`);
85
+ server.close();
86
+ reject(new Error(`OAuth error: ${error}`));
87
+ return;
88
+ }
89
+ if (!code) {
90
+ res.writeHead(400);
91
+ res.end("<h1>No code received</h1><p>You can close this tab.</p>");
92
+ server.close();
93
+ reject(new Error("No authorization code received"));
94
+ return;
95
+ }
96
+ const body = new URLSearchParams({
97
+ grant_type: "authorization_code",
98
+ code,
99
+ redirect_uri: `http://127.0.0.1:${REDIRECT_PORT}${REDIRECT_PATH}`,
100
+ code_verifier: codeVerifier
101
+ });
102
+ if (clientSecret) body.set("client_secret", clientSecret);
103
+ body.set("client_id", clientId);
104
+ try {
105
+ const tokenRes = await fetch(cfg.token_url, {
106
+ method: "POST",
107
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
108
+ body: body.toString()
109
+ });
110
+ const tokenData = await tokenRes.json();
111
+ if (tokenData.error) {
112
+ res.writeHead(400);
113
+ res.end(`<h1>Token error</h1><p>${tokenData.error}</p><p>You can close this tab.</p>`);
114
+ server.close();
115
+ reject(new Error(tokenData.error_description || tokenData.error));
116
+ return;
117
+ }
118
+ res.writeHead(200);
119
+ res.end("<h1>Success!</h1><p>HyperClaw has received your tokens. You can close this tab and return to the terminal.</p>");
120
+ server.close();
121
+ resolve({
122
+ access_token: tokenData.access_token,
123
+ refresh_token: tokenData.refresh_token,
124
+ expires_in: tokenData.expires_in
125
+ });
126
+ } catch (e) {
127
+ res.writeHead(500);
128
+ res.end(`<h1>Error</h1><p>${e.message}</p><p>You can close this tab.</p>`);
129
+ server.close();
130
+ reject(e);
131
+ }
132
+ });
133
+ server.listen(REDIRECT_PORT, "127.0.0.1", () => {
134
+ try {
135
+ const { exec } = require("child_process");
136
+ const opener = process.platform === "win32" ? `start "" "${authUrl}"` : (process.platform === "darwin" ? "open" : "xdg-open") + ` "${authUrl}"`;
137
+ exec(opener);
138
+ } catch {}
139
+ });
140
+ server.on("error", (err) => {
141
+ server.close();
142
+ reject(err);
143
+ });
144
+ });
145
+ }
146
+
147
+ //#endregion
148
+ exports.runOAuthFlow = runOAuthFlow;
@@ -0,0 +1,148 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ const crypto = require_chunk.__toESM(require("crypto"));
3
+ const http = require_chunk.__toESM(require("http"));
4
+
5
+ //#region src/services/oauth-flow.ts
6
+ const REDIRECT_PORT = 38789;
7
+ const REDIRECT_PATH = "/oauth/callback";
8
+ const PROVIDERS = {
9
+ google: {
10
+ authorize_url: "https://accounts.google.com/o/oauth2/v2/auth",
11
+ token_url: "https://oauth2.googleapis.com/token",
12
+ scopes: [
13
+ "openid",
14
+ "email",
15
+ "profile",
16
+ "https://www.googleapis.com/auth/aiplatform"
17
+ ],
18
+ client_id: process.env.GOOGLE_OAUTH_CLIENT_ID || "",
19
+ client_secret: process.env.GOOGLE_OAUTH_CLIENT_SECRET
20
+ },
21
+ "google-gmail": {
22
+ authorize_url: "https://accounts.google.com/o/oauth2/v2/auth",
23
+ token_url: "https://oauth2.googleapis.com/token",
24
+ scopes: [
25
+ "openid",
26
+ "email",
27
+ "profile",
28
+ "https://www.googleapis.com/auth/gmail.modify",
29
+ "https://mail.google.com/"
30
+ ],
31
+ client_id: process.env.GOOGLE_OAUTH_CLIENT_ID || "",
32
+ client_secret: process.env.GOOGLE_OAUTH_CLIENT_SECRET
33
+ },
34
+ microsoft: {
35
+ authorize_url: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
36
+ token_url: "https://login.microsoftonline.com/common/oauth2/v2.0/token",
37
+ scopes: [
38
+ "openid",
39
+ "profile",
40
+ "offline_access",
41
+ "https://cognitiveservices.azure.com/.default"
42
+ ],
43
+ client_id: process.env.AZURE_OAUTH_CLIENT_ID || process.env.MICROSOFT_OAUTH_CLIENT_ID || "",
44
+ client_secret: process.env.AZURE_OAUTH_CLIENT_SECRET || process.env.MICROSOFT_OAUTH_CLIENT_SECRET
45
+ }
46
+ };
47
+ async function runOAuthFlow(providerId, opts) {
48
+ const cfg = PROVIDERS[providerId];
49
+ if (!cfg) throw new Error(`OAuth provider "${providerId}" not configured. Supported: google, google-gmail (Gmail Pub/Sub), microsoft. Anthropic/OpenAI: use "hyperclaw auth add" (API keys) or "hyperclaw auth setup-token anthropic" for Claude Pro/Max.`);
50
+ const clientId = opts?.clientId || cfg.client_id || process.env.OAUTH_CLIENT_ID;
51
+ const clientSecret = opts?.clientSecret || cfg.client_secret || process.env.OAUTH_CLIENT_SECRET;
52
+ const scopes = opts?.scopes || cfg.scopes;
53
+ if (!clientId) {
54
+ const hint = providerId === "google" ? "Set GOOGLE_OAUTH_CLIENT_ID or OAUTH_CLIENT_ID. Create at: https://console.cloud.google.com/apis/credentials" : providerId === "microsoft" ? "Set AZURE_OAUTH_CLIENT_ID. Create at: https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade" : "Set OAUTH_CLIENT_ID or pass --client-id";
55
+ throw new Error(`OAuth client_id required. ${hint}`);
56
+ }
57
+ const codeVerifier = crypto.default.randomBytes(32).toString("base64url");
58
+ const codeChallenge = crypto.default.createHash("sha256").update(codeVerifier).digest("base64url");
59
+ const authParams = new URLSearchParams({
60
+ client_id: clientId,
61
+ redirect_uri: `http://127.0.0.1:${REDIRECT_PORT}${REDIRECT_PATH}`,
62
+ response_type: "code",
63
+ scope: scopes.join(" "),
64
+ code_challenge: codeChallenge,
65
+ code_challenge_method: "S256",
66
+ access_type: "offline",
67
+ prompt: "consent"
68
+ });
69
+ const authUrl = `${cfg.authorize_url}?${authParams}`;
70
+ return new Promise((resolve, reject) => {
71
+ const server = http.default.createServer(async (req, res) => {
72
+ const url = new URL(req.url || "/", `http://127.0.0.1`);
73
+ if (url.pathname !== REDIRECT_PATH) {
74
+ res.writeHead(404);
75
+ res.end("Not found");
76
+ return;
77
+ }
78
+ const code = url.searchParams.get("code");
79
+ const error = url.searchParams.get("error");
80
+ res.setHeader("Content-Type", "text/html; charset=utf-8");
81
+ if (error) {
82
+ const safeError = String(error).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
83
+ res.writeHead(400);
84
+ res.end(`<h1>OAuth error</h1><p>${safeError}</p><p>You can close this tab.</p>`);
85
+ server.close();
86
+ reject(new Error(`OAuth error: ${error}`));
87
+ return;
88
+ }
89
+ if (!code) {
90
+ res.writeHead(400);
91
+ res.end("<h1>No code received</h1><p>You can close this tab.</p>");
92
+ server.close();
93
+ reject(new Error("No authorization code received"));
94
+ return;
95
+ }
96
+ const body = new URLSearchParams({
97
+ grant_type: "authorization_code",
98
+ code,
99
+ redirect_uri: `http://127.0.0.1:${REDIRECT_PORT}${REDIRECT_PATH}`,
100
+ code_verifier: codeVerifier
101
+ });
102
+ if (clientSecret) body.set("client_secret", clientSecret);
103
+ body.set("client_id", clientId);
104
+ try {
105
+ const tokenRes = await fetch(cfg.token_url, {
106
+ method: "POST",
107
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
108
+ body: body.toString()
109
+ });
110
+ const tokenData = await tokenRes.json();
111
+ if (tokenData.error) {
112
+ res.writeHead(400);
113
+ res.end(`<h1>Token error</h1><p>${tokenData.error}</p><p>You can close this tab.</p>`);
114
+ server.close();
115
+ reject(new Error(tokenData.error_description || tokenData.error));
116
+ return;
117
+ }
118
+ res.writeHead(200);
119
+ res.end("<h1>Success!</h1><p>HyperClaw has received your tokens. You can close this tab and return to the terminal.</p>");
120
+ server.close();
121
+ resolve({
122
+ access_token: tokenData.access_token,
123
+ refresh_token: tokenData.refresh_token,
124
+ expires_in: tokenData.expires_in
125
+ });
126
+ } catch (e) {
127
+ res.writeHead(500);
128
+ res.end(`<h1>Error</h1><p>${e.message}</p><p>You can close this tab.</p>`);
129
+ server.close();
130
+ reject(e);
131
+ }
132
+ });
133
+ server.listen(REDIRECT_PORT, "127.0.0.1", () => {
134
+ try {
135
+ const { exec } = require("child_process");
136
+ const opener = process.platform === "win32" ? `start "" "${authUrl}"` : (process.platform === "darwin" ? "open" : "xdg-open") + ` "${authUrl}"`;
137
+ exec(opener);
138
+ } catch {}
139
+ });
140
+ server.on("error", (err) => {
141
+ server.close();
142
+ reject(err);
143
+ });
144
+ });
145
+ }
146
+
147
+ //#endregion
148
+ exports.runOAuthFlow = runOAuthFlow;
@@ -0,0 +1,148 @@
1
+ const require_chunk = require('./chunk-jS-bbMI5.js');
2
+ const crypto = require_chunk.__toESM(require("crypto"));
3
+ const http = require_chunk.__toESM(require("http"));
4
+
5
+ //#region src/services/oauth-flow.ts
6
+ const REDIRECT_PORT = 38789;
7
+ const REDIRECT_PATH = "/oauth/callback";
8
+ const PROVIDERS = {
9
+ google: {
10
+ authorize_url: "https://accounts.google.com/o/oauth2/v2/auth",
11
+ token_url: "https://oauth2.googleapis.com/token",
12
+ scopes: [
13
+ "openid",
14
+ "email",
15
+ "profile",
16
+ "https://www.googleapis.com/auth/aiplatform"
17
+ ],
18
+ client_id: process.env.GOOGLE_OAUTH_CLIENT_ID || "",
19
+ client_secret: process.env.GOOGLE_OAUTH_CLIENT_SECRET
20
+ },
21
+ "google-gmail": {
22
+ authorize_url: "https://accounts.google.com/o/oauth2/v2/auth",
23
+ token_url: "https://oauth2.googleapis.com/token",
24
+ scopes: [
25
+ "openid",
26
+ "email",
27
+ "profile",
28
+ "https://www.googleapis.com/auth/gmail.modify",
29
+ "https://mail.google.com/"
30
+ ],
31
+ client_id: process.env.GOOGLE_OAUTH_CLIENT_ID || "",
32
+ client_secret: process.env.GOOGLE_OAUTH_CLIENT_SECRET
33
+ },
34
+ microsoft: {
35
+ authorize_url: "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
36
+ token_url: "https://login.microsoftonline.com/common/oauth2/v2.0/token",
37
+ scopes: [
38
+ "openid",
39
+ "profile",
40
+ "offline_access",
41
+ "https://cognitiveservices.azure.com/.default"
42
+ ],
43
+ client_id: process.env.AZURE_OAUTH_CLIENT_ID || process.env.MICROSOFT_OAUTH_CLIENT_ID || "",
44
+ client_secret: process.env.AZURE_OAUTH_CLIENT_SECRET || process.env.MICROSOFT_OAUTH_CLIENT_SECRET
45
+ }
46
+ };
47
+ async function runOAuthFlow(providerId, opts) {
48
+ const cfg = PROVIDERS[providerId];
49
+ if (!cfg) throw new Error(`OAuth provider "${providerId}" not configured. Supported: google, google-gmail (Gmail Pub/Sub), microsoft. Anthropic/OpenAI: use "hyperclaw auth add" (API keys) or "hyperclaw auth setup-token anthropic" for Claude Pro/Max.`);
50
+ const clientId = opts?.clientId || cfg.client_id || process.env.OAUTH_CLIENT_ID;
51
+ const clientSecret = opts?.clientSecret || cfg.client_secret || process.env.OAUTH_CLIENT_SECRET;
52
+ const scopes = opts?.scopes || cfg.scopes;
53
+ if (!clientId) {
54
+ const hint = providerId === "google" ? "Set GOOGLE_OAUTH_CLIENT_ID or OAUTH_CLIENT_ID. Create at: https://console.cloud.google.com/apis/credentials" : providerId === "microsoft" ? "Set AZURE_OAUTH_CLIENT_ID. Create at: https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/ApplicationsListBlade" : "Set OAUTH_CLIENT_ID or pass --client-id";
55
+ throw new Error(`OAuth client_id required. ${hint}`);
56
+ }
57
+ const codeVerifier = crypto.default.randomBytes(32).toString("base64url");
58
+ const codeChallenge = crypto.default.createHash("sha256").update(codeVerifier).digest("base64url");
59
+ const authParams = new URLSearchParams({
60
+ client_id: clientId,
61
+ redirect_uri: `http://127.0.0.1:${REDIRECT_PORT}${REDIRECT_PATH}`,
62
+ response_type: "code",
63
+ scope: scopes.join(" "),
64
+ code_challenge: codeChallenge,
65
+ code_challenge_method: "S256",
66
+ access_type: "offline",
67
+ prompt: "consent"
68
+ });
69
+ const authUrl = `${cfg.authorize_url}?${authParams}`;
70
+ return new Promise((resolve, reject) => {
71
+ const server = http.default.createServer(async (req, res) => {
72
+ const url = new URL(req.url || "/", `http://127.0.0.1`);
73
+ if (url.pathname !== REDIRECT_PATH) {
74
+ res.writeHead(404);
75
+ res.end("Not found");
76
+ return;
77
+ }
78
+ const code = url.searchParams.get("code");
79
+ const error = url.searchParams.get("error");
80
+ res.setHeader("Content-Type", "text/html; charset=utf-8");
81
+ if (error) {
82
+ const safeError = String(error).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
83
+ res.writeHead(400);
84
+ res.end(`<h1>OAuth error</h1><p>${safeError}</p><p>You can close this tab.</p>`);
85
+ server.close();
86
+ reject(new Error(`OAuth error: ${error}`));
87
+ return;
88
+ }
89
+ if (!code) {
90
+ res.writeHead(400);
91
+ res.end("<h1>No code received</h1><p>You can close this tab.</p>");
92
+ server.close();
93
+ reject(new Error("No authorization code received"));
94
+ return;
95
+ }
96
+ const body = new URLSearchParams({
97
+ grant_type: "authorization_code",
98
+ code,
99
+ redirect_uri: `http://127.0.0.1:${REDIRECT_PORT}${REDIRECT_PATH}`,
100
+ code_verifier: codeVerifier
101
+ });
102
+ if (clientSecret) body.set("client_secret", clientSecret);
103
+ body.set("client_id", clientId);
104
+ try {
105
+ const tokenRes = await fetch(cfg.token_url, {
106
+ method: "POST",
107
+ headers: { "Content-Type": "application/x-www-form-urlencoded" },
108
+ body: body.toString()
109
+ });
110
+ const tokenData = await tokenRes.json();
111
+ if (tokenData.error) {
112
+ res.writeHead(400);
113
+ res.end(`<h1>Token error</h1><p>${tokenData.error}</p><p>You can close this tab.</p>`);
114
+ server.close();
115
+ reject(new Error(tokenData.error_description || tokenData.error));
116
+ return;
117
+ }
118
+ res.writeHead(200);
119
+ res.end("<h1>Success!</h1><p>HyperClaw has received your tokens. You can close this tab and return to the terminal.</p>");
120
+ server.close();
121
+ resolve({
122
+ access_token: tokenData.access_token,
123
+ refresh_token: tokenData.refresh_token,
124
+ expires_in: tokenData.expires_in
125
+ });
126
+ } catch (e) {
127
+ res.writeHead(500);
128
+ res.end(`<h1>Error</h1><p>${e.message}</p><p>You can close this tab.</p>`);
129
+ server.close();
130
+ reject(e);
131
+ }
132
+ });
133
+ server.listen(REDIRECT_PORT, "127.0.0.1", () => {
134
+ try {
135
+ const { exec } = require("child_process");
136
+ const opener = process.platform === "win32" ? `start "" "${authUrl}"` : (process.platform === "darwin" ? "open" : "xdg-open") + ` "${authUrl}"`;
137
+ exec(opener);
138
+ } catch {}
139
+ });
140
+ server.on("error", (err) => {
141
+ server.close();
142
+ reject(err);
143
+ });
144
+ });
145
+ }
146
+
147
+ //#endregion
148
+ exports.runOAuthFlow = runOAuthFlow;