@termix-it/cryptoclaw 1.1.4 → 1.1.6

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 (319) hide show
  1. package/dist/{accounts-MAwYK1nH.js → accounts-D35rx3gg.js} +1 -1
  2. package/dist/{accounts-WPSFYBfl.js → accounts-LgFHpzSb.js} +1 -1
  3. package/dist/{accounts-DHCEvJoG.js → accounts-lOYFKFqj.js} +16 -16
  4. package/dist/{active-listener-BG3fObzp.js → active-listener-Cxra3bK5.js} +1 -1
  5. package/dist/{agents-APWxL0pc.js → agents-BgGWuEM4.js} +4 -4
  6. package/dist/{agents.config-Bt2w0g9g.js → agents.config-CBblmxIJ.js} +1 -1
  7. package/dist/{agents.config-DMNDmQB3.js → agents.config-jlSvPmMw.js} +1 -1
  8. package/dist/{api-key-rotation-BUSngXoA.js → api-key-rotation-CYUsE9se.js} +2 -2
  9. package/dist/{audio-preflight-DylHSkVV.js → audio-preflight-DwAVbL_O.js} +33 -33
  10. package/dist/{audio-transcription-runner-D1VfiPMl.js → audio-transcription-runner-CDMccbtY.js} +12 -12
  11. package/dist/{audit-membership-runtime-Dg_k-jzY.js → audit-membership-runtime-DCpAfnah.js} +5 -5
  12. package/dist/{auth-choice-BU6K1e3k.js → auth-choice-BZof8lFS.js} +1 -1
  13. package/dist/{auth-choice-BteeSZpX.js → auth-choice-Bfddvmj3.js} +1 -1
  14. package/dist/{banner-CzhEeK4U.js → banner-DSSu3MES.js} +1 -1
  15. package/dist/build-info.json +3 -3
  16. package/dist/bundled/boot-md/handler.js +52 -52
  17. package/dist/bundled/bootstrap-extra-files/handler.js +7 -7
  18. package/dist/bundled/command-logger/handler.js +2 -2
  19. package/dist/bundled/session-memory/handler.js +52 -52
  20. package/dist/bundled/soul-evil/handler.js +5 -5
  21. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  22. package/dist/{channel-activity-TwPquwyw.js → channel-activity-DU4rVRNu.js} +3 -3
  23. package/dist/{channel-options-3d9AkTzB.js → channel-options-DhT3itUm.js} +1 -1
  24. package/dist/{channel-options-CGZSPHrf.js → channel-options-uwhpiId_.js} +1 -1
  25. package/dist/{channel-web-BOduPOdI.js → channel-web-Dfitllt8.js} +1 -1
  26. package/dist/{channel-web-DJpgzln9.js → channel-web-VY7QYUgs.js} +1 -1
  27. package/dist/{channels-cli-PDKQIDwD.js → channels-cli-BK1fnXeM.js} +7 -7
  28. package/dist/{channels-cli-DUq_ZyYt.js → channels-cli-CHNWup9-.js} +7 -7
  29. package/dist/{chrome-B972B1oO.js → chrome-Coir_NPd.js} +18 -18
  30. package/dist/{cli-BSMD-wDs.js → cli-C38DxImL.js} +2 -2
  31. package/dist/{cli-zy3mgZH-.js → cli-Dp2ZovoW.js} +2 -2
  32. package/dist/{command-registry-CiGCHshG.js → command-registry-CyZnzlu4.js} +10 -10
  33. package/dist/{commands-registry-C1rzSTeQ.js → commands-registry-e9j4etib.js} +4 -4
  34. package/dist/{completion-cli-Cv0Vxe6o.js → completion-cli-BnCuqVW8.js} +1 -1
  35. package/dist/{completion-cli-BU4ty_aJ.js → completion-cli-DWGdZ-R1.js} +2 -2
  36. package/dist/{config-cli-BxJeEh_0.js → config-cli-B11T53Tu.js} +1 -1
  37. package/dist/{config-cli-BUTfK0hW.js → config-cli-N3Kt8WRz.js} +1 -1
  38. package/dist/{configure-CmJfUSUr.js → configure-2IzSrcnf.js} +4 -4
  39. package/dist/{configure-8lVykYnh.js → configure-kCtv9jdh.js} +4 -4
  40. package/dist/{deliver-CEbU5IBY.js → deliver-Bfo198gf.js} +20 -20
  41. package/dist/deliver-runtime-FUk47wdh.js +37 -0
  42. package/dist/deps-send-discord.runtime-CtY41kC2.js +27 -0
  43. package/dist/deps-send-imessage.runtime-DuDLMZWC.js +26 -0
  44. package/dist/deps-send-signal.runtime-DmsxFjfF.js +25 -0
  45. package/dist/deps-send-slack.runtime-Bu_5Gshc.js +23 -0
  46. package/dist/deps-send-telegram.runtime-BY3XoK15.js +28 -0
  47. package/dist/{deps-send-whatsapp.runtime-i7Po75u8.js → deps-send-whatsapp.runtime-CbNuccsY.js} +4 -4
  48. package/dist/{deps-send-whatsapp.runtime-DK374NBi.js → deps-send-whatsapp.runtime-D2LQa8La.js} +4 -4
  49. package/dist/deps-send-whatsapp.runtime-DwPycT2W.js +61 -0
  50. package/dist/{diagnostic-IKfXukdB.js → diagnostic-Cfju3nfo.js} +2 -2
  51. package/dist/{doctor-completion-DE8rQlzx.js → doctor-completion-BNHmdXaA.js} +1 -1
  52. package/dist/{doctor-completion-DlJLi2iR.js → doctor-completion-CwQVCBv7.js} +1 -1
  53. package/dist/entry.js +2 -2
  54. package/dist/{plugin-sdk/errors-Cn3JyiMn.js → errors-V2Dfp7m3.js} +1 -1
  55. package/dist/{fetch-BsFdX4tn.js → fetch-CzmuidZT.js} +5 -5
  56. package/dist/{fetch-guard-4K8g_TXN.js → fetch-guard-BvTjDgDZ.js} +2 -2
  57. package/dist/{frontmatter-DHQ0IaHw.js → frontmatter-ZZvA8UXc.js} +3 -3
  58. package/dist/{fs-safe-BwhFB7Uo.js → fs-safe-urUZDVCv.js} +4 -4
  59. package/dist/{gateway-cli-DBUjNaTU.js → gateway-cli-DqZElDVQ.js} +9 -9
  60. package/dist/{gateway-cli-DEdGe0N2.js → gateway-cli-Dr0XRe7-.js} +9 -9
  61. package/dist/{github-copilot-token-D1RrJx7s.js → github-copilot-token-D7knylDF.js} +7 -7
  62. package/dist/{health-DmCqZQWS.js → health-BtR5qiQu.js} +1 -1
  63. package/dist/{health-i7BpZK8H.js → health-SohRW0Au.js} +1 -1
  64. package/dist/{hooks-cli-Vt5EnXJy.js → hooks-cli-DA-hMHRE.js} +3 -3
  65. package/dist/{hooks-cli-KpChFv5u.js → hooks-cli-DDbWkzaW.js} +3 -3
  66. package/dist/{image-D9ypE3-q.js → image-C8nVgFoF.js} +6 -6
  67. package/dist/{image-ops-CmuiWrJv.js → image-ops-BIpUUDZD.js} +2 -2
  68. package/dist/image-runtime-Cla7tVB-.js +30 -0
  69. package/dist/index.js +7 -7
  70. package/dist/{ir-BgRFz8jI.js → ir-Dc-ltzcD.js} +7 -7
  71. package/dist/{legacy-names-7AmQGjQk.js → legacy-names-cvlkUdK7.js} +1 -1
  72. package/dist/llm-slug-generator.js +52 -52
  73. package/dist/{logger-BDDjH6hb.js → logger-BXGNqQxk.js} +1 -1
  74. package/dist/{login-DR9M0Alg.js → login-BMty1inC.js} +5 -5
  75. package/dist/{login-qr-DhI_GpxA.js → login-qr-BVyS4U6r.js} +11 -11
  76. package/dist/{manager-C80Inv1T.js → manager-Cz6WMkvV.js} +13 -13
  77. package/dist/manager-runtime-DzceCyMz.js +19 -0
  78. package/dist/{memory-cli-nJ0zujIp.js → memory-cli-1oaIDOW8.js} +2 -2
  79. package/dist/{memory-cli-Cq0_-tR2.js → memory-cli-Bp1To7jm.js} +2 -2
  80. package/dist/{model-selection-CiffIpda.js → model-selection-4Sj13O94.js} +43 -43
  81. package/dist/{models-DFcmwLyd.js → models-BA-4owed.js} +2 -2
  82. package/dist/{models-cli-C3MgmR5P.js → models-cli-CXBkorTt.js} +4 -4
  83. package/dist/{models-cli-BFty3Lf0.js → models-cli-Da9VNU1F.js} +3 -3
  84. package/dist/{npm-resolution-cPvfFeW3.js → npm-resolution-C873xoG-.js} +1 -1
  85. package/dist/{npm-resolution-usPm99nU.js → npm-resolution-DcToGf31.js} +1 -1
  86. package/dist/{onboard-DEXrIgAj.js → onboard-CUTVb79X.js} +2 -2
  87. package/dist/{onboard-sxX0LKra.js → onboard-DeLF8XEh.js} +2 -2
  88. package/dist/{onboard-channels-4xKNT1d3.js → onboard-channels-Cji_Bpi5.js} +1 -1
  89. package/dist/{onboard-channels-DNmcc7GV.js → onboard-channels-tfZfzFUy.js} +1 -1
  90. package/dist/{onboard-skills-B2q1id5f.js → onboard-skills-BjGs7gMo.js} +6 -5
  91. package/dist/{onboard-skills-1wG7jm-6.js → onboard-skills-DwtwT621.js} +6 -5
  92. package/dist/onboard-wallet-CLprx0TL.js +155 -0
  93. package/dist/onboard-wallet-DDau_3R0.js +155 -0
  94. package/dist/{onboarding-C-YkK0dn.js → onboarding-ChCan-RJ.js} +70 -6
  95. package/dist/{onboarding-DptEa7du.js → onboarding-Coslo6Og.js} +70 -6
  96. package/dist/{onboarding.finalize-MzE-hxAw.js → onboarding.finalize-BHdqLBS4.js} +6 -6
  97. package/dist/{onboarding.finalize-B9Xw0YTE.js → onboarding.finalize-DsRnSME_.js} +7 -7
  98. package/dist/{outbound-DRXnhjhO.js → outbound-DTQi4eVy.js} +6 -6
  99. package/dist/{outbound-attachment-CbQ3_IKf.js → outbound-attachment-CkmduxIi.js} +2 -2
  100. package/dist/{path-alias-guards-DUWK88Ct.js → path-alias-guards-DcWktNGt.js} +1 -1
  101. package/dist/{paths-Dxl3r5jd.js → paths-BWg7M5Yy.js} +3 -3
  102. package/dist/{paths-B-UhE8oc.js → paths-Cvc9EM8Y.js} +5 -5
  103. package/dist/{pi-embedded-BC1F5aRs.js → pi-embedded-CHY0kd6o.js} +159 -159
  104. package/dist/{pi-embedded-helpers-DqvEMwsR.js → pi-embedded-helpers-Ci0rozAP.js} +52 -52
  105. package/dist/{pi-model-discovery-CQgqt_Mv.js → pi-model-discovery-DtqUetHg.js} +7 -7
  106. package/dist/pi-model-discovery-runtime-Bm4YyCud.js +12 -0
  107. package/dist/{pi-tools.before-tool-call.runtime-Lfb7FVNU.js → pi-tools.before-tool-call.runtime-CkQ1AgXu.js} +10 -10
  108. package/dist/{plugin-registry-1ma_GS_Y.js → plugin-registry-CqaLj5NI.js} +1 -1
  109. package/dist/{plugin-registry-CO3b05zo.js → plugin-registry-CxwuWddJ.js} +1 -1
  110. package/dist/plugin-sdk/{accounts-DAebrX4r.js → accounts-BY3xA55d.js} +3 -3
  111. package/dist/plugin-sdk/{accounts-B9ydKoYC.js → accounts-Bpe8MpMj.js} +2 -2
  112. package/dist/plugin-sdk/{accounts-DxlJAHNG.js → accounts-Dg9HUb5m.js} +2 -2
  113. package/dist/plugin-sdk/{active-listener-D7Jidx1U.js → active-listener-kZJwBchj.js} +2 -2
  114. package/dist/plugin-sdk/{api-key-rotation-d8cmHGhi.js → api-key-rotation-wZaR5O8n.js} +2 -2
  115. package/dist/plugin-sdk/{audio-preflight-vJtQi-4_.js → audio-preflight-DOR1d1hn.js} +26 -26
  116. package/dist/plugin-sdk/{audio-transcription-runner-Bfv_TVP4.js → audio-transcription-runner-DWncgs4M.js} +11 -11
  117. package/dist/plugin-sdk/{audit-membership-runtime-BpoX61hv.js → audit-membership-runtime-DvBMQsDC.js} +2 -2
  118. package/dist/plugin-sdk/{channel-activity-1LCR07HU.js → channel-activity-VsWwcNLD.js} +3 -3
  119. package/dist/plugin-sdk/{channel-web-CdKEEscn.js → channel-web-BlIQD83I.js} +18 -18
  120. package/dist/plugin-sdk/{chrome-CbDAFNHQ.js → chrome-pOAzXzzJ.js} +6 -6
  121. package/dist/plugin-sdk/commands/onboard-types.d.ts +6 -0
  122. package/dist/plugin-sdk/{commands-registry-D8gIWgM5.js → commands-registry-pKaQ4EJQ.js} +4 -4
  123. package/dist/plugin-sdk/{common-tbQtS1zp.js → common-BlJfaliy.js} +2 -2
  124. package/dist/plugin-sdk/{config-xkSrCec1.js → config-CURxPU7B.js} +7 -7
  125. package/dist/plugin-sdk/{deliver-D_Ofr_vN.js → deliver-BpfQj4BK.js} +10 -10
  126. package/dist/plugin-sdk/deliver-runtime-CoTMJYYS.js +32 -0
  127. package/dist/plugin-sdk/deps-send-discord.runtime-4lI0eS6q.js +23 -0
  128. package/dist/plugin-sdk/deps-send-imessage.runtime-i11JqPLo.js +22 -0
  129. package/dist/plugin-sdk/deps-send-signal.runtime-BHanWbgq.js +21 -0
  130. package/dist/plugin-sdk/deps-send-slack.runtime-DIHbNRq4.js +19 -0
  131. package/dist/plugin-sdk/deps-send-telegram.runtime-F-_XP5zF.js +24 -0
  132. package/dist/plugin-sdk/deps-send-whatsapp.runtime-BjQGa9z_.js +57 -0
  133. package/dist/plugin-sdk/{diagnostic-GjXXC_Pm.js → diagnostic-Bi3FO6Il.js} +2 -2
  134. package/dist/{errors-B2Vmqoab.js → plugin-sdk/errors-B2jpHiod.js} +1 -1
  135. package/dist/plugin-sdk/{fetch-guard-ClYTU8LW.js → fetch-guard-d5MU-Fi7.js} +2 -2
  136. package/dist/plugin-sdk/{fs-safe-Bs9BHEmp.js → fs-safe-D57cyrSh.js} +3 -3
  137. package/dist/plugin-sdk/{image-_uAwPFe2.js → image-DWnmWvGr.js} +6 -6
  138. package/dist/plugin-sdk/{image-ops-CsS12Rhg.js → image-ops-BPP3M0yA.js} +2 -2
  139. package/dist/plugin-sdk/image-runtime-dC0tUp3V.js +25 -0
  140. package/dist/plugin-sdk/{ir-DvWncgWp.js → ir-A16Z9dUw.js} +7 -7
  141. package/dist/plugin-sdk/{local-roots-Bh7FKHd2.js → local-roots-BQJNDffC.js} +4 -4
  142. package/dist/plugin-sdk/{logger-Dj4IX2UB.js → logger-Bl138Nx7.js} +2 -2
  143. package/dist/plugin-sdk/{login-CYqSEzPN.js → login-DXLuzgCO.js} +4 -4
  144. package/dist/plugin-sdk/{login-qr-CXXXR_1G.js → login-qr-DdTcNEXK.js} +5 -5
  145. package/dist/plugin-sdk/{manager-Dj-hy8oN.js → manager-ClrE1ahD.js} +8 -8
  146. package/dist/plugin-sdk/manager-runtime-Ba5Qbwrz.js +15 -0
  147. package/dist/plugin-sdk/{outbound-attachment-Aa86Zp9X.js → outbound-attachment-C1GuoigP.js} +2 -2
  148. package/dist/plugin-sdk/{outbound-IhJ6xLv1.js → outbound-wmFCJQyk.js} +5 -5
  149. package/dist/plugin-sdk/{path-alias-guards-CtnE1WrY.js → path-alias-guards-Bsi-4XND.js} +1 -1
  150. package/dist/plugin-sdk/{paths-Mew07RGP.js → paths-Cb2hB2o0.js} +1 -1
  151. package/dist/plugin-sdk/{pi-embedded-helpers-B_iabXhh.js → pi-embedded-helpers-VYetsWcU.js} +16 -16
  152. package/dist/plugin-sdk/{pi-model-discovery-avPx6Ptq.js → pi-model-discovery-Bs1t1vHG.js} +1 -1
  153. package/dist/plugin-sdk/pi-model-discovery-runtime-CdT00Yy6.js +8 -0
  154. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-dixwOhKo.js → pi-tools.before-tool-call.runtime-133Rh_QB.js} +4 -4
  155. package/dist/plugin-sdk/{plugins-WDZLdw8Z.js → plugins-A3lJ2lkT.js} +4 -4
  156. package/dist/plugin-sdk/{proxy-env-DKQK-fn1.js → proxy-env-DnjPLipe.js} +1 -1
  157. package/dist/plugin-sdk/{proxy-fetch-rtc8GmoB.js → proxy-fetch-C-fXKPD2.js} +1 -1
  158. package/dist/plugin-sdk/{pw-ai-eYJyyMZX.js → pw-ai-BhB6bXtS.js} +9 -9
  159. package/dist/plugin-sdk/{qmd-manager-mWoTdSFY.js → qmd-manager-CmGPY3vR.js} +7 -7
  160. package/dist/plugin-sdk/{query-expansion-4V3Vjs8V.js → query-expansion-oxEhEDk_.js} +4 -4
  161. package/dist/plugin-sdk/{redact-CBwV828t.js → redact-C3rEm8A0.js} +1 -1
  162. package/dist/plugin-sdk/{reply-D1vqXg5h.js → reply-DTRgf1F0.js} +73 -73
  163. package/dist/plugin-sdk/{resolve-outbound-target-Dk3UdF5C.js → resolve-outbound-target-K2KiC0bi.js} +2 -2
  164. package/dist/plugin-sdk/{run-with-concurrency-KlQQobSI.js → run-with-concurrency-FfGqq3TC.js} +1 -1
  165. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-BtI3_XNc.js +10 -0
  166. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-1ZWHTOIM.js +19 -0
  167. package/dist/plugin-sdk/{send-CG8TGQTM.js → send-70p3gkTA.js} +7 -7
  168. package/dist/plugin-sdk/{send-BTWIW3-9.js → send-C5J_PXzR.js} +8 -8
  169. package/dist/plugin-sdk/{send-wEJ-5g9f.js → send-CqaHDOLs.js} +6 -6
  170. package/dist/plugin-sdk/{send-CSJIozmo.js → send-DdNdK-kV.js} +5 -5
  171. package/dist/plugin-sdk/{send-D50Hdj7y.js → send-DjqI2JpQ.js} +13 -13
  172. package/dist/plugin-sdk/{session-CDTFGpPr.js → session-BBm3qP5l.js} +3 -3
  173. package/dist/plugin-sdk/{skill-commands-X5RX1jW3.js → skill-commands-B_tuCFSd.js} +4 -4
  174. package/dist/plugin-sdk/{skills-v1KdkGto.js → skills-BG1gHeJ_.js} +6 -6
  175. package/dist/plugin-sdk/slash-commands.runtime-CNOgz4_9.js +13 -0
  176. package/dist/plugin-sdk/slash-dispatch.runtime-BHeslQ9I.js +52 -0
  177. package/dist/plugin-sdk/slash-skill-commands.runtime-NOFmKWtQ.js +16 -0
  178. package/dist/plugin-sdk/{store-DtdqEbDW.js → store-C3Z3fpIY.js} +2 -2
  179. package/dist/plugin-sdk/subagent-registry-runtime-TPnV-Feh.js +52 -0
  180. package/dist/plugin-sdk/{tables-D5d9mqkg.js → tables-BfXi9ML_.js} +1 -1
  181. package/dist/plugin-sdk/{thinking-CCdKzGau.js → thinking-J6jgjmDK.js} +7 -7
  182. package/dist/plugin-sdk/{tokens-D2fpVQt3.js → tokens-DMbd3-Ct.js} +1 -1
  183. package/dist/plugin-sdk/{tool-images-B4KNq2sg.js → tool-images-BtzvC48Z.js} +2 -2
  184. package/dist/plugin-sdk/web-Bkz8JTNB.js +56 -0
  185. package/dist/plugin-sdk/{whatsapp-actions-Bi_hJ-Cq.js → whatsapp-actions-C4kVobIE.js} +17 -17
  186. package/dist/plugin-sdk/whatsapp.js +50 -50
  187. package/dist/{plugins-XniO7sfQ.js → plugins-CL-6YYtw.js} +10 -10
  188. package/dist/{plugins-cli-DESM1g9H.js → plugins-cli-BOBhi6vj.js} +3 -3
  189. package/dist/{plugins-cli-Cz8qjGa-.js → plugins-cli-Ypib_ZAu.js} +3 -3
  190. package/dist/{program-DIVcGZoY.js → program-BtG4HD-0.js} +8 -8
  191. package/dist/{program-context-B8SH5Pdl.js → program-context-B0p9viIw.js} +18 -18
  192. package/dist/{prompt-select-styled-DYBmMpLB.js → prompt-select-styled-B75ysiU4.js} +5 -5
  193. package/dist/{prompt-select-styled-Db3jekFt.js → prompt-select-styled-DGdLX1o8.js} +5 -5
  194. package/dist/{provider-auth-helpers-DLAG-xEH.js → provider-auth-helpers-BOJRr3AT.js} +1 -1
  195. package/dist/{provider-auth-helpers-CMYpEEfK.js → provider-auth-helpers-CNHiPj2n.js} +1 -1
  196. package/dist/{proxy-env-DmWlGLBC.js → proxy-env-DTggb3di.js} +1 -1
  197. package/dist/{proxy-fetch-DJI7qbLV.js → proxy-fetch-y5_PzyGg.js} +1 -1
  198. package/dist/{push-apns-BYE8LhKX.js → push-apns-CFoFAonc.js} +1 -1
  199. package/dist/{push-apns-buHXMlvp.js → push-apns-D2WXZjcs.js} +1 -1
  200. package/dist/{pw-ai-B80S9aX7.js → pw-ai-CG8VZHWv.js} +15 -15
  201. package/dist/{qmd-manager-BR3hqTPz.js → qmd-manager-B0rRZcZv.js} +11 -11
  202. package/dist/{query-expansion-BqeYg_KB.js → query-expansion-hv7XTb0w.js} +6 -6
  203. package/dist/{redact-DXxcO2ch.js → redact-bA-cQEro.js} +1 -1
  204. package/dist/{register.agent-DqLkvzup.js → register.agent-Br-Y4UQG.js} +7 -7
  205. package/dist/{register.agent-CSLJ1ral.js → register.agent-Das6WI06.js} +8 -8
  206. package/dist/{register.configure-CR5sLkM9.js → register.configure-Ba7_s-QB.js} +9 -9
  207. package/dist/{register.configure-BeUMP8qR.js → register.configure-D9H7R-iH.js} +9 -9
  208. package/dist/{register.maintenance-Yz7iswBq.js → register.maintenance-CGyhSoIL.js} +9 -9
  209. package/dist/{register.maintenance-VlJQxEQj.js → register.maintenance-CviMGLqV.js} +8 -8
  210. package/dist/{register.message-BYhbFha9.js → register.message-Cx0R9D0q.js} +3 -3
  211. package/dist/{register.message-BHNP-sXn.js → register.message-nwyAqXBm.js} +3 -3
  212. package/dist/{register.onboard-CO75d40a.js → register.onboard-CwgcIoxt.js} +2 -2
  213. package/dist/{register.onboard-CLvU1m-R.js → register.onboard-DonQrraB.js} +2 -2
  214. package/dist/{register.setup-Bne4coEf.js → register.setup-BPz0sskT.js} +2 -2
  215. package/dist/{register.setup-8aW6IV4r.js → register.setup-MIddZq-r.js} +2 -2
  216. package/dist/{register.status-health-sessions-BDA0wZvj.js → register.status-health-sessions-Bo1NWHTF.js} +4 -4
  217. package/dist/{register.status-health-sessions-DqaespPp.js → register.status-health-sessions-CU2aw4Hn.js} +4 -4
  218. package/dist/{register.subclis-SsmPAU6K.js → register.subclis-BjXl-tRU.js} +9 -9
  219. package/dist/{reply-BEwkR4yo.js → reply-BqhnZbqb.js} +18 -18
  220. package/dist/{run-main-NWS9VlVz.js → run-main-BxoqsWSK.js} +16 -16
  221. package/dist/{run-with-concurrency-BO2phtXO.js → run-with-concurrency-h53-4TQQ.js} +4 -4
  222. package/dist/runtime-whatsapp-login.runtime-BmCUuMj3.js +14 -0
  223. package/dist/runtime-whatsapp-outbound.runtime-BR4VzGXP.js +23 -0
  224. package/dist/{send-tnPEkJiG.js → send-C4j6KYCq.js} +6 -6
  225. package/dist/{send-8gHRezMM.js → send-C84A606p.js} +5 -5
  226. package/dist/{send-BvcR90t7.js → send-D1oBKmnR.js} +25 -25
  227. package/dist/{send-BTfv7AaM.js → send-DAyhLyD2.js} +7 -7
  228. package/dist/{send-Cz5Fxy-m.js → send-DZXs_7ks.js} +7 -7
  229. package/dist/{server-node-events-DpJU4SdG.js → server-node-events-Cl_g7u2c.js} +3 -3
  230. package/dist/{server-node-events-Bzjy1Xtj.js → server-node-events-bMD7s7bO.js} +3 -3
  231. package/dist/{session-B7285vs2.js → session-D0o5WcVM.js} +8 -8
  232. package/dist/{skill-commands-CyPSgHR1.js → skill-commands-JBrsox47.js} +9 -9
  233. package/dist/{skills-BItCBgHn.js → skills-BV465ziD.js} +22 -22
  234. package/dist/slash-commands.runtime-BADqwr8b.js +17 -0
  235. package/dist/{slash-dispatch.runtime-D-oMjxcP.js → slash-dispatch.runtime-CDbTI8Zn.js} +2 -2
  236. package/dist/slash-dispatch.runtime-Ct3ZRGID.js +57 -0
  237. package/dist/{slash-dispatch.runtime-DV907pxr.js → slash-dispatch.runtime-Dfs5wcag.js} +2 -2
  238. package/dist/slash-skill-commands.runtime-B1jRjicY.js +21 -0
  239. package/dist/{status-EvCGTkQn.js → status-C-0bju9A.js} +3 -3
  240. package/dist/{status-CBPmJLfb.js → status-Cs4ozAdx.js} +3 -3
  241. package/dist/{store-D6UDEQAm.js → store-1VFEBO08.js} +2 -2
  242. package/dist/{subagent-registry-DQ-U47U4.js → subagent-registry-iFkFgxIF.js} +18 -18
  243. package/dist/subagent-registry-runtime-2L4IC0fu.js +57 -0
  244. package/dist/{subagent-registry-runtime-Bgf5dXIu.js → subagent-registry-runtime-CeOQQxea.js} +2 -2
  245. package/dist/{subagent-registry-runtime-CWBUvwv6.js → subagent-registry-runtime-Cgw6YwfZ.js} +2 -2
  246. package/dist/{subsystem-D0TuaxQo.js → subsystem-CdFYjh2k.js} +14 -14
  247. package/dist/{tables-CSZ8Vmrh.js → tables-DTLvZx1M.js} +1 -1
  248. package/dist/{target-errors-KgDT2gLA.js → target-errors-CmB0nYoj.js} +2 -2
  249. package/dist/{thinking-D3IkjILB.js → thinking-C5t4wH91.js} +6 -6
  250. package/dist/{tokens-B5sJjWxn.js → tokens-DGUER2v0.js} +1 -1
  251. package/dist/{tool-images-C6sn5gPw.js → tool-images-CrdEIwVA.js} +2 -2
  252. package/dist/{update-cli-D70Tpv2p.js → update-cli-D7h2Kq9K.js} +8 -8
  253. package/dist/{update-cli-B2twzUzo.js → update-cli-DveYI_mi.js} +9 -9
  254. package/dist/{update-runner-CFH1vAet.js → update-runner-DPJDvGzk.js} +1 -1
  255. package/dist/{update-runner-BQjJqa5Z.js → update-runner-RtYc0wSW.js} +1 -1
  256. package/dist/{utils-VpQxx_Ci.js → utils-B5eEH24c.js} +7 -7
  257. package/dist/{web-B9akwZ9Q.js → web-BUYMR1EH.js} +56 -56
  258. package/dist/{web-BV88abgj.js → web-CnqADWPs.js} +3 -3
  259. package/dist/{web-C9_Z0znV.js → web-UlvsjtC9.js} +3 -3
  260. package/dist/{whatsapp-actions-DsMWjVmg.js → whatsapp-actions-PWrB4d7Y.js} +22 -22
  261. package/dist/{workspace-C7j8mMYc.js → workspace-Bo-HJMNp.js} +21 -21
  262. package/package.json +1 -1
  263. package/dist/deliver-runtime-2oTfiQBW.js +0 -37
  264. package/dist/deps-send-discord.runtime-CaqCAqcE.js +0 -27
  265. package/dist/deps-send-imessage.runtime-B4SfcBtt.js +0 -26
  266. package/dist/deps-send-signal.runtime-C4COTtrG.js +0 -25
  267. package/dist/deps-send-slack.runtime-B_4hwea9.js +0 -23
  268. package/dist/deps-send-telegram.runtime-MuUJFk12.js +0 -28
  269. package/dist/deps-send-whatsapp.runtime-DoXnqRdU.js +0 -61
  270. package/dist/image-runtime-DWl2_x74.js +0 -30
  271. package/dist/manager-runtime-CZv0ALL_.js +0 -19
  272. package/dist/pi-model-discovery-runtime-D4Jl2mQE.js +0 -12
  273. package/dist/plugin-sdk/deliver-runtime-DkyFlw6M.js +0 -32
  274. package/dist/plugin-sdk/deps-send-discord.runtime-Bpqp608e.js +0 -23
  275. package/dist/plugin-sdk/deps-send-imessage.runtime-CEnAbBMn.js +0 -22
  276. package/dist/plugin-sdk/deps-send-signal.runtime-DLQqphLL.js +0 -21
  277. package/dist/plugin-sdk/deps-send-slack.runtime-BdLrhl4O.js +0 -19
  278. package/dist/plugin-sdk/deps-send-telegram.runtime-WQqnuFdj.js +0 -24
  279. package/dist/plugin-sdk/deps-send-whatsapp.runtime-DtH6rXyR.js +0 -57
  280. package/dist/plugin-sdk/image-runtime-0p3JEsb2.js +0 -25
  281. package/dist/plugin-sdk/manager-runtime-CzGyKWqZ.js +0 -15
  282. package/dist/plugin-sdk/pi-model-discovery-runtime-SwUqnyFp.js +0 -8
  283. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-BxBLO_MD.js +0 -10
  284. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-Dv_fcg58.js +0 -19
  285. package/dist/plugin-sdk/slash-commands.runtime-MtqQ0dUA.js +0 -13
  286. package/dist/plugin-sdk/slash-dispatch.runtime-D6UTc-X3.js +0 -52
  287. package/dist/plugin-sdk/slash-skill-commands.runtime-BraY0iT6.js +0 -16
  288. package/dist/plugin-sdk/subagent-registry-runtime-DtV745_q.js +0 -52
  289. package/dist/plugin-sdk/web-Dzy-Gyjd.js +0 -56
  290. package/dist/runtime-whatsapp-login.runtime-DknvIgQ9.js +0 -14
  291. package/dist/runtime-whatsapp-outbound.runtime-DzQVWw3U.js +0 -23
  292. package/dist/slash-commands.runtime-B5euYv9Q.js +0 -17
  293. package/dist/slash-dispatch.runtime-DXuZn9JV.js +0 -57
  294. package/dist/slash-skill-commands.runtime-DA20IzN7.js +0 -21
  295. package/dist/subagent-registry-runtime-BmI0Wvlh.js +0 -57
  296. /package/dist/{audio-preflight-BQV5cOlH.js → audio-preflight-BxFoXiPf.js} +0 -0
  297. /package/dist/{audio-preflight-EJ5SUJjd.js → audio-preflight-C4yq6ssq.js} +0 -0
  298. /package/dist/{audit-membership-runtime-D6qEVnNT.js → audit-membership-runtime-BG4WxIDH.js} +0 -0
  299. /package/dist/{audit-membership-runtime-pFLxEf5B.js → audit-membership-runtime-oo2DbgFW.js} +0 -0
  300. /package/dist/{deliver-runtime-GAi5480M.js → deliver-runtime-FL5_bhMe.js} +0 -0
  301. /package/dist/{deliver-runtime-C0OsjAj3.js → deliver-runtime-_L6Rv_7K.js} +0 -0
  302. /package/dist/{image-runtime-GVOBL24v.js → image-runtime-BeGeHH2O.js} +0 -0
  303. /package/dist/{image-runtime-Dx3-W2jp.js → image-runtime-Dny90w7z.js} +0 -0
  304. /package/dist/{login-qr-Bhg7XHZS.js → login-qr-BJCPbTFZ.js} +0 -0
  305. /package/dist/{login-qr-DuB0o4UM.js → login-qr-BohDxqgQ.js} +0 -0
  306. /package/dist/{manager-runtime-B6yWy31j.js → manager-runtime-BxaiDdDE.js} +0 -0
  307. /package/dist/{manager-runtime-DktmlE7-.js → manager-runtime-CIBcyjkJ.js} +0 -0
  308. /package/dist/{onboarding.gateway-config-tOUlSE0m.js → onboarding.gateway-config-BuC8nL_c.js} +0 -0
  309. /package/dist/{onboarding.gateway-config-CNrA9RiE.js → onboarding.gateway-config-CkT0qEDp.js} +0 -0
  310. /package/dist/{qmd-manager-DWrfS3aI.js → qmd-manager-BFT1h2hM.js} +0 -0
  311. /package/dist/{qmd-manager-DLmPp6Ml.js → qmd-manager-Q-iay5w2.js} +0 -0
  312. /package/dist/{runtime-whatsapp-login.runtime-D2RKecOQ.js → runtime-whatsapp-login.runtime-BoLTF-OO.js} +0 -0
  313. /package/dist/{runtime-whatsapp-login.runtime-pz7c55zj.js → runtime-whatsapp-login.runtime-DrtfK3ru.js} +0 -0
  314. /package/dist/{runtime-whatsapp-outbound.runtime-DPUew4QY.js → runtime-whatsapp-outbound.runtime-BWC6-uWe.js} +0 -0
  315. /package/dist/{runtime-whatsapp-outbound.runtime-DGm8MDjj.js → runtime-whatsapp-outbound.runtime-CQSrwbqD.js} +0 -0
  316. /package/dist/{slash-commands.runtime-CA221qL2.js → slash-commands.runtime-Chf-kE5X.js} +0 -0
  317. /package/dist/{slash-commands.runtime-XLelltUi.js → slash-commands.runtime-iH5_VNlE.js} +0 -0
  318. /package/dist/{slash-skill-commands.runtime--KJswwTl.js → slash-skill-commands.runtime-BJJnGhEx.js} +0 -0
  319. /package/dist/{slash-skill-commands.runtime-CMYgi1_t.js → slash-skill-commands.runtime-DQz7oU7j.js} +0 -0
@@ -0,0 +1,155 @@
1
+ //#region src/commands/onboard-wallet.ts
2
+ /**
3
+ * Wallet setup step for the onboarding wizard.
4
+ * Prompts the user to create, import, or skip wallet setup.
5
+ */
6
+ async function setupWallet(stateDir, prompter, opts) {
7
+ if (opts.skipWallet) return { action: "skipped" };
8
+ let WalletManager;
9
+ try {
10
+ WalletManager = (await import("./wallet-manager-BfxpmqfL.js")).WalletManager;
11
+ } catch {
12
+ await prompter.note("Blockchain extension not installed. Skipping wallet setup.\nInstall it later and run: cryptoclaw wallet create", "Wallet");
13
+ return { action: "skipped" };
14
+ }
15
+ const wm = new WalletManager(stateDir);
16
+ if (opts.walletCreate) {
17
+ const passphrase = process.env.CRYPTOCLAW_WALLET_PASSPHRASE;
18
+ if (!passphrase) throw new Error("--wallet-create requires CRYPTOCLAW_WALLET_PASSPHRASE environment variable");
19
+ const label = opts.walletLabel ?? "Default";
20
+ const wallet = await wm.createWallet(label, passphrase);
21
+ return {
22
+ action: "created",
23
+ address: wallet.address,
24
+ label: wallet.label
25
+ };
26
+ }
27
+ if (opts.walletImport) {
28
+ const privateKey = process.env.CRYPTOCLAW_WALLET_PRIVATE_KEY;
29
+ const passphrase = process.env.CRYPTOCLAW_WALLET_PASSPHRASE;
30
+ if (!privateKey || !passphrase) throw new Error("--wallet-import requires CRYPTOCLAW_WALLET_PRIVATE_KEY and CRYPTOCLAW_WALLET_PASSPHRASE environment variables");
31
+ const label = opts.walletLabel ?? "Imported";
32
+ const wallet = await wm.importWallet(privateKey, label, passphrase);
33
+ return {
34
+ action: "imported",
35
+ address: wallet.address,
36
+ label: wallet.label
37
+ };
38
+ }
39
+ if (wm.hasWallets()) {
40
+ const { wallets, activeWalletId } = wm.listWallets();
41
+ const active = wallets.find((w) => w.id === activeWalletId);
42
+ await prompter.note(`Active wallet: ${active?.label ?? "none"} (${active?.address ?? "—"})\nTotal wallets: ${wallets.length}`, "Existing Wallets");
43
+ const action = await prompter.select({
44
+ message: "Wallet setup",
45
+ options: [
46
+ {
47
+ value: "keep",
48
+ label: "Keep existing wallets"
49
+ },
50
+ {
51
+ value: "create",
52
+ label: "Create another wallet"
53
+ },
54
+ {
55
+ value: "skip",
56
+ label: "Skip"
57
+ }
58
+ ],
59
+ initialValue: "keep"
60
+ });
61
+ if (action === "keep" || action === "skip") return { action: action === "keep" ? "kept" : "skipped" };
62
+ } else {
63
+ const action = await prompter.select({
64
+ message: "Set up a blockchain wallet?",
65
+ options: [
66
+ {
67
+ value: "create",
68
+ label: "Create new wallet",
69
+ hint: "Generate a fresh key pair"
70
+ },
71
+ {
72
+ value: "import",
73
+ label: "Import existing wallet",
74
+ hint: "Paste a private key"
75
+ },
76
+ {
77
+ value: "skip",
78
+ label: "Skip for now"
79
+ }
80
+ ],
81
+ initialValue: "create"
82
+ });
83
+ if (action === "skip") return { action: "skipped" };
84
+ if (action === "import") return importWalletInteractive(wm, prompter, opts);
85
+ }
86
+ return createWalletInteractive(wm, prompter, opts);
87
+ }
88
+ async function createWalletInteractive(wm, prompter, opts) {
89
+ const label = opts.walletLabel ?? await prompter.text({
90
+ message: "Wallet label",
91
+ initialValue: "Default",
92
+ placeholder: "Default"
93
+ });
94
+ const passphrase = await prompter.text({
95
+ message: "Enter a passphrase to encrypt your wallet",
96
+ validate: (v) => v.length < 8 ? "Passphrase must be at least 8 characters" : void 0
97
+ });
98
+ if (await prompter.text({
99
+ message: "Confirm passphrase",
100
+ validate: (v) => v !== passphrase ? "Passphrases do not match" : void 0
101
+ }) !== passphrase) {
102
+ await prompter.note("Passphrases did not match. Skipping wallet creation.", "Wallet");
103
+ return { action: "skipped" };
104
+ }
105
+ const spinner = prompter.progress("Creating wallet...");
106
+ const wallet = await wm.createWallet(label, passphrase);
107
+ spinner.stop(`Wallet created: ${wallet.address}`);
108
+ await prompter.note([
109
+ `Address: ${wallet.address}`,
110
+ `Label: ${wallet.label}`,
111
+ "",
112
+ "Back up your passphrase securely.",
113
+ "You'll need it to sign transactions and export your key."
114
+ ].join("\n"), "Wallet Created");
115
+ return {
116
+ action: "created",
117
+ address: wallet.address,
118
+ label: wallet.label
119
+ };
120
+ }
121
+ async function importWalletInteractive(wm, prompter, opts) {
122
+ await prompter.note("Your private key will be encrypted with AES-256-GCM and stored locally.\nIt will never be exposed in agent chat or session transcripts.", "Security");
123
+ const privateKey = await prompter.text({
124
+ message: "Private key (0x...)",
125
+ validate: (v) => {
126
+ if (!/^0x[a-fA-F0-9]{64}$/.test(v)) return "Invalid private key format. Expected 0x followed by 64 hex characters.";
127
+ }
128
+ });
129
+ const label = opts.walletLabel ?? await prompter.text({
130
+ message: "Wallet label",
131
+ initialValue: "Imported",
132
+ placeholder: "Imported"
133
+ });
134
+ const passphrase = await prompter.text({
135
+ message: "Enter a passphrase to encrypt the wallet",
136
+ validate: (v) => v.length < 8 ? "Passphrase must be at least 8 characters" : void 0
137
+ });
138
+ const spinner = prompter.progress("Importing wallet...");
139
+ const wallet = await wm.importWallet(privateKey, label, passphrase);
140
+ spinner.stop(`Wallet imported: ${wallet.address}`);
141
+ await prompter.note([
142
+ `Address: ${wallet.address}`,
143
+ `Label: ${wallet.label}`,
144
+ "",
145
+ "Back up your passphrase securely."
146
+ ].join("\n"), "Wallet Imported");
147
+ return {
148
+ action: "imported",
149
+ address: wallet.address,
150
+ label: wallet.label
151
+ };
152
+ }
153
+
154
+ //#endregion
155
+ export { setupWallet };
@@ -0,0 +1,155 @@
1
+ //#region src/commands/onboard-wallet.ts
2
+ /**
3
+ * Wallet setup step for the onboarding wizard.
4
+ * Prompts the user to create, import, or skip wallet setup.
5
+ */
6
+ async function setupWallet(stateDir, prompter, opts) {
7
+ if (opts.skipWallet) return { action: "skipped" };
8
+ let WalletManager;
9
+ try {
10
+ WalletManager = (await import("./wallet-manager-U3OIjbc6.js")).WalletManager;
11
+ } catch {
12
+ await prompter.note("Blockchain extension not installed. Skipping wallet setup.\nInstall it later and run: cryptoclaw wallet create", "Wallet");
13
+ return { action: "skipped" };
14
+ }
15
+ const wm = new WalletManager(stateDir);
16
+ if (opts.walletCreate) {
17
+ const passphrase = process.env.CRYPTOCLAW_WALLET_PASSPHRASE;
18
+ if (!passphrase) throw new Error("--wallet-create requires CRYPTOCLAW_WALLET_PASSPHRASE environment variable");
19
+ const label = opts.walletLabel ?? "Default";
20
+ const wallet = await wm.createWallet(label, passphrase);
21
+ return {
22
+ action: "created",
23
+ address: wallet.address,
24
+ label: wallet.label
25
+ };
26
+ }
27
+ if (opts.walletImport) {
28
+ const privateKey = process.env.CRYPTOCLAW_WALLET_PRIVATE_KEY;
29
+ const passphrase = process.env.CRYPTOCLAW_WALLET_PASSPHRASE;
30
+ if (!privateKey || !passphrase) throw new Error("--wallet-import requires CRYPTOCLAW_WALLET_PRIVATE_KEY and CRYPTOCLAW_WALLET_PASSPHRASE environment variables");
31
+ const label = opts.walletLabel ?? "Imported";
32
+ const wallet = await wm.importWallet(privateKey, label, passphrase);
33
+ return {
34
+ action: "imported",
35
+ address: wallet.address,
36
+ label: wallet.label
37
+ };
38
+ }
39
+ if (wm.hasWallets()) {
40
+ const { wallets, activeWalletId } = wm.listWallets();
41
+ const active = wallets.find((w) => w.id === activeWalletId);
42
+ await prompter.note(`Active wallet: ${active?.label ?? "none"} (${active?.address ?? "—"})\nTotal wallets: ${wallets.length}`, "Existing Wallets");
43
+ const action = await prompter.select({
44
+ message: "Wallet setup",
45
+ options: [
46
+ {
47
+ value: "keep",
48
+ label: "Keep existing wallets"
49
+ },
50
+ {
51
+ value: "create",
52
+ label: "Create another wallet"
53
+ },
54
+ {
55
+ value: "skip",
56
+ label: "Skip"
57
+ }
58
+ ],
59
+ initialValue: "keep"
60
+ });
61
+ if (action === "keep" || action === "skip") return { action: action === "keep" ? "kept" : "skipped" };
62
+ } else {
63
+ const action = await prompter.select({
64
+ message: "Set up a blockchain wallet?",
65
+ options: [
66
+ {
67
+ value: "create",
68
+ label: "Create new wallet",
69
+ hint: "Generate a fresh key pair"
70
+ },
71
+ {
72
+ value: "import",
73
+ label: "Import existing wallet",
74
+ hint: "Paste a private key"
75
+ },
76
+ {
77
+ value: "skip",
78
+ label: "Skip for now"
79
+ }
80
+ ],
81
+ initialValue: "create"
82
+ });
83
+ if (action === "skip") return { action: "skipped" };
84
+ if (action === "import") return importWalletInteractive(wm, prompter, opts);
85
+ }
86
+ return createWalletInteractive(wm, prompter, opts);
87
+ }
88
+ async function createWalletInteractive(wm, prompter, opts) {
89
+ const label = opts.walletLabel ?? await prompter.text({
90
+ message: "Wallet label",
91
+ initialValue: "Default",
92
+ placeholder: "Default"
93
+ });
94
+ const passphrase = await prompter.text({
95
+ message: "Enter a passphrase to encrypt your wallet",
96
+ validate: (v) => v.length < 8 ? "Passphrase must be at least 8 characters" : void 0
97
+ });
98
+ if (await prompter.text({
99
+ message: "Confirm passphrase",
100
+ validate: (v) => v !== passphrase ? "Passphrases do not match" : void 0
101
+ }) !== passphrase) {
102
+ await prompter.note("Passphrases did not match. Skipping wallet creation.", "Wallet");
103
+ return { action: "skipped" };
104
+ }
105
+ const spinner = prompter.progress("Creating wallet...");
106
+ const wallet = await wm.createWallet(label, passphrase);
107
+ spinner.stop(`Wallet created: ${wallet.address}`);
108
+ await prompter.note([
109
+ `Address: ${wallet.address}`,
110
+ `Label: ${wallet.label}`,
111
+ "",
112
+ "Back up your passphrase securely.",
113
+ "You'll need it to sign transactions and export your key."
114
+ ].join("\n"), "Wallet Created");
115
+ return {
116
+ action: "created",
117
+ address: wallet.address,
118
+ label: wallet.label
119
+ };
120
+ }
121
+ async function importWalletInteractive(wm, prompter, opts) {
122
+ await prompter.note("Your private key will be encrypted with AES-256-GCM and stored locally.\nIt will never be exposed in agent chat or session transcripts.", "Security");
123
+ const privateKey = await prompter.text({
124
+ message: "Private key (0x...)",
125
+ validate: (v) => {
126
+ if (!/^0x[a-fA-F0-9]{64}$/.test(v)) return "Invalid private key format. Expected 0x followed by 64 hex characters.";
127
+ }
128
+ });
129
+ const label = opts.walletLabel ?? await prompter.text({
130
+ message: "Wallet label",
131
+ initialValue: "Imported",
132
+ placeholder: "Imported"
133
+ });
134
+ const passphrase = await prompter.text({
135
+ message: "Enter a passphrase to encrypt the wallet",
136
+ validate: (v) => v.length < 8 ? "Passphrase must be at least 8 characters" : void 0
137
+ });
138
+ const spinner = prompter.progress("Importing wallet...");
139
+ const wallet = await wm.importWallet(privateKey, label, passphrase);
140
+ spinner.stop(`Wallet imported: ${wallet.address}`);
141
+ await prompter.note([
142
+ `Address: ${wallet.address}`,
143
+ `Label: ${wallet.label}`,
144
+ "",
145
+ "Back up your passphrase securely."
146
+ ].join("\n"), "Wallet Imported");
147
+ return {
148
+ action: "imported",
149
+ address: wallet.address,
150
+ label: wallet.label
151
+ };
152
+ }
153
+
154
+ //#endregion
155
+ export { setupWallet };
@@ -245,7 +245,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
245
245
  const { ensureAuthProfileStore } = await import("./auth-profiles-O2Q8_o0a.js").then((n) => n.t);
246
246
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-BFv49hiE.js").then((n) => n.t);
247
247
  const { promptCustomApiConfig } = await import("./onboard-custom-Cpf2aU9S.js").then((n) => n.r);
248
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BteeSZpX.js").then((n) => n.t);
248
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-Bfddvmj3.js").then((n) => n.t);
249
249
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-MNBPQ3J0.js").then((n) => n.i);
250
250
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
251
251
  const authChoiceFromPrompt = opts.authChoice === void 0;
@@ -284,7 +284,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
284
284
  if (modelSelection.model) nextConfig = applyPrimaryModel(nextConfig, modelSelection.model);
285
285
  }
286
286
  await warnIfModelConfigLooksOff(nextConfig, prompter);
287
- const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-CNrA9RiE.js");
287
+ const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-CkT0qEDp.js");
288
288
  const gateway = await configureGatewayForOnboarding({
289
289
  flow,
290
290
  baseConfig,
@@ -300,7 +300,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
300
300
  if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
301
301
  else {
302
302
  const { listChannelPlugins } = await import("./plugins-BPdE2epV.js").then((n) => n.i);
303
- const { setupChannels } = await import("./onboard-channels-DNmcc7GV.js").then((n) => n.n);
303
+ const { setupChannels } = await import("./onboard-channels-tfZfzFUy.js").then((n) => n.n);
304
304
  const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
305
305
  nextConfig = await setupChannels(nextConfig, runtime, prompter, {
306
306
  allowSignalInstall: true,
@@ -317,8 +317,72 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
317
317
  await onboardHelpers.ensureWorkspaceAndSessions(workspaceDir, runtime, { skipBootstrap: Boolean(nextConfig.agents?.defaults?.skipBootstrap) });
318
318
  if (opts.skipSkills) await prompter.note("Skipping skills setup.", "Skills");
319
319
  else {
320
- const { setupSkills } = await import("./onboard-skills-B2q1id5f.js").then((n) => n.t);
321
- nextConfig = await setupSkills(nextConfig, workspaceDir, runtime, prompter);
320
+ const { setupSkills } = await import("./onboard-skills-BjGs7gMo.js").then((n) => n.t);
321
+ nextConfig = await setupSkills(nextConfig, workspaceDir, runtime, prompter, new Set([
322
+ "wallet-manager",
323
+ "token-swap",
324
+ "market-data",
325
+ "portfolio-tracker",
326
+ "whale-watcher",
327
+ "gas-tracker",
328
+ "nft-manager",
329
+ "defi-dashboard",
330
+ "coingecko",
331
+ "defillama",
332
+ "debank",
333
+ "etherscan",
334
+ "dune",
335
+ "hyperliquid",
336
+ "binance-spot",
337
+ "binance-market-rank",
338
+ "binance-token-info",
339
+ "binance-token-audit",
340
+ "binance-trading-signal",
341
+ "binance-address-info",
342
+ "binance-meme-rush",
343
+ "aave-bsc",
344
+ "four-meme",
345
+ "agent-identity",
346
+ "contract-deployer",
347
+ "security-check",
348
+ "oracle"
349
+ ]));
350
+ }
351
+ await prompter.note([
352
+ "The following crypto skills are pre-installed and ready to use:",
353
+ "",
354
+ " 🪙 wallet-manager — Create, import, manage EVM wallets",
355
+ " 🔄 token-swap — DEX swaps on Uniswap / PancakeSwap",
356
+ " 📊 market-data — Real-time prices, charts, trending",
357
+ " 💼 portfolio-tracker — Multi-chain portfolio overview",
358
+ " 🐳 whale-watcher — Track large on-chain transactions",
359
+ " 🔍 gas-tracker — Gas prices across EVM chains",
360
+ " 🖼 nft-manager — NFT portfolio and transfers",
361
+ " 🟡 binance-spot — Binance spot trading (API key required)",
362
+ " 📡 binance-trading-signal — Smart money signals",
363
+ " 🔒 binance-token-audit — Honeypot & security checks",
364
+ "",
365
+ "Talk to your agent to activate them, e.g.:",
366
+ " \"Show my wallet balance\"",
367
+ " \"Swap 0.1 ETH for USDC on BSC\"",
368
+ " \"Check gas prices\""
369
+ ].join("\n"), "Crypto Skills");
370
+ if (opts.skipWallet) await prompter.note("Skipping wallet setup.", "Wallet");
371
+ else {
372
+ const { setupWallet } = await import("./onboard-wallet-DDau_3R0.js");
373
+ const walletResult = await setupWallet(workspaceDir, prompter, {
374
+ walletCreate: opts.walletCreate,
375
+ walletImport: opts.walletImport,
376
+ walletLabel: opts.walletLabel,
377
+ skipWallet: opts.skipWallet
378
+ });
379
+ if (walletResult.action === "created" || walletResult.action === "imported") await prompter.note([
380
+ `Address: ${walletResult.address}`,
381
+ `Label: ${walletResult.label}`,
382
+ "",
383
+ "Your private key is encrypted with AES-256-GCM and stored locally.",
384
+ "Manage wallets anytime with: cryptoclaw wallet list"
385
+ ].join("\n"), "Wallet ready");
322
386
  }
323
387
  const { setupInternalHooks } = await import("./onboard-hooks-cPtbvxIQ.js");
324
388
  nextConfig = await setupInternalHooks(nextConfig, runtime, prompter);
@@ -327,7 +391,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
327
391
  mode
328
392
  });
329
393
  await writeConfigFile(nextConfig);
330
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-B9Xw0YTE.js");
394
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-DsRnSME_.js");
331
395
  const { launchedTui } = await finalizeOnboardingWizard({
332
396
  flow,
333
397
  opts,
@@ -245,7 +245,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
245
245
  const { ensureAuthProfileStore } = await import("./model-selection-BNYB2YKL.js").then((n) => n.ht);
246
246
  const { promptAuthChoiceGrouped } = await import("./auth-choice-prompt-BYy_VPJU.js").then((n) => n.t);
247
247
  const { promptCustomApiConfig } = await import("./onboard-custom-BIbOPVP8.js").then((n) => n.r);
248
- const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BU6K1e3k.js").then((n) => n.t);
248
+ const { applyAuthChoice, resolvePreferredProviderForAuthChoice, warnIfModelConfigLooksOff } = await import("./auth-choice-BZof8lFS.js").then((n) => n.t);
249
249
  const { applyPrimaryModel, promptDefaultModel } = await import("./model-picker-QDqArUM5.js").then((n) => n.i);
250
250
  const authStore = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false });
251
251
  const authChoiceFromPrompt = opts.authChoice === void 0;
@@ -284,7 +284,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
284
284
  if (modelSelection.model) nextConfig = applyPrimaryModel(nextConfig, modelSelection.model);
285
285
  }
286
286
  await warnIfModelConfigLooksOff(nextConfig, prompter);
287
- const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-tOUlSE0m.js");
287
+ const { configureGatewayForOnboarding } = await import("./onboarding.gateway-config-BuC8nL_c.js");
288
288
  const gateway = await configureGatewayForOnboarding({
289
289
  flow,
290
290
  baseConfig,
@@ -300,7 +300,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
300
300
  if (opts.skipChannels ?? opts.skipProviders) await prompter.note("Skipping channel setup.", "Channels");
301
301
  else {
302
302
  const { listChannelPlugins } = await import("./plugins-3EOt3oeb.js").then((n) => n.i);
303
- const { setupChannels } = await import("./onboard-channels-4xKNT1d3.js").then((n) => n.n);
303
+ const { setupChannels } = await import("./onboard-channels-Cji_Bpi5.js").then((n) => n.n);
304
304
  const quickstartAllowFromChannels = flow === "quickstart" ? listChannelPlugins().filter((plugin) => plugin.meta.quickstartAllowFrom).map((plugin) => plugin.id) : [];
305
305
  nextConfig = await setupChannels(nextConfig, runtime, prompter, {
306
306
  allowSignalInstall: true,
@@ -317,8 +317,72 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
317
317
  await onboardHelpers.ensureWorkspaceAndSessions(workspaceDir, runtime, { skipBootstrap: Boolean(nextConfig.agents?.defaults?.skipBootstrap) });
318
318
  if (opts.skipSkills) await prompter.note("Skipping skills setup.", "Skills");
319
319
  else {
320
- const { setupSkills } = await import("./onboard-skills-1wG7jm-6.js").then((n) => n.t);
321
- nextConfig = await setupSkills(nextConfig, workspaceDir, runtime, prompter);
320
+ const { setupSkills } = await import("./onboard-skills-DwtwT621.js").then((n) => n.t);
321
+ nextConfig = await setupSkills(nextConfig, workspaceDir, runtime, prompter, new Set([
322
+ "wallet-manager",
323
+ "token-swap",
324
+ "market-data",
325
+ "portfolio-tracker",
326
+ "whale-watcher",
327
+ "gas-tracker",
328
+ "nft-manager",
329
+ "defi-dashboard",
330
+ "coingecko",
331
+ "defillama",
332
+ "debank",
333
+ "etherscan",
334
+ "dune",
335
+ "hyperliquid",
336
+ "binance-spot",
337
+ "binance-market-rank",
338
+ "binance-token-info",
339
+ "binance-token-audit",
340
+ "binance-trading-signal",
341
+ "binance-address-info",
342
+ "binance-meme-rush",
343
+ "aave-bsc",
344
+ "four-meme",
345
+ "agent-identity",
346
+ "contract-deployer",
347
+ "security-check",
348
+ "oracle"
349
+ ]));
350
+ }
351
+ await prompter.note([
352
+ "The following crypto skills are pre-installed and ready to use:",
353
+ "",
354
+ " 🪙 wallet-manager — Create, import, manage EVM wallets",
355
+ " 🔄 token-swap — DEX swaps on Uniswap / PancakeSwap",
356
+ " 📊 market-data — Real-time prices, charts, trending",
357
+ " 💼 portfolio-tracker — Multi-chain portfolio overview",
358
+ " 🐳 whale-watcher — Track large on-chain transactions",
359
+ " 🔍 gas-tracker — Gas prices across EVM chains",
360
+ " 🖼 nft-manager — NFT portfolio and transfers",
361
+ " 🟡 binance-spot — Binance spot trading (API key required)",
362
+ " 📡 binance-trading-signal — Smart money signals",
363
+ " 🔒 binance-token-audit — Honeypot & security checks",
364
+ "",
365
+ "Talk to your agent to activate them, e.g.:",
366
+ " \"Show my wallet balance\"",
367
+ " \"Swap 0.1 ETH for USDC on BSC\"",
368
+ " \"Check gas prices\""
369
+ ].join("\n"), "Crypto Skills");
370
+ if (opts.skipWallet) await prompter.note("Skipping wallet setup.", "Wallet");
371
+ else {
372
+ const { setupWallet } = await import("./onboard-wallet-CLprx0TL.js");
373
+ const walletResult = await setupWallet(workspaceDir, prompter, {
374
+ walletCreate: opts.walletCreate,
375
+ walletImport: opts.walletImport,
376
+ walletLabel: opts.walletLabel,
377
+ skipWallet: opts.skipWallet
378
+ });
379
+ if (walletResult.action === "created" || walletResult.action === "imported") await prompter.note([
380
+ `Address: ${walletResult.address}`,
381
+ `Label: ${walletResult.label}`,
382
+ "",
383
+ "Your private key is encrypted with AES-256-GCM and stored locally.",
384
+ "Manage wallets anytime with: cryptoclaw wallet list"
385
+ ].join("\n"), "Wallet ready");
322
386
  }
323
387
  const { setupInternalHooks } = await import("./onboard-hooks-BS3tCiNZ.js");
324
388
  nextConfig = await setupInternalHooks(nextConfig, runtime, prompter);
@@ -327,7 +391,7 @@ async function runOnboardingWizard(opts, runtime = defaultRuntime, prompter) {
327
391
  mode
328
392
  });
329
393
  await writeConfigFile(nextConfig);
330
- const { finalizeOnboardingWizard } = await import("./onboarding.finalize-MzE-hxAw.js");
394
+ const { finalizeOnboardingWizard } = await import("./onboarding.finalize-BHdqLBS4.js");
331
395
  const { launchedTui } = await finalizeOnboardingWizard({
332
396
  flow,
333
397
  opts,
@@ -2,7 +2,7 @@ import "./paths-BBP4yd-2.js";
2
2
  import "./globals-DyWRcjQY.js";
3
3
  import { h as pathExists, y as resolveUserPath } from "./utils-xFiJOAuL.js";
4
4
  import "./thinking-44rmAw5o.js";
5
- import "./reply-BEwkR4yo.js";
5
+ import "./reply-BqhnZbqb.js";
6
6
  import { v as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-BTZ01lpp.js";
7
7
  import { a as restoreTerminalState } from "./ansi-DLI3_F54.js";
8
8
  import "./subsystem-Calg5NpK.js";
@@ -102,7 +102,7 @@ import "./session-cost-usage-dfpymDGj.js";
102
102
  import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-jxGULnAO.js";
103
103
  import "./prompt-style-cEmrLOfN.js";
104
104
  import "./pairing-labels-TbvR0cDi.js";
105
- import "./memory-cli-Cq0_-tR2.js";
105
+ import "./memory-cli-Bp1To7jm.js";
106
106
  import "./manager-CBlG4KNC.js";
107
107
  import "./query-expansion-CeVVgE9A.js";
108
108
  import "./links-AORgAED3.js";
@@ -112,18 +112,18 @@ import "./progress-DBV-o6Lq.js";
112
112
  import "./server-lifecycle-DzdQa-qA.js";
113
113
  import "./stagger-RKJcYQbS.js";
114
114
  import "./runtime-guard-CxmMRXpH.js";
115
- import "./program-context-B8SH5Pdl.js";
115
+ import "./program-context-B0p9viIw.js";
116
116
  import "./note-CaYZpgbP.js";
117
- import { r as installCompletion } from "./completion-cli-Cv0Vxe6o.js";
117
+ import { r as installCompletion } from "./completion-cli-BnCuqVW8.js";
118
118
  import { n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-DEnwl2jx.js";
119
119
  import { n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-Dgg-ogyc.js";
120
120
  import { r as isSystemdUserServiceAvailable } from "./systemd-D5fH7kIo.js";
121
121
  import { t as resolveGatewayService } from "./service-EtPC23pr.js";
122
- import { r as healthCommand } from "./health-i7BpZK8H.js";
122
+ import { r as healthCommand } from "./health-SohRW0Au.js";
123
123
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-C-HAB1VB.js";
124
124
  import { t as resolveOnboardingSecretInputString } from "./onboarding.secret-input-CcXojTI0.js";
125
125
  import { t as formatHealthCheckFailure } from "./health-format-Dbc6Wesr.js";
126
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DlJLi2iR.js";
126
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CwQVCBv7.js";
127
127
  import { t as runTui } from "./tui-xjh85VPX.js";
128
128
  import os from "node:os";
129
129
  import path from "node:path";
@@ -32,7 +32,7 @@ import "./logging-CFvkxgcX.js";
32
32
  import "./accounts-Du96Wx8V.js";
33
33
  import "./send-BsLP4ooQ.js";
34
34
  import "./send-CFJQjYMY.js";
35
- import "./subagent-registry-DQ-U47U4.js";
35
+ import "./subagent-registry-iFkFgxIF.js";
36
36
  import "./paths-0JI_ndQl.js";
37
37
  import "./chat-envelope-BHg8VU61.js";
38
38
  import "./client-DPmb6CIu.js";
@@ -105,7 +105,7 @@ import "./command-secret-targets-DjEo9W7_.js";
105
105
  import { b as waitForGatewayReachable, f as openUrl, g as resolveControlUiLinks, i as detectBrowserOpenSupport, m as probeGatewayReachable, o as formatControlUiSshHint } from "./onboard-helpers-CEIyWqFt.js";
106
106
  import "./prompt-style-Dws687Oa.js";
107
107
  import "./pairing-labels-CGVQ42A3.js";
108
- import "./memory-cli-nJ0zujIp.js";
108
+ import "./memory-cli-1oaIDOW8.js";
109
109
  import "./manager-CLRUN9PX.js";
110
110
  import "./query-expansion-QQ7-fKJN.js";
111
111
  import "./links-DBJiRgR0.js";
@@ -113,20 +113,20 @@ import "./cli-utils-BAoBKJmP.js";
113
113
  import "./help-format-B7MhJztF.js";
114
114
  import "./progress-BdIQDPeC.js";
115
115
  import "./note-51HX9rr7.js";
116
- import { r as installCompletion } from "./completion-cli-BU4ty_aJ.js";
117
- import "./register.subclis-SsmPAU6K.js";
118
- import "./command-registry-CiGCHshG.js";
116
+ import { r as installCompletion } from "./completion-cli-DWGdZ-R1.js";
117
+ import "./register.subclis-BjXl-tRU.js";
118
+ import "./command-registry-CyZnzlu4.js";
119
119
  import "./program-context-BwKunb5X.js";
120
120
  import { n as gatewayInstallErrorHint, t as buildGatewayInstallPlan } from "./daemon-install-helpers-BAt1F-Sd.js";
121
121
  import "./runtime-guard-FQfkfkx0.js";
122
122
  import { n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-ClLXlv9g.js";
123
123
  import { r as isSystemdUserServiceAvailable } from "./systemd-Z2v3LHpX.js";
124
124
  import { t as resolveGatewayService } from "./service-ByGIhP5D.js";
125
- import { r as healthCommand } from "./health-DmCqZQWS.js";
125
+ import { r as healthCommand } from "./health-BtR5qiQu.js";
126
126
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DsgdrhIz.js";
127
127
  import { t as resolveOnboardingSecretInputString } from "./onboarding.secret-input-C7qPkRfU.js";
128
128
  import { t as formatHealthCheckFailure } from "./health-format-GTeknL_T.js";
129
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DE8rQlzx.js";
129
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BNHmdXaA.js";
130
130
  import { t as runTui } from "./tui-CkQCGUpD.js";
131
131
  import os from "node:os";
132
132
  import path from "node:path";
@@ -1,11 +1,11 @@
1
- import { t as createSubsystemLogger, y as getChildLogger } from "./subsystem-D0TuaxQo.js";
2
- import { o as escapeRegExp, x as toWhatsappJid } from "./utils-VpQxx_Ci.js";
3
- import { X as loadConfig } from "./model-selection-CiffIpda.js";
1
+ import { t as createSubsystemLogger, y as getChildLogger } from "./subsystem-CdFYjh2k.js";
2
+ import { o as escapeRegExp, x as toWhatsappJid } from "./utils-B5eEH24c.js";
3
+ import { X as loadConfig } from "./model-selection-4Sj13O94.js";
4
4
  import { n as generateSecureUuid } from "./secure-random-xpZo1jCG.js";
5
- import { a as loadWebMedia, s as resolveMarkdownTableMode } from "./ir-BgRFz8jI.js";
5
+ import { a as loadWebMedia, s as resolveMarkdownTableMode } from "./ir-Dc-ltzcD.js";
6
6
  import { n as normalizePollInput } from "./polls-CVGKOEN8.js";
7
- import { t as convertMarkdownTables } from "./tables-CSZ8Vmrh.js";
8
- import { i as redactIdentifier, n as requireActiveWebListener } from "./active-listener-BG3fObzp.js";
7
+ import { t as convertMarkdownTables } from "./tables-DTLvZx1M.js";
8
+ import { i as redactIdentifier, n as requireActiveWebListener } from "./active-listener-Cxra3bK5.js";
9
9
 
10
10
  //#region src/markdown/whatsapp.ts
11
11
  /**
@@ -1,5 +1,5 @@
1
- import { i as saveMediaBuffer } from "./store-D6UDEQAm.js";
2
- import { a as loadWebMedia } from "./ir-BgRFz8jI.js";
1
+ import { i as saveMediaBuffer } from "./store-1VFEBO08.js";
2
+ import { a as loadWebMedia } from "./ir-Dc-ltzcD.js";
3
3
  import { t as buildOutboundMediaLoadOptions } from "./load-options-BXqJ6gxm.js";
4
4
 
5
5
  //#region src/media/outbound-attachment.ts
@@ -1,4 +1,4 @@
1
- import { C as BOUNDARY_PATH_ALIAS_POLICIES, D as isNotFoundPathError, w as resolveBoundaryPath } from "./workspace-C7j8mMYc.js";
1
+ import { C as BOUNDARY_PATH_ALIAS_POLICIES, D as isNotFoundPathError, w as resolveBoundaryPath } from "./workspace-Bo-HJMNp.js";
2
2
  import fs from "node:fs/promises";
3
3
  import os from "node:os";
4
4