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
package/src/bao.js ADDED
@@ -0,0 +1,141 @@
1
+ import MAO from "./ao.js"
2
+ import { createDataItemSigner } from "@permaweb/aoconnect-69"
3
+ import { srcs, buildTags } from "./utils.js"
4
+ import { mergeLeft, is, map } from "ramda"
5
+ import HB from "./hb.js"
6
+
7
+ const wait = ms => new Promise(res => setTimeout(() => res(), ms))
8
+ let log = `
9
+ local json = require("json")
10
+ ao = ao or {}
11
+
12
+ function ao.log(...)
13
+ local args = {...}
14
+ local txt = json.encode(args)
15
+ if type(ao.outbox.Output) == 'string' then
16
+ ao.outbox.Output = {ao.outbox.Output}
17
+ end
18
+ table.insert(ao.outbox.Output, txt)
19
+ ao.outbox.Logs = ao.outbox.Logs or {}
20
+ table.insert(ao.outbox.Logs, txt)
21
+ end
22
+
23
+ function ao.result(result)
24
+ if ao.outbox.Error or result.Error then
25
+ return { Error = result.Error or ao.outbox.Error, Output = ao.outbox.Logs }
26
+ end
27
+ return {
28
+ Output = ao.outbox.Logs or result.Output or ao.outbox.Output,
29
+ Messages = ao.outbox.Messages,
30
+ Spawns = ao.outbox.Spawns,
31
+ Assignments = ao.outbox.Assignments,
32
+ }
33
+ end
34
+ `
35
+
36
+ const renderLogs = logs => {
37
+ if (is(Array, logs) && logs.length > 0) {
38
+ for (const v of logs) {
39
+ let l = v
40
+ try {
41
+ const p = JSON.parse(v)
42
+ if (JSON.stringify(p) === v) l = p
43
+ console.log(...l)
44
+ } catch (e) {
45
+ console.log(l)
46
+ }
47
+ }
48
+ }
49
+ }
50
+
51
+ class AO extends MAO {
52
+ constructor(opt = {}) {
53
+ if (opt.hb_url) opt.hb = new HB({ url: opt.hb_url })
54
+ super({ ...opt, in_memory: true })
55
+ this.log = opt.log ?? true
56
+ this.in_memory = true
57
+ this.createDataItemSigner = opt.createDataItemSigner ?? createDataItemSigner
58
+ this.hb = opt.hb
59
+ const {
60
+ modules,
61
+ results,
62
+ assign,
63
+ result,
64
+ message,
65
+ spawn,
66
+ dryrun,
67
+ monitor,
68
+ unmonitor,
69
+ recover,
70
+ mem,
71
+ } = opt.connect(opt.mem, {
72
+ variant: opt.variant,
73
+ extensions: opt.extensions,
74
+ cache: opt.cache,
75
+ reset: opt.reset,
76
+ hb: this.hb,
77
+ })
78
+ this.recover = recover
79
+ this.assign = assign
80
+ this.result = async (...opt) => {
81
+ let res = await result(...opt)
82
+ if (!res) {
83
+ await wait(100) // todo: why do we need to wait?
84
+ res = await result(...opt)
85
+ }
86
+ if (res) renderLogs(res.Output)
87
+ return res
88
+ }
89
+
90
+ this.results = results
91
+ this.message = message
92
+ this.spawn = async (...opt) => {
93
+ const res = await spawn(...opt)
94
+ if (!opt[0].http_msg && this.log) await this.load({ data: log, pid: res })
95
+ return res
96
+ }
97
+ this.dryrun = async (...opt) => {
98
+ const res = await dryrun(...opt)
99
+ if (res) renderLogs(res.Output)
100
+ return res
101
+ }
102
+
103
+ this.monitor = monitor
104
+ this.unmonitor = unmonitor
105
+ this.mem = mem
106
+ this.ar = new opt.AR({ mem })
107
+ }
108
+
109
+ async init(jwk) {
110
+ if (!jwk && this.acc[0]) jwk = this.acc[0].jwk
111
+ await this.ar.init(jwk)
112
+ if (this.hb) await this.hb.init(jwk)
113
+ return this
114
+ }
115
+
116
+ async postModule({ data, tags = {}, jwk }) {
117
+ let err = null
118
+ ;({ jwk, err } = await this.ar.checkWallet({ jwk }))
119
+ if (err) return { err }
120
+ const t = mergeLeft(tags, {
121
+ "Data-Protocol": "ao",
122
+ Variant: this.variant ?? "ao.TN.1",
123
+ Type: "Module",
124
+ "Module-Format": "wasm64-unknown-emscripten-draft_2024_02_15",
125
+ "Input-Encoding": "JSON-V1",
126
+ "Output-Encoding": "JSON-V1",
127
+ "Memory-Limit": "1-gb",
128
+ "Compute-Limit": "9000000000000",
129
+ })
130
+ const signer = this.createDataItemSigner(jwk)
131
+ const { id, owner, item } = await this.ar.dataitem({
132
+ tags: t,
133
+ data,
134
+ signer,
135
+ })
136
+ await this.ar.postItems(item, jwk)
137
+ return { id }
138
+ }
139
+ }
140
+
141
+ export default AO
package/src/bar.js ADDED
@@ -0,0 +1,366 @@
1
+ import MAR from "./ar.js"
2
+ import { buildTags, tags as t } from "./utils.js"
3
+ import * as WarpArBundles from "warp-arbundles"
4
+ const pkg = WarpArBundles.default ?? WarpArBundles
5
+ const { DataItem } = pkg
6
+ import { Bundle, bundleAndSignData, ArweaveSigner } from "arbundles"
7
+ import base64url from "base64url"
8
+ import GQL from "./tgql.js"
9
+ import { last, is, includes, isNil } from "ramda"
10
+
11
+ function parseSignatureInput(input) {
12
+ const match = input.match(
13
+ /^([^=]+)=\(([^)]+)\);alg="([^"]+)";keyid="([^"]+)"$/
14
+ )
15
+ if (!match) throw new Error("Invalid signature-input format")
16
+
17
+ const [, label, fieldsStr, alg, keyid] = match
18
+ const fields = fieldsStr.split('" "').map(f => f.replace(/"/g, ""))
19
+ return { label, fields, alg, keyid }
20
+ }
21
+
22
+ class AR extends MAR {
23
+ constructor(opt = {}) {
24
+ super({ ...opt, in_memory: true })
25
+ this.log = opt.log === true
26
+ this.in_memory = true
27
+ this.mem = opt.mem ?? new opt.ArMem()
28
+ this.gql = new GQL({ mem: this.mem })
29
+ this.arweave = this.mem.arweave
30
+ // Block batching (DB path only)
31
+ this._pendingBatch = []
32
+ this._flushTimer = null
33
+ this._batchWindow = opt.batchWindow ?? 0 // ms, 0 = disabled
34
+ }
35
+ isHttpMsg(item) {
36
+ if (typeof item === "object" && item !== null) {
37
+ const tags = t(item.tags)
38
+ if (!isNil(tags["signature-input"])) return true
39
+ }
40
+ return false
41
+ }
42
+
43
+ async httpmsg(msg) {
44
+ const tags = t(msg.tags)
45
+ let owner = null
46
+ try {
47
+ const { keyid: n } = parseSignatureInput(tags["signature-input"])
48
+ owner = await this.arweave.wallets.jwkToAddress({ n })
49
+ } catch (e) {
50
+ owner = tags.Owner ?? null
51
+ }
52
+ await this.mem.set(msg, "txs", msg.id)
53
+ return { item: msg, id: tags.id, tags, owner }
54
+ }
55
+
56
+ async owner(di) {
57
+ return base64url.encode(
58
+ Buffer.from(await crypto.subtle.digest("SHA-256", di.rawOwner))
59
+ )
60
+ }
61
+
62
+ async dataitem({ target = "", data = "1984", tags = {}, signer, item }) {
63
+ let di = item
64
+ if (!di) {
65
+ if (!item?.signature) {
66
+ const _item = await signer({ data, tags: buildTags(tags), target })
67
+ di = new DataItem(_item.raw)
68
+ }
69
+ } else tags = t(di.tags)
70
+ const owner = await this.owner(di)
71
+ return { id: await di.id, owner, item: di, tags }
72
+ }
73
+
74
+ async post({ data = "1984", tags = {}, jwk }) {
75
+ let err = null
76
+ ;({ err, jwk } = await this.checkWallet({ jwk }))
77
+ if (err) return { err }
78
+ let tx = await this.arweave.createTransaction({ data: data })
79
+ for (const v of buildTags(null, tags)) tx.addTag(v.name, v.value)
80
+ return await this.postTx(tx, jwk)
81
+ }
82
+
83
+ async postItems(items, jwk) {
84
+ // Remote mode: forward bundle to main AR via HTTP
85
+ if (this.mem._remote) {
86
+ let err = null
87
+ ;({ err, jwk } = await this.checkWallet({ jwk }))
88
+ if (err) return { err }
89
+ if (!is(Array, items)) items = [items]
90
+ const bundle = await bundleAndSignData(items, new ArweaveSigner(jwk))
91
+ const tx = await this.mem.arweave.createTransaction(
92
+ { data: bundle.binary },
93
+ jwk
94
+ )
95
+ tx.addTag("Bundle-Format", "binary")
96
+ tx.addTag("Bundle-Version", "2.0.0")
97
+ return await this.postTx(tx, jwk, items.map(i => ({ id: i.id })))
98
+ }
99
+ let err = null
100
+ ;({ err, jwk } = await this.checkWallet({ jwk }))
101
+ if (err) return { err }
102
+ if (!is(Array, items)) items = [items]
103
+ let _items = []
104
+ for (const di of items) {
105
+ di._id = await di.id
106
+ const data_size = Buffer.byteLength(di.rawData).toString()
107
+ let data_type = ""
108
+ for (const t of di.tags)
109
+ if (t.name === "Content-Type") data_type = t.value
110
+ const owner = await this.owner(di)
111
+ await this.mem.set({ key: di.owner, address: owner }, "addrmap", owner)
112
+ // D1: write addrmap
113
+ if (this.mem.db?.d1WriteAddrmap) {
114
+ try { await this.mem.db.d1WriteAddrmap(owner, { key: di.owner, address: owner }) } catch (e) {}
115
+ }
116
+ let _item = {
117
+ _data: { size: data_size, type: data_type },
118
+ anchor: di.anchor,
119
+ signature: di.signature,
120
+ recipient: di.target,
121
+ id: await di.id,
122
+ item: di,
123
+ owner,
124
+ tags: di.tags,
125
+ data: di.data,
126
+ }
127
+ // Extract raw data to R2
128
+ if (_item.data && this.mem.db?.r2PutTxData) {
129
+ await this.mem.db.r2PutTxData(_item.id, _item.data)
130
+ _item._r2_data = true
131
+ _item.data = ""
132
+ }
133
+ await this.mem.set(_item, "txs", await di.id)
134
+ _items.push(_item)
135
+ }
136
+ const bundle = await bundleAndSignData(items, new ArweaveSigner(jwk))
137
+ const tx = await this.mem.arweave.createTransaction(
138
+ { data: bundle.binary },
139
+ jwk
140
+ )
141
+ tx.addTag("Bundle-Format", "binary")
142
+ tx.addTag("Bundle-Version", "2.0.0")
143
+ return await this.postTx(tx, jwk, _items)
144
+ }
145
+
146
+ async postTx(tx, jwk, items = []) {
147
+ // Remote mode: sign locally, POST to main AR
148
+ if (this.mem._remote) {
149
+ let err = null
150
+ ;({ err, jwk } = await this.checkWallet({ jwk }))
151
+ if (err) return { err }
152
+ if (!tx.id) await this.mem.arweave.transactions.sign(tx, jwk)
153
+ const res = await this.mem._remote.postTx(tx)
154
+ return { res: { id: tx.id, status: 200 }, err: null, id: tx.id }
155
+ }
156
+ let err = null
157
+ ;({ err, jwk } = await this.checkWallet({ jwk }))
158
+ if (err) return { err }
159
+
160
+ let res = null
161
+ if (!tx.id) await this.mem.arweave.transactions.sign(tx, jwk)
162
+ let height
163
+ if (this.mem._d1Ready) {
164
+ // D1 ready: increment in-memory, flush every 10 txs
165
+ this.mem.height = (this.mem.height ?? 0) + 1
166
+ height = this.mem.height
167
+ if (height % 10 === 0) {
168
+ await this.mem.set(height, "height")
169
+ }
170
+ } else {
171
+ height = (await this.mem.get("height")) + 1
172
+ await this.mem.set(height, "height")
173
+ }
174
+ let previous = this.mem._d1Ready
175
+ ? (this.mem.lastBlockId || "")
176
+ : (last(await this.mem.get("blocks")) ?? "")
177
+ let block = {
178
+ id: tx.id,
179
+ timestamp: Date.now(),
180
+ height,
181
+ previous,
182
+ txs: [],
183
+ }
184
+ let msg = null
185
+ if (items) {
186
+ for (const item of items) {
187
+ let _txs = item
188
+ _txs.parent = { id: tx.id }
189
+ _txs.bundledIn = { id: tx.id }
190
+ _txs.anchor = ""
191
+ const _tags = t(item.tags)
192
+ if (
193
+ includes(_tags.Type, [
194
+ "Message",
195
+ "Process",
196
+ "Module",
197
+ "Scheduler-Location",
198
+ "Scheduler-Transfer",
199
+ "Attestation",
200
+ "Available",
201
+ ])
202
+ ) {
203
+ msg = { id: item.id, type: _tags.Type }
204
+ if (msg.type === "Process") msg.pid = item.recipient
205
+ }
206
+ let data_type = ""
207
+ for (const v of item.item.tags) {
208
+ if (v.name === "Content-Type") data_type = v.value
209
+ }
210
+ block.txs.push(item.id)
211
+ _txs.block = block.id
212
+ // Re-store item with parent/bundledIn/block, but drop the raw
213
+ // DataItem binary (item.item) to save space — data is in R2 or
214
+ // can be reconstructed from the wrapper bundle tx.
215
+ const slim = { ..._txs, bundle: tx.id }
216
+ delete slim.item
217
+ await this.mem.set(slim, "txs", item.id)
218
+ }
219
+ }
220
+ let _tags = []
221
+ for (const v of tx.tags) {
222
+ _tags.push({
223
+ name: base64url.decode(v.name),
224
+ value: base64url.decode(v.value),
225
+ })
226
+ }
227
+ const __tags = t(_tags)
228
+ if (__tags.Type === "Module") {
229
+ await this.mem.set(
230
+ {
231
+ data: Buffer.from(tx.data, "base64"),
232
+ format: __tags["Module-Format"],
233
+ },
234
+ "wasms",
235
+ tx.id
236
+ )
237
+ }
238
+ tx.tags = _tags
239
+ tx.owner = await this.arweave.wallets.jwkToAddress({ n: tx.owner })
240
+ tx.recipient = tx.target || ""
241
+ let _txs = tx
242
+ block.txs.push(tx.id)
243
+ _txs.block = block.id
244
+ // Extract raw data to R2
245
+ if (_txs.data && this.mem.db?.r2PutTxData) {
246
+ await this.mem.db.r2PutTxData(tx.id, _txs.data)
247
+ _txs._r2_data = true
248
+ _txs.data = ""
249
+ }
250
+ await this.mem.set(_txs, "txs", tx.id)
251
+ // Update block tracking — always maintain blocks array + blockmap
252
+ // so the O(n) scan fallback in tgql.js works even if D1 is stale
253
+ if (this.mem._d1Ready) {
254
+ await this.mem.set(block.id, "lastBlockId")
255
+ this.mem.lastBlockId = block.id
256
+ }
257
+ this.mem.blocks ??= []
258
+ this.mem.blocks.push(block.id)
259
+ await this.mem.set(this.mem.blocks, "blocks")
260
+ await this.mem.set(block, "blockmap", block.id)
261
+
262
+ if (jwk) {
263
+ const owner = await this.arweave.wallets.jwkToAddress(jwk)
264
+ await this.mem.set({ address: owner, key: jwk.n }, "addrmap", owner)
265
+ // D1: write addrmap
266
+ if (this.mem.db?.d1WriteAddrmap) {
267
+ try { await this.mem.db.d1WriteAddrmap(owner, { address: owner, key: jwk.n }) } catch (e) {}
268
+ }
269
+ }
270
+
271
+ // D1 write: block + txs + tags (only when D1 schema is verified ready)
272
+ if (this.mem._d1Ready && this.mem.db?.d1WriteBlock) {
273
+ const mainTx = {
274
+ id: tx.id,
275
+ owner: tx.owner,
276
+ recipient: tx.recipient || "",
277
+ anchor: tx.anchor || "",
278
+ signature: tx.signature || "",
279
+ tags: _tags,
280
+ _data: tx._data || { size: tx.data ? String(tx.data.length) : "0", type: "" },
281
+ bundledIn: tx.bundledIn,
282
+ parent: tx.parent,
283
+ }
284
+ if (this._batchWindow > 0) {
285
+ this._pendingBatch.push({ block, mainTx, items: [...items] })
286
+ if (!this._flushTimer) {
287
+ this._flushTimer = setTimeout(() => this._flushBatch(), this._batchWindow)
288
+ }
289
+ } else {
290
+ await this.mem.db.d1WriteBlock(block)
291
+ await this.mem.db.d1WriteTx(mainTx, block.id, block.height)
292
+ for (const item of items) {
293
+ await this.mem.db.d1WriteTx(item, block.id, block.height)
294
+ }
295
+ }
296
+ }
297
+
298
+ res = { id: tx.id, status: 200, statusText: "200" }
299
+ if (this.log) {
300
+ if (msg) {
301
+ console.log(
302
+ `New ${msg.type}:\t${msg.id}${msg.pid ? ` > ${msg.pid}` : ""}`
303
+ )
304
+ } else {
305
+ console.log(`New Post:\t${tx.id}`)
306
+ }
307
+ }
308
+ return { res, err, id: tx.id }
309
+ }
310
+
311
+ async _flushBatch() {
312
+ this._flushTimer = null
313
+ if (!this._pendingBatch.length) return
314
+ const batch = this._pendingBatch.splice(0)
315
+ for (const { block, mainTx, items } of batch) {
316
+ await this.mem.db.d1WriteBlock(block)
317
+ await this.mem.db.d1WriteTx(mainTx, block.id, block.height)
318
+ for (const item of items) {
319
+ await this.mem.db.d1WriteTx(item, block.id, block.height)
320
+ }
321
+ }
322
+ // Flush height to DO after batch
323
+ await this.mem.set(this.mem.height, "height")
324
+ }
325
+
326
+ async tx(id) {
327
+ return await this.mem.getTx(id)
328
+ }
329
+
330
+ async data(id, _string, log) {
331
+ let decode = true
332
+ let string = _string
333
+ if (is(Object, _string)) {
334
+ if (!isNil(_string.decode)) decode = _string.decode
335
+ if (!isNil(_string.string)) string = _string.string
336
+ }
337
+ let tx = await this.mem.getTx(id)
338
+ let _data = tx?.data ?? null
339
+ if (_data && is(String, _data)) {
340
+ _data = tobuff(_data)
341
+ }
342
+ let isBuf = is(Uint8Array, _data) || is(ArrayBuffer, _data)
343
+ let isStr = is(String, _data)
344
+ if (decode === false) {
345
+ if (isStr) _data = new TextEncoder().encode(_data)
346
+ return base64url.encode(_data)
347
+ } else {
348
+ if (isBuf && string) {
349
+ return _data.toString()
350
+ } else if (isStr && string !== true) {
351
+ return new TextEncoder().encode(_data)
352
+ }
353
+ }
354
+ return _data
355
+ }
356
+ }
357
+ function tobuff(base64url) {
358
+ const base64 = base64url.replace(/-/g, "+").replace(/_/g, "/")
359
+ const paddedBase64 = base64.padEnd(
360
+ base64.length + ((4 - (base64.length % 4)) % 4),
361
+ "="
362
+ )
363
+ return Buffer.from(paddedBase64, "base64")
364
+ }
365
+
366
+ export default AR
package/src/build.js ADDED
@@ -0,0 +1,7 @@
1
+ import fs from "fs"
2
+
3
+ const wasmBytes = fs.readFileSync("./waosm/waosm_bg.wasm")
4
+ const wasmB64 = wasmBytes.toString("base64")
5
+
6
+ const exports = `export const wasmB64 = "${wasmB64}";`
7
+ fs.writeFileSync("./waosm/waosm_b64.js", exports)
package/src/bundler.js ADDED
@@ -0,0 +1,119 @@
1
+ import express from "express"
2
+ import { ArweaveSigner, TurboFactory } from "@ardrive/turbo-sdk"
3
+ import { createData } from "@dha-team/arbundles"
4
+ import cors from "cors"
5
+ import bodyParser from "body-parser"
6
+ import { httpsig_from, structured_to } from "hbsig"
7
+ import { keys, omit } from "ramda"
8
+
9
+ let timestamp = 0
10
+ let height = 0
11
+ let last_checked = 0
12
+ let nonce = 0
13
+
14
+ const toMsg = req => {
15
+ let msg = req.headers
16
+ if (req.body) msg.body = req.body.toString("binary")
17
+ return msg
18
+ }
19
+
20
+ const bundler = ({ port = 4001, jwk, timeout = 1000 * 60 } = {}) => {
21
+ const app = express()
22
+ app.use(cors())
23
+ app.use(bodyParser.raw({ type: "*/*", limit: "100mb" }))
24
+ app.post("/tx", async (req, res) => {
25
+ if (!Buffer.isBuffer(req.body)) {
26
+ console.log("BD: Invalid body | expected raw Buffer")
27
+ return res.status(400).send("Invalid body: expected raw Buffer")
28
+ }
29
+ res.status(200).send("success")
30
+ try {
31
+ const out = structured_to(httpsig_from(toMsg(req)))
32
+ for (const k in out.body?.commitments ?? {}) {
33
+ const msg = out.body?.commitments[k]
34
+ if (msg["commitment-device"] === "ans104@1.0") {
35
+ const signer = {
36
+ signatureType: 1,
37
+ signatureLength: 512,
38
+ ownerLength: 512,
39
+ publicKey: msg.owner,
40
+ sign: async () => {},
41
+ }
42
+ const tags = []
43
+ let type = null
44
+ if (msg["original-tags"]) {
45
+ for (const tagObj of Object.values(msg["original-tags"])) {
46
+ tags.push({ name: tagObj.name, value: tagObj.value })
47
+ if (tagObj.name === "Type") {
48
+ type = tagObj.value
49
+ }
50
+ }
51
+ }
52
+ let opt = { tags }
53
+ if (type !== "Process") opt.target = out.process
54
+ const di = await createData(out.data || "", signer, opt)
55
+ await di.setSignature(msg.signature)
56
+ const res = await fetch("https://up.arweave.net:443/tx", {
57
+ method: "POST",
58
+ headers: {
59
+ "Content-Type": "application/octet-stream",
60
+ },
61
+ body: di.binary,
62
+ })
63
+ console.log(res?.status, di.tags)
64
+ const dis = [di]
65
+ if (type === "Message") {
66
+ if (!out["block-timestamp"]) {
67
+ try {
68
+ if (Date.now() - last_checked > timeout) {
69
+ const json = await fetch(
70
+ "https://arweave.net/block/current"
71
+ ).then(r => r.json())
72
+ height = json.height
73
+ timestamp = json.timestamp
74
+ last_checked = Date.now()
75
+ }
76
+ } catch (e) {
77
+ console.log(e)
78
+ }
79
+ }
80
+ const atags = {
81
+ Process: out.process,
82
+ Epoch: out.epoch,
83
+ Nonce: Number(++nonce).toString(),
84
+ "Hash-Chain": out["hash-chain"],
85
+ "Block-Height": Number(out["block-height"] ?? height).toString(),
86
+ Tmestamp: Number(out["block-timestamp"] ?? timestamp).toString(),
87
+ "Data-Protocol": "ao",
88
+ Slot: Number(out.slot).toString(),
89
+ Variant: "ao.WDB.1",
90
+ Type: "Assignment",
91
+ Message: di.id,
92
+ }
93
+ const tags = []
94
+ if (msg["original-tags"]) {
95
+ for (const k in atags) tags.push({ name: k, value: atags[k] })
96
+ }
97
+ const signer = new ArweaveSigner(jwk)
98
+ const di2 = await createData("", signer, { tags })
99
+ await di2.sign(signer)
100
+ dis.push(di2)
101
+ const res2 = await fetch("https://up.arweave.net:443/tx", {
102
+ method: "POST",
103
+ headers: {
104
+ "Content-Type": "application/octet-stream",
105
+ },
106
+ body: di2.binary,
107
+ })
108
+ console.log(res2?.status, di2.tags)
109
+ }
110
+ }
111
+ }
112
+ } catch (e) {
113
+ console.log(e)
114
+ }
115
+ })
116
+ return app.listen(port, () => console.log(`BD on port ${port}`))
117
+ }
118
+
119
+ export default bundler
package/src/car.js ADDED
@@ -0,0 +1,10 @@
1
+ import BAR from "./bar.js"
2
+ import ArMem from "./armem-cf.js"
3
+
4
+ class AR extends BAR {
5
+ constructor(opt = {}) {
6
+ super({ ...opt, ArMem })
7
+ }
8
+ }
9
+
10
+ export default AR
package/src/cf-env.js ADDED
@@ -0,0 +1,29 @@
1
+ // CF Workers polyfill: make emscripten (ao-loader) detect "web" environment.
2
+ // Must be imported BEFORE ao-loader.js so it runs first.
3
+ if (typeof globalThis.window === "undefined") {
4
+ globalThis.window = globalThis
5
+ }
6
+
7
+ // CF Workers blocks WebAssembly.instantiate(buffer, imports) — only pre-compiled
8
+ // WebAssembly.Module objects are allowed. Patch the API so that when a pre-compiled
9
+ // module is queued (via cfWasmReady), emscripten's default async loading path works
10
+ // unchanged, preserving Asyncify and all other internals.
11
+ const _wasmInstantiate = WebAssembly.instantiate.bind(WebAssembly)
12
+ let _cfWasmModule = null
13
+
14
+ export function cfWasmReady(mod) {
15
+ _cfWasmModule = mod
16
+ }
17
+
18
+ WebAssembly.instantiate = async function (source, imports) {
19
+ if (
20
+ _cfWasmModule &&
21
+ (source instanceof ArrayBuffer || ArrayBuffer.isView(source))
22
+ ) {
23
+ const mod = _cfWasmModule
24
+ _cfWasmModule = null
25
+ const instance = await _wasmInstantiate(mod, imports)
26
+ return { instance, module: mod }
27
+ }
28
+ return _wasmInstantiate(source, imports)
29
+ }
package/src/cf.js ADDED
@@ -0,0 +1,11 @@
1
+ import { acc, mu, su, cu } from "./accounts-web.js"
2
+ import { connect } from "./aoconnect-cf.js"
3
+ import Adaptor from "./adaptor-cf.js"
4
+ import AO from "./wao.js"
5
+ import AR from "./car.js"
6
+ import GQL from "./tgql.js"
7
+ import ArMem from "./armem-cf.js"
8
+ import { dirname } from "./utils.js"
9
+ const scheduler = "_GQ33BkPtZrqxA84vM8Zk-N2aO0toNNu_C-l-rawrBA"
10
+
11
+ export { GQL, ArMem, AO, AR, connect, acc, mu, su, cu, scheduler, Adaptor }