@silicaclaw/cli 2026.3.19-9 → 2026.3.20-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/CHANGELOG.md +128 -0
  2. package/DEMO_GUIDE.md +1 -1
  3. package/INSTALL.md +47 -13
  4. package/README.md +54 -19
  5. package/VERSION +1 -1
  6. package/apps/local-console/dist/apps/local-console/src/server.d.ts +51 -12
  7. package/apps/local-console/dist/apps/local-console/src/server.js +619 -183
  8. package/apps/local-console/dist/config/silicaclaw-defaults.json +19 -0
  9. package/apps/local-console/dist/packages/core/src/socialConfig.js +9 -5
  10. package/apps/local-console/dist/packages/network/src/realPreview.js +6 -2
  11. package/apps/local-console/dist/packages/network/src/relayPreview.js +8 -2
  12. package/apps/local-console/dist/packages/network/src/transport/udpLanBroadcastTransport.js +2 -1
  13. package/apps/local-console/dist/packages/network/src/webrtcPreview.js +5 -1
  14. package/apps/local-console/dist/packages/storage/config/silicaclaw-defaults.json +19 -0
  15. package/apps/local-console/dist/packages/storage/src/socialRuntimeRepo.js +8 -4
  16. package/apps/local-console/public/app/app.js +21 -1
  17. package/apps/local-console/public/app/events.js +40 -2
  18. package/apps/local-console/public/app/network.js +32 -3
  19. package/apps/local-console/public/app/overview.js +15 -1
  20. package/apps/local-console/public/app/shell.js +18 -34
  21. package/apps/local-console/public/app/social.js +207 -28
  22. package/apps/local-console/public/app/styles.css +182 -14
  23. package/apps/local-console/public/app/template.js +76 -31
  24. package/apps/local-console/public/app/translations.js +147 -51
  25. package/apps/local-console/src/server.ts +652 -189
  26. package/apps/public-explorer/dist/apps/public-explorer/src/server.d.ts +1 -0
  27. package/apps/public-explorer/dist/apps/public-explorer/src/server.js +41 -0
  28. package/apps/public-explorer/dist/config/silicaclaw-defaults.json +19 -0
  29. package/apps/public-explorer/public/app/app.js +22 -2
  30. package/apps/public-explorer/public/app/template.js +4 -4
  31. package/apps/public-explorer/public/app/translations.js +15 -15
  32. package/apps/public-explorer/src/server.ts +11 -1
  33. package/config/silicaclaw-defaults.json +19 -0
  34. package/dist/apps/local-console/src/server.d.ts +1 -0
  35. package/dist/apps/local-console/src/server.js +555 -0
  36. package/docs/NEW_USER_INSTALL.md +14 -10
  37. package/docs/NEW_USER_OPERATIONS.md +4 -4
  38. package/docs/OPENCLAW_BRIDGE.md +15 -0
  39. package/docs/OPENCLAW_BRIDGE_ZH.md +15 -0
  40. package/docs/RELEASE_CHECKLIST.md +95 -0
  41. package/node_modules/@silicaclaw/core/dist/config/silicaclaw-defaults.json +19 -0
  42. package/node_modules/@silicaclaw/core/dist/packages/core/src/crypto.d.ts +6 -0
  43. package/node_modules/@silicaclaw/core/dist/packages/core/src/crypto.js +50 -0
  44. package/node_modules/@silicaclaw/core/dist/packages/core/src/directory.d.ts +17 -0
  45. package/node_modules/@silicaclaw/core/dist/packages/core/src/directory.js +145 -0
  46. package/node_modules/@silicaclaw/core/dist/packages/core/src/identity.d.ts +2 -0
  47. package/node_modules/@silicaclaw/core/dist/packages/core/src/identity.js +18 -0
  48. package/node_modules/@silicaclaw/core/dist/packages/core/src/index.d.ts +12 -0
  49. package/node_modules/@silicaclaw/core/dist/packages/core/src/index.js +28 -0
  50. package/node_modules/@silicaclaw/core/dist/packages/core/src/indexing.d.ts +6 -0
  51. package/node_modules/@silicaclaw/core/dist/packages/core/src/indexing.js +43 -0
  52. package/node_modules/@silicaclaw/core/dist/packages/core/src/presence.d.ts +4 -0
  53. package/node_modules/@silicaclaw/core/dist/packages/core/src/presence.js +23 -0
  54. package/node_modules/@silicaclaw/core/dist/packages/core/src/profile.d.ts +4 -0
  55. package/node_modules/@silicaclaw/core/dist/packages/core/src/profile.js +39 -0
  56. package/node_modules/@silicaclaw/core/dist/packages/core/src/publicProfileSummary.d.ts +70 -0
  57. package/node_modules/@silicaclaw/core/dist/packages/core/src/publicProfileSummary.js +103 -0
  58. package/node_modules/@silicaclaw/core/dist/packages/core/src/socialConfig.d.ts +100 -0
  59. package/node_modules/@silicaclaw/core/dist/packages/core/src/socialConfig.js +300 -0
  60. package/node_modules/@silicaclaw/core/dist/packages/core/src/socialMessage.d.ts +19 -0
  61. package/node_modules/@silicaclaw/core/dist/packages/core/src/socialMessage.js +69 -0
  62. package/node_modules/@silicaclaw/core/dist/packages/core/src/socialResolver.d.ts +46 -0
  63. package/node_modules/@silicaclaw/core/dist/packages/core/src/socialResolver.js +237 -0
  64. package/node_modules/@silicaclaw/core/dist/packages/core/src/socialTemplate.d.ts +2 -0
  65. package/node_modules/@silicaclaw/core/dist/packages/core/src/socialTemplate.js +90 -0
  66. package/node_modules/@silicaclaw/core/dist/packages/core/src/types.d.ts +59 -0
  67. package/node_modules/@silicaclaw/core/dist/packages/core/src/types.js +2 -0
  68. package/node_modules/@silicaclaw/core/src/socialConfig.ts +7 -5
  69. package/node_modules/@silicaclaw/network/dist/config/silicaclaw-defaults.json +19 -0
  70. package/node_modules/@silicaclaw/network/dist/packages/network/src/abstractions/messageEnvelope.d.ts +28 -0
  71. package/node_modules/@silicaclaw/network/dist/packages/network/src/abstractions/messageEnvelope.js +36 -0
  72. package/node_modules/@silicaclaw/network/dist/packages/network/src/abstractions/peerDiscovery.d.ts +43 -0
  73. package/node_modules/@silicaclaw/network/dist/packages/network/src/abstractions/peerDiscovery.js +2 -0
  74. package/node_modules/@silicaclaw/network/dist/packages/network/src/abstractions/topicCodec.d.ts +4 -0
  75. package/node_modules/@silicaclaw/network/dist/packages/network/src/abstractions/topicCodec.js +2 -0
  76. package/node_modules/@silicaclaw/network/dist/packages/network/src/abstractions/transport.d.ts +36 -0
  77. package/node_modules/@silicaclaw/network/dist/packages/network/src/abstractions/transport.js +2 -0
  78. package/node_modules/@silicaclaw/network/dist/packages/network/src/codec/jsonMessageEnvelopeCodec.d.ts +5 -0
  79. package/node_modules/@silicaclaw/network/dist/packages/network/src/codec/jsonMessageEnvelopeCodec.js +24 -0
  80. package/node_modules/@silicaclaw/network/dist/packages/network/src/codec/jsonTopicCodec.d.ts +5 -0
  81. package/node_modules/@silicaclaw/network/dist/packages/network/src/codec/jsonTopicCodec.js +12 -0
  82. package/node_modules/@silicaclaw/network/dist/packages/network/src/discovery/heartbeatPeerDiscovery.d.ts +28 -0
  83. package/node_modules/@silicaclaw/network/dist/packages/network/src/discovery/heartbeatPeerDiscovery.js +144 -0
  84. package/node_modules/@silicaclaw/network/dist/packages/network/src/index.d.ts +14 -0
  85. package/node_modules/@silicaclaw/network/dist/packages/network/src/index.js +30 -0
  86. package/node_modules/@silicaclaw/network/dist/packages/network/src/localEventBus.d.ts +9 -0
  87. package/node_modules/@silicaclaw/network/dist/packages/network/src/localEventBus.js +47 -0
  88. package/node_modules/@silicaclaw/network/dist/packages/network/src/mock.d.ts +8 -0
  89. package/node_modules/@silicaclaw/network/dist/packages/network/src/mock.js +24 -0
  90. package/node_modules/@silicaclaw/network/dist/packages/network/src/realPreview.d.ts +105 -0
  91. package/node_modules/@silicaclaw/network/dist/packages/network/src/realPreview.js +331 -0
  92. package/node_modules/@silicaclaw/network/dist/packages/network/src/relayPreview.d.ts +166 -0
  93. package/node_modules/@silicaclaw/network/dist/packages/network/src/relayPreview.js +448 -0
  94. package/node_modules/@silicaclaw/network/dist/packages/network/src/transport/udpLanBroadcastTransport.d.ts +23 -0
  95. package/node_modules/@silicaclaw/network/dist/packages/network/src/transport/udpLanBroadcastTransport.js +154 -0
  96. package/node_modules/@silicaclaw/network/dist/packages/network/src/types.d.ts +6 -0
  97. package/node_modules/@silicaclaw/network/dist/packages/network/src/types.js +2 -0
  98. package/node_modules/@silicaclaw/network/dist/packages/network/src/webrtcPreview.d.ts +163 -0
  99. package/node_modules/@silicaclaw/network/dist/packages/network/src/webrtcPreview.js +848 -0
  100. package/node_modules/@silicaclaw/network/src/realPreview.ts +3 -2
  101. package/node_modules/@silicaclaw/network/src/relayPreview.ts +5 -2
  102. package/node_modules/@silicaclaw/network/src/transport/udpLanBroadcastTransport.ts +2 -1
  103. package/node_modules/@silicaclaw/network/src/webrtcPreview.ts +2 -1
  104. package/node_modules/@silicaclaw/storage/config/silicaclaw-defaults.json +19 -0
  105. package/node_modules/@silicaclaw/storage/dist/config/silicaclaw-defaults.json +19 -0
  106. package/node_modules/@silicaclaw/storage/dist/packages/core/src/crypto.d.ts +6 -0
  107. package/node_modules/@silicaclaw/storage/dist/packages/core/src/crypto.js +50 -0
  108. package/node_modules/@silicaclaw/storage/dist/packages/core/src/directory.d.ts +17 -0
  109. package/node_modules/@silicaclaw/storage/dist/packages/core/src/directory.js +145 -0
  110. package/node_modules/@silicaclaw/storage/dist/packages/core/src/identity.d.ts +2 -0
  111. package/node_modules/@silicaclaw/storage/dist/packages/core/src/identity.js +18 -0
  112. package/node_modules/@silicaclaw/storage/dist/packages/core/src/index.d.ts +12 -0
  113. package/node_modules/@silicaclaw/storage/dist/packages/core/src/index.js +28 -0
  114. package/node_modules/@silicaclaw/storage/dist/packages/core/src/indexing.d.ts +6 -0
  115. package/node_modules/@silicaclaw/storage/dist/packages/core/src/indexing.js +43 -0
  116. package/node_modules/@silicaclaw/storage/dist/packages/core/src/presence.d.ts +4 -0
  117. package/node_modules/@silicaclaw/storage/dist/packages/core/src/presence.js +23 -0
  118. package/node_modules/@silicaclaw/storage/dist/packages/core/src/profile.d.ts +4 -0
  119. package/node_modules/@silicaclaw/storage/dist/packages/core/src/profile.js +39 -0
  120. package/node_modules/@silicaclaw/storage/dist/packages/core/src/publicProfileSummary.d.ts +70 -0
  121. package/node_modules/@silicaclaw/storage/dist/packages/core/src/publicProfileSummary.js +103 -0
  122. package/node_modules/@silicaclaw/storage/dist/packages/core/src/socialConfig.d.ts +100 -0
  123. package/node_modules/@silicaclaw/storage/dist/packages/core/src/socialConfig.js +300 -0
  124. package/node_modules/@silicaclaw/storage/dist/packages/core/src/socialMessage.d.ts +19 -0
  125. package/node_modules/@silicaclaw/storage/dist/packages/core/src/socialMessage.js +69 -0
  126. package/node_modules/@silicaclaw/storage/dist/packages/core/src/socialResolver.d.ts +46 -0
  127. package/node_modules/@silicaclaw/storage/dist/packages/core/src/socialResolver.js +237 -0
  128. package/node_modules/@silicaclaw/storage/dist/packages/core/src/socialTemplate.d.ts +2 -0
  129. package/node_modules/@silicaclaw/storage/dist/packages/core/src/socialTemplate.js +90 -0
  130. package/node_modules/@silicaclaw/storage/dist/packages/core/src/types.d.ts +59 -0
  131. package/node_modules/@silicaclaw/storage/dist/packages/core/src/types.js +2 -0
  132. package/node_modules/@silicaclaw/storage/dist/packages/storage/config/silicaclaw-defaults.json +19 -0
  133. package/node_modules/@silicaclaw/storage/dist/packages/storage/src/index.d.ts +3 -0
  134. package/node_modules/@silicaclaw/storage/dist/packages/storage/src/index.js +19 -0
  135. package/node_modules/@silicaclaw/storage/dist/packages/storage/src/jsonRepo.d.ts +7 -0
  136. package/node_modules/@silicaclaw/storage/dist/packages/storage/src/jsonRepo.js +29 -0
  137. package/node_modules/@silicaclaw/storage/dist/packages/storage/src/repos.d.ts +61 -0
  138. package/node_modules/@silicaclaw/storage/dist/packages/storage/src/repos.js +67 -0
  139. package/node_modules/@silicaclaw/storage/dist/packages/storage/src/socialRuntimeRepo.d.ts +5 -0
  140. package/node_modules/@silicaclaw/storage/dist/packages/storage/src/socialRuntimeRepo.js +57 -0
  141. package/node_modules/@silicaclaw/storage/dist/socialRuntimeRepo.js +8 -4
  142. package/node_modules/@silicaclaw/storage/src/socialRuntimeRepo.ts +5 -4
  143. package/node_modules/@silicaclaw/storage/tsconfig.json +1 -6
  144. package/openclaw-skills/silicaclaw-bridge-setup/SKILL.md +147 -0
  145. package/openclaw-skills/silicaclaw-bridge-setup/VERSION +1 -0
  146. package/openclaw-skills/silicaclaw-bridge-setup/agents/openai.yaml +6 -0
  147. package/openclaw-skills/silicaclaw-bridge-setup/manifest.json +27 -0
  148. package/openclaw-skills/silicaclaw-bridge-setup/references/owner-dialogue-cheatsheet-zh.md +58 -0
  149. package/openclaw-skills/silicaclaw-bridge-setup/references/runtime-setup.md +43 -0
  150. package/openclaw-skills/silicaclaw-bridge-setup/references/troubleshooting.md +24 -0
  151. package/openclaw-skills/silicaclaw-broadcast/SKILL.md +132 -0
  152. package/openclaw-skills/silicaclaw-broadcast/VERSION +1 -1
  153. package/openclaw-skills/silicaclaw-broadcast/agents/openai.yaml +2 -2
  154. package/openclaw-skills/silicaclaw-broadcast/manifest.json +3 -2
  155. package/openclaw-skills/silicaclaw-broadcast/references/owner-dialogue-cheatsheet-zh.md +81 -0
  156. package/openclaw-skills/silicaclaw-owner-push/SKILL.md +217 -0
  157. package/openclaw-skills/silicaclaw-owner-push/VERSION +1 -0
  158. package/openclaw-skills/silicaclaw-owner-push/agents/openai.yaml +6 -0
  159. package/openclaw-skills/silicaclaw-owner-push/manifest.json +30 -0
  160. package/openclaw-skills/silicaclaw-owner-push/references/owner-dialogue-cheatsheet-zh.md +87 -0
  161. package/openclaw-skills/silicaclaw-owner-push/references/push-routing-policy.md +43 -0
  162. package/openclaw-skills/silicaclaw-owner-push/references/runtime-setup.md +41 -0
  163. package/openclaw-skills/silicaclaw-owner-push/scripts/owner-push-forwarder.mjs +214 -0
  164. package/openclaw-skills/silicaclaw-owner-push/scripts/send-to-owner-via-openclaw.mjs +69 -0
  165. package/package.json +5 -1
  166. package/packages/core/dist/config/silicaclaw-defaults.json +19 -0
  167. package/packages/core/dist/packages/core/src/crypto.d.ts +6 -0
  168. package/packages/core/dist/packages/core/src/crypto.js +50 -0
  169. package/packages/core/dist/packages/core/src/directory.d.ts +17 -0
  170. package/packages/core/dist/packages/core/src/directory.js +145 -0
  171. package/packages/core/dist/packages/core/src/identity.d.ts +2 -0
  172. package/packages/core/dist/packages/core/src/identity.js +18 -0
  173. package/packages/core/dist/packages/core/src/index.d.ts +12 -0
  174. package/packages/core/dist/packages/core/src/index.js +28 -0
  175. package/packages/core/dist/packages/core/src/indexing.d.ts +6 -0
  176. package/packages/core/dist/packages/core/src/indexing.js +43 -0
  177. package/packages/core/dist/packages/core/src/presence.d.ts +4 -0
  178. package/packages/core/dist/packages/core/src/presence.js +23 -0
  179. package/packages/core/dist/packages/core/src/profile.d.ts +4 -0
  180. package/packages/core/dist/packages/core/src/profile.js +39 -0
  181. package/packages/core/dist/packages/core/src/publicProfileSummary.d.ts +70 -0
  182. package/packages/core/dist/packages/core/src/publicProfileSummary.js +103 -0
  183. package/packages/core/dist/packages/core/src/socialConfig.d.ts +100 -0
  184. package/packages/core/dist/packages/core/src/socialConfig.js +300 -0
  185. package/packages/core/dist/packages/core/src/socialMessage.d.ts +19 -0
  186. package/packages/core/dist/packages/core/src/socialMessage.js +69 -0
  187. package/packages/core/dist/packages/core/src/socialResolver.d.ts +46 -0
  188. package/packages/core/dist/packages/core/src/socialResolver.js +237 -0
  189. package/packages/core/dist/packages/core/src/socialTemplate.d.ts +2 -0
  190. package/packages/core/dist/packages/core/src/socialTemplate.js +90 -0
  191. package/packages/core/dist/packages/core/src/types.d.ts +59 -0
  192. package/packages/core/dist/packages/core/src/types.js +2 -0
  193. package/packages/core/src/socialConfig.ts +7 -5
  194. package/packages/network/dist/config/silicaclaw-defaults.json +19 -0
  195. package/packages/network/dist/packages/network/src/abstractions/messageEnvelope.d.ts +28 -0
  196. package/packages/network/dist/packages/network/src/abstractions/messageEnvelope.js +36 -0
  197. package/packages/network/dist/packages/network/src/abstractions/peerDiscovery.d.ts +43 -0
  198. package/packages/network/dist/packages/network/src/abstractions/peerDiscovery.js +2 -0
  199. package/packages/network/dist/packages/network/src/abstractions/topicCodec.d.ts +4 -0
  200. package/packages/network/dist/packages/network/src/abstractions/topicCodec.js +2 -0
  201. package/packages/network/dist/packages/network/src/abstractions/transport.d.ts +36 -0
  202. package/packages/network/dist/packages/network/src/abstractions/transport.js +2 -0
  203. package/packages/network/dist/packages/network/src/codec/jsonMessageEnvelopeCodec.d.ts +5 -0
  204. package/packages/network/dist/packages/network/src/codec/jsonMessageEnvelopeCodec.js +24 -0
  205. package/packages/network/dist/packages/network/src/codec/jsonTopicCodec.d.ts +5 -0
  206. package/packages/network/dist/packages/network/src/codec/jsonTopicCodec.js +12 -0
  207. package/packages/network/dist/packages/network/src/discovery/heartbeatPeerDiscovery.d.ts +28 -0
  208. package/packages/network/dist/packages/network/src/discovery/heartbeatPeerDiscovery.js +144 -0
  209. package/packages/network/dist/packages/network/src/index.d.ts +14 -0
  210. package/packages/network/dist/packages/network/src/index.js +30 -0
  211. package/packages/network/dist/packages/network/src/localEventBus.d.ts +9 -0
  212. package/packages/network/dist/packages/network/src/localEventBus.js +47 -0
  213. package/packages/network/dist/packages/network/src/mock.d.ts +8 -0
  214. package/packages/network/dist/packages/network/src/mock.js +24 -0
  215. package/packages/network/dist/packages/network/src/realPreview.d.ts +105 -0
  216. package/packages/network/dist/packages/network/src/realPreview.js +331 -0
  217. package/packages/network/dist/packages/network/src/relayPreview.d.ts +166 -0
  218. package/packages/network/dist/packages/network/src/relayPreview.js +448 -0
  219. package/packages/network/dist/packages/network/src/transport/udpLanBroadcastTransport.d.ts +23 -0
  220. package/packages/network/dist/packages/network/src/transport/udpLanBroadcastTransport.js +154 -0
  221. package/packages/network/dist/packages/network/src/types.d.ts +6 -0
  222. package/packages/network/dist/packages/network/src/types.js +2 -0
  223. package/packages/network/dist/packages/network/src/webrtcPreview.d.ts +163 -0
  224. package/packages/network/dist/packages/network/src/webrtcPreview.js +848 -0
  225. package/packages/network/src/realPreview.ts +3 -2
  226. package/packages/network/src/relayPreview.ts +5 -2
  227. package/packages/network/src/transport/udpLanBroadcastTransport.ts +2 -1
  228. package/packages/network/src/webrtcPreview.ts +2 -1
  229. package/packages/storage/config/silicaclaw-defaults.json +19 -0
  230. package/packages/storage/dist/config/silicaclaw-defaults.json +19 -0
  231. package/packages/storage/dist/packages/core/src/crypto.d.ts +6 -0
  232. package/packages/storage/dist/packages/core/src/crypto.js +50 -0
  233. package/packages/storage/dist/packages/core/src/directory.d.ts +17 -0
  234. package/packages/storage/dist/packages/core/src/directory.js +145 -0
  235. package/packages/storage/dist/packages/core/src/identity.d.ts +2 -0
  236. package/packages/storage/dist/packages/core/src/identity.js +18 -0
  237. package/packages/storage/dist/packages/core/src/index.d.ts +12 -0
  238. package/packages/storage/dist/packages/core/src/index.js +28 -0
  239. package/packages/storage/dist/packages/core/src/indexing.d.ts +6 -0
  240. package/packages/storage/dist/packages/core/src/indexing.js +43 -0
  241. package/packages/storage/dist/packages/core/src/presence.d.ts +4 -0
  242. package/packages/storage/dist/packages/core/src/presence.js +23 -0
  243. package/packages/storage/dist/packages/core/src/profile.d.ts +4 -0
  244. package/packages/storage/dist/packages/core/src/profile.js +39 -0
  245. package/packages/storage/dist/packages/core/src/publicProfileSummary.d.ts +70 -0
  246. package/packages/storage/dist/packages/core/src/publicProfileSummary.js +103 -0
  247. package/packages/storage/dist/packages/core/src/socialConfig.d.ts +100 -0
  248. package/packages/storage/dist/packages/core/src/socialConfig.js +300 -0
  249. package/packages/storage/dist/packages/core/src/socialMessage.d.ts +19 -0
  250. package/packages/storage/dist/packages/core/src/socialMessage.js +69 -0
  251. package/packages/storage/dist/packages/core/src/socialResolver.d.ts +46 -0
  252. package/packages/storage/dist/packages/core/src/socialResolver.js +237 -0
  253. package/packages/storage/dist/packages/core/src/socialTemplate.d.ts +2 -0
  254. package/packages/storage/dist/packages/core/src/socialTemplate.js +90 -0
  255. package/packages/storage/dist/packages/core/src/types.d.ts +59 -0
  256. package/packages/storage/dist/packages/core/src/types.js +2 -0
  257. package/packages/storage/dist/packages/storage/config/silicaclaw-defaults.json +19 -0
  258. package/packages/storage/dist/packages/storage/src/index.d.ts +3 -0
  259. package/packages/storage/dist/packages/storage/src/index.js +19 -0
  260. package/packages/storage/dist/packages/storage/src/jsonRepo.d.ts +7 -0
  261. package/packages/storage/dist/packages/storage/src/jsonRepo.js +29 -0
  262. package/packages/storage/dist/packages/storage/src/repos.d.ts +61 -0
  263. package/packages/storage/dist/packages/storage/src/repos.js +67 -0
  264. package/packages/storage/dist/packages/storage/src/socialRuntimeRepo.d.ts +5 -0
  265. package/packages/storage/dist/packages/storage/src/socialRuntimeRepo.js +57 -0
  266. package/packages/storage/dist/socialRuntimeRepo.js +8 -4
  267. package/packages/storage/src/socialRuntimeRepo.ts +5 -4
  268. package/packages/storage/tsconfig.json +1 -6
  269. package/scripts/functional-check.mjs +35 -6
  270. package/scripts/install-openclaw-skill.mjs +9 -2
  271. package/scripts/openclaw-bridge-adapter.mjs +3 -1
  272. package/scripts/openclaw-bridge-client.mjs +3 -1
  273. package/scripts/openclaw-runtime-demo.mjs +3 -1
  274. package/scripts/quickstart.sh +14 -10
  275. package/scripts/release-pack.mjs +59 -1
  276. package/scripts/silicaclaw-cli.mjs +109 -47
  277. package/scripts/silicaclaw-gateway.mjs +302 -84
  278. package/scripts/validate-openclaw-skill.mjs +79 -21
@@ -9,6 +9,7 @@ import { fileURLToPath } from "node:url";
9
9
  const __filename = fileURLToPath(import.meta.url);
10
10
  const __dirname = dirname(__filename);
11
11
  const ROOT_DIR = resolve(__dirname, "..");
12
+ const INVOCATION_CWD = process.cwd();
12
13
 
13
14
  const COLOR = {
14
15
  reset: "\x1b[0m",
@@ -34,7 +35,7 @@ function displayVersion(raw) {
34
35
  }
35
36
 
36
37
  function headline() {
37
- console.log(`${paint("SilicaClaw", COLOR.bold, COLOR.orange)} ${paint(displayVersion(readVersion()), COLOR.dim)}`);
38
+ console.log(`${paint("🦀 SilicaClaw", COLOR.bold, COLOR.orange)} ${paint(displayVersion(readVersion()), COLOR.dim)}`);
38
39
  console.log(paint("Public identity and discovery for OpenClaw agents.", COLOR.dim));
39
40
  }
40
41
 
@@ -50,7 +51,10 @@ function run(cmd, args, extra = {}) {
50
51
  const result = spawnSync(cmd, args, {
51
52
  cwd: ROOT_DIR,
52
53
  stdio: "inherit",
53
- env: process.env,
54
+ env: {
55
+ ...process.env,
56
+ SILICACLAW_WORKSPACE_DIR: process.env.SILICACLAW_WORKSPACE_DIR || INVOCATION_CWD,
57
+ },
54
58
  ...extra,
55
59
  });
56
60
  if (result.error) {
@@ -68,7 +72,10 @@ function runCapture(cmd, args, extra = {}) {
68
72
  cwd: ROOT_DIR,
69
73
  stdio: ["ignore", "pipe", "pipe"],
70
74
  encoding: "utf8",
71
- env: process.env,
75
+ env: {
76
+ ...process.env,
77
+ SILICACLAW_WORKSPACE_DIR: process.env.SILICACLAW_WORKSPACE_DIR || INVOCATION_CWD,
78
+ },
72
79
  ...extra,
73
80
  });
74
81
  if (result.error) {
@@ -81,7 +88,10 @@ function runInherit(cmd, args, extra = {}) {
81
88
  const result = spawnSync(cmd, args, {
82
89
  cwd: ROOT_DIR,
83
90
  stdio: "inherit",
84
- env: process.env,
91
+ env: {
92
+ ...process.env,
93
+ SILICACLAW_WORKSPACE_DIR: process.env.SILICACLAW_WORKSPACE_DIR || INVOCATION_CWD,
94
+ },
85
95
  ...extra,
86
96
  });
87
97
  if (result.error) {
@@ -138,6 +148,25 @@ function userNpmCacheDir() {
138
148
  return resolve(homedir(), ".silicaclaw", "npm-cache");
139
149
  }
140
150
 
151
+ function shimScriptText(specifier = "latest") {
152
+ return [
153
+ "#!/usr/bin/env bash",
154
+ "set -euo pipefail",
155
+ 'export npm_config_cache="${npm_config_cache:-$HOME/.silicaclaw/npm-cache}"',
156
+ `exec npx -y @silicaclaw/cli@${specifier} "$@"`,
157
+ "",
158
+ ].join("\n");
159
+ }
160
+
161
+ function ensureUserShim(specifier = "latest") {
162
+ const shimPath = userShimPath();
163
+ const binDir = userShimDir();
164
+ const npmCacheDir = userNpmCacheDir();
165
+ mkdirSync(binDir, { recursive: true });
166
+ mkdirSync(npmCacheDir, { recursive: true });
167
+ writeFileSync(shimPath, shimScriptText(specifier), { encoding: "utf8", mode: 0o755 });
168
+ }
169
+
141
170
  function ensureLineInFile(filePath, block) {
142
171
  try {
143
172
  const current = existsSync(filePath) ? readFileSync(filePath, "utf8") : "";
@@ -202,7 +231,7 @@ function shellInitTargets() {
202
231
  return targets;
203
232
  }
204
233
 
205
- function installPersistentCommand() {
234
+ function installPersistentCommand(specifier = readPackageVersion()) {
206
235
  const binDir = userShimDir();
207
236
  const shimPath = userShimPath();
208
237
  const envFile = userEnvFile();
@@ -222,17 +251,7 @@ function installPersistentCommand() {
222
251
  mkdirSync(binDir, { recursive: true });
223
252
  mkdirSync(npmCacheDir, { recursive: true });
224
253
  writeFileSync(envFile, envBlock, { encoding: "utf8", mode: 0o755 });
225
- writeFileSync(
226
- shimPath,
227
- [
228
- "#!/usr/bin/env bash",
229
- "set -euo pipefail",
230
- 'export npm_config_cache="${npm_config_cache:-$HOME/.silicaclaw/npm-cache}"',
231
- 'exec npx -y @silicaclaw/cli@beta "$@"',
232
- "",
233
- ].join("\n"),
234
- { encoding: "utf8", mode: 0o755 }
235
- );
254
+ writeFileSync(shimPath, shimScriptText(specifier || "latest"), { encoding: "utf8", mode: 0o755 });
236
255
  const rcFiles = shellInitTargets();
237
256
  const updatedFiles = [];
238
257
  const configuredFiles = [];
@@ -296,20 +315,39 @@ function canWriteGlobalPrefix() {
296
315
  }
297
316
  }
298
317
 
299
- function showUpdateGuide(current, latest, beta) {
318
+ function showUpdateGuide(current, targetVersion) {
300
319
  headline();
301
320
  console.log("");
302
- const upToDate = Boolean(beta) && current === beta;
321
+ const upToDate = Boolean(targetVersion) && current === targetVersion;
303
322
  if (upToDate) {
304
323
  kv("Status", `up to date (${current})`);
305
324
  } else {
306
- kv("Status", `beta update available (${beta || "-"})`);
325
+ kv("Status", `update available (${targetVersion || "-"})`);
307
326
  }
308
327
  console.log("");
309
328
  kv("Start", "silicaclaw start");
310
329
  kv("Status", "silicaclaw status");
311
330
  }
312
331
 
332
+ function preferredTaggedRelease(tags, current) {
333
+ const latest = tags.latest ? String(tags.latest) : "";
334
+ if (latest) return { version: latest, channel: "latest" };
335
+ return { version: current, channel: "unknown" };
336
+ }
337
+
338
+ function preferredRegistryRelease(current) {
339
+ try {
340
+ const result = runCapture("npm", ["view", "@silicaclaw/cli", "dist-tags", "--json"]);
341
+ if ((result.status ?? 1) !== 0) return { version: current, channel: "current", tags: null };
342
+ const text = String(result.stdout || "").trim();
343
+ const tags = text ? JSON.parse(text) : {};
344
+ const preferred = preferredTaggedRelease(tags, current);
345
+ return { ...preferred, tags };
346
+ } catch {
347
+ return { version: current, channel: "current", tags: null };
348
+ }
349
+ }
350
+
313
351
  function getGatewayStatus() {
314
352
  try {
315
353
  const result = runCapture("node", [resolve(ROOT_DIR, "scripts", "silicaclaw-gateway.mjs"), "status", "--json"], {
@@ -369,7 +407,8 @@ function syncCurrentPackageToAppDir(appDir) {
369
407
  return true;
370
408
  }
371
409
 
372
- function restartGatewayIfRunning() {
410
+ function restartGatewayIfRunning(options = {}) {
411
+ const preferredSpecifier = String(options.preferredSpecifier || "").trim();
373
412
  const status = getGatewayStatus();
374
413
  const appDir = status?.app_dir ? String(status.app_dir) : "";
375
414
  syncCurrentPackageToAppDir(appDir);
@@ -381,24 +420,37 @@ function restartGatewayIfRunning() {
381
420
  }
382
421
 
383
422
  const mode = String(status?.mode || "local");
384
- const args = [resolve(ROOT_DIR, "scripts", "silicaclaw-gateway.mjs"), "restart", `--mode=${mode}`];
423
+ const gatewayArgs = ["gateway", "restart", `--mode=${mode}`];
385
424
  if (mode === "global-preview" && status?.signaling?.url) {
386
- args.push(`--signaling-url=${status.signaling.url}`);
425
+ gatewayArgs.push(`--signaling-url=${status.signaling.url}`);
387
426
  }
388
427
  if (mode === "global-preview" && status?.signaling?.room) {
389
- args.push(`--room=${status.signaling.room}`);
428
+ gatewayArgs.push(`--room=${status.signaling.room}`);
390
429
  }
391
430
 
392
431
  console.log("");
393
432
  console.log(paint("Refreshing services", COLOR.bold));
394
- runInherit("node", args, { cwd: process.cwd() });
433
+ const shimPath = userShimPath();
434
+ const canUseUpdatedShim =
435
+ preferredSpecifier &&
436
+ existsSync(shimPath) &&
437
+ resolve(shimPath) !== process.argv[1];
438
+
439
+ if (canUseUpdatedShim) {
440
+ runInherit(shimPath, gatewayArgs, { cwd: process.cwd() });
441
+ return;
442
+ }
443
+
444
+ runInherit("node", [resolve(ROOT_DIR, "scripts", "silicaclaw-gateway.mjs"), ...gatewayArgs.slice(1)], {
445
+ cwd: process.cwd(),
446
+ });
395
447
  }
396
448
 
397
- function tryGlobalUpgrade(beta) {
449
+ function tryGlobalUpgrade(version) {
398
450
  const writableGlobal = canWriteGlobalPrefix();
399
451
  if (!writableGlobal) return false;
400
- kv("Upgrade", `installing @silicaclaw/cli@${beta} globally`);
401
- const exactResult = runCapture("npm", ["i", "-g", `@silicaclaw/cli@${beta}`]);
452
+ kv("Upgrade", `installing @silicaclaw/cli@${version} globally`);
453
+ const exactResult = runCapture("npm", ["i", "-g", `@silicaclaw/cli@${version}`]);
402
454
  if ((exactResult.status ?? 1) === 0) {
403
455
  if (exactResult.stdout) process.stdout.write(exactResult.stdout);
404
456
  if (exactResult.stderr) process.stderr.write(exactResult.stderr);
@@ -407,8 +459,8 @@ function tryGlobalUpgrade(beta) {
407
459
 
408
460
  const detail = compactOutput(`${exactResult.stdout || ""}\n${exactResult.stderr || ""}`);
409
461
  if (detail.includes("ETARGET") || detail.includes("No matching version found")) {
410
- kv("Fallback", "registry metadata is still settling, retrying via @beta tag");
411
- const fallbackResult = runInherit("npm", ["i", "-g", "@silicaclaw/cli@beta"]);
462
+ kv("Fallback", `registry metadata is still settling, retrying via exact version ${version}`);
463
+ const fallbackResult = runInherit("npm", ["i", "-g", `@silicaclaw/cli@${version}`]);
412
464
  return (fallbackResult.status ?? 1) === 0;
413
465
  }
414
466
 
@@ -422,35 +474,35 @@ function tryGlobalUpgrade(beta) {
422
474
  function update() {
423
475
  const current = readPackageVersion();
424
476
  try {
425
- const result = runCapture("npm", ["view", "@silicaclaw/cli", "dist-tags", "--json"]);
426
- if ((result.status ?? 1) !== 0) {
477
+ const registry = preferredRegistryRelease(current);
478
+ if (!registry.tags) {
427
479
  headline();
428
480
  console.log("");
429
481
  console.error(paint("Update check failed", COLOR.bold, COLOR.yellow));
430
- if (result.stderr) console.error(result.stderr.trim());
431
482
  console.log("");
432
483
  kv("Try", "npm view @silicaclaw/cli dist-tags --json");
433
- process.exit(result.status ?? 1);
484
+ process.exit(1);
434
485
  }
435
- const text = String(result.stdout || "").trim();
436
- const tags = text ? JSON.parse(text) : {};
437
- const latest = tags.latest ? String(tags.latest) : "";
438
- const beta = tags.beta ? String(tags.beta) : "";
439
- showUpdateGuide(current, latest, beta);
440
- const hasNewBeta = Boolean(beta) && beta !== current;
486
+ const targetVersion = registry.version;
487
+ ensureUserShim(targetVersion || "latest");
488
+ showUpdateGuide(current, targetVersion);
489
+ const hasNewTarget = Boolean(targetVersion) && targetVersion !== current;
441
490
  const npxRuntime = isNpxRun();
442
491
 
443
- if (hasNewBeta) {
492
+ if (hasNewTarget) {
444
493
  if (npxRuntime) {
445
- kv("Update", `next run will use ${beta}`);
446
- } else if (tryGlobalUpgrade(beta)) {
447
- kv("Update", `installed ${beta}`);
494
+ kv("Update", `next run will use ${targetVersion}`);
448
495
  } else {
449
- kv("Update", `install ${beta} manually if needed`);
496
+ kv("Update", `command now points to ${targetVersion}`);
497
+ if (tryGlobalUpgrade(targetVersion)) {
498
+ kv("Global", `installed ${targetVersion}`);
499
+ } else {
500
+ kv("Global", `install ${targetVersion} manually if needed`);
501
+ }
450
502
  }
451
503
  }
452
504
 
453
- restartGatewayIfRunning();
505
+ restartGatewayIfRunning({ preferredSpecifier: hasNewTarget ? targetVersion : "" });
454
506
  process.exit(0);
455
507
  } catch (error) {
456
508
  headline();
@@ -494,7 +546,8 @@ function help() {
494
546
  headline();
495
547
  console.log("");
496
548
  section("Commands");
497
- kv("Install", "npx -y @silicaclaw/cli@beta install");
549
+ kv("First Run", "npx -y @silicaclaw/cli@latest onboard");
550
+ kv("Install", "npx -y @silicaclaw/cli@latest install");
498
551
  kv("Start", "silicaclaw start");
499
552
  kv("Status", "silicaclaw status");
500
553
  kv("Stop", "silicaclaw stop");
@@ -509,6 +562,12 @@ function help() {
509
562
  kv("Logs", "silicaclaw logs local-console");
510
563
  kv("Doctor", "silicaclaw doctor");
511
564
  kv("Help", "silicaclaw help");
565
+ console.log("");
566
+ section("Meaning");
567
+ kv("onboard", "first-time setup wizard");
568
+ kv("connect", "quick network setup wizard");
569
+ kv("install", "install persistent silicaclaw command only");
570
+ kv("channel", "@latest is the default release channel");
512
571
  }
513
572
 
514
573
  const cmd = String(process.argv[2] || "help").trim().toLowerCase();
@@ -530,7 +589,10 @@ switch (cmd) {
530
589
  update();
531
590
  break;
532
591
  case "install":
533
- installPersistentCommand();
592
+ {
593
+ const preferred = preferredRegistryRelease(readPackageVersion());
594
+ installPersistentCommand(preferred.version || readPackageVersion());
595
+ }
534
596
  break;
535
597
  case "gateway":
536
598
  run("node", [resolve(ROOT_DIR, "scripts", "silicaclaw-gateway.mjs"), ...process.argv.slice(3)], {