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
@@ -1,281 +0,0 @@
1
- ---
2
- name: build-module
3
- description: "Build custom WASM64 (Rust) or standalone Lua modules with HyperBEAM integration tests. Iterates until all tests pass 100%. Use when user says 'build the module', 'write the WASM', 'custom Lua module', or 'implement the module'. Not for AOS scripts — use /build-aos."
4
- argument-hint: "<task-id>"
5
- disable-model-invocation: true
6
- allowed-tools: Read, Write, Edit, Bash, Grep, Glob
7
- ---
8
-
9
- Build custom execution modules (WASM64 Rust or standalone Lua) and HyperBEAM integration tests for a task. Iterates until all tests pass 100%.
10
-
11
- ## Resolve HyperBEAM path
12
-
13
- Read `.env.hyperbeam` and extract the `CWD` value:
14
-
15
- ```bash
16
- grep '^CWD=' .env.hyperbeam 2>/dev/null | cut -d= -f2-
17
- ```
18
-
19
- If `.env.hyperbeam` doesn't exist or has no `CWD`, **STOP immediately** and tell the user:
20
-
21
- > No HyperBEAM configured. Custom module tests require a HyperBEAM installation.
22
- >
23
- > Set it up by adding a `CWD` entry to `.env.hyperbeam`:
24
- > ```bash
25
- > echo "CWD=/path/to/your/HyperBEAM" >> .env.hyperbeam
26
- > ```
27
- >
28
- > Or re-run `npx wao create` and choose option 1 (clone) or 2 (link).
29
-
30
- ## Steps
31
-
32
- 1. Read `tasks.json` and find the task matching `$ARGUMENTS` (task id). Update its status to `"in_progress"`.
33
-
34
- 2. Read `plan.md` for the module specifications:
35
- - Module type: WASM64 (Rust) or standalone Lua
36
- - Actions to handle
37
- - Response format
38
- - State management
39
-
40
- 3. Read the relevant docs:
41
- - Standalone Lua → `docs/aos-lua.md` (custom Lua section) and the tutorial at `docs/docs/pages/tutorials/custom-lua.mdx`
42
- - WASM64 Rust → the tutorial at `docs/docs/pages/tutorials/rust-wasm64.mdx`
43
- - SDK patterns → `docs/wao-sdk.md` (HB class: `cacheBinary`, `cacheScript`, `spawnAOS`, `scheduleAOS`, `computeAOS`, `scheduleLua`, `computeLua`)
44
-
45
- 4. **If the module type is `module-lua`** — write a standalone Lua module:
46
-
47
- Write the module in `custom-lua/{name}.lua`:
48
-
49
- ```lua
50
- -- {name}.lua - Custom Lua module for lua@5.3a device
51
- -- Standalone: no AOS boot code, no Handlers framework.
52
-
53
- local state = {}
54
-
55
- local function intstr(n)
56
- if n == math.floor(n) then return string.format("%d", n) end
57
- return tostring(n)
58
- end
59
-
60
- function compute(base, req, opts)
61
- local action = nil
62
- if type(req) == "table" then
63
- if type(req.body) == "table" then
64
- action = req.body.Action or req.body.action
65
- end
66
- if not action then
67
- action = req.Action or req.action
68
- end
69
- end
70
-
71
- -- Handle actions
72
- if action == "MyAction" then
73
- -- Implementation here
74
- end
75
-
76
- base.results = {
77
- outbox = {
78
- ["1"] = { data = "result" }
79
- },
80
- output = ""
81
- }
82
- return base
83
- end
84
- ```
85
-
86
- Key patterns:
87
- - Entry point is `compute(base, req, opts)` — NOT `Handlers.add`
88
- - Action is in `req.body.Action` or `req.body.action` (HTTP lowercases headers)
89
- - Response goes in `base.results.outbox` — string-keyed table
90
- - Module-level variables persist between compute calls (Lua VM state is saved)
91
- - No AOS framework available — no `Handlers`, `ao.send`, `msg.reply`
92
-
93
- 5. **If the module type is `module-wasm`** — write a Rust WASM64 module:
94
-
95
- Write the module in `custom-wasm/src/lib.rs`:
96
-
97
- ```rust
98
- #![no_std]
99
- #![no_main]
100
-
101
- use core::panic::PanicInfo;
102
-
103
- #[panic_handler]
104
- fn panic(_info: &PanicInfo) -> ! { loop {} }
105
-
106
- static mut BUMP: usize = 4096;
107
-
108
- #[no_mangle]
109
- pub extern "C" fn malloc(size: usize) -> usize {
110
- unsafe { let ptr = BUMP; BUMP += size; ptr }
111
- }
112
-
113
- #[no_mangle]
114
- pub extern "C" fn free(_ptr: usize) -> usize { 0 }
115
-
116
- // Manual byte copy (WAMR rejects memory.copy)
117
- unsafe fn copy_bytes(dst: *mut u8, src: *const u8, len: usize) {
118
- let mut i = 0;
119
- while i < len { *dst.add(i) = *src.add(i); i += 1; }
120
- }
121
-
122
- #[no_mangle]
123
- pub extern "C" fn handle(msg_ptr: usize, _proc_ptr: usize) -> usize {
124
- // Parse JSON message, handle actions, return JSON response
125
- // Response format: {"ok":true,"response":{"Output":{"data":""},"Messages":[{"Data":"..."}]}}
126
- unsafe { /* implementation */ 0 }
127
- }
128
- ```
129
-
130
- Key constraints:
131
- - `#![no_std]` required — WAMR rejects `memory.copy` from std
132
- - All pointers are `i64` (memory64 WASM)
133
- - Must export `malloc`, `free`, `handle`
134
- - Response is JSON with `Messages` array for outbox
135
- - Use manual byte loops, not memcpy
136
-
137
- Build with:
138
- ```bash
139
- cd custom-wasm && cargo +nightly build --target wasm64-unknown-unknown --release -Zbuild-std=core,panic_abort -Zbuild-std-features=panic_immediate_abort
140
- ```
141
-
142
- 6. **If the task type is `module-test`** — write HyperBEAM integration tests:
143
-
144
- **For Lua modules** — write `test/{name}-module.test.js`:
145
-
146
- ```js
147
- import { describe, it, before, after } from "node:test"
148
- import assert from "node:assert"
149
- import { readFileSync } from "node:fs"
150
- import { resolve } from "node:path"
151
- import { HyperBEAM } from "wao/test"
152
- import HB from "wao/hb"
153
-
154
- const luaPath = resolve(import.meta.dirname, "../custom-lua/{name}.lua")
155
-
156
- async function spawnCustomLua(hb, moduleId) {
157
- return hb.spawn({
158
- "data-protocol": "ao",
159
- variant: "ao.TN.1",
160
- module: moduleId,
161
- "execution-device": "lua@5.3a",
162
- "push-device": "push@1.0",
163
- "patch-from": "/results/outbox",
164
- })
165
- }
166
-
167
- describe("{name} custom Lua module", () => {
168
- let hbeam, hb, moduleId
169
-
170
- before(async () => {
171
- hbeam = await new HyperBEAM({ reset: true }).ready()
172
- hb = new HB({ url: hbeam.url })
173
- await hb.init(hbeam.jwk)
174
- const luaSrc = readFileSync(luaPath, "utf-8")
175
- moduleId = await hb.cacheScript(luaSrc, "application/lua")
176
- })
177
-
178
- after(async () => { if (hbeam) hbeam.kill() })
179
-
180
- it("should spawn process with module", async () => {
181
- const { pid } = await spawnCustomLua(hb, moduleId)
182
- assert.ok(pid)
183
- })
184
-
185
- // Test all actions, state persistence, error handling
186
- })
187
- ```
188
-
189
- **For WASM modules** — write `test/{name}-module.test.js`:
190
-
191
- ```js
192
- import { describe, it, before, after } from "node:test"
193
- import assert from "node:assert"
194
- import { readFileSync } from "node:fs"
195
- import { resolve } from "node:path"
196
- import { HyperBEAM } from "wao/test"
197
- import HB from "wao/hb"
198
-
199
- const wasmPath = resolve(import.meta.dirname,
200
- "../custom-wasm/target/wasm64-unknown-unknown/release/custom_wasm.wasm")
201
-
202
- describe("{name} custom WASM64 module", () => {
203
- let hbeam, hb
204
-
205
- before(async () => {
206
- hbeam = await new HyperBEAM({ reset: true }).ready()
207
- hb = new HB({ url: hbeam.url })
208
- await hb.init(hbeam.jwk)
209
- })
210
-
211
- after(async () => { if (hbeam) hbeam.kill() })
212
-
213
- it("should cache and spawn", async () => {
214
- const wasm = readFileSync(wasmPath)
215
- const imageId = await hb.cacheBinary(wasm, "application/wasm")
216
- const { pid } = await hb.spawnAOS({ image: imageId })
217
- assert.ok(pid)
218
- })
219
-
220
- // Test all actions via scheduleAOS/computeAOS
221
- })
222
- ```
223
-
224
- 7. Run the tests:
225
-
226
- ```bash
227
- yarn test test/{name}-module.test.js
228
- ```
229
-
230
- 8. If any tests fail:
231
- - Read the error output carefully
232
- - For WASM: check compilation output, verify no `memory.copy` instructions
233
- - For Lua: check `compute` function returns `base` with `results` set
234
- - Fix the code and re-run
235
- - Repeat until **100% pass**
236
-
237
- 9. Update the task status to `"done"` in `tasks.json`.
238
-
239
- ## Iteration Protocol
240
-
241
- For each test-fix cycle:
242
- 1. Run tests and capture FULL output
243
- 2. Identify the FIRST failing test (fix failures in order)
244
- 3. Classify: is the bug in module code or test code?
245
- 4. Fix ONE issue per iteration (don't change multiple things at once)
246
- 5. Re-run only the failing test first, then full suite
247
- 6. If the same error persists after 3 different fix attempts, step back:
248
- - Re-read the relevant docs (custom module patterns, WASM64/Lua conventions, etc.)
249
- - Check if the plan itself has a wrong assumption
250
- - Try a completely different approach
251
- 7. Continue iterating until all tests pass — there is no retry limit
252
-
253
- Only escalate to the user if:
254
- - The failure is environmental (cargo missing, WASM build tools, port conflict)
255
- - The test requires user input (wallet, external service URL)
256
- - You've tried 10+ iterations with no progress on the same error
257
-
258
- ## Troubleshooting
259
-
260
- ### Lua module: "compute not found"
261
- - Ensure the function is named `compute` (global, not local)
262
- - Must take exactly 3 arguments: `(base, req, opts)`
263
-
264
- ### Lua module: action is nil
265
- - HTTP signatures lowercase headers: check both `req.body.Action` and `req.body.action`
266
- - Also check `req.Action` as a fallback
267
-
268
- ### WASM: "memory.copy not supported"
269
- - Ensure `#![no_std]` is set in lib.rs
270
- - Use manual byte loops, not any std function that might use memory.copy
271
- - Verify Cargo.toml has `crate-type = ["cdylib"]`
272
-
273
- ### WASM: compilation fails with wasm64
274
- - Install nightly: `rustup toolchain install nightly`
275
- - Must use `-Zbuild-std=core,panic_abort`
276
- - Target is `wasm64-unknown-unknown` (not wasm32)
277
-
278
- ### Tests hang on HyperBEAM spawn
279
- - Kill stale beam.smp processes: `pkill -f beam.smp`
280
- - Check `.env.hyperbeam` CWD path is valid
281
- - Requires Erlang/OTP 27+
@@ -1,63 +0,0 @@
1
- ---
2
- name: create-aos
3
- description: "Scaffold a new AOS Lua script with its test file. Use when user says 'create a handler', 'new AOS script', 'scaffold a script', or 'add a handler'. Not for building full scripts with iteration — use /build-aos."
4
- argument-hint: "<script-name>"
5
- disable-model-invocation: true
6
- ---
7
-
8
- Scaffold a new AOS script with its test file.
9
-
10
- The argument `$ARGUMENTS` is the script name (required). It should be lowercase and will be used as the filename.
11
-
12
- ## Steps
13
-
14
- 0. Check for conflicts:
15
- ```bash
16
- test -f "src/$ARGUMENTS.lua" && echo "WARNING: src/$ARGUMENTS.lua already exists" || echo "OK"
17
- ```
18
- If the file exists, ask the user: overwrite or choose a different name?
19
-
20
- 1. Create the Lua script file at `src/$ARGUMENTS.lua`:
21
-
22
- ```lua
23
- local State = State or {}
24
-
25
- Handlers.add("{Name}", "{Name}", function(msg)
26
- msg.reply({ Data = "{Name} handled!" })
27
- end)
28
- ```
29
-
30
- Where `{Name}` is the argument with the first letter capitalized (e.g., `greeting` -> `Greeting`).
31
-
32
- 2. Create the test file at `test/$ARGUMENTS.test.js`:
33
-
34
- ```js
35
- import assert from "assert"
36
- import { describe, it } from "node:test"
37
- import { readFileSync } from "fs"
38
- import { resolve } from "path"
39
-
40
- import { AO, acc } from "wao/test"
41
-
42
- const src_data = readFileSync(
43
- resolve(import.meta.dirname, "../src/{name}.lua"),
44
- "utf8"
45
- )
46
-
47
- describe("{Name}", function () {
48
- it("should handle {Name} action", async () => {
49
- const ao = await new AO().init(acc[0])
50
- const { p } = await ao.deploy({ src_data })
51
- const result = await p.d("{Name}", false)
52
- assert.equal(result, "{Name} handled!")
53
- })
54
- })
55
- ```
56
-
57
- 3. Run the new test:
58
-
59
- ```bash
60
- yarn test test/{name}.test.js
61
- ```
62
-
63
- 4. Report whether the test passes. If it fails, fix and re-run.
@@ -1,87 +0,0 @@
1
- ---
2
- name: create-device
3
- description: "Scaffold a new HyperBEAM Erlang device with its test file. Use when user says 'create a device', 'new Erlang device', 'scaffold a device', or 'add a device'. Not for building full devices with iteration — use /build-device."
4
- argument-hint: "<device-name>"
5
- disable-model-invocation: true
6
- ---
7
-
8
- Scaffold a new HyperBEAM Erlang device with its test file.
9
-
10
- The argument `$ARGUMENTS` is the device name (required). It should be lowercase and will be used as the module name.
11
-
12
- ## Steps
13
-
14
- 1. Read `docs/hyperbeam-dev.md` for the device template and protocol.
15
-
16
- 2. Create the Erlang device at `HyperBEAM/src/dev_{name}.erl`:
17
-
18
- ```erlang
19
- -module(dev_{name}).
20
- -export([info/3, init/3, compute/3]).
21
- -include("include/hb.hrl").
22
-
23
- -define(STATE_KEY, <<"{name}-state">>).
24
-
25
- info(_M1, _M2, _Opts) ->
26
- {ok, #{
27
- <<"name">> => <<"{name}">>,
28
- <<"version">> => <<"1.0">>,
29
- <<"endpoints">> => [<<"compute">>]
30
- }}.
31
-
32
- init(M1, _M2, Opts) ->
33
- State = #{},
34
- {ok, ID} = hb_cache:write(State, Opts),
35
- M1Updated = hb_private:set(M1, #{?STATE_KEY => ID}, Opts),
36
- {ok, M1Updated}.
37
-
38
- compute(M1, M2, Opts) ->
39
- Action = hb_maps:get(<<"action">>, M2, <<"default">>, Opts),
40
- case Action of
41
- <<"get">> -> handle_get(M1, M2, Opts);
42
- _ -> {error, #{<<"status">> => 400, <<"error">> => <<"Unknown action">>}}
43
- end.
44
-
45
- handle_get(M1, _M2, _Opts) ->
46
- {ok, maps:merge(M1, #{<<"result">> => <<"ok">>})}.
47
- ```
48
-
49
- Where `{name}` is the argument (e.g., `counter`).
50
-
51
- 3. Create the test at `test/{name}.device.test.js`:
52
-
53
- ```js
54
- import assert from "assert"
55
- import { describe, it, before, after } from "node:test"
56
- import { HyperBEAM, HB, acc } from "wao/test"
57
-
58
- describe("{Name} Device", function () {
59
- let hbeam, hb
60
-
61
- before(async () => {
62
- hbeam = await new HyperBEAM({ reset: true }).ready()
63
- hb = await new HB({ url: hbeam.url }).init(acc[0].jwk)
64
- })
65
-
66
- after(async () => hbeam.kill())
67
-
68
- it("should respond to get", async () => {
69
- const result = await hb.g("/~{name}@1.0/compute", { action: "get" })
70
- assert.ok(result)
71
- })
72
- })
73
- ```
74
-
75
- 4. Compile HyperBEAM:
76
-
77
- ```bash
78
- cd HyperBEAM && rebar3 compile
79
- ```
80
-
81
- 5. Run the test:
82
-
83
- ```bash
84
- yarn test test/{name}.device.test.js
85
- ```
86
-
87
- 6. Report whether compilation and test pass. If either fails, fix and re-run.
@@ -1,162 +0,0 @@
1
- ---
2
- name: create-module
3
- description: "Scaffold a new custom module (WASM64 Rust or standalone Lua) with its test file. Use when user says 'create a module', 'new custom module', 'scaffold a WASM module', or 'scaffold a Lua module'. Not for AOS scripts — use /create-aos."
4
- argument-hint: "<module-name> [--lua|--wasm]"
5
- disable-model-invocation: true
6
- allowed-tools: Read, Write, Bash, Grep, Glob
7
- ---
8
-
9
- Scaffold a new custom execution module with its HyperBEAM integration test.
10
-
11
- The argument `$ARGUMENTS` should include the module name and optionally `--lua` or `--wasm` to specify the type. If no type is given, ask the user.
12
-
13
- ## Steps
14
-
15
- 0. Check for conflicts:
16
- ```bash
17
- test -f "custom-lua/$ARGUMENTS.lua" && echo "WARNING: custom-lua/$ARGUMENTS.lua already exists" || echo "OK"
18
- test -d "custom-wasm/" && test -f "custom-wasm/src/lib.rs" && echo "WARNING: custom-wasm/src/lib.rs already exists" || echo "OK"
19
- ```
20
- If the file exists, ask the user: overwrite or choose a different name?
21
-
22
- ### For Lua modules (`--lua` or default)
23
-
24
- 1. Create `custom-lua/` directory if it doesn't exist:
25
-
26
- ```bash
27
- mkdir -p custom-lua
28
- ```
29
-
30
- 2. Create `custom-lua/{name}.lua`:
31
-
32
- ```lua
33
- -- {name}.lua - Custom Lua module for lua@5.3a device
34
- -- Standalone: no AOS boot code, no Handlers framework.
35
- -- Implements a {Name} with basic actions.
36
-
37
- local state = {}
38
-
39
- local function intstr(n)
40
- if n == math.floor(n) then return string.format("%d", n) end
41
- return tostring(n)
42
- end
43
-
44
- function compute(base, req, opts)
45
- local action = nil
46
- if type(req) == "table" then
47
- if type(req.body) == "table" then
48
- action = req.body.Action or req.body.action
49
- end
50
- if not action then
51
- action = req.Action or req.action
52
- end
53
- end
54
-
55
- local result = "ok"
56
-
57
- if action == "Get" then
58
- -- Return current state
59
- result = "state"
60
- end
61
-
62
- base.results = {
63
- outbox = {
64
- ["1"] = { data = result }
65
- },
66
- output = ""
67
- }
68
- return base
69
- end
70
- ```
71
-
72
- 3. Create `test/{name}-module.test.js`:
73
-
74
- ```js
75
- import { describe, it, before, after } from "node:test"
76
- import assert from "node:assert"
77
- import { readFileSync } from "node:fs"
78
- import { resolve } from "node:path"
79
- import { HyperBEAM } from "wao/test"
80
- import HB from "wao/hb"
81
-
82
- const luaPath = resolve(import.meta.dirname, "../custom-lua/{name}.lua")
83
-
84
- async function spawnCustomLua(hb, moduleId) {
85
- return hb.spawn({
86
- "data-protocol": "ao",
87
- variant: "ao.TN.1",
88
- module: moduleId,
89
- "execution-device": "lua@5.3a",
90
- "push-device": "push@1.0",
91
- "patch-from": "/results/outbox",
92
- })
93
- }
94
-
95
- describe("{Name} Custom Lua Module", function () {
96
- let hbeam, hb, moduleId
97
-
98
- before(async () => {
99
- hbeam = await new HyperBEAM({ reset: true }).ready()
100
- hb = new HB({ url: hbeam.url })
101
- await hb.init(hbeam.jwk)
102
- const luaSrc = readFileSync(luaPath, "utf-8")
103
- moduleId = await hb.cacheScript(luaSrc, "application/lua")
104
- })
105
-
106
- after(async () => { if (hbeam) hbeam.kill() })
107
-
108
- it("should spawn and get initial state", async () => {
109
- const { pid } = await spawnCustomLua(hb, moduleId)
110
- assert.ok(pid, "should get process ID")
111
-
112
- const get = await hb.scheduleLua({ pid, action: "Get" })
113
- const result = await hb.computeLua({ pid, slot: get.slot })
114
- assert.ok(result)
115
- })
116
- })
117
- ```
118
-
119
- ### For WASM64 modules (`--wasm`)
120
-
121
- 1. Create the Rust project if it doesn't exist:
122
-
123
- ```bash
124
- test -d custom-wasm || cargo new custom-wasm --lib
125
- ```
126
-
127
- 2. Write `custom-wasm/Cargo.toml`:
128
-
129
- ```toml
130
- [package]
131
- name = "custom-wasm"
132
- version = "0.1.0"
133
- edition = "2021"
134
-
135
- [lib]
136
- crate-type = ["cdylib"]
137
-
138
- [profile.release]
139
- opt-level = "z"
140
- lto = true
141
- strip = true
142
- ```
143
-
144
- 3. Write `custom-wasm/src/lib.rs` with the `#![no_std]` counter template from `docs/docs/pages/tutorials/rust-wasm64.mdx`.
145
-
146
- 4. Build:
147
-
148
- ```bash
149
- cd custom-wasm && cargo +nightly build --target wasm64-unknown-unknown --release -Zbuild-std=core,panic_abort -Zbuild-std-features=panic_immediate_abort
150
- ```
151
-
152
- 5. Create `test/{name}-module.test.js` using the WASM test template (with `cacheBinary` + `spawnAOS` + `scheduleAOS` + `computeAOS`).
153
-
154
- ### Final steps
155
-
156
- 6. Run the test:
157
-
158
- ```bash
159
- yarn test test/{name}-module.test.js
160
- ```
161
-
162
- 7. Report whether the test passes. If it fails, fix and re-run.
@@ -1,57 +0,0 @@
1
- ---
2
- name: debug
3
- description: "Troubleshoot WAO development issues. Diagnoses port conflicts, stale processes, missing dependencies, and common errors. Use when builds stall, tests hang, ports conflict, or user says 'something is broken', 'tests are stuck', or 'help debug'. Not for test failures — use /test or /test-hb to re-run tests."
4
- argument-hint: "[issue-type]"
5
- disable-model-invocation: true
6
- allowed-tools: Bash, Read, Grep
7
- ---
8
-
9
- Troubleshoot WAO development issues.
10
-
11
- If `$ARGUMENTS` is provided, focus on that specific issue type (`timeout`, `port`, `wasm`, `signature`).
12
-
13
- ## Steps
14
-
15
- 1. Read `docs/debug.md` for known issues and their fixes.
16
-
17
- 2. Check port conflicts:
18
-
19
- ```bash
20
- lsof -ti :10000-10010 2>/dev/null
21
- lsof -ti :6363 2>/dev/null
22
- ```
23
-
24
- 3. Check for stale beam.smp processes:
25
-
26
- ```bash
27
- ps aux | grep beam.smp | grep -v grep
28
- ```
29
-
30
- 4. Check HyperBEAM directory exists:
31
-
32
- ```bash
33
- ls ./HyperBEAM/rebar.config 2>/dev/null && echo "HyperBEAM: OK" || echo "HyperBEAM: NOT FOUND"
34
- ```
35
-
36
- 5. Verify wallet exists:
37
-
38
- ```bash
39
- ls .wallet.json 2>/dev/null && echo "Wallet: OK" || echo "Wallet: NOT FOUND"
40
- ```
41
-
42
- 6. If argument provided, focus on that specific issue type:
43
- - `timeout` — check ports, kill stale processes, verify HyperBEAM
44
- - `port` — show all processes on relevant ports
45
- - `wasm` — check Node.js flags and WASM modules
46
- - `signature` — check for authority field conflicts, linkify_mode
47
-
48
- 7. If no specific issue, run a minimal connectivity test:
49
-
50
- ```bash
51
- pkill -f beam.smp 2>/dev/null || true
52
- lsof -ti :10000-10010 | xargs -r kill -9 2>/dev/null || true
53
- ```
54
-
55
- 8. Cross-reference any error messages with the Common Error Messages table in `docs/debug.md`.
56
-
57
- 9. Report findings with specific fix recommendations.