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
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "wao-workspace",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"scripts": {
|
|
6
|
+
"test": "node --test --test-concurrency=1",
|
|
7
|
+
"test-only": "node --test-only --test-concurrency=1",
|
|
8
|
+
"test-all": "node --test --test-concurrency=1 test/**/*.test.js",
|
|
9
|
+
"start": "trap 'kill $(jobs -p)' EXIT; node dashboard/server.js & cd dashboard && npx vite",
|
|
10
|
+
"start:api": "node dashboard/server.js",
|
|
11
|
+
"keygen": "node scripts/keygen.js",
|
|
12
|
+
"deploy": "node scripts/deploy.js"
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {
|
|
15
|
+
"hbsig": "0.3.1",
|
|
16
|
+
"wao": "0.41.3"
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
local count = 0
|
|
2
|
+
|
|
3
|
+
Handlers.add("Inc", "Inc", function (msg)
|
|
4
|
+
count = count + 1
|
|
5
|
+
msg.reply({ Data = "Incremented!" })
|
|
6
|
+
end)
|
|
7
|
+
|
|
8
|
+
Handlers.add("Get", "Get", function (msg)
|
|
9
|
+
msg.reply({ Data = tostring(count) })
|
|
10
|
+
end)
|
|
11
|
+
|
|
12
|
+
Handlers.add("Hello", "Hello", function (msg)
|
|
13
|
+
msg.reply({ Data = "Hello, World!" })
|
|
14
|
+
end)
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"compilerOptions": {
|
|
3
|
+
"target": "ES2020",
|
|
4
|
+
"module": "ESNext",
|
|
5
|
+
"moduleResolution": "node",
|
|
6
|
+
"esModuleInterop": true,
|
|
7
|
+
"strict": true,
|
|
8
|
+
"skipLibCheck": true,
|
|
9
|
+
"forceConsistentCasingInFileNames": true,
|
|
10
|
+
"outDir": "dist",
|
|
11
|
+
"declaration": true,
|
|
12
|
+
"declarationDir": "types",
|
|
13
|
+
"sourceMap": true,
|
|
14
|
+
"rootDir": "src"
|
|
15
|
+
},
|
|
16
|
+
"include": ["src/**/*"],
|
|
17
|
+
"exclude": ["node_modules", "dist", "test"]
|
|
18
|
+
}
|
package/types/index.d.ts
ADDED
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
// Core Types
|
|
2
|
+
export interface JWK {
|
|
3
|
+
kty: string;
|
|
4
|
+
e: string;
|
|
5
|
+
n: string;
|
|
6
|
+
d?: string;
|
|
7
|
+
p?: string;
|
|
8
|
+
q?: string;
|
|
9
|
+
dp?: string;
|
|
10
|
+
dq?: string;
|
|
11
|
+
qi?: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface Tag {
|
|
15
|
+
name: string;
|
|
16
|
+
value: string;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface Message {
|
|
20
|
+
process: string;
|
|
21
|
+
tags: Tag[];
|
|
22
|
+
data?: string | Uint8Array;
|
|
23
|
+
signer?: JWK;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface ProcessOptions {
|
|
27
|
+
boot?: boolean;
|
|
28
|
+
module?: string;
|
|
29
|
+
scheduler?: string;
|
|
30
|
+
memory?: number;
|
|
31
|
+
jwk?: JWK;
|
|
32
|
+
tags?: Record<string, string>;
|
|
33
|
+
data?: string | Uint8Array;
|
|
34
|
+
auth?: string;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface ResultOptions {
|
|
38
|
+
jwk?: JWK;
|
|
39
|
+
pid?: string;
|
|
40
|
+
mid?: string;
|
|
41
|
+
check?: any[];
|
|
42
|
+
get?: boolean | string;
|
|
43
|
+
timeout?: number;
|
|
44
|
+
mode?: 'aoconnect' | 'local';
|
|
45
|
+
limit?: number;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export interface DeployOptions {
|
|
49
|
+
boot?: boolean;
|
|
50
|
+
loads?: any[];
|
|
51
|
+
src?: string;
|
|
52
|
+
src_data?: string;
|
|
53
|
+
fills?: Record<string, any>;
|
|
54
|
+
module?: string;
|
|
55
|
+
scheduler?: string;
|
|
56
|
+
jwk?: JWK;
|
|
57
|
+
tags?: Record<string, string>;
|
|
58
|
+
data?: string | Uint8Array;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
// AO Class Types
|
|
62
|
+
export interface AOOptions {
|
|
63
|
+
module?: string;
|
|
64
|
+
scheduler?: string;
|
|
65
|
+
memory?: number;
|
|
66
|
+
ar?: {
|
|
67
|
+
host?: string;
|
|
68
|
+
port?: number;
|
|
69
|
+
protocol?: string;
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export interface PipeOptions {
|
|
74
|
+
jwk: JWK;
|
|
75
|
+
fns: Function[];
|
|
76
|
+
cb?: Function;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// WeaveDB Types
|
|
80
|
+
export interface WeaveDBOptions {
|
|
81
|
+
cacheSize?: number;
|
|
82
|
+
chunkSize?: number;
|
|
83
|
+
notifySize?: number;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export interface WeaveDBCollection {
|
|
87
|
+
create: (id: string) => Promise<void>;
|
|
88
|
+
createData: (col: string, doc: any, val: any) => Promise<void>;
|
|
89
|
+
open: (filename: string, val: any) => Promise<void>;
|
|
90
|
+
read: (fd: number, raw_dst_ptr: number, raw_length: number, val: any) => Promise<void>;
|
|
91
|
+
close: (fd: number) => void;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// WeaveDrive Types
|
|
95
|
+
export interface WeaveDriveOptions {
|
|
96
|
+
cacheSize?: number;
|
|
97
|
+
chunkSize?: number;
|
|
98
|
+
streamChunk?: number;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export interface WeaveDriveFile {
|
|
102
|
+
reset: (fd: number) => void;
|
|
103
|
+
create: (id: string) => Promise<number>;
|
|
104
|
+
read: (fd: number, raw_dst_ptr: number, raw_length: number) => Promise<number>;
|
|
105
|
+
close: (fd: number) => void;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// Process Class Types
|
|
109
|
+
export interface ProcessOptions {
|
|
110
|
+
pid: string;
|
|
111
|
+
ao: AO;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// AR Types
|
|
115
|
+
export interface AROptions {
|
|
116
|
+
host?: string;
|
|
117
|
+
port?: number;
|
|
118
|
+
protocol?: string;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export interface ARTransaction {
|
|
122
|
+
id: string;
|
|
123
|
+
anchor?: string;
|
|
124
|
+
signature?: string;
|
|
125
|
+
recipient?: string;
|
|
126
|
+
owner?: {
|
|
127
|
+
address: string;
|
|
128
|
+
key: string;
|
|
129
|
+
};
|
|
130
|
+
fee?: {
|
|
131
|
+
winston: string;
|
|
132
|
+
ar: string;
|
|
133
|
+
};
|
|
134
|
+
quantity?: {
|
|
135
|
+
winston: string;
|
|
136
|
+
ar: string;
|
|
137
|
+
};
|
|
138
|
+
data?: {
|
|
139
|
+
size: string;
|
|
140
|
+
type: string;
|
|
141
|
+
};
|
|
142
|
+
tags?: Tag[];
|
|
143
|
+
block?: {
|
|
144
|
+
id: string;
|
|
145
|
+
timestamp: number;
|
|
146
|
+
height: number;
|
|
147
|
+
previous: string;
|
|
148
|
+
};
|
|
149
|
+
parent?: {
|
|
150
|
+
id: string;
|
|
151
|
+
};
|
|
152
|
+
bundledIn?: {
|
|
153
|
+
id: string;
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// GQL Types
|
|
158
|
+
export interface GQLOptions {
|
|
159
|
+
url?: string;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
export interface GQLQueryOptions {
|
|
163
|
+
first?: number;
|
|
164
|
+
after?: string;
|
|
165
|
+
asc?: boolean;
|
|
166
|
+
next?: boolean;
|
|
167
|
+
block?: {
|
|
168
|
+
min?: number;
|
|
169
|
+
max?: number;
|
|
170
|
+
} | [number, number];
|
|
171
|
+
id?: string;
|
|
172
|
+
ids?: string[];
|
|
173
|
+
recipient?: string;
|
|
174
|
+
recipients?: string[];
|
|
175
|
+
owner?: string;
|
|
176
|
+
owners?: string[];
|
|
177
|
+
tags?: Record<string, string>;
|
|
178
|
+
fields?: string[] | Record<string, any>;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
// HB (HyperBEAM) Types
|
|
182
|
+
export interface HBOptions {
|
|
183
|
+
url: string;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
export interface HBMessage {
|
|
187
|
+
target: string;
|
|
188
|
+
from?: string;
|
|
189
|
+
to?: string;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
export interface HBResult {
|
|
193
|
+
Messages: any[];
|
|
194
|
+
Spawns: any[];
|
|
195
|
+
Assignments: any[];
|
|
196
|
+
Output: any;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
// Main Classes
|
|
200
|
+
export class AO {
|
|
201
|
+
constructor(opt?: AOOptions);
|
|
202
|
+
init(jwk: JWK): Promise<AO>;
|
|
203
|
+
toSigner(wallet: JWK): Function;
|
|
204
|
+
pipe(options: PipeOptions): Promise<any>;
|
|
205
|
+
postModule(options: { data: string | Uint8Array, jwk: JWK, tags?: Record<string, string>, overwrite?: boolean }): Promise<string>;
|
|
206
|
+
postScheduler(options: { jwk: JWK, url: string, tags?: Record<string, string>, overwrite?: boolean }): Promise<string>;
|
|
207
|
+
spwn(options?: ProcessOptions): Promise<string>;
|
|
208
|
+
res(options?: ResultOptions): Promise<any>;
|
|
209
|
+
msg(options: Message): Promise<any>;
|
|
210
|
+
asgn(options: { pid: string, mid: string, jwk: JWK, check?: any[], get?: boolean | string }): Promise<any>;
|
|
211
|
+
dry(options: { pid: string, jwk: JWK, data?: string | Uint8Array, act?: string, tags?: Tag[], check?: any[], get?: boolean | string }): Promise<any>;
|
|
212
|
+
ress(options: { pid: string, limit?: number, asc?: boolean, cursor?: string }): Promise<any>;
|
|
213
|
+
eval(options: { pid: string, jwk: JWK, data: string | Uint8Array }): Promise<any>;
|
|
214
|
+
transform(options: { src: string, data: any, fills: Record<string, any> }): Promise<string>;
|
|
215
|
+
load(options: { src: string, data: any, fills: Record<string, any>, pid: string, jwk: JWK }): Promise<any>;
|
|
216
|
+
wait(options: { pid: string, attempts?: number }): Promise<void>;
|
|
217
|
+
attest(options: { id: string, jwk: JWK, tags: Tag[] }): Promise<any>;
|
|
218
|
+
avail(options: { ids: string[], jwk: JWK, tags: Tag[] }): Promise<any>;
|
|
219
|
+
deploy(options: DeployOptions): Promise<{ p: Process }>;
|
|
220
|
+
var(options: { pid: string, data: any, json?: boolean, pretty?: boolean }): Promise<any>;
|
|
221
|
+
p(pid: string): Process;
|
|
222
|
+
ar: AR;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
export class WeaveDB {
|
|
226
|
+
constructor(ar: any, dir: string, options?: WeaveDBOptions);
|
|
227
|
+
create(id: string): Promise<void>;
|
|
228
|
+
createData(col: string, doc: any, val: any): Promise<void>;
|
|
229
|
+
open(filename: string, val: any): Promise<void>;
|
|
230
|
+
read(fd: number, raw_dst_ptr: number, raw_length: number, val: any): Promise<void>;
|
|
231
|
+
close(fd: number): void;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
export class WeaveDrive {
|
|
235
|
+
constructor(ar: any, options?: WeaveDriveOptions);
|
|
236
|
+
reset(fd: number): void;
|
|
237
|
+
create(id: string): Promise<number>;
|
|
238
|
+
read(fd: number, raw_dst_ptr: number, raw_length: number): Promise<number>;
|
|
239
|
+
close(fd: number): void;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
export class Process {
|
|
243
|
+
constructor(pid: string, ao: AO);
|
|
244
|
+
load(opt?: any): Promise<any>;
|
|
245
|
+
msg(act: string, tags: Tag[], opts?: any): Promise<any>;
|
|
246
|
+
dry(act: string, tags: Tag[], opts?: any): Promise<any>;
|
|
247
|
+
res(opts?: any): Promise<any>;
|
|
248
|
+
o(name: string, opt?: any): Promise<any>;
|
|
249
|
+
m(...opt: any[]): Promise<any>;
|
|
250
|
+
d(...opt: any[]): Promise<any>;
|
|
251
|
+
v(data: any, json?: boolean, pretty?: boolean): Promise<any>;
|
|
252
|
+
r(...opt: any[]): Promise<any>;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export class AR {
|
|
256
|
+
constructor(options?: AROptions);
|
|
257
|
+
init(jwk: JWK): Promise<AR>;
|
|
258
|
+
gen(amount?: string): Promise<{ jwk: JWK, addr: string, pub: string, balance: string }>;
|
|
259
|
+
toAddr(jwk: JWK): Promise<string>;
|
|
260
|
+
mine(): Promise<void>;
|
|
261
|
+
balance(addr?: string): Promise<string>;
|
|
262
|
+
toAR(winston: string): string;
|
|
263
|
+
toWinston(ar: string): string;
|
|
264
|
+
transfer(amount: string, to: string, jwk?: JWK): Promise<{ id: string }>;
|
|
265
|
+
checkWallet(options?: { jwk?: JWK }): Promise<{ err: any, jwk: JWK }>;
|
|
266
|
+
post(options: { data: string | Uint8Array, tags?: Record<string, string>, jwk?: JWK }): Promise<{ err: any, id: string }>;
|
|
267
|
+
tx(txid: string): Promise<ARTransaction>;
|
|
268
|
+
data(txid: string, asString?: boolean): Promise<string | Uint8Array>;
|
|
269
|
+
bundle(dataitems: Array<[string | Uint8Array, Record<string, string>]>): Promise<{ err: any, id: string }>;
|
|
270
|
+
gql: GQL;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
export class GQL {
|
|
274
|
+
constructor(options?: GQLOptions);
|
|
275
|
+
txs(options?: GQLQueryOptions): Promise<{ next?: () => Promise<any>, data: ARTransaction[] }>;
|
|
276
|
+
blocks(options?: GQLQueryOptions): Promise<{ next?: () => Promise<any>, data: any[] }>;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
export class HB {
|
|
280
|
+
constructor(options: HBOptions);
|
|
281
|
+
init(jwk: JWK): Promise<HB>;
|
|
282
|
+
metrics(): Promise<any>;
|
|
283
|
+
info(): Promise<any>;
|
|
284
|
+
messages(options: HBMessage): Promise<any>;
|
|
285
|
+
process(options?: { tags?: Tag[], data?: string }): Promise<string>;
|
|
286
|
+
schedule(options: { process: string, tags?: Tag[], data?: string, action?: string }): Promise<number>;
|
|
287
|
+
compute(options: { process: string, slot: number }): Promise<HBResult>;
|
|
288
|
+
dryrun(options: { process: string, tags?: Tag[], data?: string, action?: string }): Promise<HBResult>;
|
|
289
|
+
get(options: { device: string, path: string }): Promise<any>;
|
|
290
|
+
post(options: { device: string, path: string, tags?: Tag[] }): Promise<any>;
|
|
291
|
+
request(options: { device: string, path: string, tags?: Tag[], method: string }): Promise<any>;
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
// Utility Types
|
|
295
|
+
export interface Utils {
|
|
296
|
+
allChecked: Function;
|
|
297
|
+
searchTag: Function;
|
|
298
|
+
checkTag: Function;
|
|
299
|
+
wait: Function;
|
|
300
|
+
isLocalhost: Function;
|
|
301
|
+
tag: Function;
|
|
302
|
+
ltags: Function;
|
|
303
|
+
action: Function;
|
|
304
|
+
isData: Function;
|
|
305
|
+
getTagVal: Function;
|
|
306
|
+
srcs: Function;
|
|
307
|
+
buildTags: Function;
|
|
308
|
+
isRegExp: Function;
|
|
309
|
+
mergeChecks: Function;
|
|
310
|
+
isCheckComplete: Function;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
// Test Types
|
|
314
|
+
export interface TestAccount {
|
|
315
|
+
jwk: JWK;
|
|
316
|
+
addr: string;
|
|
317
|
+
signer: Function;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
export interface TestConnect {
|
|
321
|
+
spawn: Function;
|
|
322
|
+
message: Function;
|
|
323
|
+
dryrun: Function;
|
|
324
|
+
assign: Function;
|
|
325
|
+
result: Function;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
export function connect(mem?: any): TestConnect;
|
|
329
|
+
export const acc: TestAccount[];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# WaoLlama
|
|
2
|
+
|
|
3
|
+
WaoLlama is a fully decentralized onchain LLM agent embedded in the browser on WAO.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
cd waollama && yarn
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
It uses the wasm64 module from [aos-llama](https://github.com/samcamwilliams/aos-llama), so you need to enable `Experimental WebAssembly` from [chrome://flags](chrome://flags) to run it in the browser, if you are on Google Chrome.
|
|
10
|
+
|
|
11
|
+
Also, create `public/llama` directory, and download a gguf file from [Hugging Face](https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0/tree/main), and put into the directory with the name `tynyllama.gguf`, and copy `src/lua/llama.wasm` into the directory. These files are not included due to their huge sizes.
|
|
12
|
+
|
|
13
|
+
Once everything is set, run the following.
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
yarn dev
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Now your app is running at [localhost:3000](http://localhost:3000).
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import {
|
|
2
|
+
rmdirSync,
|
|
3
|
+
unlinkSync,
|
|
4
|
+
writeFileSync,
|
|
5
|
+
readFileSync,
|
|
6
|
+
readdirSync,
|
|
7
|
+
} from "fs"
|
|
8
|
+
|
|
9
|
+
import { resolve, extname } from "path"
|
|
10
|
+
import * as cheerio from "cheerio"
|
|
11
|
+
|
|
12
|
+
const out = resolve(import.meta.dirname, "out")
|
|
13
|
+
const dirs = readdirSync(out, { withFileTypes: true, recursive: true })
|
|
14
|
+
|
|
15
|
+
const prefixWithPath = url => {
|
|
16
|
+
const cleanedUrl = url.replace(/^\.\//, "").replace(/^\//, "")
|
|
17
|
+
const txt = "${path}" + cleanedUrl
|
|
18
|
+
return "`" + txt + "`"
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
const isRelativeUrl = url => !/^https?:\/\//i.test(url)
|
|
22
|
+
|
|
23
|
+
let _dirs = []
|
|
24
|
+
|
|
25
|
+
for (const v of dirs) {
|
|
26
|
+
const ext = extname(v.name)
|
|
27
|
+
const htmlPath = resolve(v.path, v.name)
|
|
28
|
+
if (v.isFile() && ext === ".html") {
|
|
29
|
+
if (v.name !== "index.html") {
|
|
30
|
+
unlinkSync(htmlPath)
|
|
31
|
+
} else {
|
|
32
|
+
const txt = readFileSync(htmlPath, "utf8")
|
|
33
|
+
const $ = cheerio.load(txt)
|
|
34
|
+
let _tags = []
|
|
35
|
+
$("link[href]").each((i, elem) => {
|
|
36
|
+
const href = $(elem).attr("href")
|
|
37
|
+
if (isRelativeUrl(href)) {
|
|
38
|
+
const props = { ...elem.attribs }
|
|
39
|
+
props.href = prefixWithPath(href)
|
|
40
|
+
_tags.push({ elm: "link", props })
|
|
41
|
+
$(elem).remove()
|
|
42
|
+
}
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
$("script[src]").each((i, elem) => {
|
|
46
|
+
const src = $(elem).attr("src")
|
|
47
|
+
if (isRelativeUrl(src)) {
|
|
48
|
+
const props = { ...elem.attribs }
|
|
49
|
+
props.src = prefixWithPath(src)
|
|
50
|
+
_tags.push({ elm: "script", props })
|
|
51
|
+
$(elem).remove()
|
|
52
|
+
}
|
|
53
|
+
})
|
|
54
|
+
|
|
55
|
+
$("script").each((i, elem) => {
|
|
56
|
+
const scriptContent = $(elem).html()
|
|
57
|
+
if (scriptContent && scriptContent.includes("let tags = []")) {
|
|
58
|
+
const tagsString = JSON.stringify(_tags)
|
|
59
|
+
const updatedScriptContent = scriptContent
|
|
60
|
+
.replace(/let\s+tags\s*=\s*\[\s*\]/, `let tags = ${tagsString}`)
|
|
61
|
+
.replace(/"`/g, "`")
|
|
62
|
+
.replace(/`"/g, "`")
|
|
63
|
+
$(elem).html(updatedScriptContent)
|
|
64
|
+
}
|
|
65
|
+
})
|
|
66
|
+
const modifiedHtml = $.root().html()
|
|
67
|
+
writeFileSync(htmlPath, modifiedHtml)
|
|
68
|
+
}
|
|
69
|
+
} else if (v.isFile() && ext === ".js" && /^webpack/.test(v.name)) {
|
|
70
|
+
const txt = readFileSync(htmlPath, "utf8")
|
|
71
|
+
const x = txt.match(/(.)\.p="\/_next\/"/)[1]
|
|
72
|
+
const mod = txt.replace(
|
|
73
|
+
new RegExp(`o=${x}\.p`, "g"),
|
|
74
|
+
`o=_assetPath()+${x}.p`,
|
|
75
|
+
)
|
|
76
|
+
writeFileSync(htmlPath, mod)
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const dirs2 = readdirSync(out, { withFileTypes: true })
|
|
81
|
+
for (const v of dirs2) {
|
|
82
|
+
const htmlPath = resolve(v.path, v.name)
|
|
83
|
+
console.log(htmlPath)
|
|
84
|
+
if (v.isDirectory() && v.name !== "_next") {
|
|
85
|
+
rmdirSync(htmlPath, { recursive: true, force: true })
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import { Avatar as ChakraAvatar, Group } from '@chakra-ui/react'
|
|
4
|
+
import * as React from 'react'
|
|
5
|
+
|
|
6
|
+
export const Avatar = React.forwardRef(function Avatar(props, ref) {
|
|
7
|
+
const { name, src, srcSet, loading, icon, fallback, children, ...rest } =
|
|
8
|
+
props
|
|
9
|
+
return (
|
|
10
|
+
<ChakraAvatar.Root ref={ref} {...rest}>
|
|
11
|
+
<AvatarFallback name={name} icon={icon}>
|
|
12
|
+
{fallback}
|
|
13
|
+
</AvatarFallback>
|
|
14
|
+
<ChakraAvatar.Image src={src} srcSet={srcSet} loading={loading} />
|
|
15
|
+
{children}
|
|
16
|
+
</ChakraAvatar.Root>
|
|
17
|
+
)
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
const AvatarFallback = React.forwardRef(function AvatarFallback(props, ref) {
|
|
21
|
+
const { name, icon, children, ...rest } = props
|
|
22
|
+
return (
|
|
23
|
+
<ChakraAvatar.Fallback ref={ref} {...rest}>
|
|
24
|
+
{children}
|
|
25
|
+
{name != null && children == null && <>{getInitials(name)}</>}
|
|
26
|
+
{name == null && children == null && (
|
|
27
|
+
<ChakraAvatar.Icon asChild={!!icon}>{icon}</ChakraAvatar.Icon>
|
|
28
|
+
)}
|
|
29
|
+
</ChakraAvatar.Fallback>
|
|
30
|
+
)
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
function getInitials(name) {
|
|
34
|
+
const names = name.trim().split(' ')
|
|
35
|
+
const firstName = names[0] != null ? names[0] : ''
|
|
36
|
+
const lastName = names.length > 1 ? names[names.length - 1] : ''
|
|
37
|
+
return firstName && lastName
|
|
38
|
+
? `${firstName.charAt(0)}${lastName.charAt(0)}`
|
|
39
|
+
: firstName.charAt(0)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
export const AvatarGroup = React.forwardRef(function AvatarGroup(props, ref) {
|
|
43
|
+
const { size, variant, borderless, ...rest } = props
|
|
44
|
+
return (
|
|
45
|
+
<ChakraAvatar.PropsProvider value={{ size, variant, borderless }}>
|
|
46
|
+
<Group gap='0' spaceX='-3' ref={ref} {...rest} />
|
|
47
|
+
</ChakraAvatar.PropsProvider>
|
|
48
|
+
)
|
|
49
|
+
})
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Checkbox as ChakraCheckbox } from '@chakra-ui/react'
|
|
2
|
+
import * as React from 'react'
|
|
3
|
+
|
|
4
|
+
export const Checkbox = React.forwardRef(function Checkbox(props, ref) {
|
|
5
|
+
const { icon, children, inputProps, rootRef, ...rest } = props
|
|
6
|
+
return (
|
|
7
|
+
<ChakraCheckbox.Root ref={rootRef} {...rest}>
|
|
8
|
+
<ChakraCheckbox.HiddenInput ref={ref} {...inputProps} />
|
|
9
|
+
<ChakraCheckbox.Control>
|
|
10
|
+
{icon || <ChakraCheckbox.Indicator />}
|
|
11
|
+
</ChakraCheckbox.Control>
|
|
12
|
+
{children != null && (
|
|
13
|
+
<ChakraCheckbox.Label>{children}</ChakraCheckbox.Label>
|
|
14
|
+
)}
|
|
15
|
+
</ChakraCheckbox.Root>
|
|
16
|
+
)
|
|
17
|
+
})
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
function _nullishCoalesce(lhs, rhsFn) {
|
|
2
|
+
if (lhs != null) {
|
|
3
|
+
return lhs
|
|
4
|
+
} else {
|
|
5
|
+
return rhsFn()
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
import { IconButton as ChakraIconButton } from '@chakra-ui/react'
|
|
9
|
+
import * as React from 'react'
|
|
10
|
+
import { LuX } from 'react-icons/lu'
|
|
11
|
+
|
|
12
|
+
export const CloseButton = React.forwardRef(function CloseButton(props, ref) {
|
|
13
|
+
return (
|
|
14
|
+
<ChakraIconButton variant='ghost' aria-label='Close' ref={ref} {...props}>
|
|
15
|
+
{_nullishCoalesce(props.children, () => (
|
|
16
|
+
<LuX />
|
|
17
|
+
))}
|
|
18
|
+
</ChakraIconButton>
|
|
19
|
+
)
|
|
20
|
+
})
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
'use client'
|
|
2
|
+
|
|
3
|
+
import { ClientOnly, IconButton, Skeleton } from '@chakra-ui/react'
|
|
4
|
+
import { ThemeProvider, useTheme } from 'next-themes'
|
|
5
|
+
|
|
6
|
+
import * as React from 'react'
|
|
7
|
+
import { LuMoon, LuSun } from 'react-icons/lu'
|
|
8
|
+
|
|
9
|
+
export function ColorModeProvider(props) {
|
|
10
|
+
return (
|
|
11
|
+
<ThemeProvider attribute='class' disableTransitionOnChange {...props} />
|
|
12
|
+
)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export function useColorMode() {
|
|
16
|
+
const { resolvedTheme, setTheme } = useTheme()
|
|
17
|
+
const toggleColorMode = () => {
|
|
18
|
+
setTheme(resolvedTheme === 'light' ? 'dark' : 'light')
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
colorMode: resolvedTheme,
|
|
22
|
+
setColorMode: setTheme,
|
|
23
|
+
toggleColorMode,
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function useColorModeValue(light, dark) {
|
|
28
|
+
const { colorMode } = useColorMode()
|
|
29
|
+
return colorMode === 'dark' ? dark : light
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function ColorModeIcon() {
|
|
33
|
+
const { colorMode } = useColorMode()
|
|
34
|
+
return colorMode === 'dark' ? <LuMoon /> : <LuSun />
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export const ColorModeButton = React.forwardRef(
|
|
38
|
+
function ColorModeButton(props, ref) {
|
|
39
|
+
const { toggleColorMode } = useColorMode()
|
|
40
|
+
return (
|
|
41
|
+
<ClientOnly fallback={<Skeleton boxSize='8' />}>
|
|
42
|
+
<IconButton
|
|
43
|
+
onClick={toggleColorMode}
|
|
44
|
+
variant='ghost'
|
|
45
|
+
aria-label='Toggle color mode'
|
|
46
|
+
size='sm'
|
|
47
|
+
ref={ref}
|
|
48
|
+
{...props}
|
|
49
|
+
css={{
|
|
50
|
+
_icon: {
|
|
51
|
+
width: '5',
|
|
52
|
+
height: '5',
|
|
53
|
+
},
|
|
54
|
+
}}
|
|
55
|
+
>
|
|
56
|
+
<ColorModeIcon />
|
|
57
|
+
</IconButton>
|
|
58
|
+
</ClientOnly>
|
|
59
|
+
)
|
|
60
|
+
},
|
|
61
|
+
)
|