wao 0.41.3 → 0.41.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (719) hide show
  1. package/.babelrc-cjs +5 -0
  2. package/.babelrc-esm +5 -0
  3. package/.gitmodules +4 -0
  4. package/.prettierrc +6 -0
  5. package/README.md +90 -0
  6. package/app/.eslintrc.json +3 -0
  7. package/app/.mocharc.cjs +6 -0
  8. package/app/arweave.mjs +87 -0
  9. package/app/components/Footer.js +76 -0
  10. package/app/components/Global.js +1128 -0
  11. package/app/components/Header.js +306 -0
  12. package/app/components/Left.js +28 -0
  13. package/app/components/Logo.js +34 -0
  14. package/app/components/Middle.js +37 -0
  15. package/app/components/Sidebar.js +93 -0
  16. package/app/components/Tags.js +42 -0
  17. package/app/components/editor/Editor.js +322 -0
  18. package/app/components/editor/FilePath.js +42 -0
  19. package/app/components/editor/MonacoEditor.js +44 -0
  20. package/app/components/left/LeftMessages.js +85 -0
  21. package/app/components/left/LeftModules.js +86 -0
  22. package/app/components/left/LeftNetworks.js +438 -0
  23. package/app/components/left/LeftProcesses.js +98 -0
  24. package/app/components/left/LeftProjects.js +397 -0
  25. package/app/components/left/LeftTests.js +189 -0
  26. package/app/components/middle/MiddleBlocks.js +79 -0
  27. package/app/components/middle/MiddleEntity.js +16 -0
  28. package/app/components/middle/MiddleEntityAccount.js +264 -0
  29. package/app/components/middle/MiddleEntityAssignment.js +104 -0
  30. package/app/components/middle/MiddleEntityBlock.js +148 -0
  31. package/app/components/middle/MiddleEntityMessage.js +430 -0
  32. package/app/components/middle/MiddleEntityModule.js +183 -0
  33. package/app/components/middle/MiddleEntityProcess.js +323 -0
  34. package/app/components/middle/MiddleEntityTx.js +211 -0
  35. package/app/components/middle/MiddleMessages.js +87 -0
  36. package/app/components/middle/MiddleModules.js +89 -0
  37. package/app/components/middle/MiddleNetworks.js +516 -0
  38. package/app/components/middle/MiddleProcesses.js +87 -0
  39. package/app/components/middle/MiddleTests.js +134 -0
  40. package/app/components/modals/CreateFileModal.js +115 -0
  41. package/app/components/modals/CreateFolderModal.js +83 -0
  42. package/app/components/modals/CreateProjectModal.js +63 -0
  43. package/app/components/modals/FSModal.js +141 -0
  44. package/app/components/modals/ImportModal.js +105 -0
  45. package/app/components/modals/LaunchNetworkModal.js +95 -0
  46. package/app/components/modals/Modal.js +38 -0
  47. package/app/components/modals/ProxyModal.js +122 -0
  48. package/app/components/modals/RenameFileModal.js +95 -0
  49. package/app/components/styles/EditorScrollbarStyle.js +29 -0
  50. package/app/components/styles/EntityScrollbarStyle.js +29 -0
  51. package/app/components/styles/GlobalStyle.js +102 -0
  52. package/app/components/styles/XtermStyle.js +37 -0
  53. package/app/components/terminal/Terminal.js +132 -0
  54. package/app/components/terminal/Xterm.js +160 -0
  55. package/app/components/ui/avatar.jsx +49 -0
  56. package/app/components/ui/checkbox.jsx +17 -0
  57. package/app/components/ui/close-button.jsx +20 -0
  58. package/app/components/ui/color-mode.jsx +61 -0
  59. package/app/components/ui/dialog.jsx +54 -0
  60. package/app/components/ui/drawer.jsx +44 -0
  61. package/app/components/ui/field.jsx +22 -0
  62. package/app/components/ui/input-group.jsx +39 -0
  63. package/app/components/ui/popover.jsx +49 -0
  64. package/app/components/ui/provider.jsx +12 -0
  65. package/app/components/ui/radio.jsx +17 -0
  66. package/app/components/ui/slider.jsx +107 -0
  67. package/app/components/ui/toaster.jsx +69 -0
  68. package/app/components/ui/tooltip.jsx +35 -0
  69. package/app/index.js +10 -0
  70. package/app/jsconfig.json +7 -0
  71. package/app/lib/GithubCSS.js +1218 -0
  72. package/app/lib/addon-fit.js +72 -0
  73. package/app/lib/data.js +31 -0
  74. package/app/lib/github-markdown.css +1169 -0
  75. package/app/lib/global.js +1 -0
  76. package/app/lib/guide.js +82 -0
  77. package/app/lib/hub.js +109 -0
  78. package/app/lib/scripts.js +47 -0
  79. package/app/lib/store.js +34 -0
  80. package/app/lib/use.js +64 -0
  81. package/app/lib/utils.js +387 -0
  82. package/app/lib/webrtc.js +217 -0
  83. package/app/next.config.js +25 -0
  84. package/app/package.json +62 -0
  85. package/app/pages/404.js +9 -0
  86. package/app/pages/_app.js +10 -0
  87. package/app/pages/_document.js +14 -0
  88. package/app/pages/index.js +121 -0
  89. package/app/playwright.config.mjs +41 -0
  90. package/app/proxy.mjs +21 -0
  91. package/app/public/assets/cover.png +0 -0
  92. package/app/public/blueprints/apm.lua +91 -0
  93. package/app/public/blueprints/arena.lua +345 -0
  94. package/app/public/blueprints/arns.lua +318 -0
  95. package/app/public/blueprints/chat.lua +210 -0
  96. package/app/public/blueprints/chatroom.lua +56 -0
  97. package/app/public/blueprints/patch-legacy-reply.lua +13 -0
  98. package/app/public/blueprints/staking.lua +93 -0
  99. package/app/public/blueprints/token.lua +298 -0
  100. package/app/public/blueprints/voting.lua +45 -0
  101. package/app/public/favicon.ico +0 -0
  102. package/app/public/logo.png +0 -0
  103. package/cli-esm.js +55 -0
  104. package/cli.js +54 -0
  105. package/devnet/app/api.js +129 -0
  106. package/devnet/app/components/layout.js +89 -0
  107. package/devnet/app/components/pagination.js +144 -0
  108. package/devnet/app/components/search.js +159 -0
  109. package/devnet/app/components/table.js +124 -0
  110. package/devnet/app/components/tags.js +89 -0
  111. package/devnet/app/index.html +14 -0
  112. package/devnet/app/main.js +215 -0
  113. package/devnet/app/router.js +59 -0
  114. package/devnet/app/state.js +19 -0
  115. package/devnet/app/style.css +1606 -0
  116. package/devnet/app/utils.js +77 -0
  117. package/devnet/app/views/blocks.js +75 -0
  118. package/devnet/app/views/dashboard.js +127 -0
  119. package/devnet/app/views/entity.js +1473 -0
  120. package/devnet/app/views/messages.js +90 -0
  121. package/devnet/app/views/modules.js +165 -0
  122. package/devnet/app/views/processes.js +90 -0
  123. package/devnet/app/views/schedulers.js +90 -0
  124. package/devnet/app/views/transactions.js +88 -0
  125. package/devnet/migrations/0001_initial.sql +51 -0
  126. package/devnet/package.json +26 -0
  127. package/devnet/playwright.config.js +7 -0
  128. package/devnet/src/cu-worker.js +166 -0
  129. package/devnet/src/index.js +309 -0
  130. package/devnet/vite.config.js +17 -0
  131. package/devnet/vitest.config.js +10 -0
  132. package/devnet/wrangler-cu.toml +32 -0
  133. package/devnet/wrangler.toml +38 -0
  134. package/dhfs-tutorial-app/package.json +15 -0
  135. package/dist/esm/workspace/dashboard/public/favicon.png +0 -0
  136. package/dist/esm/workspace/src/counter.lua +14 -0
  137. package/dist/package.json +82 -0
  138. package/hb.sh +18 -0
  139. package/hbsig/.babelrc-cjs +5 -0
  140. package/hbsig/.babelrc-esm +5 -0
  141. package/hbsig/README.md +1 -0
  142. package/hbsig/dist/cjs/bin_to_str.js +44 -0
  143. package/hbsig/dist/cjs/collect-body-keys.js +470 -0
  144. package/hbsig/dist/cjs/commit.js +330 -0
  145. package/hbsig/dist/cjs/encode-array-item.js +110 -0
  146. package/hbsig/dist/cjs/encode-utils.js +242 -0
  147. package/hbsig/dist/cjs/encode.js +1365 -0
  148. package/hbsig/dist/cjs/erl_json.js +326 -0
  149. package/hbsig/dist/cjs/erl_str.js +1042 -0
  150. package/hbsig/dist/cjs/flat.js +279 -0
  151. package/hbsig/dist/cjs/http-message-signatures/httpbis.js +489 -0
  152. package/hbsig/dist/cjs/http-message-signatures/index.js +25 -0
  153. package/hbsig/dist/cjs/http-message-signatures/structured-header.js +129 -0
  154. package/hbsig/dist/cjs/httpsig.js +861 -0
  155. package/hbsig/dist/cjs/id.js +470 -0
  156. package/hbsig/dist/cjs/index.js +174 -0
  157. package/hbsig/dist/cjs/nocrypto.js +51 -0
  158. package/hbsig/dist/cjs/parser.js +201 -0
  159. package/hbsig/dist/cjs/send-utils.js +1231 -0
  160. package/hbsig/dist/cjs/send.js +211 -0
  161. package/hbsig/dist/cjs/signer-utils.js +494 -0
  162. package/hbsig/dist/cjs/signer.js +436 -0
  163. package/hbsig/dist/cjs/structured.js +515 -0
  164. package/hbsig/dist/cjs/test.js +12 -0
  165. package/hbsig/dist/cjs/utils.js +44 -0
  166. package/hbsig/dist/esm/bin_to_str.js +46 -0
  167. package/hbsig/dist/esm/collect-body-keys.js +436 -0
  168. package/hbsig/dist/esm/commit.js +219 -0
  169. package/hbsig/dist/esm/encode-array-item.js +112 -0
  170. package/hbsig/dist/esm/encode-utils.js +191 -0
  171. package/hbsig/dist/esm/encode.js +1256 -0
  172. package/hbsig/dist/esm/erl_json.js +292 -0
  173. package/hbsig/dist/esm/erl_str.js +1144 -0
  174. package/hbsig/dist/esm/flat.js +250 -0
  175. package/hbsig/dist/esm/http-message-signatures/httpbis.js +438 -0
  176. package/hbsig/dist/esm/http-message-signatures/index.js +4 -0
  177. package/hbsig/dist/esm/http-message-signatures/structured-header.js +105 -0
  178. package/hbsig/dist/esm/httpsig.js +866 -0
  179. package/hbsig/dist/esm/id.js +459 -0
  180. package/hbsig/dist/esm/index.js +13 -0
  181. package/hbsig/dist/esm/nocrypto.js +4 -0
  182. package/hbsig/dist/esm/package.json +3 -0
  183. package/hbsig/dist/esm/parser.js +171 -0
  184. package/hbsig/dist/esm/send-utils.js +1132 -0
  185. package/hbsig/dist/esm/send.js +142 -0
  186. package/hbsig/dist/esm/signer-utils.js +375 -0
  187. package/hbsig/dist/esm/signer.js +312 -0
  188. package/hbsig/dist/esm/structured.js +496 -0
  189. package/hbsig/dist/esm/test.js +2 -0
  190. package/hbsig/dist/esm/utils.js +29 -0
  191. package/hbsig/dist/package.json +39 -0
  192. package/hbsig/make.js +36 -0
  193. package/hbsig/package.json +39 -0
  194. package/hbsig/src/bin_to_str.js +46 -0
  195. package/hbsig/src/collect-body-keys.js +436 -0
  196. package/hbsig/src/commit.js +219 -0
  197. package/hbsig/src/encode-array-item.js +112 -0
  198. package/hbsig/src/encode-utils.js +191 -0
  199. package/hbsig/src/encode.js +1256 -0
  200. package/hbsig/src/erl_json.js +292 -0
  201. package/hbsig/src/erl_str.js +1144 -0
  202. package/hbsig/src/flat.js +250 -0
  203. package/hbsig/src/http-message-signatures/httpbis.js +438 -0
  204. package/hbsig/src/http-message-signatures/index.js +4 -0
  205. package/hbsig/src/http-message-signatures/structured-header.js +105 -0
  206. package/hbsig/src/httpsig.js +866 -0
  207. package/hbsig/src/id.js +459 -0
  208. package/hbsig/src/index.js +13 -0
  209. package/hbsig/src/nocrypto.js +4 -0
  210. package/hbsig/src/parser.js +171 -0
  211. package/hbsig/src/send-utils.js +1132 -0
  212. package/hbsig/src/send.js +142 -0
  213. package/hbsig/src/signer-utils.js +375 -0
  214. package/hbsig/src/signer.js +312 -0
  215. package/hbsig/src/structured.js +496 -0
  216. package/hbsig/src/test.js +2 -0
  217. package/hbsig/src/utils.js +29 -0
  218. package/lp/index.html +25 -0
  219. package/lp/package.json +19 -0
  220. package/lp/public/cover.png +0 -0
  221. package/lp/public/favicon.ico +0 -0
  222. package/lp/public/favicon.png +0 -0
  223. package/lp/public/images/book.jpg +0 -0
  224. package/lp/public/images/dashboard.png +0 -0
  225. package/lp/public/images/devnet.png +0 -0
  226. package/lp/public/images/hero-bg.png +0 -0
  227. package/lp/public/images/hyperadd.png +0 -0
  228. package/lp/public/images/message-flow.png +0 -0
  229. package/lp/public/images/mobile.png +0 -0
  230. package/lp/public/images/og-cover.png +0 -0
  231. package/lp/public/images/scan.png +0 -0
  232. package/lp/public/images/wao-hub.png +0 -0
  233. package/lp/public/images/wao-web.png +0 -0
  234. package/lp/public/logo.png +0 -0
  235. package/lp/src/App.jsx +29 -0
  236. package/lp/src/components/CodeBlock.jsx +37 -0
  237. package/lp/src/components/CodeBlock.module.css +89 -0
  238. package/lp/src/components/Footer.jsx +22 -0
  239. package/lp/src/components/Footer.module.css +60 -0
  240. package/lp/src/components/Nav.jsx +80 -0
  241. package/lp/src/components/Nav.module.css +177 -0
  242. package/lp/src/components/SectionWrapper.jsx +15 -0
  243. package/lp/src/hooks/useReveal.js +25 -0
  244. package/lp/src/hooks/useScrolled.js +14 -0
  245. package/lp/src/main.jsx +10 -0
  246. package/lp/src/sections/Book.jsx +60 -0
  247. package/lp/src/sections/Book.module.css +204 -0
  248. package/lp/src/sections/Browser.jsx +46 -0
  249. package/lp/src/sections/Browser.module.css +67 -0
  250. package/lp/src/sections/Devnet.jsx +55 -0
  251. package/lp/src/sections/Devnet.module.css +136 -0
  252. package/lp/src/sections/GetStarted.jsx +51 -0
  253. package/lp/src/sections/GetStarted.module.css +128 -0
  254. package/lp/src/sections/Hero.jsx +67 -0
  255. package/lp/src/sections/Hero.module.css +202 -0
  256. package/lp/src/sections/HyperADD.jsx +46 -0
  257. package/lp/src/sections/HyperADD.module.css +113 -0
  258. package/lp/src/sections/SDK.jsx +90 -0
  259. package/lp/src/sections/SDK.module.css +122 -0
  260. package/lp/src/sections/Testing.jsx +47 -0
  261. package/lp/src/sections/Testing.module.css +124 -0
  262. package/lp/src/sections/Vision.jsx +93 -0
  263. package/lp/src/sections/Vision.module.css +147 -0
  264. package/lp/src/styles/globals.css +285 -0
  265. package/lp/src/utils/scrollTo.js +4 -0
  266. package/lp/vite.config.js +7 -0
  267. package/make.js +39 -0
  268. package/package.json +17 -12
  269. package/patches/@permaweb+ao-loader+0.0.44.patch +64 -0
  270. package/plan.md +435 -0
  271. package/rebar.lock +1 -0
  272. package/src/accounts-web.js +128 -0
  273. package/src/accounts.js +124 -0
  274. package/src/adaptor-base.js +622 -0
  275. package/src/adaptor-cf.js +11 -0
  276. package/src/adaptor-web.js +11 -0
  277. package/src/adaptor.js +10 -0
  278. package/src/ao-loader.js +30660 -0
  279. package/src/ao.js +1173 -0
  280. package/src/aoconnect-base.js +1098 -0
  281. package/src/aoconnect-cf.js +9 -0
  282. package/src/aoconnect-web.js +8 -0
  283. package/src/aoconnect.js +8 -0
  284. package/src/aos_wamr.js +1 -0
  285. package/src/ar-remote.js +87 -0
  286. package/src/ar.js +276 -0
  287. package/src/armem-base.js +529 -0
  288. package/src/armem-cf.js +67 -0
  289. package/src/armem-web.js +19 -0
  290. package/src/armem.js +26 -0
  291. package/src/bao.js +141 -0
  292. package/src/bar.js +366 -0
  293. package/src/build.js +7 -0
  294. package/src/bundler.js +119 -0
  295. package/src/car.js +10 -0
  296. package/src/cf-env.js +29 -0
  297. package/src/cf.js +11 -0
  298. package/src/cli.js +561 -0
  299. package/src/compress.js +112 -0
  300. package/src/create.js +415 -0
  301. package/src/devs.js +86 -0
  302. package/src/dirname.js +1 -0
  303. package/src/dodb.js +26 -0
  304. package/src/erl_json.js +289 -0
  305. package/src/erl_str.js +1139 -0
  306. package/src/gql.js +229 -0
  307. package/src/hb.js +967 -0
  308. package/src/helpers.js +203 -0
  309. package/src/http.js +619 -0
  310. package/src/hub/bundler.js +123 -0
  311. package/src/hub/cu.js +74 -0
  312. package/src/hub/fs.js +157 -0
  313. package/src/hub/index.js +85 -0
  314. package/src/hub/utils.js +64 -0
  315. package/src/hub/ws-proxy.js +67 -0
  316. package/src/hyper-aos.js +1 -0
  317. package/src/hyperbeam-server.js +21 -0
  318. package/src/hyperbeam.js +585 -0
  319. package/src/index.js +5 -0
  320. package/src/keygen.js +47 -0
  321. package/src/lfdb.js +67 -0
  322. package/src/lua/aos.wasm +0 -0
  323. package/src/lua/aos2_0_1.js +1 -0
  324. package/src/lua/aos2_0_1.wasm +0 -0
  325. package/src/lua/aos2_0_3.js +1 -0
  326. package/src/lua/aos2_0_3.wasm +0 -0
  327. package/src/lua/aos2_0_4_32.js +1 -0
  328. package/src/lua/aos2_0_4_32.wasm +0 -0
  329. package/src/lua/aos2_0_6.wasm +0 -0
  330. package/src/lua/apm.lua +61 -0
  331. package/src/lua/llama.wasm +0 -0
  332. package/src/lua/process.wasm +0 -0
  333. package/src/lua/sqlite.js +1 -0
  334. package/src/lua/sqlite.wasm +0 -0
  335. package/src/lua/weavedb_mock.lua +44 -0
  336. package/src/lua/weavedrive.lua +53 -0
  337. package/src/run.js +25 -0
  338. package/src/server.js +173 -0
  339. package/src/storage-multi.js +183 -0
  340. package/src/tao.js +12 -0
  341. package/src/tar.js +10 -0
  342. package/src/test.js +42 -0
  343. package/src/tgql-d1.js +407 -0
  344. package/src/tgql.js +310 -0
  345. package/src/toerl.js +162 -0
  346. package/src/utils.js +777 -0
  347. package/src/wao.js +29 -0
  348. package/src/waosm/README.md +81 -0
  349. package/src/waosm/waosm.d.ts +40 -0
  350. package/src/waosm/waosm.js +240 -0
  351. package/src/waosm/waosm_bg.wasm +0 -0
  352. package/src/waosm/waosm_bg.wasm.d.ts +8 -0
  353. package/src/waosm-node/README.md +81 -0
  354. package/src/waosm-node/waosm.d.ts +8 -0
  355. package/src/waosm-node/waosm.js +4 -0
  356. package/src/waosm-node/waosm_bg.js +147 -0
  357. package/src/waosm-node/waosm_bg.wasm +0 -0
  358. package/src/waosm-node/waosm_bg.wasm.d.ts +8 -0
  359. package/src/waosm-node/waosm_bg.wasm.js +14 -0
  360. package/src/waosm-node.js +9 -0
  361. package/src/war.js +10 -0
  362. package/src/weavedrive.js +376 -0
  363. package/src/web.js +11 -0
  364. package/src/workspace/.mcp.json +8 -0
  365. package/src/workspace/CLAUDE.md +258 -0
  366. package/src/workspace/README.md +85 -0
  367. package/src/workspace/dashboard/index.html +163 -0
  368. package/src/workspace/dashboard/package.json +18 -0
  369. package/src/workspace/dashboard/public/favicon.ico +0 -0
  370. package/src/workspace/dashboard/public/favicon.png +0 -0
  371. package/src/workspace/dashboard/server.js +224 -0
  372. package/src/workspace/dashboard/src/App.jsx +2350 -0
  373. package/{cjs/workspace/frontend → src/workspace/dashboard}/vite.config.js +6 -0
  374. package/src/workspace/package.json +18 -0
  375. package/src/workspace/src/counter.lua +14 -0
  376. package/tsconfig.json +18 -0
  377. package/types/index.d.ts +329 -0
  378. package/waollama/.eslintrc.json +3 -0
  379. package/waollama/README.md +19 -0
  380. package/waollama/arweave.mjs +87 -0
  381. package/waollama/components/ui/avatar.jsx +49 -0
  382. package/waollama/components/ui/checkbox.jsx +17 -0
  383. package/waollama/components/ui/close-button.jsx +20 -0
  384. package/waollama/components/ui/color-mode.jsx +61 -0
  385. package/waollama/components/ui/dialog.jsx +54 -0
  386. package/waollama/components/ui/drawer.jsx +44 -0
  387. package/waollama/components/ui/field.jsx +22 -0
  388. package/waollama/components/ui/input-group.jsx +39 -0
  389. package/waollama/components/ui/popover.jsx +49 -0
  390. package/waollama/components/ui/provider.jsx +12 -0
  391. package/waollama/components/ui/radio.jsx +17 -0
  392. package/waollama/components/ui/slider.jsx +107 -0
  393. package/waollama/components/ui/tooltip.jsx +35 -0
  394. package/waollama/index.js +10 -0
  395. package/waollama/jsconfig.json +7 -0
  396. package/waollama/lib/ao-loader.js +30654 -0
  397. package/waollama/lib/client.js +1 -0
  398. package/waollama/lib/wasm.js +1 -0
  399. package/waollama/next.config.js +25 -0
  400. package/waollama/package.json +43 -0
  401. package/waollama/pages/404.js +9 -0
  402. package/waollama/pages/_app.js +9 -0
  403. package/waollama/pages/_document.js +14 -0
  404. package/waollama/pages/index.js +212 -0
  405. package/waollama/playwright.config.js +31 -0
  406. package/waollama/proxy.mjs +21 -0
  407. package/waollama/public/favicon.ico +0 -0
  408. package/waollama/public/human.png +0 -0
  409. package/waollama/public/llama.png +0 -0
  410. package/waosm/Cargo.toml +11 -0
  411. package/waosm/README.md +81 -0
  412. package/waosm/compress.js +112 -0
  413. package/waosm/make.js +33 -0
  414. package/waosm/package.json +10 -0
  415. package/waosm/src/lib.rs +180 -0
  416. package/waosm/test.js +16 -0
  417. package/cjs/workspace/.claude/agents/builder.md +0 -99
  418. package/cjs/workspace/.claude/agents/device-builder.md +0 -86
  419. package/cjs/workspace/.claude/agents/tester.md +0 -90
  420. package/cjs/workspace/.claude/mcp/dashboard/server.js +0 -128
  421. package/cjs/workspace/.claude/rules/deploy.md +0 -45
  422. package/cjs/workspace/.claude/rules/frontend.md +0 -69
  423. package/cjs/workspace/.claude/rules/hyperbeam.md +0 -104
  424. package/cjs/workspace/.claude/rules/lua.md +0 -108
  425. package/cjs/workspace/.claude/rules/testing.md +0 -257
  426. package/cjs/workspace/.claude/settings.json +0 -109
  427. package/cjs/workspace/.claude/skills/build/SKILL.md +0 -214
  428. package/cjs/workspace/.claude/skills/build-aos/SKILL.md +0 -129
  429. package/cjs/workspace/.claude/skills/build-device/SKILL.md +0 -192
  430. package/cjs/workspace/.claude/skills/build-frontend/SKILL.md +0 -134
  431. package/cjs/workspace/.claude/skills/build-module/SKILL.md +0 -281
  432. package/cjs/workspace/.claude/skills/create-aos/SKILL.md +0 -63
  433. package/cjs/workspace/.claude/skills/create-device/SKILL.md +0 -87
  434. package/cjs/workspace/.claude/skills/create-module/SKILL.md +0 -162
  435. package/cjs/workspace/.claude/skills/debug/SKILL.md +0 -57
  436. package/cjs/workspace/.claude/skills/deploy/SKILL.md +0 -85
  437. package/cjs/workspace/.claude/skills/dev/SKILL.md +0 -32
  438. package/cjs/workspace/.claude/skills/plan/SKILL.md +0 -176
  439. package/cjs/workspace/.claude/skills/readme/SKILL.md +0 -186
  440. package/cjs/workspace/.claude/skills/report/SKILL.md +0 -49
  441. package/cjs/workspace/.claude/skills/team/SKILL.md +0 -101
  442. package/cjs/workspace/.claude/skills/test/SKILL.md +0 -56
  443. package/cjs/workspace/.claude/skills/test-device/SKILL.md +0 -114
  444. package/cjs/workspace/.claude/skills/test-e2e/SKILL.md +0 -103
  445. package/cjs/workspace/.claude/skills/test-hb/SKILL.md +0 -76
  446. package/cjs/workspace/.claude/skills/validate/SKILL.md +0 -96
  447. package/cjs/workspace/.claude/skills/validate/scripts/check-lua.sh +0 -41
  448. package/cjs/workspace/docs/aos-lua.md +0 -428
  449. package/cjs/workspace/docs/debug.md +0 -230
  450. package/cjs/workspace/docs/hyperbeam-dev.md +0 -606
  451. package/cjs/workspace/docs/hyperbeam-devices.md +0 -618
  452. package/cjs/workspace/docs/wao-sdk.md +0 -807
  453. package/cjs/workspace/frontend/e2e/.gitkeep +0 -0
  454. package/cjs/workspace/frontend/index.html +0 -12
  455. package/cjs/workspace/frontend/package.json +0 -24
  456. package/cjs/workspace/frontend/playwright.config.js +0 -10
  457. package/cjs/workspace/frontend/src/App.jsx +0 -24
  458. package/cjs/workspace/frontend/test/.gitkeep +0 -0
  459. package/cjs/workspace/frontend/vitest.config.js +0 -10
  460. package/cjs/workspace/scripts/deploy.js +0 -140
  461. package/cjs/workspace/scripts/keygen.js +0 -52
  462. package/cjs/workspace/test/aos.test.js +0 -98
  463. package/cjs/workspace/test/hyperbeam.test.js +0 -80
  464. package/esm/compiler/native +0 -0
  465. package/esm/workspace/.claude/agents/builder.md +0 -99
  466. package/esm/workspace/.claude/agents/device-builder.md +0 -86
  467. package/esm/workspace/.claude/agents/tester.md +0 -90
  468. package/esm/workspace/.claude/mcp/dashboard/server.js +0 -128
  469. package/esm/workspace/.claude/rules/deploy.md +0 -45
  470. package/esm/workspace/.claude/rules/frontend.md +0 -69
  471. package/esm/workspace/.claude/rules/hyperbeam.md +0 -104
  472. package/esm/workspace/.claude/rules/lua.md +0 -108
  473. package/esm/workspace/.claude/rules/testing.md +0 -257
  474. package/esm/workspace/.claude/settings.json +0 -109
  475. package/esm/workspace/.claude/skills/build/SKILL.md +0 -214
  476. package/esm/workspace/.claude/skills/build-aos/SKILL.md +0 -129
  477. package/esm/workspace/.claude/skills/build-device/SKILL.md +0 -192
  478. package/esm/workspace/.claude/skills/build-frontend/SKILL.md +0 -134
  479. package/esm/workspace/.claude/skills/build-module/SKILL.md +0 -281
  480. package/esm/workspace/.claude/skills/create-aos/SKILL.md +0 -63
  481. package/esm/workspace/.claude/skills/create-device/SKILL.md +0 -87
  482. package/esm/workspace/.claude/skills/create-module/SKILL.md +0 -162
  483. package/esm/workspace/.claude/skills/debug/SKILL.md +0 -57
  484. package/esm/workspace/.claude/skills/deploy/SKILL.md +0 -85
  485. package/esm/workspace/.claude/skills/dev/SKILL.md +0 -32
  486. package/esm/workspace/.claude/skills/plan/SKILL.md +0 -176
  487. package/esm/workspace/.claude/skills/readme/SKILL.md +0 -186
  488. package/esm/workspace/.claude/skills/report/SKILL.md +0 -49
  489. package/esm/workspace/.claude/skills/team/SKILL.md +0 -101
  490. package/esm/workspace/.claude/skills/test/SKILL.md +0 -56
  491. package/esm/workspace/.claude/skills/test-device/SKILL.md +0 -114
  492. package/esm/workspace/.claude/skills/test-e2e/SKILL.md +0 -103
  493. package/esm/workspace/.claude/skills/test-hb/SKILL.md +0 -76
  494. package/esm/workspace/.claude/skills/validate/SKILL.md +0 -96
  495. package/esm/workspace/.claude/skills/validate/scripts/check-lua.sh +0 -41
  496. package/esm/workspace/docs/aos-lua.md +0 -428
  497. package/esm/workspace/docs/debug.md +0 -230
  498. package/esm/workspace/docs/hyperbeam-dev.md +0 -606
  499. package/esm/workspace/docs/hyperbeam-devices.md +0 -618
  500. package/esm/workspace/docs/wao-sdk.md +0 -807
  501. package/esm/workspace/frontend/e2e/.gitkeep +0 -0
  502. package/esm/workspace/frontend/index.html +0 -12
  503. package/esm/workspace/frontend/package.json +0 -24
  504. package/esm/workspace/frontend/playwright.config.js +0 -10
  505. package/esm/workspace/frontend/src/App.jsx +0 -24
  506. package/esm/workspace/frontend/src/main.jsx +0 -9
  507. package/esm/workspace/frontend/test/.gitkeep +0 -0
  508. package/esm/workspace/frontend/vite.config.js +0 -6
  509. package/esm/workspace/frontend/vitest.config.js +0 -10
  510. package/esm/workspace/scripts/deploy.js +0 -140
  511. package/esm/workspace/scripts/keygen.js +0 -52
  512. package/esm/workspace/test/aos.test.js +0 -98
  513. package/esm/workspace/test/hyperbeam.test.js +0 -80
  514. /package/{cjs/workspace/dashboard/public → devnet/app}/favicon.ico +0 -0
  515. /package/{cjs/workspace → dhfs-tutorial-app}/src/counter.lua +0 -0
  516. /package/{cjs → dist/cjs}/accounts-web.js +0 -0
  517. /package/{cjs → dist/cjs}/accounts.js +0 -0
  518. /package/{cjs → dist/cjs}/adaptor-base.js +0 -0
  519. /package/{cjs → dist/cjs}/adaptor-cf.js +0 -0
  520. /package/{cjs → dist/cjs}/adaptor-web.js +0 -0
  521. /package/{cjs → dist/cjs}/adaptor.js +0 -0
  522. /package/{cjs → dist/cjs}/ao-loader.js +0 -0
  523. /package/{cjs → dist/cjs}/ao.js +0 -0
  524. /package/{cjs → dist/cjs}/aoconnect-base.js +0 -0
  525. /package/{cjs → dist/cjs}/aoconnect-cf.js +0 -0
  526. /package/{cjs → dist/cjs}/aoconnect-web.js +0 -0
  527. /package/{cjs → dist/cjs}/aoconnect.js +0 -0
  528. /package/{cjs → dist/cjs}/aos_wamr.js +0 -0
  529. /package/{cjs → dist/cjs}/ar-remote.js +0 -0
  530. /package/{cjs → dist/cjs}/ar.js +0 -0
  531. /package/{cjs → dist/cjs}/armem-base.js +0 -0
  532. /package/{cjs → dist/cjs}/armem-cf.js +0 -0
  533. /package/{cjs → dist/cjs}/armem-web.js +0 -0
  534. /package/{cjs → dist/cjs}/armem.js +0 -0
  535. /package/{cjs → dist/cjs}/bao.js +0 -0
  536. /package/{cjs → dist/cjs}/bar.js +0 -0
  537. /package/{cjs → dist/cjs}/build.js +0 -0
  538. /package/{cjs → dist/cjs}/bundler.js +0 -0
  539. /package/{cjs → dist/cjs}/car.js +0 -0
  540. /package/{cjs → dist/cjs}/cf-env.js +0 -0
  541. /package/{cjs → dist/cjs}/cf.js +0 -0
  542. /package/{cjs → dist/cjs}/cli.js +0 -0
  543. /package/{cjs → dist/cjs}/compress.js +0 -0
  544. /package/{cjs → dist/cjs}/create.js +0 -0
  545. /package/{cjs → dist/cjs}/devs.js +0 -0
  546. /package/{cjs → dist/cjs}/dirname.js +0 -0
  547. /package/{cjs → dist/cjs}/dodb.js +0 -0
  548. /package/{cjs → dist/cjs}/erl_json.js +0 -0
  549. /package/{cjs → dist/cjs}/erl_str.js +0 -0
  550. /package/{cjs → dist/cjs}/gql.js +0 -0
  551. /package/{cjs → dist/cjs}/hb.js +0 -0
  552. /package/{cjs → dist/cjs}/helpers.js +0 -0
  553. /package/{cjs → dist/cjs}/http.js +0 -0
  554. /package/{cjs → dist/cjs}/hub/bundler.js +0 -0
  555. /package/{cjs → dist/cjs}/hub/cu.js +0 -0
  556. /package/{cjs → dist/cjs}/hub/fs.js +0 -0
  557. /package/{cjs → dist/cjs}/hub/index.js +0 -0
  558. /package/{cjs → dist/cjs}/hub/utils.js +0 -0
  559. /package/{cjs → dist/cjs}/hub/ws-proxy.js +0 -0
  560. /package/{cjs → dist/cjs}/hyper-aos.js +0 -0
  561. /package/{cjs → dist/cjs}/hyperbeam-server.js +0 -0
  562. /package/{cjs → dist/cjs}/hyperbeam.js +0 -0
  563. /package/{cjs → dist/cjs}/index.js +0 -0
  564. /package/{cjs → dist/cjs}/keygen.js +0 -0
  565. /package/{cjs → dist/cjs}/lfdb.js +0 -0
  566. /package/{cjs → dist/cjs}/lua/aos.wasm +0 -0
  567. /package/{cjs → dist/cjs}/lua/aos2_0_1.js +0 -0
  568. /package/{cjs → dist/cjs}/lua/aos2_0_1.wasm +0 -0
  569. /package/{cjs → dist/cjs}/lua/aos2_0_3.js +0 -0
  570. /package/{cjs → dist/cjs}/lua/aos2_0_3.wasm +0 -0
  571. /package/{cjs → dist/cjs}/lua/aos2_0_4_32.js +0 -0
  572. /package/{cjs → dist/cjs}/lua/aos2_0_4_32.wasm +0 -0
  573. /package/{cjs → dist/cjs}/lua/aos2_0_6.wasm +0 -0
  574. /package/{cjs → dist/cjs}/lua/apm.lua +0 -0
  575. /package/{cjs → dist/cjs}/lua/llama.wasm +0 -0
  576. /package/{cjs → dist/cjs}/lua/process.wasm +0 -0
  577. /package/{cjs → dist/cjs}/lua/sqlite.js +0 -0
  578. /package/{cjs → dist/cjs}/lua/sqlite.wasm +0 -0
  579. /package/{cjs → dist/cjs}/lua/weavedb_mock.lua +0 -0
  580. /package/{cjs → dist/cjs}/lua/weavedrive.lua +0 -0
  581. /package/{cjs → dist/cjs}/run.js +0 -0
  582. /package/{cjs → dist/cjs}/server.js +0 -0
  583. /package/{cjs → dist/cjs}/storage-multi.js +0 -0
  584. /package/{cjs → dist/cjs}/tao.js +0 -0
  585. /package/{cjs → dist/cjs}/tar.js +0 -0
  586. /package/{cjs → dist/cjs}/test.js +0 -0
  587. /package/{cjs → dist/cjs}/tgql-d1.js +0 -0
  588. /package/{cjs → dist/cjs}/tgql.js +0 -0
  589. /package/{cjs → dist/cjs}/toerl.js +0 -0
  590. /package/{cjs → dist/cjs}/utils.js +0 -0
  591. /package/{cjs → dist/cjs}/wao.js +0 -0
  592. /package/{cjs → dist/cjs}/waosm/waosm.js +0 -0
  593. /package/{cjs → dist/cjs}/waosm-node/waosm.js +0 -0
  594. /package/{cjs → dist/cjs}/waosm-node/waosm_bg.js +0 -0
  595. /package/{cjs → dist/cjs}/waosm-node/waosm_bg.wasm +0 -0
  596. /package/{cjs → dist/cjs}/waosm-node/waosm_bg.wasm.js +0 -0
  597. /package/{cjs → dist/cjs}/waosm-node.js +0 -0
  598. /package/{cjs → dist/cjs}/war.js +0 -0
  599. /package/{cjs → dist/cjs}/weavedrive.js +0 -0
  600. /package/{cjs → dist/cjs}/web.js +0 -0
  601. /package/{cjs → dist/cjs}/workspace/.mcp.json +0 -0
  602. /package/{cjs → dist/cjs}/workspace/CLAUDE.md +0 -0
  603. /package/{cjs → dist/cjs}/workspace/README.md +0 -0
  604. /package/{cjs → dist/cjs}/workspace/dashboard/index.html +0 -0
  605. /package/{cjs → dist/cjs}/workspace/dashboard/package.json +0 -0
  606. /package/{esm → dist/cjs}/workspace/dashboard/public/favicon.ico +0 -0
  607. /package/{cjs → dist/cjs}/workspace/dashboard/public/favicon.png +0 -0
  608. /package/{cjs → dist/cjs}/workspace/dashboard/server.js +0 -0
  609. /package/{cjs → dist/cjs}/workspace/dashboard/src/App.jsx +0 -0
  610. /package/{cjs → dist/cjs}/workspace/dashboard/src/main.jsx +0 -0
  611. /package/{cjs → dist/cjs}/workspace/dashboard/vite.config.js +0 -0
  612. /package/{cjs → dist/cjs}/workspace/package.json +0 -0
  613. /package/{esm → dist/cjs}/workspace/src/counter.lua +0 -0
  614. /package/{esm → dist/esm}/accounts-web.js +0 -0
  615. /package/{esm → dist/esm}/accounts.js +0 -0
  616. /package/{esm → dist/esm}/adaptor-base.js +0 -0
  617. /package/{esm → dist/esm}/adaptor-cf.js +0 -0
  618. /package/{esm → dist/esm}/adaptor-web.js +0 -0
  619. /package/{esm → dist/esm}/adaptor.js +0 -0
  620. /package/{esm → dist/esm}/ao-loader.js +0 -0
  621. /package/{esm → dist/esm}/ao.js +0 -0
  622. /package/{esm → dist/esm}/aoconnect-base.js +0 -0
  623. /package/{esm → dist/esm}/aoconnect-cf.js +0 -0
  624. /package/{esm → dist/esm}/aoconnect-web.js +0 -0
  625. /package/{esm → dist/esm}/aoconnect.js +0 -0
  626. /package/{esm → dist/esm}/aos_wamr.js +0 -0
  627. /package/{esm → dist/esm}/ar-remote.js +0 -0
  628. /package/{esm → dist/esm}/ar.js +0 -0
  629. /package/{esm → dist/esm}/armem-base.js +0 -0
  630. /package/{esm → dist/esm}/armem-cf.js +0 -0
  631. /package/{esm → dist/esm}/armem-web.js +0 -0
  632. /package/{esm → dist/esm}/armem.js +0 -0
  633. /package/{esm → dist/esm}/bao.js +0 -0
  634. /package/{esm → dist/esm}/bar.js +0 -0
  635. /package/{esm → dist/esm}/build.js +0 -0
  636. /package/{esm → dist/esm}/bundler.js +0 -0
  637. /package/{esm → dist/esm}/car.js +0 -0
  638. /package/{esm → dist/esm}/cf-env.js +0 -0
  639. /package/{esm → dist/esm}/cf.js +0 -0
  640. /package/{esm → dist/esm}/cli.js +0 -0
  641. /package/{esm → dist/esm}/compress.js +0 -0
  642. /package/{esm → dist/esm}/create.js +0 -0
  643. /package/{esm → dist/esm}/devs.js +0 -0
  644. /package/{esm → dist/esm}/dirname.js +0 -0
  645. /package/{esm → dist/esm}/dodb.js +0 -0
  646. /package/{esm → dist/esm}/erl_json.js +0 -0
  647. /package/{esm → dist/esm}/erl_str.js +0 -0
  648. /package/{esm → dist/esm}/gql.js +0 -0
  649. /package/{esm → dist/esm}/hb.js +0 -0
  650. /package/{esm → dist/esm}/helpers.js +0 -0
  651. /package/{esm → dist/esm}/http.js +0 -0
  652. /package/{esm → dist/esm}/hub/bundler.js +0 -0
  653. /package/{esm → dist/esm}/hub/cu.js +0 -0
  654. /package/{esm → dist/esm}/hub/fs.js +0 -0
  655. /package/{esm → dist/esm}/hub/index.js +0 -0
  656. /package/{esm → dist/esm}/hub/utils.js +0 -0
  657. /package/{esm → dist/esm}/hub/ws-proxy.js +0 -0
  658. /package/{esm → dist/esm}/hyper-aos.js +0 -0
  659. /package/{esm → dist/esm}/hyperbeam-server.js +0 -0
  660. /package/{esm → dist/esm}/hyperbeam.js +0 -0
  661. /package/{esm → dist/esm}/index.js +0 -0
  662. /package/{esm → dist/esm}/keygen.js +0 -0
  663. /package/{esm → dist/esm}/lfdb.js +0 -0
  664. /package/{esm → dist/esm}/lua/aos.wasm +0 -0
  665. /package/{esm → dist/esm}/lua/aos2_0_1.js +0 -0
  666. /package/{esm → dist/esm}/lua/aos2_0_1.wasm +0 -0
  667. /package/{esm → dist/esm}/lua/aos2_0_3.js +0 -0
  668. /package/{esm → dist/esm}/lua/aos2_0_3.wasm +0 -0
  669. /package/{esm → dist/esm}/lua/aos2_0_4_32.js +0 -0
  670. /package/{esm → dist/esm}/lua/aos2_0_4_32.wasm +0 -0
  671. /package/{esm → dist/esm}/lua/aos2_0_6.wasm +0 -0
  672. /package/{esm → dist/esm}/lua/apm.lua +0 -0
  673. /package/{esm → dist/esm}/lua/llama.wasm +0 -0
  674. /package/{esm → dist/esm}/lua/process.wasm +0 -0
  675. /package/{esm → dist/esm}/lua/sqlite.js +0 -0
  676. /package/{esm → dist/esm}/lua/sqlite.wasm +0 -0
  677. /package/{esm → dist/esm}/lua/weavedb_mock.lua +0 -0
  678. /package/{esm → dist/esm}/lua/weavedrive.lua +0 -0
  679. /package/{esm → dist/esm}/package.json +0 -0
  680. /package/{esm → dist/esm}/run.js +0 -0
  681. /package/{esm → dist/esm}/server.js +0 -0
  682. /package/{esm → dist/esm}/storage-multi.js +0 -0
  683. /package/{esm → dist/esm}/tao.js +0 -0
  684. /package/{esm → dist/esm}/tar.js +0 -0
  685. /package/{esm → dist/esm}/test.js +0 -0
  686. /package/{esm → dist/esm}/tgql-d1.js +0 -0
  687. /package/{esm → dist/esm}/tgql.js +0 -0
  688. /package/{esm → dist/esm}/toerl.js +0 -0
  689. /package/{esm → dist/esm}/utils.js +0 -0
  690. /package/{esm → dist/esm}/wao.js +0 -0
  691. /package/{esm → dist/esm}/waosm/README.md +0 -0
  692. /package/{esm → dist/esm}/waosm/waosm.d.ts +0 -0
  693. /package/{esm → dist/esm}/waosm/waosm.js +0 -0
  694. /package/{esm → dist/esm}/waosm/waosm_bg.wasm +0 -0
  695. /package/{esm → dist/esm}/waosm/waosm_bg.wasm.d.ts +0 -0
  696. /package/{esm → dist/esm}/waosm-node/README.md +0 -0
  697. /package/{esm → dist/esm}/waosm-node/waosm.d.ts +0 -0
  698. /package/{esm → dist/esm}/waosm-node/waosm.js +0 -0
  699. /package/{esm → dist/esm}/waosm-node/waosm_bg.js +0 -0
  700. /package/{esm → dist/esm}/waosm-node/waosm_bg.wasm +0 -0
  701. /package/{esm → dist/esm}/waosm-node/waosm_bg.wasm.d.ts +0 -0
  702. /package/{esm → dist/esm}/waosm-node/waosm_bg.wasm.js +0 -0
  703. /package/{esm → dist/esm}/waosm-node.js +0 -0
  704. /package/{esm → dist/esm}/war.js +0 -0
  705. /package/{esm → dist/esm}/weavedrive.js +0 -0
  706. /package/{esm → dist/esm}/web.js +0 -0
  707. /package/{esm → dist/esm}/workspace/.mcp.json +0 -0
  708. /package/{esm → dist/esm}/workspace/CLAUDE.md +0 -0
  709. /package/{esm → dist/esm}/workspace/README.md +0 -0
  710. /package/{esm → dist/esm}/workspace/dashboard/index.html +0 -0
  711. /package/{esm → dist/esm}/workspace/dashboard/package.json +0 -0
  712. /package/{esm/workspace/dashboard/public/favicon.png → dist/esm/workspace/dashboard/public/favicon.ico} +0 -0
  713. /package/{esm → dist/esm}/workspace/dashboard/server.js +0 -0
  714. /package/{esm → dist/esm}/workspace/dashboard/src/App.jsx +0 -0
  715. /package/{cjs/workspace/frontend → dist/esm/workspace/dashboard}/src/main.jsx +0 -0
  716. /package/{esm → dist/esm}/workspace/dashboard/vite.config.js +0 -0
  717. /package/{esm → dist/esm}/workspace/package.json +0 -0
  718. /package/{postinstall.cjs → dist/postinstall.cjs} +0 -0
  719. /package/{esm → src}/workspace/dashboard/src/main.jsx +0 -0
@@ -0,0 +1,1606 @@
1
+ :root {
2
+ --primary: #5137C5;
3
+ --primary-light: #6b52d9;
4
+ --primary-dark: #3d2a9e;
5
+ --bg: #0f0f14;
6
+ --bg-card: #1a1a24;
7
+ --bg-hover: #22222e;
8
+ --border: #2a2a3a;
9
+ --text: #e4e4ed;
10
+ --text-muted: #8888a0;
11
+ --text-link: #8b7be8;
12
+ --shadow: 0 1px 3px rgba(0,0,0,0.3);
13
+ --shadow-lg: 0 4px 12px rgba(0,0,0,0.4);
14
+ --mono: "SF Mono", "Fira Code", "Fira Mono", Menlo, Consolas, monospace;
15
+ --sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
16
+ --radius: 8px;
17
+ --radius-sm: 6px;
18
+ }
19
+
20
+ [data-theme="light"] {
21
+ --primary: #5137C5;
22
+ --primary-light: #6b52d9;
23
+ --primary-dark: #3d2a9e;
24
+ --bg: #f8f9fc;
25
+ --bg-card: #ffffff;
26
+ --bg-hover: #f0f0f5;
27
+ --border: #e2e2ea;
28
+ --text: #1a1a2e;
29
+ --text-muted: #6b6b80;
30
+ --text-link: #5137C5;
31
+ --shadow: 0 1px 3px rgba(0,0,0,0.08);
32
+ --shadow-lg: 0 4px 12px rgba(0,0,0,0.1);
33
+ }
34
+
35
+ * { margin: 0; padding: 0; box-sizing: border-box; }
36
+
37
+ body {
38
+ font-family: var(--sans);
39
+ background: var(--bg);
40
+ color: var(--text);
41
+ line-height: 1.6;
42
+ -webkit-font-smoothing: antialiased;
43
+ }
44
+
45
+ #app {
46
+ max-width: 1280px;
47
+ margin: 0 auto;
48
+ padding: 0 24px;
49
+ }
50
+
51
+ /* Header */
52
+ header {
53
+ display: flex;
54
+ justify-content: space-between;
55
+ align-items: center;
56
+ padding: 16px 0;
57
+ border-bottom: 1px solid var(--border);
58
+ margin-bottom: 8px;
59
+ }
60
+
61
+ .logo {
62
+ display: flex;
63
+ align-items: center;
64
+ gap: 12px;
65
+ text-decoration: none;
66
+ }
67
+
68
+ .logo .logo-text {
69
+ font-size: 20px;
70
+ font-weight: 700;
71
+ color: var(--primary-light);
72
+ letter-spacing: -0.3px;
73
+ line-height: 1;
74
+ }
75
+
76
+ .logo > span:first-of-type {
77
+ color: var(--text-muted);
78
+ font-weight: 500;
79
+ font-size: 10px;
80
+ text-transform: uppercase;
81
+ letter-spacing: 2px;
82
+ line-height: 1;
83
+ }
84
+
85
+ .header-right {
86
+ display: flex;
87
+ align-items: center;
88
+ gap: 12px;
89
+ }
90
+
91
+ /* Theme toggle */
92
+ .theme-toggle {
93
+ background: var(--bg-card);
94
+ border: 1px solid var(--border);
95
+ color: var(--text-muted);
96
+ width: 36px;
97
+ height: 36px;
98
+ border-radius: var(--radius);
99
+ cursor: pointer;
100
+ display: flex;
101
+ align-items: center;
102
+ justify-content: center;
103
+ font-size: 18px;
104
+ transition: all 0.2s;
105
+ flex-shrink: 0;
106
+ box-shadow: var(--shadow);
107
+ }
108
+
109
+ .theme-toggle:hover {
110
+ color: var(--text);
111
+ border-color: var(--primary);
112
+ background: var(--bg-hover);
113
+ }
114
+
115
+ /* Search */
116
+ .search-wrapper {
117
+ position: relative;
118
+ }
119
+
120
+ .search-bar {
121
+ display: flex;
122
+ gap: 0;
123
+ }
124
+
125
+ .search-bar input {
126
+ background: var(--bg-card);
127
+ border: 1px solid var(--border);
128
+ border-right: none;
129
+ border-radius: var(--radius-sm) 0 0 var(--radius-sm);
130
+ padding: 8px 14px;
131
+ color: var(--text);
132
+ font-family: var(--mono);
133
+ font-size: 13px;
134
+ width: 360px;
135
+ outline: none;
136
+ transition: border-color 0.2s;
137
+ box-shadow: var(--shadow);
138
+ }
139
+
140
+ .search-bar input:focus {
141
+ border-color: var(--primary);
142
+ }
143
+
144
+ .search-bar button {
145
+ background: var(--primary);
146
+ border: 1px solid var(--primary);
147
+ border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
148
+ color: white;
149
+ padding: 8px 14px;
150
+ cursor: pointer;
151
+ font-size: 13px;
152
+ display: flex;
153
+ align-items: center;
154
+ transition: background 0.2s;
155
+ }
156
+
157
+ .search-bar button:hover {
158
+ background: var(--primary-light);
159
+ }
160
+
161
+ /* Search dropdown */
162
+ .search-dropdown {
163
+ position: absolute;
164
+ top: 100%;
165
+ left: 0;
166
+ right: 0;
167
+ background: var(--bg-card);
168
+ border: 1px solid var(--border);
169
+ border-radius: var(--radius-sm);
170
+ box-shadow: var(--shadow-lg);
171
+ z-index: 100;
172
+ margin-top: 4px;
173
+ max-height: 360px;
174
+ overflow-y: auto;
175
+ }
176
+
177
+ .search-item {
178
+ display: flex;
179
+ align-items: center;
180
+ gap: 10px;
181
+ padding: 10px 14px;
182
+ cursor: pointer;
183
+ transition: background 0.1s;
184
+ border-bottom: 1px solid var(--border);
185
+ font-size: 13px;
186
+ }
187
+
188
+ .search-item:last-child {
189
+ border-bottom: none;
190
+ }
191
+
192
+ .search-item:hover {
193
+ background: var(--bg-hover);
194
+ }
195
+
196
+ .search-item-id {
197
+ color: var(--text);
198
+ }
199
+
200
+ .search-item-name {
201
+ color: var(--text-muted);
202
+ font-size: 12px;
203
+ margin-left: auto;
204
+ }
205
+
206
+ .search-item-label {
207
+ color: var(--text-muted);
208
+ font-size: 11px;
209
+ text-transform: uppercase;
210
+ font-weight: 600;
211
+ letter-spacing: 0.5px;
212
+ }
213
+
214
+ .search-item-viewall {
215
+ color: var(--text-link);
216
+ font-size: 12px;
217
+ font-weight: 500;
218
+ }
219
+
220
+ /* Nav — GitHub-style underline tabs */
221
+ nav {
222
+ display: flex;
223
+ align-items: center;
224
+ gap: 0;
225
+ border-bottom: 1px solid var(--border);
226
+ margin-bottom: 24px;
227
+ }
228
+
229
+ nav a {
230
+ color: var(--text-muted);
231
+ text-decoration: none;
232
+ padding: 10px 16px;
233
+ font-size: 13px;
234
+ font-weight: 500;
235
+ display: flex;
236
+ align-items: center;
237
+ gap: 6px;
238
+ border-bottom: 2px solid transparent;
239
+ transition: color 0.15s, border-color 0.15s;
240
+ white-space: nowrap;
241
+ }
242
+
243
+ nav a svg {
244
+ flex-shrink: 0;
245
+ opacity: 0.7;
246
+ }
247
+
248
+ nav a:hover {
249
+ color: var(--text);
250
+ background: var(--bg-hover);
251
+ }
252
+
253
+ nav a:hover svg { opacity: 1; }
254
+
255
+ nav a.active {
256
+ color: var(--text);
257
+ border-bottom-color: var(--primary);
258
+ font-weight: 600;
259
+ }
260
+
261
+ nav a.active svg { opacity: 1; }
262
+
263
+ /* Cards */
264
+ .stats {
265
+ display: grid;
266
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
267
+ gap: 16px;
268
+ margin-bottom: 32px;
269
+ }
270
+
271
+ .stat-card {
272
+ background: var(--bg-card);
273
+ border: 1px solid var(--border);
274
+ border-radius: var(--radius);
275
+ padding: 14px 16px;
276
+ box-shadow: var(--shadow);
277
+ transition: border-color 0.2s, box-shadow 0.2s;
278
+ }
279
+
280
+ .stat-card:hover {
281
+ border-color: var(--primary-dark);
282
+ box-shadow: var(--shadow-lg);
283
+ }
284
+
285
+ .stat-card .label {
286
+ font-size: 11px;
287
+ color: var(--text-muted);
288
+ text-transform: uppercase;
289
+ letter-spacing: 0.8px;
290
+ font-weight: 600;
291
+ margin-bottom: 6px;
292
+ }
293
+
294
+ .stat-card .value {
295
+ font-size: 24px;
296
+ font-weight: 700;
297
+ color: var(--text);
298
+ font-variant-numeric: tabular-nums;
299
+ }
300
+
301
+ /* Tables */
302
+ .table-wrap {
303
+ overflow-x: auto;
304
+ margin-bottom: 16px;
305
+ background: var(--bg-card);
306
+ border: 1px solid var(--border);
307
+ border-radius: var(--radius);
308
+ box-shadow: var(--shadow);
309
+ }
310
+
311
+ table {
312
+ width: 100%;
313
+ border-collapse: collapse;
314
+ font-size: 13px;
315
+ }
316
+
317
+ thead th {
318
+ text-align: left;
319
+ color: var(--text-muted);
320
+ font-weight: 600;
321
+ font-size: 11px;
322
+ text-transform: uppercase;
323
+ letter-spacing: 0.5px;
324
+ padding: 8px 12px;
325
+ border-bottom: 1px solid var(--border);
326
+ background: var(--bg-hover);
327
+ }
328
+
329
+ thead th:first-child {
330
+ border-radius: var(--radius) 0 0 0;
331
+ }
332
+
333
+ thead th:last-child {
334
+ border-radius: 0 var(--radius) 0 0;
335
+ }
336
+
337
+ tbody tr {
338
+ cursor: pointer;
339
+ transition: background 0.1s;
340
+ }
341
+
342
+ tbody tr:hover {
343
+ background: var(--bg-hover);
344
+ }
345
+
346
+ tbody td {
347
+ padding: 7px 12px;
348
+ border-bottom: 1px solid var(--border);
349
+ white-space: nowrap;
350
+ }
351
+
352
+ tbody tr:last-child td {
353
+ border-bottom: none;
354
+ }
355
+
356
+ .mono {
357
+ font-family: var(--mono);
358
+ font-size: 13px;
359
+ }
360
+
361
+ .link {
362
+ color: var(--text-link);
363
+ cursor: pointer;
364
+ transition: color 0.15s;
365
+ }
366
+
367
+ .link:hover {
368
+ color: var(--primary-light);
369
+ text-decoration: underline;
370
+ }
371
+
372
+ /* Type badges */
373
+ .type-badge-process {
374
+ display: inline-block;
375
+ background: #1e3a5f;
376
+ color: #60a5fa;
377
+ font-size: 11px;
378
+ font-weight: 600;
379
+ padding: 3px 12px;
380
+ border-radius: 4px;
381
+ text-transform: uppercase;
382
+ letter-spacing: 0.3px;
383
+ white-space: nowrap;
384
+ }
385
+
386
+ .type-badge-message {
387
+ display: inline-block;
388
+ background: #1a3a2a;
389
+ color: #4ade80;
390
+ font-size: 11px;
391
+ font-weight: 600;
392
+ padding: 3px 12px;
393
+ border-radius: 4px;
394
+ text-transform: uppercase;
395
+ letter-spacing: 0.3px;
396
+ white-space: nowrap;
397
+ }
398
+
399
+ .type-badge-module {
400
+ display: inline-block;
401
+ background: #2d1f5e;
402
+ color: #a78bfa;
403
+ font-size: 11px;
404
+ font-weight: 600;
405
+ padding: 3px 12px;
406
+ border-radius: 4px;
407
+ text-transform: uppercase;
408
+ letter-spacing: 0.3px;
409
+ white-space: nowrap;
410
+ }
411
+
412
+ .type-badge-tx {
413
+ display: inline-block;
414
+ background: #2a2a3a;
415
+ color: #9ca3af;
416
+ font-size: 11px;
417
+ font-weight: 600;
418
+ padding: 3px 12px;
419
+ border-radius: 4px;
420
+ text-transform: uppercase;
421
+ letter-spacing: 0.3px;
422
+ white-space: nowrap;
423
+ }
424
+
425
+ .type-badge-block {
426
+ display: inline-block;
427
+ background: #3a2a1a;
428
+ color: #fbbf24;
429
+ font-size: 11px;
430
+ font-weight: 600;
431
+ padding: 3px 12px;
432
+ border-radius: 4px;
433
+ text-transform: uppercase;
434
+ letter-spacing: 0.3px;
435
+ white-space: nowrap;
436
+ }
437
+
438
+ [data-theme="light"] .type-badge-process {
439
+ background: #dbeafe;
440
+ color: #1d4ed8;
441
+ }
442
+
443
+ [data-theme="light"] .type-badge-message {
444
+ background: #dcfce7;
445
+ color: #16a34a;
446
+ }
447
+
448
+ [data-theme="light"] .type-badge-module {
449
+ background: #ede9fe;
450
+ color: #7c3aed;
451
+ }
452
+
453
+ [data-theme="light"] .type-badge-tx {
454
+ background: #f3f4f6;
455
+ color: #4b5563;
456
+ }
457
+
458
+ [data-theme="light"] .type-badge-block {
459
+ background: #fef3c7;
460
+ color: #b45309;
461
+ }
462
+
463
+ .type-badge-bundle {
464
+ display: inline-block;
465
+ background: #1a2a2a;
466
+ color: #2dd4bf;
467
+ font-size: 11px;
468
+ font-weight: 600;
469
+ padding: 3px 12px;
470
+ border-radius: 4px;
471
+ text-transform: uppercase;
472
+ letter-spacing: 0.3px;
473
+ white-space: nowrap;
474
+ }
475
+
476
+ [data-theme="light"] .type-badge-bundle {
477
+ background: #f0fdfa;
478
+ color: #0f766e;
479
+ }
480
+
481
+ .type-badge-scheduler {
482
+ display: inline-block;
483
+ background: #3a2a1a;
484
+ color: #fb923c;
485
+ font-size: 11px;
486
+ font-weight: 600;
487
+ padding: 3px 12px;
488
+ border-radius: 4px;
489
+ text-transform: uppercase;
490
+ letter-spacing: 0.3px;
491
+ white-space: nowrap;
492
+ }
493
+
494
+ [data-theme="light"] .type-badge-scheduler {
495
+ background: #fff7ed;
496
+ color: #c2410c;
497
+ }
498
+
499
+ .type-badge-image {
500
+ display: inline-block;
501
+ background: #2a1a3a;
502
+ color: #e879f9;
503
+ font-size: 11px;
504
+ font-weight: 600;
505
+ padding: 3px 12px;
506
+ border-radius: 4px;
507
+ text-transform: uppercase;
508
+ letter-spacing: 0.3px;
509
+ white-space: nowrap;
510
+ }
511
+
512
+ .type-badge-video {
513
+ display: inline-block;
514
+ background: #3a1a2a;
515
+ color: #fb7185;
516
+ font-size: 11px;
517
+ font-weight: 600;
518
+ padding: 3px 12px;
519
+ border-radius: 4px;
520
+ text-transform: uppercase;
521
+ letter-spacing: 0.3px;
522
+ white-space: nowrap;
523
+ }
524
+
525
+ .type-badge-audio {
526
+ display: inline-block;
527
+ background: #1a2a3a;
528
+ color: #38bdf8;
529
+ font-size: 11px;
530
+ font-weight: 600;
531
+ padding: 3px 12px;
532
+ border-radius: 4px;
533
+ text-transform: uppercase;
534
+ letter-spacing: 0.3px;
535
+ white-space: nowrap;
536
+ }
537
+
538
+ .type-badge-json {
539
+ display: inline-block;
540
+ background: #1a3a2a;
541
+ color: #34d399;
542
+ font-size: 11px;
543
+ font-weight: 600;
544
+ padding: 3px 12px;
545
+ border-radius: 4px;
546
+ text-transform: uppercase;
547
+ letter-spacing: 0.3px;
548
+ white-space: nowrap;
549
+ }
550
+
551
+ .type-badge-text {
552
+ display: inline-block;
553
+ background: #2a2a1a;
554
+ color: #facc15;
555
+ font-size: 11px;
556
+ font-weight: 600;
557
+ padding: 3px 12px;
558
+ border-radius: 4px;
559
+ text-transform: uppercase;
560
+ letter-spacing: 0.3px;
561
+ white-space: nowrap;
562
+ }
563
+
564
+ [data-theme="light"] .type-badge-image {
565
+ background: #fae8ff;
566
+ color: #a21caf;
567
+ }
568
+
569
+ [data-theme="light"] .type-badge-video {
570
+ background: #ffe4e6;
571
+ color: #be123c;
572
+ }
573
+
574
+ [data-theme="light"] .type-badge-audio {
575
+ background: #e0f2fe;
576
+ color: #0369a1;
577
+ }
578
+
579
+ [data-theme="light"] .type-badge-json {
580
+ background: #d1fae5;
581
+ color: #047857;
582
+ }
583
+
584
+ [data-theme="light"] .type-badge-text {
585
+ background: #fef9c3;
586
+ color: #a16207;
587
+ }
588
+
589
+ /* Section headers */
590
+ .section-title {
591
+ font-size: 14px;
592
+ font-weight: 600;
593
+ margin-bottom: 8px;
594
+ color: var(--text);
595
+ }
596
+
597
+ .section {
598
+ margin-bottom: 20px;
599
+ }
600
+
601
+ /* Entity detail */
602
+ .detail-header {
603
+ display: flex;
604
+ align-items: center;
605
+ gap: 10px;
606
+ flex-wrap: wrap;
607
+ margin-bottom: 16px;
608
+ }
609
+
610
+ .detail-header .entity-name {
611
+ font-size: 16px;
612
+ font-weight: 600;
613
+ color: var(--text);
614
+ }
615
+
616
+ .entity-id {
617
+ display: flex;
618
+ align-items: center;
619
+ gap: 6px;
620
+ }
621
+
622
+ .detail-header h2 {
623
+ font-family: var(--mono);
624
+ font-size: 13px;
625
+ font-weight: 400;
626
+ word-break: break-all;
627
+ color: var(--text-muted);
628
+ line-height: 1;
629
+ }
630
+
631
+ /* Copy button */
632
+ .copy-btn {
633
+ background: none;
634
+ border: none;
635
+ color: var(--text-muted);
636
+ width: 22px;
637
+ height: 22px;
638
+ cursor: pointer;
639
+ display: inline-flex;
640
+ align-items: center;
641
+ justify-content: center;
642
+ flex-shrink: 0;
643
+ transition: color 0.15s;
644
+ padding: 0;
645
+ }
646
+
647
+ .copy-btn:hover {
648
+ color: var(--primary-light);
649
+ }
650
+
651
+ /* Two-column grid for metadata + tags */
652
+ .detail-grid {
653
+ display: grid;
654
+ grid-template-columns: 3fr 2fr;
655
+ gap: 16px;
656
+ margin-bottom: 16px;
657
+ align-items: start;
658
+ }
659
+
660
+ .detail-grid .detail-fields {
661
+ margin-bottom: 0;
662
+ }
663
+
664
+ .detail-grid .section {
665
+ margin-bottom: 0;
666
+ }
667
+
668
+ .detail-grid .section-title {
669
+ margin-bottom: 8px;
670
+ }
671
+
672
+ @media (max-width: 900px) {
673
+ .detail-grid {
674
+ grid-template-columns: 1fr;
675
+ }
676
+ }
677
+
678
+ .detail-fields {
679
+ background: var(--bg-card);
680
+ border: 1px solid var(--border);
681
+ border-radius: var(--radius);
682
+ padding: 0;
683
+ margin-bottom: 16px;
684
+ box-shadow: var(--shadow);
685
+ overflow: hidden;
686
+ }
687
+
688
+ .detail-fields .field {
689
+ display: flex;
690
+ padding: 7px 12px;
691
+ border-bottom: 1px solid var(--border);
692
+ }
693
+
694
+ .detail-fields .field:last-child {
695
+ border-bottom: none;
696
+ }
697
+
698
+ .detail-fields .field:nth-child(even) {
699
+ background: var(--bg-hover);
700
+ }
701
+
702
+ .detail-fields .field-key {
703
+ width: 120px;
704
+ flex-shrink: 0;
705
+ color: var(--text-muted);
706
+ font-size: 12px;
707
+ font-weight: 500;
708
+ }
709
+
710
+ .detail-fields .field-value {
711
+ font-family: var(--mono);
712
+ font-size: 12px;
713
+ word-break: break-all;
714
+ }
715
+
716
+ /* Tags */
717
+ .tags-container {
718
+ display: flex;
719
+ flex-direction: column;
720
+ gap: 12px;
721
+ }
722
+
723
+ .tag-group {
724
+ display: flex;
725
+ flex-direction: column;
726
+ gap: 4px;
727
+ }
728
+
729
+ .tag-group-label {
730
+ font-size: 11px;
731
+ font-weight: 600;
732
+ color: var(--text-muted);
733
+ text-transform: uppercase;
734
+ letter-spacing: 0.5px;
735
+ }
736
+
737
+ /* Tags table */
738
+ .tags-table-wrap {
739
+ background: var(--bg-card);
740
+ border: 1px solid var(--border);
741
+ border-radius: var(--radius-sm);
742
+ overflow: hidden;
743
+ box-shadow: var(--shadow);
744
+ }
745
+
746
+ .tags-table {
747
+ width: 100%;
748
+ border-collapse: collapse;
749
+ font-size: 12px;
750
+ }
751
+
752
+ .tags-table thead th {
753
+ text-align: left;
754
+ color: var(--text-muted);
755
+ font-weight: 600;
756
+ font-size: 10px;
757
+ text-transform: uppercase;
758
+ letter-spacing: 0.5px;
759
+ padding: 6px 16px;
760
+ border-bottom: 1px solid var(--border);
761
+ background: var(--bg-hover);
762
+ }
763
+
764
+ .tags-table tbody tr {
765
+ cursor: default;
766
+ }
767
+
768
+ .tags-table tbody td {
769
+ padding: 6px 16px;
770
+ border-bottom: 1px solid var(--border);
771
+ }
772
+
773
+ .tags-table tbody tr:last-child td {
774
+ border-bottom: none;
775
+ }
776
+
777
+ .tags-table .tag-key {
778
+ color: var(--text-muted);
779
+ font-weight: 500;
780
+ width: 140px;
781
+ white-space: nowrap;
782
+ font-size: 12px;
783
+ }
784
+
785
+ .tags-table .tag-val {
786
+ word-break: break-all;
787
+ }
788
+
789
+ /* Pagination */
790
+ .pagination {
791
+ display: flex;
792
+ align-items: center;
793
+ justify-content: space-between;
794
+ padding: 12px 0;
795
+ }
796
+
797
+ .pg-left {
798
+ display: flex;
799
+ align-items: center;
800
+ gap: 8px;
801
+ }
802
+
803
+ .pg-right {
804
+ display: flex;
805
+ align-items: center;
806
+ gap: 4px;
807
+ }
808
+
809
+ .pg-btn {
810
+ background: var(--bg-card);
811
+ border: 1px solid var(--border);
812
+ color: var(--text);
813
+ min-width: 32px;
814
+ height: 32px;
815
+ padding: 0 8px;
816
+ border-radius: var(--radius-sm);
817
+ cursor: pointer;
818
+ font-size: 13px;
819
+ font-weight: 500;
820
+ display: inline-flex;
821
+ align-items: center;
822
+ justify-content: center;
823
+ transition: all 0.15s;
824
+ }
825
+
826
+ .pg-btn:hover:not(:disabled) {
827
+ border-color: var(--primary);
828
+ color: var(--primary-light);
829
+ background: var(--bg-hover);
830
+ }
831
+
832
+ .pg-btn:disabled {
833
+ opacity: 0.35;
834
+ cursor: default;
835
+ }
836
+
837
+ .pg-btn.pg-active {
838
+ background: var(--primary);
839
+ border-color: var(--primary);
840
+ color: #fff;
841
+ font-weight: 600;
842
+ }
843
+
844
+ .pg-dots {
845
+ color: var(--text-muted);
846
+ padding: 0 4px;
847
+ font-size: 13px;
848
+ user-select: none;
849
+ }
850
+
851
+ .pg-size {
852
+ display: flex;
853
+ align-items: center;
854
+ gap: 4px;
855
+ color: var(--text-muted);
856
+ font-size: 12px;
857
+ white-space: nowrap;
858
+ }
859
+
860
+ .pg-count {
861
+ color: var(--text-muted);
862
+ font-size: 12px;
863
+ white-space: nowrap;
864
+ }
865
+
866
+ .pg-select {
867
+ background: var(--bg-card);
868
+ border: 1px solid var(--border);
869
+ color: var(--text);
870
+ font-size: 12px;
871
+ padding: 4px 6px;
872
+ border-radius: var(--radius-sm);
873
+ cursor: pointer;
874
+ outline: none;
875
+ transition: border-color 0.15s;
876
+ }
877
+
878
+ .pg-select:hover,
879
+ .pg-select:focus {
880
+ border-color: var(--primary);
881
+ }
882
+
883
+ /* Footer */
884
+ .site-footer {
885
+ border-top: 1px solid var(--border);
886
+ margin-top: 40px;
887
+ padding: 20px 0 24px;
888
+ text-align: center;
889
+ font-size: 13px;
890
+ font-weight: 600;
891
+ }
892
+
893
+ .site-footer a {
894
+ color: var(--text-muted);
895
+ text-decoration: none;
896
+ transition: color 0.15s;
897
+ }
898
+
899
+ .site-footer a:hover {
900
+ color: var(--text-link);
901
+ }
902
+
903
+ /* Loading */
904
+ .loading {
905
+ text-align: center;
906
+ padding: 40px;
907
+ color: var(--text-muted);
908
+ font-size: 14px;
909
+ }
910
+
911
+ /* Output / result block */
912
+ .output-block {
913
+ background: var(--bg-card);
914
+ border: 1px solid var(--border);
915
+ border-radius: var(--radius);
916
+ padding: 16px;
917
+ margin-bottom: 16px;
918
+ font-family: var(--mono);
919
+ font-size: 13px;
920
+ white-space: pre-wrap;
921
+ word-break: break-all;
922
+ max-height: 400px;
923
+ overflow-y: auto;
924
+ box-shadow: var(--shadow);
925
+ }
926
+
927
+ /* Result section – dark terminal style */
928
+ .result-output {
929
+ background: #1a1a2e;
930
+ color: #ffffff;
931
+ border: 1px solid #2a2a3a;
932
+ border-radius: var(--radius-sm);
933
+ padding: 12px 14px;
934
+ margin-bottom: 12px;
935
+ font-family: var(--mono);
936
+ font-size: 13px;
937
+ white-space: pre-wrap;
938
+ word-break: break-all;
939
+ max-height: 400px;
940
+ overflow-y: auto;
941
+ }
942
+
943
+ /* Tabs */
944
+ .entity-tabs {
945
+ margin-bottom: 20px;
946
+ }
947
+
948
+ .tab-bar {
949
+ display: flex;
950
+ gap: 0;
951
+ border-bottom: 2px solid var(--border);
952
+ margin-bottom: 16px;
953
+ }
954
+
955
+ .tab-btn {
956
+ background: none;
957
+ border: none;
958
+ border-bottom: 2px solid transparent;
959
+ color: var(--text-muted);
960
+ font-size: 13px;
961
+ font-weight: 500;
962
+ padding: 10px 20px;
963
+ cursor: pointer;
964
+ margin-bottom: -2px;
965
+ transition: all 0.15s;
966
+ }
967
+
968
+ .tab-btn:hover {
969
+ color: var(--text);
970
+ }
971
+
972
+ .tab-btn.active {
973
+ color: var(--primary-light);
974
+ border-bottom-color: var(--primary);
975
+ }
976
+
977
+ /* Compute button */
978
+ .compute-btn {
979
+ background: var(--primary);
980
+ border: 1px solid var(--primary);
981
+ color: white;
982
+ padding: 8px 20px;
983
+ border-radius: var(--radius-sm);
984
+ cursor: pointer;
985
+ font-size: 13px;
986
+ font-weight: 500;
987
+ transition: all 0.15s;
988
+ }
989
+
990
+ .compute-btn:hover {
991
+ background: var(--primary-light);
992
+ }
993
+
994
+ .compute-btn:disabled {
995
+ opacity: 0.6;
996
+ cursor: default;
997
+ }
998
+
999
+ /* Result label */
1000
+ .result-label {
1001
+ font-size: 11px;
1002
+ font-weight: 600;
1003
+ color: var(--text-muted);
1004
+ text-transform: uppercase;
1005
+ letter-spacing: 0.5px;
1006
+ margin-bottom: 8px;
1007
+ margin-top: 12px;
1008
+ }
1009
+
1010
+ /* New row animation */
1011
+ @keyframes row-slide-in {
1012
+ 0% {
1013
+ opacity: 0;
1014
+ transform: translateY(-8px);
1015
+ background: rgba(81, 55, 197, 0.15);
1016
+ }
1017
+ 40% {
1018
+ opacity: 1;
1019
+ transform: translateY(0);
1020
+ background: rgba(81, 55, 197, 0.15);
1021
+ }
1022
+ 100% {
1023
+ opacity: 1;
1024
+ transform: translateY(0);
1025
+ background: transparent;
1026
+ }
1027
+ }
1028
+
1029
+ tbody tr.new-row {
1030
+ animation: row-slide-in 1.2s ease-out;
1031
+ }
1032
+
1033
+ /* Live indicator */
1034
+ .live-dot {
1035
+ display: inline-block;
1036
+ width: 6px;
1037
+ height: 6px;
1038
+ border-radius: 50%;
1039
+ background: #6b6b80;
1040
+ align-self: center;
1041
+ flex-shrink: 0;
1042
+ transition: background 0.3s;
1043
+ }
1044
+
1045
+ .live-dot.connected {
1046
+ background: #4ade80;
1047
+ box-shadow: 0 0 6px #4ade80;
1048
+ animation: pulse-live 2s infinite;
1049
+ }
1050
+
1051
+ @keyframes pulse-live {
1052
+ 0%, 100% { box-shadow: 0 0 4px #4ade80; }
1053
+ 50% { box-shadow: 0 0 10px #4ade80; }
1054
+ }
1055
+
1056
+ /* Message tree */
1057
+ .msg-tree {
1058
+ background: var(--bg-card);
1059
+ border: 1px solid var(--border);
1060
+ border-radius: var(--radius-sm);
1061
+ padding: 10px 14px;
1062
+ box-shadow: var(--shadow);
1063
+ }
1064
+
1065
+ .tree-node {
1066
+ position: relative;
1067
+ }
1068
+
1069
+ .tree-root {
1070
+ padding: 8px 0;
1071
+ }
1072
+
1073
+ .tree-children {
1074
+ margin-left: 4px;
1075
+ border-left: 2px solid var(--primary-dark);
1076
+ padding-left: 0;
1077
+ }
1078
+
1079
+ .tree-child {
1080
+ display: flex;
1081
+ align-items: center;
1082
+ padding: 8px 0;
1083
+ }
1084
+
1085
+ .tree-connector {
1086
+ width: 20px;
1087
+ height: 2px;
1088
+ background: var(--primary-dark);
1089
+ flex-shrink: 0;
1090
+ }
1091
+
1092
+ .tree-node-header {
1093
+ display: flex;
1094
+ align-items: center;
1095
+ gap: 12px;
1096
+ flex-wrap: wrap;
1097
+ }
1098
+
1099
+ .tree-node-dot {
1100
+ width: 11px;
1101
+ height: 11px;
1102
+ border-radius: 50%;
1103
+ flex-shrink: 0;
1104
+ }
1105
+
1106
+ .tree-node-dot.root {
1107
+ background: var(--primary);
1108
+ box-shadow: 0 0 0 3px var(--primary-dark);
1109
+ }
1110
+
1111
+ .tree-node-dot.child {
1112
+ background: var(--primary);
1113
+ box-shadow: 0 0 0 3px var(--primary-dark);
1114
+ }
1115
+
1116
+ .tree-node-dot.spawn {
1117
+ background: #60a5fa;
1118
+ box-shadow: 0 0 0 2px #1e3a5f;
1119
+ }
1120
+
1121
+ .tree-node-id {
1122
+ font-size: 13px;
1123
+ }
1124
+
1125
+ .tree-node-arrow {
1126
+ color: var(--text-muted);
1127
+ display: flex;
1128
+ align-items: center;
1129
+ }
1130
+
1131
+ .tree-node-name {
1132
+ color: var(--text);
1133
+ font-weight: 500;
1134
+ font-size: 13px;
1135
+ }
1136
+ .tree-note {
1137
+ color: var(--text-muted);
1138
+ font-size: 11px;
1139
+ font-style: italic;
1140
+ }
1141
+
1142
+ .tree-leaf {
1143
+ color: var(--text-muted);
1144
+ font-size: 12px;
1145
+ padding: 8px 0 4px 24px;
1146
+ font-style: italic;
1147
+ }
1148
+
1149
+ /* Data preview */
1150
+ .data-preview {
1151
+ background: var(--bg-card);
1152
+ border: 1px solid var(--border);
1153
+ border-radius: var(--radius);
1154
+ padding: 16px;
1155
+ font-family: var(--mono);
1156
+ font-size: 13px;
1157
+ white-space: pre-wrap;
1158
+ word-break: break-all;
1159
+ max-height: 300px;
1160
+ overflow-y: auto;
1161
+ margin-top: 8px;
1162
+ box-shadow: var(--shadow);
1163
+ }
1164
+
1165
+ /* GitHub-style code block */
1166
+ .code-copy-btn {
1167
+ background: transparent;
1168
+ border: none;
1169
+ color: var(--text-muted);
1170
+ cursor: pointer;
1171
+ padding: 2px;
1172
+ display: flex;
1173
+ align-items: center;
1174
+ line-height: 1;
1175
+ }
1176
+ .code-copy-btn:hover { color: var(--text); }
1177
+ .code-block-body {
1178
+ background: var(--bg-card);
1179
+ margin: 0;
1180
+ display: flex;
1181
+ max-height: 400px;
1182
+ overflow-y: auto;
1183
+ border: 1px solid var(--border);
1184
+ border-radius: var(--radius);
1185
+ margin-top: 8px;
1186
+ }
1187
+ .code-gutter {
1188
+ margin: 0;
1189
+ padding: 14px 12px 14px 14px;
1190
+ font-family: var(--mono);
1191
+ font-size: 13px;
1192
+ line-height: 1.5;
1193
+ color: var(--text-muted);
1194
+ text-align: right;
1195
+ user-select: none;
1196
+ border-right: 1px solid var(--border);
1197
+ flex-shrink: 0;
1198
+ white-space: pre;
1199
+ }
1200
+ .code-content {
1201
+ margin: 0;
1202
+ padding: 14px 16px;
1203
+ font-family: var(--mono);
1204
+ font-size: 13px;
1205
+ line-height: 1.5;
1206
+ white-space: pre-wrap;
1207
+ word-break: break-all;
1208
+ color: var(--text);
1209
+ flex: 1;
1210
+ min-width: 0;
1211
+ }
1212
+
1213
+ /* Lua syntax colors */
1214
+ .lua-keyword { color: #ff7b72; font-weight: 600; }
1215
+ .lua-string { color: #a5d6ff; }
1216
+ .lua-comment { color: #8b949e; font-style: italic; }
1217
+ .lua-number { color: #79c0ff; }
1218
+ .lua-builtin { color: #d2a8ff; }
1219
+ .lua-punct { color: var(--text-muted); }
1220
+
1221
+ [data-theme="light"] .lua-keyword { color: #cf222e; }
1222
+ [data-theme="light"] .lua-string { color: #0a3069; }
1223
+ [data-theme="light"] .lua-comment { color: #6e7781; }
1224
+ [data-theme="light"] .lua-number { color: #0550ae; }
1225
+ [data-theme="light"] .lua-builtin { color: #8250df; }
1226
+
1227
+ /* Eval items */
1228
+ .eval-item {
1229
+ background: var(--bg-card);
1230
+ border: 1px solid var(--border);
1231
+ border-radius: var(--radius);
1232
+ margin-bottom: 12px;
1233
+ overflow: hidden;
1234
+ box-shadow: var(--shadow);
1235
+ }
1236
+
1237
+ .eval-header {
1238
+ display: flex;
1239
+ align-items: center;
1240
+ gap: 12px;
1241
+ padding: 10px 16px;
1242
+ border-bottom: 1px solid var(--border);
1243
+ background: var(--bg-hover);
1244
+ font-size: 13px;
1245
+ }
1246
+
1247
+ .eval-from {
1248
+ color: var(--text-muted);
1249
+ font-size: 12px;
1250
+ }
1251
+
1252
+ .eval-time {
1253
+ color: var(--text-muted);
1254
+ font-size: 12px;
1255
+ margin-left: auto;
1256
+ }
1257
+
1258
+ .eval-code {
1259
+ padding: 12px 16px;
1260
+ font-family: var(--mono);
1261
+ font-size: 12px;
1262
+ white-space: pre-wrap;
1263
+ word-break: break-all;
1264
+ max-height: 200px;
1265
+ overflow-y: auto;
1266
+ line-height: 1.5;
1267
+ color: var(--text);
1268
+ }
1269
+
1270
+ /* Responsive */
1271
+ @media (max-width: 768px) {
1272
+ .search-bar input { width: 200px; }
1273
+ nav { flex-wrap: wrap; }
1274
+ .stats { grid-template-columns: 1fr 1fr; }
1275
+ header { flex-direction: column; gap: 12px; }
1276
+ .detail-fields .field { flex-direction: column; gap: 4px; }
1277
+ .detail-fields .field-key { width: auto; }
1278
+ }
1279
+
1280
+ @media (max-width: 480px) {
1281
+ .stats { grid-template-columns: 1fr; }
1282
+ .search-bar input { width: 160px; }
1283
+ }
1284
+
1285
+ /* ---- Rich Data Viewer ---- */
1286
+
1287
+ .data-viewer {
1288
+ margin-top: 8px;
1289
+ }
1290
+
1291
+ .data-viewer-header {
1292
+ display: flex;
1293
+ align-items: center;
1294
+ gap: 10px;
1295
+ padding: 8px 12px;
1296
+ background: var(--bg-hover);
1297
+ border: 1px solid var(--border);
1298
+ border-radius: var(--radius) var(--radius) 0 0;
1299
+ flex-wrap: wrap;
1300
+ }
1301
+
1302
+ .data-viewer + .data-viewer-header,
1303
+ .data-viewer .data-viewer-header + * {
1304
+ border-top: none;
1305
+ }
1306
+
1307
+ .data-ct-badge {
1308
+ display: inline-block;
1309
+ background: #2a2a3a;
1310
+ color: #9ca3af;
1311
+ font-size: 11px;
1312
+ font-weight: 600;
1313
+ padding: 2px 10px;
1314
+ border-radius: 4px;
1315
+ font-family: var(--mono);
1316
+ letter-spacing: 0.2px;
1317
+ }
1318
+
1319
+ [data-theme="light"] .data-ct-badge {
1320
+ background: #f3f4f6;
1321
+ color: #4b5563;
1322
+ }
1323
+
1324
+ .data-size {
1325
+ color: var(--text-muted);
1326
+ font-size: 12px;
1327
+ font-family: var(--mono);
1328
+ }
1329
+
1330
+ .data-download-btn {
1331
+ display: inline-flex;
1332
+ align-items: center;
1333
+ gap: 5px;
1334
+ background: var(--bg-card);
1335
+ border: 1px solid var(--border);
1336
+ color: var(--text);
1337
+ font-size: 12px;
1338
+ font-weight: 500;
1339
+ padding: 4px 12px;
1340
+ border-radius: var(--radius-sm);
1341
+ cursor: pointer;
1342
+ text-decoration: none;
1343
+ transition: all 0.15s;
1344
+ }
1345
+
1346
+ .data-download-btn:hover {
1347
+ border-color: var(--primary);
1348
+ color: var(--primary-light);
1349
+ background: var(--bg-hover);
1350
+ }
1351
+
1352
+ /* Image */
1353
+ .data-media-box {
1354
+ background: var(--bg-card);
1355
+ border: 1px solid var(--border);
1356
+ border-top: none;
1357
+ border-radius: 0 0 var(--radius) var(--radius);
1358
+ padding: 24px;
1359
+ display: flex;
1360
+ align-items: center;
1361
+ justify-content: center;
1362
+ }
1363
+
1364
+ .data-img {
1365
+ max-width: 100%;
1366
+ max-height: 500px;
1367
+ display: block;
1368
+ border-radius: var(--radius-sm);
1369
+ object-fit: contain;
1370
+ box-shadow: var(--shadow-lg);
1371
+ }
1372
+
1373
+ /* Video / Audio */
1374
+ .data-video-box {
1375
+ background: #0a0a14;
1376
+ border: 1px solid var(--border);
1377
+ border-top: none;
1378
+ border-radius: 0 0 var(--radius) var(--radius);
1379
+ padding: 24px;
1380
+ display: flex;
1381
+ align-items: center;
1382
+ justify-content: center;
1383
+ }
1384
+
1385
+ [data-theme="light"] .data-video-box {
1386
+ background: #f0f0f5;
1387
+ }
1388
+
1389
+ .data-video {
1390
+ max-width: 100%;
1391
+ max-height: 500px;
1392
+ display: block;
1393
+ border-radius: var(--radius-sm);
1394
+ box-shadow: var(--shadow-lg);
1395
+ }
1396
+
1397
+ /* Markdown */
1398
+ .data-markdown {
1399
+ background: var(--bg-card);
1400
+ border: 1px solid var(--border);
1401
+ border-top: none;
1402
+ border-radius: 0 0 var(--radius) var(--radius);
1403
+ padding: 20px 24px;
1404
+ font-size: 14px;
1405
+ line-height: 1.7;
1406
+ color: var(--text);
1407
+ }
1408
+
1409
+ .data-markdown h1 { font-size: 22px; font-weight: 700; margin: 16px 0 8px; border-bottom: 1px solid var(--border); padding-bottom: 6px; }
1410
+ .data-markdown h2 { font-size: 18px; font-weight: 600; margin: 14px 0 6px; }
1411
+ .data-markdown h3 { font-size: 15px; font-weight: 600; margin: 12px 0 4px; }
1412
+ .data-markdown h4, .data-markdown h5, .data-markdown h6 { font-size: 14px; font-weight: 600; margin: 10px 0 4px; }
1413
+ .data-markdown p { margin: 8px 0; }
1414
+ .data-markdown strong { font-weight: 600; }
1415
+ .data-markdown em { font-style: italic; }
1416
+ .data-markdown code { background: var(--bg-hover); padding: 2px 6px; border-radius: 3px; font-family: var(--mono); font-size: 13px; }
1417
+ .data-markdown a { color: var(--text-link); text-decoration: none; }
1418
+ .data-markdown a:hover { text-decoration: underline; }
1419
+ .data-markdown ul, .data-markdown ol { padding-left: 24px; margin: 8px 0; }
1420
+ .data-markdown li { margin: 2px 0; }
1421
+ .data-md-code {
1422
+ background: var(--bg-hover);
1423
+ border: 1px solid var(--border);
1424
+ border-radius: var(--radius-sm);
1425
+ padding: 12px 16px;
1426
+ margin: 8px 0;
1427
+ font-family: var(--mono);
1428
+ font-size: 13px;
1429
+ line-height: 1.5;
1430
+ overflow-x: auto;
1431
+ white-space: pre;
1432
+ }
1433
+
1434
+ .data-md-wrap {
1435
+ border: 1px solid var(--border);
1436
+ border-top: none;
1437
+ border-radius: 0 0 var(--radius) var(--radius);
1438
+ overflow: hidden;
1439
+ }
1440
+
1441
+ .data-md-wrap .data-markdown {
1442
+ border: none;
1443
+ border-radius: 0;
1444
+ }
1445
+
1446
+ .data-md-wrap .code-block-body {
1447
+ margin-top: 0;
1448
+ border: none;
1449
+ border-radius: 0;
1450
+ }
1451
+
1452
+ /* HTML iframe */
1453
+ .data-html-frame {
1454
+ width: 100%;
1455
+ min-height: 300px;
1456
+ border: 1px solid var(--border);
1457
+ border-top: none;
1458
+ border-radius: 0 0 var(--radius) var(--radius);
1459
+ background: #fff;
1460
+ }
1461
+
1462
+ /* JSON viewer */
1463
+ .data-json {
1464
+ background: var(--bg-card);
1465
+ border: 1px solid var(--border);
1466
+ border-top: none;
1467
+ border-radius: 0 0 var(--radius) var(--radius);
1468
+ padding: 14px 16px;
1469
+ font-family: var(--mono);
1470
+ font-size: 13px;
1471
+ line-height: 1.5;
1472
+ white-space: pre-wrap;
1473
+ word-break: break-all;
1474
+ max-height: 500px;
1475
+ overflow-y: auto;
1476
+ margin: 0;
1477
+ }
1478
+
1479
+ .json-indent { padding-left: 20px; }
1480
+ .json-key { color: #ff7b72; }
1481
+ .json-string { color: #a5d6ff; }
1482
+ .json-number { color: #79c0ff; }
1483
+ .json-bool { color: #d2a8ff; }
1484
+ .json-null { color: #8b949e; font-style: italic; }
1485
+
1486
+ [data-theme="light"] .json-key { color: #cf222e; }
1487
+ [data-theme="light"] .json-string { color: #0a3069; }
1488
+ [data-theme="light"] .json-number { color: #0550ae; }
1489
+ [data-theme="light"] .json-bool { color: #8250df; }
1490
+ [data-theme="light"] .json-null { color: #6e7781; }
1491
+
1492
+ /* Hex dump */
1493
+ .data-hex {
1494
+ background: var(--bg-card);
1495
+ border: 1px solid var(--border);
1496
+ border-top: none;
1497
+ border-radius: 0 0 var(--radius) var(--radius);
1498
+ padding: 12px 16px;
1499
+ font-family: var(--mono);
1500
+ font-size: 12px;
1501
+ line-height: 1.6;
1502
+ max-height: 400px;
1503
+ overflow-y: auto;
1504
+ }
1505
+
1506
+ .hex-row {
1507
+ display: flex;
1508
+ gap: 16px;
1509
+ white-space: pre;
1510
+ }
1511
+
1512
+ .hex-addr {
1513
+ color: var(--text-muted);
1514
+ user-select: none;
1515
+ }
1516
+
1517
+ .hex-bytes {
1518
+ color: var(--text);
1519
+ }
1520
+
1521
+ .hex-ascii {
1522
+ color: #4ade80;
1523
+ }
1524
+
1525
+ .hex-truncated {
1526
+ color: var(--text-muted);
1527
+ font-style: italic;
1528
+ margin-top: 4px;
1529
+ }
1530
+
1531
+ /* SVG viewer */
1532
+ .data-svg-wrap {
1533
+ border: 1px solid var(--border);
1534
+ border-top: none;
1535
+ border-radius: 0 0 var(--radius) var(--radius);
1536
+ overflow: hidden;
1537
+ }
1538
+
1539
+ .data-svg-render {
1540
+ background: var(--bg-card);
1541
+ padding: 20px;
1542
+ display: flex;
1543
+ align-items: center;
1544
+ justify-content: center;
1545
+ }
1546
+
1547
+ .data-svg-render svg {
1548
+ max-width: 100%;
1549
+ max-height: 400px;
1550
+ }
1551
+
1552
+ /* View mode tabs in data-viewer header */
1553
+ .data-view-tabs {
1554
+ display: flex;
1555
+ gap: 0;
1556
+ margin-left: 8px;
1557
+ border: 1px solid var(--border);
1558
+ border-radius: var(--radius-sm);
1559
+ overflow: hidden;
1560
+ }
1561
+
1562
+ .data-view-tab {
1563
+ background: transparent;
1564
+ border: none;
1565
+ border-right: 1px solid var(--border);
1566
+ color: var(--text-muted);
1567
+ font-size: 11px;
1568
+ font-weight: 600;
1569
+ padding: 4px 12px;
1570
+ cursor: pointer;
1571
+ transition: all 0.15s;
1572
+ text-transform: uppercase;
1573
+ letter-spacing: 0.3px;
1574
+ }
1575
+
1576
+ .data-view-tab:last-child {
1577
+ border-right: none;
1578
+ }
1579
+
1580
+ .data-view-tab:hover {
1581
+ color: var(--text);
1582
+ background: var(--bg-hover);
1583
+ }
1584
+
1585
+ .data-view-tab.active {
1586
+ background: var(--primary);
1587
+ color: #fff;
1588
+ }
1589
+
1590
+ /* Bundle items */
1591
+ .bundle-items {
1592
+ margin-top: 16px;
1593
+ }
1594
+
1595
+ /* Data viewer code blocks inherit existing code-block-body but clip top radius */
1596
+ .data-viewer .code-block-body {
1597
+ margin-top: 0;
1598
+ border-top: none;
1599
+ border-radius: 0 0 var(--radius) var(--radius);
1600
+ }
1601
+
1602
+ .data-viewer .data-preview {
1603
+ margin-top: 0;
1604
+ border-top: none;
1605
+ border-radius: 0 0 var(--radius) var(--radius);
1606
+ }