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,258 @@
1
+ # WAO App
2
+
3
+ This is a WAO application — a decentralized app built on AOS (ao Standard) and HyperBEAM.
4
+
5
+ See @package.json for available commands.
6
+
7
+ ## Auto-Start
8
+
9
+ On session start, the SessionStart hook checks for `tasks.json` and `plan.md`:
10
+ - **If they exist**: Resume the build — read `tasks.json`, find the first pending/in_progress task, and continue the `/build` workflow automatically. Read `.claude/skills/build/SKILL.md` and follow its resume instructions.
11
+ - **If they don't exist**: Wait for the user to run `/build <feature>` to start a new build.
12
+
13
+ ## Stack
14
+
15
+ - **AOS scripts** in `src/` — Lua process logic
16
+ - **Custom modules** in `custom-lua/` or `custom-wasm/` — standalone Lua or WASM64 (Rust) execution modules
17
+ - **JS tests** in `test/` — Node.js built-in test runner with `wao/test`
18
+ - **Deploy script** in `scripts/deploy.js` — deploys Lua source to testnet, local HB, or remote HB
19
+ - **HyperBEAM** — local HyperBEAM node (path configured in `.env.hyperbeam` CWD)
20
+ - **Frontend** in `frontend/` — Vite + React SPA with `wao/web` (optional)
21
+
22
+ ## Two Ways to Test AOS
23
+
24
+ ### In-Memory AOS (legacynet units)
25
+ Runs AOS WASM directly in Node.js. No server, no Erlang. Instant. Use for fast unit testing of AOS script logic.
26
+
27
+ ```js
28
+ import { AO, acc } from "wao/test"
29
+ const ao = await new AO().init(acc[0])
30
+ const { p } = await ao.deploy({ src_data })
31
+ ```
32
+
33
+ ### HyperBEAM AOS
34
+ Spawns a real Erlang HyperBEAM node. AOS processes run on the HyperBEAM stack via `genesis-wasm` device. Messages go through HTTP with slot-based scheduling. Use for integration testing the full production stack.
35
+
36
+ ```js
37
+ import { HyperBEAM } from "wao/test"
38
+ const hbeam = await new HyperBEAM({ reset: true }).ready()
39
+ const hb = hbeam.hb // HB HTTP client
40
+ ```
41
+
42
+ You can also run AOS through HyperBEAM by passing `hb` to AO:
43
+ ```js
44
+ import { AO } from "wao"
45
+ const ao = await new AO({ hb: hbeam.url }).init(jwk)
46
+ ```
47
+
48
+ ## Persistent Workflow
49
+
50
+ The build workflow is file-based so any session can pick up where another left off:
51
+
52
+ - **`plan.md`** — feature plan with AOS scripts, edge cases, test scenarios, validation gates
53
+ - **`tasks.json`** — ordered task list with status, files, details, and done criteria
54
+
55
+ On session start, check if `plan.md` and `tasks.json` exist. If they do, read them and continue from the first pending task. Update task status as you work.
56
+
57
+ ## Validation Gates
58
+
59
+ All gates must pass before completing a task:
60
+
61
+ 1. **Unit tests** — `yarn test` — in-memory AOS using mainnet WASM device (sub-second)
62
+ 2. **HyperBEAM integration** — `yarn test test/hyperbeam.test.js` — full Erlang stack (skip if no HyperBEAM)
63
+ 3. **Frontend tests** — `cd frontend && npm run test:unit` — vitest components (skip if no frontend)
64
+
65
+ The `TaskCompleted` hook enforces these gates automatically. Use `/validate` to run them manually.
66
+
67
+ ## Dashboard
68
+
69
+ Real-time build progress dashboard with SSE updates.
70
+
71
+ ```bash
72
+ yarn start # API server (:3333) + Vite dev server (:5174)
73
+ yarn start:api # API server only (:3333)
74
+ ```
75
+
76
+ - **API**: `http://localhost:3333` — serves `/api/progress` (JSON) and `/api/events` (SSE)
77
+ - **UI**: `http://localhost:5174` — Vite dev server with proxy to API
78
+ - **MCP**: `get_progress` and `open_dashboard` tools via @.mcp.json (auto-discovered by Claude Code)
79
+
80
+ The API server watches `tasks.json` and `plan.md` and pushes changes to connected dashboards via SSE. The dashboard falls back to 3s polling if SSE is unavailable.
81
+
82
+ ## Commands
83
+
84
+ ```bash
85
+ yarn start # dashboard (API + Vite)
86
+ yarn test # all unit tests
87
+ yarn test test/aos.test.js # in-memory AOS (fast)
88
+ yarn test test/hyperbeam.test.js # HyperBEAM integration
89
+ cd frontend && npm run test:unit # frontend vitest
90
+ cd frontend && npm run test:e2e # frontend Playwright
91
+ yarn deploy src/<name>.lua # testnet (default)
92
+ yarn deploy --local-hb # local HyperBEAM (genesis-wasm)
93
+ yarn deploy --local-hb --lua # local HyperBEAM (Lua mode)
94
+ yarn deploy --mainnet # remote HyperBEAM (push-1)
95
+ yarn deploy --mainnet --lua # remote HyperBEAM (Lua mode)
96
+ ```
97
+
98
+ Runs: `node --test --test-concurrency=1` (Node 24+; on Node 22 prefix with `--experimental-wasm-memory64`)
99
+
100
+ ## Deployment Targets
101
+
102
+ | Target | Command | Config |
103
+ |--------|---------|--------|
104
+ | AO Testnet | `yarn deploy` | `new AO().init(jwk)` via aoconnect |
105
+ | Local HB (Legacynet) | `yarn deploy --local-hb` | `new AO({ hb: "http://localhost:10001" }).init(jwk)` |
106
+ | Local HB (Lua) | `yarn deploy --local-hb --lua` | `new AO({ hb: url, mode: "lua" }).init(jwk)` |
107
+ | Remote HB (Production) | `yarn deploy --mainnet` | `new AO({ hb: "https://push-1.forward.computer" }).init(jwk)` |
108
+
109
+ - **Remote nodes**: Use `push-1` through `push-10` for full compute. `push.forward.computer` is push-only (no compute).
110
+ - **Lua mode**: Faster but no `receive()` — use `msg.reply()` pattern instead.
111
+ - **Wallet**: Run `yarn keygen` to generate `.wallet.json`.
112
+ - **HyperBEAM fork**: `git clone -b wao-final https://github.com/weavedb/HyperBEAM.git`
113
+
114
+ ### Frontend Commands
115
+
116
+ ```bash
117
+ cd frontend && npm run dev # Vite dev server (port 5173)
118
+ cd frontend && npm run test:unit # vitest component tests
119
+ cd frontend && npm run test:e2e # Playwright E2E tests
120
+ cd frontend && npm run build # production build
121
+ ```
122
+
123
+ ## Key Imports
124
+
125
+ ### Testing (`wao/test`)
126
+ ```js
127
+ import { AO, acc } from "wao/test" // in-memory AOS
128
+ import { HB, HyperBEAM, acc } from "wao/test" // HyperBEAM
129
+ ```
130
+
131
+ ### Production (`wao`)
132
+ ```js
133
+ import { AO, AR, GQL, HB } from "wao"
134
+ ```
135
+
136
+ ### Browser (`wao/web`)
137
+ ```js
138
+ import { AO, AR } from "wao/web" // browser only — NOT wao/test
139
+ ```
140
+
141
+ Use `wao/web` for frontend code. Use `wao/test` for Node.js tests only.
142
+
143
+ ## Wallet
144
+
145
+ Admin wallet auto-generated at `.wallet.json` (gitignored). This is an Arweave JWK used for deploy and HyperBEAM signing.
146
+
147
+ ## HyperBEAM
148
+
149
+ - Default port: **10001**
150
+ - Local node path: configured via `CWD` in `.env.hyperbeam`
151
+ - `HyperBEAM` class manages the Erlang server lifecycle
152
+ - `HB` class is the HTTP client that talks to it
153
+
154
+ ## Reference Docs
155
+
156
+ Read these on-demand when building features — they contain complete API references. Don't load all at once; read the one relevant to your current task:
157
+
158
+ | When you're... | Read this |
159
+ |----------------|-----------|
160
+ | Writing JS code (tests, deploy) | `docs/wao-sdk.md` — AO, HB, AR, GQL, Process handle APIs |
161
+ | Writing AOS scripts | `docs/aos-lua.md` — msg object, ao globals, patterns, blueprints |
162
+ | Building custom Lua modules | `docs/docs/pages/tutorials/custom-lua.mdx` — lua@5.3a device, compute function |
163
+ | Building custom WASM64 modules | `docs/docs/pages/tutorials/rust-wasm64.mdx` — wasm-64@1.0 device, Rust no_std |
164
+ | Working with HyperBEAM | `docs/hyperbeam-devices.md` — device catalog, endpoints, config |
165
+ | Building Erlang devices | `docs/hyperbeam-dev.md` — device protocol, templates, state |
166
+ | Debugging issues | `docs/debug.md` — known issues, error table, fixes |
167
+ | Building frontend | `docs/wao-sdk.md` (browser section) — wao/web, ArConnect |
168
+
169
+ ## Agent Teams
170
+
171
+ For complex tasks that benefit from parallel work, create an agent team. Teammates run as separate Claude Code sessions with their own context windows, coordinating through a shared task list.
172
+
173
+ **When to use teams** (instead of working solo or using subagents):
174
+ - Building multiple independent features in parallel (each teammate owns separate files)
175
+ - Research + build: one teammate researches patterns in docs/, another implements
176
+ - Debug with competing hypotheses: teammates test different theories simultaneously
177
+ - Cross-layer work: one teammate on AOS scripts, one on JS tests, one on Erlang devices
178
+
179
+ **When NOT to use teams:**
180
+ - Sequential tasks or same-file edits (coordination overhead > benefit)
181
+ - Simple features that one session can handle
182
+ - Quick fixes or single-script changes (use subagents instead)
183
+
184
+ **Team patterns for WAO:**
185
+ ```
186
+ # Parallel feature development
187
+ Create a team: one teammate builds the AOS script in src/,
188
+ another writes tests in test/, a third handles deployment config.
189
+
190
+ # Research and build
191
+ Create a team: one teammate researches the AOS patterns in docs/aos-lua.md,
192
+ another implements the AOS script based on findings.
193
+
194
+ # Debug investigation
195
+ Create a team with 3 teammates to investigate the timeout from different angles:
196
+ port conflicts, WASM memory, and HyperBEAM configuration.
197
+ ```
198
+
199
+ Use `/team` to set up common team configurations.
200
+
201
+ ## Skills
202
+
203
+ Slash commands in `.claude/skills/`:
204
+
205
+ ### Build workflow
206
+ - `/build` — full build workflow (plan -> build -> test -> validate -> README). Orchestrates all steps, manages tasks.json throughout. Supports resume — picks up from `current_step` if interrupted.
207
+ - `/plan` — plan a feature (writes plan.md + tasks.json for persistent workflow)
208
+ - `/validate` — post-build validation (tests, Lua pitfalls, coverage)
209
+ - `/readme` — generate comprehensive README.md from plan, code, and tests
210
+
211
+ ### Build steps (called by `/build` or standalone)
212
+ - `/build-aos` — build AOS scripts + in-memory tests, iterate until 100% pass
213
+ - `/build-module` — build custom WASM64 (Rust) or standalone Lua modules + HyperBEAM integration tests
214
+ - `/build-device` — build Erlang device + eunit tests, iterate until 100% pass
215
+ - `/build-frontend` — build Vite components + vitest tests, iterate until 100% pass
216
+
217
+ ### Test steps (called by `/build` or standalone)
218
+ - `/test` — run in-memory AOS tests
219
+ - `/test-hb` — run HyperBEAM integration tests
220
+ - `/test-device` — WAO SDK integration tests for Erlang devices
221
+ - `/test-e2e` — Playwright E2E with live HyperBEAM backend
222
+
223
+ ### Other
224
+ - `/report` — show progress on the current plan (task status, test results)
225
+ - `/deploy` — deploy Lua source to testnet, local HB, or remote HB (with pre-deploy validation)
226
+ - `/create-aos` — scaffold new AOS script + test
227
+ - `/create-module` — scaffold new custom module (WASM64 or Lua) + test
228
+ - `/create-device` — scaffold new HyperBEAM device + test
229
+ - `/debug` — troubleshoot issues
230
+ - `/team` — set up an agent team for parallel development
231
+ - `/dev` — start Vite dev server for frontend
232
+
233
+ ## Subagents
234
+
235
+ Specialized agents in `.claude/agents/`:
236
+ - `builder` — general-purpose feature builder (Lua + tests + iterate)
237
+ - `tester` — test specialist (failures, debugging, verification)
238
+ - `device-builder` — Erlang device specialist (protocol, compilation, eunit)
239
+
240
+ ## Rules
241
+
242
+ Path-specific rules in `.claude/rules/` auto-inject when editing matching files:
243
+ - `lua.md` — AOS script patterns (triggers on `src/**/*.lua`)
244
+ - `testing.md` — test patterns (triggers on `test/**/*.js`)
245
+ - `hyperbeam.md` — HyperBEAM device patterns (triggers on `HyperBEAM/**/*.erl`)
246
+ - `deploy.md` — deployment conventions (triggers on `scripts/**/*.js`)
247
+ - `frontend.md` — Frontend patterns (triggers on `frontend/**/*.{jsx,tsx,js}`)
248
+
249
+ ## Personal Preferences
250
+
251
+ Create `CLAUDE.local.md` for personal project-specific preferences (auto-gitignored):
252
+ - Your sandbox URLs
253
+ - Your preferred test files
254
+ - Local HyperBEAM overrides
255
+
256
+ ## Auto Memory
257
+
258
+ Claude automatically saves useful learnings as you work (build patterns, debug insights, architecture notes) to `~/.claude/projects/<project>/memory/MEMORY.md` (per-machine, not committed). Use `/memory` to view and edit saved memories.
@@ -0,0 +1,85 @@
1
+
2
+ #### 1. Create an APP
3
+
4
+ ```bash
5
+ npx wao create myapp && cd myapp
6
+ ```
7
+
8
+ #### 2. Run WAO Proxy
9
+
10
+ ```bash
11
+ npx wao proxy
12
+ ```
13
+
14
+ #### 3. Connect the Browser to the Proxy
15
+
16
+ Go to [the web app](https://preview.wao.eco) and open `Networks`, then click `Proxy`.
17
+
18
+ #### 4. Run Test
19
+
20
+ ```bash
21
+ yarn test test/hyperbeam.test.js
22
+ ```
23
+
24
+ #### 5. Deploy
25
+
26
+ ```bash
27
+ # AO testnet (default)
28
+ yarn deploy src/counter.lua
29
+
30
+ # Local HyperBEAM (genesis-wasm)
31
+ yarn deploy --local-hb src/counter.lua
32
+
33
+ # Remote HyperBEAM (production)
34
+ yarn deploy --mainnet src/counter.lua
35
+
36
+ # Lua mode (any target)
37
+ yarn deploy --local-hb --lua src/counter.lua
38
+ ```
39
+
40
+ ---
41
+
42
+ ### Deployment Guide
43
+
44
+ | Target | Command | Config |
45
+ |--------|---------|--------|
46
+ | AO Testnet | `yarn deploy` | `new AO().init(jwk)` |
47
+ | Local HB (Legacynet) | `yarn deploy --local-hb` | `new AO({ hb: "http://localhost:10001" }).init(jwk)` |
48
+ | Local HB (Lua) | `yarn deploy --local-hb --lua` | `new AO({ hb: url, mode: "lua" }).init(jwk)` |
49
+ | Remote HB | `yarn deploy --mainnet` | `new AO({ hb: "https://push-1.forward.computer" }).init(jwk)` |
50
+
51
+ **Wallet**: Run `yarn keygen` to generate `.wallet.json` (gitignored).
52
+
53
+ **Remote nodes**: Use `push-1` through `push-10` for full compute. `push.forward.computer` is push-only (no compute).
54
+
55
+ **HyperBEAM fork**: `git clone -b wao-final https://github.com/weavedb/HyperBEAM.git && cd HyperBEAM && rebar3 compile`
56
+
57
+ ---
58
+
59
+ ### Vibe Engineering
60
+
61
+ This project includes a Claude Code toolchain for agent-assisted development.
62
+
63
+ - **`CLAUDE.md`** — project context loaded automatically by the agent
64
+ - **`docs/`** — full API references read on-demand:
65
+ - `wao-sdk.md` — WAO SDK API (AO, HB, AR, GQL, all methods)
66
+ - `aos-lua.md` — AOS scripts (msg, ao globals, blueprints)
67
+ - `hyperbeam-devices.md` — HyperBEAM device catalog (endpoints, config)
68
+ - `hyperbeam-dev.md` — Building custom devices (Erlang protocol, templates)
69
+ - `debug.md` — Troubleshooting guide (known issues, fixes)
70
+ - **`.claude/rules/`** — stack-specific rules auto-apply when editing:
71
+ - `lua.md` for AOS script files in `src/`
72
+ - `testing.md` for test patterns in `test/`
73
+ - `hyperbeam.md` for Erlang device files in `HyperBEAM/`
74
+ - `deploy.md` for deploy scripts in `scripts/`
75
+ - **Slash commands:**
76
+ - `/test` — in-memory AOS tests (fast unit tests)
77
+ - `/test-hb` — HyperBEAM integration tests (full stack)
78
+ - `/deploy` — deploy to testnet, local HB, or remote HB
79
+ - `/create-aos` — scaffold a new AOS script + test file
80
+ - `/create-device` — scaffold a HyperBEAM Erlang device + test
81
+ - `/debug` — troubleshoot issues (ports, processes, errors)
82
+ - **Agents** in `.claude/agents/`:
83
+ - `builder.md` — builds features end-to-end (Lua + tests + iterate)
84
+ - `tester.md` — runs tests and fixes failures
85
+ - `device-builder.md` — builds HyperBEAM Erlang devices
@@ -0,0 +1,163 @@
1
+ <!doctype html>
2
+ <html lang="en" data-color-mode="light" data-light-theme="light" data-dark-theme="dark">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <title>HyperADD Dashboard</title>
7
+ <link rel="icon" type="image/png" href="/favicon.png" />
8
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@primer/css@21/dist/primer.css">
9
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/github-markdown-css@5/github-markdown.min.css">
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/styles/github.min.css" id="hljs-light">
11
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/styles/github-dark.min.css" id="hljs-dark" disabled>
12
+ <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/highlight.min.js"></script>
13
+ <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/languages/erlang.min.js"></script>
14
+ <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/languages/lua.min.js"></script>
15
+ <script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@11.9.0/build/languages/rust.min.js"></script>
16
+ <style>
17
+ /* Only custom CSS for things Primer doesn't provide */
18
+ @keyframes spin { from { transform: rotate(0deg) } to { transform: rotate(360deg) } }
19
+ .anim-spin { animation: spin 1s linear infinite; }
20
+ .anim-spin-slow { animation: spin 1.5s linear infinite; }
21
+ [data-color-mode="dark"] .logo-invert { filter: invert(1); }
22
+
23
+ /* Dark toggle — GitHub-style icon button */
24
+ .dark-toggle {
25
+ display: flex; align-items: center; justify-content: center;
26
+ width: 32px; height: 32px; border-radius: 6px;
27
+ border: 1px solid var(--color-border-default, #d0d7de);
28
+ background: var(--color-canvas-default, #fff); cursor: pointer;
29
+ color: var(--color-fg-muted, #656d76);
30
+ transition: background 0.15s, border-color 0.15s; appearance: none; padding: 0;
31
+ }
32
+ .dark-toggle:hover { background-color: var(--color-canvas-subtle, #f6f8fa); color: var(--color-fg-default); border-color: var(--color-border-default, #d0d7de); }
33
+ .dark-toggle:focus { outline: 2px solid var(--color-accent-fg); outline-offset: -2px; }
34
+ /* Override Primer Header to match modern GitHub (light gray, not black) */
35
+ .Header { background-color: var(--color-canvas-subtle, #f6f8fa) !important; color: var(--color-fg-default) !important; border-bottom: 1px solid var(--color-border-muted, #d0d7de); }
36
+ .Header .Header-link { color: var(--color-fg-default) !important; }
37
+ [data-color-mode="dark"] .Header { background-color: var(--color-canvas-subtle, #161b22) !important; border-bottom-color: var(--color-border-default, #30363d); }
38
+ /* Dark toggle inside Header */
39
+ .Header .dark-toggle { background: transparent; border-color: var(--color-border-default, #d0d7de); }
40
+ .Header .dark-toggle:hover { background-color: var(--color-neutral-muted); }
41
+
42
+ /* UnderlineNav button — Primer needs this for <button> elements */
43
+ button.UnderlineNav-item {
44
+ background: transparent; border: 0;
45
+ border-bottom: 2px solid transparent; border-radius: 0;
46
+ appearance: none; cursor: pointer;
47
+ padding: 8px 16px; font-size: 14px; line-height: 30px;
48
+ color: var(--color-fg-default);
49
+ margin-bottom: -1px;
50
+ }
51
+ button.UnderlineNav-item:hover {
52
+ border-bottom-color: var(--color-neutral-muted);
53
+ text-decoration: none;
54
+ }
55
+ button.UnderlineNav-item[aria-selected="true"] {
56
+ font-weight: 600;
57
+ border-bottom-color: var(--color-accent-fg);
58
+ color: var(--color-fg-default);
59
+ }
60
+
61
+ /* Progress bar override — ensure correct height and color */
62
+ .Progress { height: 8px; }
63
+ .Progress-item { background-color: var(--color-success-emphasis, #1f883d) !important; }
64
+
65
+ /* Status icon circles */
66
+ .icon-circle { width: 22px; height: 22px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
67
+ .icon-circle-success { background-color: var(--color-success-emphasis, #1f883d); }
68
+ .icon-circle-attention { background-color: var(--color-attention-emphasis, #bf8700); }
69
+ .icon-circle-empty { border: 2px solid var(--color-border-default, #d0d7de); }
70
+
71
+ /* Clickable file rows */
72
+ .file-row { cursor: pointer; transition: background 0.1s; }
73
+ .file-row:hover { background-color: var(--color-neutral-subtle) !important; }
74
+
75
+ /* Code viewer — GitHub blob-style */
76
+ .code-view { overflow-x: auto; }
77
+ .code-view table { width: 100%; border-collapse: collapse; font-size: 12px; line-height: 20px; tab-size: 4; }
78
+ .code-view td { padding: 0; vertical-align: top; font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace; }
79
+ .code-view .ln { width: 1px; min-width: 50px; padding: 0 10px; text-align: right; user-select: none; white-space: nowrap; color: var(--color-fg-subtle); }
80
+ .code-view .lc { padding: 0 16px 0 10px; white-space: pre; }
81
+ .code-view tr:hover { background: var(--color-neutral-subtle); }
82
+ .code-view .hljs { background: transparent !important; }
83
+
84
+ /* Back button */
85
+ .back-btn {
86
+ display: inline-flex; align-items: center; gap: 4px;
87
+ padding: 4px 12px 4px 8px; border: 1px solid var(--color-border-default);
88
+ border-radius: 6px; background: transparent; cursor: pointer;
89
+ font-size: 12px; color: var(--color-fg-muted); font-family: inherit;
90
+ }
91
+ .back-btn:hover { background: var(--color-neutral-subtle); color: var(--color-fg-default); }
92
+
93
+ /* Skill badge — Primer Label doesn't have filled-color style */
94
+ .skill-badge {
95
+ display: inline-block; padding: 0 6px; font-size: 11px; font-weight: 600; line-height: 18px;
96
+ border-radius: 4px; color: #fff; font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
97
+ }
98
+
99
+ /* Markdown body — explicit light/dark overrides (github-markdown-css ignores data-color-mode) */
100
+ .markdown-body { background-color: transparent !important; color: inherit !important; }
101
+ .markdown-body pre { background-color: #f6f8fa !important; }
102
+ .markdown-body code { background-color: rgba(175,184,193,0.2) !important; }
103
+ .markdown-body pre code { background-color: transparent !important; }
104
+ .markdown-body table { border-color: #d0d7de !important; }
105
+ .markdown-body table th, .markdown-body table td { border-color: #d0d7de !important; }
106
+ .markdown-body table tr { background-color: transparent !important; }
107
+ .markdown-body table tr:nth-child(2n) { background-color: #f6f8fa !important; }
108
+ .markdown-body hr { background-color: #d0d7de !important; }
109
+ [data-color-mode="dark"] .markdown-body pre { background-color: #161b22 !important; }
110
+ [data-color-mode="dark"] .markdown-body code { background-color: rgba(110,118,129,0.4) !important; }
111
+ [data-color-mode="dark"] .markdown-body pre code { background-color: transparent !important; }
112
+ [data-color-mode="dark"] .markdown-body table { border-color: #30363d !important; }
113
+ [data-color-mode="dark"] .markdown-body table th, [data-color-mode="dark"] .markdown-body table td { border-color: #30363d !important; }
114
+ [data-color-mode="dark"] .markdown-body table tr:nth-child(2n) { background-color: #161b22 !important; }
115
+ [data-color-mode="dark"] .markdown-body hr { background-color: #30363d !important; }
116
+
117
+ /* Compact markdown */
118
+ .markdown-compact { font-size: 14px; }
119
+ .markdown-compact h1 { font-size: 20px; margin: 16px 0 8px; padding-bottom: 6px; border-bottom: 1px solid var(--color-border-muted); }
120
+ .markdown-compact h2 { font-size: 16px; margin: 14px 0 6px; padding-bottom: 4px; border-bottom: 1px solid var(--color-border-muted); }
121
+ .markdown-compact h3 { font-size: 14px; font-weight: 600; margin: 10px 0 4px; }
122
+ .markdown-compact p { margin: 4px 0; }
123
+ .markdown-compact li { margin: 2px 0; }
124
+ .markdown-compact pre {
125
+ margin: 8px 0; padding: 16px; font-size: 12px; line-height: 1.45;
126
+ overflow: auto; border-radius: 6px;
127
+ background-color: #f6f8fa !important;
128
+ }
129
+ [data-color-mode="dark"] .markdown-compact pre { background-color: #161b22 !important; }
130
+ .markdown-compact code {
131
+ font-size: 85%; padding: 0.2em 0.4em; border-radius: 6px;
132
+ background-color: rgba(175,184,193,0.2);
133
+ }
134
+ [data-color-mode="dark"] .markdown-compact code { background-color: rgba(110,118,129,0.4); }
135
+ .markdown-compact pre code {
136
+ padding: 0; background: none !important; font-size: 100%;
137
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
138
+ }
139
+ .markdown-compact .hljs,
140
+ .markdown-compact pre code.hljs { background: transparent !important; }
141
+ .markdown-compact ul, .markdown-compact ol { padding-left: 24px; margin: 4px 0; }
142
+
143
+ /* Code block copy button */
144
+ .code-block-wrap { position: relative; }
145
+ .code-copy-btn {
146
+ position: absolute; top: 8px; right: 8px; z-index: 1;
147
+ display: flex; align-items: center; justify-content: center;
148
+ width: 32px; height: 32px; border-radius: 6px;
149
+ border: 1px solid var(--color-border-default, #d0d7de);
150
+ background: var(--color-canvas-default, #fff); color: var(--color-fg-muted, #656d76);
151
+ cursor: pointer; opacity: 0; transition: opacity 0.15s;
152
+ }
153
+ .code-block-wrap:hover .code-copy-btn { opacity: 1; }
154
+ .code-copy-btn:hover { background: var(--color-canvas-subtle, #f6f8fa); color: var(--color-fg-default, #1f2328); }
155
+ [data-color-mode="dark"] .code-copy-btn { background: #161b22; border-color: #30363d; color: #8b949e; }
156
+ [data-color-mode="dark"] .code-copy-btn:hover { background: #30363d; color: #e6edf3; }
157
+ </style>
158
+ </head>
159
+ <body class="color-bg-default color-fg-default">
160
+ <div id="root"></div>
161
+ <script type="module" src="/src/main.jsx"></script>
162
+ </body>
163
+ </html>
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "wao-dashboard",
3
+ "private": true,
4
+ "type": "module",
5
+ "scripts": {
6
+ "dev": "vite",
7
+ "build": "vite build",
8
+ "preview": "vite preview"
9
+ },
10
+ "dependencies": {
11
+ "react": "^18.3.1",
12
+ "react-dom": "^18.3.1"
13
+ },
14
+ "devDependencies": {
15
+ "@vitejs/plugin-react": "^4.3.4",
16
+ "vite": "^6.0.0"
17
+ }
18
+ }