wao 0.41.3 → 0.41.5

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 (719) hide show
  1. package/.babelrc-cjs +5 -0
  2. package/.babelrc-esm +5 -0
  3. package/.gitmodules +4 -0
  4. package/.prettierrc +6 -0
  5. package/README.md +90 -0
  6. package/app/.eslintrc.json +3 -0
  7. package/app/.mocharc.cjs +6 -0
  8. package/app/arweave.mjs +87 -0
  9. package/app/components/Footer.js +76 -0
  10. package/app/components/Global.js +1128 -0
  11. package/app/components/Header.js +306 -0
  12. package/app/components/Left.js +28 -0
  13. package/app/components/Logo.js +34 -0
  14. package/app/components/Middle.js +37 -0
  15. package/app/components/Sidebar.js +93 -0
  16. package/app/components/Tags.js +42 -0
  17. package/app/components/editor/Editor.js +322 -0
  18. package/app/components/editor/FilePath.js +42 -0
  19. package/app/components/editor/MonacoEditor.js +44 -0
  20. package/app/components/left/LeftMessages.js +85 -0
  21. package/app/components/left/LeftModules.js +86 -0
  22. package/app/components/left/LeftNetworks.js +438 -0
  23. package/app/components/left/LeftProcesses.js +98 -0
  24. package/app/components/left/LeftProjects.js +397 -0
  25. package/app/components/left/LeftTests.js +189 -0
  26. package/app/components/middle/MiddleBlocks.js +79 -0
  27. package/app/components/middle/MiddleEntity.js +16 -0
  28. package/app/components/middle/MiddleEntityAccount.js +264 -0
  29. package/app/components/middle/MiddleEntityAssignment.js +104 -0
  30. package/app/components/middle/MiddleEntityBlock.js +148 -0
  31. package/app/components/middle/MiddleEntityMessage.js +430 -0
  32. package/app/components/middle/MiddleEntityModule.js +183 -0
  33. package/app/components/middle/MiddleEntityProcess.js +323 -0
  34. package/app/components/middle/MiddleEntityTx.js +211 -0
  35. package/app/components/middle/MiddleMessages.js +87 -0
  36. package/app/components/middle/MiddleModules.js +89 -0
  37. package/app/components/middle/MiddleNetworks.js +516 -0
  38. package/app/components/middle/MiddleProcesses.js +87 -0
  39. package/app/components/middle/MiddleTests.js +134 -0
  40. package/app/components/modals/CreateFileModal.js +115 -0
  41. package/app/components/modals/CreateFolderModal.js +83 -0
  42. package/app/components/modals/CreateProjectModal.js +63 -0
  43. package/app/components/modals/FSModal.js +141 -0
  44. package/app/components/modals/ImportModal.js +105 -0
  45. package/app/components/modals/LaunchNetworkModal.js +95 -0
  46. package/app/components/modals/Modal.js +38 -0
  47. package/app/components/modals/ProxyModal.js +122 -0
  48. package/app/components/modals/RenameFileModal.js +95 -0
  49. package/app/components/styles/EditorScrollbarStyle.js +29 -0
  50. package/app/components/styles/EntityScrollbarStyle.js +29 -0
  51. package/app/components/styles/GlobalStyle.js +102 -0
  52. package/app/components/styles/XtermStyle.js +37 -0
  53. package/app/components/terminal/Terminal.js +132 -0
  54. package/app/components/terminal/Xterm.js +160 -0
  55. package/app/components/ui/avatar.jsx +49 -0
  56. package/app/components/ui/checkbox.jsx +17 -0
  57. package/app/components/ui/close-button.jsx +20 -0
  58. package/app/components/ui/color-mode.jsx +61 -0
  59. package/app/components/ui/dialog.jsx +54 -0
  60. package/app/components/ui/drawer.jsx +44 -0
  61. package/app/components/ui/field.jsx +22 -0
  62. package/app/components/ui/input-group.jsx +39 -0
  63. package/app/components/ui/popover.jsx +49 -0
  64. package/app/components/ui/provider.jsx +12 -0
  65. package/app/components/ui/radio.jsx +17 -0
  66. package/app/components/ui/slider.jsx +107 -0
  67. package/app/components/ui/toaster.jsx +69 -0
  68. package/app/components/ui/tooltip.jsx +35 -0
  69. package/app/index.js +10 -0
  70. package/app/jsconfig.json +7 -0
  71. package/app/lib/GithubCSS.js +1218 -0
  72. package/app/lib/addon-fit.js +72 -0
  73. package/app/lib/data.js +31 -0
  74. package/app/lib/github-markdown.css +1169 -0
  75. package/app/lib/global.js +1 -0
  76. package/app/lib/guide.js +82 -0
  77. package/app/lib/hub.js +109 -0
  78. package/app/lib/scripts.js +47 -0
  79. package/app/lib/store.js +34 -0
  80. package/app/lib/use.js +64 -0
  81. package/app/lib/utils.js +387 -0
  82. package/app/lib/webrtc.js +217 -0
  83. package/app/next.config.js +25 -0
  84. package/app/package.json +62 -0
  85. package/app/pages/404.js +9 -0
  86. package/app/pages/_app.js +10 -0
  87. package/app/pages/_document.js +14 -0
  88. package/app/pages/index.js +121 -0
  89. package/app/playwright.config.mjs +41 -0
  90. package/app/proxy.mjs +21 -0
  91. package/app/public/assets/cover.png +0 -0
  92. package/app/public/blueprints/apm.lua +91 -0
  93. package/app/public/blueprints/arena.lua +345 -0
  94. package/app/public/blueprints/arns.lua +318 -0
  95. package/app/public/blueprints/chat.lua +210 -0
  96. package/app/public/blueprints/chatroom.lua +56 -0
  97. package/app/public/blueprints/patch-legacy-reply.lua +13 -0
  98. package/app/public/blueprints/staking.lua +93 -0
  99. package/app/public/blueprints/token.lua +298 -0
  100. package/app/public/blueprints/voting.lua +45 -0
  101. package/app/public/favicon.ico +0 -0
  102. package/app/public/logo.png +0 -0
  103. package/cli-esm.js +55 -0
  104. package/cli.js +54 -0
  105. package/devnet/app/api.js +129 -0
  106. package/devnet/app/components/layout.js +89 -0
  107. package/devnet/app/components/pagination.js +144 -0
  108. package/devnet/app/components/search.js +159 -0
  109. package/devnet/app/components/table.js +124 -0
  110. package/devnet/app/components/tags.js +89 -0
  111. package/devnet/app/index.html +14 -0
  112. package/devnet/app/main.js +215 -0
  113. package/devnet/app/router.js +59 -0
  114. package/devnet/app/state.js +19 -0
  115. package/devnet/app/style.css +1606 -0
  116. package/devnet/app/utils.js +77 -0
  117. package/devnet/app/views/blocks.js +75 -0
  118. package/devnet/app/views/dashboard.js +127 -0
  119. package/devnet/app/views/entity.js +1473 -0
  120. package/devnet/app/views/messages.js +90 -0
  121. package/devnet/app/views/modules.js +165 -0
  122. package/devnet/app/views/processes.js +90 -0
  123. package/devnet/app/views/schedulers.js +90 -0
  124. package/devnet/app/views/transactions.js +88 -0
  125. package/devnet/migrations/0001_initial.sql +51 -0
  126. package/devnet/package.json +26 -0
  127. package/devnet/playwright.config.js +7 -0
  128. package/devnet/src/cu-worker.js +166 -0
  129. package/devnet/src/index.js +309 -0
  130. package/devnet/vite.config.js +17 -0
  131. package/devnet/vitest.config.js +10 -0
  132. package/devnet/wrangler-cu.toml +32 -0
  133. package/devnet/wrangler.toml +38 -0
  134. package/dhfs-tutorial-app/package.json +15 -0
  135. package/dist/esm/workspace/dashboard/public/favicon.png +0 -0
  136. package/dist/esm/workspace/src/counter.lua +14 -0
  137. package/dist/package.json +82 -0
  138. package/hb.sh +18 -0
  139. package/hbsig/.babelrc-cjs +5 -0
  140. package/hbsig/.babelrc-esm +5 -0
  141. package/hbsig/README.md +1 -0
  142. package/hbsig/dist/cjs/bin_to_str.js +44 -0
  143. package/hbsig/dist/cjs/collect-body-keys.js +470 -0
  144. package/hbsig/dist/cjs/commit.js +330 -0
  145. package/hbsig/dist/cjs/encode-array-item.js +110 -0
  146. package/hbsig/dist/cjs/encode-utils.js +242 -0
  147. package/hbsig/dist/cjs/encode.js +1365 -0
  148. package/hbsig/dist/cjs/erl_json.js +326 -0
  149. package/hbsig/dist/cjs/erl_str.js +1042 -0
  150. package/hbsig/dist/cjs/flat.js +279 -0
  151. package/hbsig/dist/cjs/http-message-signatures/httpbis.js +489 -0
  152. package/hbsig/dist/cjs/http-message-signatures/index.js +25 -0
  153. package/hbsig/dist/cjs/http-message-signatures/structured-header.js +129 -0
  154. package/hbsig/dist/cjs/httpsig.js +861 -0
  155. package/hbsig/dist/cjs/id.js +470 -0
  156. package/hbsig/dist/cjs/index.js +174 -0
  157. package/hbsig/dist/cjs/nocrypto.js +51 -0
  158. package/hbsig/dist/cjs/parser.js +201 -0
  159. package/hbsig/dist/cjs/send-utils.js +1231 -0
  160. package/hbsig/dist/cjs/send.js +211 -0
  161. package/hbsig/dist/cjs/signer-utils.js +494 -0
  162. package/hbsig/dist/cjs/signer.js +436 -0
  163. package/hbsig/dist/cjs/structured.js +515 -0
  164. package/hbsig/dist/cjs/test.js +12 -0
  165. package/hbsig/dist/cjs/utils.js +44 -0
  166. package/hbsig/dist/esm/bin_to_str.js +46 -0
  167. package/hbsig/dist/esm/collect-body-keys.js +436 -0
  168. package/hbsig/dist/esm/commit.js +219 -0
  169. package/hbsig/dist/esm/encode-array-item.js +112 -0
  170. package/hbsig/dist/esm/encode-utils.js +191 -0
  171. package/hbsig/dist/esm/encode.js +1256 -0
  172. package/hbsig/dist/esm/erl_json.js +292 -0
  173. package/hbsig/dist/esm/erl_str.js +1144 -0
  174. package/hbsig/dist/esm/flat.js +250 -0
  175. package/hbsig/dist/esm/http-message-signatures/httpbis.js +438 -0
  176. package/hbsig/dist/esm/http-message-signatures/index.js +4 -0
  177. package/hbsig/dist/esm/http-message-signatures/structured-header.js +105 -0
  178. package/hbsig/dist/esm/httpsig.js +866 -0
  179. package/hbsig/dist/esm/id.js +459 -0
  180. package/hbsig/dist/esm/index.js +13 -0
  181. package/hbsig/dist/esm/nocrypto.js +4 -0
  182. package/hbsig/dist/esm/package.json +3 -0
  183. package/hbsig/dist/esm/parser.js +171 -0
  184. package/hbsig/dist/esm/send-utils.js +1132 -0
  185. package/hbsig/dist/esm/send.js +142 -0
  186. package/hbsig/dist/esm/signer-utils.js +375 -0
  187. package/hbsig/dist/esm/signer.js +312 -0
  188. package/hbsig/dist/esm/structured.js +496 -0
  189. package/hbsig/dist/esm/test.js +2 -0
  190. package/hbsig/dist/esm/utils.js +29 -0
  191. package/hbsig/dist/package.json +39 -0
  192. package/hbsig/make.js +36 -0
  193. package/hbsig/package.json +39 -0
  194. package/hbsig/src/bin_to_str.js +46 -0
  195. package/hbsig/src/collect-body-keys.js +436 -0
  196. package/hbsig/src/commit.js +219 -0
  197. package/hbsig/src/encode-array-item.js +112 -0
  198. package/hbsig/src/encode-utils.js +191 -0
  199. package/hbsig/src/encode.js +1256 -0
  200. package/hbsig/src/erl_json.js +292 -0
  201. package/hbsig/src/erl_str.js +1144 -0
  202. package/hbsig/src/flat.js +250 -0
  203. package/hbsig/src/http-message-signatures/httpbis.js +438 -0
  204. package/hbsig/src/http-message-signatures/index.js +4 -0
  205. package/hbsig/src/http-message-signatures/structured-header.js +105 -0
  206. package/hbsig/src/httpsig.js +866 -0
  207. package/hbsig/src/id.js +459 -0
  208. package/hbsig/src/index.js +13 -0
  209. package/hbsig/src/nocrypto.js +4 -0
  210. package/hbsig/src/parser.js +171 -0
  211. package/hbsig/src/send-utils.js +1132 -0
  212. package/hbsig/src/send.js +142 -0
  213. package/hbsig/src/signer-utils.js +375 -0
  214. package/hbsig/src/signer.js +312 -0
  215. package/hbsig/src/structured.js +496 -0
  216. package/hbsig/src/test.js +2 -0
  217. package/hbsig/src/utils.js +29 -0
  218. package/lp/index.html +25 -0
  219. package/lp/package.json +19 -0
  220. package/lp/public/cover.png +0 -0
  221. package/lp/public/favicon.ico +0 -0
  222. package/lp/public/favicon.png +0 -0
  223. package/lp/public/images/book.jpg +0 -0
  224. package/lp/public/images/dashboard.png +0 -0
  225. package/lp/public/images/devnet.png +0 -0
  226. package/lp/public/images/hero-bg.png +0 -0
  227. package/lp/public/images/hyperadd.png +0 -0
  228. package/lp/public/images/message-flow.png +0 -0
  229. package/lp/public/images/mobile.png +0 -0
  230. package/lp/public/images/og-cover.png +0 -0
  231. package/lp/public/images/scan.png +0 -0
  232. package/lp/public/images/wao-hub.png +0 -0
  233. package/lp/public/images/wao-web.png +0 -0
  234. package/lp/public/logo.png +0 -0
  235. package/lp/src/App.jsx +29 -0
  236. package/lp/src/components/CodeBlock.jsx +37 -0
  237. package/lp/src/components/CodeBlock.module.css +89 -0
  238. package/lp/src/components/Footer.jsx +22 -0
  239. package/lp/src/components/Footer.module.css +60 -0
  240. package/lp/src/components/Nav.jsx +80 -0
  241. package/lp/src/components/Nav.module.css +177 -0
  242. package/lp/src/components/SectionWrapper.jsx +15 -0
  243. package/lp/src/hooks/useReveal.js +25 -0
  244. package/lp/src/hooks/useScrolled.js +14 -0
  245. package/lp/src/main.jsx +10 -0
  246. package/lp/src/sections/Book.jsx +60 -0
  247. package/lp/src/sections/Book.module.css +204 -0
  248. package/lp/src/sections/Browser.jsx +46 -0
  249. package/lp/src/sections/Browser.module.css +67 -0
  250. package/lp/src/sections/Devnet.jsx +55 -0
  251. package/lp/src/sections/Devnet.module.css +136 -0
  252. package/lp/src/sections/GetStarted.jsx +51 -0
  253. package/lp/src/sections/GetStarted.module.css +128 -0
  254. package/lp/src/sections/Hero.jsx +67 -0
  255. package/lp/src/sections/Hero.module.css +202 -0
  256. package/lp/src/sections/HyperADD.jsx +46 -0
  257. package/lp/src/sections/HyperADD.module.css +113 -0
  258. package/lp/src/sections/SDK.jsx +90 -0
  259. package/lp/src/sections/SDK.module.css +122 -0
  260. package/lp/src/sections/Testing.jsx +47 -0
  261. package/lp/src/sections/Testing.module.css +124 -0
  262. package/lp/src/sections/Vision.jsx +93 -0
  263. package/lp/src/sections/Vision.module.css +147 -0
  264. package/lp/src/styles/globals.css +285 -0
  265. package/lp/src/utils/scrollTo.js +4 -0
  266. package/lp/vite.config.js +7 -0
  267. package/make.js +39 -0
  268. package/package.json +17 -12
  269. package/patches/@permaweb+ao-loader+0.0.44.patch +64 -0
  270. package/plan.md +435 -0
  271. package/rebar.lock +1 -0
  272. package/src/accounts-web.js +128 -0
  273. package/src/accounts.js +124 -0
  274. package/src/adaptor-base.js +622 -0
  275. package/src/adaptor-cf.js +11 -0
  276. package/src/adaptor-web.js +11 -0
  277. package/src/adaptor.js +10 -0
  278. package/src/ao-loader.js +30660 -0
  279. package/src/ao.js +1173 -0
  280. package/src/aoconnect-base.js +1098 -0
  281. package/src/aoconnect-cf.js +9 -0
  282. package/src/aoconnect-web.js +8 -0
  283. package/src/aoconnect.js +8 -0
  284. package/src/aos_wamr.js +1 -0
  285. package/src/ar-remote.js +87 -0
  286. package/src/ar.js +276 -0
  287. package/src/armem-base.js +529 -0
  288. package/src/armem-cf.js +67 -0
  289. package/src/armem-web.js +19 -0
  290. package/src/armem.js +26 -0
  291. package/src/bao.js +141 -0
  292. package/src/bar.js +366 -0
  293. package/src/build.js +7 -0
  294. package/src/bundler.js +119 -0
  295. package/src/car.js +10 -0
  296. package/src/cf-env.js +29 -0
  297. package/src/cf.js +11 -0
  298. package/src/cli.js +561 -0
  299. package/src/compress.js +112 -0
  300. package/src/create.js +415 -0
  301. package/src/devs.js +86 -0
  302. package/src/dirname.js +1 -0
  303. package/src/dodb.js +26 -0
  304. package/src/erl_json.js +289 -0
  305. package/src/erl_str.js +1139 -0
  306. package/src/gql.js +229 -0
  307. package/src/hb.js +967 -0
  308. package/src/helpers.js +203 -0
  309. package/src/http.js +619 -0
  310. package/src/hub/bundler.js +123 -0
  311. package/src/hub/cu.js +74 -0
  312. package/src/hub/fs.js +157 -0
  313. package/src/hub/index.js +85 -0
  314. package/src/hub/utils.js +64 -0
  315. package/src/hub/ws-proxy.js +67 -0
  316. package/src/hyper-aos.js +1 -0
  317. package/src/hyperbeam-server.js +21 -0
  318. package/src/hyperbeam.js +585 -0
  319. package/src/index.js +5 -0
  320. package/src/keygen.js +47 -0
  321. package/src/lfdb.js +67 -0
  322. package/src/lua/aos.wasm +0 -0
  323. package/src/lua/aos2_0_1.js +1 -0
  324. package/src/lua/aos2_0_1.wasm +0 -0
  325. package/src/lua/aos2_0_3.js +1 -0
  326. package/src/lua/aos2_0_3.wasm +0 -0
  327. package/src/lua/aos2_0_4_32.js +1 -0
  328. package/src/lua/aos2_0_4_32.wasm +0 -0
  329. package/src/lua/aos2_0_6.wasm +0 -0
  330. package/src/lua/apm.lua +61 -0
  331. package/src/lua/llama.wasm +0 -0
  332. package/src/lua/process.wasm +0 -0
  333. package/src/lua/sqlite.js +1 -0
  334. package/src/lua/sqlite.wasm +0 -0
  335. package/src/lua/weavedb_mock.lua +44 -0
  336. package/src/lua/weavedrive.lua +53 -0
  337. package/src/run.js +25 -0
  338. package/src/server.js +173 -0
  339. package/src/storage-multi.js +183 -0
  340. package/src/tao.js +12 -0
  341. package/src/tar.js +10 -0
  342. package/src/test.js +42 -0
  343. package/src/tgql-d1.js +407 -0
  344. package/src/tgql.js +310 -0
  345. package/src/toerl.js +162 -0
  346. package/src/utils.js +777 -0
  347. package/src/wao.js +29 -0
  348. package/src/waosm/README.md +81 -0
  349. package/src/waosm/waosm.d.ts +40 -0
  350. package/src/waosm/waosm.js +240 -0
  351. package/src/waosm/waosm_bg.wasm +0 -0
  352. package/src/waosm/waosm_bg.wasm.d.ts +8 -0
  353. package/src/waosm-node/README.md +81 -0
  354. package/src/waosm-node/waosm.d.ts +8 -0
  355. package/src/waosm-node/waosm.js +4 -0
  356. package/src/waosm-node/waosm_bg.js +147 -0
  357. package/src/waosm-node/waosm_bg.wasm +0 -0
  358. package/src/waosm-node/waosm_bg.wasm.d.ts +8 -0
  359. package/src/waosm-node/waosm_bg.wasm.js +14 -0
  360. package/src/waosm-node.js +9 -0
  361. package/src/war.js +10 -0
  362. package/src/weavedrive.js +376 -0
  363. package/src/web.js +11 -0
  364. package/src/workspace/.mcp.json +8 -0
  365. package/src/workspace/CLAUDE.md +258 -0
  366. package/src/workspace/README.md +85 -0
  367. package/src/workspace/dashboard/index.html +163 -0
  368. package/src/workspace/dashboard/package.json +18 -0
  369. package/src/workspace/dashboard/public/favicon.ico +0 -0
  370. package/src/workspace/dashboard/public/favicon.png +0 -0
  371. package/src/workspace/dashboard/server.js +224 -0
  372. package/src/workspace/dashboard/src/App.jsx +2350 -0
  373. package/{cjs/workspace/frontend → src/workspace/dashboard}/vite.config.js +6 -0
  374. package/src/workspace/package.json +18 -0
  375. package/src/workspace/src/counter.lua +14 -0
  376. package/tsconfig.json +18 -0
  377. package/types/index.d.ts +329 -0
  378. package/waollama/.eslintrc.json +3 -0
  379. package/waollama/README.md +19 -0
  380. package/waollama/arweave.mjs +87 -0
  381. package/waollama/components/ui/avatar.jsx +49 -0
  382. package/waollama/components/ui/checkbox.jsx +17 -0
  383. package/waollama/components/ui/close-button.jsx +20 -0
  384. package/waollama/components/ui/color-mode.jsx +61 -0
  385. package/waollama/components/ui/dialog.jsx +54 -0
  386. package/waollama/components/ui/drawer.jsx +44 -0
  387. package/waollama/components/ui/field.jsx +22 -0
  388. package/waollama/components/ui/input-group.jsx +39 -0
  389. package/waollama/components/ui/popover.jsx +49 -0
  390. package/waollama/components/ui/provider.jsx +12 -0
  391. package/waollama/components/ui/radio.jsx +17 -0
  392. package/waollama/components/ui/slider.jsx +107 -0
  393. package/waollama/components/ui/tooltip.jsx +35 -0
  394. package/waollama/index.js +10 -0
  395. package/waollama/jsconfig.json +7 -0
  396. package/waollama/lib/ao-loader.js +30654 -0
  397. package/waollama/lib/client.js +1 -0
  398. package/waollama/lib/wasm.js +1 -0
  399. package/waollama/next.config.js +25 -0
  400. package/waollama/package.json +43 -0
  401. package/waollama/pages/404.js +9 -0
  402. package/waollama/pages/_app.js +9 -0
  403. package/waollama/pages/_document.js +14 -0
  404. package/waollama/pages/index.js +212 -0
  405. package/waollama/playwright.config.js +31 -0
  406. package/waollama/proxy.mjs +21 -0
  407. package/waollama/public/favicon.ico +0 -0
  408. package/waollama/public/human.png +0 -0
  409. package/waollama/public/llama.png +0 -0
  410. package/waosm/Cargo.toml +11 -0
  411. package/waosm/README.md +81 -0
  412. package/waosm/compress.js +112 -0
  413. package/waosm/make.js +33 -0
  414. package/waosm/package.json +10 -0
  415. package/waosm/src/lib.rs +180 -0
  416. package/waosm/test.js +16 -0
  417. package/cjs/workspace/.claude/agents/builder.md +0 -99
  418. package/cjs/workspace/.claude/agents/device-builder.md +0 -86
  419. package/cjs/workspace/.claude/agents/tester.md +0 -90
  420. package/cjs/workspace/.claude/mcp/dashboard/server.js +0 -128
  421. package/cjs/workspace/.claude/rules/deploy.md +0 -45
  422. package/cjs/workspace/.claude/rules/frontend.md +0 -69
  423. package/cjs/workspace/.claude/rules/hyperbeam.md +0 -104
  424. package/cjs/workspace/.claude/rules/lua.md +0 -108
  425. package/cjs/workspace/.claude/rules/testing.md +0 -257
  426. package/cjs/workspace/.claude/settings.json +0 -109
  427. package/cjs/workspace/.claude/skills/build/SKILL.md +0 -214
  428. package/cjs/workspace/.claude/skills/build-aos/SKILL.md +0 -129
  429. package/cjs/workspace/.claude/skills/build-device/SKILL.md +0 -192
  430. package/cjs/workspace/.claude/skills/build-frontend/SKILL.md +0 -134
  431. package/cjs/workspace/.claude/skills/build-module/SKILL.md +0 -281
  432. package/cjs/workspace/.claude/skills/create-aos/SKILL.md +0 -63
  433. package/cjs/workspace/.claude/skills/create-device/SKILL.md +0 -87
  434. package/cjs/workspace/.claude/skills/create-module/SKILL.md +0 -162
  435. package/cjs/workspace/.claude/skills/debug/SKILL.md +0 -57
  436. package/cjs/workspace/.claude/skills/deploy/SKILL.md +0 -85
  437. package/cjs/workspace/.claude/skills/dev/SKILL.md +0 -32
  438. package/cjs/workspace/.claude/skills/plan/SKILL.md +0 -176
  439. package/cjs/workspace/.claude/skills/readme/SKILL.md +0 -186
  440. package/cjs/workspace/.claude/skills/report/SKILL.md +0 -49
  441. package/cjs/workspace/.claude/skills/team/SKILL.md +0 -101
  442. package/cjs/workspace/.claude/skills/test/SKILL.md +0 -56
  443. package/cjs/workspace/.claude/skills/test-device/SKILL.md +0 -114
  444. package/cjs/workspace/.claude/skills/test-e2e/SKILL.md +0 -103
  445. package/cjs/workspace/.claude/skills/test-hb/SKILL.md +0 -76
  446. package/cjs/workspace/.claude/skills/validate/SKILL.md +0 -96
  447. package/cjs/workspace/.claude/skills/validate/scripts/check-lua.sh +0 -41
  448. package/cjs/workspace/docs/aos-lua.md +0 -428
  449. package/cjs/workspace/docs/debug.md +0 -230
  450. package/cjs/workspace/docs/hyperbeam-dev.md +0 -606
  451. package/cjs/workspace/docs/hyperbeam-devices.md +0 -618
  452. package/cjs/workspace/docs/wao-sdk.md +0 -807
  453. package/cjs/workspace/frontend/e2e/.gitkeep +0 -0
  454. package/cjs/workspace/frontend/index.html +0 -12
  455. package/cjs/workspace/frontend/package.json +0 -24
  456. package/cjs/workspace/frontend/playwright.config.js +0 -10
  457. package/cjs/workspace/frontend/src/App.jsx +0 -24
  458. package/cjs/workspace/frontend/test/.gitkeep +0 -0
  459. package/cjs/workspace/frontend/vitest.config.js +0 -10
  460. package/cjs/workspace/scripts/deploy.js +0 -140
  461. package/cjs/workspace/scripts/keygen.js +0 -52
  462. package/cjs/workspace/test/aos.test.js +0 -98
  463. package/cjs/workspace/test/hyperbeam.test.js +0 -80
  464. package/esm/compiler/native +0 -0
  465. package/esm/workspace/.claude/agents/builder.md +0 -99
  466. package/esm/workspace/.claude/agents/device-builder.md +0 -86
  467. package/esm/workspace/.claude/agents/tester.md +0 -90
  468. package/esm/workspace/.claude/mcp/dashboard/server.js +0 -128
  469. package/esm/workspace/.claude/rules/deploy.md +0 -45
  470. package/esm/workspace/.claude/rules/frontend.md +0 -69
  471. package/esm/workspace/.claude/rules/hyperbeam.md +0 -104
  472. package/esm/workspace/.claude/rules/lua.md +0 -108
  473. package/esm/workspace/.claude/rules/testing.md +0 -257
  474. package/esm/workspace/.claude/settings.json +0 -109
  475. package/esm/workspace/.claude/skills/build/SKILL.md +0 -214
  476. package/esm/workspace/.claude/skills/build-aos/SKILL.md +0 -129
  477. package/esm/workspace/.claude/skills/build-device/SKILL.md +0 -192
  478. package/esm/workspace/.claude/skills/build-frontend/SKILL.md +0 -134
  479. package/esm/workspace/.claude/skills/build-module/SKILL.md +0 -281
  480. package/esm/workspace/.claude/skills/create-aos/SKILL.md +0 -63
  481. package/esm/workspace/.claude/skills/create-device/SKILL.md +0 -87
  482. package/esm/workspace/.claude/skills/create-module/SKILL.md +0 -162
  483. package/esm/workspace/.claude/skills/debug/SKILL.md +0 -57
  484. package/esm/workspace/.claude/skills/deploy/SKILL.md +0 -85
  485. package/esm/workspace/.claude/skills/dev/SKILL.md +0 -32
  486. package/esm/workspace/.claude/skills/plan/SKILL.md +0 -176
  487. package/esm/workspace/.claude/skills/readme/SKILL.md +0 -186
  488. package/esm/workspace/.claude/skills/report/SKILL.md +0 -49
  489. package/esm/workspace/.claude/skills/team/SKILL.md +0 -101
  490. package/esm/workspace/.claude/skills/test/SKILL.md +0 -56
  491. package/esm/workspace/.claude/skills/test-device/SKILL.md +0 -114
  492. package/esm/workspace/.claude/skills/test-e2e/SKILL.md +0 -103
  493. package/esm/workspace/.claude/skills/test-hb/SKILL.md +0 -76
  494. package/esm/workspace/.claude/skills/validate/SKILL.md +0 -96
  495. package/esm/workspace/.claude/skills/validate/scripts/check-lua.sh +0 -41
  496. package/esm/workspace/docs/aos-lua.md +0 -428
  497. package/esm/workspace/docs/debug.md +0 -230
  498. package/esm/workspace/docs/hyperbeam-dev.md +0 -606
  499. package/esm/workspace/docs/hyperbeam-devices.md +0 -618
  500. package/esm/workspace/docs/wao-sdk.md +0 -807
  501. package/esm/workspace/frontend/e2e/.gitkeep +0 -0
  502. package/esm/workspace/frontend/index.html +0 -12
  503. package/esm/workspace/frontend/package.json +0 -24
  504. package/esm/workspace/frontend/playwright.config.js +0 -10
  505. package/esm/workspace/frontend/src/App.jsx +0 -24
  506. package/esm/workspace/frontend/src/main.jsx +0 -9
  507. package/esm/workspace/frontend/test/.gitkeep +0 -0
  508. package/esm/workspace/frontend/vite.config.js +0 -6
  509. package/esm/workspace/frontend/vitest.config.js +0 -10
  510. package/esm/workspace/scripts/deploy.js +0 -140
  511. package/esm/workspace/scripts/keygen.js +0 -52
  512. package/esm/workspace/test/aos.test.js +0 -98
  513. package/esm/workspace/test/hyperbeam.test.js +0 -80
  514. /package/{cjs/workspace/dashboard/public → devnet/app}/favicon.ico +0 -0
  515. /package/{cjs/workspace → dhfs-tutorial-app}/src/counter.lua +0 -0
  516. /package/{cjs → dist/cjs}/accounts-web.js +0 -0
  517. /package/{cjs → dist/cjs}/accounts.js +0 -0
  518. /package/{cjs → dist/cjs}/adaptor-base.js +0 -0
  519. /package/{cjs → dist/cjs}/adaptor-cf.js +0 -0
  520. /package/{cjs → dist/cjs}/adaptor-web.js +0 -0
  521. /package/{cjs → dist/cjs}/adaptor.js +0 -0
  522. /package/{cjs → dist/cjs}/ao-loader.js +0 -0
  523. /package/{cjs → dist/cjs}/ao.js +0 -0
  524. /package/{cjs → dist/cjs}/aoconnect-base.js +0 -0
  525. /package/{cjs → dist/cjs}/aoconnect-cf.js +0 -0
  526. /package/{cjs → dist/cjs}/aoconnect-web.js +0 -0
  527. /package/{cjs → dist/cjs}/aoconnect.js +0 -0
  528. /package/{cjs → dist/cjs}/aos_wamr.js +0 -0
  529. /package/{cjs → dist/cjs}/ar-remote.js +0 -0
  530. /package/{cjs → dist/cjs}/ar.js +0 -0
  531. /package/{cjs → dist/cjs}/armem-base.js +0 -0
  532. /package/{cjs → dist/cjs}/armem-cf.js +0 -0
  533. /package/{cjs → dist/cjs}/armem-web.js +0 -0
  534. /package/{cjs → dist/cjs}/armem.js +0 -0
  535. /package/{cjs → dist/cjs}/bao.js +0 -0
  536. /package/{cjs → dist/cjs}/bar.js +0 -0
  537. /package/{cjs → dist/cjs}/build.js +0 -0
  538. /package/{cjs → dist/cjs}/bundler.js +0 -0
  539. /package/{cjs → dist/cjs}/car.js +0 -0
  540. /package/{cjs → dist/cjs}/cf-env.js +0 -0
  541. /package/{cjs → dist/cjs}/cf.js +0 -0
  542. /package/{cjs → dist/cjs}/cli.js +0 -0
  543. /package/{cjs → dist/cjs}/compress.js +0 -0
  544. /package/{cjs → dist/cjs}/create.js +0 -0
  545. /package/{cjs → dist/cjs}/devs.js +0 -0
  546. /package/{cjs → dist/cjs}/dirname.js +0 -0
  547. /package/{cjs → dist/cjs}/dodb.js +0 -0
  548. /package/{cjs → dist/cjs}/erl_json.js +0 -0
  549. /package/{cjs → dist/cjs}/erl_str.js +0 -0
  550. /package/{cjs → dist/cjs}/gql.js +0 -0
  551. /package/{cjs → dist/cjs}/hb.js +0 -0
  552. /package/{cjs → dist/cjs}/helpers.js +0 -0
  553. /package/{cjs → dist/cjs}/http.js +0 -0
  554. /package/{cjs → dist/cjs}/hub/bundler.js +0 -0
  555. /package/{cjs → dist/cjs}/hub/cu.js +0 -0
  556. /package/{cjs → dist/cjs}/hub/fs.js +0 -0
  557. /package/{cjs → dist/cjs}/hub/index.js +0 -0
  558. /package/{cjs → dist/cjs}/hub/utils.js +0 -0
  559. /package/{cjs → dist/cjs}/hub/ws-proxy.js +0 -0
  560. /package/{cjs → dist/cjs}/hyper-aos.js +0 -0
  561. /package/{cjs → dist/cjs}/hyperbeam-server.js +0 -0
  562. /package/{cjs → dist/cjs}/hyperbeam.js +0 -0
  563. /package/{cjs → dist/cjs}/index.js +0 -0
  564. /package/{cjs → dist/cjs}/keygen.js +0 -0
  565. /package/{cjs → dist/cjs}/lfdb.js +0 -0
  566. /package/{cjs → dist/cjs}/lua/aos.wasm +0 -0
  567. /package/{cjs → dist/cjs}/lua/aos2_0_1.js +0 -0
  568. /package/{cjs → dist/cjs}/lua/aos2_0_1.wasm +0 -0
  569. /package/{cjs → dist/cjs}/lua/aos2_0_3.js +0 -0
  570. /package/{cjs → dist/cjs}/lua/aos2_0_3.wasm +0 -0
  571. /package/{cjs → dist/cjs}/lua/aos2_0_4_32.js +0 -0
  572. /package/{cjs → dist/cjs}/lua/aos2_0_4_32.wasm +0 -0
  573. /package/{cjs → dist/cjs}/lua/aos2_0_6.wasm +0 -0
  574. /package/{cjs → dist/cjs}/lua/apm.lua +0 -0
  575. /package/{cjs → dist/cjs}/lua/llama.wasm +0 -0
  576. /package/{cjs → dist/cjs}/lua/process.wasm +0 -0
  577. /package/{cjs → dist/cjs}/lua/sqlite.js +0 -0
  578. /package/{cjs → dist/cjs}/lua/sqlite.wasm +0 -0
  579. /package/{cjs → dist/cjs}/lua/weavedb_mock.lua +0 -0
  580. /package/{cjs → dist/cjs}/lua/weavedrive.lua +0 -0
  581. /package/{cjs → dist/cjs}/run.js +0 -0
  582. /package/{cjs → dist/cjs}/server.js +0 -0
  583. /package/{cjs → dist/cjs}/storage-multi.js +0 -0
  584. /package/{cjs → dist/cjs}/tao.js +0 -0
  585. /package/{cjs → dist/cjs}/tar.js +0 -0
  586. /package/{cjs → dist/cjs}/test.js +0 -0
  587. /package/{cjs → dist/cjs}/tgql-d1.js +0 -0
  588. /package/{cjs → dist/cjs}/tgql.js +0 -0
  589. /package/{cjs → dist/cjs}/toerl.js +0 -0
  590. /package/{cjs → dist/cjs}/utils.js +0 -0
  591. /package/{cjs → dist/cjs}/wao.js +0 -0
  592. /package/{cjs → dist/cjs}/waosm/waosm.js +0 -0
  593. /package/{cjs → dist/cjs}/waosm-node/waosm.js +0 -0
  594. /package/{cjs → dist/cjs}/waosm-node/waosm_bg.js +0 -0
  595. /package/{cjs → dist/cjs}/waosm-node/waosm_bg.wasm +0 -0
  596. /package/{cjs → dist/cjs}/waosm-node/waosm_bg.wasm.js +0 -0
  597. /package/{cjs → dist/cjs}/waosm-node.js +0 -0
  598. /package/{cjs → dist/cjs}/war.js +0 -0
  599. /package/{cjs → dist/cjs}/weavedrive.js +0 -0
  600. /package/{cjs → dist/cjs}/web.js +0 -0
  601. /package/{cjs → dist/cjs}/workspace/.mcp.json +0 -0
  602. /package/{cjs → dist/cjs}/workspace/CLAUDE.md +0 -0
  603. /package/{cjs → dist/cjs}/workspace/README.md +0 -0
  604. /package/{cjs → dist/cjs}/workspace/dashboard/index.html +0 -0
  605. /package/{cjs → dist/cjs}/workspace/dashboard/package.json +0 -0
  606. /package/{esm → dist/cjs}/workspace/dashboard/public/favicon.ico +0 -0
  607. /package/{cjs → dist/cjs}/workspace/dashboard/public/favicon.png +0 -0
  608. /package/{cjs → dist/cjs}/workspace/dashboard/server.js +0 -0
  609. /package/{cjs → dist/cjs}/workspace/dashboard/src/App.jsx +0 -0
  610. /package/{cjs → dist/cjs}/workspace/dashboard/src/main.jsx +0 -0
  611. /package/{cjs → dist/cjs}/workspace/dashboard/vite.config.js +0 -0
  612. /package/{cjs → dist/cjs}/workspace/package.json +0 -0
  613. /package/{esm → dist/cjs}/workspace/src/counter.lua +0 -0
  614. /package/{esm → dist/esm}/accounts-web.js +0 -0
  615. /package/{esm → dist/esm}/accounts.js +0 -0
  616. /package/{esm → dist/esm}/adaptor-base.js +0 -0
  617. /package/{esm → dist/esm}/adaptor-cf.js +0 -0
  618. /package/{esm → dist/esm}/adaptor-web.js +0 -0
  619. /package/{esm → dist/esm}/adaptor.js +0 -0
  620. /package/{esm → dist/esm}/ao-loader.js +0 -0
  621. /package/{esm → dist/esm}/ao.js +0 -0
  622. /package/{esm → dist/esm}/aoconnect-base.js +0 -0
  623. /package/{esm → dist/esm}/aoconnect-cf.js +0 -0
  624. /package/{esm → dist/esm}/aoconnect-web.js +0 -0
  625. /package/{esm → dist/esm}/aoconnect.js +0 -0
  626. /package/{esm → dist/esm}/aos_wamr.js +0 -0
  627. /package/{esm → dist/esm}/ar-remote.js +0 -0
  628. /package/{esm → dist/esm}/ar.js +0 -0
  629. /package/{esm → dist/esm}/armem-base.js +0 -0
  630. /package/{esm → dist/esm}/armem-cf.js +0 -0
  631. /package/{esm → dist/esm}/armem-web.js +0 -0
  632. /package/{esm → dist/esm}/armem.js +0 -0
  633. /package/{esm → dist/esm}/bao.js +0 -0
  634. /package/{esm → dist/esm}/bar.js +0 -0
  635. /package/{esm → dist/esm}/build.js +0 -0
  636. /package/{esm → dist/esm}/bundler.js +0 -0
  637. /package/{esm → dist/esm}/car.js +0 -0
  638. /package/{esm → dist/esm}/cf-env.js +0 -0
  639. /package/{esm → dist/esm}/cf.js +0 -0
  640. /package/{esm → dist/esm}/cli.js +0 -0
  641. /package/{esm → dist/esm}/compress.js +0 -0
  642. /package/{esm → dist/esm}/create.js +0 -0
  643. /package/{esm → dist/esm}/devs.js +0 -0
  644. /package/{esm → dist/esm}/dirname.js +0 -0
  645. /package/{esm → dist/esm}/dodb.js +0 -0
  646. /package/{esm → dist/esm}/erl_json.js +0 -0
  647. /package/{esm → dist/esm}/erl_str.js +0 -0
  648. /package/{esm → dist/esm}/gql.js +0 -0
  649. /package/{esm → dist/esm}/hb.js +0 -0
  650. /package/{esm → dist/esm}/helpers.js +0 -0
  651. /package/{esm → dist/esm}/http.js +0 -0
  652. /package/{esm → dist/esm}/hub/bundler.js +0 -0
  653. /package/{esm → dist/esm}/hub/cu.js +0 -0
  654. /package/{esm → dist/esm}/hub/fs.js +0 -0
  655. /package/{esm → dist/esm}/hub/index.js +0 -0
  656. /package/{esm → dist/esm}/hub/utils.js +0 -0
  657. /package/{esm → dist/esm}/hub/ws-proxy.js +0 -0
  658. /package/{esm → dist/esm}/hyper-aos.js +0 -0
  659. /package/{esm → dist/esm}/hyperbeam-server.js +0 -0
  660. /package/{esm → dist/esm}/hyperbeam.js +0 -0
  661. /package/{esm → dist/esm}/index.js +0 -0
  662. /package/{esm → dist/esm}/keygen.js +0 -0
  663. /package/{esm → dist/esm}/lfdb.js +0 -0
  664. /package/{esm → dist/esm}/lua/aos.wasm +0 -0
  665. /package/{esm → dist/esm}/lua/aos2_0_1.js +0 -0
  666. /package/{esm → dist/esm}/lua/aos2_0_1.wasm +0 -0
  667. /package/{esm → dist/esm}/lua/aos2_0_3.js +0 -0
  668. /package/{esm → dist/esm}/lua/aos2_0_3.wasm +0 -0
  669. /package/{esm → dist/esm}/lua/aos2_0_4_32.js +0 -0
  670. /package/{esm → dist/esm}/lua/aos2_0_4_32.wasm +0 -0
  671. /package/{esm → dist/esm}/lua/aos2_0_6.wasm +0 -0
  672. /package/{esm → dist/esm}/lua/apm.lua +0 -0
  673. /package/{esm → dist/esm}/lua/llama.wasm +0 -0
  674. /package/{esm → dist/esm}/lua/process.wasm +0 -0
  675. /package/{esm → dist/esm}/lua/sqlite.js +0 -0
  676. /package/{esm → dist/esm}/lua/sqlite.wasm +0 -0
  677. /package/{esm → dist/esm}/lua/weavedb_mock.lua +0 -0
  678. /package/{esm → dist/esm}/lua/weavedrive.lua +0 -0
  679. /package/{esm → dist/esm}/package.json +0 -0
  680. /package/{esm → dist/esm}/run.js +0 -0
  681. /package/{esm → dist/esm}/server.js +0 -0
  682. /package/{esm → dist/esm}/storage-multi.js +0 -0
  683. /package/{esm → dist/esm}/tao.js +0 -0
  684. /package/{esm → dist/esm}/tar.js +0 -0
  685. /package/{esm → dist/esm}/test.js +0 -0
  686. /package/{esm → dist/esm}/tgql-d1.js +0 -0
  687. /package/{esm → dist/esm}/tgql.js +0 -0
  688. /package/{esm → dist/esm}/toerl.js +0 -0
  689. /package/{esm → dist/esm}/utils.js +0 -0
  690. /package/{esm → dist/esm}/wao.js +0 -0
  691. /package/{esm → dist/esm}/waosm/README.md +0 -0
  692. /package/{esm → dist/esm}/waosm/waosm.d.ts +0 -0
  693. /package/{esm → dist/esm}/waosm/waosm.js +0 -0
  694. /package/{esm → dist/esm}/waosm/waosm_bg.wasm +0 -0
  695. /package/{esm → dist/esm}/waosm/waosm_bg.wasm.d.ts +0 -0
  696. /package/{esm → dist/esm}/waosm-node/README.md +0 -0
  697. /package/{esm → dist/esm}/waosm-node/waosm.d.ts +0 -0
  698. /package/{esm → dist/esm}/waosm-node/waosm.js +0 -0
  699. /package/{esm → dist/esm}/waosm-node/waosm_bg.js +0 -0
  700. /package/{esm → dist/esm}/waosm-node/waosm_bg.wasm +0 -0
  701. /package/{esm → dist/esm}/waosm-node/waosm_bg.wasm.d.ts +0 -0
  702. /package/{esm → dist/esm}/waosm-node/waosm_bg.wasm.js +0 -0
  703. /package/{esm → dist/esm}/waosm-node.js +0 -0
  704. /package/{esm → dist/esm}/war.js +0 -0
  705. /package/{esm → dist/esm}/weavedrive.js +0 -0
  706. /package/{esm → dist/esm}/web.js +0 -0
  707. /package/{esm → dist/esm}/workspace/.mcp.json +0 -0
  708. /package/{esm → dist/esm}/workspace/CLAUDE.md +0 -0
  709. /package/{esm → dist/esm}/workspace/README.md +0 -0
  710. /package/{esm → dist/esm}/workspace/dashboard/index.html +0 -0
  711. /package/{esm → dist/esm}/workspace/dashboard/package.json +0 -0
  712. /package/{esm/workspace/dashboard/public/favicon.png → dist/esm/workspace/dashboard/public/favicon.ico} +0 -0
  713. /package/{esm → dist/esm}/workspace/dashboard/server.js +0 -0
  714. /package/{esm → dist/esm}/workspace/dashboard/src/App.jsx +0 -0
  715. /package/{cjs/workspace/frontend → dist/esm/workspace/dashboard}/src/main.jsx +0 -0
  716. /package/{esm → dist/esm}/workspace/dashboard/vite.config.js +0 -0
  717. /package/{esm → dist/esm}/workspace/package.json +0 -0
  718. /package/{postinstall.cjs → dist/postinstall.cjs} +0 -0
  719. /package/{esm → src}/workspace/dashboard/src/main.jsx +0 -0
package/src/cli.js ADDED
@@ -0,0 +1,561 @@
1
+ #!/usr/bin/env node
2
+ import pm2 from "pm2"
3
+ import { dirname } from "./utils.js"
4
+ import { resolve } from "path"
5
+ const args = process.argv.slice(2)
6
+ import util from "node:util"
7
+ import { exec as _exec } from "node:child_process"
8
+ const exec = util.promisify(_exec)
9
+ import { cpSync, existsSync, writeFileSync } from "fs"
10
+ import { createInterface } from "readline"
11
+ import Arweave from "arweave"
12
+
13
+ const cmds = {
14
+ wao: { script: "run.js" },
15
+ hub: { script: "hub/index.js" },
16
+ fs: { script: "hub/fs.js" },
17
+ proxy: { script: "hub/ws-proxy.js" },
18
+ create: { script: "create.js" },
19
+ build: { handler: "build" },
20
+ }
21
+
22
+ const cmd = cmds[args[0]] ?? cmds["wao"]
23
+ const isCreate = args[0] === "create"
24
+ const isBuild = args[0] === "build"
25
+ if (cmds[args[0]]) args.shift()
26
+
27
+ if (!cmd) {
28
+ console.log("The wrong command")
29
+ process.exit()
30
+ }
31
+
32
+ const dim = t => `\x1b[2m${t}\x1b[22m`
33
+ const bold = t => `\x1b[1m${t}\x1b[22m`
34
+ const cyan = t => `\x1b[36m${t}\x1b[39m`
35
+ const green = t => `\x1b[32m${t}\x1b[39m`
36
+ const red = t => `\x1b[31m${t}\x1b[39m`
37
+ const yellow = t => `\x1b[33m${t}\x1b[39m`
38
+ const magenta = t => `\x1b[35m${t}\x1b[39m`
39
+
40
+ const splash = () => {
41
+ const logo = [
42
+ "██╗ ██╗ █████╗ ██████╗ ",
43
+ "██║ ██║██╔══██╗██╔═══██╗",
44
+ "██║ █╗ ██║███████║██║ ██║",
45
+ "██║███╗██║██╔══██║██║ ██║",
46
+ "╚███╔███╔╝██║ ██║╚██████╔╝",
47
+ " ╚══╝╚══╝ ╚═╝ ╚═╝ ╚═════╝ ",
48
+ ]
49
+ console.log()
50
+ for (const line of logo) console.log(` ${cyan(line)}`)
51
+ console.log(` ${dim("WizardAO SDK for Vibe Engineering")}`)
52
+ console.log()
53
+ }
54
+
55
+ const tree = title => {
56
+ const frames = ["◒", "◐", "◓", "◑"]
57
+ const steps = []
58
+ let active = null
59
+ let intervalId = null
60
+ let startTime = Date.now()
61
+
62
+ const elapsed = from => {
63
+ const ms = Date.now() - from
64
+ return ms < 1000 ? `${ms}ms` : `${(ms / 1000).toFixed(1)}s`
65
+ }
66
+
67
+ const render = () => {
68
+ const lines = []
69
+ lines.push("")
70
+ lines.push(` ${bold(title)}`)
71
+ lines.push("")
72
+ for (let i = 0; i < steps.length; i++) {
73
+ const s = steps[i]
74
+ const isLast = i === steps.length - 1 && !active
75
+ const branch = isLast ? " └" : " │"
76
+ if (s.status === "done") {
77
+ lines.push(`${branch} ${green("✔")} ${s.label}`)
78
+ } else if (s.status === "fail") {
79
+ lines.push(`${branch} ${red("✘")} ${red(s.label)}`)
80
+ }
81
+ if (s.children) {
82
+ for (const c of s.children) {
83
+ const childBranch = isLast ? " " : " │"
84
+ lines.push(`${childBranch} ${dim(c)}`)
85
+ }
86
+ }
87
+ }
88
+ if (active) {
89
+ const frame = frames[active.tick++ % frames.length]
90
+ const isLast = true
91
+ lines.push(` └ ${cyan(frame)} ${active.label}${dim("...")}`)
92
+ }
93
+ lines.push("")
94
+ return lines.join("\n")
95
+ }
96
+
97
+ const clear = lineCount => {
98
+ process.stdout.write(`\x1b[${lineCount}A\x1b[0J`)
99
+ }
100
+
101
+ let lastLineCount = 0
102
+
103
+ const paint = () => {
104
+ if (lastLineCount > 0) clear(lastLineCount)
105
+ const output = render()
106
+ process.stdout.write(output)
107
+ lastLineCount = output.split("\n").length - 1
108
+ }
109
+
110
+ const startSpin = () => {
111
+ paint()
112
+ intervalId = setInterval(paint, 120)
113
+ }
114
+
115
+ const stopSpin = () => {
116
+ if (intervalId) {
117
+ clearInterval(intervalId)
118
+ intervalId = null
119
+ }
120
+ }
121
+
122
+ return {
123
+ step: label => {
124
+ stopSpin()
125
+ if (active) {
126
+ active.status = "done"
127
+ steps.push(active)
128
+ }
129
+ active = {
130
+ label,
131
+ status: "active",
132
+ tick: 0,
133
+ start: Date.now(),
134
+ children: null,
135
+ }
136
+ startSpin()
137
+ },
138
+
139
+ sub: text => {
140
+ if (active) {
141
+ active.children = active.children || []
142
+ active.children.push(text)
143
+ }
144
+ paint()
145
+ },
146
+
147
+ done: () => {
148
+ stopSpin()
149
+ if (active) {
150
+ active.status = "done"
151
+ steps.push(active)
152
+ active = null
153
+ }
154
+ paint()
155
+ },
156
+
157
+ fail: label => {
158
+ stopSpin()
159
+ if (active) {
160
+ active.status = "fail"
161
+ if (label) active.label = label
162
+ steps.push(active)
163
+ active = null
164
+ }
165
+ paint()
166
+ },
167
+
168
+ summary: fn => {
169
+ stopSpin()
170
+ if (active) {
171
+ active.status = "done"
172
+ steps.push(active)
173
+ active = null
174
+ }
175
+ paint()
176
+ const total = elapsed(startTime)
177
+ console.log(dim(` Completed in ${total}`))
178
+ console.log()
179
+ fn()
180
+ },
181
+ }
182
+ }
183
+
184
+ const ask = question =>
185
+ new Promise(res => {
186
+ const rl = createInterface({ input: process.stdin, output: process.stdout })
187
+ rl.question(question, answer => {
188
+ rl.close()
189
+ res(answer.trim().toLowerCase())
190
+ })
191
+ })
192
+
193
+
194
+ const HB_REPO = "https://github.com/permaweb/HyperBEAM.git"
195
+ const HB_TAG = "v0.9-FINAL"
196
+
197
+ const which = async cmd => {
198
+ try {
199
+ const { stdout } = await exec(`which ${cmd} 2>/dev/null`)
200
+ return stdout.trim()
201
+ } catch {
202
+ return null
203
+ }
204
+ }
205
+
206
+ const getVersion = async (cmd, flag = "--version") => {
207
+ try {
208
+ const { stdout } = await exec(`${cmd} ${flag} 2>&1`)
209
+ return stdout.trim().split("\n")[0]
210
+ } catch {
211
+ return null
212
+ }
213
+ }
214
+
215
+ const detectGCC = async () => {
216
+ for (const v of [14, 13, 12, 11]) {
217
+ if (await which(`gcc-${v}`)) return v
218
+ }
219
+ if (await which("gcc")) return null
220
+ return false
221
+ }
222
+
223
+ const detectHBEnv = async () => {
224
+ const deps = {}
225
+ const missing = []
226
+
227
+ // Erlang/OTP
228
+ const erlPath = await which("erl")
229
+ if (erlPath) {
230
+ const ver = await getVersion(
231
+ "erl",
232
+ '-eval \'{ok, V} = file:read_file(filename:join([code:root_dir(), "releases", erlang:system_info(otp_release), "OTP_VERSION"])), io:fwrite(V), halt().\' -noshell'
233
+ )
234
+ deps.erl = { path: erlPath, version: ver }
235
+ } else {
236
+ missing.push("erlang (OTP 27+ required)")
237
+ }
238
+
239
+ // Rebar3
240
+ const rebar3Path = await which("rebar3")
241
+ if (rebar3Path) {
242
+ deps.rebar3 = { path: rebar3Path }
243
+ } else {
244
+ missing.push("rebar3")
245
+ }
246
+
247
+ // GCC
248
+ const gccVersion = await detectGCC()
249
+ if (gccVersion === false) {
250
+ missing.push("gcc")
251
+ } else {
252
+ deps.gcc = gccVersion
253
+ }
254
+
255
+ // CMake
256
+ const cmakePath = await which("cmake")
257
+ if (cmakePath) {
258
+ deps.cmake = { path: cmakePath }
259
+ } else {
260
+ missing.push("cmake (>= 3.5)")
261
+ }
262
+
263
+ return { deps, missing }
264
+ }
265
+
266
+ const create = async () => {
267
+ const appname = args[0] ?? "waoapp"
268
+ const appdir = resolve(process.cwd(), appname)
269
+ if (existsSync(appdir))
270
+ return console.error(
271
+ `\n ${red("✘")} Directory already exists: ${bold(appdir)}\n`
272
+ )
273
+ const app = resolve(await dirname(), "workspace")
274
+
275
+ console.log()
276
+ console.log(` ${bold("HyperBEAM:")}`)
277
+ const col = 6 + HB_TAG.length
278
+ const pad = " ".repeat(col - "Use existing".length)
279
+ const pad2 = " ".repeat(col - "Skip".length)
280
+ console.log(` ${dim("1.")} Clone ${cyan(HB_TAG)} ${dim("(from GitHub)")}`)
281
+ console.log(` ${dim("2.")} Use existing${pad} ${dim("(path to local dir)")}`)
282
+ console.log(` ${dim("3.")} Skip${pad2} ${dim("(in-memory AOS only)")}`)
283
+ console.log()
284
+ const hbChoice = await ask(` Choose ${dim("(1/2/3)")} [1]: `)
285
+ const hbMode = hbChoice === "2" ? "existing" : hbChoice === "3" ? "skip" : "clone"
286
+
287
+ let hbPath = null
288
+ if (hbMode === "existing") {
289
+ hbPath = await ask(` Path to HyperBEAM directory: `)
290
+ const absPath = resolve(process.cwd(), hbPath)
291
+ if (!existsSync(absPath)) {
292
+ console.error(`\n ${red("✘")} Directory not found: ${bold(absPath)}\n`)
293
+ process.exit(1)
294
+ }
295
+ hbPath = absPath
296
+ }
297
+
298
+ console.log()
299
+ console.log(` ${bold("Frontend:")}`)
300
+ console.log(` ${dim("1.")} Skip ${dim("(backend only)")}`)
301
+ console.log(
302
+ ` ${dim("2.")} Vite + wao/web ${dim("(React SPA with ArConnect)")}`
303
+ )
304
+ console.log()
305
+ const feChoice = await ask(` Choose ${dim("(1/2)")} [1]: `)
306
+ const withFrontend = feChoice === "2"
307
+
308
+ console.log()
309
+
310
+ const t = tree(`Creating ${cyan(appname)}`)
311
+
312
+ try {
313
+ t.step("Scaffolding project files")
314
+ cpSync(app, appdir, {
315
+ recursive: true,
316
+ filter: src => {
317
+ if (!withFrontend && src.includes("/frontend")) return false
318
+ return true
319
+ },
320
+ })
321
+ t.sub("src/counter.lua, token.lua, registry.lua")
322
+ t.sub("test/ (aos, token, registry, hyperbeam)")
323
+ t.sub("scripts/deploy.js")
324
+ if (withFrontend) t.sub("frontend/ (Vite + React + wao/web)")
325
+ t.done()
326
+
327
+ t.step("Setting up Claude Code toolchain")
328
+ t.sub("CLAUDE.md")
329
+ t.sub(".claude/rules/ (lua, testing, deploy)")
330
+ t.sub(".claude/skills/ (test, deploy, create-handler)")
331
+ t.sub(".claude/agents/ (builder, tester)")
332
+ t.done()
333
+
334
+ t.step("Generating admin wallet")
335
+ const arweave = Arweave.init()
336
+ const jwk = await arweave.wallets.generate()
337
+ const addr = await arweave.wallets.jwkToAddress(jwk)
338
+ writeFileSync(resolve(appdir, ".wallet.json"), JSON.stringify(jwk))
339
+ t.sub(`address: ${addr}`)
340
+ t.done()
341
+
342
+ t.step("Installing dependencies")
343
+ const { error } = await exec(`cd ${appdir} && yarn --ignore-engines`)
344
+ if (error) {
345
+ t.fail("Failed to install dependencies")
346
+ return
347
+ }
348
+ t.done()
349
+
350
+ t.step("Installing HyperADD dashboard")
351
+ await exec(`cd "${resolve(appdir, "dashboard")}" && npm install --silent`)
352
+ t.sub("dashboard/ (Vite + React)")
353
+ t.sub("MCP server (.claude/mcp/dashboard/)")
354
+ t.done()
355
+
356
+ let hbWarnings = []
357
+
358
+ if (hbMode !== "skip") {
359
+ t.step("Detecting HyperBEAM environment")
360
+ const { deps, missing } = await detectHBEnv()
361
+
362
+ const hbCwd = hbMode === "existing" ? hbPath : "./HyperBEAM"
363
+ const envLines = [`CWD=${hbCwd}`]
364
+
365
+ if (deps.erl) t.sub(`${green("✔")} erlang ${deps.erl.version || ""}`)
366
+ if (deps.rebar3) t.sub(`${green("✔")} rebar3`)
367
+ if (deps.gcc) {
368
+ t.sub(`${green("✔")} gcc-${deps.gcc}`)
369
+ envLines.push(`CC=gcc-${deps.gcc}`)
370
+ envLines.push(`CXX=g++-${deps.gcc}`)
371
+ } else if (deps.gcc === null) {
372
+ t.sub(`${yellow("~")} gcc found (no versioned binary, using default)`)
373
+ }
374
+ if (deps.cmake) {
375
+ t.sub(`${green("✔")} cmake`)
376
+ envLines.push(`CMAKE_POLICY_VERSION_MINIMUM=3.5`)
377
+ }
378
+
379
+ for (const m of missing) {
380
+ t.sub(`${red("✘")} ${m} — not found`)
381
+ hbWarnings.push(m)
382
+ }
383
+
384
+ writeFileSync(
385
+ resolve(appdir, ".env.hyperbeam"),
386
+ envLines.join("\n") + "\n"
387
+ )
388
+ t.sub(`.env.hyperbeam → CWD=${hbCwd}`)
389
+ t.done()
390
+
391
+ if (hbMode === "clone") {
392
+ t.step("Cloning HyperBEAM")
393
+ t.sub(`tag: ${HB_TAG}`)
394
+ await exec(
395
+ `cd "${appdir}" && git clone --depth 1 --branch ${HB_TAG} ${HB_REPO} HyperBEAM`,
396
+ { maxBuffer: 50 * 1024 * 1024, timeout: 600000 }
397
+ )
398
+ t.done()
399
+
400
+ if (deps.erl && deps.rebar3 && missing.length === 0) {
401
+ t.step("Compiling HyperBEAM (with genesis-wasm)")
402
+ try {
403
+ const envParts = []
404
+ if (deps.gcc) {
405
+ envParts.push(`CC=gcc-${deps.gcc}`, `CXX=g++-${deps.gcc}`)
406
+ }
407
+ if (deps.cmake) {
408
+ envParts.push(`CMAKE_POLICY_VERSION_MINIMUM=3.5`)
409
+ }
410
+ const envPrefix = envParts.join(" ")
411
+ await exec(
412
+ `cd "${appdir}/HyperBEAM" && ${envPrefix} rebar3 as genesis_wasm compile`,
413
+ { maxBuffer: 50 * 1024 * 1024, timeout: 600000 }
414
+ )
415
+ t.sub("genesis-wasm device compiled")
416
+ t.done()
417
+ } catch (e) {
418
+ t.fail("Compile failed — check .env.hyperbeam and run manually")
419
+ }
420
+ } else if (missing.length > 0) {
421
+ t.step("Skipping compilation (missing dependencies)")
422
+ t.sub(
423
+ "Run 'cd HyperBEAM && rebar3 compile' after installing dependencies"
424
+ )
425
+ t.done()
426
+ }
427
+ }
428
+
429
+ // Generate wallet in HyperBEAM directory
430
+ const hbWalletDir = resolve(appdir, hbCwd)
431
+ t.step("Generating HyperBEAM wallet")
432
+ const hbArweave = Arweave.init()
433
+ const hbJwk = await hbArweave.wallets.generate()
434
+ const hbAddr = await hbArweave.wallets.jwkToAddress(hbJwk)
435
+ writeFileSync(resolve(hbWalletDir, ".wallet.json"), JSON.stringify(hbJwk))
436
+ t.sub(`address: ${hbAddr}`)
437
+ t.done()
438
+ }
439
+
440
+ if (withFrontend) {
441
+ t.step("Setting up frontend")
442
+ t.sub("Vite + React + wao/web")
443
+ t.sub("vitest unit tests + Playwright E2E")
444
+ t.done()
445
+ }
446
+
447
+ t.summary(() => {
448
+ splash()
449
+ console.log(` ${green("🎉")} ${bold(appname)} is ready!`)
450
+
451
+ if (hbWarnings.length > 0) {
452
+ console.log()
453
+ console.log(
454
+ ` ${yellow("⚠")} ${bold("Missing HyperBEAM dependencies:")}`
455
+ )
456
+ for (const w of hbWarnings) console.log(` ${dim("•")} ${w}`)
457
+ console.log(
458
+ ` ${dim("Install these before running HyperBEAM tests")}`
459
+ )
460
+ }
461
+
462
+ console.log()
463
+ console.log(` ${bold("1. Build")} ${dim("claude")}`)
464
+ console.log()
465
+ console.log(` ${dim("$")} cd ${appname}`)
466
+ console.log(` ${dim("$")} ${bold(`claude`)}`)
467
+ console.log(` ${dim("Tell the agent what to build, or run")} ${cyan("/build")} ${dim("for the full workflow.")}`)
468
+ console.log()
469
+ console.log(` ${dim("Quality gates (enforced automatically):")}`)
470
+ console.log(
471
+ ` ${dim("① Unit tests in-memory AOS (mainnet WASM device)")}`
472
+ )
473
+ if (hbMode !== "skip")
474
+ console.log(
475
+ ` ${dim("② Integration test HyperBEAM (requires Erlang)")}`
476
+ )
477
+ if (withFrontend)
478
+ console.log(
479
+ ` ${dim(`${hbMode !== "skip" ? "③" : "②"} Frontend tests vitest + Playwright`)}`
480
+ )
481
+ console.log(
482
+ ` ${dim("Agent cannot complete tasks until all gates pass.")}`
483
+ )
484
+ console.log()
485
+ console.log(` ${bold("2. Deploy to mainnet")}`)
486
+ console.log()
487
+ console.log(
488
+ ` ${dim("$")} yarn deploy src/counter.lua --wallet .wallet.json`
489
+ )
490
+ console.log()
491
+ })
492
+ } catch (e) {
493
+ t.fail(e.message)
494
+ }
495
+ }
496
+
497
+ const build = async () => {
498
+ if (!(await which("claude"))) {
499
+ console.error(
500
+ "Claude Code not found. Install: npm i -g @anthropic-ai/claude-code"
501
+ )
502
+ process.exit(1)
503
+ }
504
+ const { spawn } = await import("child_process")
505
+ const feature = args.join(" ")
506
+ const claudeArgs = ["--dangerously-skip-permissions"]
507
+ if (feature) {
508
+ claudeArgs.push(`/build ${feature}`)
509
+ } else if (existsSync("tasks.json") && existsSync("plan.md")) {
510
+ claudeArgs.push("resume /build")
511
+ } else {
512
+ claudeArgs.push("/build")
513
+ }
514
+ const child = spawn("claude", claudeArgs, {
515
+ stdio: "inherit",
516
+ env: { ...process.env, CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS: "1" },
517
+ })
518
+ child.on("exit", code => process.exit(code ?? 0))
519
+ }
520
+
521
+ if (isBuild) build()
522
+ else if (isCreate) create()
523
+ else {
524
+ pm2.connect(false, async err => {
525
+ if (err) {
526
+ console.error("Error connecting to PM2:", err)
527
+ process.exit(2)
528
+ }
529
+
530
+ // Node 24+ enables wasm-memory64 by default and rejects the
531
+ // experimental flag at startup; older Node still needs it.
532
+ const _nodeMajor = parseInt((process.versions.node || "0").split(".")[0], 10)
533
+ const _wasm64Flag = _nodeMajor >= 24 ? "" : "--experimental-wasm-memory64"
534
+ pm2.start(
535
+ {
536
+ script: resolve(await dirname(), cmd.script),
537
+ nodeArgs: _wasm64Flag,
538
+ instances: 1,
539
+ force: true,
540
+ args: args,
541
+ daemon: false,
542
+ name: "wao",
543
+ },
544
+ err => {
545
+ if (err) {
546
+ console.error("Error starting process:", err)
547
+ pm2.disconnect()
548
+ process.exit(2)
549
+ }
550
+ }
551
+ )
552
+ pm2.streamLogs("all", 0, false)
553
+ })
554
+
555
+ process.on("SIGINT", () => {
556
+ pm2.delete("wao", err => {
557
+ pm2.disconnect()
558
+ process.exit(err ? 1 : 0)
559
+ })
560
+ })
561
+ }
@@ -0,0 +1,112 @@
1
+ function toBase256(n) {
2
+ let result = []
3
+ while (n > 0) {
4
+ result.unshift(n % 256)
5
+ n = Math.floor(n / 256)
6
+ }
7
+ return [result.length, ...result]
8
+ }
9
+
10
+ const _comp = (arr, _arr, mode) => {
11
+ let _nums = null
12
+ let _elms = null
13
+ let len = _arr.length
14
+ let flag = 0
15
+ if (mode === 1 && _arr[0] !== 0) {
16
+ flag += 100
17
+ _elms = [_arr[0]]
18
+ } else if (mode === 2) {
19
+ flag += 200
20
+ _elms = _arr
21
+ }
22
+ if (len < 10) flag += len
23
+ else if (len !== 10) {
24
+ const [elm, ...nums] = toBase256(len)
25
+ _nums = nums
26
+ flag += elm * 10
27
+ if (_nums[0] < 10) flag += _nums.shift()
28
+ }
29
+ arr.push(flag)
30
+ if (_nums) for (const n of _nums) arr.push(n)
31
+ if (_elms) for (const n of _elms) arr.push(n)
32
+ }
33
+
34
+ export const compress = d => {
35
+ let _arr = []
36
+ let mode = 1
37
+ let prev = null
38
+ let max = 0
39
+ let arr = []
40
+ for (const v of d) {
41
+ if (prev === null) _arr.push(v)
42
+ else if (_arr.length === 1) {
43
+ mode = prev !== v ? 2 : 1
44
+ _arr.push(v)
45
+ } else {
46
+ if (prev !== v && mode === 1) {
47
+ _comp(arr, _arr, mode)
48
+ _arr = [v]
49
+ mode = 2
50
+ } else if (prev === v && mode === 2) {
51
+ const last = _arr.pop()
52
+ _comp(arr, _arr, mode)
53
+ _arr = [last, v]
54
+ mode = 1
55
+ } else {
56
+ _arr.push(v)
57
+ }
58
+ }
59
+ prev = v
60
+ }
61
+ if (_arr.length > 0) _comp(arr, _arr, mode)
62
+ return arr
63
+ }
64
+
65
+ export const decompress = d => {
66
+ let arr = []
67
+ let flag = null
68
+ let elm = 0
69
+ let sum = 0
70
+ let nums = []
71
+ let first = null
72
+ let second = null
73
+ let third = null
74
+ for (let v of d) {
75
+ if (flag === null) {
76
+ flag = v
77
+ first = Math.floor(flag / 100)
78
+ second = Math.floor((flag - first * 100) / 10)
79
+ third = flag - first * 100 - second * 10
80
+ nums = []
81
+ if (second === 0) {
82
+ nums.push(third === 0 ? 10 : third)
83
+ elm = 0
84
+ } else if (third !== 0) {
85
+ nums.push(third)
86
+ elm = second - 1
87
+ } else elm = second
88
+ } else if (sum === 0) {
89
+ elm -= 1
90
+ nums.push(v)
91
+ }
92
+ if (sum > 0) {
93
+ if (first === 2) arr.push(v)
94
+ else if (first === 1) for (let i = 0; i < to10(nums); i++) arr.push(v)
95
+ sum -= 1
96
+ if (sum === 0) flag = null
97
+ } else if (elm === 0) {
98
+ if (first === 0) {
99
+ for (let i = 0; i < to10(nums); i++) arr.push(0)
100
+ flag = null
101
+ } else if (first === 2) sum = to10(nums)
102
+ else sum = 1
103
+ }
104
+ }
105
+ return new Uint8Array(arr)
106
+ }
107
+
108
+ function to10(arr) {
109
+ let num = 0
110
+ for (let i = 0; i < arr.length; i++) num = num * 256 + arr[i]
111
+ return num
112
+ }