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,257 +0,0 @@
1
- ---
2
- paths:
3
- - "test/**/*.js"
4
- ---
5
-
6
- # Testing Rules
7
-
8
- For full SDK API reference, read `docs/wao-sdk.md`.
9
-
10
- ## Framework
11
-
12
- Node.js built-in test runner (`node:test`). No external test framework needed.
13
-
14
- ```js
15
- import assert from "assert"
16
- import { describe, it, before, after } from "node:test"
17
- ```
18
-
19
- ## In-Memory AOS Testing (legacynet units)
20
-
21
- Runs AOS WASM directly in Node.js — no server, no Erlang. Instant. Best for unit testing AOS script logic.
22
-
23
- ```js
24
- import { AO, acc } from "wao/test"
25
- import { readFileSync } from "fs"
26
- import { resolve } from "path"
27
-
28
- const src_data = readFileSync(
29
- resolve(import.meta.dirname, "../src/file.lua"),
30
- "utf8"
31
- )
32
-
33
- describe("My AOS Script", function () {
34
- it("should work", async () => {
35
- const ao = await new AO().init(acc[0])
36
- const { p, pid } = await ao.deploy({ src_data })
37
-
38
- // dry-run (read-only, no state change)
39
- const result = await p.d("ActionName", false)
40
-
41
- // message (mutates state)
42
- const result2 = await p.m("ActionName", false)
43
-
44
- // message with extra tags
45
- const result3 = await p.m("ActionName", { SomeTag: "value" }, false)
46
- })
47
- })
48
- ```
49
-
50
- ### Process Handle Shorthand
51
-
52
- - `p.d("Action", false)` — dry-run, returns Data string
53
- - `p.m("Action", false)` — send message, returns Data string
54
- - `p.m("Action", { Tag: "val" }, false)` — send message with tags
55
- - `p.v("State")` — get Lua variable as JSON
56
- - `p.v("Table.items[1]")` — nested access
57
-
58
- ### get/check Patterns
59
-
60
- ```js
61
- // get: extract output
62
- await p.d("Get", false) // Data as string
63
- await p.d("Get", { get: { data: true, json: true } }) // Data as parsed JSON
64
- await p.msg("Inc", { get: "Status" }) // Specific tag value
65
- await p.d("Get", { get: { from: "pid", json: true } }) // Filter by sender
66
-
67
- // check: validate response
68
- await p.msg("Inc", { check: { Status: "ok" } }) // Tag value check
69
- await p.msg("Inc", { check: /Success/ }) // Regex match
70
- ```
71
-
72
- ## HyperBEAM AOS Testing (integration)
73
-
74
- Spawns a real Erlang HyperBEAM node. AOS processes run on the HyperBEAM stack via `genesis-wasm` device. Messages go through HTTP with slot-based scheduling. Best for integration testing the full production stack.
75
-
76
- ### Raw HyperBEAM API
77
-
78
- ```js
79
- import { HyperBEAM } from "wao/test"
80
-
81
- describe("HyperBEAM", function () {
82
- let hbeam, hb
83
-
84
- before(async () => {
85
- hbeam = await new HyperBEAM({ reset: true }).ready()
86
- hb = hbeam.hb
87
- })
88
-
89
- after(async () => hbeam.kill())
90
-
91
- it("should work", async () => {
92
- await hb.post({ path: "/~meta@1.0/info", key: "value" })
93
- const { out } = await hb.get({ path: "/~meta@1.0/info" })
94
- })
95
- })
96
- ```
97
-
98
- ### HyperBEAM Spawn Patterns
99
-
100
- ```js
101
- // Basic spawn (default device)
102
- const { pid } = await hb.spawn({})
103
-
104
- // Legacy AOS (genesis-wasm CU)
105
- const { pid } = await hb.spawnLegacy()
106
- const { pid } = await hb.spawnAOS()
107
-
108
- // Lua VM
109
- const { pid } = await hb.spawnLua()
110
-
111
- // Custom execution device
112
- const { pid } = await hb.spawn({ "execution-device": "wao@1.0" })
113
- ```
114
-
115
- ### Device Stack Testing
116
-
117
- ```js
118
- const { pid } = await hb.spawn({
119
- "execution-device": "stack@1.0",
120
- "device-stack": ["wao@1.0", "patch@1.0"],
121
- "patch-from": "/results",
122
- "patch-to": "/cache",
123
- })
124
- const { slot } = await hb.schedule({ pid })
125
- const result = await hb.compute({ pid, slot, path: "/cache/key" })
126
- ```
127
-
128
- ### AOS on HyperBEAM (via HB client)
129
-
130
- ```js
131
- import { HyperBEAM, HB } from "wao/test"
132
-
133
- let hbeam = await new HyperBEAM({ reset: true, genesis_wasm: true }).ready()
134
- let hb = await new HB({ url: hbeam.url }).init(jwk)
135
-
136
- // Spawn AOS process on HyperBEAM
137
- const { pid } = await hb.spawnLegacy()
138
-
139
- // Send message (slot-based scheduling)
140
- const { slot } = await hb.scheduleLegacy({ pid, action: "Inc", data })
141
-
142
- // Get result
143
- const result = await hb.computeLegacy({ pid, slot })
144
-
145
- hbeam.kill()
146
- ```
147
-
148
- ### AOS class routed through HyperBEAM
149
-
150
- ```js
151
- import { AO } from "wao"
152
- import { HyperBEAM } from "wao/test"
153
-
154
- let hbeam = await new HyperBEAM({ reset: true, genesis_wasm: true }).ready()
155
- let ao = await new AO({ hb: hbeam.url }).init(hbeam.jwk)
156
-
157
- const { pid, p } = await ao.deploy({ src_data })
158
- await p.m("Inc")
159
- const result = await p.d("Get")
160
-
161
- hbeam.kill()
162
- ```
163
-
164
- Always call `hbeam.kill()` in `after()` to clean up the HyperBEAM Erlang process.
165
-
166
- ## Multi-User Testing
167
-
168
- Share memory between AO instances to simulate multiple users:
169
-
170
- ```js
171
- const ao1 = await new AO().init(acc[0])
172
- const { p, pid } = await ao1.deploy({ src_data })
173
-
174
- // second user shares the same memory
175
- const ao2 = await new AO({ mem: ao1.mem }).init(acc[1])
176
- const p2 = ao2.p(pid)
177
- await p2.m("Transfer", { Recipient: acc[0].addr, Quantity: "100" })
178
- ```
179
-
180
- ## Payment Testing
181
-
182
- ### Simple Pay
183
-
184
- ```js
185
- const hbeam = await new HyperBEAM({
186
- simple_pay: true,
187
- simple_pay_price: 2,
188
- operator: HyperBEAM.OPERATOR,
189
- }).ready()
190
-
191
- // Topup user
192
- await operator.hb.p("/~simple-pay@1.0/topup", { amount: 15, recipient: user.addr })
193
- const bal = await user.hb.p("/~simple-pay@1.0/balance")
194
- ```
195
-
196
- ### FAFF (Access Control)
197
-
198
- ```js
199
- const hbeam = await new HyperBEAM({
200
- faff: [HyperBEAM.OPERATOR, allowedAddr],
201
- }).ready()
202
- await assert.rejects(disallowed.hb.p(...)) // rejected
203
- ```
204
-
205
- ### P4 Payment
206
-
207
- ```js
208
- const hbeam = await new HyperBEAM({
209
- p4_lua: {
210
- processor: { body: ledgerScript, name: "ledger.lua" },
211
- client: { body: clientScript, name: "client.lua" },
212
- admin: addr,
213
- balance: { [addr]: 1000 },
214
- },
215
- }).ready()
216
- ```
217
-
218
- ## Cron Testing
219
-
220
- ```js
221
- const { body: taskId } = await hb.post({
222
- path: "/~cron@1.0/every",
223
- "cron-path": `/~wao@1.0/cron`,
224
- interval: "1000-milliseconds",
225
- target: pid,
226
- })
227
- await wait(3000)
228
- await hb.post({ path: "/~cron@1.0/stop", task: taskId })
229
- ```
230
-
231
- ## ANS-104 Format Testing
232
-
233
- ```js
234
- const hb = new HB({ url: hbeam.url, format: "ans104" })
235
- const { pid } = await hb.spawn({
236
- "execution-device": "wao@1.0",
237
- "Data-Protocol": "ao",
238
- Variant: "ao.WDB.1",
239
- })
240
- ```
241
-
242
- ## Port Cleanup
243
-
244
- Before HyperBEAM tests, kill stale processes:
245
-
246
- ```bash
247
- pkill -f beam.smp 2>/dev/null || true
248
- lsof -ti :10000-10010 | xargs -r kill -9 2>/dev/null || true
249
- ```
250
-
251
- ## Running Tests
252
-
253
- ```bash
254
- yarn test test/aos.test.js # in-memory AOS (fast unit tests)
255
- yarn test test/hyperbeam.test.js # HyperBEAM (integration tests)
256
- yarn test # all test files
257
- ```
@@ -1,109 +0,0 @@
1
- {
2
- "env": {
3
- "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1"
4
- },
5
- "permissions": {
6
- "allow": [
7
- "Bash(yarn test *)",
8
- "Bash(yarn deploy *)",
9
- "Bash(node *)",
10
- "Bash(pkill -f beam.smp *)",
11
- "Bash(lsof *)",
12
- "Bash(cd HyperBEAM && rebar3 compile)",
13
- "Bash(cd HyperBEAM && rebar3 as genesis_wasm compile)",
14
- "Bash(cd HyperBEAM && rebar3 eunit *)",
15
- "Bash(cd frontend && npm *)",
16
- "Bash(cd frontend && npx playwright *)"
17
- ],
18
- "deny": [
19
- "Bash(rm -rf *)",
20
- "Edit(.wallet.json)",
21
- "Edit(.env*)"
22
- ]
23
- },
24
- "hooks": {
25
- "PreToolUse": [
26
- {
27
- "matcher": "Bash",
28
- "hooks": [
29
- {
30
- "type": "command",
31
- "command": "INPUT=$(cat); CMD=$(echo \"$INPUT\" | jq -r '.tool_input.command // empty'); if echo \"$CMD\" | grep -qE 'rm\\s+-rf\\s+src/'; then echo 'Blocked: destructive command on src/' >&2; exit 2; fi; exit 0"
32
- }
33
- ]
34
- }
35
- ],
36
- "PostToolUse": [
37
- {
38
- "matcher": "Edit|Write",
39
- "hooks": [
40
- {
41
- "type": "command",
42
- "command": "INPUT=$(cat); FILE=$(echo \"$INPUT\" | jq -r '.tool_input.file_path // empty'); if echo \"$FILE\" | grep -qE '\\.(lua|js)$'; then echo \"File modified: $FILE — run yarn test to verify\" >&2; fi; exit 0"
43
- }
44
- ]
45
- }
46
- ],
47
- "SessionStart": [
48
- {
49
- "matcher": "compact",
50
- "hooks": [
51
- {
52
- "type": "command",
53
- "command": "MSG='WAO context restored after compaction: Send().receive() does NOT work on genesis-wasm — use fire-and-forget + separate AOS scripts. Action tags must be uppercase. Always kill stale beam.smp before HyperBEAM tests. Always call hbeam.kill() in after(). Read docs/ for full API references: wao-sdk.md (JS), aos-lua.md (Lua), hyperbeam-devices.md (devices), hyperbeam-dev.md (Erlang), debug.md (troubleshooting). Dashboard: yarn start (API :3333 + Vite :5174). MCP: get_progress / open_dashboard.'; if [ -f tasks.json ]; then FEATURE=$(cat tasks.json | jq -r '.feature // \"unknown\"'); STEP=$(cat tasks.json | jq -r '.current_step // 0'); PENDING=$(cat tasks.json | jq '[.tasks[] | select(.status != \"done\")] | length'); MSG=\"$MSG BUILD STATE: \\\"$FEATURE\\\" — step $STEP, $PENDING tasks remaining.\"; fi; echo \"$MSG\""
54
- }
55
- ]
56
- },
57
- {
58
- "hooks": [
59
- {
60
- "type": "command",
61
- "command": "if [ -f tasks.json ] && [ -f plan.md ]; then STEP=$(cat tasks.json | jq -r '.current_step // 0'); PENDING=$(cat tasks.json | jq '[.tasks[] | select(.status != \"done\")] | length'); FEATURE=$(cat tasks.json | jq -r '.feature // \"unknown\"'); echo \"BUILD RESUME: \\\"$FEATURE\\\" has $PENDING remaining tasks (current_step: $STEP). Read tasks.json and resume /build from the first pending task.\"; else echo 'NO ACTIVE BUILD: Run /build <feature> to start a new build workflow.'; fi"
62
- }
63
- ]
64
- }
65
- ],
66
- "TaskCompleted": [
67
- {
68
- "hooks": [
69
- {
70
- "type": "command",
71
- "command": "INPUT=$(cat); TASK=$(echo \"$INPUT\" | jq -r '.task.subject // empty'); if echo \"$TASK\" | grep -qiE '(build|implement|add|create|fix|update)'; then echo '=== Unit tests ===' >&2; cd \"$(pwd)\" && yarn test 2>&1 | tail -5; R1=$?; R2=0; R3=0; if command -v erl >/dev/null 2>&1 && ls test/*.test.js >/dev/null 2>&1; then echo '=== HyperBEAM integration ===' >&2; yarn test 2>&1 | tail -5; R2=$?; fi; if [ -d frontend ]; then echo '=== Frontend tests ===' >&2; cd frontend && npm run test:unit 2>&1 | tail -5; R3=$?; cd ..; fi; if [ $R1 -ne 0 ] || [ $R2 -ne 0 ] || [ $R3 -ne 0 ]; then echo 'BLOCKED: Tests are failing. Fix before marking complete.' >&2; exit 2; fi; fi; exit 0"
72
- }
73
- ]
74
- }
75
- ],
76
- "Stop": [
77
- {
78
- "hooks": [
79
- {
80
- "type": "command",
81
- "command": "INPUT=$(cat); REASON=$(echo \"$INPUT\" | jq -r '.reason // empty'); if [ \"$REASON\" = \"user\" ]; then exit 0; fi; echo 'Check: are all tasks completed and tests passing?' >&2; exit 0"
82
- }
83
- ]
84
- }
85
- ],
86
- "Notification": [
87
- {
88
- "hooks": [
89
- {
90
- "type": "command",
91
- "command": "INPUT=$(cat); MSG=$(echo \"$INPUT\" | jq -r '.message // empty'); echo \"$MSG\" >&2; exit 0"
92
- }
93
- ]
94
- }
95
- ],
96
- "TeammateIdle": [
97
- {
98
- "hooks": [
99
- {
100
- "type": "command",
101
- "command": "INPUT=$(cat); echo 'Before going idle: verify all assigned tasks are done, tests pass, and no stale beam.smp processes are running.' >&2; exit 0"
102
- }
103
- ]
104
- }
105
- ]
106
- },
107
- "teammateMode": "in-process",
108
- "teammatePermissionMode": "dangerously-skip-permissions"
109
- }
@@ -1,214 +0,0 @@
1
- ---
2
- name: build
3
- description: "Full build workflow — plan, build, test, validate. Manages tasks.json throughout every step. Use when user says 'build this', 'start building', 'implement this feature', or 'make this'. Not for single-file fixes — use /build-aos, /build-device, or /build-module directly."
4
- argument-hint: "<feature-description>"
5
- disable-model-invocation: true
6
- allowed-tools: Read, Write, Edit, Bash, Grep, Glob
7
- ---
8
-
9
- Full build orchestrator. Sequences through plan → build → test → validate → README, managing `tasks.json` throughout.
10
-
11
- ## Performance Notes
12
- - Take your time on each task — quality is more important than speed
13
- - Read the relevant docs thoroughly before writing code
14
- - Do not skip validation steps even if they seem redundant
15
- - When iterating on test failures, identify the root cause before changing code
16
-
17
- ## Examples
18
-
19
- ### Start a new build
20
- ```
21
- /build A counter app that tracks clicks per user, with a leaderboard showing top 10
22
- ```
23
-
24
- ### Resume an interrupted build
25
- ```
26
- /build
27
- ```
28
- (Automatically detects tasks.json and resumes)
29
-
30
- ## Steps
31
-
32
- ### 1. Check for existing plan (resume support)
33
-
34
- Read `plan.md` and `tasks.json` at the project root. If both exist and tasks.json has `"current_step"`, resume:
35
-
36
- 1. Find the first task with `"status": "in_progress"` — resume debugging that task immediately.
37
- 2. If no `in_progress` task, find the first task with `"status": "pending"` — start it.
38
- 3. If ALL tasks are `"done"`, **re-verify every test task** by running its tests:
39
- - `aos-test` → `yarn test <files>`
40
- - `aos-integration` → `yarn test <files>`
41
- - `device` → `cd $HB_DIR && rebar3 eunit --module=<module>`
42
- - `device-integration` → `yarn test <files>`
43
- - `frontend-test` → `cd frontend && npm run test:unit`
44
- - `frontend-integration` → `cd frontend && npm run test:e2e`
45
- - `validate` → run all validation gates
46
-
47
- If any test task fails, set that task back to `"in_progress"` in tasks.json and resume debugging it. Do NOT skip over failing tests just because the task was previously marked done.
48
-
49
- If no plan exists, proceed to step 2.
50
-
51
- ### 2. Plan
52
-
53
- **Enter plan mode using the `EnterPlanMode` tool immediately.** Do not skip this step.
54
-
55
- If `$ARGUMENTS` is provided, use it as the feature description. If `$ARGUMENTS` is empty, ask the user what they want to build — but only this one question, then proceed immediately.
56
-
57
- While in plan mode, read `.claude/skills/plan/SKILL.md` and execute ALL of its steps:
58
- 1. Ask the user which tracks to build (AOS / Custom Modules / Device / Frontend)
59
- 2. Read the relevant docs for the selected tracks
60
- 3. Design the feature
61
- 4. Write `plan.md` and `tasks.json` at the project root
62
-
63
- Once `plan.md` and `tasks.json` are written, **use `ExitPlanMode` to present the plan for user approval.** This exits plan mode and asks the user to approve before building begins.
64
-
65
- After the user approves, update `plan.md` status to `APPROVED` and proceed to step 3.
66
-
67
- ### 3. Clean up sample files
68
-
69
- Remove the starter reference files that ship with the template. These exist so users can explore the project before building, but should be cleared before a real build:
70
-
71
- ```bash
72
- rm -f src/counter.lua test/aos.test.js test/hyperbeam.test.js
73
- ```
74
-
75
- Also remove any other sample files (`src/registry.lua`, `src/token.lua`, `test/registry.test.js`, `test/token.test.js`) if they exist:
76
-
77
- ```bash
78
- rm -f src/registry.lua src/token.lua test/registry.test.js test/token.test.js
79
- ```
80
-
81
- ### 4. Verify prerequisites
82
-
83
- Before starting the build loop, check which tracks are selected and verify their prerequisites.
84
-
85
- **Device track or integration tests** — require HyperBEAM configured via `.env.hyperbeam`:
86
-
87
- ```bash
88
- grep '^CWD=' .env.hyperbeam 2>/dev/null | cut -d= -f2-
89
- ```
90
-
91
- If the plan includes `device`, `device-integration`, `aos-integration`, `module-lua`, `module-wasm`, or `module-test` tasks, verify:
92
-
93
- 1. `.env.hyperbeam` exists and has a `CWD` value
94
- 2. The `CWD` path points to a valid HyperBEAM directory (`$CWD/src` exists)
95
- 3. `rebar3` is available (for device compilation)
96
-
97
- If any check fails, **stop and tell the user**:
98
-
99
- > Device/integration tasks require HyperBEAM. Configure `.env.hyperbeam`:
100
- > ```bash
101
- > echo "CWD=/path/to/your/HyperBEAM" >> .env.hyperbeam
102
- > ```
103
- >
104
- > Or re-run `npx wao create` and choose option 1 (clone) or 2 (link).
105
-
106
- Only proceed once all prerequisites are met.
107
-
108
- ### 5. Build loop
109
-
110
- For each task in `tasks.json` (in `id` order):
111
-
112
- a. Update the task status to `"in_progress"` in `tasks.json` and update `current_step`.
113
-
114
- b. Read the skill file for this task's type and follow its instructions. The mapping from task type to skill file:
115
-
116
- | Task type | Read and follow |
117
- |-----------|-----------------|
118
- | `aos` | `.claude/skills/build-aos/SKILL.md` |
119
- | `aos-test` | `.claude/skills/build-aos/SKILL.md` |
120
- | `aos-integration` | `.claude/skills/test-hb/SKILL.md` |
121
- | `module-lua` | `.claude/skills/build-module/SKILL.md` |
122
- | `module-wasm` | `.claude/skills/build-module/SKILL.md` |
123
- | `module-test` | `.claude/skills/build-module/SKILL.md` |
124
- | `device` | `.claude/skills/build-device/SKILL.md` (eunit tests are inline — same file) |
125
- | `device-integration` | `.claude/skills/test-device/SKILL.md` |
126
- | `frontend` | `.claude/skills/build-frontend/SKILL.md` |
127
- | `frontend-test` | `.claude/skills/build-frontend/SKILL.md` |
128
- | `frontend-integration` | `.claude/skills/test-e2e/SKILL.md` |
129
- | `readme` | `.claude/skills/readme/SKILL.md` |
130
- | `validate` | `.claude/skills/validate/SKILL.md` |
131
-
132
- c. Follow the skill's instructions for this task, using the task `id` as context.
133
-
134
- d. After completing, verify the task's `done_when` criteria are met:
135
- - For test tasks: tests must pass 100%
136
- - For build tasks: files must exist and compile/load without errors
137
-
138
- e. If the criteria are met, update the task status to `"done"` in `tasks.json`.
139
-
140
- f. **If tests fail, keep debugging.** Do not stop. On each iteration:
141
- 1. Read the full error output — stack traces, assertion messages, log lines
142
- 2. Identify the root cause (wrong logic, missing handler, bad import, timing issue, etc.)
143
- 3. Fix the code — not the test, unless the test itself has a bug
144
- 4. Re-run the failing test file specifically (faster feedback than full suite)
145
- 5. If the same error persists after 3 different fix attempts, step back:
146
- - Re-read the relevant docs (AOS patterns, HyperBEAM device protocol, etc.)
147
- - Check if the plan itself has a wrong assumption
148
- - Try a completely different approach
149
- 6. Continue iterating until all tests pass — there is no retry limit
150
-
151
- g. Only escalate to the user if:
152
- - The failure is environmental (port conflict, missing binary, permissions)
153
- - The test requires user input (wallet, external service URL)
154
- - You've tried 10+ iterations with no progress on the same error
155
-
156
- h. Move to the next task.
157
-
158
- ### 6. README
159
-
160
- After all build and test tasks are done, read `.claude/skills/readme/SKILL.md` and follow its instructions to generate README.md.
161
-
162
- ### 7. Final validation
163
-
164
- Read `.claude/skills/validate/SKILL.md` and follow its instructions to run all validation gates.
165
-
166
- ### 8. Summary
167
-
168
- Report final results:
169
-
170
- ```
171
- ## Build Complete
172
-
173
- Feature: {feature name}
174
- Tracks: {AOS, Custom Modules, Device, Frontend}
175
-
176
- | Task | Status |
177
- |------|--------|
178
- | ... | done/skipped/failed |
179
-
180
- Overall: PASS / FAIL
181
- ```
182
-
183
- ## Failure handling
184
-
185
- - **Test failures are expected.** The build loop is: write code → run tests → read failures → fix → re-run. This is the core loop — never skip it, never give up early.
186
- - If a skill exits with test failures, read the full output, diagnose the root cause, fix the code (not the test), and re-run. Keep iterating until 100% pass.
187
- - If a skill cannot be dispatched (unknown type), skip and warn.
188
- - If the user interrupts, save current state to tasks.json so the next session can resume.
189
-
190
- ## Rollback
191
-
192
- If a task corrupts working code:
193
- 1. Check git status for what changed
194
- 2. Restore the last working version: `git checkout -- <file>` for specific files
195
- 3. Re-run tests to confirm the rollback worked
196
- 4. Update the task status back to `pending` in tasks.json
197
- 5. Retry with a different approach
198
-
199
- Never force a task to `done` status with failing tests. The TaskCompleted hook will block it anyway.
200
-
201
- ## Troubleshooting
202
-
203
- ### Build stalls on a single task
204
- - Check if it's a test failure loop — read the last test output
205
- - If the same error persists after 3 different fix attempts, step back and reconsider — the plan may have a wrong assumption
206
- - Run `/debug` to diagnose port/process/WASM issues
207
-
208
- ### Resume doesn't pick up the right task
209
- - Read `tasks.json` directly and check `current_step` value
210
- - Verify task statuses — a task stuck as `in_progress` blocks progression
211
-
212
- ### Permission denied on yarn test
213
- - Check `node --version` is 22+ (24+ recommended)
214
- - On Node 22, set `NODE_OPTIONS=--experimental-wasm-memory64`; on Node 24+ the flag is default-on and is rejected if passed explicitly