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,622 @@
1
+ import HB from "./hb.js"
2
+ import { DataItem } from "arbundles"
3
+ import {
4
+ toANS104Request,
5
+ parseSignatureInput,
6
+ tags,
7
+ toGraphObj,
8
+ } from "./utils.js"
9
+ import { keys, map, isNil, reverse, omit } from "ramda"
10
+
11
+ class Adaptor {
12
+ constructor({
13
+ hb_url,
14
+ aoconnect,
15
+ log = false,
16
+ db,
17
+ storage,
18
+ connect,
19
+ GQL,
20
+ cu,
21
+ su,
22
+ mu,
23
+ d1,
24
+ r2,
25
+ kv,
26
+ network = "ao.DN.1",
27
+ }) {
28
+ this.network = network
29
+ this.data = {}
30
+ this._dataTimestamps = {}
31
+ // Clean up abandoned chunk uploads every 60 seconds.
32
+ // unref() so this interval doesn't keep the Node event loop alive after
33
+ // the host server closes — without it, test processes that use Server
34
+ // (e.g. test/hyperbeam/relay.test.js) hang indefinitely waiting on this
35
+ // timer even after every other handle is cleaned up.
36
+ this._chunkCleanupInterval = setInterval(() => {
37
+ const now = Date.now()
38
+ for (const key of Object.keys(this._dataTimestamps)) {
39
+ if (now - this._dataTimestamps[key] > 5 * 60 * 1000) { // 5 min timeout
40
+ delete this.data[key]
41
+ delete this._dataTimestamps[key]
42
+ }
43
+ }
44
+ }, 60 * 1000)
45
+ if (typeof this._chunkCleanupInterval?.unref === "function") {
46
+ this._chunkCleanupInterval.unref()
47
+ }
48
+ let hb = null
49
+ if (hb_url) hb = new HB({ url: hb_url })
50
+ const {
51
+ ar: _ar,
52
+ message,
53
+ spawn,
54
+ dryrun,
55
+ result,
56
+ results,
57
+ mem,
58
+ monitor,
59
+ unmonitor,
60
+ recover,
61
+ evaluate,
62
+ } = connect(aoconnect, { log, cache: db, storage, hb, d1, r2, kv })
63
+ this.su_signer = su
64
+ this.cu_signer = cu
65
+ this.mu_signer = mu
66
+ this.recover = recover
67
+ this.monitor = monitor
68
+ this.unmonitor = unmonitor
69
+ this.evaluate = evaluate
70
+ this.spawn = spawn
71
+ this._ar = _ar
72
+ this.message = message
73
+ this.dryrun = dryrun
74
+ this.result = result
75
+ this.results = results
76
+ this.mem = mem
77
+ this.gql = new GQL({ mem, d1: d1 || null })
78
+ }
79
+ async get(req, res) {
80
+ return res(await this[req.device](req))
81
+ }
82
+ async bd(req) {
83
+ return await this[`bd_${req.method.toLowerCase()}`](req)
84
+ }
85
+ async ar(req) {
86
+ return await this[`ar_${req.method.toLowerCase()}`](req)
87
+ }
88
+ async su(req) {
89
+ return await this[`su_${req.method.toLowerCase()}`](req)
90
+ }
91
+ async mu(req) {
92
+ return await this[`mu_${req.method.toLowerCase()}`](req)
93
+ }
94
+ async cu(req) {
95
+ return await this[`cu_${req.method.toLowerCase()}`](req)
96
+ }
97
+ async bd_get(req) {
98
+ switch (req.path) {
99
+ default:
100
+ }
101
+ }
102
+
103
+ async bd_post(req) {
104
+ switch (req.path) {
105
+ case "/tx":
106
+ return await this.bd_post_tx(req)
107
+ default:
108
+ return await this.bad()
109
+ }
110
+ }
111
+
112
+ async ar_get(req) {
113
+ switch (req.path) {
114
+ case "/":
115
+ return await this.ar_get_root(req)
116
+ case "/wallet/:id/balance":
117
+ return await this.ar_get_wallet_balance(req)
118
+ case "/mint/:id/:amount":
119
+ return await this.ar_get_mint(req)
120
+ case "/tx/:id/offset":
121
+ return await this.ar_get_tx_offset(req)
122
+ case "/tx_anchor":
123
+ return await this.ar_get_tx_anchor(req)
124
+ case "/mine":
125
+ return await this.ar_get_mine(req)
126
+ case "/:id":
127
+ return await this.ar_get_id(req)
128
+ case "/price/:id":
129
+ return await this.ar_get_price(req)
130
+ default:
131
+ return await this.bad()
132
+ }
133
+ }
134
+
135
+ async ar_post(req) {
136
+ switch (req.path) {
137
+ case "/graphql":
138
+ return await this.ar_post_graphql(req)
139
+ case "/:id":
140
+ return await this.ar_post_id(req)
141
+ default:
142
+ return await this.bad()
143
+ }
144
+ }
145
+
146
+ async su_get(req) {
147
+ switch (req.path) {
148
+ case "/":
149
+ return await this.su_get_root(req)
150
+ case "/timestamp":
151
+ return await this.su_get_timestamp(req)
152
+ case "/:pid":
153
+ return await this.su_get_pid(req)
154
+ default:
155
+ return await this.bad()
156
+ }
157
+ }
158
+
159
+ async su_post(req) {
160
+ switch (req.path) {
161
+ default:
162
+ return await this.bad()
163
+ }
164
+ }
165
+
166
+ async mu_get(req) {
167
+ switch (req.path) {
168
+ case "/":
169
+ return await this.mu_get_root(req)
170
+ case "/monitor:pid":
171
+ return await this.mu_get_monitor(req)
172
+ default:
173
+ return await this.bad()
174
+ }
175
+ }
176
+
177
+ async mu_delete(req) {
178
+ switch (req.path) {
179
+ case "/monitor:pid":
180
+ return await this.mu_delete_monitor(req)
181
+ default:
182
+ return await this.bad()
183
+ }
184
+ }
185
+
186
+ async mu_post(req) {
187
+ switch (req.path) {
188
+ case "/":
189
+ return await this.mu_post_root(req)
190
+ case "/monitor:pid":
191
+ return await this.mu_post_monitor(req)
192
+ default:
193
+ return await this.bad()
194
+ }
195
+ }
196
+
197
+ async cu_get(req) {
198
+ switch (req.path) {
199
+ case "/":
200
+ return await this.cu_get_root(req)
201
+ case "/result/:mid":
202
+ return await this.cu_get_result(req)
203
+ case "/results/:pid":
204
+ return await this.cu_get_results(req)
205
+ case "/state/:pid":
206
+ return await this.cu_get_state(req)
207
+ default:
208
+ return await this.bad()
209
+ }
210
+ }
211
+
212
+ async cu_post(req) {
213
+ switch (req.path) {
214
+ case "/result/:mid": // not in the AO spec, but HyperBEAM queries it
215
+ return await this.cu_post_result(req)
216
+ case "/dry-run": // not in the AO spec
217
+ return await this.cu_post_dryrun(req)
218
+ case "/evaluate":
219
+ return await this.cu_post_evaluate(req)
220
+ default:
221
+ return await this.bad()
222
+ }
223
+ }
224
+ async bad({}) {
225
+ return { status: 400, error: "bad request" }
226
+ }
227
+
228
+ async bd_post_tx({ query, params, body, headers, method }) {
229
+ // todo: items from HB has wrong sigs and ids
230
+ return { send: "Success" }
231
+ if (!Buffer.isBuffer(body)) {
232
+ console.log("BD: Invalid body | expected raw Buffer")
233
+ return { status: 400, send: "Invalid body: expected raw Buffer" }
234
+ }
235
+ const lines = body.toString("utf8").split(/\r?\n/)
236
+ const sigs = {}
237
+ let currentKey = null
238
+
239
+ for (let line of lines) {
240
+ const trimmed = line.trim()
241
+ if (/^--[a-zA-Z0-9_\-=]+/.test(trimmed)) {
242
+ currentKey = null
243
+ continue
244
+ }
245
+ const headerMatch = trimmed.match(/^([a-zA-Z0-9_-]+):\s*(.*)$/)
246
+ if (headerMatch && !headerMatch[2].includes(": ")) {
247
+ const key = headerMatch[1]
248
+ const value = headerMatch[2]
249
+ sigs[key] = value
250
+ currentKey = key
251
+ } else if (currentKey) sigs[currentKey] += "\n" + line
252
+ }
253
+ sigs.target = headers.process
254
+ sigs.slot = headers.slot
255
+ /*
256
+ const input = parseSignatureInput(headers["signature-input"])
257
+ const key = { kty: "RSA", n: input.keyid, e: "AQAB" }
258
+ const verifier = createVerifier(
259
+ createPublicKey({ key, format: "jwk" }),
260
+ "rsa-pss-sha512"
261
+ )*/
262
+ let id = null
263
+ try {
264
+ /*
265
+ const isValid = await verifyMessage(
266
+ { keyLookup: params => ({ verify: verifier }) },
267
+ {
268
+ method: method,
269
+ headers: headers,
270
+ url: `http://ao.com${headers.path}`,
271
+ }
272
+ )*/
273
+ const item = toANS104Request(sigs).item
274
+
275
+ if (sigs.slot === "0" || sigs.type === "Process") {
276
+ for (let v of item.tags) if (v.name === "Type") v.value = "Process"
277
+ const res = await this.spawn({
278
+ http_msg: item,
279
+ module: sigs.module,
280
+ scheduler: sigs.scheduler,
281
+ })
282
+ } else if (sigs.type === "Message") {
283
+ for (let v of item.tags) if (v.name === "id") item.target = v.value
284
+ const res = await this.message({
285
+ slot: sigs.slot,
286
+ http_msg: item,
287
+ process: sigs.target,
288
+ })
289
+ }
290
+ } catch (e) {
291
+ console.log(e)
292
+ }
293
+ return { send: "Success" }
294
+ }
295
+
296
+ async cu_get_root({ query, params, body, headers, method }) {
297
+ return { json: { timestamp: Date.now(), address: this.cu_signer.addr } }
298
+ }
299
+
300
+ async cu_get_state({ query, params, body, headers, method }) {
301
+ const pid = params.pid
302
+ const p = await this.mem.get("env", pid)
303
+ const memory = p?.memory ?? null
304
+ if (!memory) {
305
+ return {
306
+ status: 404,
307
+ error: `TransactionNotFound: Process ${pid} was not found on gateway`,
308
+ }
309
+ } else return { send: Buffer.from(memory) }
310
+ }
311
+
312
+ async cu_post_dryrun({ query, params, body, headers, method }) {
313
+ const process = query["process-id"]
314
+ const { Id: id, Owner: owner, Tags: tags, Data: data } = body
315
+ const res2 = await this.dryrun({ id, owner, tags, data, process })
316
+ if (!res2) return { status: 400, error: true }
317
+ else {
318
+ delete res2.Memory
319
+ return { json: res2 }
320
+ }
321
+ }
322
+ async cu_get_results({ query, params, body, headers, method }) {
323
+ const pid = params.pid
324
+ const { from = null, to = null, sort = "ASC", limit = 25 } = query
325
+ const p = await this.mem.get("env", pid)
326
+ let results = p?.results ?? []
327
+ if (sort === "DESC") results = reverse(results)
328
+ let _res = []
329
+ let i = 1
330
+ let count = 0
331
+ let started = isNil(from)
332
+ for (let v of results) {
333
+ if (started) {
334
+ const msg = await this.mem.get("msgs", v)
335
+ _res.push({ cursor: v, node: msg?.res })
336
+ count++
337
+ if (!isNil(to) && v === to) break
338
+ if (limit <= count) break
339
+ } else if (from === v) started = true
340
+
341
+ i++
342
+ }
343
+ return { json: { edges: _res } }
344
+ }
345
+
346
+ async cu_get_result({ query, params, body, headers, method }) {
347
+ let message = params.mid
348
+ const process = query["process-id"]
349
+ // check if recovery is ongoing and
350
+ let p = await this.mem.get("env", process)
351
+ if (isNil(p)) {
352
+ const { success } = await this.recover(process)
353
+ if (!success) {
354
+ console.log("process not found:", query["process-id"])
355
+ return { status: 404, error: "not Found" }
356
+ }
357
+ p = await this.mem.get("env", process)
358
+ }
359
+ const slot = message
360
+ if (!/^[0-9a-zA-Z_-]{43,44}$/.test(message)) {
361
+ message = p?.results?.[slot]
362
+ }
363
+ if (isNil(message)) {
364
+ await this.recover(process)
365
+ p = await this.mem.get("env", process)
366
+ message = p?.results?.[slot]
367
+ if (isNil(message)) return { status: 404, error: "not Found" }
368
+ }
369
+ const res2 = await this.result({ message, process })
370
+ return { json: res2 }
371
+ }
372
+ async cu_post_result(...args) {
373
+ return await this.cu_get_result(...args)
374
+ }
375
+ async cu_post_evaluate({ query, params, body, headers, method }) {
376
+ const { message, process, data, tags: msgTags, from, is_spawn } = body
377
+ if (!process) return { status: 400, json: { error: "process required" } }
378
+ try {
379
+ const res = await this.evaluate({
380
+ message,
381
+ process,
382
+ data: data || "",
383
+ tags: msgTags,
384
+ from,
385
+ is_spawn,
386
+ module: body.module || (msgTags && tags(msgTags)?.Module),
387
+ scheduler: body.scheduler || (msgTags && tags(msgTags)?.Scheduler),
388
+ })
389
+ return { json: res || {} }
390
+ } catch (e) {
391
+ console.log("cu_post_evaluate error:", e)
392
+ return { status: 500, json: { error: e.message } }
393
+ }
394
+ }
395
+ async su_get_root({ query, params, body, headers, method }) {
396
+ return {
397
+ json: {
398
+ Unit: "Scheduler",
399
+ Timestamp: Date.now(),
400
+ Address: this.su_signer.addr,
401
+ Processes: await this.mem.getFieldKeys("env"),
402
+ },
403
+ }
404
+ }
405
+
406
+ async su_get_timestamp({ query, params, body, headers, method }) {
407
+ return { json: { timestamp: Date.now(), block_height: await this.mem.get("height") } }
408
+ }
409
+ async su_get_pid({ query, params, body, headers, method }) {
410
+ const pid = params.pid
411
+ const p = await this.mem.get("env", pid)
412
+ const edges = map(async v => {
413
+ const tx = await this.mem.getTx(v)
414
+ const _tags = tags(v.tags)
415
+ const mid = _tags.Message
416
+ const mtx = await this.mem.getTx(mid)
417
+ const mtxOwner = await this.mem.get("addrmap", mtx.owner)
418
+ const txOwner = await this.mem.get("addrmap", tx.owner)
419
+ return {
420
+ cursor: v,
421
+ node: {
422
+ message: {
423
+ id: mtx.id,
424
+ tags: mtx.tags,
425
+ owner: mtxOwner,
426
+ anchor: mtx.anchor ?? null,
427
+ target: pid,
428
+ signature: mtx.signature,
429
+ data: tx.data,
430
+ },
431
+ assignment: {
432
+ id: tx.id,
433
+ tags: tx.tags,
434
+ owner: txOwner,
435
+ anchor: tx.anchor ?? null,
436
+ target: null,
437
+ signature: tx.signature,
438
+ },
439
+ },
440
+ }
441
+ })(reverse(p?.results ?? [])) // need mod
442
+ return { json: { page_info: { has_next_page: false }, edges } }
443
+ }
444
+
445
+ async mu_get_root({ query, params, body, headers, method }) {
446
+ return { send: "ao messenger unit" }
447
+ }
448
+
449
+ async mu_post_root({ query, params, body, headers, method }) {
450
+ if (body.type === "Buffer" && Array.isArray(body.data)) {
451
+ body = new Uint8Array(body.data)
452
+ }
453
+ let valid = false
454
+ // todo: cannot verify node -> broser items
455
+ try {
456
+ valid = await DataItem.verify(body)
457
+ } catch (e) {
458
+ // verification may fail for cross-env items (node→browser); proceed anyway
459
+ }
460
+ let type = null
461
+ let item = null
462
+ if (valid || true) item = new DataItem(body)
463
+ await item.setSignature(item.rawSignature)
464
+ const _tags = tags(item.tags)
465
+ // Allow both ao.TN.1 (legacy testnet) and ao.DN.1 (WAO Devnet) variants
466
+ // through the local emulator. The variant is informational here; the
467
+ // local emulator doesn't actually need to enforce a strict network.
468
+ const _allowedNetworks = new Set([this.network, "ao.TN.1", "ao.DN.1"])
469
+ if (_tags.Variant && !_allowedNetworks.has(_tags.Variant)) {
470
+ return { status: 400, json: { error: `Variant mismatch: expected ${this.network}, got ${_tags.Variant}` } }
471
+ }
472
+ let err = null
473
+ if (_tags.Type === "Process") {
474
+ try {
475
+ const res = await this.spawn({
476
+ item,
477
+ module: _tags.Module,
478
+ scheduler: _tags.Scheduler,
479
+ _cu_url: _tags["CU-URL"] || undefined,
480
+ })
481
+ if (!res) err = "bad requrest"
482
+ } catch (e) {
483
+ console.error("MU spawn error:", e.message, e.stack)
484
+ return { status: 500, json: { error: e.message, stack: (e.stack || "").split("\n").slice(0, 8) } }
485
+ }
486
+ } else if (_tags.Type === "Message") {
487
+ try {
488
+ await this.message({ item, process: item.target })
489
+ } catch (e) {
490
+ console.error("MU message error:", e.message, e.stack)
491
+ err = e.message
492
+ }
493
+ } else if (_tags.Type === "Scheduler-Location" || _tags.Type === "Scheduler-Transfer") {
494
+ try {
495
+ await this._ar.postItems(item, this.su_signer.jwk)
496
+ } catch (e) {
497
+ console.error(`MU ${_tags.Type} error:`, e.message, e.stack)
498
+ err = e.message
499
+ }
500
+ } else err = true
501
+
502
+ if (err) return { status: 400, error: err }
503
+ else return { json: { id: item.id } }
504
+ }
505
+
506
+ async mu_post_monitor({ query, params, body, headers, method }) {
507
+ await this.monitor({ process: params.pid })
508
+ return { json: { id: params.pid, messag: "cron monitored!" } }
509
+ }
510
+ async mu_delete_monitor({ query, params, body, headers, method }) {
511
+ await this.unmonitor({ process: params.pid })
512
+ return { json: { id: params.pid, message: "cron deleted!" } }
513
+ }
514
+
515
+ async ar_get_root({ query, params, body, headers, method }) {
516
+ return {
517
+ json: {
518
+ version: 1,
519
+ timestamp: Date.now(),
520
+ height: await this.mem.get("height"),
521
+ network: this.network,
522
+ current: this.mem.getAnchor(),
523
+ },
524
+ }
525
+ }
526
+ async ar_get_wallet_balance({ query, params, body, headers, method }) {
527
+ return { send: "0" }
528
+ }
529
+ async ar_get_mint({ query, params, body, headers, method }) {
530
+ return { json: { id: "0" } }
531
+ }
532
+ async ar_get_tx_offset({ query, params, body, headers, method }) {
533
+ return { status: 400, send: null }
534
+ }
535
+ async ar_get_tx_anchor({ query, params, body, headers, method }) {
536
+ return { send: this.mem.getAnchor() }
537
+ }
538
+ async ar_get_mine({ query, params, body, headers, method }) {
539
+ return { json: params }
540
+ }
541
+ async ar_get_id({ query, params, body, headers, method }) {
542
+ const _data = await this._ar.data(params.id)
543
+ if (!_data) return { status: 404, send: null }
544
+ const tx = await this.mem.getTx(params.id)
545
+ let contentType = tx?._data?.type || ""
546
+ if (!contentType && tx?.tags) {
547
+ const ctTag = tx.tags.find(t => t.name === "Content-Type")
548
+ if (ctTag) contentType = ctTag.value
549
+ }
550
+ if (!contentType) contentType = "application/octet-stream"
551
+ const send = Buffer.isBuffer(_data) || _data instanceof Uint8Array
552
+ ? _data
553
+ : Buffer.from(String(_data), "base64")
554
+ return {
555
+ send,
556
+ headers: { "Content-Type": contentType },
557
+ }
558
+ }
559
+ async ar_get_price({ query, params, body, headers, method }) {
560
+ return { send: "0" }
561
+ }
562
+ async ar_post_graphql({ query, params, body, headers, method }) {
563
+ try {
564
+ const { query, variables } = body
565
+ const { tar, args } = toGraphObj({ query, variables })
566
+ const first = args.first ?? 10
567
+ let res2 = null
568
+ const fn = tar === "blocks" ? "blocks" : "txs"
569
+ res2 = await this.gql[fn]({ ...args, first: first + 1 })
570
+ const hasNextPage = res2.length > first
571
+ if (hasNextPage) res2 = res2.slice(0, first)
572
+ const edges = map(v => ({ node: v, cursor: v.cursor }), res2)
573
+ return {
574
+ json: {
575
+ data: { [tar]: { pageInfo: { hasNextPage }, edges } },
576
+ },
577
+ }
578
+ } catch (e) {
579
+ console.log(e)
580
+ return { status: 400, error: "bad request" }
581
+ }
582
+ }
583
+ async ar_post_id({ query, params, body, headers, method }) {
584
+ // id = "tx" | "chunk"
585
+ if (body.chunk) {
586
+ if (this.data[body.data_root]) {
587
+ this._dataTimestamps[body.data_root] = Date.now()
588
+ this.data[body.data_root].data += body.chunk
589
+ const buf = Buffer.from(body.chunk, "base64")
590
+ if (!this.data[body.data_root].chunks) {
591
+ this.data[body.data_root].chunks = buf
592
+ } else {
593
+ this.data[body.data_root].chunks = Buffer.concat([
594
+ this.data[body.data_root].chunks,
595
+ buf,
596
+ ])
597
+ }
598
+ delete body.chunk
599
+ if (
600
+ this.data[body.data_root].data_size <=
601
+ this.data[body.data_root].chunks.length
602
+ ) {
603
+ this.data[body.data_root].data =
604
+ this.data[body.data_root].chunks.toString("base64")
605
+ await this._ar.postTx(this.data[body.data_root])
606
+ delete this.data[body.data_root]
607
+ delete this._dataTimestamps[body.data_root]
608
+ }
609
+ }
610
+ return { json: { id: body.id } }
611
+ } else {
612
+ if (body.data_root && body.data === "") {
613
+ this.data[body.data_root] = body
614
+ this._dataTimestamps[body.data_root] = Date.now()
615
+ } else {
616
+ await this._ar.postTx(body)
617
+ }
618
+ return { json: { id: body.id } }
619
+ }
620
+ }
621
+ }
622
+ export default Adaptor
@@ -0,0 +1,11 @@
1
+ import { connect } from "./aoconnect-cf.js"
2
+ import { cu, su, mu } from "./accounts-web.js"
3
+ import GQL from "./tgql.js"
4
+ import Base from "./adaptor-base.js"
5
+
6
+ class Adaptor extends Base {
7
+ constructor(obj) {
8
+ super({ ...obj, GQL, cu, su, mu, connect })
9
+ }
10
+ }
11
+ export default Adaptor
@@ -0,0 +1,11 @@
1
+ import { connect } from "./aoconnect-web.js"
2
+ import { cu, su, mu } from "./accounts-web.js"
3
+ import GQL from "./tgql.js"
4
+ import Base from "./adaptor-base.js"
5
+
6
+ class Adaptor extends Base {
7
+ constructor(obj) {
8
+ super({ ...obj, GQL, cu, su, mu, connect })
9
+ }
10
+ }
11
+ export default Adaptor
package/src/adaptor.js ADDED
@@ -0,0 +1,10 @@
1
+ import { connect } from "./aoconnect.js"
2
+ import { GQL, cu, su, mu } from "./test.js"
3
+ import Base from "./adaptor-base.js"
4
+
5
+ class Adaptor extends Base {
6
+ constructor(obj) {
7
+ super({ ...obj, GQL, cu, su, mu, connect })
8
+ }
9
+ }
10
+ export default Adaptor