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.
- package/.babelrc-cjs +5 -0
- package/.babelrc-esm +5 -0
- package/.gitmodules +4 -0
- package/.prettierrc +6 -0
- package/README.md +90 -0
- package/app/.eslintrc.json +3 -0
- package/app/.mocharc.cjs +6 -0
- package/app/arweave.mjs +87 -0
- package/app/components/Footer.js +76 -0
- package/app/components/Global.js +1128 -0
- package/app/components/Header.js +306 -0
- package/app/components/Left.js +28 -0
- package/app/components/Logo.js +34 -0
- package/app/components/Middle.js +37 -0
- package/app/components/Sidebar.js +93 -0
- package/app/components/Tags.js +42 -0
- package/app/components/editor/Editor.js +322 -0
- package/app/components/editor/FilePath.js +42 -0
- package/app/components/editor/MonacoEditor.js +44 -0
- package/app/components/left/LeftMessages.js +85 -0
- package/app/components/left/LeftModules.js +86 -0
- package/app/components/left/LeftNetworks.js +438 -0
- package/app/components/left/LeftProcesses.js +98 -0
- package/app/components/left/LeftProjects.js +397 -0
- package/app/components/left/LeftTests.js +189 -0
- package/app/components/middle/MiddleBlocks.js +79 -0
- package/app/components/middle/MiddleEntity.js +16 -0
- package/app/components/middle/MiddleEntityAccount.js +264 -0
- package/app/components/middle/MiddleEntityAssignment.js +104 -0
- package/app/components/middle/MiddleEntityBlock.js +148 -0
- package/app/components/middle/MiddleEntityMessage.js +430 -0
- package/app/components/middle/MiddleEntityModule.js +183 -0
- package/app/components/middle/MiddleEntityProcess.js +323 -0
- package/app/components/middle/MiddleEntityTx.js +211 -0
- package/app/components/middle/MiddleMessages.js +87 -0
- package/app/components/middle/MiddleModules.js +89 -0
- package/app/components/middle/MiddleNetworks.js +516 -0
- package/app/components/middle/MiddleProcesses.js +87 -0
- package/app/components/middle/MiddleTests.js +134 -0
- package/app/components/modals/CreateFileModal.js +115 -0
- package/app/components/modals/CreateFolderModal.js +83 -0
- package/app/components/modals/CreateProjectModal.js +63 -0
- package/app/components/modals/FSModal.js +141 -0
- package/app/components/modals/ImportModal.js +105 -0
- package/app/components/modals/LaunchNetworkModal.js +95 -0
- package/app/components/modals/Modal.js +38 -0
- package/app/components/modals/ProxyModal.js +122 -0
- package/app/components/modals/RenameFileModal.js +95 -0
- package/app/components/styles/EditorScrollbarStyle.js +29 -0
- package/app/components/styles/EntityScrollbarStyle.js +29 -0
- package/app/components/styles/GlobalStyle.js +102 -0
- package/app/components/styles/XtermStyle.js +37 -0
- package/app/components/terminal/Terminal.js +132 -0
- package/app/components/terminal/Xterm.js +160 -0
- package/app/components/ui/avatar.jsx +49 -0
- package/app/components/ui/checkbox.jsx +17 -0
- package/app/components/ui/close-button.jsx +20 -0
- package/app/components/ui/color-mode.jsx +61 -0
- package/app/components/ui/dialog.jsx +54 -0
- package/app/components/ui/drawer.jsx +44 -0
- package/app/components/ui/field.jsx +22 -0
- package/app/components/ui/input-group.jsx +39 -0
- package/app/components/ui/popover.jsx +49 -0
- package/app/components/ui/provider.jsx +12 -0
- package/app/components/ui/radio.jsx +17 -0
- package/app/components/ui/slider.jsx +107 -0
- package/app/components/ui/toaster.jsx +69 -0
- package/app/components/ui/tooltip.jsx +35 -0
- package/app/index.js +10 -0
- package/app/jsconfig.json +7 -0
- package/app/lib/GithubCSS.js +1218 -0
- package/app/lib/addon-fit.js +72 -0
- package/app/lib/data.js +31 -0
- package/app/lib/github-markdown.css +1169 -0
- package/app/lib/global.js +1 -0
- package/app/lib/guide.js +82 -0
- package/app/lib/hub.js +109 -0
- package/app/lib/scripts.js +47 -0
- package/app/lib/store.js +34 -0
- package/app/lib/use.js +64 -0
- package/app/lib/utils.js +387 -0
- package/app/lib/webrtc.js +217 -0
- package/app/next.config.js +25 -0
- package/app/package.json +62 -0
- package/app/pages/404.js +9 -0
- package/app/pages/_app.js +10 -0
- package/app/pages/_document.js +14 -0
- package/app/pages/index.js +121 -0
- package/app/playwright.config.mjs +41 -0
- package/app/proxy.mjs +21 -0
- package/app/public/assets/cover.png +0 -0
- package/app/public/blueprints/apm.lua +91 -0
- package/app/public/blueprints/arena.lua +345 -0
- package/app/public/blueprints/arns.lua +318 -0
- package/app/public/blueprints/chat.lua +210 -0
- package/app/public/blueprints/chatroom.lua +56 -0
- package/app/public/blueprints/patch-legacy-reply.lua +13 -0
- package/app/public/blueprints/staking.lua +93 -0
- package/app/public/blueprints/token.lua +298 -0
- package/app/public/blueprints/voting.lua +45 -0
- package/app/public/favicon.ico +0 -0
- package/app/public/logo.png +0 -0
- package/cli-esm.js +55 -0
- package/cli.js +54 -0
- package/devnet/app/api.js +129 -0
- package/devnet/app/components/layout.js +89 -0
- package/devnet/app/components/pagination.js +144 -0
- package/devnet/app/components/search.js +159 -0
- package/devnet/app/components/table.js +124 -0
- package/devnet/app/components/tags.js +89 -0
- package/devnet/app/index.html +14 -0
- package/devnet/app/main.js +215 -0
- package/devnet/app/router.js +59 -0
- package/devnet/app/state.js +19 -0
- package/devnet/app/style.css +1606 -0
- package/devnet/app/utils.js +77 -0
- package/devnet/app/views/blocks.js +75 -0
- package/devnet/app/views/dashboard.js +127 -0
- package/devnet/app/views/entity.js +1473 -0
- package/devnet/app/views/messages.js +90 -0
- package/devnet/app/views/modules.js +165 -0
- package/devnet/app/views/processes.js +90 -0
- package/devnet/app/views/schedulers.js +90 -0
- package/devnet/app/views/transactions.js +88 -0
- package/devnet/migrations/0001_initial.sql +51 -0
- package/devnet/package.json +26 -0
- package/devnet/playwright.config.js +7 -0
- package/devnet/src/cu-worker.js +166 -0
- package/devnet/src/index.js +309 -0
- package/devnet/vite.config.js +17 -0
- package/devnet/vitest.config.js +10 -0
- package/devnet/wrangler-cu.toml +32 -0
- package/devnet/wrangler.toml +38 -0
- package/dhfs-tutorial-app/package.json +15 -0
- package/dist/esm/workspace/dashboard/public/favicon.png +0 -0
- package/dist/esm/workspace/src/counter.lua +14 -0
- package/dist/package.json +82 -0
- package/hb.sh +18 -0
- package/hbsig/.babelrc-cjs +5 -0
- package/hbsig/.babelrc-esm +5 -0
- package/hbsig/README.md +1 -0
- package/hbsig/dist/cjs/bin_to_str.js +44 -0
- package/hbsig/dist/cjs/collect-body-keys.js +470 -0
- package/hbsig/dist/cjs/commit.js +330 -0
- package/hbsig/dist/cjs/encode-array-item.js +110 -0
- package/hbsig/dist/cjs/encode-utils.js +242 -0
- package/hbsig/dist/cjs/encode.js +1365 -0
- package/hbsig/dist/cjs/erl_json.js +326 -0
- package/hbsig/dist/cjs/erl_str.js +1042 -0
- package/hbsig/dist/cjs/flat.js +279 -0
- package/hbsig/dist/cjs/http-message-signatures/httpbis.js +489 -0
- package/hbsig/dist/cjs/http-message-signatures/index.js +25 -0
- package/hbsig/dist/cjs/http-message-signatures/structured-header.js +129 -0
- package/hbsig/dist/cjs/httpsig.js +861 -0
- package/hbsig/dist/cjs/id.js +470 -0
- package/hbsig/dist/cjs/index.js +174 -0
- package/hbsig/dist/cjs/nocrypto.js +51 -0
- package/hbsig/dist/cjs/parser.js +201 -0
- package/hbsig/dist/cjs/send-utils.js +1231 -0
- package/hbsig/dist/cjs/send.js +211 -0
- package/hbsig/dist/cjs/signer-utils.js +494 -0
- package/hbsig/dist/cjs/signer.js +436 -0
- package/hbsig/dist/cjs/structured.js +515 -0
- package/hbsig/dist/cjs/test.js +12 -0
- package/hbsig/dist/cjs/utils.js +44 -0
- package/hbsig/dist/esm/bin_to_str.js +46 -0
- package/hbsig/dist/esm/collect-body-keys.js +436 -0
- package/hbsig/dist/esm/commit.js +219 -0
- package/hbsig/dist/esm/encode-array-item.js +112 -0
- package/hbsig/dist/esm/encode-utils.js +191 -0
- package/hbsig/dist/esm/encode.js +1256 -0
- package/hbsig/dist/esm/erl_json.js +292 -0
- package/hbsig/dist/esm/erl_str.js +1144 -0
- package/hbsig/dist/esm/flat.js +250 -0
- package/hbsig/dist/esm/http-message-signatures/httpbis.js +438 -0
- package/hbsig/dist/esm/http-message-signatures/index.js +4 -0
- package/hbsig/dist/esm/http-message-signatures/structured-header.js +105 -0
- package/hbsig/dist/esm/httpsig.js +866 -0
- package/hbsig/dist/esm/id.js +459 -0
- package/hbsig/dist/esm/index.js +13 -0
- package/hbsig/dist/esm/nocrypto.js +4 -0
- package/hbsig/dist/esm/package.json +3 -0
- package/hbsig/dist/esm/parser.js +171 -0
- package/hbsig/dist/esm/send-utils.js +1132 -0
- package/hbsig/dist/esm/send.js +142 -0
- package/hbsig/dist/esm/signer-utils.js +375 -0
- package/hbsig/dist/esm/signer.js +312 -0
- package/hbsig/dist/esm/structured.js +496 -0
- package/hbsig/dist/esm/test.js +2 -0
- package/hbsig/dist/esm/utils.js +29 -0
- package/hbsig/dist/package.json +39 -0
- package/hbsig/make.js +36 -0
- package/hbsig/package.json +39 -0
- package/hbsig/src/bin_to_str.js +46 -0
- package/hbsig/src/collect-body-keys.js +436 -0
- package/hbsig/src/commit.js +219 -0
- package/hbsig/src/encode-array-item.js +112 -0
- package/hbsig/src/encode-utils.js +191 -0
- package/hbsig/src/encode.js +1256 -0
- package/hbsig/src/erl_json.js +292 -0
- package/hbsig/src/erl_str.js +1144 -0
- package/hbsig/src/flat.js +250 -0
- package/hbsig/src/http-message-signatures/httpbis.js +438 -0
- package/hbsig/src/http-message-signatures/index.js +4 -0
- package/hbsig/src/http-message-signatures/structured-header.js +105 -0
- package/hbsig/src/httpsig.js +866 -0
- package/hbsig/src/id.js +459 -0
- package/hbsig/src/index.js +13 -0
- package/hbsig/src/nocrypto.js +4 -0
- package/hbsig/src/parser.js +171 -0
- package/hbsig/src/send-utils.js +1132 -0
- package/hbsig/src/send.js +142 -0
- package/hbsig/src/signer-utils.js +375 -0
- package/hbsig/src/signer.js +312 -0
- package/hbsig/src/structured.js +496 -0
- package/hbsig/src/test.js +2 -0
- package/hbsig/src/utils.js +29 -0
- package/lp/index.html +25 -0
- package/lp/package.json +19 -0
- package/lp/public/cover.png +0 -0
- package/lp/public/favicon.ico +0 -0
- package/lp/public/favicon.png +0 -0
- package/lp/public/images/book.jpg +0 -0
- package/lp/public/images/dashboard.png +0 -0
- package/lp/public/images/devnet.png +0 -0
- package/lp/public/images/hero-bg.png +0 -0
- package/lp/public/images/hyperadd.png +0 -0
- package/lp/public/images/message-flow.png +0 -0
- package/lp/public/images/mobile.png +0 -0
- package/lp/public/images/og-cover.png +0 -0
- package/lp/public/images/scan.png +0 -0
- package/lp/public/images/wao-hub.png +0 -0
- package/lp/public/images/wao-web.png +0 -0
- package/lp/public/logo.png +0 -0
- package/lp/src/App.jsx +29 -0
- package/lp/src/components/CodeBlock.jsx +37 -0
- package/lp/src/components/CodeBlock.module.css +89 -0
- package/lp/src/components/Footer.jsx +22 -0
- package/lp/src/components/Footer.module.css +60 -0
- package/lp/src/components/Nav.jsx +80 -0
- package/lp/src/components/Nav.module.css +177 -0
- package/lp/src/components/SectionWrapper.jsx +15 -0
- package/lp/src/hooks/useReveal.js +25 -0
- package/lp/src/hooks/useScrolled.js +14 -0
- package/lp/src/main.jsx +10 -0
- package/lp/src/sections/Book.jsx +60 -0
- package/lp/src/sections/Book.module.css +204 -0
- package/lp/src/sections/Browser.jsx +46 -0
- package/lp/src/sections/Browser.module.css +67 -0
- package/lp/src/sections/Devnet.jsx +55 -0
- package/lp/src/sections/Devnet.module.css +136 -0
- package/lp/src/sections/GetStarted.jsx +51 -0
- package/lp/src/sections/GetStarted.module.css +128 -0
- package/lp/src/sections/Hero.jsx +67 -0
- package/lp/src/sections/Hero.module.css +202 -0
- package/lp/src/sections/HyperADD.jsx +46 -0
- package/lp/src/sections/HyperADD.module.css +113 -0
- package/lp/src/sections/SDK.jsx +90 -0
- package/lp/src/sections/SDK.module.css +122 -0
- package/lp/src/sections/Testing.jsx +47 -0
- package/lp/src/sections/Testing.module.css +124 -0
- package/lp/src/sections/Vision.jsx +93 -0
- package/lp/src/sections/Vision.module.css +147 -0
- package/lp/src/styles/globals.css +285 -0
- package/lp/src/utils/scrollTo.js +4 -0
- package/lp/vite.config.js +7 -0
- package/make.js +39 -0
- package/package.json +17 -12
- package/patches/@permaweb+ao-loader+0.0.44.patch +64 -0
- package/plan.md +435 -0
- package/rebar.lock +1 -0
- package/src/accounts-web.js +128 -0
- package/src/accounts.js +124 -0
- package/src/adaptor-base.js +622 -0
- package/src/adaptor-cf.js +11 -0
- package/src/adaptor-web.js +11 -0
- package/src/adaptor.js +10 -0
- package/src/ao-loader.js +30660 -0
- package/src/ao.js +1173 -0
- package/src/aoconnect-base.js +1098 -0
- package/src/aoconnect-cf.js +9 -0
- package/src/aoconnect-web.js +8 -0
- package/src/aoconnect.js +8 -0
- package/src/aos_wamr.js +1 -0
- package/src/ar-remote.js +87 -0
- package/src/ar.js +276 -0
- package/src/armem-base.js +529 -0
- package/src/armem-cf.js +67 -0
- package/src/armem-web.js +19 -0
- package/src/armem.js +26 -0
- package/src/bao.js +141 -0
- package/src/bar.js +366 -0
- package/src/build.js +7 -0
- package/src/bundler.js +119 -0
- package/src/car.js +10 -0
- package/src/cf-env.js +29 -0
- package/src/cf.js +11 -0
- package/src/cli.js +561 -0
- package/src/compress.js +112 -0
- package/src/create.js +415 -0
- package/src/devs.js +86 -0
- package/src/dirname.js +1 -0
- package/src/dodb.js +26 -0
- package/src/erl_json.js +289 -0
- package/src/erl_str.js +1139 -0
- package/src/gql.js +229 -0
- package/src/hb.js +967 -0
- package/src/helpers.js +203 -0
- package/src/http.js +619 -0
- package/src/hub/bundler.js +123 -0
- package/src/hub/cu.js +74 -0
- package/src/hub/fs.js +157 -0
- package/src/hub/index.js +85 -0
- package/src/hub/utils.js +64 -0
- package/src/hub/ws-proxy.js +67 -0
- package/src/hyper-aos.js +1 -0
- package/src/hyperbeam-server.js +21 -0
- package/src/hyperbeam.js +585 -0
- package/src/index.js +5 -0
- package/src/keygen.js +47 -0
- package/src/lfdb.js +67 -0
- package/src/lua/aos.wasm +0 -0
- package/src/lua/aos2_0_1.js +1 -0
- package/src/lua/aos2_0_1.wasm +0 -0
- package/src/lua/aos2_0_3.js +1 -0
- package/src/lua/aos2_0_3.wasm +0 -0
- package/src/lua/aos2_0_4_32.js +1 -0
- package/src/lua/aos2_0_4_32.wasm +0 -0
- package/src/lua/aos2_0_6.wasm +0 -0
- package/src/lua/apm.lua +61 -0
- package/src/lua/llama.wasm +0 -0
- package/src/lua/process.wasm +0 -0
- package/src/lua/sqlite.js +1 -0
- package/src/lua/sqlite.wasm +0 -0
- package/src/lua/weavedb_mock.lua +44 -0
- package/src/lua/weavedrive.lua +53 -0
- package/src/run.js +25 -0
- package/src/server.js +173 -0
- package/src/storage-multi.js +183 -0
- package/src/tao.js +12 -0
- package/src/tar.js +10 -0
- package/src/test.js +42 -0
- package/src/tgql-d1.js +407 -0
- package/src/tgql.js +310 -0
- package/src/toerl.js +162 -0
- package/src/utils.js +777 -0
- package/src/wao.js +29 -0
- package/src/waosm/README.md +81 -0
- package/src/waosm/waosm.d.ts +40 -0
- package/src/waosm/waosm.js +240 -0
- package/src/waosm/waosm_bg.wasm +0 -0
- package/src/waosm/waosm_bg.wasm.d.ts +8 -0
- package/src/waosm-node/README.md +81 -0
- package/src/waosm-node/waosm.d.ts +8 -0
- package/src/waosm-node/waosm.js +4 -0
- package/src/waosm-node/waosm_bg.js +147 -0
- package/src/waosm-node/waosm_bg.wasm +0 -0
- package/src/waosm-node/waosm_bg.wasm.d.ts +8 -0
- package/src/waosm-node/waosm_bg.wasm.js +14 -0
- package/src/waosm-node.js +9 -0
- package/src/war.js +10 -0
- package/src/weavedrive.js +376 -0
- package/src/web.js +11 -0
- package/src/workspace/.mcp.json +8 -0
- package/src/workspace/CLAUDE.md +258 -0
- package/src/workspace/README.md +85 -0
- package/src/workspace/dashboard/index.html +163 -0
- package/src/workspace/dashboard/package.json +18 -0
- package/src/workspace/dashboard/public/favicon.ico +0 -0
- package/src/workspace/dashboard/public/favicon.png +0 -0
- package/src/workspace/dashboard/server.js +224 -0
- package/src/workspace/dashboard/src/App.jsx +2350 -0
- package/{cjs/workspace/frontend → src/workspace/dashboard}/vite.config.js +6 -0
- package/src/workspace/package.json +18 -0
- package/src/workspace/src/counter.lua +14 -0
- package/tsconfig.json +18 -0
- package/types/index.d.ts +329 -0
- package/waollama/.eslintrc.json +3 -0
- package/waollama/README.md +19 -0
- package/waollama/arweave.mjs +87 -0
- package/waollama/components/ui/avatar.jsx +49 -0
- package/waollama/components/ui/checkbox.jsx +17 -0
- package/waollama/components/ui/close-button.jsx +20 -0
- package/waollama/components/ui/color-mode.jsx +61 -0
- package/waollama/components/ui/dialog.jsx +54 -0
- package/waollama/components/ui/drawer.jsx +44 -0
- package/waollama/components/ui/field.jsx +22 -0
- package/waollama/components/ui/input-group.jsx +39 -0
- package/waollama/components/ui/popover.jsx +49 -0
- package/waollama/components/ui/provider.jsx +12 -0
- package/waollama/components/ui/radio.jsx +17 -0
- package/waollama/components/ui/slider.jsx +107 -0
- package/waollama/components/ui/tooltip.jsx +35 -0
- package/waollama/index.js +10 -0
- package/waollama/jsconfig.json +7 -0
- package/waollama/lib/ao-loader.js +30654 -0
- package/waollama/lib/client.js +1 -0
- package/waollama/lib/wasm.js +1 -0
- package/waollama/next.config.js +25 -0
- package/waollama/package.json +43 -0
- package/waollama/pages/404.js +9 -0
- package/waollama/pages/_app.js +9 -0
- package/waollama/pages/_document.js +14 -0
- package/waollama/pages/index.js +212 -0
- package/waollama/playwright.config.js +31 -0
- package/waollama/proxy.mjs +21 -0
- package/waollama/public/favicon.ico +0 -0
- package/waollama/public/human.png +0 -0
- package/waollama/public/llama.png +0 -0
- package/waosm/Cargo.toml +11 -0
- package/waosm/README.md +81 -0
- package/waosm/compress.js +112 -0
- package/waosm/make.js +33 -0
- package/waosm/package.json +10 -0
- package/waosm/src/lib.rs +180 -0
- package/waosm/test.js +16 -0
- package/cjs/workspace/.claude/agents/builder.md +0 -99
- package/cjs/workspace/.claude/agents/device-builder.md +0 -86
- package/cjs/workspace/.claude/agents/tester.md +0 -90
- package/cjs/workspace/.claude/mcp/dashboard/server.js +0 -128
- package/cjs/workspace/.claude/rules/deploy.md +0 -45
- package/cjs/workspace/.claude/rules/frontend.md +0 -69
- package/cjs/workspace/.claude/rules/hyperbeam.md +0 -104
- package/cjs/workspace/.claude/rules/lua.md +0 -108
- package/cjs/workspace/.claude/rules/testing.md +0 -257
- package/cjs/workspace/.claude/settings.json +0 -109
- package/cjs/workspace/.claude/skills/build/SKILL.md +0 -214
- package/cjs/workspace/.claude/skills/build-aos/SKILL.md +0 -129
- package/cjs/workspace/.claude/skills/build-device/SKILL.md +0 -192
- package/cjs/workspace/.claude/skills/build-frontend/SKILL.md +0 -134
- package/cjs/workspace/.claude/skills/build-module/SKILL.md +0 -281
- package/cjs/workspace/.claude/skills/create-aos/SKILL.md +0 -63
- package/cjs/workspace/.claude/skills/create-device/SKILL.md +0 -87
- package/cjs/workspace/.claude/skills/create-module/SKILL.md +0 -162
- package/cjs/workspace/.claude/skills/debug/SKILL.md +0 -57
- package/cjs/workspace/.claude/skills/deploy/SKILL.md +0 -85
- package/cjs/workspace/.claude/skills/dev/SKILL.md +0 -32
- package/cjs/workspace/.claude/skills/plan/SKILL.md +0 -176
- package/cjs/workspace/.claude/skills/readme/SKILL.md +0 -186
- package/cjs/workspace/.claude/skills/report/SKILL.md +0 -49
- package/cjs/workspace/.claude/skills/team/SKILL.md +0 -101
- package/cjs/workspace/.claude/skills/test/SKILL.md +0 -56
- package/cjs/workspace/.claude/skills/test-device/SKILL.md +0 -114
- package/cjs/workspace/.claude/skills/test-e2e/SKILL.md +0 -103
- package/cjs/workspace/.claude/skills/test-hb/SKILL.md +0 -76
- package/cjs/workspace/.claude/skills/validate/SKILL.md +0 -96
- package/cjs/workspace/.claude/skills/validate/scripts/check-lua.sh +0 -41
- package/cjs/workspace/docs/aos-lua.md +0 -428
- package/cjs/workspace/docs/debug.md +0 -230
- package/cjs/workspace/docs/hyperbeam-dev.md +0 -606
- package/cjs/workspace/docs/hyperbeam-devices.md +0 -618
- package/cjs/workspace/docs/wao-sdk.md +0 -807
- package/cjs/workspace/frontend/e2e/.gitkeep +0 -0
- package/cjs/workspace/frontend/index.html +0 -12
- package/cjs/workspace/frontend/package.json +0 -24
- package/cjs/workspace/frontend/playwright.config.js +0 -10
- package/cjs/workspace/frontend/src/App.jsx +0 -24
- package/cjs/workspace/frontend/test/.gitkeep +0 -0
- package/cjs/workspace/frontend/vitest.config.js +0 -10
- package/cjs/workspace/scripts/deploy.js +0 -140
- package/cjs/workspace/scripts/keygen.js +0 -52
- package/cjs/workspace/test/aos.test.js +0 -98
- package/cjs/workspace/test/hyperbeam.test.js +0 -80
- package/esm/compiler/native +0 -0
- package/esm/workspace/.claude/agents/builder.md +0 -99
- package/esm/workspace/.claude/agents/device-builder.md +0 -86
- package/esm/workspace/.claude/agents/tester.md +0 -90
- package/esm/workspace/.claude/mcp/dashboard/server.js +0 -128
- package/esm/workspace/.claude/rules/deploy.md +0 -45
- package/esm/workspace/.claude/rules/frontend.md +0 -69
- package/esm/workspace/.claude/rules/hyperbeam.md +0 -104
- package/esm/workspace/.claude/rules/lua.md +0 -108
- package/esm/workspace/.claude/rules/testing.md +0 -257
- package/esm/workspace/.claude/settings.json +0 -109
- package/esm/workspace/.claude/skills/build/SKILL.md +0 -214
- package/esm/workspace/.claude/skills/build-aos/SKILL.md +0 -129
- package/esm/workspace/.claude/skills/build-device/SKILL.md +0 -192
- package/esm/workspace/.claude/skills/build-frontend/SKILL.md +0 -134
- package/esm/workspace/.claude/skills/build-module/SKILL.md +0 -281
- package/esm/workspace/.claude/skills/create-aos/SKILL.md +0 -63
- package/esm/workspace/.claude/skills/create-device/SKILL.md +0 -87
- package/esm/workspace/.claude/skills/create-module/SKILL.md +0 -162
- package/esm/workspace/.claude/skills/debug/SKILL.md +0 -57
- package/esm/workspace/.claude/skills/deploy/SKILL.md +0 -85
- package/esm/workspace/.claude/skills/dev/SKILL.md +0 -32
- package/esm/workspace/.claude/skills/plan/SKILL.md +0 -176
- package/esm/workspace/.claude/skills/readme/SKILL.md +0 -186
- package/esm/workspace/.claude/skills/report/SKILL.md +0 -49
- package/esm/workspace/.claude/skills/team/SKILL.md +0 -101
- package/esm/workspace/.claude/skills/test/SKILL.md +0 -56
- package/esm/workspace/.claude/skills/test-device/SKILL.md +0 -114
- package/esm/workspace/.claude/skills/test-e2e/SKILL.md +0 -103
- package/esm/workspace/.claude/skills/test-hb/SKILL.md +0 -76
- package/esm/workspace/.claude/skills/validate/SKILL.md +0 -96
- package/esm/workspace/.claude/skills/validate/scripts/check-lua.sh +0 -41
- package/esm/workspace/docs/aos-lua.md +0 -428
- package/esm/workspace/docs/debug.md +0 -230
- package/esm/workspace/docs/hyperbeam-dev.md +0 -606
- package/esm/workspace/docs/hyperbeam-devices.md +0 -618
- package/esm/workspace/docs/wao-sdk.md +0 -807
- package/esm/workspace/frontend/e2e/.gitkeep +0 -0
- package/esm/workspace/frontend/index.html +0 -12
- package/esm/workspace/frontend/package.json +0 -24
- package/esm/workspace/frontend/playwright.config.js +0 -10
- package/esm/workspace/frontend/src/App.jsx +0 -24
- package/esm/workspace/frontend/src/main.jsx +0 -9
- package/esm/workspace/frontend/test/.gitkeep +0 -0
- package/esm/workspace/frontend/vite.config.js +0 -6
- package/esm/workspace/frontend/vitest.config.js +0 -10
- package/esm/workspace/scripts/deploy.js +0 -140
- package/esm/workspace/scripts/keygen.js +0 -52
- package/esm/workspace/test/aos.test.js +0 -98
- package/esm/workspace/test/hyperbeam.test.js +0 -80
- /package/{cjs/workspace/dashboard/public → devnet/app}/favicon.ico +0 -0
- /package/{cjs/workspace → dhfs-tutorial-app}/src/counter.lua +0 -0
- /package/{cjs → dist/cjs}/accounts-web.js +0 -0
- /package/{cjs → dist/cjs}/accounts.js +0 -0
- /package/{cjs → dist/cjs}/adaptor-base.js +0 -0
- /package/{cjs → dist/cjs}/adaptor-cf.js +0 -0
- /package/{cjs → dist/cjs}/adaptor-web.js +0 -0
- /package/{cjs → dist/cjs}/adaptor.js +0 -0
- /package/{cjs → dist/cjs}/ao-loader.js +0 -0
- /package/{cjs → dist/cjs}/ao.js +0 -0
- /package/{cjs → dist/cjs}/aoconnect-base.js +0 -0
- /package/{cjs → dist/cjs}/aoconnect-cf.js +0 -0
- /package/{cjs → dist/cjs}/aoconnect-web.js +0 -0
- /package/{cjs → dist/cjs}/aoconnect.js +0 -0
- /package/{cjs → dist/cjs}/aos_wamr.js +0 -0
- /package/{cjs → dist/cjs}/ar-remote.js +0 -0
- /package/{cjs → dist/cjs}/ar.js +0 -0
- /package/{cjs → dist/cjs}/armem-base.js +0 -0
- /package/{cjs → dist/cjs}/armem-cf.js +0 -0
- /package/{cjs → dist/cjs}/armem-web.js +0 -0
- /package/{cjs → dist/cjs}/armem.js +0 -0
- /package/{cjs → dist/cjs}/bao.js +0 -0
- /package/{cjs → dist/cjs}/bar.js +0 -0
- /package/{cjs → dist/cjs}/build.js +0 -0
- /package/{cjs → dist/cjs}/bundler.js +0 -0
- /package/{cjs → dist/cjs}/car.js +0 -0
- /package/{cjs → dist/cjs}/cf-env.js +0 -0
- /package/{cjs → dist/cjs}/cf.js +0 -0
- /package/{cjs → dist/cjs}/cli.js +0 -0
- /package/{cjs → dist/cjs}/compress.js +0 -0
- /package/{cjs → dist/cjs}/create.js +0 -0
- /package/{cjs → dist/cjs}/devs.js +0 -0
- /package/{cjs → dist/cjs}/dirname.js +0 -0
- /package/{cjs → dist/cjs}/dodb.js +0 -0
- /package/{cjs → dist/cjs}/erl_json.js +0 -0
- /package/{cjs → dist/cjs}/erl_str.js +0 -0
- /package/{cjs → dist/cjs}/gql.js +0 -0
- /package/{cjs → dist/cjs}/hb.js +0 -0
- /package/{cjs → dist/cjs}/helpers.js +0 -0
- /package/{cjs → dist/cjs}/http.js +0 -0
- /package/{cjs → dist/cjs}/hub/bundler.js +0 -0
- /package/{cjs → dist/cjs}/hub/cu.js +0 -0
- /package/{cjs → dist/cjs}/hub/fs.js +0 -0
- /package/{cjs → dist/cjs}/hub/index.js +0 -0
- /package/{cjs → dist/cjs}/hub/utils.js +0 -0
- /package/{cjs → dist/cjs}/hub/ws-proxy.js +0 -0
- /package/{cjs → dist/cjs}/hyper-aos.js +0 -0
- /package/{cjs → dist/cjs}/hyperbeam-server.js +0 -0
- /package/{cjs → dist/cjs}/hyperbeam.js +0 -0
- /package/{cjs → dist/cjs}/index.js +0 -0
- /package/{cjs → dist/cjs}/keygen.js +0 -0
- /package/{cjs → dist/cjs}/lfdb.js +0 -0
- /package/{cjs → dist/cjs}/lua/aos.wasm +0 -0
- /package/{cjs → dist/cjs}/lua/aos2_0_1.js +0 -0
- /package/{cjs → dist/cjs}/lua/aos2_0_1.wasm +0 -0
- /package/{cjs → dist/cjs}/lua/aos2_0_3.js +0 -0
- /package/{cjs → dist/cjs}/lua/aos2_0_3.wasm +0 -0
- /package/{cjs → dist/cjs}/lua/aos2_0_4_32.js +0 -0
- /package/{cjs → dist/cjs}/lua/aos2_0_4_32.wasm +0 -0
- /package/{cjs → dist/cjs}/lua/aos2_0_6.wasm +0 -0
- /package/{cjs → dist/cjs}/lua/apm.lua +0 -0
- /package/{cjs → dist/cjs}/lua/llama.wasm +0 -0
- /package/{cjs → dist/cjs}/lua/process.wasm +0 -0
- /package/{cjs → dist/cjs}/lua/sqlite.js +0 -0
- /package/{cjs → dist/cjs}/lua/sqlite.wasm +0 -0
- /package/{cjs → dist/cjs}/lua/weavedb_mock.lua +0 -0
- /package/{cjs → dist/cjs}/lua/weavedrive.lua +0 -0
- /package/{cjs → dist/cjs}/run.js +0 -0
- /package/{cjs → dist/cjs}/server.js +0 -0
- /package/{cjs → dist/cjs}/storage-multi.js +0 -0
- /package/{cjs → dist/cjs}/tao.js +0 -0
- /package/{cjs → dist/cjs}/tar.js +0 -0
- /package/{cjs → dist/cjs}/test.js +0 -0
- /package/{cjs → dist/cjs}/tgql-d1.js +0 -0
- /package/{cjs → dist/cjs}/tgql.js +0 -0
- /package/{cjs → dist/cjs}/toerl.js +0 -0
- /package/{cjs → dist/cjs}/utils.js +0 -0
- /package/{cjs → dist/cjs}/wao.js +0 -0
- /package/{cjs → dist/cjs}/waosm/waosm.js +0 -0
- /package/{cjs → dist/cjs}/waosm-node/waosm.js +0 -0
- /package/{cjs → dist/cjs}/waosm-node/waosm_bg.js +0 -0
- /package/{cjs → dist/cjs}/waosm-node/waosm_bg.wasm +0 -0
- /package/{cjs → dist/cjs}/waosm-node/waosm_bg.wasm.js +0 -0
- /package/{cjs → dist/cjs}/waosm-node.js +0 -0
- /package/{cjs → dist/cjs}/war.js +0 -0
- /package/{cjs → dist/cjs}/weavedrive.js +0 -0
- /package/{cjs → dist/cjs}/web.js +0 -0
- /package/{cjs → dist/cjs}/workspace/.mcp.json +0 -0
- /package/{cjs → dist/cjs}/workspace/CLAUDE.md +0 -0
- /package/{cjs → dist/cjs}/workspace/README.md +0 -0
- /package/{cjs → dist/cjs}/workspace/dashboard/index.html +0 -0
- /package/{cjs → dist/cjs}/workspace/dashboard/package.json +0 -0
- /package/{esm → dist/cjs}/workspace/dashboard/public/favicon.ico +0 -0
- /package/{cjs → dist/cjs}/workspace/dashboard/public/favicon.png +0 -0
- /package/{cjs → dist/cjs}/workspace/dashboard/server.js +0 -0
- /package/{cjs → dist/cjs}/workspace/dashboard/src/App.jsx +0 -0
- /package/{cjs → dist/cjs}/workspace/dashboard/src/main.jsx +0 -0
- /package/{cjs → dist/cjs}/workspace/dashboard/vite.config.js +0 -0
- /package/{cjs → dist/cjs}/workspace/package.json +0 -0
- /package/{esm → dist/cjs}/workspace/src/counter.lua +0 -0
- /package/{esm → dist/esm}/accounts-web.js +0 -0
- /package/{esm → dist/esm}/accounts.js +0 -0
- /package/{esm → dist/esm}/adaptor-base.js +0 -0
- /package/{esm → dist/esm}/adaptor-cf.js +0 -0
- /package/{esm → dist/esm}/adaptor-web.js +0 -0
- /package/{esm → dist/esm}/adaptor.js +0 -0
- /package/{esm → dist/esm}/ao-loader.js +0 -0
- /package/{esm → dist/esm}/ao.js +0 -0
- /package/{esm → dist/esm}/aoconnect-base.js +0 -0
- /package/{esm → dist/esm}/aoconnect-cf.js +0 -0
- /package/{esm → dist/esm}/aoconnect-web.js +0 -0
- /package/{esm → dist/esm}/aoconnect.js +0 -0
- /package/{esm → dist/esm}/aos_wamr.js +0 -0
- /package/{esm → dist/esm}/ar-remote.js +0 -0
- /package/{esm → dist/esm}/ar.js +0 -0
- /package/{esm → dist/esm}/armem-base.js +0 -0
- /package/{esm → dist/esm}/armem-cf.js +0 -0
- /package/{esm → dist/esm}/armem-web.js +0 -0
- /package/{esm → dist/esm}/armem.js +0 -0
- /package/{esm → dist/esm}/bao.js +0 -0
- /package/{esm → dist/esm}/bar.js +0 -0
- /package/{esm → dist/esm}/build.js +0 -0
- /package/{esm → dist/esm}/bundler.js +0 -0
- /package/{esm → dist/esm}/car.js +0 -0
- /package/{esm → dist/esm}/cf-env.js +0 -0
- /package/{esm → dist/esm}/cf.js +0 -0
- /package/{esm → dist/esm}/cli.js +0 -0
- /package/{esm → dist/esm}/compress.js +0 -0
- /package/{esm → dist/esm}/create.js +0 -0
- /package/{esm → dist/esm}/devs.js +0 -0
- /package/{esm → dist/esm}/dirname.js +0 -0
- /package/{esm → dist/esm}/dodb.js +0 -0
- /package/{esm → dist/esm}/erl_json.js +0 -0
- /package/{esm → dist/esm}/erl_str.js +0 -0
- /package/{esm → dist/esm}/gql.js +0 -0
- /package/{esm → dist/esm}/hb.js +0 -0
- /package/{esm → dist/esm}/helpers.js +0 -0
- /package/{esm → dist/esm}/http.js +0 -0
- /package/{esm → dist/esm}/hub/bundler.js +0 -0
- /package/{esm → dist/esm}/hub/cu.js +0 -0
- /package/{esm → dist/esm}/hub/fs.js +0 -0
- /package/{esm → dist/esm}/hub/index.js +0 -0
- /package/{esm → dist/esm}/hub/utils.js +0 -0
- /package/{esm → dist/esm}/hub/ws-proxy.js +0 -0
- /package/{esm → dist/esm}/hyper-aos.js +0 -0
- /package/{esm → dist/esm}/hyperbeam-server.js +0 -0
- /package/{esm → dist/esm}/hyperbeam.js +0 -0
- /package/{esm → dist/esm}/index.js +0 -0
- /package/{esm → dist/esm}/keygen.js +0 -0
- /package/{esm → dist/esm}/lfdb.js +0 -0
- /package/{esm → dist/esm}/lua/aos.wasm +0 -0
- /package/{esm → dist/esm}/lua/aos2_0_1.js +0 -0
- /package/{esm → dist/esm}/lua/aos2_0_1.wasm +0 -0
- /package/{esm → dist/esm}/lua/aos2_0_3.js +0 -0
- /package/{esm → dist/esm}/lua/aos2_0_3.wasm +0 -0
- /package/{esm → dist/esm}/lua/aos2_0_4_32.js +0 -0
- /package/{esm → dist/esm}/lua/aos2_0_4_32.wasm +0 -0
- /package/{esm → dist/esm}/lua/aos2_0_6.wasm +0 -0
- /package/{esm → dist/esm}/lua/apm.lua +0 -0
- /package/{esm → dist/esm}/lua/llama.wasm +0 -0
- /package/{esm → dist/esm}/lua/process.wasm +0 -0
- /package/{esm → dist/esm}/lua/sqlite.js +0 -0
- /package/{esm → dist/esm}/lua/sqlite.wasm +0 -0
- /package/{esm → dist/esm}/lua/weavedb_mock.lua +0 -0
- /package/{esm → dist/esm}/lua/weavedrive.lua +0 -0
- /package/{esm → dist/esm}/package.json +0 -0
- /package/{esm → dist/esm}/run.js +0 -0
- /package/{esm → dist/esm}/server.js +0 -0
- /package/{esm → dist/esm}/storage-multi.js +0 -0
- /package/{esm → dist/esm}/tao.js +0 -0
- /package/{esm → dist/esm}/tar.js +0 -0
- /package/{esm → dist/esm}/test.js +0 -0
- /package/{esm → dist/esm}/tgql-d1.js +0 -0
- /package/{esm → dist/esm}/tgql.js +0 -0
- /package/{esm → dist/esm}/toerl.js +0 -0
- /package/{esm → dist/esm}/utils.js +0 -0
- /package/{esm → dist/esm}/wao.js +0 -0
- /package/{esm → dist/esm}/waosm/README.md +0 -0
- /package/{esm → dist/esm}/waosm/waosm.d.ts +0 -0
- /package/{esm → dist/esm}/waosm/waosm.js +0 -0
- /package/{esm → dist/esm}/waosm/waosm_bg.wasm +0 -0
- /package/{esm → dist/esm}/waosm/waosm_bg.wasm.d.ts +0 -0
- /package/{esm → dist/esm}/waosm-node/README.md +0 -0
- /package/{esm → dist/esm}/waosm-node/waosm.d.ts +0 -0
- /package/{esm → dist/esm}/waosm-node/waosm.js +0 -0
- /package/{esm → dist/esm}/waosm-node/waosm_bg.js +0 -0
- /package/{esm → dist/esm}/waosm-node/waosm_bg.wasm +0 -0
- /package/{esm → dist/esm}/waosm-node/waosm_bg.wasm.d.ts +0 -0
- /package/{esm → dist/esm}/waosm-node/waosm_bg.wasm.js +0 -0
- /package/{esm → dist/esm}/waosm-node.js +0 -0
- /package/{esm → dist/esm}/war.js +0 -0
- /package/{esm → dist/esm}/weavedrive.js +0 -0
- /package/{esm → dist/esm}/web.js +0 -0
- /package/{esm → dist/esm}/workspace/.mcp.json +0 -0
- /package/{esm → dist/esm}/workspace/CLAUDE.md +0 -0
- /package/{esm → dist/esm}/workspace/README.md +0 -0
- /package/{esm → dist/esm}/workspace/dashboard/index.html +0 -0
- /package/{esm → dist/esm}/workspace/dashboard/package.json +0 -0
- /package/{esm/workspace/dashboard/public/favicon.png → dist/esm/workspace/dashboard/public/favicon.ico} +0 -0
- /package/{esm → dist/esm}/workspace/dashboard/server.js +0 -0
- /package/{esm → dist/esm}/workspace/dashboard/src/App.jsx +0 -0
- /package/{cjs/workspace/frontend → dist/esm/workspace/dashboard}/src/main.jsx +0 -0
- /package/{esm → dist/esm}/workspace/dashboard/vite.config.js +0 -0
- /package/{esm → dist/esm}/workspace/package.json +0 -0
- /package/{postinstall.cjs → dist/postinstall.cjs} +0 -0
- /package/{esm → src}/workspace/dashboard/src/main.jsx +0 -0
package/waosm/src/lib.rs
ADDED
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
use wasm_bindgen::prelude::*;
|
|
2
|
+
use js_sys::{Uint8Array, SharedArrayBuffer};
|
|
3
|
+
|
|
4
|
+
#[wasm_bindgen]
|
|
5
|
+
pub struct Waosm {}
|
|
6
|
+
|
|
7
|
+
#[wasm_bindgen]
|
|
8
|
+
impl Waosm {
|
|
9
|
+
#[wasm_bindgen(constructor)]
|
|
10
|
+
pub fn new() -> Self {
|
|
11
|
+
Self {}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
fn to_base_256(mut n: usize) -> Vec<u8> {
|
|
15
|
+
let mut result = Vec::new();
|
|
16
|
+
while n > 0 {
|
|
17
|
+
result.insert(0, (n % 256) as u8);
|
|
18
|
+
n /= 256;
|
|
19
|
+
}
|
|
20
|
+
if result.is_empty() {
|
|
21
|
+
result.push(0);
|
|
22
|
+
}
|
|
23
|
+
let mut final_result = vec![result.len() as u8];
|
|
24
|
+
final_result.extend(result);
|
|
25
|
+
final_result
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
fn to_10(arr: &[u8]) -> usize {
|
|
29
|
+
let mut num = 0;
|
|
30
|
+
for &v in arr {
|
|
31
|
+
num = num * 256 + v as usize;
|
|
32
|
+
}
|
|
33
|
+
num
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
#[wasm_bindgen]
|
|
37
|
+
pub fn compress(&self, data: &[u8]) -> Uint8Array {
|
|
38
|
+
let mut arr = Vec::new();
|
|
39
|
+
let mut _arr = Vec::new();
|
|
40
|
+
let mut mode = 1;
|
|
41
|
+
let mut prev: Option<u8> = None;
|
|
42
|
+
|
|
43
|
+
for &v in data {
|
|
44
|
+
if prev.is_none() {
|
|
45
|
+
_arr.push(v);
|
|
46
|
+
} else if _arr.len() == 1 {
|
|
47
|
+
mode = if prev.unwrap() != v { 2 } else { 1 };
|
|
48
|
+
_arr.push(v);
|
|
49
|
+
} else {
|
|
50
|
+
if prev.unwrap() != v && mode == 1 {
|
|
51
|
+
Self::_comp(&mut arr, &_arr, mode);
|
|
52
|
+
_arr.clear();
|
|
53
|
+
_arr.push(v);
|
|
54
|
+
mode = 2;
|
|
55
|
+
} else if prev.unwrap() == v && mode == 2 {
|
|
56
|
+
let last = _arr.pop().unwrap();
|
|
57
|
+
Self::_comp(&mut arr, &_arr, mode);
|
|
58
|
+
_arr.clear();
|
|
59
|
+
_arr.extend_from_slice(&[last, v]);
|
|
60
|
+
mode = 1;
|
|
61
|
+
} else {
|
|
62
|
+
_arr.push(v);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
prev = Some(v);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if !_arr.is_empty() {
|
|
69
|
+
Self::_comp(&mut arr, &_arr, mode);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
let result = Uint8Array::new_with_length(arr.len() as u32);
|
|
73
|
+
result.copy_from(&arr);
|
|
74
|
+
result
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
fn _comp(arr: &mut Vec<u8>, _arr: &[u8], mode: u8) {
|
|
78
|
+
let mut _nums: Option<Vec<u8>> = None;
|
|
79
|
+
let mut _elms: Option<Vec<u8>> = None;
|
|
80
|
+
let len = _arr.len();
|
|
81
|
+
let mut flag: u8 = 0;
|
|
82
|
+
|
|
83
|
+
if mode == 1 && _arr[0] != 0 {
|
|
84
|
+
flag += 100;
|
|
85
|
+
_elms = Some(vec![_arr[0]]);
|
|
86
|
+
} else if mode == 2 {
|
|
87
|
+
flag += 200;
|
|
88
|
+
_elms = Some(_arr.to_vec());
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if len < 10 {
|
|
92
|
+
flag += len as u8;
|
|
93
|
+
} else if len != 10 {
|
|
94
|
+
let base256 = Self::to_base_256(len);
|
|
95
|
+
let (elm, nums_slice) = base256.split_at(1);
|
|
96
|
+
_nums = Some(nums_slice.to_vec());
|
|
97
|
+
flag += elm[0] * 10;
|
|
98
|
+
if let Some(ref mut nums_vec) = _nums {
|
|
99
|
+
if !nums_vec.is_empty() && nums_vec[0] < 10 {
|
|
100
|
+
flag += nums_vec.remove(0);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
arr.push(flag);
|
|
106
|
+
if let Some(nums_vec) = _nums {
|
|
107
|
+
arr.extend(nums_vec);
|
|
108
|
+
}
|
|
109
|
+
if let Some(elms_vec) = _elms {
|
|
110
|
+
arr.extend(elms_vec);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
#[wasm_bindgen]
|
|
115
|
+
pub fn decompress(&self, data: &[u8], decompressed_size: usize) -> Uint8Array {
|
|
116
|
+
let mut arr: Vec<u8> = Vec::with_capacity(decompressed_size);
|
|
117
|
+
let mut flag: Option<u8> = None;
|
|
118
|
+
let mut elm: i32 = 0;
|
|
119
|
+
let mut sum: i32 = 0;
|
|
120
|
+
let mut nums: Vec<u8> = Vec::new();
|
|
121
|
+
let mut first: Option<u8> = None;
|
|
122
|
+
let mut second: Option<u8> = None;
|
|
123
|
+
let mut third: Option<u8> = None;
|
|
124
|
+
|
|
125
|
+
for &v in data {
|
|
126
|
+
if flag.is_none() {
|
|
127
|
+
flag = Some(v);
|
|
128
|
+
let flag = v as i32;
|
|
129
|
+
first = Some((flag / 100) as u8);
|
|
130
|
+
second = Some(((flag - (flag / 100) * 100) / 10) as u8);
|
|
131
|
+
third = Some((flag - (flag / 100) * 100 - ((flag - (flag / 100) * 100) / 10) * 10) as u8);
|
|
132
|
+
nums.clear();
|
|
133
|
+
|
|
134
|
+
if second.unwrap() == 0 {
|
|
135
|
+
nums.push(if third.unwrap() == 0 { 10 } else { third.unwrap() });
|
|
136
|
+
elm = 0;
|
|
137
|
+
} else if third.unwrap() != 0 {
|
|
138
|
+
nums.push(third.unwrap());
|
|
139
|
+
elm = second.unwrap() as i32 - 1;
|
|
140
|
+
} else {
|
|
141
|
+
elm = second.unwrap() as i32;
|
|
142
|
+
}
|
|
143
|
+
} else if sum == 0 {
|
|
144
|
+
elm -= 1;
|
|
145
|
+
nums.push(v);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if sum > 0 {
|
|
149
|
+
if first.unwrap() == 2 {
|
|
150
|
+
arr.push(v);
|
|
151
|
+
} else if first.unwrap() == 1 {
|
|
152
|
+
let count = Self::to_10(&nums);
|
|
153
|
+
for _ in 0..count {
|
|
154
|
+
arr.push(v);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
sum -= 1;
|
|
158
|
+
if sum == 0 {
|
|
159
|
+
flag = None;
|
|
160
|
+
}
|
|
161
|
+
} else if elm == 0 {
|
|
162
|
+
if first.unwrap() == 0 {
|
|
163
|
+
let count = Self::to_10(&nums);
|
|
164
|
+
for _ in 0..count {
|
|
165
|
+
arr.push(0);
|
|
166
|
+
}
|
|
167
|
+
flag = None;
|
|
168
|
+
} else if first.unwrap() == 2 {
|
|
169
|
+
sum = Self::to_10(&nums) as i32;
|
|
170
|
+
} else {
|
|
171
|
+
sum = 1;
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
let result = Uint8Array::new_with_length(arr.len() as u32);
|
|
177
|
+
result.copy_from(&arr);
|
|
178
|
+
result
|
|
179
|
+
}
|
|
180
|
+
}
|
package/waosm/test.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Compressor, Decompressor } from "../src/waosm-node.js"
|
|
2
|
+
|
|
3
|
+
const main = async () => {
|
|
4
|
+
const compressor = new Compressor()
|
|
5
|
+
const decompressor = new Decompressor()
|
|
6
|
+
const memory = new Uint8Array([
|
|
7
|
+
1, 2, 3, 4, 5, 5, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
8
|
+
0, 0, 0,
|
|
9
|
+
])
|
|
10
|
+
console.log(memory)
|
|
11
|
+
const compressed = compressor.compress(memory)
|
|
12
|
+
console.log(compressed)
|
|
13
|
+
const decompressed = decompressor.decompress(compressed)
|
|
14
|
+
console.log(decompressed)
|
|
15
|
+
}
|
|
16
|
+
main()
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: builder
|
|
3
|
-
description: General-purpose builder for WAO applications. Builds features end-to-end including AOS scripts, tests, and iteration. Use proactively when implementing new features or modifying existing ones.
|
|
4
|
-
tools: Read, Edit, Write, Bash, Grep, Glob
|
|
5
|
-
model: inherit
|
|
6
|
-
skills:
|
|
7
|
-
- create-aos
|
|
8
|
-
memory: project
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
You are a WAO application builder. You build features end-to-end: AOS scripts, JS tests, and iterate until everything passes.
|
|
12
|
-
|
|
13
|
-
## Reference Docs
|
|
14
|
-
|
|
15
|
-
Read these before building:
|
|
16
|
-
- **AOS scripts** -> read `docs/aos-lua.md` first (msg object, ao globals, patterns, blueprints)
|
|
17
|
-
- **HyperBEAM features** -> read `docs/hyperbeam-devices.md` first (device catalog, endpoints)
|
|
18
|
-
- **Erlang devices** -> read `docs/hyperbeam-dev.md` first (protocol, templates, Erlang reference)
|
|
19
|
-
- **SDK API** -> read `docs/wao-sdk.md` for all test/deploy patterns
|
|
20
|
-
- **Stuck?** -> read `docs/debug.md` for known issues and fixes
|
|
21
|
-
|
|
22
|
-
## Stack
|
|
23
|
-
|
|
24
|
-
- **AOS scripts** in `src/` — AOS process logic using `Handlers.add("Name", "Name", function(msg) ... end)`
|
|
25
|
-
- **JS tests** in `test/` — Node.js built-in `node:test` with `wao/test` for in-memory AOS testing
|
|
26
|
-
- **Deploy** via `scripts/deploy.js` using the `wao` SDK
|
|
27
|
-
- **HyperBEAM devices** in `HyperBEAM/src/` — Erlang modules with `/3` function protocol
|
|
28
|
-
|
|
29
|
-
## Workflow
|
|
30
|
-
|
|
31
|
-
0. Read `plan.md` and `tasks.json` if they exist — pick up from the first pending task. If no plan exists, run `/plan` first. Never build without a plan.
|
|
32
|
-
1. Update the current task status to `in_progress` in `tasks.json`.
|
|
33
|
-
2. Read the relevant docs for the task type BEFORE writing code.
|
|
34
|
-
3. Execute the task based on its type:
|
|
35
|
-
- **aos**: Write AOS scripts in `src/` with input validation
|
|
36
|
-
- **aos-test**: Write in-memory tests in `test/`, iterate until `yarn test` passes
|
|
37
|
-
- **aos-integration**: Write HyperBEAM tests, iterate until they pass
|
|
38
|
-
- **module-lua**: Write standalone Lua module in `custom-lua/`, no AOS framework
|
|
39
|
-
- **module-wasm**: Write Rust WASM64 module in `custom-wasm/`, `#![no_std]`
|
|
40
|
-
- **module-test**: Write HyperBEAM integration tests for custom modules
|
|
41
|
-
- **device**: Write Erlang device + inline eunit tests in same `.erl` file, compile with `rebar3 as genesis_wasm compile`, iterate until `rebar3 eunit` passes
|
|
42
|
-
- **device-integration**: Write WAO SDK integration tests against running HyperBEAM
|
|
43
|
-
- **frontend**: Write React components with `wao/web`
|
|
44
|
-
- **frontend-test**: Write vitest tests, iterate until they pass
|
|
45
|
-
- **frontend-integration**: Write Playwright E2E tests
|
|
46
|
-
- **validate**: Run `/validate`, all gates must pass
|
|
47
|
-
4. When the task's "done when" condition is met, update status to `done` in `tasks.json`.
|
|
48
|
-
5. Move to the next pending task. Never skip ahead — task order matters.
|
|
49
|
-
|
|
50
|
-
## Input Validation
|
|
51
|
-
|
|
52
|
-
Always validate script inputs:
|
|
53
|
-
- Check required tags are present (`if not msg.Tags.X then ... return end`)
|
|
54
|
-
- Use `pcall(bint, value)` for numeric parsing
|
|
55
|
-
- Validate non-empty strings where appropriate
|
|
56
|
-
- Return clear error messages in Data and Error tag
|
|
57
|
-
|
|
58
|
-
Update your agent memory as you discover patterns, common failures, and useful approaches.
|
|
59
|
-
|
|
60
|
-
## Working in Agent Teams
|
|
61
|
-
|
|
62
|
-
When running as a teammate in an agent team, you own specific files assigned to you. Never edit files owned by other teammates. Communicate findings through the shared task list and messages. If you discover a pattern or gotcha, message the team lead so other teammates benefit.
|
|
63
|
-
|
|
64
|
-
Report test results when completing tasks, not just "done" — include the test output summary.
|
|
65
|
-
|
|
66
|
-
## Patterns
|
|
67
|
-
|
|
68
|
-
### AOS Script
|
|
69
|
-
|
|
70
|
-
```lua
|
|
71
|
-
State = State or {}
|
|
72
|
-
|
|
73
|
-
Handlers.add("Action", "Action", function(msg)
|
|
74
|
-
msg.reply({ Data = "response" })
|
|
75
|
-
end)
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### Test
|
|
79
|
-
|
|
80
|
-
```js
|
|
81
|
-
import assert from "assert"
|
|
82
|
-
import { describe, it } from "node:test"
|
|
83
|
-
import { readFileSync } from "fs"
|
|
84
|
-
import { resolve } from "path"
|
|
85
|
-
import { AO, acc } from "wao/test"
|
|
86
|
-
|
|
87
|
-
const src_data = readFileSync(
|
|
88
|
-
resolve(import.meta.dirname, "../src/script.lua"),
|
|
89
|
-
"utf8"
|
|
90
|
-
)
|
|
91
|
-
|
|
92
|
-
describe("AOS Script", function () {
|
|
93
|
-
it("should work", async () => {
|
|
94
|
-
const ao = await new AO().init(acc[0])
|
|
95
|
-
const { p } = await ao.deploy({ src_data })
|
|
96
|
-
assert.equal(await p.d("Action", false), "response")
|
|
97
|
-
})
|
|
98
|
-
})
|
|
99
|
-
```
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: device-builder
|
|
3
|
-
description: Specialized agent for building HyperBEAM Erlang devices. Use when creating custom devices, working with the Erlang device protocol, or compiling HyperBEAM modules.
|
|
4
|
-
tools: Read, Edit, Write, Bash, Grep, Glob
|
|
5
|
-
model: inherit
|
|
6
|
-
skills:
|
|
7
|
-
- create-device
|
|
8
|
-
memory: project
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
You are a HyperBEAM device builder specializing in Erlang. You build custom devices, compile them, and verify they work.
|
|
12
|
-
|
|
13
|
-
## Reference Docs
|
|
14
|
-
|
|
15
|
-
Read these before starting:
|
|
16
|
-
- `docs/hyperbeam-dev.md` — Device protocol, templates, state management, Erlang reference
|
|
17
|
-
- `docs/hyperbeam-devices.md` — Existing device catalog for reference
|
|
18
|
-
- `docs/debug.md` — Known issues and fixes
|
|
19
|
-
|
|
20
|
-
## Device Protocol
|
|
21
|
-
|
|
22
|
-
Every device exports functions with arity/3:
|
|
23
|
-
|
|
24
|
-
```erlang
|
|
25
|
-
function(Msg1, Msg2, Opts) -> {ok, Result} | {error, ErrorMap}
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Required: `info/3`, `compute/3`. Optional: `init/3`, `snapshot/3`, `normalize/3`, `get/3`.
|
|
29
|
-
|
|
30
|
-
## Compilation Loop
|
|
31
|
-
|
|
32
|
-
1. Write device → `rebar3 compile` → read errors → fix → repeat
|
|
33
|
-
2. Common rebar3 errors:
|
|
34
|
-
- Missing `-include("include/hb.hrl").`
|
|
35
|
-
- Wrong arity (must be /3)
|
|
36
|
-
- Missing `-export` for public functions
|
|
37
|
-
- Erlang syntax: `end.` at end of module, `end` inside case/if
|
|
38
|
-
3. Always write eunit test alongside device
|
|
39
|
-
|
|
40
|
-
## Workflow
|
|
41
|
-
|
|
42
|
-
1. Read `docs/hyperbeam-dev.md` for the device template
|
|
43
|
-
2. Read `docs/hyperbeam-devices.md` if building on existing device patterns
|
|
44
|
-
3. Write the Erlang device module in `HyperBEAM/src/dev_{name}.erl`
|
|
45
|
-
4. Compile: `cd HyperBEAM && rebar3 compile`
|
|
46
|
-
5. If compilation fails, read rebar3 errors carefully — common issues:
|
|
47
|
-
- Missing `-include("include/hb.hrl").`
|
|
48
|
-
- Wrong function arity (must be /3)
|
|
49
|
-
- Missing `-export` for public functions
|
|
50
|
-
- Erlang syntax: `end.` at end of module, `end` inside case/if
|
|
51
|
-
6. Write JS integration test in `test/{name}.device.test.js`
|
|
52
|
-
7. Run test: `yarn test test/{name}.device.test.js`
|
|
53
|
-
8. Iterate until compilation and tests pass
|
|
54
|
-
|
|
55
|
-
Update your agent memory with compilation patterns and Erlang gotchas you discover.
|
|
56
|
-
|
|
57
|
-
## Working in Agent Teams
|
|
58
|
-
|
|
59
|
-
When running as a teammate in an agent team for cross-layer device development, you own the Erlang side (`HyperBEAM/src/`). Coordinate with the JS test teammate — share the device endpoint paths and expected responses so they can write accurate integration tests. Message compilation results to the team.
|
|
60
|
-
|
|
61
|
-
Report compilation and test results with specifics, not just "done."
|
|
62
|
-
|
|
63
|
-
## Key Erlang Modules
|
|
64
|
-
|
|
65
|
-
- `hb_maps:get/4` — Read request params from M2
|
|
66
|
-
- `hb_private:get/4, set/3` — In-memory private state
|
|
67
|
-
- `hb_cache:write/2, read/2` — Content-addressed persistent storage
|
|
68
|
-
- `hb_message:signers/2` — Extract signer addresses for auth
|
|
69
|
-
- `hb_ao:resolve/3` — Test device via resolution
|
|
70
|
-
|
|
71
|
-
## State Pattern
|
|
72
|
-
|
|
73
|
-
```erlang
|
|
74
|
-
load_state(M1, Opts) ->
|
|
75
|
-
case hb_private:get(<<"state-id">>, M1, not_found, Opts) of
|
|
76
|
-
not_found -> #{};
|
|
77
|
-
ID -> case hb_cache:read(ID, Opts) of
|
|
78
|
-
{ok, State} -> hb_cache:ensure_all_loaded(State, Opts);
|
|
79
|
-
not_found -> #{}
|
|
80
|
-
end
|
|
81
|
-
end.
|
|
82
|
-
|
|
83
|
-
save_state(M1, State, Opts) ->
|
|
84
|
-
{ok, ID} = hb_cache:write(State, Opts),
|
|
85
|
-
hb_private:set(M1, #{<<"state-id">> => ID}, Opts).
|
|
86
|
-
```
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: tester
|
|
3
|
-
description: Test specialist for running and fixing WAO tests. Use proactively when tests are failing, when debugging test issues, or after code changes to verify correctness.
|
|
4
|
-
tools: Read, Edit, Bash, Grep, Glob
|
|
5
|
-
model: inherit
|
|
6
|
-
memory: project
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
You are a WAO test specialist. You run tests, diagnose failures, fix issues, and verify correctness.
|
|
10
|
-
|
|
11
|
-
## Reference Docs
|
|
12
|
-
|
|
13
|
-
- Read `docs/wao-sdk.md` for all test API patterns (AO, HB, Process handle, get/check)
|
|
14
|
-
- Read `docs/debug.md` for known failure patterns and the common error messages table
|
|
15
|
-
|
|
16
|
-
## Port Cleanup
|
|
17
|
-
|
|
18
|
-
Before running tests, kill stale processes:
|
|
19
|
-
|
|
20
|
-
```bash
|
|
21
|
-
lsof -ti :10000-10010 | xargs -r kill -9 2>/dev/null || true
|
|
22
|
-
pkill -f beam.smp 2>/dev/null || true
|
|
23
|
-
```
|
|
24
|
-
|
|
25
|
-
## Running Tests
|
|
26
|
-
|
|
27
|
-
```bash
|
|
28
|
-
yarn test # all tests
|
|
29
|
-
yarn test test/aos.test.js # specific file
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
The test command runs: `node --test --test-concurrency=1` (Node 24+ enables wasm-memory64 by default and rejects the experimental flag; Node 22 users add `--experimental-wasm-memory64` via NODE_OPTIONS).
|
|
33
|
-
|
|
34
|
-
## Systematic Debugging
|
|
35
|
-
|
|
36
|
-
1. Read test output — identify the FIRST failure
|
|
37
|
-
2. Cross-reference with `docs/debug.md` error table
|
|
38
|
-
3. Check: is the failure in Lua source or test code?
|
|
39
|
-
4. Fix the root cause, not the symptom
|
|
40
|
-
5. Re-run the specific test file
|
|
41
|
-
6. Once fixed, run full suite for regressions
|
|
42
|
-
|
|
43
|
-
## Fixing Failures
|
|
44
|
-
|
|
45
|
-
1. Read the test output carefully
|
|
46
|
-
2. Cross-reference error messages with `docs/debug.md` common error table
|
|
47
|
-
3. Identify whether the failure is in Lua source or test code
|
|
48
|
-
4. Fix the issue and re-run the specific test
|
|
49
|
-
5. Once passing, run the full suite to check for regressions
|
|
50
|
-
|
|
51
|
-
Update your agent memory with failure patterns and fixes you discover.
|
|
52
|
-
|
|
53
|
-
## Working in Agent Teams
|
|
54
|
-
|
|
55
|
-
When running as a teammate in an agent team, focus on your assigned test scope. If you discover a bug in the Lua source, message the builder teammate with the specific fix needed rather than editing it yourself. Share debug findings through the team — especially gotchas from `docs/debug.md` that could affect other teammates.
|
|
56
|
-
|
|
57
|
-
Report test results with specifics: which tests pass, which fail, and the error messages.
|
|
58
|
-
|
|
59
|
-
## Common Issues
|
|
60
|
-
|
|
61
|
-
- **Port already in use**: Kill stale `beam.smp` processes
|
|
62
|
-
- **WASM memory error**: On Node 22 set `NODE_OPTIONS=--experimental-wasm-memory64`. On Node 24+ the flag is default-on (and rejected if passed explicitly — "bad option: --experimental-wasm-memory64")
|
|
63
|
-
- **Process not found**: Check that `src_data` path is correct
|
|
64
|
-
- **HyperBEAM timeout**: Ensure `hbeam.kill()` is called in `after()`
|
|
65
|
-
- **Send().receive() hangs**: Does NOT work on genesis-wasm — use fire-and-forget `Send()` + separate Handlers.add calls
|
|
66
|
-
- **Action doesn't match**: Must be uppercase `Action`, not `action`
|
|
67
|
-
- **Signature fails**: Don't include `authority` in spawn tags (RFC 9421 conflict)
|
|
68
|
-
- **Multiple matches**: Add nonce/timestamp to messages to avoid duplicate content
|
|
69
|
-
|
|
70
|
-
## Device Stack Testing
|
|
71
|
-
|
|
72
|
-
```js
|
|
73
|
-
const { pid } = await hb.spawn({
|
|
74
|
-
"execution-device": "stack@1.0",
|
|
75
|
-
"device-stack": ["wao@1.0", "patch@1.0"],
|
|
76
|
-
"patch-from": "/results",
|
|
77
|
-
"patch-to": "/cache",
|
|
78
|
-
})
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
## Payment Testing
|
|
82
|
-
|
|
83
|
-
```js
|
|
84
|
-
// Simple pay
|
|
85
|
-
const hbeam = await new HyperBEAM({ simple_pay: true, simple_pay_price: 2 }).ready()
|
|
86
|
-
await operator.hb.p("/~simple-pay@1.0/topup", { amount: 15, recipient: user.addr })
|
|
87
|
-
|
|
88
|
-
// FAFF
|
|
89
|
-
const hbeam = await new HyperBEAM({ faff: [addr1, addr2] }).ready()
|
|
90
|
-
```
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
// MCP server for WAO Dashboard — JSON-RPC over stdio
|
|
4
|
-
// Provides get_progress and open_dashboard tools to Claude Code
|
|
5
|
-
|
|
6
|
-
import { readFileSync, existsSync } from "node:fs"
|
|
7
|
-
import { join } from "node:path"
|
|
8
|
-
import { createInterface } from "node:readline"
|
|
9
|
-
|
|
10
|
-
const ROOT = join(import.meta.dirname, "../../..")
|
|
11
|
-
|
|
12
|
-
const TOOLS = [
|
|
13
|
-
{
|
|
14
|
-
name: "get_progress",
|
|
15
|
-
description: "Get current build progress from tasks.json — returns feature name, tracks, task list with status, and current step.",
|
|
16
|
-
inputSchema: { type: "object", properties: {}, required: [] },
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
name: "open_dashboard",
|
|
20
|
-
description: "Get the URLs to open the WAO build progress dashboard.",
|
|
21
|
-
inputSchema: { type: "object", properties: {}, required: [] },
|
|
22
|
-
},
|
|
23
|
-
]
|
|
24
|
-
|
|
25
|
-
function readProgress() {
|
|
26
|
-
const tasksPath = join(ROOT, "tasks.json")
|
|
27
|
-
if (!existsSync(tasksPath)) return { feature: null, tasks: [], tracks: [], current_step: 0 }
|
|
28
|
-
try {
|
|
29
|
-
return JSON.parse(readFileSync(tasksPath, "utf8"))
|
|
30
|
-
} catch {
|
|
31
|
-
return { feature: null, tasks: [], tracks: [], current_step: 0 }
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
function handleRequest(msg) {
|
|
36
|
-
const { id, method, params } = msg
|
|
37
|
-
|
|
38
|
-
if (method === "initialize") {
|
|
39
|
-
return {
|
|
40
|
-
jsonrpc: "2.0", id,
|
|
41
|
-
result: {
|
|
42
|
-
protocolVersion: "2024-11-05",
|
|
43
|
-
capabilities: { tools: {} },
|
|
44
|
-
serverInfo: { name: "wao-dashboard", version: "1.0.0" },
|
|
45
|
-
},
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (method === "notifications/initialized") return null // no response needed
|
|
50
|
-
|
|
51
|
-
if (method === "ping") {
|
|
52
|
-
return { jsonrpc: "2.0", id, result: {} }
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
if (method === "tools/list") {
|
|
56
|
-
return { jsonrpc: "2.0", id, result: { tools: TOOLS } }
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
if (method === "tools/call") {
|
|
60
|
-
const toolName = params?.name
|
|
61
|
-
if (toolName === "get_progress") {
|
|
62
|
-
const data = readProgress()
|
|
63
|
-
return {
|
|
64
|
-
jsonrpc: "2.0", id,
|
|
65
|
-
result: {
|
|
66
|
-
content: [{ type: "text", text: JSON.stringify(data, null, 2) }],
|
|
67
|
-
},
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
if (toolName === "open_dashboard") {
|
|
71
|
-
return {
|
|
72
|
-
jsonrpc: "2.0", id,
|
|
73
|
-
result: {
|
|
74
|
-
content: [{
|
|
75
|
-
type: "text",
|
|
76
|
-
text: [
|
|
77
|
-
"WAO Dashboard URLs:",
|
|
78
|
-
" Dev server: http://localhost:5174",
|
|
79
|
-
" API server: http://localhost:3333",
|
|
80
|
-
"",
|
|
81
|
-
"Start both with: yarn start",
|
|
82
|
-
"Start API only: yarn start:api",
|
|
83
|
-
].join("\n"),
|
|
84
|
-
}],
|
|
85
|
-
},
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
return {
|
|
89
|
-
jsonrpc: "2.0", id,
|
|
90
|
-
error: { code: -32601, message: `Unknown tool: ${toolName}` },
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
// Unknown method
|
|
95
|
-
if (id !== undefined) {
|
|
96
|
-
return {
|
|
97
|
-
jsonrpc: "2.0", id,
|
|
98
|
-
error: { code: -32601, message: `Method not found: ${method}` },
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return null
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
// --- stdio transport ---
|
|
105
|
-
const rl = createInterface({ input: process.stdin })
|
|
106
|
-
let buffer = ""
|
|
107
|
-
|
|
108
|
-
process.stdin.on("data", (chunk) => {
|
|
109
|
-
buffer += chunk.toString()
|
|
110
|
-
let newlineIdx
|
|
111
|
-
while ((newlineIdx = buffer.indexOf("\n")) !== -1) {
|
|
112
|
-
const line = buffer.slice(0, newlineIdx).trim()
|
|
113
|
-
buffer = buffer.slice(newlineIdx + 1)
|
|
114
|
-
if (!line) continue
|
|
115
|
-
try {
|
|
116
|
-
const msg = JSON.parse(line)
|
|
117
|
-
const response = handleRequest(msg)
|
|
118
|
-
if (response) {
|
|
119
|
-
process.stdout.write(JSON.stringify(response) + "\n")
|
|
120
|
-
}
|
|
121
|
-
} catch {
|
|
122
|
-
// ignore malformed JSON
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
})
|
|
126
|
-
|
|
127
|
-
// Keep process alive
|
|
128
|
-
process.stdin.resume()
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
paths:
|
|
3
|
-
- "scripts/**/*.js"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Deploy Rules
|
|
7
|
-
|
|
8
|
-
## Deploy Command
|
|
9
|
-
|
|
10
|
-
```bash
|
|
11
|
-
yarn deploy # testnet, all src/*.lua
|
|
12
|
-
yarn deploy src/counter.lua # testnet, one script
|
|
13
|
-
yarn deploy --mainnet # remote HyperBEAM (push-1)
|
|
14
|
-
yarn deploy --mainnet --lua # remote HyperBEAM with Lua mode
|
|
15
|
-
yarn deploy --local-hb # local HyperBEAM (genesis-wasm)
|
|
16
|
-
yarn deploy --local-hb --lua # local HyperBEAM with Lua mode
|
|
17
|
-
yarn deploy --node https://push-3.forward.computer # custom node
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Three Deploy Targets
|
|
21
|
-
|
|
22
|
-
### Testnet (default)
|
|
23
|
-
Uses `new AO().init(jwk)` with aoconnect — spawns process, loads Lua code via Eval message.
|
|
24
|
-
- MU can be flaky (504 errors)
|
|
25
|
-
- `receive()` works via CU polling
|
|
26
|
-
|
|
27
|
-
### Local HyperBEAM (`--local-hb`)
|
|
28
|
-
Uses `new AO({ hb: "http://localhost:10001" }).init(jwk)` — deploys to a local Erlang node.
|
|
29
|
-
- Default: `genesis_wasm` mode (legacynet compatible)
|
|
30
|
-
- Add `--lua` for Lua mode (faster, no WASM, but no `receive()`)
|
|
31
|
-
- Requires HyperBEAM running locally
|
|
32
|
-
|
|
33
|
-
### Remote HyperBEAM (`--mainnet`)
|
|
34
|
-
Uses `new AO({ hb: "https://push-1.forward.computer" }).init(jwk)` — production deployment.
|
|
35
|
-
- Uses `push-1` through `push-10` for full compute support
|
|
36
|
-
- **Do NOT use `push.forward.computer`** — it's push-only (no compute)
|
|
37
|
-
- Add `--lua` for Lua mode
|
|
38
|
-
- Add `--node <url>` for a specific push node
|
|
39
|
-
|
|
40
|
-
## Wallet
|
|
41
|
-
|
|
42
|
-
- Wallet resolved from `.env.hyperbeam` CWD, or `.wallet.json` in project root
|
|
43
|
-
- Can also specify with `--wallet <path>` flag
|
|
44
|
-
- Generate with `yarn keygen` or `npx wao keygen`
|
|
45
|
-
- **Never commit `.wallet.json`** — it's in `.gitignore`
|