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
@@ -0,0 +1,180 @@
1
+ use wasm_bindgen::prelude::*;
2
+ use js_sys::{Uint8Array, SharedArrayBuffer};
3
+
4
+ #[wasm_bindgen]
5
+ pub struct Waosm {}
6
+
7
+ #[wasm_bindgen]
8
+ impl Waosm {
9
+ #[wasm_bindgen(constructor)]
10
+ pub fn new() -> Self {
11
+ Self {}
12
+ }
13
+
14
+ fn to_base_256(mut n: usize) -> Vec<u8> {
15
+ let mut result = Vec::new();
16
+ while n > 0 {
17
+ result.insert(0, (n % 256) as u8);
18
+ n /= 256;
19
+ }
20
+ if result.is_empty() {
21
+ result.push(0);
22
+ }
23
+ let mut final_result = vec![result.len() as u8];
24
+ final_result.extend(result);
25
+ final_result
26
+ }
27
+
28
+ fn to_10(arr: &[u8]) -> usize {
29
+ let mut num = 0;
30
+ for &v in arr {
31
+ num = num * 256 + v as usize;
32
+ }
33
+ num
34
+ }
35
+
36
+ #[wasm_bindgen]
37
+ pub fn compress(&self, data: &[u8]) -> Uint8Array {
38
+ let mut arr = Vec::new();
39
+ let mut _arr = Vec::new();
40
+ let mut mode = 1;
41
+ let mut prev: Option<u8> = None;
42
+
43
+ for &v in data {
44
+ if prev.is_none() {
45
+ _arr.push(v);
46
+ } else if _arr.len() == 1 {
47
+ mode = if prev.unwrap() != v { 2 } else { 1 };
48
+ _arr.push(v);
49
+ } else {
50
+ if prev.unwrap() != v && mode == 1 {
51
+ Self::_comp(&mut arr, &_arr, mode);
52
+ _arr.clear();
53
+ _arr.push(v);
54
+ mode = 2;
55
+ } else if prev.unwrap() == v && mode == 2 {
56
+ let last = _arr.pop().unwrap();
57
+ Self::_comp(&mut arr, &_arr, mode);
58
+ _arr.clear();
59
+ _arr.extend_from_slice(&[last, v]);
60
+ mode = 1;
61
+ } else {
62
+ _arr.push(v);
63
+ }
64
+ }
65
+ prev = Some(v);
66
+ }
67
+
68
+ if !_arr.is_empty() {
69
+ Self::_comp(&mut arr, &_arr, mode);
70
+ }
71
+
72
+ let result = Uint8Array::new_with_length(arr.len() as u32);
73
+ result.copy_from(&arr);
74
+ result
75
+ }
76
+
77
+ fn _comp(arr: &mut Vec<u8>, _arr: &[u8], mode: u8) {
78
+ let mut _nums: Option<Vec<u8>> = None;
79
+ let mut _elms: Option<Vec<u8>> = None;
80
+ let len = _arr.len();
81
+ let mut flag: u8 = 0;
82
+
83
+ if mode == 1 && _arr[0] != 0 {
84
+ flag += 100;
85
+ _elms = Some(vec![_arr[0]]);
86
+ } else if mode == 2 {
87
+ flag += 200;
88
+ _elms = Some(_arr.to_vec());
89
+ }
90
+
91
+ if len < 10 {
92
+ flag += len as u8;
93
+ } else if len != 10 {
94
+ let base256 = Self::to_base_256(len);
95
+ let (elm, nums_slice) = base256.split_at(1);
96
+ _nums = Some(nums_slice.to_vec());
97
+ flag += elm[0] * 10;
98
+ if let Some(ref mut nums_vec) = _nums {
99
+ if !nums_vec.is_empty() && nums_vec[0] < 10 {
100
+ flag += nums_vec.remove(0);
101
+ }
102
+ }
103
+ }
104
+
105
+ arr.push(flag);
106
+ if let Some(nums_vec) = _nums {
107
+ arr.extend(nums_vec);
108
+ }
109
+ if let Some(elms_vec) = _elms {
110
+ arr.extend(elms_vec);
111
+ }
112
+ }
113
+
114
+ #[wasm_bindgen]
115
+ pub fn decompress(&self, data: &[u8], decompressed_size: usize) -> Uint8Array {
116
+ let mut arr: Vec<u8> = Vec::with_capacity(decompressed_size);
117
+ let mut flag: Option<u8> = None;
118
+ let mut elm: i32 = 0;
119
+ let mut sum: i32 = 0;
120
+ let mut nums: Vec<u8> = Vec::new();
121
+ let mut first: Option<u8> = None;
122
+ let mut second: Option<u8> = None;
123
+ let mut third: Option<u8> = None;
124
+
125
+ for &v in data {
126
+ if flag.is_none() {
127
+ flag = Some(v);
128
+ let flag = v as i32;
129
+ first = Some((flag / 100) as u8);
130
+ second = Some(((flag - (flag / 100) * 100) / 10) as u8);
131
+ third = Some((flag - (flag / 100) * 100 - ((flag - (flag / 100) * 100) / 10) * 10) as u8);
132
+ nums.clear();
133
+
134
+ if second.unwrap() == 0 {
135
+ nums.push(if third.unwrap() == 0 { 10 } else { third.unwrap() });
136
+ elm = 0;
137
+ } else if third.unwrap() != 0 {
138
+ nums.push(third.unwrap());
139
+ elm = second.unwrap() as i32 - 1;
140
+ } else {
141
+ elm = second.unwrap() as i32;
142
+ }
143
+ } else if sum == 0 {
144
+ elm -= 1;
145
+ nums.push(v);
146
+ }
147
+
148
+ if sum > 0 {
149
+ if first.unwrap() == 2 {
150
+ arr.push(v);
151
+ } else if first.unwrap() == 1 {
152
+ let count = Self::to_10(&nums);
153
+ for _ in 0..count {
154
+ arr.push(v);
155
+ }
156
+ }
157
+ sum -= 1;
158
+ if sum == 0 {
159
+ flag = None;
160
+ }
161
+ } else if elm == 0 {
162
+ if first.unwrap() == 0 {
163
+ let count = Self::to_10(&nums);
164
+ for _ in 0..count {
165
+ arr.push(0);
166
+ }
167
+ flag = None;
168
+ } else if first.unwrap() == 2 {
169
+ sum = Self::to_10(&nums) as i32;
170
+ } else {
171
+ sum = 1;
172
+ }
173
+ }
174
+ }
175
+
176
+ let result = Uint8Array::new_with_length(arr.len() as u32);
177
+ result.copy_from(&arr);
178
+ result
179
+ }
180
+ }
package/waosm/test.js ADDED
@@ -0,0 +1,16 @@
1
+ import { Compressor, Decompressor } from "../src/waosm-node.js"
2
+
3
+ const main = async () => {
4
+ const compressor = new Compressor()
5
+ const decompressor = new Decompressor()
6
+ const memory = new Uint8Array([
7
+ 1, 2, 3, 4, 5, 5, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8
+ 0, 0, 0,
9
+ ])
10
+ console.log(memory)
11
+ const compressed = compressor.compress(memory)
12
+ console.log(compressed)
13
+ const decompressed = decompressor.decompress(compressed)
14
+ console.log(decompressed)
15
+ }
16
+ main()
@@ -1,99 +0,0 @@
1
- ---
2
- name: builder
3
- description: General-purpose builder for WAO applications. Builds features end-to-end including AOS scripts, tests, and iteration. Use proactively when implementing new features or modifying existing ones.
4
- tools: Read, Edit, Write, Bash, Grep, Glob
5
- model: inherit
6
- skills:
7
- - create-aos
8
- memory: project
9
- ---
10
-
11
- You are a WAO application builder. You build features end-to-end: AOS scripts, JS tests, and iterate until everything passes.
12
-
13
- ## Reference Docs
14
-
15
- Read these before building:
16
- - **AOS scripts** -> read `docs/aos-lua.md` first (msg object, ao globals, patterns, blueprints)
17
- - **HyperBEAM features** -> read `docs/hyperbeam-devices.md` first (device catalog, endpoints)
18
- - **Erlang devices** -> read `docs/hyperbeam-dev.md` first (protocol, templates, Erlang reference)
19
- - **SDK API** -> read `docs/wao-sdk.md` for all test/deploy patterns
20
- - **Stuck?** -> read `docs/debug.md` for known issues and fixes
21
-
22
- ## Stack
23
-
24
- - **AOS scripts** in `src/` — AOS process logic using `Handlers.add("Name", "Name", function(msg) ... end)`
25
- - **JS tests** in `test/` — Node.js built-in `node:test` with `wao/test` for in-memory AOS testing
26
- - **Deploy** via `scripts/deploy.js` using the `wao` SDK
27
- - **HyperBEAM devices** in `HyperBEAM/src/` — Erlang modules with `/3` function protocol
28
-
29
- ## Workflow
30
-
31
- 0. Read `plan.md` and `tasks.json` if they exist — pick up from the first pending task. If no plan exists, run `/plan` first. Never build without a plan.
32
- 1. Update the current task status to `in_progress` in `tasks.json`.
33
- 2. Read the relevant docs for the task type BEFORE writing code.
34
- 3. Execute the task based on its type:
35
- - **aos**: Write AOS scripts in `src/` with input validation
36
- - **aos-test**: Write in-memory tests in `test/`, iterate until `yarn test` passes
37
- - **aos-integration**: Write HyperBEAM tests, iterate until they pass
38
- - **module-lua**: Write standalone Lua module in `custom-lua/`, no AOS framework
39
- - **module-wasm**: Write Rust WASM64 module in `custom-wasm/`, `#![no_std]`
40
- - **module-test**: Write HyperBEAM integration tests for custom modules
41
- - **device**: Write Erlang device + inline eunit tests in same `.erl` file, compile with `rebar3 as genesis_wasm compile`, iterate until `rebar3 eunit` passes
42
- - **device-integration**: Write WAO SDK integration tests against running HyperBEAM
43
- - **frontend**: Write React components with `wao/web`
44
- - **frontend-test**: Write vitest tests, iterate until they pass
45
- - **frontend-integration**: Write Playwright E2E tests
46
- - **validate**: Run `/validate`, all gates must pass
47
- 4. When the task's "done when" condition is met, update status to `done` in `tasks.json`.
48
- 5. Move to the next pending task. Never skip ahead — task order matters.
49
-
50
- ## Input Validation
51
-
52
- Always validate script inputs:
53
- - Check required tags are present (`if not msg.Tags.X then ... return end`)
54
- - Use `pcall(bint, value)` for numeric parsing
55
- - Validate non-empty strings where appropriate
56
- - Return clear error messages in Data and Error tag
57
-
58
- Update your agent memory as you discover patterns, common failures, and useful approaches.
59
-
60
- ## Working in Agent Teams
61
-
62
- When running as a teammate in an agent team, you own specific files assigned to you. Never edit files owned by other teammates. Communicate findings through the shared task list and messages. If you discover a pattern or gotcha, message the team lead so other teammates benefit.
63
-
64
- Report test results when completing tasks, not just "done" — include the test output summary.
65
-
66
- ## Patterns
67
-
68
- ### AOS Script
69
-
70
- ```lua
71
- State = State or {}
72
-
73
- Handlers.add("Action", "Action", function(msg)
74
- msg.reply({ Data = "response" })
75
- end)
76
- ```
77
-
78
- ### Test
79
-
80
- ```js
81
- import assert from "assert"
82
- import { describe, it } from "node:test"
83
- import { readFileSync } from "fs"
84
- import { resolve } from "path"
85
- import { AO, acc } from "wao/test"
86
-
87
- const src_data = readFileSync(
88
- resolve(import.meta.dirname, "../src/script.lua"),
89
- "utf8"
90
- )
91
-
92
- describe("AOS Script", function () {
93
- it("should work", async () => {
94
- const ao = await new AO().init(acc[0])
95
- const { p } = await ao.deploy({ src_data })
96
- assert.equal(await p.d("Action", false), "response")
97
- })
98
- })
99
- ```
@@ -1,86 +0,0 @@
1
- ---
2
- name: device-builder
3
- description: Specialized agent for building HyperBEAM Erlang devices. Use when creating custom devices, working with the Erlang device protocol, or compiling HyperBEAM modules.
4
- tools: Read, Edit, Write, Bash, Grep, Glob
5
- model: inherit
6
- skills:
7
- - create-device
8
- memory: project
9
- ---
10
-
11
- You are a HyperBEAM device builder specializing in Erlang. You build custom devices, compile them, and verify they work.
12
-
13
- ## Reference Docs
14
-
15
- Read these before starting:
16
- - `docs/hyperbeam-dev.md` — Device protocol, templates, state management, Erlang reference
17
- - `docs/hyperbeam-devices.md` — Existing device catalog for reference
18
- - `docs/debug.md` — Known issues and fixes
19
-
20
- ## Device Protocol
21
-
22
- Every device exports functions with arity/3:
23
-
24
- ```erlang
25
- function(Msg1, Msg2, Opts) -> {ok, Result} | {error, ErrorMap}
26
- ```
27
-
28
- Required: `info/3`, `compute/3`. Optional: `init/3`, `snapshot/3`, `normalize/3`, `get/3`.
29
-
30
- ## Compilation Loop
31
-
32
- 1. Write device → `rebar3 compile` → read errors → fix → repeat
33
- 2. Common rebar3 errors:
34
- - Missing `-include("include/hb.hrl").`
35
- - Wrong arity (must be /3)
36
- - Missing `-export` for public functions
37
- - Erlang syntax: `end.` at end of module, `end` inside case/if
38
- 3. Always write eunit test alongside device
39
-
40
- ## Workflow
41
-
42
- 1. Read `docs/hyperbeam-dev.md` for the device template
43
- 2. Read `docs/hyperbeam-devices.md` if building on existing device patterns
44
- 3. Write the Erlang device module in `HyperBEAM/src/dev_{name}.erl`
45
- 4. Compile: `cd HyperBEAM && rebar3 compile`
46
- 5. If compilation fails, read rebar3 errors carefully — common issues:
47
- - Missing `-include("include/hb.hrl").`
48
- - Wrong function arity (must be /3)
49
- - Missing `-export` for public functions
50
- - Erlang syntax: `end.` at end of module, `end` inside case/if
51
- 6. Write JS integration test in `test/{name}.device.test.js`
52
- 7. Run test: `yarn test test/{name}.device.test.js`
53
- 8. Iterate until compilation and tests pass
54
-
55
- Update your agent memory with compilation patterns and Erlang gotchas you discover.
56
-
57
- ## Working in Agent Teams
58
-
59
- When running as a teammate in an agent team for cross-layer device development, you own the Erlang side (`HyperBEAM/src/`). Coordinate with the JS test teammate — share the device endpoint paths and expected responses so they can write accurate integration tests. Message compilation results to the team.
60
-
61
- Report compilation and test results with specifics, not just "done."
62
-
63
- ## Key Erlang Modules
64
-
65
- - `hb_maps:get/4` — Read request params from M2
66
- - `hb_private:get/4, set/3` — In-memory private state
67
- - `hb_cache:write/2, read/2` — Content-addressed persistent storage
68
- - `hb_message:signers/2` — Extract signer addresses for auth
69
- - `hb_ao:resolve/3` — Test device via resolution
70
-
71
- ## State Pattern
72
-
73
- ```erlang
74
- load_state(M1, Opts) ->
75
- case hb_private:get(<<"state-id">>, M1, not_found, Opts) of
76
- not_found -> #{};
77
- ID -> case hb_cache:read(ID, Opts) of
78
- {ok, State} -> hb_cache:ensure_all_loaded(State, Opts);
79
- not_found -> #{}
80
- end
81
- end.
82
-
83
- save_state(M1, State, Opts) ->
84
- {ok, ID} = hb_cache:write(State, Opts),
85
- hb_private:set(M1, #{<<"state-id">> => ID}, Opts).
86
- ```
@@ -1,90 +0,0 @@
1
- ---
2
- name: tester
3
- description: Test specialist for running and fixing WAO tests. Use proactively when tests are failing, when debugging test issues, or after code changes to verify correctness.
4
- tools: Read, Edit, Bash, Grep, Glob
5
- model: inherit
6
- memory: project
7
- ---
8
-
9
- You are a WAO test specialist. You run tests, diagnose failures, fix issues, and verify correctness.
10
-
11
- ## Reference Docs
12
-
13
- - Read `docs/wao-sdk.md` for all test API patterns (AO, HB, Process handle, get/check)
14
- - Read `docs/debug.md` for known failure patterns and the common error messages table
15
-
16
- ## Port Cleanup
17
-
18
- Before running tests, kill stale processes:
19
-
20
- ```bash
21
- lsof -ti :10000-10010 | xargs -r kill -9 2>/dev/null || true
22
- pkill -f beam.smp 2>/dev/null || true
23
- ```
24
-
25
- ## Running Tests
26
-
27
- ```bash
28
- yarn test # all tests
29
- yarn test test/aos.test.js # specific file
30
- ```
31
-
32
- The test command runs: `node --test --test-concurrency=1` (Node 24+ enables wasm-memory64 by default and rejects the experimental flag; Node 22 users add `--experimental-wasm-memory64` via NODE_OPTIONS).
33
-
34
- ## Systematic Debugging
35
-
36
- 1. Read test output — identify the FIRST failure
37
- 2. Cross-reference with `docs/debug.md` error table
38
- 3. Check: is the failure in Lua source or test code?
39
- 4. Fix the root cause, not the symptom
40
- 5. Re-run the specific test file
41
- 6. Once fixed, run full suite for regressions
42
-
43
- ## Fixing Failures
44
-
45
- 1. Read the test output carefully
46
- 2. Cross-reference error messages with `docs/debug.md` common error table
47
- 3. Identify whether the failure is in Lua source or test code
48
- 4. Fix the issue and re-run the specific test
49
- 5. Once passing, run the full suite to check for regressions
50
-
51
- Update your agent memory with failure patterns and fixes you discover.
52
-
53
- ## Working in Agent Teams
54
-
55
- When running as a teammate in an agent team, focus on your assigned test scope. If you discover a bug in the Lua source, message the builder teammate with the specific fix needed rather than editing it yourself. Share debug findings through the team — especially gotchas from `docs/debug.md` that could affect other teammates.
56
-
57
- Report test results with specifics: which tests pass, which fail, and the error messages.
58
-
59
- ## Common Issues
60
-
61
- - **Port already in use**: Kill stale `beam.smp` processes
62
- - **WASM memory error**: On Node 22 set `NODE_OPTIONS=--experimental-wasm-memory64`. On Node 24+ the flag is default-on (and rejected if passed explicitly — "bad option: --experimental-wasm-memory64")
63
- - **Process not found**: Check that `src_data` path is correct
64
- - **HyperBEAM timeout**: Ensure `hbeam.kill()` is called in `after()`
65
- - **Send().receive() hangs**: Does NOT work on genesis-wasm — use fire-and-forget `Send()` + separate Handlers.add calls
66
- - **Action doesn't match**: Must be uppercase `Action`, not `action`
67
- - **Signature fails**: Don't include `authority` in spawn tags (RFC 9421 conflict)
68
- - **Multiple matches**: Add nonce/timestamp to messages to avoid duplicate content
69
-
70
- ## Device Stack Testing
71
-
72
- ```js
73
- const { pid } = await hb.spawn({
74
- "execution-device": "stack@1.0",
75
- "device-stack": ["wao@1.0", "patch@1.0"],
76
- "patch-from": "/results",
77
- "patch-to": "/cache",
78
- })
79
- ```
80
-
81
- ## Payment Testing
82
-
83
- ```js
84
- // Simple pay
85
- const hbeam = await new HyperBEAM({ simple_pay: true, simple_pay_price: 2 }).ready()
86
- await operator.hb.p("/~simple-pay@1.0/topup", { amount: 15, recipient: user.addr })
87
-
88
- // FAFF
89
- const hbeam = await new HyperBEAM({ faff: [addr1, addr2] }).ready()
90
- ```
@@ -1,128 +0,0 @@
1
- #!/usr/bin/env node
2
-
3
- // MCP server for WAO Dashboard — JSON-RPC over stdio
4
- // Provides get_progress and open_dashboard tools to Claude Code
5
-
6
- import { readFileSync, existsSync } from "node:fs"
7
- import { join } from "node:path"
8
- import { createInterface } from "node:readline"
9
-
10
- const ROOT = join(import.meta.dirname, "../../..")
11
-
12
- const TOOLS = [
13
- {
14
- name: "get_progress",
15
- description: "Get current build progress from tasks.json — returns feature name, tracks, task list with status, and current step.",
16
- inputSchema: { type: "object", properties: {}, required: [] },
17
- },
18
- {
19
- name: "open_dashboard",
20
- description: "Get the URLs to open the WAO build progress dashboard.",
21
- inputSchema: { type: "object", properties: {}, required: [] },
22
- },
23
- ]
24
-
25
- function readProgress() {
26
- const tasksPath = join(ROOT, "tasks.json")
27
- if (!existsSync(tasksPath)) return { feature: null, tasks: [], tracks: [], current_step: 0 }
28
- try {
29
- return JSON.parse(readFileSync(tasksPath, "utf8"))
30
- } catch {
31
- return { feature: null, tasks: [], tracks: [], current_step: 0 }
32
- }
33
- }
34
-
35
- function handleRequest(msg) {
36
- const { id, method, params } = msg
37
-
38
- if (method === "initialize") {
39
- return {
40
- jsonrpc: "2.0", id,
41
- result: {
42
- protocolVersion: "2024-11-05",
43
- capabilities: { tools: {} },
44
- serverInfo: { name: "wao-dashboard", version: "1.0.0" },
45
- },
46
- }
47
- }
48
-
49
- if (method === "notifications/initialized") return null // no response needed
50
-
51
- if (method === "ping") {
52
- return { jsonrpc: "2.0", id, result: {} }
53
- }
54
-
55
- if (method === "tools/list") {
56
- return { jsonrpc: "2.0", id, result: { tools: TOOLS } }
57
- }
58
-
59
- if (method === "tools/call") {
60
- const toolName = params?.name
61
- if (toolName === "get_progress") {
62
- const data = readProgress()
63
- return {
64
- jsonrpc: "2.0", id,
65
- result: {
66
- content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
67
- },
68
- }
69
- }
70
- if (toolName === "open_dashboard") {
71
- return {
72
- jsonrpc: "2.0", id,
73
- result: {
74
- content: [{
75
- type: "text",
76
- text: [
77
- "WAO Dashboard URLs:",
78
- " Dev server: http://localhost:5174",
79
- " API server: http://localhost:3333",
80
- "",
81
- "Start both with: yarn start",
82
- "Start API only: yarn start:api",
83
- ].join("\n"),
84
- }],
85
- },
86
- }
87
- }
88
- return {
89
- jsonrpc: "2.0", id,
90
- error: { code: -32601, message: `Unknown tool: ${toolName}` },
91
- }
92
- }
93
-
94
- // Unknown method
95
- if (id !== undefined) {
96
- return {
97
- jsonrpc: "2.0", id,
98
- error: { code: -32601, message: `Method not found: ${method}` },
99
- }
100
- }
101
- return null
102
- }
103
-
104
- // --- stdio transport ---
105
- const rl = createInterface({ input: process.stdin })
106
- let buffer = ""
107
-
108
- process.stdin.on("data", (chunk) => {
109
- buffer += chunk.toString()
110
- let newlineIdx
111
- while ((newlineIdx = buffer.indexOf("\n")) !== -1) {
112
- const line = buffer.slice(0, newlineIdx).trim()
113
- buffer = buffer.slice(newlineIdx + 1)
114
- if (!line) continue
115
- try {
116
- const msg = JSON.parse(line)
117
- const response = handleRequest(msg)
118
- if (response) {
119
- process.stdout.write(JSON.stringify(response) + "\n")
120
- }
121
- } catch {
122
- // ignore malformed JSON
123
- }
124
- }
125
- })
126
-
127
- // Keep process alive
128
- process.stdin.resume()
@@ -1,45 +0,0 @@
1
- ---
2
- paths:
3
- - "scripts/**/*.js"
4
- ---
5
-
6
- # Deploy Rules
7
-
8
- ## Deploy Command
9
-
10
- ```bash
11
- yarn deploy # testnet, all src/*.lua
12
- yarn deploy src/counter.lua # testnet, one script
13
- yarn deploy --mainnet # remote HyperBEAM (push-1)
14
- yarn deploy --mainnet --lua # remote HyperBEAM with Lua mode
15
- yarn deploy --local-hb # local HyperBEAM (genesis-wasm)
16
- yarn deploy --local-hb --lua # local HyperBEAM with Lua mode
17
- yarn deploy --node https://push-3.forward.computer # custom node
18
- ```
19
-
20
- ## Three Deploy Targets
21
-
22
- ### Testnet (default)
23
- Uses `new AO().init(jwk)` with aoconnect — spawns process, loads Lua code via Eval message.
24
- - MU can be flaky (504 errors)
25
- - `receive()` works via CU polling
26
-
27
- ### Local HyperBEAM (`--local-hb`)
28
- Uses `new AO({ hb: "http://localhost:10001" }).init(jwk)` — deploys to a local Erlang node.
29
- - Default: `genesis_wasm` mode (legacynet compatible)
30
- - Add `--lua` for Lua mode (faster, no WASM, but no `receive()`)
31
- - Requires HyperBEAM running locally
32
-
33
- ### Remote HyperBEAM (`--mainnet`)
34
- Uses `new AO({ hb: "https://push-1.forward.computer" }).init(jwk)` — production deployment.
35
- - Uses `push-1` through `push-10` for full compute support
36
- - **Do NOT use `push.forward.computer`** — it's push-only (no compute)
37
- - Add `--lua` for Lua mode
38
- - Add `--node <url>` for a specific push node
39
-
40
- ## Wallet
41
-
42
- - Wallet resolved from `.env.hyperbeam` CWD, or `.wallet.json` in project root
43
- - Can also specify with `--wallet <path>` flag
44
- - Generate with `yarn keygen` or `npx wao keygen`
45
- - **Never commit `.wallet.json`** — it's in `.gitignore`