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,85 +0,0 @@
1
- ---
2
- name: deploy
3
- description: "Deploy AOS scripts to AO testnet, local HyperBEAM, or remote HyperBEAM. Use when user says 'deploy', 'ship it', 'push to mainnet', or 'go live'. Not for local testing — use /test-hb."
4
- argument-hint: "[--mainnet|--local-hb] [--lua] [lua-file ...]"
5
- disable-model-invocation: true
6
- allowed-tools: Bash, Read
7
- ---
8
-
9
- Deploy AOS Lua scripts.
10
-
11
- ## Examples
12
-
13
- ```
14
- /deploy src/counter.lua # deploy to testnet
15
- /deploy --mainnet src/counter.lua # deploy to production HyperBEAM
16
- /deploy --local-hb --lua src/counter.lua # deploy to local HB in Lua mode
17
- ```
18
-
19
- ## Steps
20
-
21
- 1. Run the test suite and abort if any fail:
22
-
23
- ```bash
24
- yarn test 2>&1
25
- ```
26
-
27
- If tests fail, stop and report. Do NOT deploy with failing tests.
28
-
29
- 2. Confirm with the user before deploying:
30
- - Show which scripts will be deployed
31
- - Show the target: testnet (default), `--mainnet` (remote HB), or `--local-hb` (local HB)
32
- - If `$ARGUMENTS` is provided, pass them through to the deploy script
33
- - If no file arguments, all `src/*.lua` files will be deployed
34
- - Ask for confirmation
35
-
36
- 3. Deploy:
37
-
38
- ```bash
39
- # Testnet (default)
40
- yarn deploy
41
- yarn deploy src/counter.lua
42
-
43
- # Remote HyperBEAM (production — uses push-1.forward.computer)
44
- yarn deploy --mainnet
45
- yarn deploy --mainnet src/counter.lua
46
-
47
- # Local HyperBEAM (development)
48
- yarn deploy --local-hb
49
- yarn deploy --local-hb src/counter.lua
50
-
51
- # Lua mode (any target)
52
- yarn deploy --mainnet --lua
53
- yarn deploy --local-hb --lua
54
-
55
- # Custom node
56
- yarn deploy --node https://push-3.forward.computer src/counter.lua
57
- ```
58
-
59
- The script automatically:
60
- - Finds the wallet from `.env.hyperbeam` CWD or `.wallet.json`
61
- - Deploys each script and prints its process ID
62
- - Reports success/failure for each file
63
-
64
- 4. Report the process IDs from the output.
65
-
66
- ## Important
67
-
68
- - **Remote HB**: Uses `push-1.forward.computer` (NOT `push.forward.computer` which is push-only with no compute)
69
- - **Local HB**: Requires HyperBEAM running at localhost:10001
70
- - **Lua mode**: Faster but no `receive()` support — use `msg.reply()` pattern
71
- - **Wallet**: Generate with `yarn keygen` if not present
72
-
73
- ## Troubleshooting
74
-
75
- ### MU 504 error on testnet
76
- - AO testnet MU can be flaky — retry after 30 seconds
77
- - Switch to `--mainnet` for reliable deployment
78
-
79
- ### "Wallet not found"
80
- - Generate with `yarn keygen`
81
- - Or check `.env.hyperbeam` CWD for existing wallet
82
-
83
- ### Process ID returned but process unreachable
84
- - Testnet processes may take 10-30s to become available
85
- - For HyperBEAM, verify the node is still running
@@ -1,32 +0,0 @@
1
- ---
2
- name: dev
3
- description: "Start the Vite dev server for frontend development. Use when user says 'start the frontend', 'run dev server', or 'open the app'. Not for running tests — use /test-e2e for Playwright."
4
- disable-model-invocation: true
5
- allowed-tools: Bash, Read
6
- ---
7
-
8
- Start the Vite dev server for frontend development.
9
-
10
- ## Steps
11
-
12
- 1. Check if the `frontend/` directory exists:
13
-
14
- ```bash
15
- test -d frontend && echo "Frontend found" || echo "ERROR: No frontend/ directory. Run npx wao create with frontend option to scaffold one."
16
- ```
17
-
18
- 2. If `frontend/` doesn't exist, stop and tell the user to re-scaffold with the frontend option.
19
-
20
- 3. Install frontend dependencies if needed:
21
-
22
- ```bash
23
- cd frontend && npm install
24
- ```
25
-
26
- 4. Start the Vite dev server:
27
-
28
- ```bash
29
- cd frontend && npm run dev
30
- ```
31
-
32
- 5. Report the local URL (usually http://localhost:5173).
@@ -1,176 +0,0 @@
1
- ---
2
- name: plan
3
- description: "Plan a feature before building. Writes plan.md and tasks.json so any agent can pick up the work. Use when starting a new feature, user says 'plan this', 'design this', or 'what should we build'. Not for modifying existing plans — edit plan.md directly."
4
- argument-hint: "<feature-description>"
5
- disable-model-invocation: true
6
- allowed-tools: Read, Write, Grep, Glob
7
- ---
8
-
9
- Plan a feature before building it. The plan and tasks are written to files so any Claude session can pick up and execute them.
10
-
11
- ## Performance Notes
12
- - Take your time researching patterns and edge cases
13
- - Quality of the plan determines quality of the build — a thorough plan saves iteration cycles
14
- - Consider all edge cases before writing tasks.json — it's cheaper to plan than to rebuild
15
-
16
- ## Steps
17
-
18
- 1. Read the user's feature description from `$ARGUMENTS`.
19
-
20
- 2. **Prompt the user** to choose which components to build. Ask them to select one or more:
21
- - **AOS Lua scripts** — Lua scripts running on AOS processes (src/*.lua)
22
- - **Custom Modules** — WASM64 (Rust) or standalone Lua modules (custom-wasm/ or custom-lua/)
23
- - **HyperBEAM devices** — custom Erlang device modules (HyperBEAM/src/*.erl)
24
- - **Frontend** — Vite + React browser app with wao/web (frontend/)
25
-
26
- Wait for the user's answer before proceeding. Only generate tasks for the selected components.
27
-
28
- 3. Read the relevant docs for the selected components:
29
- - AOS scripts → `docs/aos-lua.md`
30
- - Custom Modules (Lua) → `docs/docs/pages/tutorials/custom-lua.mdx`
31
- - Custom Modules (WASM64) → `docs/docs/pages/tutorials/rust-wasm64.mdx`
32
- - HyperBEAM devices → `docs/hyperbeam-dev.md` and `docs/hyperbeam-devices.md`
33
- - JS/SDK → `docs/wao-sdk.md`
34
- - Frontend → `docs/wao-sdk.md` (browser section)
35
-
36
- 4. Design the feature: files, AOS scripts/devices, edge cases, test scenarios.
37
-
38
- 5. Write `plan.md` at the project root:
39
-
40
- ```markdown
41
- # Plan: {feature name}
42
-
43
- ## Overview
44
- {1-2 sentence summary}
45
-
46
- ## Components
47
- - [ ] AOS: {yes/no — list AOS scripts}
48
- - [ ] Custom Modules: {yes/no — list modules, specify Lua or WASM64}
49
- - [ ] Device: {yes/no — list devices}
50
- - [ ] Frontend: {yes/no — list pages/components}
51
-
52
- ## AOS Scripts
53
- | Script | Action | Input Tags | State | Reply |
54
- |---------|--------|------------|-------|-------|
55
-
56
- ## Devices
57
- | Device | Module | Exports | Description |
58
- |--------|--------|---------|-------------|
59
-
60
- ## Edge Cases
61
- 1. ...
62
-
63
- ## Status: PENDING APPROVAL
64
- ```
65
-
66
- 6. Write `tasks.json` at the project root. This is a JSON file so any agent can precisely parse task status. Tasks follow a strict build order based on what components are included. Pick the applicable task templates:
67
-
68
- ```json
69
- {
70
- "feature": "{feature name}",
71
- "tracks": ["aos"],
72
- "current_step": 0,
73
- "tasks": [
74
- {
75
- "id": 1,
76
- "name": "Build AOS scripts",
77
- "type": "aos",
78
- "skill": "/build-aos",
79
- "status": "pending",
80
- "files": ["src/{name}.lua"],
81
- "details": "{script names, actions, input tags, state, reply format, input validation}",
82
- "done_when": "AOS scripts written with all edge cases handled"
83
- },
84
- {
85
- "id": 2,
86
- "name": "Write in-memory AOS tests",
87
- "type": "aos-test",
88
- "skill": "/build-aos",
89
- "status": "pending",
90
- "files": ["test/{name}.test.js"],
91
- "details": "{test scenarios — happy path, error paths, multi-user, boundaries}",
92
- "done_when": "yarn test test/{name}.test.js — all pass"
93
- },
94
- {
95
- "id": 3,
96
- "name": "Write AOS HyperBEAM integration tests",
97
- "type": "aos-integration",
98
- "skill": "/test-hb",
99
- "status": "pending",
100
- "files": ["test/hyperbeam.test.js"],
101
- "details": "{deploy AOS scripts on real HyperBEAM via genesis-wasm, test through HTTP}",
102
- "done_when": "yarn test test/hyperbeam.test.js — all pass"
103
- }
104
- ]
105
- }
106
- ```
107
-
108
- **Root-level fields**:
109
- - `"tracks"` — array of selected build tracks: `"aos"`, `"module"`, `"device"`, `"frontend"` (only the ones the user chose)
110
- - `"current_step"` — set to `0` initially; `/build` updates this as it progresses through tasks
111
-
112
- **Every task must include `"skill"`** — the slash command that handles it. This is how `/build` dispatches work:
113
-
114
- | Task type | Skill |
115
- |-----------|-------|
116
- | `aos` | `/build-aos` |
117
- | `aos-test` | `/build-aos` |
118
- | `aos-integration` | `/test-hb` |
119
- | `module-lua` | `/build-module` |
120
- | `module-wasm` | `/build-module` |
121
- | `module-test` | `/build-module` |
122
- | `device` | `/build-device` (eunit tests inline — same file) |
123
- | `device-integration` | `/test-device` |
124
- | `frontend` | `/build-frontend` |
125
- | `frontend-test` | `/build-frontend` |
126
- | `frontend-integration` | `/test-e2e` |
127
- | `readme` | `/readme` |
128
- | `validate` | `/validate` |
129
-
130
- **Custom Module tasks** (if building custom WASM64 or Lua modules) — add `"module"` to `tracks` array and add these to `tasks`:
131
- - For Lua: `{ "type": "module-lua", "skill": "/build-module", "files": ["custom-lua/{name}.lua"], "done_when": "module written with compute function" }`
132
- - For WASM64: `{ "type": "module-wasm", "skill": "/build-module", "files": ["custom-wasm/src/lib.rs"], "done_when": "cargo build succeeds, .wasm file produced" }`
133
- - Tests: `{ "type": "module-test", "skill": "/build-module", "files": ["test/{name}-module.test.js"], "done_when": "yarn test test/{name}-module.test.js — all pass" }`
134
-
135
- **Device tasks** (if building Erlang devices) — add `"device"` to `tracks` array and add these to `tasks`:
136
- - `{ "type": "device", "skill": "/build-device", "files": ["HyperBEAM/src/dev_{name}.erl"], "done_when": "rebar3 compile + eunit — all pass" }`
137
- - **HyperBEAM convention**: device source and eunit tests live in the same `.erl` file using `-ifdef(TEST).` guards. Do NOT create separate test files in `HyperBEAM/test/`.
138
- - `{ "type": "device-integration", "skill": "/test-device", "files": ["test/{name}-device.test.js"], "done_when": "yarn test test/{name}-device.test.js — all pass" }`
139
-
140
- **Frontend tasks** (if building frontend) — add `"frontend"` to `tracks` array and add these to `tasks`:
141
- - `{ "type": "frontend", "skill": "/build-frontend", "files": ["frontend/src/{components}"], "done_when": "components render, connect to AO processes" }`
142
- - `{ "type": "frontend-test", "skill": "/build-frontend", "files": ["frontend/test/{name}.test.jsx"], "done_when": "cd frontend && npm run test:unit — all pass" }`
143
- - `{ "type": "frontend-integration", "skill": "/test-e2e", "files": ["frontend/e2e/{name}.spec.js"], "done_when": "cd frontend && npm run test:e2e — all pass" }`
144
-
145
- **README task** — add after all build/test tasks, before validate:
146
- - `{ "type": "readme", "skill": "/readme", "done_when": "README.md written with architecture, setup, and usage" }`
147
-
148
- **Final validation** — always the last task:
149
- - `{ "type": "validate", "skill": "/validate", "done_when": "overall PASS" }`
150
-
151
- ### IMPORTANT: Replace all placeholders with actual names
152
-
153
- The templates above use `{name}` as a placeholder. When writing `tasks.json`, replace ALL placeholders with the actual file names from the plan. For example:
154
- - `"files": ["src/{name}.lua"]` → `"files": ["src/token.lua", "src/registry.lua"]`
155
- - `"files": ["test/{name}.test.js"]` → `"files": ["test/token.test.js", "test/registry.test.js"]`
156
- - `"done_when": "yarn test test/{name}.test.js — all pass"` → `"done_when": "yarn test test/token.test.js test/registry.test.js — all pass"`
157
-
158
- The `files` array must list every actual file the task will create. The `done_when` must reference the actual test commands. Never leave `{name}` as a literal string in the output.
159
-
160
- ### Task ordering rules
161
-
162
- The build order matters. Within each component:
163
- - **AOS**: AOS scripts → unit tests → integration tests
164
- - **Custom Modules**: module source → HyperBEAM integration tests
165
- - **Device**: Erlang module → eunit → integration tests
166
- - **Frontend**: components → vitest → Playwright
167
-
168
- Cross-component: AOS, Custom Modules, and Device can be built in parallel. Frontend depends on AOS/Device/Module being done (it calls them). Final validation is always last.
169
-
170
- ### Task numbering
171
-
172
- Number task `id` sequentially starting from 1. Only include tasks for selected components. A pure AOS project might have 3 tasks + validate. A full project with all four components might have 12+ tasks.
173
-
174
- 7. Each task must be self-contained — a new agent reading only `plan.md` and `tasks.json` should be able to execute any task without additional context.
175
-
176
- 8. Show the plan to the user and wait for approval. After approval, update `plan.md` status to `APPROVED`.
@@ -1,186 +0,0 @@
1
- ---
2
- name: readme
3
- description: "Generate a comprehensive README.md from the project's plan, code, and tests. Use when user says 'write the readme', 'document this', or 'generate docs'. Not for plan.md — use /plan."
4
- disable-model-invocation: true
5
- allowed-tools: Read, Write, Glob, Grep
6
- ---
7
-
8
- Generate a comprehensive README.md that explains the project thoroughly — what it does, why it exists, how it works, and complete API references for every script, device, and module.
9
-
10
- ## Performance Notes
11
- - Read every source file before writing — the README must be accurate, not guessed
12
- - Include real code examples extracted from test files
13
- - Document every handler/action, not just the main ones
14
-
15
- ## Steps
16
-
17
- 1. Read `plan.md` for the feature overview, architecture decisions, and edge cases.
18
-
19
- 2. Read **every** AOS script in `src/*.lua`. For each script, extract:
20
- - Purpose and what problem it solves
21
- - Every `Handlers.add()` — action name, expected tags, return data, error cases
22
- - State shape (what globals/tables the script maintains)
23
- - Interactions with other scripts (cross-process messages)
24
-
25
- 3. Read **every** test file in `test/*.test.js`. Extract:
26
- - Real usage examples (deploy, message, dry-run patterns)
27
- - Edge cases being tested (what fails, what's validated)
28
- - Multi-user scenarios
29
-
30
- 4. If `custom-lua/` or `custom-wasm/` exist, read the module source:
31
- - What the module does (compute function, state handling)
32
- - Input/output format
33
- - How it differs from standard AOS
34
-
35
- 5. If `HyperBEAM/src/dev_*.erl` files exist, read each device:
36
- - Device purpose and when to use it
37
- - Exported functions and their signatures
38
- - State structure and lifecycle
39
- - HTTP endpoints it exposes
40
-
41
- 6. If `frontend/src/` exists, read key components and hooks:
42
- - What the app does from a user perspective
43
- - How it connects to AOS (which hooks, which actions)
44
- - Wallet integration (ArConnect)
45
-
46
- 7. Read `package.json` for available scripts and dependencies.
47
-
48
- 8. Read `scripts/deploy.js` for deployment details.
49
-
50
- 9. **Write `README.md`** at the project root with ALL of these sections:
51
-
52
- ```markdown
53
- # {Project Name}
54
-
55
- {2-3 sentence description: what it does, what platform it runs on, who it's for}
56
-
57
- ## Overview
58
-
59
- {Expanded explanation — what problem does this solve? What are the key features?
60
- List each major capability as a bullet point with a brief explanation.}
61
-
62
- ## How It Works
63
-
64
- {Explain the architecture in plain language:
65
- - What happens when a user interacts with the app
66
- - How AOS scripts process messages
67
- - How state is maintained
68
- - If HyperBEAM: how devices fit in the pipeline
69
- - If frontend: how the browser connects to AOS}
70
-
71
- ## Project Structure
72
-
73
- ```
74
- {file tree with inline comments for every important file}
75
- ```
76
-
77
- ## Prerequisites
78
-
79
- - Node.js 20+
80
- - Arweave wallet (`yarn keygen` to generate)
81
- - {Erlang/OTP 27+ if devices}
82
- - {ArConnect browser extension if frontend}
83
-
84
- ## Setup
85
-
86
- ```bash
87
- yarn install
88
- yarn keygen
89
- ```
90
-
91
- ## AOS Script Reference
92
-
93
- ### {script_name}.lua
94
-
95
- {What this script does and why it exists}
96
-
97
- **State**: {describe the tables/globals maintained}
98
-
99
- | Action | Tags | Returns | Description |
100
- |--------|------|---------|-------------|
101
- | {action} | {required tags} | {return data} | {what it does} |
102
-
103
- **Example** (from tests):
104
- ```js
105
- {real code example extracted from test file}
106
- ```
107
-
108
- **Edge Cases**:
109
- - {what happens on invalid input}
110
- - {what happens on insufficient balance, etc.}
111
-
112
- {repeat for every script}
113
-
114
- ## Device Reference (if applicable)
115
-
116
- ### dev_{name}.erl
117
-
118
- {What this device does}
119
-
120
- | Function | Input | Output | Description |
121
- |----------|-------|--------|-------------|
122
- | {function} | {params} | {return} | {what it does} |
123
-
124
- {repeat for every device}
125
-
126
- ## Custom Module Reference (if applicable)
127
-
128
- ### {module_name}
129
-
130
- {What this module does, how it differs from standard AOS}
131
-
132
- ## Frontend (if applicable)
133
-
134
- {What the app looks like, what users can do}
135
-
136
- ### Components
137
- - {component} — {what it renders}
138
-
139
- ### Hooks
140
- - {hook} — {what state it manages}
141
-
142
- ## Testing
143
-
144
- ```bash
145
- yarn test test/aos.test.js # in-memory AOS (fast)
146
- yarn test test/{script}.test.js # specific script tests
147
- yarn test test/hyperbeam.test.js # HyperBEAM integration
148
- cd frontend && npm run test:unit # frontend vitest
149
- cd frontend && npm run test:e2e # Playwright E2E
150
- ```
151
-
152
- ## Deploy
153
-
154
- ```bash
155
- yarn keygen # generate wallet (first time only)
156
- yarn deploy # all scripts to AO testnet
157
- yarn deploy src/{script}.lua # single script
158
- yarn deploy --local-hb # local HyperBEAM
159
- yarn deploy --mainnet # remote HyperBEAM (production)
160
- ```
161
-
162
- ### How Deploy Works
163
-
164
- {Explain: reads src/*.lua, spawns a process per file.
165
- On testnet: Eval message. On HyperBEAM: ao.deploy().
166
- Each script gets its own process ID printed to console.}
167
-
168
- ### Verify
169
-
170
- - [aolink](https://aolink.ar.io/#/entity/{PROCESS_ID}) — inspect AOS process
171
- - [lunar](https://lunar.ar.io/#/process/{PROCESS_ID}) — inspect HyperBEAM process
172
-
173
- ## Built With
174
-
175
- - [WAO](https://docs.wao.eco) — SDK for AO and HyperBEAM
176
- - [AOS](https://ao.arweave.dev) — Lua processes on the AO computer
177
- {add others as relevant}
178
- ```
179
-
180
- 10. After writing, re-read the README and verify:
181
- - Every AOS action from every script is documented
182
- - Every device function is documented
183
- - Code examples are real (from test files), not made up
184
- - Edge cases are mentioned
185
-
186
- 11. Update the task status to `"done"` in `tasks.json`.
@@ -1,49 +0,0 @@
1
- ---
2
- name: report
3
- description: "Report progress on the current plan. Reads plan.md and tasks.json, shows status of each task and overall progress. Use when user says 'show progress', 'where are we', 'status', or 'what's done'. Not for running tests — use /validate."
4
- disable-model-invocation: true
5
- allowed-tools: Read, Bash, Grep, Glob
6
- ---
7
-
8
- Report the current progress of the build plan.
9
-
10
- ## Steps
11
-
12
- 1. Check if `plan.md` and `tasks.json` exist. If not, report "No active plan. Run /plan first."
13
-
14
- 2. Read `plan.md` for the feature name and components.
15
-
16
- 3. Read `tasks.json` and count tasks by status:
17
- - **done**: completed tasks
18
- - **in_progress**: currently being worked on
19
- - **pending**: not started yet
20
-
21
- 4. For each task, show a one-line summary:
22
-
23
- ```
24
- ## Progress: {feature name}
25
-
26
- ✔ Task 1: Build AOS Lua handlers
27
- ✔ Task 2: Write in-memory AOS tests
28
- ▶ Task 3: Write AOS HyperBEAM integration tests
29
- · Task 4: Build frontend components
30
- · Task 5: Write frontend vitest tests
31
- · Task 6: Write frontend Playwright integration tests
32
- · Task 7: Validate all gates
33
-
34
- Progress: 2/7 done, 1 in progress
35
-
36
- Components:
37
- AOS: ██████░░░░ tests passing
38
- Device: ░░░░░░░░░░ not started
39
- Frontend: ░░░░░░░░░░ not started
40
- ```
41
-
42
- 5. If any task is `in_progress`, run a quick check on its "done when" condition:
43
- - aos-test: run `yarn test` and report pass/fail count
44
- - device: run `rebar3 eunit --module=dev_{name}` and report (eunit tests are inline)
45
- - module-test: run `yarn test test/{name}-module.test.js` and report
46
- - frontend-test: run `cd frontend && npm run test:unit` and report
47
- - For other types, just report the status
48
-
49
- 6. Report any blockers or issues found.
@@ -1,101 +0,0 @@
1
- ---
2
- name: team
3
- description: "Set up an agent team for parallel WAO development. Creates coordinated teammates for building features, researching patterns, debugging, or cross-layer work. Use when user says 'work in parallel', 'split the work', 'team up', or 'use multiple agents'."
4
- argument-hint: "<workflow>"
5
- disable-model-invocation: true
6
- ---
7
-
8
- Set up an agent team for parallel WAO development.
9
-
10
- The argument `$ARGUMENTS` describes the workflow. Common workflows:
11
-
12
- ## Examples
13
-
14
- ```
15
- /team build # parallel feature development
16
- /team debug # competing hypothesis debugging
17
- /team device # cross-layer Erlang + JS development
18
- /team research # one researches docs, another implements
19
- /team module # custom module development (WASM + Lua)
20
- ```
21
-
22
- ## Workflows
23
-
24
- ### `build` — Parallel Feature Development
25
-
26
- Create an agent team with teammates that own separate files:
27
- - **Lua teammate**: builds AOS scripts in `src/`, reads `docs/aos-lua.md` first
28
- - **Test teammate**: writes tests in `test/`, reads `docs/wao-sdk.md` first
29
- - **Integration teammate**: verifies everything works together, runs `yarn test`
30
-
31
- Each teammate should own distinct files to avoid conflicts. The Lua teammate never edits test files, the test teammate never edits Lua files.
32
-
33
- Require plan approval before teammates start implementing.
34
-
35
- **File ownership per teammate:**
36
- - Lua: `src/*.lua` only
37
- - Test: `test/*.test.js` only
38
- - Integration: runs `yarn test`, reports results, doesn't edit files
39
-
40
- **Acceptance criteria per task:**
41
- - Lua: AOS script compiles, follows patterns from `docs/aos-lua.md`
42
- - Test: all assertions pass when run with `yarn test test/{file}.test.js`
43
- - Integration: full `yarn test` passes with no regressions
44
-
45
- ### `research` — Research and Build
46
-
47
- Create an agent team:
48
- - **Researcher**: reads the relevant docs (`docs/aos-lua.md`, `docs/wao-sdk.md`, `docs/hyperbeam-devices.md`) and reports patterns, gotchas, and examples back to the team
49
- - **Builder**: implements the feature based on the researcher's findings
50
- - **Reviewer**: reviews the implementation for correctness and WAO best practices
51
-
52
- ### `debug` — Competing Hypotheses
53
-
54
- Create an agent team with 3-4 teammates that each investigate a different hypothesis:
55
- - One checks port conflicts and stale processes (`lsof`, `pkill`)
56
- - One reads `docs/debug.md` and matches error messages against known issues
57
- - One examines the test code and Lua source for logic errors
58
- - One checks HyperBEAM configuration and `.env.hyperbeam`
59
-
60
- Have teammates challenge each other's findings. The theory that survives debate is most likely the root cause.
61
-
62
- ### `device` — Cross-Layer Device Development
63
-
64
- Create an agent team for building a HyperBEAM device:
65
- - **Erlang teammate**: writes the device module in `HyperBEAM/src/`, reads `docs/hyperbeam-dev.md`
66
- - **JS teammate**: writes the integration test in `test/`, reads `docs/wao-sdk.md`
67
- - **Compile teammate**: handles `cd HyperBEAM && rebar3 compile`, fixes compilation errors
68
-
69
- **File ownership:**
70
- - Erlang: `HyperBEAM/src/dev_*.erl` only
71
- - JS: `test/*.device.test.js` only
72
- - Compile: `HyperBEAM/` (compile and fix only)
73
-
74
- ### `review` — Parallel Code Review
75
-
76
- Create an agent team with 3 reviewers:
77
- - **Security reviewer**: checks for wallet exposure, injection, auth bypass
78
- - **Correctness reviewer**: validates AOS script logic, state management, edge cases
79
- - **Test coverage reviewer**: ensures all AOS scripts have tests, edge cases covered
80
-
81
- ### `module` — Custom Module Development
82
-
83
- Create an agent team for building custom WASM64 or Lua modules:
84
- - **Module teammate**: writes the custom module source (custom-wasm/src/lib.rs or custom-lua/{name}.lua)
85
- - **Test teammate**: writes HyperBEAM integration tests in `test/`, reads SDK docs for cacheBinary/cacheScript patterns
86
- - **Build teammate**: handles compilation (cargo build for WASM, HyperBEAM startup for Lua)
87
-
88
- **File ownership:**
89
- - Module: `custom-wasm/` or `custom-lua/` only
90
- - Test: `test/*-module.test.js` only
91
- - Build: runs compilation and HB processes, doesn't edit source
92
-
93
- ## Guidelines
94
-
95
- - Assign 5-6 tasks per teammate to keep everyone productive
96
- - Each teammate should own separate files — never have two teammates edit the same file
97
- - Workers report back test results, not just "done"
98
- - Use delegate mode (Shift+Tab) if you want the lead to only coordinate, not code
99
- - Teammates load CLAUDE.md and docs/ automatically — give task-specific context in spawn prompts
100
- - Use Shift+Up/Down to cycle between teammates and message them directly
101
- - Always clean up the team when done (tell the lead to clean up)
@@ -1,56 +0,0 @@
1
- ---
2
- name: test
3
- description: "Run in-memory AOS tests (legacynet units). Fast unit testing — no server needed. Use when testing AOS scripts or after code changes. Not for HyperBEAM integration tests — use /test-hb instead."
4
- argument-hint: "[test-file]"
5
- disable-model-invocation: true
6
- allowed-tools: Bash, Read, Grep
7
- ---
8
-
9
- Run in-memory AOS tests. For HyperBEAM integration tests, use `/test-hb` instead.
10
-
11
- ## Examples
12
-
13
- ```
14
- /test # run all tests
15
- /test test/token.test.js # run specific file
16
- ```
17
-
18
- ## Steps
19
-
20
- 1. Kill any stale `beam.smp` or HyperBEAM processes that may be lingering on ports 10000-10010:
21
-
22
- ```bash
23
- lsof -ti :10000-10010 | xargs -r kill -9 2>/dev/null || true
24
- pkill -f beam.smp 2>/dev/null || true
25
- ```
26
-
27
- 2. Run the tests:
28
-
29
- ```bash
30
- # Specific file (if argument provided)
31
- yarn test $ARGUMENTS
32
-
33
- # All tests (if no argument)
34
- yarn test
35
- ```
36
-
37
- 3. Report results:
38
- - Show pass/fail count
39
- - If failures, show the failing test names and error messages
40
- - Suggest fixes if the errors are obvious
41
-
42
- ## Troubleshooting
43
-
44
- ### Tests hang indefinitely
45
- - Likely cause: `Send().receive()` in Lua source — does NOT work on genesis-wasm
46
- - Fix: Replace with fire-and-forget `Send()` + separate handler
47
- - Also check for infinite loops in Lua state
48
-
49
- ### "Cannot find module wao/test"
50
- - Run `yarn install` to ensure dependencies are installed
51
- - Check `package.json` has `"wao"` in dependencies
52
-
53
- ### WASM memory error
54
- - Node 24+ enables wasm-memory64 by default — DO NOT pass `--experimental-wasm-memory64` (it's rejected with "bad option")
55
- - Node 22: set `NODE_OPTIONS=--experimental-wasm-memory64` before running
56
- - Node.js 22+ required