@termix-it/cryptoclaw 1.0.0 → 1.0.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 (282) hide show
  1. package/CHANGELOG.md +93 -93
  2. package/README.md +1 -1
  3. package/assets/favicon.svg +22 -0
  4. package/dist/{accounts-CIGHxE7R.js → accounts-BIh6Lgjl.js} +1 -1
  5. package/dist/{accounts-BPjR5SyC.js → accounts-DA-4bmd_.js} +1 -1
  6. package/dist/{acp-cli-DG9nygBk.js → acp-cli-CBFKSvET.js} +8 -8
  7. package/dist/{acp-cli-DBWmJpUJ.js → acp-cli-CEPAR8vh.js} +8 -8
  8. package/dist/{agent-3MZVCC-N.js → agent-8dTCwA-D.js} +10 -10
  9. package/dist/{agent-scope-DBl1We79.js → agent-scope-BJucHu4R.js} +2 -2
  10. package/dist/{agent-scope-e_oNRhGi.js → agent-scope-DzpuqcS9.js} +5 -1
  11. package/dist/{agent-scope-DLfFOxP6.js → agent-scope-GUoze5gc.js} +2 -2
  12. package/dist/{agent-IDE9krld.js → agent-sjalTGVA.js} +10 -10
  13. package/dist/{audit-jaTyyQX1.js → audit-BMzW1G5a.js} +10 -10
  14. package/dist/{audit-Bj_dxNaD.js → audit-DQsCrYXQ.js} +10 -10
  15. package/dist/{auth-health-CCM6Z3vK.js → auth-health-Cr8ib9nm.js} +1 -1
  16. package/dist/{auth-health-BlspzqyF.js → auth-health-Dc-ImENT.js} +1 -1
  17. package/dist/{auth-profiles-DoD7YxsD.js → auth-profiles-CVShF1K6.js} +2 -2
  18. package/dist/build-info.json +3 -3
  19. package/dist/{call-D2DXG0AC.js → call-D-Kvee3W.js} +2 -2
  20. package/dist/{call-DqxlETxE.js → call-QEaFjVBF.js} +2 -2
  21. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  22. package/dist/{channel-options-DUkxROTo.js → channel-options-B951pKy8.js} +5 -5
  23. package/dist/{channel-options-BHpXOBuP.js → channel-options-DJsSCLD8.js} +3 -3
  24. package/dist/{channel-selection-BdigfMZZ.js → channel-selection-BWiz5Osx.js} +1 -1
  25. package/dist/{channel-selection-D7jFTFec.js → channel-selection-ChOffLk2.js} +1 -1
  26. package/dist/{channel-summary-DS0kcHm2.js → channel-summary-BQMoWZQ1.js} +5 -5
  27. package/dist/{channel-summary-CobMoKN6.js → channel-summary-C4kSR_wu.js} +5 -5
  28. package/dist/{channels-cli-DBwffwqw.js → channels-cli-Fv9FTQXn.js} +34 -34
  29. package/dist/{channels-cli-D7ZNRrq7.js → channels-cli-Lq6EWRJ9.js} +33 -33
  30. package/dist/{channels-status-issues-C2UGSPvH.js → channels-status-issues-BwOdQrU9.js} +1 -1
  31. package/dist/{channels-status-issues-Dxmd7zYk.js → channels-status-issues-DouPXVa3.js} +1 -1
  32. package/dist/{chrome-CwbWzmh4.js → chrome-D0L5ufqO.js} +1 -1
  33. package/dist/cli/daemon-cli.js +1 -1
  34. package/dist/{cli-C9xiWnx9.js → cli-Bzyu6rQE.js} +27 -27
  35. package/dist/{cli-D6C9z94O.js → cli-DJnpasWd.js} +27 -27
  36. package/dist/{command-options-DL1PhuUF.js → command-options-DBpEhnW5.js} +3 -3
  37. package/dist/{commands-Dpeoos11.js → commands-B0LiAJsa.js} +3 -3
  38. package/dist/{completion-cli-CZ8zPqPs.js → completion-cli-Bd5FrGHg.js} +27 -27
  39. package/dist/{completion-cli-B5nR7jt8.js → completion-cli-Cs-B1hk7.js} +1 -1
  40. package/dist/{config-dQK4rbfx.js → config-D1wc31Qf.js} +4 -4
  41. package/dist/{config-DSpb2aMV.js → config-DBZqAqbe.js} +4 -4
  42. package/dist/{config-IwiWafT3.js → config-fXndcfb4.js} +2 -2
  43. package/dist/{config-guard-DwIb5Y-v.js → config-guard-Csl9Ubn5.js} +48 -48
  44. package/dist/{configure-CivCcvkA.js → configure-CeTzu0Ed.js} +20 -20
  45. package/dist/{configure-7M9mLC4o.js → configure-CxPJaP8X.js} +20 -20
  46. package/dist/{control-service-BXC31sNw.js → control-service-BBeopea3.js} +4 -4
  47. package/dist/{control-service-lVzEzp9f.js → control-service-CWGGzqpN.js} +4 -4
  48. package/dist/control-ui/apple-touch-icon.png +0 -0
  49. package/dist/control-ui/assets/{index-DQ-7PWhX.js → index-BdjmXlOn.js} +372 -363
  50. package/dist/control-ui/assets/index-BdjmXlOn.js.map +1 -0
  51. package/dist/control-ui/assets/{index-nlpH70Eh.css → index-BxkHytum.css} +1 -1
  52. package/dist/control-ui/favicon-32.png +0 -0
  53. package/dist/control-ui/favicon.ico +0 -0
  54. package/dist/control-ui/favicon.svg +4 -4
  55. package/dist/control-ui/index.html +2 -2
  56. package/dist/{cron-cli-DS8ytfYQ.js → cron-cli-D8gKivN0.js} +11 -11
  57. package/dist/{cron-cli-Djb3HUdz.js → cron-cli-yC5Cy77c.js} +11 -11
  58. package/dist/{daemon-cli-KoaJ2nJX.js → daemon-cli-BM8zb09s.js} +12 -12
  59. package/dist/{daemon-cli-ZQIKLvAO.js → daemon-cli-D8AC0Q_A.js} +12 -12
  60. package/dist/{daemon-runtime-CHWbAfKs.js → daemon-runtime-BMAJ_2LE.js} +1 -1
  61. package/dist/{daemon-runtime-DEjUQVjL.js → daemon-runtime-CD5XPuxz.js} +1 -1
  62. package/dist/{deliver-sPBfRlXT.js → deliver-CNKlQLWI.js} +6 -6
  63. package/dist/{deliver-OfX6bSYR.js → deliver-D8Yt4jkc.js} +6 -6
  64. package/dist/{deliver-DVRzRmNN.js → deliver-Doq_iIoh.js} +3 -3
  65. package/dist/{deps-CZOfeWEp.js → deps-BhcPiVuz.js} +2 -2
  66. package/dist/{deps-BSdWD2wF.js → deps-ZGqhOjkR.js} +2 -2
  67. package/dist/{devices-cli-b9iF_uOi.js → devices-cli-BcIB2VyK.js} +7 -7
  68. package/dist/{devices-cli-DHSpDnCS.js → devices-cli-BcznR9RO.js} +7 -7
  69. package/dist/{directory-cli-qniSxsHo.js → directory-cli--IOOMz66.js} +11 -11
  70. package/dist/{directory-cli-D0dTuAem.js → directory-cli-DGFlpQ4T.js} +11 -11
  71. package/dist/{dispatcher-DA3u3CwV.js → dispatcher-cp7uHiyX.js} +1 -1
  72. package/dist/{dns-cli-DwwMpMuN.js → dns-cli-DkhYuREi.js} +9 -9
  73. package/dist/{dns-cli-C0JUNb9O.js → dns-cli-fQ4wu1HJ.js} +9 -9
  74. package/dist/{docs-cli-BlFHCHDz.js → docs-cli-BgnDzmFT.js} +8 -8
  75. package/dist/{docs-cli-BpSPrY3Y.js → docs-cli-CPaJzUSD.js} +8 -8
  76. package/dist/{doctor-Da1XgFcW.js → doctor-D6M3Hc0a.js} +21 -21
  77. package/dist/{doctor-qrtookj-.js → doctor-DRRL31R4.js} +21 -21
  78. package/dist/entry.js +1 -1
  79. package/dist/{errors--S5IAxQx.js → errors-DpH6VpWK.js} +1 -1
  80. package/dist/{exec-approvals-cli-Csgqkksl.js → exec-approvals-cli-BhEdzGao.js} +12 -12
  81. package/dist/{exec-approvals-cli-Dk4yHE2L.js → exec-approvals-cli-DHMroOAh.js} +12 -12
  82. package/dist/extensionAPI.js +25 -25
  83. package/dist/{gateway-cli-CJ7H2DgV.js → gateway-cli-CbQ4xoXp.js} +183 -108
  84. package/dist/{gateway-cli-CrKl-bIH.js → gateway-cli-DO7lIBZ5.js} +185 -110
  85. package/dist/{gateway-rpc-BPfCU2Vi.js → gateway-rpc-0hjEbkzc.js} +1 -1
  86. package/dist/{gateway-rpc--CH0NWWR.js → gateway-rpc-anmk3tbT.js} +1 -1
  87. package/dist/{github-copilot-auth-CcPEEb3Q.js → github-copilot-auth-D6I2MUxi.js} +6 -6
  88. package/dist/{github-copilot-auth-h3beCc_l.js → github-copilot-auth-DvShXmvU.js} +6 -6
  89. package/dist/{gmail-setup-utils-pZ9NnOvB.js → gmail-setup-utils-CAfk_F1J.js} +2 -2
  90. package/dist/{gmail-setup-utils-CnVYPhaQ.js → gmail-setup-utils-CJ1pbsWv.js} +2 -2
  91. package/dist/{health-format-BcsR5dtU.js → health-format-DlvTEKqI.js} +8 -8
  92. package/dist/{health-format-Pl8qK65t.js → health-format-SZpheYuf.js} +8 -8
  93. package/dist/hooks/bundled/boot-md/HOOK.md +1 -1
  94. package/dist/hooks/bundled/command-logger/HOOK.md +1 -1
  95. package/dist/hooks/bundled/session-memory/HOOK.md +1 -1
  96. package/dist/hooks/bundled/soul-evil/HOOK.md +1 -1
  97. package/dist/{hooks-cli-zkLY25DX.js → hooks-cli-CedlcxxR.js} +31 -31
  98. package/dist/{hooks-cli-BKHTdsn4.js → hooks-cli-DRarvOK2.js} +31 -31
  99. package/dist/{hooks-status-BETsyuUR.js → hooks-status-B4cP-W7z.js} +3 -3
  100. package/dist/{hooks-status-nPgxLL-x.js → hooks-status-n8jKv3Fm.js} +3 -3
  101. package/dist/{image-DAsWVn7Q.js → image-C6tw3aWy.js} +4 -4
  102. package/dist/{image-CC_YKDB-.js → image-CBqp4iA0.js} +3 -3
  103. package/dist/{image-BFNcQzKp.js → image-CQgVMkgf.js} +4 -4
  104. package/dist/index.js +79 -79
  105. package/dist/{installs-Byb3s_8P.js → installs-BhPUpyE9.js} +2 -2
  106. package/dist/{installs-CELeuogN.js → installs-CWAe2dOG.js} +2 -2
  107. package/dist/{links-cf9h8BXu.js → links-Dv1EDiwa.js} +2 -2
  108. package/dist/{links-Brcj2Oc-.js → links-kbubTyay.js} +2 -2
  109. package/dist/{loader-CU4bkeKe.js → loader-DE_vKAH5.js} +44 -44
  110. package/dist/{logging-BJRQDTME.js → logging-B65tlzu3.js} +2 -2
  111. package/dist/{logging-CD55MXc7.js → logging-C3Y3mzWS.js} +2 -2
  112. package/dist/{login-qr-BCr2GKX6.js → login-qr-BTMkosTm.js} +1 -1
  113. package/dist/{login-qr-HIPJAnbT.js → login-qr-BpdHxT8l.js} +3 -3
  114. package/dist/{login-qr-BMbekoZW.js → login-qr-C_Vv7Cqc.js} +3 -3
  115. package/dist/{logs-cli-CM7-XOcZ.js → logs-cli-_DHuOrR4.js} +9 -9
  116. package/dist/{logs-cli-aqjT7oHu.js → logs-cli-emy-Mg4S.js} +9 -9
  117. package/dist/{manager-CtGvmGvM.js → manager-CNk2RhQo.js} +3 -3
  118. package/dist/{manager-DpZlm3gk.js → manager-Cu-KA-wA.js} +3 -3
  119. package/dist/{manager-C5m5qpB0.js → manager-bvW7170C.js} +3 -3
  120. package/dist/{manifest-registry-BdTzIlta.js → manifest-registry-CBbBh2FT.js} +1 -1
  121. package/dist/{manifest-registry-DVQHMj0y.js → manifest-registry-CmLtWVRR.js} +1 -1
  122. package/dist/{model-selection-DuI_Ue9Q.js → model-selection-BVTyreim.js} +1 -1
  123. package/dist/{model-selection-Av0fLq51.js → model-selection-DmO3rB3w.js} +2 -2
  124. package/dist/{models-cli-gmkzOpbq.js → models-cli-CdrDfutq.js} +32 -32
  125. package/dist/{models-cli-C0JOZ5oP.js → models-cli-CgIqfTHx.js} +32 -32
  126. package/dist/{node-cli-BND9LLkM.js → node-cli-Bsn9lQ6O.js} +13 -13
  127. package/dist/{node-cli-DNRB94ib.js → node-cli-Ckvs6bcI.js} +13 -13
  128. package/dist/{nodes-cli-BCWlqHyR.js → nodes-cli-BELOAYB6.js} +10 -10
  129. package/dist/{nodes-cli-DWSo5dX7.js → nodes-cli-CTQPoAcf.js} +10 -10
  130. package/dist/{onboard-channels-DJz2TusQ.js → onboard-channels-B5qHfMk8.js} +6 -6
  131. package/dist/{onboard-channels-B75LjjVZ.js → onboard-channels-BgchLTab.js} +6 -6
  132. package/dist/{onboard-skills-ByHkU9nx.js → onboard-skills-CyG0xbsu.js} +17 -17
  133. package/dist/{onboard-skills-Wknr7pxR.js → onboard-skills-DEnuz7z3.js} +17 -17
  134. package/dist/{onboarding-BejDjkx5.js → onboarding-B6aTF0nd.js} +37 -37
  135. package/dist/{openclaw-root-_zPXSqgo.js → openclaw-root-Cx_l_MXP.js} +6 -2
  136. package/dist/{openclaw-root-YSGWCNem.js → openclaw-root-DJB4AQtF.js} +6 -2
  137. package/dist/{pairing-cli-Cn5vt4oI.js → pairing-cli-C_PnyRzK.js} +11 -11
  138. package/dist/{pairing-cli-CFqD3IdI.js → pairing-cli-CocCRLzF.js} +11 -11
  139. package/dist/{pairing-store-BHzy16_t.js → pairing-store-Dbotpoz6.js} +1 -1
  140. package/dist/{pairing-store-BOhO49Bi.js → pairing-store-cC0TwSYc.js} +1 -1
  141. package/dist/{paths-Dlp4VNXa.js → paths-B7p98Wg9.js} +1 -1
  142. package/dist/{pi-embedded-helpers-CQ9sq3Uu.js → pi-embedded-helpers-Bmu_uE8Y.js} +4 -4
  143. package/dist/{pi-embedded-helpers-B7ARjDEK.js → pi-embedded-helpers-CT7w1pYd.js} +2 -2
  144. package/dist/{pi-embedded-helpers-FPVRDeKf.js → pi-embedded-helpers-DRK9Qub7.js} +2 -2
  145. package/dist/{pi-tools.policy-Du4RZy9R.js → pi-tools.policy-BjgXXFkH.js} +3 -3
  146. package/dist/{plugin-auto-enable-RwRwIUKC.js → plugin-auto-enable-BmBAQgRq.js} +4 -4
  147. package/dist/{plugin-auto-enable-EBxTHjFJ.js → plugin-auto-enable-CBfM3u2p.js} +4 -4
  148. package/dist/plugin-sdk/index.js +1 -1
  149. package/dist/{plugins-BI-p2ba9.js → plugins-CB4Xjrgb.js} +2 -2
  150. package/dist/{plugins-Dk4UBZwz.js → plugins-CQ1FUoTO.js} +2 -2
  151. package/dist/{plugins-cli-CMg0G56J.js → plugins-cli-DB1NYN9W.js} +33 -33
  152. package/dist/{plugins-cli-CX7QeUjq.js → plugins-cli-Dn9I2nvT.js} +33 -33
  153. package/dist/{ports-nXmd4Efh.js → ports-CcCvup-Y.js} +2 -2
  154. package/dist/{program-EAMJAB_2.js → program-CL1V1uQh.js} +58 -58
  155. package/dist/{pw-ai-D6JUaD41.js → pw-ai-CQDH40p5.js} +2 -2
  156. package/dist/{pw-ai-D2jD_dho.js → pw-ai-DUv3Smif.js} +2 -2
  157. package/dist/{qmd-manager-B-ijyM7o.js → qmd-manager-DJdGKjf-.js} +2 -2
  158. package/dist/{qmd-manager-xo4abL0u.js → qmd-manager-DqhsQHr6.js} +2 -2
  159. package/dist/{qmd-manager-C_Jah5eo.js → qmd-manager-ym3oBzzR.js} +2 -2
  160. package/dist/{register.subclis-CJGimm3-.js → register.subclis-Bf9yES9h.js} +28 -28
  161. package/dist/{reply-DfepuqG0.js → reply-qWVVjmhR.js} +44 -44
  162. package/dist/{routes-DkckwrRx.js → routes-C49H9SW5.js} +4 -4
  163. package/dist/{routes-Q42qtNl1.js → routes-DzL6l-Oq.js} +4 -4
  164. package/dist/{rpc-B4lvrGrD.js → rpc-BEKdRxnk.js} +1 -1
  165. package/dist/{rpc-CbWcXAQK.js → rpc-jU_lA6zf.js} +1 -1
  166. package/dist/{run-main-JFY3X4Xh.js → run-main-C12Z921D.js} +59 -59
  167. package/dist/{sandbox-BGqDfFaH.js → sandbox-Cfvpk8Q8.js} +9 -9
  168. package/dist/{sandbox-D_Tt3WRq.js → sandbox-DcPAdlhA.js} +9 -9
  169. package/dist/{sandbox-cli-CaxqKiTq.js → sandbox-cli-DVfJ38Q2.js} +16 -16
  170. package/dist/{sandbox-cli-DA0Cbrzl.js → sandbox-cli-DqrtTHAP.js} +16 -16
  171. package/dist/{security-cli-Ct-pfF2h.js → security-cli-2AAajc4y.js} +18 -18
  172. package/dist/{security-cli-BZjA_GAD.js → security-cli-YL2ZTkkR.js} +18 -18
  173. package/dist/{server-context-C53lhEx_.js → server-context-9SLnBBRW.js} +4 -4
  174. package/dist/{server-context-B9ez46MY.js → server-context-BG54Dk0A.js} +4 -4
  175. package/dist/{server-node-events-Cb6QOeDH.js → server-node-events-uUSBf7hZ.js} +29 -29
  176. package/dist/{server-node-events-DONmQvJg.js → server-node-events-x6ZMjAs1.js} +29 -29
  177. package/dist/{service-audit-AsnhO40e.js → service-audit-BsDPEKdd.js} +1 -1
  178. package/dist/{service-audit-BM-iyLL7.js → service-audit-CCg0o0UZ.js} +1 -1
  179. package/dist/{skills-7V483a6m.js → skills-DaDm2aTV.js} +3 -3
  180. package/dist/{skills-CsZRBUj0.js → skills-DryIpWLj.js} +3 -3
  181. package/dist/{skills-cli-DQaq5LBX.js → skills-cli-CYZbvr7O.js} +10 -10
  182. package/dist/{skills-cli-dVugbaAb.js → skills-cli-eDUNGpwb.js} +10 -10
  183. package/dist/{skills-status-4_4zVBvV.js → skills-status-D9G4-4sK.js} +2 -2
  184. package/dist/{skills-status-cD4rfMR9.js → skills-status-dTiH79uI.js} +2 -2
  185. package/dist/{status-DSoYX3Ep.js → status-BnbwLzB2.js} +3 -3
  186. package/dist/{status-DHPz4Mg_.js → status-CN2V3fan.js} +37 -37
  187. package/dist/{status-BakhDLuG.js → status-DCrBN9vJ.js} +3 -3
  188. package/dist/{system-cli-CUQswQPX.js → system-cli-BEmIixtY.js} +9 -9
  189. package/dist/{system-cli-Cz7in_Xr.js → system-cli-ZxnlO0-v.js} +9 -9
  190. package/dist/{table-DDQGlZSe.js → table--L48nql9.js} +2 -2
  191. package/dist/{table-DAOPkdc_.js → table-C1Xupkjv.js} +2 -2
  192. package/dist/{tool-display-Zbh1CRw5.js → tool-display-7o4pgXYF.js} +1 -1
  193. package/dist/{tool-display-B2rS2o6B.js → tool-display-B9G_vqLX.js} +1 -1
  194. package/dist/{tui-qPHLsB-x.js → tui-3eD-E_iD.js} +6 -6
  195. package/dist/{tui-DFVs6pRO.js → tui-BGSteZzU.js} +6 -6
  196. package/dist/{tui-cli-CBKZVd1C.js → tui-cli-B9iCyCn2.js} +19 -19
  197. package/dist/{tui-cli-DexeJOgZ.js → tui-cli-iakTIAvk.js} +19 -19
  198. package/dist/{update-cli-BPUtZjbl.js → update-cli-DUO4CVNB.js} +48 -48
  199. package/dist/{update-cli-ehTYbpaU.js → update-cli-DlXzjuIc.js} +47 -47
  200. package/dist/{update-B2q3duJD.js → update-lGuOUiyd.js} +3 -3
  201. package/dist/{update-runner-DAeygRSU.js → update-runner-L1EJYQRF.js} +5 -5
  202. package/dist/{update-runner-BfncKnU6.js → update-runner-eJ773fp-.js} +5 -5
  203. package/dist/{update-DNnej3C6.js → update-zm4_acQX.js} +3 -3
  204. package/dist/{utils-D7jskKIf.js → utils-CGterW74.js} +1 -7
  205. package/dist/{utils-7IMqr8vR.js → utils-DV2rghi_.js} +1 -7
  206. package/dist/{webhooks-cli-C0CV-1jG.js → webhooks-cli-BLHZn_at.js} +10 -10
  207. package/dist/{webhooks-cli-DT16BygW.js → webhooks-cli-UhujyhVU.js} +10 -10
  208. package/dist/{widearea-dns-Dk82I4Xa.js → widearea-dns-BKbb6W_z.js} +1 -1
  209. package/dist/{widearea-dns-BJZTAyT3.js → widearea-dns-CVZf20c2.js} +1 -1
  210. package/dist/{wsl-C24YfxH9.js → wsl-DntkIGSe.js} +1 -1
  211. package/docs/assets/pixel-lobster.svg +3 -3
  212. package/docs/blockchain/aave.md +72 -0
  213. package/docs/blockchain/agent-identity.md +73 -0
  214. package/docs/blockchain/contracts.md +96 -0
  215. package/docs/blockchain/defi.md +61 -0
  216. package/docs/blockchain/index.md +92 -0
  217. package/docs/blockchain/market-data.md +98 -0
  218. package/docs/blockchain/nft.md +44 -0
  219. package/docs/blockchain/portfolio.md +57 -0
  220. package/docs/blockchain/security.md +83 -0
  221. package/docs/blockchain/swap.md +89 -0
  222. package/docs/blockchain/wallet.md +77 -0
  223. package/docs/concepts/features.md +29 -10
  224. package/docs/docs.json +76 -6
  225. package/docs/index.md +44 -44
  226. package/docs/start/getting-started.md +10 -9
  227. package/docs/zh-CN/blockchain/aave.md +63 -0
  228. package/docs/zh-CN/blockchain/agent-identity.md +62 -0
  229. package/docs/zh-CN/blockchain/contracts.md +64 -0
  230. package/docs/zh-CN/blockchain/defi.md +49 -0
  231. package/docs/zh-CN/blockchain/index.md +92 -0
  232. package/docs/zh-CN/blockchain/market-data.md +68 -0
  233. package/docs/zh-CN/blockchain/nft.md +43 -0
  234. package/docs/zh-CN/blockchain/portfolio.md +49 -0
  235. package/docs/zh-CN/blockchain/security.md +75 -0
  236. package/docs/zh-CN/blockchain/swap.md +68 -0
  237. package/docs/zh-CN/blockchain/wallet.md +71 -0
  238. package/extensions/copilot-proxy/README.md +3 -3
  239. package/extensions/copilot-proxy/package.json +1 -1
  240. package/extensions/diagnostics-otel/package.json +1 -1
  241. package/extensions/diagnostics-otel/src/service.test.ts +12 -12
  242. package/extensions/diagnostics-otel/src/service.ts +79 -79
  243. package/extensions/discord/package.json +1 -1
  244. package/extensions/imessage/package.json +1 -1
  245. package/extensions/memory-core/package.json +1 -1
  246. package/extensions/memory-lancedb/config.ts +3 -3
  247. package/extensions/memory-lancedb/{openclaw.plugin.json → cryptoclaw.plugin.json} +1 -1
  248. package/extensions/memory-lancedb/index.test.ts +2 -2
  249. package/extensions/memory-lancedb/index.ts +1 -1
  250. package/extensions/memory-lancedb/package.json +1 -1
  251. package/extensions/nostr/README.md +5 -5
  252. package/extensions/nostr/package.json +1 -1
  253. package/extensions/nostr/src/channel.ts +1 -1
  254. package/extensions/nostr/src/nostr-state-store.test.ts +1 -1
  255. package/extensions/signal/package.json +1 -1
  256. package/extensions/slack/package.json +1 -1
  257. package/extensions/telegram/package.json +1 -1
  258. package/extensions/voice-call/README.md +14 -14
  259. package/extensions/voice-call/package.json +1 -1
  260. package/extensions/voice-call/src/cli.ts +1 -1
  261. package/extensions/voice-call/src/core-bridge.ts +1 -1
  262. package/extensions/voice-call/src/manager.test.ts +6 -6
  263. package/extensions/voice-call/src/manager.ts +1 -1
  264. package/extensions/voice-call/src/response-generator.ts +1 -1
  265. package/extensions/whatsapp/package.json +1 -1
  266. package/package.json +1 -1
  267. package/skills/aave-bsc/SKILL.md +6 -0
  268. package/skills/coding-agent/SKILL.md +5 -5
  269. package/skills/discord/SKILL.md +6 -6
  270. package/skills/tmux/SKILL.md +6 -6
  271. package/dist/control-ui/assets/index-DQ-7PWhX.js.map +0 -1
  272. /package/extensions/copilot-proxy/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  273. /package/extensions/diagnostics-otel/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  274. /package/extensions/discord/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  275. /package/extensions/imessage/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  276. /package/extensions/memory-core/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  277. /package/extensions/nostr/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  278. /package/extensions/signal/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  279. /package/extensions/slack/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  280. /package/extensions/telegram/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  281. /package/extensions/voice-call/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
  282. /package/extensions/whatsapp/{openclaw.plugin.json → cryptoclaw.plugin.json} +0 -0
@@ -12,7 +12,7 @@ import { ParentBasedSampler, TraceIdRatioBasedSampler } from "@opentelemetry/sdk
12
12
  import { SemanticResourceAttributes } from "@opentelemetry/semantic-conventions";
13
13
  import { onDiagnosticEvent, registerLogTransport } from "cryptoclaw/plugin-sdk";
14
14
 
15
- const DEFAULT_SERVICE_NAME = "openclaw";
15
+ const DEFAULT_SERVICE_NAME = "cryptoclaw";
16
16
 
17
17
  function normalizeEndpoint(endpoint?: string): string | undefined {
18
18
  const trimmed = endpoint?.trim();
@@ -129,78 +129,78 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
129
129
  FATAL: 21 as SeverityNumber,
130
130
  };
131
131
 
132
- const meter = metrics.getMeter("openclaw");
133
- const tracer = trace.getTracer("openclaw");
132
+ const meter = metrics.getMeter("cryptoclaw");
133
+ const tracer = trace.getTracer("cryptoclaw");
134
134
 
135
- const tokensCounter = meter.createCounter("openclaw.tokens", {
135
+ const tokensCounter = meter.createCounter("cryptoclaw.tokens", {
136
136
  unit: "1",
137
137
  description: "Token usage by type",
138
138
  });
139
- const costCounter = meter.createCounter("openclaw.cost.usd", {
139
+ const costCounter = meter.createCounter("cryptoclaw.cost.usd", {
140
140
  unit: "1",
141
141
  description: "Estimated model cost (USD)",
142
142
  });
143
- const durationHistogram = meter.createHistogram("openclaw.run.duration_ms", {
143
+ const durationHistogram = meter.createHistogram("cryptoclaw.run.duration_ms", {
144
144
  unit: "ms",
145
145
  description: "Agent run duration",
146
146
  });
147
- const contextHistogram = meter.createHistogram("openclaw.context.tokens", {
147
+ const contextHistogram = meter.createHistogram("cryptoclaw.context.tokens", {
148
148
  unit: "1",
149
149
  description: "Context window size and usage",
150
150
  });
151
- const webhookReceivedCounter = meter.createCounter("openclaw.webhook.received", {
151
+ const webhookReceivedCounter = meter.createCounter("cryptoclaw.webhook.received", {
152
152
  unit: "1",
153
153
  description: "Webhook requests received",
154
154
  });
155
- const webhookErrorCounter = meter.createCounter("openclaw.webhook.error", {
155
+ const webhookErrorCounter = meter.createCounter("cryptoclaw.webhook.error", {
156
156
  unit: "1",
157
157
  description: "Webhook processing errors",
158
158
  });
159
- const webhookDurationHistogram = meter.createHistogram("openclaw.webhook.duration_ms", {
159
+ const webhookDurationHistogram = meter.createHistogram("cryptoclaw.webhook.duration_ms", {
160
160
  unit: "ms",
161
161
  description: "Webhook processing duration",
162
162
  });
163
- const messageQueuedCounter = meter.createCounter("openclaw.message.queued", {
163
+ const messageQueuedCounter = meter.createCounter("cryptoclaw.message.queued", {
164
164
  unit: "1",
165
165
  description: "Messages queued for processing",
166
166
  });
167
- const messageProcessedCounter = meter.createCounter("openclaw.message.processed", {
167
+ const messageProcessedCounter = meter.createCounter("cryptoclaw.message.processed", {
168
168
  unit: "1",
169
169
  description: "Messages processed by outcome",
170
170
  });
171
- const messageDurationHistogram = meter.createHistogram("openclaw.message.duration_ms", {
171
+ const messageDurationHistogram = meter.createHistogram("cryptoclaw.message.duration_ms", {
172
172
  unit: "ms",
173
173
  description: "Message processing duration",
174
174
  });
175
- const queueDepthHistogram = meter.createHistogram("openclaw.queue.depth", {
175
+ const queueDepthHistogram = meter.createHistogram("cryptoclaw.queue.depth", {
176
176
  unit: "1",
177
177
  description: "Queue depth on enqueue/dequeue",
178
178
  });
179
- const queueWaitHistogram = meter.createHistogram("openclaw.queue.wait_ms", {
179
+ const queueWaitHistogram = meter.createHistogram("cryptoclaw.queue.wait_ms", {
180
180
  unit: "ms",
181
181
  description: "Queue wait time before execution",
182
182
  });
183
- const laneEnqueueCounter = meter.createCounter("openclaw.queue.lane.enqueue", {
183
+ const laneEnqueueCounter = meter.createCounter("cryptoclaw.queue.lane.enqueue", {
184
184
  unit: "1",
185
185
  description: "Command queue lane enqueue events",
186
186
  });
187
- const laneDequeueCounter = meter.createCounter("openclaw.queue.lane.dequeue", {
187
+ const laneDequeueCounter = meter.createCounter("cryptoclaw.queue.lane.dequeue", {
188
188
  unit: "1",
189
189
  description: "Command queue lane dequeue events",
190
190
  });
191
- const sessionStateCounter = meter.createCounter("openclaw.session.state", {
191
+ const sessionStateCounter = meter.createCounter("cryptoclaw.session.state", {
192
192
  unit: "1",
193
193
  description: "Session state transitions",
194
194
  });
195
- const sessionStuckCounter = meter.createCounter("openclaw.session.stuck", {
195
+ const sessionStuckCounter = meter.createCounter("cryptoclaw.session.stuck", {
196
196
  unit: "1",
197
197
  description: "Sessions stuck in processing",
198
198
  });
199
- const sessionStuckAgeHistogram = meter.createHistogram("openclaw.session.stuck_age_ms", {
199
+ const sessionStuckAgeHistogram = meter.createHistogram("cryptoclaw.session.stuck_age_ms", {
200
200
  unit: "ms",
201
201
  description: "Age of stuck sessions",
202
202
  });
203
- const runAttemptCounter = meter.createCounter("openclaw.run.attempt", {
203
+ const runAttemptCounter = meter.createCounter("cryptoclaw.run.attempt", {
204
204
  unit: "1",
205
205
  description: "Run attempts",
206
206
  });
@@ -219,7 +219,7 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
219
219
  : {},
220
220
  ),
221
221
  );
222
- const otelLogger = logProvider.getLogger("openclaw");
222
+ const otelLogger = logProvider.getLogger("cryptoclaw");
223
223
 
224
224
  stopLogTransport = registerLogTransport((logObj) => {
225
225
  const safeStringify = (value: unknown) => {
@@ -277,13 +277,13 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
277
277
  }
278
278
 
279
279
  const attributes: Record<string, string | number | boolean> = {
280
- "openclaw.log.level": logLevelName,
280
+ "cryptoclaw.log.level": logLevelName,
281
281
  };
282
282
  if (meta?.name) {
283
- attributes["openclaw.logger"] = meta.name;
283
+ attributes["cryptoclaw.logger"] = meta.name;
284
284
  }
285
285
  if (meta?.parentNames?.length) {
286
- attributes["openclaw.logger.parents"] = meta.parentNames.join(".");
286
+ attributes["cryptoclaw.logger.parents"] = meta.parentNames.join(".");
287
287
  }
288
288
  if (bindings) {
289
289
  for (const [key, value] of Object.entries(bindings)) {
@@ -299,7 +299,7 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
299
299
  }
300
300
  }
301
301
  if (numericArgs.length > 0) {
302
- attributes["openclaw.log.args"] = safeStringify(numericArgs);
302
+ attributes["cryptoclaw.log.args"] = safeStringify(numericArgs);
303
303
  }
304
304
  if (meta?.path?.filePath) {
305
305
  attributes["code.filepath"] = meta.path.filePath;
@@ -311,7 +311,7 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
311
311
  attributes["code.function"] = meta.path.method;
312
312
  }
313
313
  if (meta?.path?.filePathWithLine) {
314
- attributes["openclaw.code.location"] = meta.path.filePathWithLine;
314
+ attributes["cryptoclaw.code.location"] = meta.path.filePathWithLine;
315
315
  }
316
316
 
317
317
  otelLogger.emit({
@@ -340,29 +340,29 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
340
340
 
341
341
  const recordModelUsage = (evt: Extract<DiagnosticEventPayload, { type: "model.usage" }>) => {
342
342
  const attrs = {
343
- "openclaw.channel": evt.channel ?? "unknown",
344
- "openclaw.provider": evt.provider ?? "unknown",
345
- "openclaw.model": evt.model ?? "unknown",
343
+ "cryptoclaw.channel": evt.channel ?? "unknown",
344
+ "cryptoclaw.provider": evt.provider ?? "unknown",
345
+ "cryptoclaw.model": evt.model ?? "unknown",
346
346
  };
347
347
 
348
348
  const usage = evt.usage;
349
349
  if (usage.input) {
350
- tokensCounter.add(usage.input, { ...attrs, "openclaw.token": "input" });
350
+ tokensCounter.add(usage.input, { ...attrs, "cryptoclaw.token": "input" });
351
351
  }
352
352
  if (usage.output) {
353
- tokensCounter.add(usage.output, { ...attrs, "openclaw.token": "output" });
353
+ tokensCounter.add(usage.output, { ...attrs, "cryptoclaw.token": "output" });
354
354
  }
355
355
  if (usage.cacheRead) {
356
- tokensCounter.add(usage.cacheRead, { ...attrs, "openclaw.token": "cache_read" });
356
+ tokensCounter.add(usage.cacheRead, { ...attrs, "cryptoclaw.token": "cache_read" });
357
357
  }
358
358
  if (usage.cacheWrite) {
359
- tokensCounter.add(usage.cacheWrite, { ...attrs, "openclaw.token": "cache_write" });
359
+ tokensCounter.add(usage.cacheWrite, { ...attrs, "cryptoclaw.token": "cache_write" });
360
360
  }
361
361
  if (usage.promptTokens) {
362
- tokensCounter.add(usage.promptTokens, { ...attrs, "openclaw.token": "prompt" });
362
+ tokensCounter.add(usage.promptTokens, { ...attrs, "cryptoclaw.token": "prompt" });
363
363
  }
364
364
  if (usage.total) {
365
- tokensCounter.add(usage.total, { ...attrs, "openclaw.token": "total" });
365
+ tokensCounter.add(usage.total, { ...attrs, "cryptoclaw.token": "total" });
366
366
  }
367
367
 
368
368
  if (evt.costUsd) {
@@ -374,13 +374,13 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
374
374
  if (evt.context?.limit) {
375
375
  contextHistogram.record(evt.context.limit, {
376
376
  ...attrs,
377
- "openclaw.context": "limit",
377
+ "cryptoclaw.context": "limit",
378
378
  });
379
379
  }
380
380
  if (evt.context?.used) {
381
381
  contextHistogram.record(evt.context.used, {
382
382
  ...attrs,
383
- "openclaw.context": "used",
383
+ "cryptoclaw.context": "used",
384
384
  });
385
385
  }
386
386
 
@@ -389,16 +389,16 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
389
389
  }
390
390
  const spanAttrs: Record<string, string | number> = {
391
391
  ...attrs,
392
- "openclaw.sessionKey": evt.sessionKey ?? "",
393
- "openclaw.sessionId": evt.sessionId ?? "",
394
- "openclaw.tokens.input": usage.input ?? 0,
395
- "openclaw.tokens.output": usage.output ?? 0,
396
- "openclaw.tokens.cache_read": usage.cacheRead ?? 0,
397
- "openclaw.tokens.cache_write": usage.cacheWrite ?? 0,
398
- "openclaw.tokens.total": usage.total ?? 0,
392
+ "cryptoclaw.sessionKey": evt.sessionKey ?? "",
393
+ "cryptoclaw.sessionId": evt.sessionId ?? "",
394
+ "cryptoclaw.tokens.input": usage.input ?? 0,
395
+ "cryptoclaw.tokens.output": usage.output ?? 0,
396
+ "cryptoclaw.tokens.cache_read": usage.cacheRead ?? 0,
397
+ "cryptoclaw.tokens.cache_write": usage.cacheWrite ?? 0,
398
+ "cryptoclaw.tokens.total": usage.total ?? 0,
399
399
  };
400
400
 
401
- const span = spanWithDuration("openclaw.model.usage", spanAttrs, evt.durationMs);
401
+ const span = spanWithDuration("cryptoclaw.model.usage", spanAttrs, evt.durationMs);
402
402
  span.end();
403
403
  };
404
404
 
@@ -406,8 +406,8 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
406
406
  evt: Extract<DiagnosticEventPayload, { type: "webhook.received" }>,
407
407
  ) => {
408
408
  const attrs = {
409
- "openclaw.channel": evt.channel ?? "unknown",
410
- "openclaw.webhook": evt.updateType ?? "unknown",
409
+ "cryptoclaw.channel": evt.channel ?? "unknown",
410
+ "cryptoclaw.webhook": evt.updateType ?? "unknown",
411
411
  };
412
412
  webhookReceivedCounter.add(1, attrs);
413
413
  };
@@ -416,8 +416,8 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
416
416
  evt: Extract<DiagnosticEventPayload, { type: "webhook.processed" }>,
417
417
  ) => {
418
418
  const attrs = {
419
- "openclaw.channel": evt.channel ?? "unknown",
420
- "openclaw.webhook": evt.updateType ?? "unknown",
419
+ "cryptoclaw.channel": evt.channel ?? "unknown",
420
+ "cryptoclaw.webhook": evt.updateType ?? "unknown",
421
421
  };
422
422
  if (typeof evt.durationMs === "number") {
423
423
  webhookDurationHistogram.record(evt.durationMs, attrs);
@@ -427,9 +427,9 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
427
427
  }
428
428
  const spanAttrs: Record<string, string | number> = { ...attrs };
429
429
  if (evt.chatId !== undefined) {
430
- spanAttrs["openclaw.chatId"] = String(evt.chatId);
430
+ spanAttrs["cryptoclaw.chatId"] = String(evt.chatId);
431
431
  }
432
- const span = spanWithDuration("openclaw.webhook.processed", spanAttrs, evt.durationMs);
432
+ const span = spanWithDuration("cryptoclaw.webhook.processed", spanAttrs, evt.durationMs);
433
433
  span.end();
434
434
  };
435
435
 
@@ -437,8 +437,8 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
437
437
  evt: Extract<DiagnosticEventPayload, { type: "webhook.error" }>,
438
438
  ) => {
439
439
  const attrs = {
440
- "openclaw.channel": evt.channel ?? "unknown",
441
- "openclaw.webhook": evt.updateType ?? "unknown",
440
+ "cryptoclaw.channel": evt.channel ?? "unknown",
441
+ "cryptoclaw.webhook": evt.updateType ?? "unknown",
442
442
  };
443
443
  webhookErrorCounter.add(1, attrs);
444
444
  if (!tracesEnabled) {
@@ -446,12 +446,12 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
446
446
  }
447
447
  const spanAttrs: Record<string, string | number> = {
448
448
  ...attrs,
449
- "openclaw.error": evt.error,
449
+ "cryptoclaw.error": evt.error,
450
450
  };
451
451
  if (evt.chatId !== undefined) {
452
- spanAttrs["openclaw.chatId"] = String(evt.chatId);
452
+ spanAttrs["cryptoclaw.chatId"] = String(evt.chatId);
453
453
  }
454
- const span = tracer.startSpan("openclaw.webhook.error", {
454
+ const span = tracer.startSpan("cryptoclaw.webhook.error", {
455
455
  attributes: spanAttrs,
456
456
  });
457
457
  span.setStatus({ code: SpanStatusCode.ERROR, message: evt.error });
@@ -462,8 +462,8 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
462
462
  evt: Extract<DiagnosticEventPayload, { type: "message.queued" }>,
463
463
  ) => {
464
464
  const attrs = {
465
- "openclaw.channel": evt.channel ?? "unknown",
466
- "openclaw.source": evt.source ?? "unknown",
465
+ "cryptoclaw.channel": evt.channel ?? "unknown",
466
+ "cryptoclaw.source": evt.source ?? "unknown",
467
467
  };
468
468
  messageQueuedCounter.add(1, attrs);
469
469
  if (typeof evt.queueDepth === "number") {
@@ -475,8 +475,8 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
475
475
  evt: Extract<DiagnosticEventPayload, { type: "message.processed" }>,
476
476
  ) => {
477
477
  const attrs = {
478
- "openclaw.channel": evt.channel ?? "unknown",
479
- "openclaw.outcome": evt.outcome ?? "unknown",
478
+ "cryptoclaw.channel": evt.channel ?? "unknown",
479
+ "cryptoclaw.outcome": evt.outcome ?? "unknown",
480
480
  };
481
481
  messageProcessedCounter.add(1, attrs);
482
482
  if (typeof evt.durationMs === "number") {
@@ -487,21 +487,21 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
487
487
  }
488
488
  const spanAttrs: Record<string, string | number> = { ...attrs };
489
489
  if (evt.sessionKey) {
490
- spanAttrs["openclaw.sessionKey"] = evt.sessionKey;
490
+ spanAttrs["cryptoclaw.sessionKey"] = evt.sessionKey;
491
491
  }
492
492
  if (evt.sessionId) {
493
- spanAttrs["openclaw.sessionId"] = evt.sessionId;
493
+ spanAttrs["cryptoclaw.sessionId"] = evt.sessionId;
494
494
  }
495
495
  if (evt.chatId !== undefined) {
496
- spanAttrs["openclaw.chatId"] = String(evt.chatId);
496
+ spanAttrs["cryptoclaw.chatId"] = String(evt.chatId);
497
497
  }
498
498
  if (evt.messageId !== undefined) {
499
- spanAttrs["openclaw.messageId"] = String(evt.messageId);
499
+ spanAttrs["cryptoclaw.messageId"] = String(evt.messageId);
500
500
  }
501
501
  if (evt.reason) {
502
- spanAttrs["openclaw.reason"] = evt.reason;
502
+ spanAttrs["cryptoclaw.reason"] = evt.reason;
503
503
  }
504
- const span = spanWithDuration("openclaw.message.processed", spanAttrs, evt.durationMs);
504
+ const span = spanWithDuration("cryptoclaw.message.processed", spanAttrs, evt.durationMs);
505
505
  if (evt.outcome === "error") {
506
506
  span.setStatus({ code: SpanStatusCode.ERROR, message: evt.error });
507
507
  }
@@ -511,7 +511,7 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
511
511
  const recordLaneEnqueue = (
512
512
  evt: Extract<DiagnosticEventPayload, { type: "queue.lane.enqueue" }>,
513
513
  ) => {
514
- const attrs = { "openclaw.lane": evt.lane };
514
+ const attrs = { "cryptoclaw.lane": evt.lane };
515
515
  laneEnqueueCounter.add(1, attrs);
516
516
  queueDepthHistogram.record(evt.queueSize, attrs);
517
517
  };
@@ -519,7 +519,7 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
519
519
  const recordLaneDequeue = (
520
520
  evt: Extract<DiagnosticEventPayload, { type: "queue.lane.dequeue" }>,
521
521
  ) => {
522
- const attrs = { "openclaw.lane": evt.lane };
522
+ const attrs = { "cryptoclaw.lane": evt.lane };
523
523
  laneDequeueCounter.add(1, attrs);
524
524
  queueDepthHistogram.record(evt.queueSize, attrs);
525
525
  if (typeof evt.waitMs === "number") {
@@ -530,9 +530,9 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
530
530
  const recordSessionState = (
531
531
  evt: Extract<DiagnosticEventPayload, { type: "session.state" }>,
532
532
  ) => {
533
- const attrs: Record<string, string> = { "openclaw.state": evt.state };
533
+ const attrs: Record<string, string> = { "cryptoclaw.state": evt.state };
534
534
  if (evt.reason) {
535
- attrs["openclaw.reason"] = evt.reason;
535
+ attrs["cryptoclaw.reason"] = evt.reason;
536
536
  }
537
537
  sessionStateCounter.add(1, attrs);
538
538
  };
@@ -540,7 +540,7 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
540
540
  const recordSessionStuck = (
541
541
  evt: Extract<DiagnosticEventPayload, { type: "session.stuck" }>,
542
542
  ) => {
543
- const attrs: Record<string, string> = { "openclaw.state": evt.state };
543
+ const attrs: Record<string, string> = { "cryptoclaw.state": evt.state };
544
544
  sessionStuckCounter.add(1, attrs);
545
545
  if (typeof evt.ageMs === "number") {
546
546
  sessionStuckAgeHistogram.record(evt.ageMs, attrs);
@@ -550,26 +550,26 @@ export function createDiagnosticsOtelService(): OpenClawPluginService {
550
550
  }
551
551
  const spanAttrs: Record<string, string | number> = { ...attrs };
552
552
  if (evt.sessionKey) {
553
- spanAttrs["openclaw.sessionKey"] = evt.sessionKey;
553
+ spanAttrs["cryptoclaw.sessionKey"] = evt.sessionKey;
554
554
  }
555
555
  if (evt.sessionId) {
556
- spanAttrs["openclaw.sessionId"] = evt.sessionId;
556
+ spanAttrs["cryptoclaw.sessionId"] = evt.sessionId;
557
557
  }
558
- spanAttrs["openclaw.queueDepth"] = evt.queueDepth ?? 0;
559
- spanAttrs["openclaw.ageMs"] = evt.ageMs;
560
- const span = tracer.startSpan("openclaw.session.stuck", { attributes: spanAttrs });
558
+ spanAttrs["cryptoclaw.queueDepth"] = evt.queueDepth ?? 0;
559
+ spanAttrs["cryptoclaw.ageMs"] = evt.ageMs;
560
+ const span = tracer.startSpan("cryptoclaw.session.stuck", { attributes: spanAttrs });
561
561
  span.setStatus({ code: SpanStatusCode.ERROR, message: "session stuck" });
562
562
  span.end();
563
563
  };
564
564
 
565
565
  const recordRunAttempt = (evt: Extract<DiagnosticEventPayload, { type: "run.attempt" }>) => {
566
- runAttemptCounter.add(1, { "openclaw.attempt": evt.attempt });
566
+ runAttemptCounter.add(1, { "cryptoclaw.attempt": evt.attempt });
567
567
  };
568
568
 
569
569
  const recordHeartbeat = (
570
570
  evt: Extract<DiagnosticEventPayload, { type: "diagnostic.heartbeat" }>,
571
571
  ) => {
572
- queueDepthHistogram.record(evt.queued, { "openclaw.channel": "heartbeat" });
572
+ queueDepthHistogram.record(evt.queued, { "cryptoclaw.channel": "heartbeat" });
573
573
  };
574
574
 
575
575
  unsubscribe = onDiagnosticEvent((evt: DiagnosticEventPayload) => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cryptoclaw/discord",
3
3
  "version": "2026.2.4",
4
- "description": "OpenClaw Discord channel plugin",
4
+ "description": "CryptoClaw Discord channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
7
7
  "cryptoclaw": "workspace:*"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cryptoclaw/imessage",
3
3
  "version": "2026.2.4",
4
- "description": "OpenClaw iMessage channel plugin",
4
+ "description": "CryptoClaw iMessage channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
7
7
  "cryptoclaw": "workspace:*"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cryptoclaw/memory-core",
3
3
  "version": "2026.2.4",
4
- "description": "OpenClaw core memory search plugin",
4
+ "description": "CryptoClaw core memory search plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
7
7
  "cryptoclaw": "workspace:*"
@@ -17,11 +17,11 @@ export const MEMORY_CATEGORIES = ["preference", "fact", "decision", "entity", "o
17
17
  export type MemoryCategory = (typeof MEMORY_CATEGORIES)[number];
18
18
 
19
19
  const DEFAULT_MODEL = "text-embedding-3-small";
20
- const LEGACY_STATE_DIRS: string[] = [];
20
+ const LEGACY_STATE_DIRS: string[] = [".openclaw"];
21
21
 
22
22
  function resolveDefaultDbPath(): string {
23
23
  const home = homedir();
24
- const preferred = join(home, ".openclaw", "memory", "lancedb");
24
+ const preferred = join(home, ".cryptoclaw", "memory", "lancedb");
25
25
  try {
26
26
  if (fs.existsSync(preferred)) {
27
27
  return preferred;
@@ -124,7 +124,7 @@ export const memoryConfigSchema = {
124
124
  },
125
125
  dbPath: {
126
126
  label: "Database Path",
127
- placeholder: "~/.openclaw/memory/lancedb",
127
+ placeholder: "~/.cryptoclaw/memory/lancedb",
128
128
  advanced: true,
129
129
  },
130
130
  autoCapture: {
@@ -15,7 +15,7 @@
15
15
  },
16
16
  "dbPath": {
17
17
  "label": "Database Path",
18
- "placeholder": "~/.openclaw/memory/lancedb",
18
+ "placeholder": "~/.cryptoclaw/memory/lancedb",
19
19
  "advanced": true
20
20
  },
21
21
  "autoCapture": {
@@ -23,7 +23,7 @@ describe("memory plugin e2e", () => {
23
23
  let dbPath: string;
24
24
 
25
25
  beforeEach(async () => {
26
- tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-memory-test-"));
26
+ tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "cryptoclaw-memory-test-"));
27
27
  dbPath = path.join(tmpDir, "lancedb");
28
28
  });
29
29
 
@@ -165,7 +165,7 @@ describeLive("memory plugin live tests", () => {
165
165
  let dbPath: string;
166
166
 
167
167
  beforeEach(async () => {
168
- tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-memory-live-"));
168
+ tmpDir = await fs.mkdtemp(path.join(os.tmpdir(), "cryptoclaw-memory-live-"));
169
169
  dbPath = path.join(tmpDir, "lancedb");
170
170
  });
171
171
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * OpenClaw Memory (LanceDB) Plugin
2
+ * CryptoClaw Memory (LanceDB) Plugin
3
3
  *
4
4
  * Long-term memory with vector search for AI conversations.
5
5
  * Uses LanceDB for storage and OpenAI for embeddings.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cryptoclaw/memory-lancedb",
3
3
  "version": "2026.2.4",
4
- "description": "OpenClaw LanceDB-backed long-term memory plugin with auto-recall/capture",
4
+ "description": "CryptoClaw LanceDB-backed long-term memory plugin with auto-recall/capture",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "@lancedb/lancedb": "^0.23.0",
@@ -1,10 +1,10 @@
1
- # @openclaw/nostr
1
+ # @cryptoclaw/nostr
2
2
 
3
- Nostr DM channel plugin for OpenClaw using NIP-04 encrypted direct messages.
3
+ Nostr DM channel plugin for CryptoClaw using NIP-04 encrypted direct messages.
4
4
 
5
5
  ## Overview
6
6
 
7
- This extension adds Nostr as a messaging channel to OpenClaw. It enables your bot to:
7
+ This extension adds Nostr as a messaging channel to CryptoClaw. It enables your bot to:
8
8
 
9
9
  - Receive encrypted DMs from Nostr users
10
10
  - Send encrypted responses back
@@ -13,7 +13,7 @@ This extension adds Nostr as a messaging channel to OpenClaw. It enables your bo
13
13
  ## Installation
14
14
 
15
15
  ```bash
16
- openclaw plugins install @openclaw/nostr
16
+ cryptoclaw plugins install @cryptoclaw/nostr
17
17
  ```
18
18
 
19
19
  ## Quick Setup
@@ -90,7 +90,7 @@ openclaw plugins install @openclaw/nostr
90
90
  # Using strfry
91
91
  docker run -p 7777:7777 ghcr.io/hoytech/strfry
92
92
 
93
- # Configure openclaw to use local relay
93
+ # Configure cryptoclaw to use local relay
94
94
  "relays": ["ws://localhost:7777"]
95
95
  ```
96
96
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cryptoclaw/nostr",
3
3
  "version": "2026.2.4",
4
- "description": "OpenClaw Nostr channel plugin for NIP-04 encrypted DMs",
4
+ "description": "CryptoClaw Nostr channel plugin for NIP-04 encrypted DMs",
5
5
  "type": "module",
6
6
  "dependencies": {
7
7
  "cryptoclaw": "workspace:*",
@@ -226,7 +226,7 @@ export const nostrPlugin: ChannelPlugin<ResolvedNostrAccount> = {
226
226
  onMessage: async (senderPubkey, text, reply) => {
227
227
  ctx.log?.debug(`[${account.accountId}] DM from ${senderPubkey}: ${text.slice(0, 50)}...`);
228
228
 
229
- // Forward to OpenClaw's message pipeline
229
+ // Forward to CryptoClaw's message pipeline
230
230
  await runtime.channel.reply.handleInboundMessage({
231
231
  channel: "nostr",
232
232
  accountId: account.accountId,
@@ -12,7 +12,7 @@ import { setNostrRuntime } from "./runtime.js";
12
12
 
13
13
  async function withTempStateDir<T>(fn: (dir: string) => Promise<T>) {
14
14
  const previous = process.env.OPENCLAW_STATE_DIR;
15
- const dir = await fs.mkdtemp(path.join(os.tmpdir(), "openclaw-nostr-"));
15
+ const dir = await fs.mkdtemp(path.join(os.tmpdir(), "cryptoclaw-nostr-"));
16
16
  process.env.OPENCLAW_STATE_DIR = dir;
17
17
  setNostrRuntime({
18
18
  state: {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cryptoclaw/signal",
3
3
  "version": "2026.2.4",
4
- "description": "OpenClaw Signal channel plugin",
4
+ "description": "CryptoClaw Signal channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
7
7
  "cryptoclaw": "workspace:*"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cryptoclaw/slack",
3
3
  "version": "2026.2.4",
4
- "description": "OpenClaw Slack channel plugin",
4
+ "description": "CryptoClaw Slack channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
7
7
  "cryptoclaw": "workspace:*"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cryptoclaw/telegram",
3
3
  "version": "2026.2.4",
4
- "description": "OpenClaw Telegram channel plugin",
4
+ "description": "CryptoClaw Telegram channel plugin",
5
5
  "type": "module",
6
6
  "devDependencies": {
7
7
  "cryptoclaw": "workspace:*"