bloby-bot 0.17.2

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 (1128) hide show
  1. package/README.md +593 -0
  2. package/bin/cli.js +1788 -0
  3. package/cli/commands/daemon.ts +31 -0
  4. package/cli/commands/init.ts +40 -0
  5. package/cli/commands/start.ts +91 -0
  6. package/cli/commands/tunnel.ts +175 -0
  7. package/cli/commands/update.ts +170 -0
  8. package/cli/core/base-adapter.ts +99 -0
  9. package/cli/core/cloudflared.ts +71 -0
  10. package/cli/core/config.ts +58 -0
  11. package/cli/core/os-detector.ts +31 -0
  12. package/cli/core/server.ts +87 -0
  13. package/cli/core/types.ts +15 -0
  14. package/cli/index.ts +72 -0
  15. package/cli/platforms/darwin.ts +110 -0
  16. package/cli/platforms/index.ts +20 -0
  17. package/cli/platforms/linux.ts +116 -0
  18. package/cli/platforms/win32.ts +20 -0
  19. package/cli/utils/ui.ts +24 -0
  20. package/components.json +20 -0
  21. package/dist-bloby/assets/bloby-CMybOOCK.js +37 -0
  22. package/dist-bloby/assets/globals-CCAaaNDA.css +2 -0
  23. package/dist-bloby/assets/globals-Eq8C57hc.js +18 -0
  24. package/dist-bloby/assets/onboard-J0aqq4XH.js +1 -0
  25. package/dist-bloby/bloby.html +28 -0
  26. package/dist-bloby/onboard.html +14 -0
  27. package/package.json +103 -0
  28. package/postcss.config.js +5 -0
  29. package/scripts/install +316 -0
  30. package/scripts/install.ps1 +351 -0
  31. package/scripts/install.sh +322 -0
  32. package/scripts/postinstall.js +137 -0
  33. package/shared/ai.ts +141 -0
  34. package/shared/config.ts +68 -0
  35. package/shared/logger.ts +13 -0
  36. package/shared/paths.ts +20 -0
  37. package/shared/relay.ts +148 -0
  38. package/supervisor/app-ws.js +200 -0
  39. package/supervisor/backend.ts +143 -0
  40. package/supervisor/bloby-agent.ts +299 -0
  41. package/supervisor/channels/manager.ts +618 -0
  42. package/supervisor/channels/types.ts +59 -0
  43. package/supervisor/channels/whatsapp.ts +436 -0
  44. package/supervisor/chat/ARCHITECTURE.md +89 -0
  45. package/supervisor/chat/OnboardWizard.tsx +2353 -0
  46. package/supervisor/chat/bloby-main.tsx +567 -0
  47. package/supervisor/chat/bloby.html +26 -0
  48. package/supervisor/chat/onboard-main.tsx +19 -0
  49. package/supervisor/chat/onboard.html +12 -0
  50. package/supervisor/chat/src/components/Chat/AudioBubble.tsx +117 -0
  51. package/supervisor/chat/src/components/Chat/ChatView.tsx +25 -0
  52. package/supervisor/chat/src/components/Chat/ImageLightbox.tsx +86 -0
  53. package/supervisor/chat/src/components/Chat/InputBar.tsx +508 -0
  54. package/supervisor/chat/src/components/Chat/MessageBubble.tsx +226 -0
  55. package/supervisor/chat/src/components/Chat/MessageList.tsx +126 -0
  56. package/supervisor/chat/src/components/Chat/TypingIndicator.tsx +47 -0
  57. package/supervisor/chat/src/components/LoginScreen.tsx +280 -0
  58. package/supervisor/chat/src/hooks/useBlobyChat.ts +266 -0
  59. package/supervisor/chat/src/hooks/useChat.ts +237 -0
  60. package/supervisor/chat/src/hooks/useSpeechRecognition.ts +137 -0
  61. package/supervisor/chat/src/lib/auth.ts +38 -0
  62. package/supervisor/chat/src/lib/ws-client.ts +126 -0
  63. package/supervisor/chat/src/styles/globals.css +116 -0
  64. package/supervisor/file-saver.ts +50 -0
  65. package/supervisor/index.ts +1537 -0
  66. package/supervisor/scheduler.ts +309 -0
  67. package/supervisor/tunnel.ts +156 -0
  68. package/supervisor/vite-dev.ts +72 -0
  69. package/supervisor/widget.js +441 -0
  70. package/tsconfig.json +20 -0
  71. package/vite.bloby.config.ts +43 -0
  72. package/vite.config.ts +68 -0
  73. package/worker/claude-auth.ts +282 -0
  74. package/worker/codex-auth.ts +199 -0
  75. package/worker/db.ts +198 -0
  76. package/worker/index.ts +886 -0
  77. package/worker/prompts/bloby-system-prompt.txt +739 -0
  78. package/workspace/.backend.log +1 -0
  79. package/workspace/.env +3 -0
  80. package/workspace/CRONS.json +1 -0
  81. package/workspace/MEMORY.md +0 -0
  82. package/workspace/MYHUMAN.md +0 -0
  83. package/workspace/MYSELF.md +20 -0
  84. package/workspace/PULSE.json +8 -0
  85. package/workspace/app.db +0 -0
  86. package/workspace/backend/index.ts +52 -0
  87. package/workspace/client/index.html +75 -0
  88. package/workspace/client/public/.gitkeep +0 -0
  89. package/workspace/client/public/arrow.png +0 -0
  90. package/workspace/client/public/bloby-badge.png +0 -0
  91. package/workspace/client/public/bloby-icon-192.png +0 -0
  92. package/workspace/client/public/bloby-icon-512.png +0 -0
  93. package/workspace/client/public/bloby.png +0 -0
  94. package/workspace/client/public/bloby_frame1.png +0 -0
  95. package/workspace/client/public/bloby_happy.mov +0 -0
  96. package/workspace/client/public/bloby_happy.webm +0 -0
  97. package/workspace/client/public/bloby_happy_reappearing.mov +0 -0
  98. package/workspace/client/public/bloby_happy_reappearing.webm +0 -0
  99. package/workspace/client/public/bloby_say_hi.mov +0 -0
  100. package/workspace/client/public/bloby_say_hi.webm +0 -0
  101. package/workspace/client/public/bloby_tilts.webm +0 -0
  102. package/workspace/client/public/icons/claude.png +0 -0
  103. package/workspace/client/public/icons/codex.png +0 -0
  104. package/workspace/client/public/icons/openai.svg +15 -0
  105. package/workspace/client/public/manifest.json +23 -0
  106. package/workspace/client/public/spritesheet.webp +0 -0
  107. package/workspace/client/public/sw.js +136 -0
  108. package/workspace/client/src/App.tsx +191 -0
  109. package/workspace/client/src/components/Dashboard/DashboardPage.tsx +134 -0
  110. package/workspace/client/src/components/ErrorBoundary.tsx +23 -0
  111. package/workspace/client/src/components/Layout/DashboardLayout.tsx +56 -0
  112. package/workspace/client/src/components/Layout/Footer.tsx +14 -0
  113. package/workspace/client/src/components/Layout/MobileNav.tsx +30 -0
  114. package/workspace/client/src/components/Layout/Sidebar.tsx +110 -0
  115. package/workspace/client/src/components/deleteme_onboarding/WorkspaceTour.tsx +104 -0
  116. package/workspace/client/src/components/deleteme_onboarding/tour-theme.css +75 -0
  117. package/workspace/client/src/components/ui/avatar.tsx +109 -0
  118. package/workspace/client/src/components/ui/badge.tsx +48 -0
  119. package/workspace/client/src/components/ui/button.tsx +64 -0
  120. package/workspace/client/src/components/ui/card.tsx +92 -0
  121. package/workspace/client/src/components/ui/dialog.tsx +156 -0
  122. package/workspace/client/src/components/ui/dropdown-menu.tsx +257 -0
  123. package/workspace/client/src/components/ui/input.tsx +21 -0
  124. package/workspace/client/src/components/ui/scroll-area.tsx +58 -0
  125. package/workspace/client/src/components/ui/select.tsx +190 -0
  126. package/workspace/client/src/components/ui/separator.tsx +28 -0
  127. package/workspace/client/src/components/ui/sheet.tsx +142 -0
  128. package/workspace/client/src/components/ui/skeleton.tsx +13 -0
  129. package/workspace/client/src/components/ui/switch.tsx +33 -0
  130. package/workspace/client/src/components/ui/tabs.tsx +89 -0
  131. package/workspace/client/src/components/ui/textarea.tsx +18 -0
  132. package/workspace/client/src/components/ui/tooltip.tsx +55 -0
  133. package/workspace/client/src/lib/utils.ts +6 -0
  134. package/workspace/client/src/main.tsx +20 -0
  135. package/workspace/client/src/styles/globals.css +119 -0
  136. package/workspace/node_modules/.package-lock.json +1248 -0
  137. package/workspace/node_modules/.vite/deps/_metadata.json +116 -0
  138. package/workspace/node_modules/.vite/deps/clsx.js +18 -0
  139. package/workspace/node_modules/.vite/deps/clsx.js.map +1 -0
  140. package/workspace/node_modules/.vite/deps/driver__js.js +581 -0
  141. package/workspace/node_modules/.vite/deps/driver__js.js.map +1 -0
  142. package/workspace/node_modules/.vite/deps/framer-motion.js +13761 -0
  143. package/workspace/node_modules/.vite/deps/framer-motion.js.map +1 -0
  144. package/workspace/node_modules/.vite/deps/lucide-react.js +34357 -0
  145. package/workspace/node_modules/.vite/deps/lucide-react.js.map +1 -0
  146. package/workspace/node_modules/.vite/deps/package.json +3 -0
  147. package/workspace/node_modules/.vite/deps/radix-ui.js +13835 -0
  148. package/workspace/node_modules/.vite/deps/radix-ui.js.map +1 -0
  149. package/workspace/node_modules/.vite/deps/react-3_O8oni9.js +799 -0
  150. package/workspace/node_modules/.vite/deps/react-3_O8oni9.js.map +1 -0
  151. package/workspace/node_modules/.vite/deps/react-dom.js +185 -0
  152. package/workspace/node_modules/.vite/deps/react-dom.js.map +1 -0
  153. package/workspace/node_modules/.vite/deps/react-dom_client.js +14384 -0
  154. package/workspace/node_modules/.vite/deps/react-dom_client.js.map +1 -0
  155. package/workspace/node_modules/.vite/deps/react-router.js +9785 -0
  156. package/workspace/node_modules/.vite/deps/react-router.js.map +1 -0
  157. package/workspace/node_modules/.vite/deps/react.js +2 -0
  158. package/workspace/node_modules/.vite/deps/react_jsx-dev-runtime.js +204 -0
  159. package/workspace/node_modules/.vite/deps/react_jsx-dev-runtime.js.map +1 -0
  160. package/workspace/node_modules/.vite/deps/react_jsx-runtime.js +209 -0
  161. package/workspace/node_modules/.vite/deps/react_jsx-runtime.js.map +1 -0
  162. package/workspace/node_modules/.vite/deps/recharts.js +34142 -0
  163. package/workspace/node_modules/.vite/deps/recharts.js.map +1 -0
  164. package/workspace/node_modules/.vite/deps/sonner.js +943 -0
  165. package/workspace/node_modules/.vite/deps/sonner.js.map +1 -0
  166. package/workspace/node_modules/.vite/deps/tailwind-merge.js +2025 -0
  167. package/workspace/node_modules/.vite/deps/tailwind-merge.js.map +1 -0
  168. package/workspace/node_modules/.vite/deps/use-sync-external-store.js +27 -0
  169. package/workspace/node_modules/.vite/deps/use-sync-external-store.js.map +1 -0
  170. package/workspace/node_modules/.vite/deps/use-sync-external-store_shim.js +75 -0
  171. package/workspace/node_modules/.vite/deps/use-sync-external-store_shim.js.map +1 -0
  172. package/workspace/node_modules/.vite/deps/zustand.js +49 -0
  173. package/workspace/node_modules/.vite/deps/zustand.js.map +1 -0
  174. package/workspace/node_modules/accepts/HISTORY.md +250 -0
  175. package/workspace/node_modules/accepts/LICENSE +23 -0
  176. package/workspace/node_modules/accepts/README.md +140 -0
  177. package/workspace/node_modules/accepts/index.js +238 -0
  178. package/workspace/node_modules/accepts/package.json +47 -0
  179. package/workspace/node_modules/base64-js/LICENSE +21 -0
  180. package/workspace/node_modules/base64-js/README.md +34 -0
  181. package/workspace/node_modules/base64-js/base64js.min.js +1 -0
  182. package/workspace/node_modules/base64-js/index.d.ts +3 -0
  183. package/workspace/node_modules/base64-js/index.js +150 -0
  184. package/workspace/node_modules/base64-js/package.json +47 -0
  185. package/workspace/node_modules/better-sqlite3/LICENSE +21 -0
  186. package/workspace/node_modules/better-sqlite3/README.md +99 -0
  187. package/workspace/node_modules/better-sqlite3/binding.gyp +38 -0
  188. package/workspace/node_modules/better-sqlite3/build/Release/better_sqlite3.node +0 -0
  189. package/workspace/node_modules/better-sqlite3/deps/common.gypi +68 -0
  190. package/workspace/node_modules/better-sqlite3/deps/copy.js +31 -0
  191. package/workspace/node_modules/better-sqlite3/deps/defines.gypi +41 -0
  192. package/workspace/node_modules/better-sqlite3/deps/download.sh +122 -0
  193. package/workspace/node_modules/better-sqlite3/deps/patches/1208.patch +15 -0
  194. package/workspace/node_modules/better-sqlite3/deps/sqlite3/sqlite3.c +265994 -0
  195. package/workspace/node_modules/better-sqlite3/deps/sqlite3/sqlite3.h +13968 -0
  196. package/workspace/node_modules/better-sqlite3/deps/sqlite3/sqlite3ext.h +730 -0
  197. package/workspace/node_modules/better-sqlite3/deps/sqlite3.gyp +80 -0
  198. package/workspace/node_modules/better-sqlite3/deps/test_extension.c +21 -0
  199. package/workspace/node_modules/better-sqlite3/lib/database.js +90 -0
  200. package/workspace/node_modules/better-sqlite3/lib/index.js +3 -0
  201. package/workspace/node_modules/better-sqlite3/lib/methods/aggregate.js +43 -0
  202. package/workspace/node_modules/better-sqlite3/lib/methods/backup.js +67 -0
  203. package/workspace/node_modules/better-sqlite3/lib/methods/function.js +31 -0
  204. package/workspace/node_modules/better-sqlite3/lib/methods/inspect.js +7 -0
  205. package/workspace/node_modules/better-sqlite3/lib/methods/pragma.js +12 -0
  206. package/workspace/node_modules/better-sqlite3/lib/methods/serialize.js +16 -0
  207. package/workspace/node_modules/better-sqlite3/lib/methods/table.js +189 -0
  208. package/workspace/node_modules/better-sqlite3/lib/methods/transaction.js +78 -0
  209. package/workspace/node_modules/better-sqlite3/lib/methods/wrappers.js +54 -0
  210. package/workspace/node_modules/better-sqlite3/lib/sqlite-error.js +20 -0
  211. package/workspace/node_modules/better-sqlite3/lib/util.js +12 -0
  212. package/workspace/node_modules/better-sqlite3/package.json +59 -0
  213. package/workspace/node_modules/better-sqlite3/src/addon.cpp +47 -0
  214. package/workspace/node_modules/better-sqlite3/src/better_sqlite3.cpp +74 -0
  215. package/workspace/node_modules/better-sqlite3/src/objects/backup.cpp +120 -0
  216. package/workspace/node_modules/better-sqlite3/src/objects/backup.hpp +36 -0
  217. package/workspace/node_modules/better-sqlite3/src/objects/database.cpp +417 -0
  218. package/workspace/node_modules/better-sqlite3/src/objects/database.hpp +103 -0
  219. package/workspace/node_modules/better-sqlite3/src/objects/statement-iterator.cpp +113 -0
  220. package/workspace/node_modules/better-sqlite3/src/objects/statement-iterator.hpp +50 -0
  221. package/workspace/node_modules/better-sqlite3/src/objects/statement.cpp +383 -0
  222. package/workspace/node_modules/better-sqlite3/src/objects/statement.hpp +58 -0
  223. package/workspace/node_modules/better-sqlite3/src/util/bind-map.cpp +73 -0
  224. package/workspace/node_modules/better-sqlite3/src/util/binder.cpp +193 -0
  225. package/workspace/node_modules/better-sqlite3/src/util/constants.cpp +172 -0
  226. package/workspace/node_modules/better-sqlite3/src/util/custom-aggregate.cpp +121 -0
  227. package/workspace/node_modules/better-sqlite3/src/util/custom-function.cpp +59 -0
  228. package/workspace/node_modules/better-sqlite3/src/util/custom-table.cpp +409 -0
  229. package/workspace/node_modules/better-sqlite3/src/util/data-converter.cpp +17 -0
  230. package/workspace/node_modules/better-sqlite3/src/util/data.cpp +194 -0
  231. package/workspace/node_modules/better-sqlite3/src/util/helpers.cpp +109 -0
  232. package/workspace/node_modules/better-sqlite3/src/util/macros.cpp +83 -0
  233. package/workspace/node_modules/better-sqlite3/src/util/query-macros.cpp +71 -0
  234. package/workspace/node_modules/better-sqlite3/src/util/row-builder.cpp +49 -0
  235. package/workspace/node_modules/bindings/LICENSE.md +22 -0
  236. package/workspace/node_modules/bindings/README.md +98 -0
  237. package/workspace/node_modules/bindings/bindings.js +221 -0
  238. package/workspace/node_modules/bindings/package.json +28 -0
  239. package/workspace/node_modules/bl/.travis.yml +17 -0
  240. package/workspace/node_modules/bl/BufferList.js +396 -0
  241. package/workspace/node_modules/bl/LICENSE.md +13 -0
  242. package/workspace/node_modules/bl/README.md +247 -0
  243. package/workspace/node_modules/bl/bl.js +84 -0
  244. package/workspace/node_modules/bl/package.json +37 -0
  245. package/workspace/node_modules/bl/test/convert.js +21 -0
  246. package/workspace/node_modules/bl/test/indexOf.js +492 -0
  247. package/workspace/node_modules/bl/test/isBufferList.js +32 -0
  248. package/workspace/node_modules/bl/test/test.js +869 -0
  249. package/workspace/node_modules/body-parser/LICENSE +23 -0
  250. package/workspace/node_modules/body-parser/README.md +494 -0
  251. package/workspace/node_modules/body-parser/index.js +71 -0
  252. package/workspace/node_modules/body-parser/lib/read.js +247 -0
  253. package/workspace/node_modules/body-parser/lib/types/json.js +158 -0
  254. package/workspace/node_modules/body-parser/lib/types/raw.js +42 -0
  255. package/workspace/node_modules/body-parser/lib/types/text.js +36 -0
  256. package/workspace/node_modules/body-parser/lib/types/urlencoded.js +142 -0
  257. package/workspace/node_modules/body-parser/lib/utils.js +98 -0
  258. package/workspace/node_modules/body-parser/package.json +52 -0
  259. package/workspace/node_modules/buffer/AUTHORS.md +70 -0
  260. package/workspace/node_modules/buffer/LICENSE +21 -0
  261. package/workspace/node_modules/buffer/README.md +410 -0
  262. package/workspace/node_modules/buffer/index.d.ts +186 -0
  263. package/workspace/node_modules/buffer/index.js +1817 -0
  264. package/workspace/node_modules/buffer/package.json +96 -0
  265. package/workspace/node_modules/bytes/History.md +97 -0
  266. package/workspace/node_modules/bytes/LICENSE +23 -0
  267. package/workspace/node_modules/bytes/Readme.md +152 -0
  268. package/workspace/node_modules/bytes/index.js +170 -0
  269. package/workspace/node_modules/bytes/package.json +42 -0
  270. package/workspace/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
  271. package/workspace/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  272. package/workspace/node_modules/call-bind-apply-helpers/.nycrc +9 -0
  273. package/workspace/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  274. package/workspace/node_modules/call-bind-apply-helpers/LICENSE +21 -0
  275. package/workspace/node_modules/call-bind-apply-helpers/README.md +62 -0
  276. package/workspace/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  277. package/workspace/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  278. package/workspace/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  279. package/workspace/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  280. package/workspace/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  281. package/workspace/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  282. package/workspace/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  283. package/workspace/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  284. package/workspace/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  285. package/workspace/node_modules/call-bind-apply-helpers/index.js +15 -0
  286. package/workspace/node_modules/call-bind-apply-helpers/package.json +85 -0
  287. package/workspace/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  288. package/workspace/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  289. package/workspace/node_modules/call-bind-apply-helpers/test/index.js +63 -0
  290. package/workspace/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  291. package/workspace/node_modules/call-bound/.eslintrc +13 -0
  292. package/workspace/node_modules/call-bound/.github/FUNDING.yml +12 -0
  293. package/workspace/node_modules/call-bound/.nycrc +9 -0
  294. package/workspace/node_modules/call-bound/CHANGELOG.md +42 -0
  295. package/workspace/node_modules/call-bound/LICENSE +21 -0
  296. package/workspace/node_modules/call-bound/README.md +53 -0
  297. package/workspace/node_modules/call-bound/index.d.ts +94 -0
  298. package/workspace/node_modules/call-bound/index.js +19 -0
  299. package/workspace/node_modules/call-bound/package.json +99 -0
  300. package/workspace/node_modules/call-bound/test/index.js +61 -0
  301. package/workspace/node_modules/call-bound/tsconfig.json +10 -0
  302. package/workspace/node_modules/chownr/LICENSE +15 -0
  303. package/workspace/node_modules/chownr/README.md +3 -0
  304. package/workspace/node_modules/chownr/chownr.js +167 -0
  305. package/workspace/node_modules/chownr/package.json +29 -0
  306. package/workspace/node_modules/content-disposition/HISTORY.md +72 -0
  307. package/workspace/node_modules/content-disposition/LICENSE +22 -0
  308. package/workspace/node_modules/content-disposition/README.md +142 -0
  309. package/workspace/node_modules/content-disposition/index.js +458 -0
  310. package/workspace/node_modules/content-disposition/package.json +43 -0
  311. package/workspace/node_modules/content-type/HISTORY.md +29 -0
  312. package/workspace/node_modules/content-type/LICENSE +22 -0
  313. package/workspace/node_modules/content-type/README.md +94 -0
  314. package/workspace/node_modules/content-type/index.js +225 -0
  315. package/workspace/node_modules/content-type/package.json +42 -0
  316. package/workspace/node_modules/cookie/LICENSE +24 -0
  317. package/workspace/node_modules/cookie/README.md +317 -0
  318. package/workspace/node_modules/cookie/SECURITY.md +25 -0
  319. package/workspace/node_modules/cookie/index.js +335 -0
  320. package/workspace/node_modules/cookie/package.json +44 -0
  321. package/workspace/node_modules/cookie-signature/History.md +70 -0
  322. package/workspace/node_modules/cookie-signature/LICENSE +22 -0
  323. package/workspace/node_modules/cookie-signature/Readme.md +23 -0
  324. package/workspace/node_modules/cookie-signature/index.js +47 -0
  325. package/workspace/node_modules/cookie-signature/package.json +24 -0
  326. package/workspace/node_modules/debug/LICENSE +20 -0
  327. package/workspace/node_modules/debug/README.md +481 -0
  328. package/workspace/node_modules/debug/package.json +64 -0
  329. package/workspace/node_modules/debug/src/browser.js +272 -0
  330. package/workspace/node_modules/debug/src/common.js +292 -0
  331. package/workspace/node_modules/debug/src/index.js +10 -0
  332. package/workspace/node_modules/debug/src/node.js +263 -0
  333. package/workspace/node_modules/decompress-response/index.d.ts +22 -0
  334. package/workspace/node_modules/decompress-response/index.js +58 -0
  335. package/workspace/node_modules/decompress-response/license +9 -0
  336. package/workspace/node_modules/decompress-response/package.json +56 -0
  337. package/workspace/node_modules/decompress-response/readme.md +48 -0
  338. package/workspace/node_modules/deep-extend/CHANGELOG.md +46 -0
  339. package/workspace/node_modules/deep-extend/LICENSE +20 -0
  340. package/workspace/node_modules/deep-extend/README.md +91 -0
  341. package/workspace/node_modules/deep-extend/index.js +1 -0
  342. package/workspace/node_modules/deep-extend/lib/deep-extend.js +150 -0
  343. package/workspace/node_modules/deep-extend/package.json +62 -0
  344. package/workspace/node_modules/depd/History.md +103 -0
  345. package/workspace/node_modules/depd/LICENSE +22 -0
  346. package/workspace/node_modules/depd/Readme.md +280 -0
  347. package/workspace/node_modules/depd/index.js +538 -0
  348. package/workspace/node_modules/depd/lib/browser/index.js +77 -0
  349. package/workspace/node_modules/depd/package.json +45 -0
  350. package/workspace/node_modules/detect-libc/LICENSE +201 -0
  351. package/workspace/node_modules/detect-libc/README.md +163 -0
  352. package/workspace/node_modules/detect-libc/index.d.ts +14 -0
  353. package/workspace/node_modules/detect-libc/lib/detect-libc.js +313 -0
  354. package/workspace/node_modules/detect-libc/lib/elf.js +39 -0
  355. package/workspace/node_modules/detect-libc/lib/filesystem.js +51 -0
  356. package/workspace/node_modules/detect-libc/lib/process.js +24 -0
  357. package/workspace/node_modules/detect-libc/package.json +44 -0
  358. package/workspace/node_modules/dunder-proto/.eslintrc +5 -0
  359. package/workspace/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  360. package/workspace/node_modules/dunder-proto/.nycrc +13 -0
  361. package/workspace/node_modules/dunder-proto/CHANGELOG.md +24 -0
  362. package/workspace/node_modules/dunder-proto/LICENSE +21 -0
  363. package/workspace/node_modules/dunder-proto/README.md +54 -0
  364. package/workspace/node_modules/dunder-proto/get.d.ts +5 -0
  365. package/workspace/node_modules/dunder-proto/get.js +30 -0
  366. package/workspace/node_modules/dunder-proto/package.json +76 -0
  367. package/workspace/node_modules/dunder-proto/set.d.ts +5 -0
  368. package/workspace/node_modules/dunder-proto/set.js +35 -0
  369. package/workspace/node_modules/dunder-proto/test/get.js +34 -0
  370. package/workspace/node_modules/dunder-proto/test/index.js +4 -0
  371. package/workspace/node_modules/dunder-proto/test/set.js +50 -0
  372. package/workspace/node_modules/dunder-proto/tsconfig.json +9 -0
  373. package/workspace/node_modules/ee-first/LICENSE +22 -0
  374. package/workspace/node_modules/ee-first/README.md +80 -0
  375. package/workspace/node_modules/ee-first/index.js +95 -0
  376. package/workspace/node_modules/ee-first/package.json +29 -0
  377. package/workspace/node_modules/encodeurl/LICENSE +22 -0
  378. package/workspace/node_modules/encodeurl/README.md +109 -0
  379. package/workspace/node_modules/encodeurl/index.js +60 -0
  380. package/workspace/node_modules/encodeurl/package.json +40 -0
  381. package/workspace/node_modules/end-of-stream/LICENSE +21 -0
  382. package/workspace/node_modules/end-of-stream/README.md +54 -0
  383. package/workspace/node_modules/end-of-stream/index.js +96 -0
  384. package/workspace/node_modules/end-of-stream/package.json +37 -0
  385. package/workspace/node_modules/es-define-property/.eslintrc +13 -0
  386. package/workspace/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  387. package/workspace/node_modules/es-define-property/.nycrc +9 -0
  388. package/workspace/node_modules/es-define-property/CHANGELOG.md +29 -0
  389. package/workspace/node_modules/es-define-property/LICENSE +21 -0
  390. package/workspace/node_modules/es-define-property/README.md +49 -0
  391. package/workspace/node_modules/es-define-property/index.d.ts +3 -0
  392. package/workspace/node_modules/es-define-property/index.js +14 -0
  393. package/workspace/node_modules/es-define-property/package.json +81 -0
  394. package/workspace/node_modules/es-define-property/test/index.js +56 -0
  395. package/workspace/node_modules/es-define-property/tsconfig.json +10 -0
  396. package/workspace/node_modules/es-errors/.eslintrc +5 -0
  397. package/workspace/node_modules/es-errors/.github/FUNDING.yml +12 -0
  398. package/workspace/node_modules/es-errors/CHANGELOG.md +40 -0
  399. package/workspace/node_modules/es-errors/LICENSE +21 -0
  400. package/workspace/node_modules/es-errors/README.md +55 -0
  401. package/workspace/node_modules/es-errors/eval.d.ts +3 -0
  402. package/workspace/node_modules/es-errors/eval.js +4 -0
  403. package/workspace/node_modules/es-errors/index.d.ts +3 -0
  404. package/workspace/node_modules/es-errors/index.js +4 -0
  405. package/workspace/node_modules/es-errors/package.json +80 -0
  406. package/workspace/node_modules/es-errors/range.d.ts +3 -0
  407. package/workspace/node_modules/es-errors/range.js +4 -0
  408. package/workspace/node_modules/es-errors/ref.d.ts +3 -0
  409. package/workspace/node_modules/es-errors/ref.js +4 -0
  410. package/workspace/node_modules/es-errors/syntax.d.ts +3 -0
  411. package/workspace/node_modules/es-errors/syntax.js +4 -0
  412. package/workspace/node_modules/es-errors/test/index.js +19 -0
  413. package/workspace/node_modules/es-errors/tsconfig.json +49 -0
  414. package/workspace/node_modules/es-errors/type.d.ts +3 -0
  415. package/workspace/node_modules/es-errors/type.js +4 -0
  416. package/workspace/node_modules/es-errors/uri.d.ts +3 -0
  417. package/workspace/node_modules/es-errors/uri.js +4 -0
  418. package/workspace/node_modules/es-object-atoms/.eslintrc +16 -0
  419. package/workspace/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  420. package/workspace/node_modules/es-object-atoms/CHANGELOG.md +37 -0
  421. package/workspace/node_modules/es-object-atoms/LICENSE +21 -0
  422. package/workspace/node_modules/es-object-atoms/README.md +63 -0
  423. package/workspace/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  424. package/workspace/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  425. package/workspace/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  426. package/workspace/node_modules/es-object-atoms/ToObject.js +10 -0
  427. package/workspace/node_modules/es-object-atoms/index.d.ts +3 -0
  428. package/workspace/node_modules/es-object-atoms/index.js +4 -0
  429. package/workspace/node_modules/es-object-atoms/isObject.d.ts +3 -0
  430. package/workspace/node_modules/es-object-atoms/isObject.js +6 -0
  431. package/workspace/node_modules/es-object-atoms/package.json +80 -0
  432. package/workspace/node_modules/es-object-atoms/test/index.js +38 -0
  433. package/workspace/node_modules/es-object-atoms/tsconfig.json +6 -0
  434. package/workspace/node_modules/escape-html/LICENSE +24 -0
  435. package/workspace/node_modules/escape-html/Readme.md +43 -0
  436. package/workspace/node_modules/escape-html/index.js +78 -0
  437. package/workspace/node_modules/escape-html/package.json +24 -0
  438. package/workspace/node_modules/etag/HISTORY.md +83 -0
  439. package/workspace/node_modules/etag/LICENSE +22 -0
  440. package/workspace/node_modules/etag/README.md +159 -0
  441. package/workspace/node_modules/etag/index.js +131 -0
  442. package/workspace/node_modules/etag/package.json +47 -0
  443. package/workspace/node_modules/expand-template/.travis.yml +6 -0
  444. package/workspace/node_modules/expand-template/LICENSE +21 -0
  445. package/workspace/node_modules/expand-template/README.md +43 -0
  446. package/workspace/node_modules/expand-template/index.js +26 -0
  447. package/workspace/node_modules/expand-template/package.json +29 -0
  448. package/workspace/node_modules/expand-template/test.js +67 -0
  449. package/workspace/node_modules/express/LICENSE +24 -0
  450. package/workspace/node_modules/express/Readme.md +276 -0
  451. package/workspace/node_modules/express/index.js +11 -0
  452. package/workspace/node_modules/express/lib/application.js +631 -0
  453. package/workspace/node_modules/express/lib/express.js +81 -0
  454. package/workspace/node_modules/express/lib/request.js +514 -0
  455. package/workspace/node_modules/express/lib/response.js +1053 -0
  456. package/workspace/node_modules/express/lib/utils.js +271 -0
  457. package/workspace/node_modules/express/lib/view.js +205 -0
  458. package/workspace/node_modules/express/package.json +99 -0
  459. package/workspace/node_modules/file-uri-to-path/.travis.yml +30 -0
  460. package/workspace/node_modules/file-uri-to-path/History.md +21 -0
  461. package/workspace/node_modules/file-uri-to-path/LICENSE +20 -0
  462. package/workspace/node_modules/file-uri-to-path/README.md +74 -0
  463. package/workspace/node_modules/file-uri-to-path/index.d.ts +2 -0
  464. package/workspace/node_modules/file-uri-to-path/index.js +66 -0
  465. package/workspace/node_modules/file-uri-to-path/package.json +32 -0
  466. package/workspace/node_modules/file-uri-to-path/test/test.js +24 -0
  467. package/workspace/node_modules/file-uri-to-path/test/tests.json +13 -0
  468. package/workspace/node_modules/finalhandler/HISTORY.md +239 -0
  469. package/workspace/node_modules/finalhandler/LICENSE +22 -0
  470. package/workspace/node_modules/finalhandler/README.md +150 -0
  471. package/workspace/node_modules/finalhandler/index.js +293 -0
  472. package/workspace/node_modules/finalhandler/package.json +47 -0
  473. package/workspace/node_modules/forwarded/HISTORY.md +21 -0
  474. package/workspace/node_modules/forwarded/LICENSE +22 -0
  475. package/workspace/node_modules/forwarded/README.md +57 -0
  476. package/workspace/node_modules/forwarded/index.js +90 -0
  477. package/workspace/node_modules/forwarded/package.json +45 -0
  478. package/workspace/node_modules/fresh/HISTORY.md +80 -0
  479. package/workspace/node_modules/fresh/LICENSE +23 -0
  480. package/workspace/node_modules/fresh/README.md +117 -0
  481. package/workspace/node_modules/fresh/index.js +136 -0
  482. package/workspace/node_modules/fresh/package.json +46 -0
  483. package/workspace/node_modules/fs-constants/LICENSE +21 -0
  484. package/workspace/node_modules/fs-constants/README.md +26 -0
  485. package/workspace/node_modules/fs-constants/browser.js +1 -0
  486. package/workspace/node_modules/fs-constants/index.js +1 -0
  487. package/workspace/node_modules/fs-constants/package.json +19 -0
  488. package/workspace/node_modules/function-bind/.eslintrc +21 -0
  489. package/workspace/node_modules/function-bind/.github/FUNDING.yml +12 -0
  490. package/workspace/node_modules/function-bind/.github/SECURITY.md +3 -0
  491. package/workspace/node_modules/function-bind/.nycrc +13 -0
  492. package/workspace/node_modules/function-bind/CHANGELOG.md +136 -0
  493. package/workspace/node_modules/function-bind/LICENSE +20 -0
  494. package/workspace/node_modules/function-bind/README.md +46 -0
  495. package/workspace/node_modules/function-bind/implementation.js +84 -0
  496. package/workspace/node_modules/function-bind/index.js +5 -0
  497. package/workspace/node_modules/function-bind/package.json +87 -0
  498. package/workspace/node_modules/function-bind/test/.eslintrc +9 -0
  499. package/workspace/node_modules/function-bind/test/index.js +252 -0
  500. package/workspace/node_modules/get-intrinsic/.eslintrc +42 -0
  501. package/workspace/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  502. package/workspace/node_modules/get-intrinsic/.nycrc +9 -0
  503. package/workspace/node_modules/get-intrinsic/CHANGELOG.md +186 -0
  504. package/workspace/node_modules/get-intrinsic/LICENSE +21 -0
  505. package/workspace/node_modules/get-intrinsic/README.md +71 -0
  506. package/workspace/node_modules/get-intrinsic/index.js +378 -0
  507. package/workspace/node_modules/get-intrinsic/package.json +97 -0
  508. package/workspace/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
  509. package/workspace/node_modules/get-proto/.eslintrc +10 -0
  510. package/workspace/node_modules/get-proto/.github/FUNDING.yml +12 -0
  511. package/workspace/node_modules/get-proto/.nycrc +9 -0
  512. package/workspace/node_modules/get-proto/CHANGELOG.md +21 -0
  513. package/workspace/node_modules/get-proto/LICENSE +21 -0
  514. package/workspace/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  515. package/workspace/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  516. package/workspace/node_modules/get-proto/README.md +50 -0
  517. package/workspace/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  518. package/workspace/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  519. package/workspace/node_modules/get-proto/index.d.ts +5 -0
  520. package/workspace/node_modules/get-proto/index.js +27 -0
  521. package/workspace/node_modules/get-proto/package.json +81 -0
  522. package/workspace/node_modules/get-proto/test/index.js +68 -0
  523. package/workspace/node_modules/get-proto/tsconfig.json +9 -0
  524. package/workspace/node_modules/github-from-package/.travis.yml +4 -0
  525. package/workspace/node_modules/github-from-package/LICENSE +18 -0
  526. package/workspace/node_modules/github-from-package/example/package.json +8 -0
  527. package/workspace/node_modules/github-from-package/example/url.js +3 -0
  528. package/workspace/node_modules/github-from-package/index.js +17 -0
  529. package/workspace/node_modules/github-from-package/package.json +30 -0
  530. package/workspace/node_modules/github-from-package/readme.markdown +53 -0
  531. package/workspace/node_modules/github-from-package/test/a.json +8 -0
  532. package/workspace/node_modules/github-from-package/test/b.json +5 -0
  533. package/workspace/node_modules/github-from-package/test/c.json +5 -0
  534. package/workspace/node_modules/github-from-package/test/d.json +7 -0
  535. package/workspace/node_modules/github-from-package/test/e.json +5 -0
  536. package/workspace/node_modules/github-from-package/test/url.js +19 -0
  537. package/workspace/node_modules/gopd/.eslintrc +16 -0
  538. package/workspace/node_modules/gopd/.github/FUNDING.yml +12 -0
  539. package/workspace/node_modules/gopd/CHANGELOG.md +45 -0
  540. package/workspace/node_modules/gopd/LICENSE +21 -0
  541. package/workspace/node_modules/gopd/README.md +40 -0
  542. package/workspace/node_modules/gopd/gOPD.d.ts +1 -0
  543. package/workspace/node_modules/gopd/gOPD.js +4 -0
  544. package/workspace/node_modules/gopd/index.d.ts +5 -0
  545. package/workspace/node_modules/gopd/index.js +15 -0
  546. package/workspace/node_modules/gopd/package.json +77 -0
  547. package/workspace/node_modules/gopd/test/index.js +36 -0
  548. package/workspace/node_modules/gopd/tsconfig.json +9 -0
  549. package/workspace/node_modules/has-symbols/.eslintrc +11 -0
  550. package/workspace/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  551. package/workspace/node_modules/has-symbols/.nycrc +9 -0
  552. package/workspace/node_modules/has-symbols/CHANGELOG.md +91 -0
  553. package/workspace/node_modules/has-symbols/LICENSE +21 -0
  554. package/workspace/node_modules/has-symbols/README.md +46 -0
  555. package/workspace/node_modules/has-symbols/index.d.ts +3 -0
  556. package/workspace/node_modules/has-symbols/index.js +14 -0
  557. package/workspace/node_modules/has-symbols/package.json +111 -0
  558. package/workspace/node_modules/has-symbols/shams.d.ts +3 -0
  559. package/workspace/node_modules/has-symbols/shams.js +45 -0
  560. package/workspace/node_modules/has-symbols/test/index.js +22 -0
  561. package/workspace/node_modules/has-symbols/test/shams/core-js.js +29 -0
  562. package/workspace/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
  563. package/workspace/node_modules/has-symbols/test/tests.js +58 -0
  564. package/workspace/node_modules/has-symbols/tsconfig.json +10 -0
  565. package/workspace/node_modules/hasown/.eslintrc +5 -0
  566. package/workspace/node_modules/hasown/.github/FUNDING.yml +12 -0
  567. package/workspace/node_modules/hasown/.nycrc +13 -0
  568. package/workspace/node_modules/hasown/CHANGELOG.md +40 -0
  569. package/workspace/node_modules/hasown/LICENSE +21 -0
  570. package/workspace/node_modules/hasown/README.md +40 -0
  571. package/workspace/node_modules/hasown/index.d.ts +3 -0
  572. package/workspace/node_modules/hasown/index.js +8 -0
  573. package/workspace/node_modules/hasown/package.json +92 -0
  574. package/workspace/node_modules/hasown/tsconfig.json +6 -0
  575. package/workspace/node_modules/http-errors/HISTORY.md +186 -0
  576. package/workspace/node_modules/http-errors/LICENSE +23 -0
  577. package/workspace/node_modules/http-errors/README.md +169 -0
  578. package/workspace/node_modules/http-errors/index.js +290 -0
  579. package/workspace/node_modules/http-errors/package.json +54 -0
  580. package/workspace/node_modules/iconv-lite/LICENSE +21 -0
  581. package/workspace/node_modules/iconv-lite/README.md +138 -0
  582. package/workspace/node_modules/iconv-lite/encodings/dbcs-codec.js +532 -0
  583. package/workspace/node_modules/iconv-lite/encodings/dbcs-data.js +185 -0
  584. package/workspace/node_modules/iconv-lite/encodings/index.js +23 -0
  585. package/workspace/node_modules/iconv-lite/encodings/internal.js +218 -0
  586. package/workspace/node_modules/iconv-lite/encodings/sbcs-codec.js +75 -0
  587. package/workspace/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  588. package/workspace/node_modules/iconv-lite/encodings/sbcs-data.js +178 -0
  589. package/workspace/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  590. package/workspace/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  591. package/workspace/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  592. package/workspace/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  593. package/workspace/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  594. package/workspace/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  595. package/workspace/node_modules/iconv-lite/encodings/tables/gbk-added.json +56 -0
  596. package/workspace/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  597. package/workspace/node_modules/iconv-lite/encodings/utf16.js +187 -0
  598. package/workspace/node_modules/iconv-lite/encodings/utf32.js +307 -0
  599. package/workspace/node_modules/iconv-lite/encodings/utf7.js +283 -0
  600. package/workspace/node_modules/iconv-lite/lib/bom-handling.js +48 -0
  601. package/workspace/node_modules/iconv-lite/lib/helpers/merge-exports.js +13 -0
  602. package/workspace/node_modules/iconv-lite/lib/index.d.ts +129 -0
  603. package/workspace/node_modules/iconv-lite/lib/index.js +182 -0
  604. package/workspace/node_modules/iconv-lite/lib/streams.js +105 -0
  605. package/workspace/node_modules/iconv-lite/package.json +70 -0
  606. package/workspace/node_modules/iconv-lite/types/encodings.d.ts +423 -0
  607. package/workspace/node_modules/ieee754/LICENSE +11 -0
  608. package/workspace/node_modules/ieee754/README.md +51 -0
  609. package/workspace/node_modules/ieee754/index.d.ts +10 -0
  610. package/workspace/node_modules/ieee754/index.js +85 -0
  611. package/workspace/node_modules/ieee754/package.json +52 -0
  612. package/workspace/node_modules/inherits/LICENSE +16 -0
  613. package/workspace/node_modules/inherits/README.md +42 -0
  614. package/workspace/node_modules/inherits/inherits.js +9 -0
  615. package/workspace/node_modules/inherits/inherits_browser.js +27 -0
  616. package/workspace/node_modules/inherits/package.json +29 -0
  617. package/workspace/node_modules/ini/LICENSE +15 -0
  618. package/workspace/node_modules/ini/README.md +102 -0
  619. package/workspace/node_modules/ini/ini.js +206 -0
  620. package/workspace/node_modules/ini/package.json +33 -0
  621. package/workspace/node_modules/ipaddr.js/LICENSE +19 -0
  622. package/workspace/node_modules/ipaddr.js/README.md +233 -0
  623. package/workspace/node_modules/ipaddr.js/ipaddr.min.js +1 -0
  624. package/workspace/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
  625. package/workspace/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
  626. package/workspace/node_modules/ipaddr.js/package.json +35 -0
  627. package/workspace/node_modules/is-promise/LICENSE +19 -0
  628. package/workspace/node_modules/is-promise/index.d.ts +2 -0
  629. package/workspace/node_modules/is-promise/index.js +6 -0
  630. package/workspace/node_modules/is-promise/index.mjs +3 -0
  631. package/workspace/node_modules/is-promise/package.json +30 -0
  632. package/workspace/node_modules/is-promise/readme.md +33 -0
  633. package/workspace/node_modules/math-intrinsics/.eslintrc +16 -0
  634. package/workspace/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  635. package/workspace/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  636. package/workspace/node_modules/math-intrinsics/LICENSE +21 -0
  637. package/workspace/node_modules/math-intrinsics/README.md +50 -0
  638. package/workspace/node_modules/math-intrinsics/abs.d.ts +1 -0
  639. package/workspace/node_modules/math-intrinsics/abs.js +4 -0
  640. package/workspace/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  641. package/workspace/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  642. package/workspace/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  643. package/workspace/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  644. package/workspace/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  645. package/workspace/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  646. package/workspace/node_modules/math-intrinsics/floor.d.ts +1 -0
  647. package/workspace/node_modules/math-intrinsics/floor.js +4 -0
  648. package/workspace/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  649. package/workspace/node_modules/math-intrinsics/isFinite.js +12 -0
  650. package/workspace/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  651. package/workspace/node_modules/math-intrinsics/isInteger.js +16 -0
  652. package/workspace/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  653. package/workspace/node_modules/math-intrinsics/isNaN.js +6 -0
  654. package/workspace/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  655. package/workspace/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  656. package/workspace/node_modules/math-intrinsics/max.d.ts +1 -0
  657. package/workspace/node_modules/math-intrinsics/max.js +4 -0
  658. package/workspace/node_modules/math-intrinsics/min.d.ts +1 -0
  659. package/workspace/node_modules/math-intrinsics/min.js +4 -0
  660. package/workspace/node_modules/math-intrinsics/mod.d.ts +3 -0
  661. package/workspace/node_modules/math-intrinsics/mod.js +9 -0
  662. package/workspace/node_modules/math-intrinsics/package.json +86 -0
  663. package/workspace/node_modules/math-intrinsics/pow.d.ts +1 -0
  664. package/workspace/node_modules/math-intrinsics/pow.js +4 -0
  665. package/workspace/node_modules/math-intrinsics/round.d.ts +1 -0
  666. package/workspace/node_modules/math-intrinsics/round.js +4 -0
  667. package/workspace/node_modules/math-intrinsics/sign.d.ts +3 -0
  668. package/workspace/node_modules/math-intrinsics/sign.js +11 -0
  669. package/workspace/node_modules/math-intrinsics/test/index.js +192 -0
  670. package/workspace/node_modules/math-intrinsics/tsconfig.json +3 -0
  671. package/workspace/node_modules/media-typer/HISTORY.md +50 -0
  672. package/workspace/node_modules/media-typer/LICENSE +22 -0
  673. package/workspace/node_modules/media-typer/README.md +93 -0
  674. package/workspace/node_modules/media-typer/index.js +143 -0
  675. package/workspace/node_modules/media-typer/package.json +33 -0
  676. package/workspace/node_modules/merge-descriptors/index.d.ts +11 -0
  677. package/workspace/node_modules/merge-descriptors/index.js +26 -0
  678. package/workspace/node_modules/merge-descriptors/license +11 -0
  679. package/workspace/node_modules/merge-descriptors/package.json +50 -0
  680. package/workspace/node_modules/merge-descriptors/readme.md +55 -0
  681. package/workspace/node_modules/mime-db/HISTORY.md +541 -0
  682. package/workspace/node_modules/mime-db/LICENSE +23 -0
  683. package/workspace/node_modules/mime-db/README.md +109 -0
  684. package/workspace/node_modules/mime-db/db.json +9342 -0
  685. package/workspace/node_modules/mime-db/index.js +12 -0
  686. package/workspace/node_modules/mime-db/package.json +56 -0
  687. package/workspace/node_modules/mime-types/HISTORY.md +428 -0
  688. package/workspace/node_modules/mime-types/LICENSE +23 -0
  689. package/workspace/node_modules/mime-types/README.md +126 -0
  690. package/workspace/node_modules/mime-types/index.js +211 -0
  691. package/workspace/node_modules/mime-types/mimeScore.js +57 -0
  692. package/workspace/node_modules/mime-types/package.json +49 -0
  693. package/workspace/node_modules/mimic-response/index.d.ts +17 -0
  694. package/workspace/node_modules/mimic-response/index.js +77 -0
  695. package/workspace/node_modules/mimic-response/license +9 -0
  696. package/workspace/node_modules/mimic-response/package.json +42 -0
  697. package/workspace/node_modules/mimic-response/readme.md +78 -0
  698. package/workspace/node_modules/minimist/.eslintrc +29 -0
  699. package/workspace/node_modules/minimist/.github/FUNDING.yml +12 -0
  700. package/workspace/node_modules/minimist/.nycrc +14 -0
  701. package/workspace/node_modules/minimist/CHANGELOG.md +298 -0
  702. package/workspace/node_modules/minimist/LICENSE +18 -0
  703. package/workspace/node_modules/minimist/README.md +121 -0
  704. package/workspace/node_modules/minimist/example/parse.js +4 -0
  705. package/workspace/node_modules/minimist/index.js +263 -0
  706. package/workspace/node_modules/minimist/package.json +75 -0
  707. package/workspace/node_modules/minimist/test/all_bool.js +34 -0
  708. package/workspace/node_modules/minimist/test/bool.js +177 -0
  709. package/workspace/node_modules/minimist/test/dash.js +43 -0
  710. package/workspace/node_modules/minimist/test/default_bool.js +37 -0
  711. package/workspace/node_modules/minimist/test/dotted.js +24 -0
  712. package/workspace/node_modules/minimist/test/kv_short.js +32 -0
  713. package/workspace/node_modules/minimist/test/long.js +33 -0
  714. package/workspace/node_modules/minimist/test/num.js +38 -0
  715. package/workspace/node_modules/minimist/test/parse.js +209 -0
  716. package/workspace/node_modules/minimist/test/parse_modified.js +11 -0
  717. package/workspace/node_modules/minimist/test/proto.js +64 -0
  718. package/workspace/node_modules/minimist/test/short.js +69 -0
  719. package/workspace/node_modules/minimist/test/stop_early.js +17 -0
  720. package/workspace/node_modules/minimist/test/unknown.js +104 -0
  721. package/workspace/node_modules/minimist/test/whitespace.js +10 -0
  722. package/workspace/node_modules/mkdirp-classic/LICENSE +21 -0
  723. package/workspace/node_modules/mkdirp-classic/README.md +18 -0
  724. package/workspace/node_modules/mkdirp-classic/index.js +98 -0
  725. package/workspace/node_modules/mkdirp-classic/package.json +18 -0
  726. package/workspace/node_modules/ms/index.js +162 -0
  727. package/workspace/node_modules/ms/license.md +21 -0
  728. package/workspace/node_modules/ms/package.json +38 -0
  729. package/workspace/node_modules/ms/readme.md +59 -0
  730. package/workspace/node_modules/napi-build-utils/.github/workflows/run-npm-tests.yml +31 -0
  731. package/workspace/node_modules/napi-build-utils/LICENSE +21 -0
  732. package/workspace/node_modules/napi-build-utils/README.md +52 -0
  733. package/workspace/node_modules/napi-build-utils/index.js +214 -0
  734. package/workspace/node_modules/napi-build-utils/index.md +0 -0
  735. package/workspace/node_modules/napi-build-utils/package.json +42 -0
  736. package/workspace/node_modules/negotiator/HISTORY.md +114 -0
  737. package/workspace/node_modules/negotiator/LICENSE +24 -0
  738. package/workspace/node_modules/negotiator/README.md +212 -0
  739. package/workspace/node_modules/negotiator/index.js +83 -0
  740. package/workspace/node_modules/negotiator/lib/charset.js +169 -0
  741. package/workspace/node_modules/negotiator/lib/encoding.js +205 -0
  742. package/workspace/node_modules/negotiator/lib/language.js +179 -0
  743. package/workspace/node_modules/negotiator/lib/mediaType.js +294 -0
  744. package/workspace/node_modules/negotiator/package.json +43 -0
  745. package/workspace/node_modules/node-abi/LICENSE +21 -0
  746. package/workspace/node_modules/node-abi/README.md +54 -0
  747. package/workspace/node_modules/node-abi/abi_registry.json +439 -0
  748. package/workspace/node_modules/node-abi/index.js +179 -0
  749. package/workspace/node_modules/node-abi/package.json +45 -0
  750. package/workspace/node_modules/object-inspect/.eslintrc +53 -0
  751. package/workspace/node_modules/object-inspect/.github/FUNDING.yml +12 -0
  752. package/workspace/node_modules/object-inspect/.nycrc +13 -0
  753. package/workspace/node_modules/object-inspect/CHANGELOG.md +424 -0
  754. package/workspace/node_modules/object-inspect/LICENSE +21 -0
  755. package/workspace/node_modules/object-inspect/example/all.js +23 -0
  756. package/workspace/node_modules/object-inspect/example/circular.js +6 -0
  757. package/workspace/node_modules/object-inspect/example/fn.js +5 -0
  758. package/workspace/node_modules/object-inspect/example/inspect.js +10 -0
  759. package/workspace/node_modules/object-inspect/index.js +544 -0
  760. package/workspace/node_modules/object-inspect/package-support.json +20 -0
  761. package/workspace/node_modules/object-inspect/package.json +105 -0
  762. package/workspace/node_modules/object-inspect/readme.markdown +84 -0
  763. package/workspace/node_modules/object-inspect/test/bigint.js +58 -0
  764. package/workspace/node_modules/object-inspect/test/browser/dom.js +15 -0
  765. package/workspace/node_modules/object-inspect/test/circular.js +16 -0
  766. package/workspace/node_modules/object-inspect/test/deep.js +12 -0
  767. package/workspace/node_modules/object-inspect/test/element.js +53 -0
  768. package/workspace/node_modules/object-inspect/test/err.js +48 -0
  769. package/workspace/node_modules/object-inspect/test/fakes.js +29 -0
  770. package/workspace/node_modules/object-inspect/test/fn.js +76 -0
  771. package/workspace/node_modules/object-inspect/test/global.js +17 -0
  772. package/workspace/node_modules/object-inspect/test/has.js +15 -0
  773. package/workspace/node_modules/object-inspect/test/holes.js +15 -0
  774. package/workspace/node_modules/object-inspect/test/indent-option.js +271 -0
  775. package/workspace/node_modules/object-inspect/test/inspect.js +139 -0
  776. package/workspace/node_modules/object-inspect/test/lowbyte.js +12 -0
  777. package/workspace/node_modules/object-inspect/test/number.js +58 -0
  778. package/workspace/node_modules/object-inspect/test/quoteStyle.js +26 -0
  779. package/workspace/node_modules/object-inspect/test/toStringTag.js +40 -0
  780. package/workspace/node_modules/object-inspect/test/undef.js +12 -0
  781. package/workspace/node_modules/object-inspect/test/values.js +261 -0
  782. package/workspace/node_modules/object-inspect/test-core-js.js +26 -0
  783. package/workspace/node_modules/object-inspect/util.inspect.js +1 -0
  784. package/workspace/node_modules/on-finished/HISTORY.md +98 -0
  785. package/workspace/node_modules/on-finished/LICENSE +23 -0
  786. package/workspace/node_modules/on-finished/README.md +162 -0
  787. package/workspace/node_modules/on-finished/index.js +234 -0
  788. package/workspace/node_modules/on-finished/package.json +39 -0
  789. package/workspace/node_modules/once/LICENSE +15 -0
  790. package/workspace/node_modules/once/README.md +79 -0
  791. package/workspace/node_modules/once/once.js +42 -0
  792. package/workspace/node_modules/once/package.json +33 -0
  793. package/workspace/node_modules/parseurl/HISTORY.md +58 -0
  794. package/workspace/node_modules/parseurl/LICENSE +24 -0
  795. package/workspace/node_modules/parseurl/README.md +133 -0
  796. package/workspace/node_modules/parseurl/index.js +158 -0
  797. package/workspace/node_modules/parseurl/package.json +40 -0
  798. package/workspace/node_modules/path-to-regexp/LICENSE +21 -0
  799. package/workspace/node_modules/path-to-regexp/Readme.md +224 -0
  800. package/workspace/node_modules/path-to-regexp/dist/index.d.ts +147 -0
  801. package/workspace/node_modules/path-to-regexp/dist/index.js +426 -0
  802. package/workspace/node_modules/path-to-regexp/dist/index.js.map +1 -0
  803. package/workspace/node_modules/path-to-regexp/package.json +64 -0
  804. package/workspace/node_modules/prebuild-install/CHANGELOG.md +131 -0
  805. package/workspace/node_modules/prebuild-install/CONTRIBUTING.md +6 -0
  806. package/workspace/node_modules/prebuild-install/LICENSE +21 -0
  807. package/workspace/node_modules/prebuild-install/README.md +163 -0
  808. package/workspace/node_modules/prebuild-install/asset.js +44 -0
  809. package/workspace/node_modules/prebuild-install/bin.js +78 -0
  810. package/workspace/node_modules/prebuild-install/download.js +142 -0
  811. package/workspace/node_modules/prebuild-install/error.js +14 -0
  812. package/workspace/node_modules/prebuild-install/help.txt +16 -0
  813. package/workspace/node_modules/prebuild-install/index.js +1 -0
  814. package/workspace/node_modules/prebuild-install/log.js +33 -0
  815. package/workspace/node_modules/prebuild-install/package.json +67 -0
  816. package/workspace/node_modules/prebuild-install/proxy.js +35 -0
  817. package/workspace/node_modules/prebuild-install/rc.js +64 -0
  818. package/workspace/node_modules/prebuild-install/util.js +143 -0
  819. package/workspace/node_modules/proxy-addr/HISTORY.md +161 -0
  820. package/workspace/node_modules/proxy-addr/LICENSE +22 -0
  821. package/workspace/node_modules/proxy-addr/README.md +139 -0
  822. package/workspace/node_modules/proxy-addr/index.js +327 -0
  823. package/workspace/node_modules/proxy-addr/package.json +47 -0
  824. package/workspace/node_modules/pump/.github/FUNDING.yml +2 -0
  825. package/workspace/node_modules/pump/.travis.yml +5 -0
  826. package/workspace/node_modules/pump/LICENSE +21 -0
  827. package/workspace/node_modules/pump/README.md +74 -0
  828. package/workspace/node_modules/pump/SECURITY.md +5 -0
  829. package/workspace/node_modules/pump/empty.js +1 -0
  830. package/workspace/node_modules/pump/index.js +86 -0
  831. package/workspace/node_modules/pump/package.json +30 -0
  832. package/workspace/node_modules/pump/test-browser.js +66 -0
  833. package/workspace/node_modules/pump/test-node.js +53 -0
  834. package/workspace/node_modules/qs/.editorconfig +46 -0
  835. package/workspace/node_modules/qs/.github/FUNDING.yml +12 -0
  836. package/workspace/node_modules/qs/.github/SECURITY.md +11 -0
  837. package/workspace/node_modules/qs/.github/THREAT_MODEL.md +78 -0
  838. package/workspace/node_modules/qs/.nycrc +13 -0
  839. package/workspace/node_modules/qs/CHANGELOG.md +806 -0
  840. package/workspace/node_modules/qs/LICENSE.md +29 -0
  841. package/workspace/node_modules/qs/README.md +758 -0
  842. package/workspace/node_modules/qs/dist/qs.js +141 -0
  843. package/workspace/node_modules/qs/eslint.config.mjs +56 -0
  844. package/workspace/node_modules/qs/lib/formats.js +23 -0
  845. package/workspace/node_modules/qs/lib/index.js +11 -0
  846. package/workspace/node_modules/qs/lib/parse.js +373 -0
  847. package/workspace/node_modules/qs/lib/stringify.js +356 -0
  848. package/workspace/node_modules/qs/lib/utils.js +342 -0
  849. package/workspace/node_modules/qs/package.json +94 -0
  850. package/workspace/node_modules/qs/test/empty-keys-cases.js +267 -0
  851. package/workspace/node_modules/qs/test/parse.js +1568 -0
  852. package/workspace/node_modules/qs/test/stringify.js +1310 -0
  853. package/workspace/node_modules/qs/test/utils.js +404 -0
  854. package/workspace/node_modules/range-parser/HISTORY.md +56 -0
  855. package/workspace/node_modules/range-parser/LICENSE +23 -0
  856. package/workspace/node_modules/range-parser/README.md +84 -0
  857. package/workspace/node_modules/range-parser/index.js +162 -0
  858. package/workspace/node_modules/range-parser/package.json +44 -0
  859. package/workspace/node_modules/raw-body/LICENSE +22 -0
  860. package/workspace/node_modules/raw-body/README.md +223 -0
  861. package/workspace/node_modules/raw-body/index.d.ts +85 -0
  862. package/workspace/node_modules/raw-body/index.js +336 -0
  863. package/workspace/node_modules/raw-body/package.json +46 -0
  864. package/workspace/node_modules/rc/LICENSE.APACHE2 +15 -0
  865. package/workspace/node_modules/rc/LICENSE.BSD +26 -0
  866. package/workspace/node_modules/rc/LICENSE.MIT +24 -0
  867. package/workspace/node_modules/rc/README.md +227 -0
  868. package/workspace/node_modules/rc/browser.js +7 -0
  869. package/workspace/node_modules/rc/cli.js +4 -0
  870. package/workspace/node_modules/rc/index.js +53 -0
  871. package/workspace/node_modules/rc/lib/utils.js +104 -0
  872. package/workspace/node_modules/rc/package.json +29 -0
  873. package/workspace/node_modules/rc/test/ini.js +16 -0
  874. package/workspace/node_modules/rc/test/nested-env-vars.js +50 -0
  875. package/workspace/node_modules/rc/test/test.js +59 -0
  876. package/workspace/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  877. package/workspace/node_modules/readable-stream/GOVERNANCE.md +136 -0
  878. package/workspace/node_modules/readable-stream/LICENSE +47 -0
  879. package/workspace/node_modules/readable-stream/README.md +106 -0
  880. package/workspace/node_modules/readable-stream/errors-browser.js +127 -0
  881. package/workspace/node_modules/readable-stream/errors.js +116 -0
  882. package/workspace/node_modules/readable-stream/experimentalWarning.js +17 -0
  883. package/workspace/node_modules/readable-stream/lib/_stream_duplex.js +126 -0
  884. package/workspace/node_modules/readable-stream/lib/_stream_passthrough.js +37 -0
  885. package/workspace/node_modules/readable-stream/lib/_stream_readable.js +1027 -0
  886. package/workspace/node_modules/readable-stream/lib/_stream_transform.js +190 -0
  887. package/workspace/node_modules/readable-stream/lib/_stream_writable.js +641 -0
  888. package/workspace/node_modules/readable-stream/lib/internal/streams/async_iterator.js +180 -0
  889. package/workspace/node_modules/readable-stream/lib/internal/streams/buffer_list.js +183 -0
  890. package/workspace/node_modules/readable-stream/lib/internal/streams/destroy.js +96 -0
  891. package/workspace/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +86 -0
  892. package/workspace/node_modules/readable-stream/lib/internal/streams/from-browser.js +3 -0
  893. package/workspace/node_modules/readable-stream/lib/internal/streams/from.js +52 -0
  894. package/workspace/node_modules/readable-stream/lib/internal/streams/pipeline.js +86 -0
  895. package/workspace/node_modules/readable-stream/lib/internal/streams/state.js +22 -0
  896. package/workspace/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  897. package/workspace/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  898. package/workspace/node_modules/readable-stream/package.json +68 -0
  899. package/workspace/node_modules/readable-stream/readable-browser.js +9 -0
  900. package/workspace/node_modules/readable-stream/readable.js +16 -0
  901. package/workspace/node_modules/router/HISTORY.md +228 -0
  902. package/workspace/node_modules/router/LICENSE +23 -0
  903. package/workspace/node_modules/router/README.md +416 -0
  904. package/workspace/node_modules/router/index.js +748 -0
  905. package/workspace/node_modules/router/lib/layer.js +247 -0
  906. package/workspace/node_modules/router/lib/route.js +242 -0
  907. package/workspace/node_modules/router/package.json +44 -0
  908. package/workspace/node_modules/safe-buffer/LICENSE +21 -0
  909. package/workspace/node_modules/safe-buffer/README.md +584 -0
  910. package/workspace/node_modules/safe-buffer/index.d.ts +187 -0
  911. package/workspace/node_modules/safe-buffer/index.js +65 -0
  912. package/workspace/node_modules/safe-buffer/package.json +51 -0
  913. package/workspace/node_modules/safer-buffer/LICENSE +21 -0
  914. package/workspace/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  915. package/workspace/node_modules/safer-buffer/Readme.md +156 -0
  916. package/workspace/node_modules/safer-buffer/dangerous.js +58 -0
  917. package/workspace/node_modules/safer-buffer/package.json +34 -0
  918. package/workspace/node_modules/safer-buffer/safer.js +77 -0
  919. package/workspace/node_modules/safer-buffer/tests.js +406 -0
  920. package/workspace/node_modules/semver/LICENSE +15 -0
  921. package/workspace/node_modules/semver/README.md +665 -0
  922. package/workspace/node_modules/semver/bin/semver.js +191 -0
  923. package/workspace/node_modules/semver/classes/comparator.js +143 -0
  924. package/workspace/node_modules/semver/classes/index.js +7 -0
  925. package/workspace/node_modules/semver/classes/range.js +557 -0
  926. package/workspace/node_modules/semver/classes/semver.js +333 -0
  927. package/workspace/node_modules/semver/functions/clean.js +8 -0
  928. package/workspace/node_modules/semver/functions/cmp.js +54 -0
  929. package/workspace/node_modules/semver/functions/coerce.js +62 -0
  930. package/workspace/node_modules/semver/functions/compare-build.js +9 -0
  931. package/workspace/node_modules/semver/functions/compare-loose.js +5 -0
  932. package/workspace/node_modules/semver/functions/compare.js +7 -0
  933. package/workspace/node_modules/semver/functions/diff.js +60 -0
  934. package/workspace/node_modules/semver/functions/eq.js +5 -0
  935. package/workspace/node_modules/semver/functions/gt.js +5 -0
  936. package/workspace/node_modules/semver/functions/gte.js +5 -0
  937. package/workspace/node_modules/semver/functions/inc.js +21 -0
  938. package/workspace/node_modules/semver/functions/lt.js +5 -0
  939. package/workspace/node_modules/semver/functions/lte.js +5 -0
  940. package/workspace/node_modules/semver/functions/major.js +5 -0
  941. package/workspace/node_modules/semver/functions/minor.js +5 -0
  942. package/workspace/node_modules/semver/functions/neq.js +5 -0
  943. package/workspace/node_modules/semver/functions/parse.js +18 -0
  944. package/workspace/node_modules/semver/functions/patch.js +5 -0
  945. package/workspace/node_modules/semver/functions/prerelease.js +8 -0
  946. package/workspace/node_modules/semver/functions/rcompare.js +5 -0
  947. package/workspace/node_modules/semver/functions/rsort.js +5 -0
  948. package/workspace/node_modules/semver/functions/satisfies.js +12 -0
  949. package/workspace/node_modules/semver/functions/sort.js +5 -0
  950. package/workspace/node_modules/semver/functions/valid.js +8 -0
  951. package/workspace/node_modules/semver/index.js +91 -0
  952. package/workspace/node_modules/semver/internal/constants.js +37 -0
  953. package/workspace/node_modules/semver/internal/debug.js +11 -0
  954. package/workspace/node_modules/semver/internal/identifiers.js +29 -0
  955. package/workspace/node_modules/semver/internal/lrucache.js +42 -0
  956. package/workspace/node_modules/semver/internal/parse-options.js +17 -0
  957. package/workspace/node_modules/semver/internal/re.js +223 -0
  958. package/workspace/node_modules/semver/package.json +78 -0
  959. package/workspace/node_modules/semver/preload.js +4 -0
  960. package/workspace/node_modules/semver/range.bnf +16 -0
  961. package/workspace/node_modules/semver/ranges/gtr.js +6 -0
  962. package/workspace/node_modules/semver/ranges/intersects.js +9 -0
  963. package/workspace/node_modules/semver/ranges/ltr.js +6 -0
  964. package/workspace/node_modules/semver/ranges/max-satisfying.js +27 -0
  965. package/workspace/node_modules/semver/ranges/min-satisfying.js +26 -0
  966. package/workspace/node_modules/semver/ranges/min-version.js +63 -0
  967. package/workspace/node_modules/semver/ranges/outside.js +82 -0
  968. package/workspace/node_modules/semver/ranges/simplify.js +49 -0
  969. package/workspace/node_modules/semver/ranges/subset.js +249 -0
  970. package/workspace/node_modules/semver/ranges/to-comparators.js +10 -0
  971. package/workspace/node_modules/semver/ranges/valid.js +13 -0
  972. package/workspace/node_modules/send/LICENSE +23 -0
  973. package/workspace/node_modules/send/README.md +317 -0
  974. package/workspace/node_modules/send/index.js +997 -0
  975. package/workspace/node_modules/send/package.json +63 -0
  976. package/workspace/node_modules/serve-static/LICENSE +25 -0
  977. package/workspace/node_modules/serve-static/README.md +253 -0
  978. package/workspace/node_modules/serve-static/index.js +208 -0
  979. package/workspace/node_modules/serve-static/package.json +44 -0
  980. package/workspace/node_modules/setprototypeof/LICENSE +13 -0
  981. package/workspace/node_modules/setprototypeof/README.md +31 -0
  982. package/workspace/node_modules/setprototypeof/index.d.ts +2 -0
  983. package/workspace/node_modules/setprototypeof/index.js +17 -0
  984. package/workspace/node_modules/setprototypeof/package.json +38 -0
  985. package/workspace/node_modules/setprototypeof/test/index.js +24 -0
  986. package/workspace/node_modules/side-channel/.editorconfig +9 -0
  987. package/workspace/node_modules/side-channel/.eslintrc +12 -0
  988. package/workspace/node_modules/side-channel/.github/FUNDING.yml +12 -0
  989. package/workspace/node_modules/side-channel/.nycrc +13 -0
  990. package/workspace/node_modules/side-channel/CHANGELOG.md +110 -0
  991. package/workspace/node_modules/side-channel/LICENSE +21 -0
  992. package/workspace/node_modules/side-channel/README.md +61 -0
  993. package/workspace/node_modules/side-channel/index.d.ts +14 -0
  994. package/workspace/node_modules/side-channel/index.js +43 -0
  995. package/workspace/node_modules/side-channel/package.json +85 -0
  996. package/workspace/node_modules/side-channel/test/index.js +104 -0
  997. package/workspace/node_modules/side-channel/tsconfig.json +9 -0
  998. package/workspace/node_modules/side-channel-list/.editorconfig +9 -0
  999. package/workspace/node_modules/side-channel-list/.eslintrc +11 -0
  1000. package/workspace/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
  1001. package/workspace/node_modules/side-channel-list/.nycrc +13 -0
  1002. package/workspace/node_modules/side-channel-list/CHANGELOG.md +15 -0
  1003. package/workspace/node_modules/side-channel-list/LICENSE +21 -0
  1004. package/workspace/node_modules/side-channel-list/README.md +62 -0
  1005. package/workspace/node_modules/side-channel-list/index.d.ts +13 -0
  1006. package/workspace/node_modules/side-channel-list/index.js +113 -0
  1007. package/workspace/node_modules/side-channel-list/list.d.ts +14 -0
  1008. package/workspace/node_modules/side-channel-list/package.json +77 -0
  1009. package/workspace/node_modules/side-channel-list/test/index.js +104 -0
  1010. package/workspace/node_modules/side-channel-list/tsconfig.json +9 -0
  1011. package/workspace/node_modules/side-channel-map/.editorconfig +9 -0
  1012. package/workspace/node_modules/side-channel-map/.eslintrc +11 -0
  1013. package/workspace/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
  1014. package/workspace/node_modules/side-channel-map/.nycrc +13 -0
  1015. package/workspace/node_modules/side-channel-map/CHANGELOG.md +22 -0
  1016. package/workspace/node_modules/side-channel-map/LICENSE +21 -0
  1017. package/workspace/node_modules/side-channel-map/README.md +62 -0
  1018. package/workspace/node_modules/side-channel-map/index.d.ts +15 -0
  1019. package/workspace/node_modules/side-channel-map/index.js +68 -0
  1020. package/workspace/node_modules/side-channel-map/package.json +80 -0
  1021. package/workspace/node_modules/side-channel-map/test/index.js +114 -0
  1022. package/workspace/node_modules/side-channel-map/tsconfig.json +9 -0
  1023. package/workspace/node_modules/side-channel-weakmap/.editorconfig +9 -0
  1024. package/workspace/node_modules/side-channel-weakmap/.eslintrc +12 -0
  1025. package/workspace/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
  1026. package/workspace/node_modules/side-channel-weakmap/.nycrc +13 -0
  1027. package/workspace/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
  1028. package/workspace/node_modules/side-channel-weakmap/LICENSE +21 -0
  1029. package/workspace/node_modules/side-channel-weakmap/README.md +62 -0
  1030. package/workspace/node_modules/side-channel-weakmap/index.d.ts +15 -0
  1031. package/workspace/node_modules/side-channel-weakmap/index.js +84 -0
  1032. package/workspace/node_modules/side-channel-weakmap/package.json +87 -0
  1033. package/workspace/node_modules/side-channel-weakmap/test/index.js +114 -0
  1034. package/workspace/node_modules/side-channel-weakmap/tsconfig.json +9 -0
  1035. package/workspace/node_modules/simple-concat/.travis.yml +3 -0
  1036. package/workspace/node_modules/simple-concat/LICENSE +20 -0
  1037. package/workspace/node_modules/simple-concat/README.md +44 -0
  1038. package/workspace/node_modules/simple-concat/index.js +15 -0
  1039. package/workspace/node_modules/simple-concat/package.json +47 -0
  1040. package/workspace/node_modules/simple-concat/test/basic.js +41 -0
  1041. package/workspace/node_modules/simple-get/.github/dependabot.yml +15 -0
  1042. package/workspace/node_modules/simple-get/.github/workflows/ci.yml +23 -0
  1043. package/workspace/node_modules/simple-get/LICENSE +20 -0
  1044. package/workspace/node_modules/simple-get/README.md +333 -0
  1045. package/workspace/node_modules/simple-get/index.js +108 -0
  1046. package/workspace/node_modules/simple-get/package.json +67 -0
  1047. package/workspace/node_modules/statuses/HISTORY.md +87 -0
  1048. package/workspace/node_modules/statuses/LICENSE +23 -0
  1049. package/workspace/node_modules/statuses/README.md +139 -0
  1050. package/workspace/node_modules/statuses/codes.json +65 -0
  1051. package/workspace/node_modules/statuses/index.js +146 -0
  1052. package/workspace/node_modules/statuses/package.json +49 -0
  1053. package/workspace/node_modules/string_decoder/LICENSE +48 -0
  1054. package/workspace/node_modules/string_decoder/README.md +47 -0
  1055. package/workspace/node_modules/string_decoder/lib/string_decoder.js +296 -0
  1056. package/workspace/node_modules/string_decoder/package.json +34 -0
  1057. package/workspace/node_modules/strip-json-comments/index.js +70 -0
  1058. package/workspace/node_modules/strip-json-comments/license +21 -0
  1059. package/workspace/node_modules/strip-json-comments/package.json +42 -0
  1060. package/workspace/node_modules/strip-json-comments/readme.md +64 -0
  1061. package/workspace/node_modules/tar-fs/.travis.yml +6 -0
  1062. package/workspace/node_modules/tar-fs/LICENSE +21 -0
  1063. package/workspace/node_modules/tar-fs/README.md +165 -0
  1064. package/workspace/node_modules/tar-fs/index.js +363 -0
  1065. package/workspace/node_modules/tar-fs/package.json +41 -0
  1066. package/workspace/node_modules/tar-fs/test/fixtures/a/hello.txt +1 -0
  1067. package/workspace/node_modules/tar-fs/test/fixtures/b/a/test.txt +1 -0
  1068. package/workspace/node_modules/tar-fs/test/fixtures/d/file1 +0 -0
  1069. package/workspace/node_modules/tar-fs/test/fixtures/d/file2 +0 -0
  1070. package/workspace/node_modules/tar-fs/test/fixtures/d/sub-dir/file5 +0 -0
  1071. package/workspace/node_modules/tar-fs/test/fixtures/d/sub-files/file3 +0 -0
  1072. package/workspace/node_modules/tar-fs/test/fixtures/d/sub-files/file4 +0 -0
  1073. package/workspace/node_modules/tar-fs/test/fixtures/e/directory/.ignore +0 -0
  1074. package/workspace/node_modules/tar-fs/test/fixtures/e/file +0 -0
  1075. package/workspace/node_modules/tar-fs/test/fixtures/invalid.tar +0 -0
  1076. package/workspace/node_modules/tar-fs/test/index.js +346 -0
  1077. package/workspace/node_modules/tar-stream/LICENSE +21 -0
  1078. package/workspace/node_modules/tar-stream/README.md +168 -0
  1079. package/workspace/node_modules/tar-stream/extract.js +257 -0
  1080. package/workspace/node_modules/tar-stream/headers.js +295 -0
  1081. package/workspace/node_modules/tar-stream/index.js +2 -0
  1082. package/workspace/node_modules/tar-stream/pack.js +255 -0
  1083. package/workspace/node_modules/tar-stream/package.json +58 -0
  1084. package/workspace/node_modules/tar-stream/sandbox.js +11 -0
  1085. package/workspace/node_modules/toidentifier/HISTORY.md +9 -0
  1086. package/workspace/node_modules/toidentifier/LICENSE +21 -0
  1087. package/workspace/node_modules/toidentifier/README.md +61 -0
  1088. package/workspace/node_modules/toidentifier/index.js +32 -0
  1089. package/workspace/node_modules/toidentifier/package.json +38 -0
  1090. package/workspace/node_modules/tunnel-agent/LICENSE +55 -0
  1091. package/workspace/node_modules/tunnel-agent/README.md +4 -0
  1092. package/workspace/node_modules/tunnel-agent/index.js +244 -0
  1093. package/workspace/node_modules/tunnel-agent/package.json +22 -0
  1094. package/workspace/node_modules/type-is/HISTORY.md +292 -0
  1095. package/workspace/node_modules/type-is/LICENSE +23 -0
  1096. package/workspace/node_modules/type-is/README.md +198 -0
  1097. package/workspace/node_modules/type-is/index.js +250 -0
  1098. package/workspace/node_modules/type-is/package.json +47 -0
  1099. package/workspace/node_modules/unpipe/HISTORY.md +4 -0
  1100. package/workspace/node_modules/unpipe/LICENSE +22 -0
  1101. package/workspace/node_modules/unpipe/README.md +43 -0
  1102. package/workspace/node_modules/unpipe/index.js +69 -0
  1103. package/workspace/node_modules/unpipe/package.json +27 -0
  1104. package/workspace/node_modules/util-deprecate/History.md +16 -0
  1105. package/workspace/node_modules/util-deprecate/LICENSE +24 -0
  1106. package/workspace/node_modules/util-deprecate/README.md +53 -0
  1107. package/workspace/node_modules/util-deprecate/browser.js +67 -0
  1108. package/workspace/node_modules/util-deprecate/node.js +6 -0
  1109. package/workspace/node_modules/util-deprecate/package.json +27 -0
  1110. package/workspace/node_modules/vary/HISTORY.md +39 -0
  1111. package/workspace/node_modules/vary/LICENSE +22 -0
  1112. package/workspace/node_modules/vary/README.md +101 -0
  1113. package/workspace/node_modules/vary/index.js +149 -0
  1114. package/workspace/node_modules/vary/package.json +43 -0
  1115. package/workspace/node_modules/wrappy/LICENSE +15 -0
  1116. package/workspace/node_modules/wrappy/README.md +36 -0
  1117. package/workspace/node_modules/wrappy/package.json +29 -0
  1118. package/workspace/node_modules/wrappy/wrappy.js +33 -0
  1119. package/workspace/package.json +9 -0
  1120. package/workspace/skills/backup skills/whatsapp/.claude-plugin/plugin.json +6 -0
  1121. package/workspace/skills/backup skills/whatsapp/SKILL.md +119 -0
  1122. package/workspace/skills/backup skills/whatsapp/skill.json +11 -0
  1123. package/workspace/skills/backup skills/whatsapp-clinic-secretary/.claude-plugin/plugin.json +6 -0
  1124. package/workspace/skills/backup skills/whatsapp-clinic-secretary/SCRIPT.md +154 -0
  1125. package/workspace/skills/backup skills/whatsapp-clinic-secretary/SKILL.md +132 -0
  1126. package/workspace/skills/backup skills/whatsapp-clinic-secretary/skill.json +12 -0
  1127. package/workspace/skills/backup skills/whatsapp-support/SCRIPT.md +172 -0
  1128. package/workspace/skills/backup skills/whatsapp-support/SKILL.md +21 -0
package/README.md ADDED
@@ -0,0 +1,593 @@
1
+ # Bloby
2
+
3
+ A self-hosted AI agent that runs on the user's machine with a full-stack workspace it can modify, a chat interface for remote control, and a relay system for public access via custom domains.
4
+
5
+ ---
6
+
7
+ ## System Overview
8
+
9
+ Bloby is three separate codebases working together:
10
+
11
+ 1. **Bloby Bot** (this repo) -- runs on the user's machine. Supervisor process, worker API, workspace app, chat UI.
12
+ 2. **Bloby Relay** (separate server at `api.bloby.bot`) -- optional cloud service that maps `username.bloby.bot` to the user's Cloudflare tunnel. Routes HTTP and WebSocket traffic. Only used with Quick Tunnels.
13
+ 3. **Cloudflare Tunnel** -- exposes `localhost:3000` to the internet. Two modes:
14
+ - **Quick Tunnel** -- zero-config, no account needed, random `*.trycloudflare.com` URL that changes on restart. Optionally paired with the relay for a permanent domain.
15
+ - **Named Tunnel** -- persistent URL with the user's own domain. Requires a Cloudflare account and DNS setup. No relay needed.
16
+
17
+ The user chooses their tunnel mode during `bloby init` via an interactive selector.
18
+
19
+ ---
20
+
21
+ ## Process Architecture
22
+
23
+ When `bloby start` runs, the CLI spawns a single supervisor process. The supervisor runs the worker API in-process, spawns the backend as a child process, and manages the full lifecycle:
24
+
25
+ ```
26
+ CLI (bin/cli.js)
27
+ |
28
+ spawns
29
+ v
30
+ Supervisor (supervisor/index.ts) port 3000 HTTP server + WebSocket + worker API (in-process)
31
+ |
32
+ +-- Worker routes (worker/index.ts) in-process Express API, SQLite, auth, conversations
33
+ +-- Vite Dev Server port 3002 Serves workspace/client with HMR
34
+ +-- Backend (workspace/backend/) port 3004 User's custom Express server (child process)
35
+ +-- cloudflared (tunnel) -- Exposes port 3000 to the internet (quick or named)
36
+ +-- Scheduler (supervisor/scheduler) -- PULSE + CRON job runner (in-process)
37
+ ```
38
+
39
+ Port allocation: base port (default 3000), Vite = base+2, backend = base+4.
40
+
41
+ The backend child process auto-restarts up to 3 times on crash (reset counter if alive >30s). The supervisor catches SIGINT/SIGTERM and tears everything down gracefully.
42
+
43
+ ---
44
+
45
+ ## Supervisor (supervisor/index.ts)
46
+
47
+ The supervisor is a raw `http.createServer` that routes every incoming request:
48
+
49
+ | Path | Target | Notes |
50
+ |---|---|---|
51
+ | `/bloby/widget.js` | Direct file serve | Chat bubble script, no-cache |
52
+ | `/sw.js`, `/bloby/sw.js` | Embedded service worker | PWA + push notification support |
53
+ | `/app/api/*` | Backend (port 3004) | Strips `/app/api` prefix before forwarding |
54
+ | `/api/*` | Worker Express app (in-process) | Auth middleware checks Bearer token on mutations |
55
+ | `/bloby/*` | Static files from `dist-bloby/` | Pre-built chat SPA. HTML: no-cache. Hashed assets: immutable, 1yr max-age |
56
+ | Everything else | Vite dev server (port 3002) | Dashboard + HMR |
57
+
58
+ WebSocket upgrades:
59
+ - `/bloby/ws` -- Bloby chat. Auth-gated via query param token. Handled by an in-process `WebSocketServer`.
60
+ - Everything else -- proxied to Vite dev server for HMR.
61
+
62
+ The supervisor also:
63
+ - Manages the Cloudflare tunnel lifecycle (start, stop, health watchdog every 30s) for both quick and named tunnels
64
+ - Registers with the relay and maintains heartbeats (quick tunnel mode only)
65
+ - Runs the Claude Agent SDK when users send chat messages
66
+ - Restarts the backend process when Claude edits workspace files
67
+ - Broadcasts `app:hmr-update` to all connected dashboard clients after file changes
68
+ - Watches `workspace/backend/` for `.ts/.js/.json` changes and auto-restarts the backend
69
+ - Watches workspace root for `.env` changes (backend restart), `.restart` trigger, and `.update` trigger (deferred bloby update)
70
+ - Runs the PULSE/CRON scheduler
71
+ - Serves an embedded service worker for PWA + push notifications
72
+
73
+ ### Auth Middleware
74
+
75
+ The supervisor validates Bearer tokens on `/api/*` POST/PUT/DELETE requests by calling the worker's `getSession()` database function directly (no HTTP round-trip). Token results are cached for 60 seconds. Auth-exempt routes (login, onboard, health, push, auth endpoints) skip this check.
76
+
77
+ The `/app/api/*` route has no auth -- the user's workspace backend handles its own authentication.
78
+
79
+ ---
80
+
81
+ ## Worker (worker/index.ts)
82
+
83
+ Express app that runs in-process within the supervisor (no separate child process). Owns the database and all platform API logic. The supervisor calls `createWorkerApp()` at startup, which initializes the database, VAPID keys, and file storage, then returns the Express app. All API responses set `Cache-Control: no-store, no-cache, must-revalidate` to prevent stale responses through the relay/CDN.
84
+
85
+ **Database:** `~/.bloby/memory.db` (SQLite via better-sqlite3, WAL mode)
86
+
87
+ Tables:
88
+ - `conversations` -- chat sessions (id, title, model, session_id, timestamps)
89
+ - `messages` -- individual messages (role, content, tokens_in, tokens_out, model, audio_data, attachments as JSON)
90
+ - `settings` -- key-value store (onboard config, provider, model, portal credentials, etc.)
91
+ - `sessions` -- auth tokens with 7-day expiry
92
+ - `push_subscriptions` -- Web Push endpoints with VAPID keys (endpoint, keys_p256dh, keys_auth)
93
+
94
+ Auto-migrations add missing columns on startup (session_id, audio_data, attachments).
95
+
96
+ Key endpoints:
97
+ - `/api/conversations` -- CRUD for conversations and messages (paginated with `before` cursor)
98
+ - `/api/settings` -- key-value read/write
99
+ - `/api/onboard` -- saves wizard configuration (provider, model, portal password, whisper key, names)
100
+ - `/api/onboard/status` -- returns current setup state (names, portal, whisper, provider, handle)
101
+ - `/api/portal/login` -- password auth (POST with JSON body or GET with Basic Auth header)
102
+ - `/api/portal/validate-token` -- session token validation (POST or GET)
103
+ - `/api/portal/verify-password` -- check password without creating session
104
+ - `/api/whisper/transcribe` -- audio-to-text via OpenAI Whisper API (10MB limit)
105
+ - `/api/handle/*` -- check availability, register, change relay handles
106
+ - `/api/context/current`, `/api/context/set`, `/api/context/clear` -- tracks which conversation is active
107
+ - `/api/auth/claude/*` -- Claude OAuth start, exchange, status
108
+ - `/api/auth/codex/*` -- OpenAI OAuth start, cancel, status
109
+ - `/api/push/*` -- VAPID public key, subscribe, unsubscribe, send notifications, status
110
+ - `/api/files/*` -- static file serving from attachment storage
111
+ - `/api/health` -- health check
112
+
113
+ Portal passwords are hashed with scrypt (random 16-byte salt, stored as `salt:hash`).
114
+
115
+ ---
116
+
117
+ ## Workspace
118
+
119
+ The workspace is a full-stack app template that Claude can freely modify. It lives at `workspace/` in the project and gets copied to `~/.bloby/workspace/` on first install.
120
+
121
+ ```
122
+ workspace/
123
+ client/ React + Vite + Tailwind dashboard
124
+ src/App.tsx Main app entry (error boundary, rebuild overlay, onboard iframe)
125
+ index.html PWA manifest, service worker registration, widget script
126
+ backend/
127
+ index.ts Express server template (reads .env, opens app.db)
128
+ .env Environment variables for the backend
129
+ app.db SQLite database for workspace data
130
+ MYSELF.md Agent identity and personality
131
+ MYHUMAN.md Everything the agent knows about the user
132
+ MEMORY.md Long-term curated knowledge
133
+ PULSE.json Periodic wake-up config (interval, quiet hours)
134
+ CRONS.json Scheduled tasks with cron expressions
135
+ memory/ Daily notes (YYYY-MM-DD.md files, append-only)
136
+ skills/ Plugin directories with .claude-plugin/plugin.json
137
+ MCP.json MCP server configuration (optional)
138
+ files/ Attachment storage (audio, images, documents)
139
+ ```
140
+
141
+ The backend runs on port 3004, accessed at `/app/api/*` through the supervisor proxy. The `/app/api` prefix is stripped before reaching the backend, so routes are defined as `/health` not `/app/api/health`.
142
+
143
+ The frontend is served by Vite with HMR. When Claude edits files, Vite picks up changes instantly for the frontend. The supervisor restarts the backend process after any file write by the agent.
144
+
145
+ The workspace is the only directory Claude is allowed to modify. The system prompt explicitly tells it never to touch `supervisor/`, `worker/`, `shared/`, or `bin/`.
146
+
147
+ ---
148
+
149
+ ## Agent Memory System
150
+
151
+ The agent has no persistent memory between sessions except through files in the workspace:
152
+
153
+ | File | Purpose |
154
+ |---|---|
155
+ | `MYSELF.md` | Agent identity, personality, operating manual. The agent's self-authored description of who it is. |
156
+ | `MYHUMAN.md` | Profile of the user -- preferences, context, everything the agent has learned about them. |
157
+ | `MEMORY.md` | Long-term curated knowledge. Distilled from daily notes into durable insights. |
158
+ | `memory/YYYY-MM-DD.md` | Daily notes. Raw, append-only log of events and observations for that day. |
159
+
160
+ All four are injected into the system prompt at query time by `bloby-agent.ts`. The agent reads and writes these files itself -- there's no external process managing them.
161
+
162
+ ---
163
+
164
+ ## Scheduler (supervisor/scheduler.ts)
165
+
166
+ The scheduler runs in-process within the supervisor, checking every 60 seconds.
167
+
168
+ ### PULSE
169
+
170
+ Periodic wake-ups configured in `workspace/PULSE.json`:
171
+
172
+ ```json
173
+ { "enabled": true, "intervalMinutes": 30, "quietHours": { "start": "23:00", "end": "07:00" } }
174
+ ```
175
+
176
+ When a pulse fires, the scheduler triggers the agent with a system-generated prompt. The agent can check in, review notes, or take proactive action. Quiet hours suppress pulses.
177
+
178
+ ### CRONS
179
+
180
+ Scheduled tasks configured in `workspace/CRONS.json`:
181
+
182
+ ```json
183
+ [{ "id": "...", "schedule": "0 9 * * *", "task": "Check the weather", "enabled": true, "oneShot": false }]
184
+ ```
185
+
186
+ Uses `cron-parser` to match cron expressions against the current minute. One-shot crons are auto-removed after firing.
187
+
188
+ When a cron or pulse fires:
189
+ 1. The scheduler calls `startBlobyAgentQuery` with the task
190
+ 2. It extracts `<Message>` blocks from the agent's response
191
+ 3. It sends push notifications for those messages
192
+ 4. If the agent used file tools (Write/Edit), the backend is restarted
193
+
194
+ ---
195
+
196
+ ## Skills & Plugins
197
+
198
+ The agent auto-discovers skills in `workspace/skills/`. Each skill is a folder containing `.claude-plugin/plugin.json`. These are loaded as tool plugins when the agent starts a query.
199
+
200
+ MCP servers can be configured in `workspace/MCP.json`. The agent loads them at query time and logs which servers are active.
201
+
202
+ ---
203
+
204
+ ## Web Push Notifications
205
+
206
+ The worker generates VAPID keys on first boot and stores them in settings. The chat SPA requests notification permission, subscribes via the Push API, and sends the subscription endpoint + keys to the worker.
207
+
208
+ When the scheduler (or any server-side event) needs to notify the user, it calls `POST /api/push/send` which fans out `web-push` notifications to all stored subscriptions. Expired subscriptions are auto-cleaned.
209
+
210
+ ---
211
+
212
+ ## Bloby Chat
213
+
214
+ The chat UI is a standalone React SPA built separately (`vite.bloby.config.ts` -> `dist-bloby/`). It runs inside an iframe injected by `widget.js` on the dashboard.
215
+
216
+ ### Why an iframe?
217
+
218
+ If Claude introduces a bug that crashes the dashboard, the chat stays alive. The user can still talk to Claude and ask for a fix. The chat and dashboard are completely isolated -- different React trees, different build outputs, different error boundaries.
219
+
220
+ ### Widget (supervisor/widget.js)
221
+
222
+ Vanilla JS that injects:
223
+ - A floating video bubble (60px, bottom-right corner, with Safari fallback image)
224
+ - A slide-out panel (480px wide, full screen on mobile) containing the iframe at `/bloby/`
225
+ - A backdrop for dismissal
226
+ - Keyboard dismiss (Escape key)
227
+
228
+ Communicates with the iframe via `postMessage`:
229
+ - `bloby:close` -- iframe requests panel close
230
+ - `bloby:install-app` -- iframe requests PWA install prompt
231
+ - `bloby:show-ios-install` -- iframe requests iOS-specific install modal
232
+ - `bloby:onboard-complete` -- iframe notifies onboarding finished, reloads bubble
233
+ - `bloby:rebuilding` -- agent started modifying files, show rebuild overlay
234
+ - `bloby:rebuilt` -- rebuild complete, dashboard should reload
235
+ - `bloby:build-error` -- build failed, show error overlay
236
+ - `bloby:hmr-update` -- supervisor notifies dashboard of file changes
237
+
238
+ Panel state persisted in localStorage (`bloby_widget_open`) to survive HMR reloads. Bubble hidden during onboarding.
239
+
240
+ ### Chat Protocol (WebSocket)
241
+
242
+ Client -> Server:
243
+ - `user:message` -- `{ content, conversationId?, attachments? }` where attachments are `{ type, name, mediaType, data(base64) }`
244
+ - `user:stop` -- abort current agent query
245
+ - `user:clear-context` -- clear conversation and agent session
246
+ - `whisper:transcribe` -- `{ audio: base64 }` (bypasses relay POST limitation)
247
+ - `settings:save` -- `{ ...settings }` (bypasses relay POST limitation)
248
+
249
+ Server -> Client:
250
+ - `bot:typing` -- agent started
251
+ - `bot:token` -- streamed text chunk
252
+ - `bot:tool` -- tool invocation (name, status)
253
+ - `bot:response` -- final complete response
254
+ - `bot:error` -- error message
255
+ - `bot:done` -- query complete, includes `usedFileTools` flag
256
+ - `chat:conversation-created` -- new conversation ID assigned
257
+ - `chat:sync` -- message from another connected client
258
+ - `chat:state` -- stream state on reconnect (catches up missed tokens)
259
+ - `chat:cleared` -- context was cleared
260
+ - `app:hmr-update` -- file changes detected, dashboard should reload
261
+
262
+ ### WebSocket Client (ws-client.ts)
263
+
264
+ Auto-reconnects with exponential backoff (1s -> 8s cap). Queues messages during disconnection. Sends heartbeat pings every 25 seconds. Auth token passed as query parameter on connect.
265
+
266
+ ### PWA Support
267
+
268
+ The chat SPA handles:
269
+ - `beforeinstallprompt` for Android PWA install
270
+ - iOS-specific install modal with step-by-step instructions
271
+ - Standalone mode detection
272
+ - Push notification subscription on first load
273
+
274
+ ---
275
+
276
+ ## Claude Agent SDK Integration (supervisor/bloby-agent.ts)
277
+
278
+ When the configured provider is Anthropic, chat messages are routed through the Claude Agent SDK instead of a raw API call.
279
+
280
+ - Runs with `permissionMode: bypassPermissions` -- full tool access, no confirmation prompts
281
+ - Working directory: `workspace/`
282
+ - Max 50 turns per query
283
+ - System prompt: Claude Code preset + custom addendum from `worker/prompts/bloby-system-prompt.txt`
284
+ - Sessions tracked in-memory (conversationId -> sessionId) for multi-turn context
285
+ - Memory files (MYSELF.md, MYHUMAN.md, MEMORY.md, PULSE.json, CRONS.json) injected into system prompt
286
+ - Skills auto-discovered from `workspace/skills/`
287
+ - MCP servers loaded from `workspace/MCP.json`
288
+ - File attachments encoded as base64 documents/images in the SDK prompt
289
+
290
+ The agent has access to all Claude Code tools (Read, Write, Edit, Bash, Grep, Glob, etc.). After a query completes, the supervisor checks if Write or Edit tools were used. If so, it restarts the backend and broadcasts an HMR update.
291
+
292
+ OAuth tokens are managed by `worker/claude-auth.ts` using PKCE flow against `claude.ai`. Tokens are stored in the macOS Keychain (primary) or `~/.claude/.credentials.json` (fallback). Refresh tokens are used to renew access tokens with a 5-minute expiry buffer.
293
+
294
+ For non-Anthropic providers (OpenAI, Ollama), the supervisor falls back to `ai.chat()` with simple message history -- no agent tools, no file access.
295
+
296
+ ---
297
+
298
+ ## Tunnel + Relay System
299
+
300
+ ### Problem
301
+
302
+ The user's machine is behind NAT. We need a public URL so they can access their bot from their phone.
303
+
304
+ ### Tunnel Modes
305
+
306
+ The user selects a tunnel mode during `bloby init`. The mode is stored in `~/.bloby/config.json` as `tunnel.mode`.
307
+
308
+ #### Quick Tunnel (default)
309
+
310
+ Zero configuration. No Cloudflare account needed.
311
+
312
+ ```
313
+ Phone browser
314
+ |
315
+ | https://bruno.bloby.bot (via relay, optional)
316
+ v
317
+ Bloby Relay (api.bloby.bot) Cloud server, maps username -> tunnel URL
318
+ |
319
+ | https://random-abc.trycloudflare.com
320
+ v
321
+ Cloudflare Quick Tunnel Ephemeral tunnel, changes on restart
322
+ |
323
+ | http://localhost:3000
324
+ v
325
+ Supervisor User's machine
326
+ ```
327
+
328
+ - Spawns: `cloudflared tunnel --url http://localhost:3000 --no-autoupdate`
329
+ - Extracts tunnel URL from stdout (regex match for `*.trycloudflare.com`)
330
+ - URL changes on every restart -- the relay provides the stable domain layer on top
331
+ - Optionally register with Bloby Relay for a permanent `my.bloby.bot/username` or `bloby.bot/username` URL
332
+
333
+ #### Named Tunnel
334
+
335
+ Persistent URL with the user's own domain. Requires a Cloudflare account + domain.
336
+
337
+ ```
338
+ Phone browser
339
+ |
340
+ | https://bot.mydomain.com
341
+ v
342
+ Cloudflare Named Tunnel Persistent tunnel, URL never changes
343
+ |
344
+ | http://localhost:3000
345
+ v
346
+ Supervisor User's machine
347
+ ```
348
+
349
+ - Setup via `bloby tunnel setup` (interactive: login, create tunnel, generate config, print CNAME instructions)
350
+ - Spawns: `cloudflared tunnel --config <configPath> run <name>`
351
+ - URL is the user's domain (from config), no stdout parsing needed
352
+ - No relay needed -- the user's domain is already permanent
353
+ - Requires a DNS CNAME record pointing to `<uuid>.cfargotunnel.com`
354
+
355
+ ### Cloudflare Tunnel Binary (supervisor/tunnel.ts)
356
+
357
+ - Auto-downloads `cloudflared` binary to `~/.bloby/bin/` on first run (validates minimum 10MB file size)
358
+ - Health check: HEAD request to tunnel URL with 5s timeout
359
+ - Watchdog runs every 30s, detects sleep/wake gaps (>60s between ticks), auto-restarts dead tunnels
360
+ - Quick tunnel restart: re-extracts new URL from stdout, updates relay if configured
361
+ - Named tunnel restart: restarts the process, URL doesn't change
362
+
363
+ ### Relay Server (separate codebase, Quick Tunnel only)
364
+
365
+ Node.js/Express + http-proxy + MongoDB. Hosted on Railway. Only used when the user opts into Quick Tunnel mode and registers a handle.
366
+
367
+ **Registration flow:**
368
+ 1. User picks a username during onboarding
369
+ 2. Bot calls `POST /api/register` with username + tier
370
+ 3. Relay stores tokenHash (SHA-256) in MongoDB, returns raw token + relay URL
371
+ 4. Bot stores token in `~/.bloby/config.json`
372
+ 5. Bot calls `PUT /api/tunnel` with its cloudflared URL
373
+ 6. Relay marks bot online, starts accepting proxied traffic
374
+
375
+ **Request proxying:**
376
+ 1. Request hits `bruno.bloby.bot`
377
+ 2. Subdomain middleware extracts username + tier from hostname
378
+ 3. MongoDB lookup returns the bot's tunnel URL
379
+ 4. `proxy.web(req, res, { target: tunnelUrl })` forwards everything -- headers, body, method
380
+ 5. Response streams back to the user's browser
381
+
382
+ **Presence:**
383
+ - Bot sends `POST /api/heartbeat` every 30 seconds with its tunnel URL
384
+ - Relay considers a bot stale if no heartbeat in 120 seconds
385
+ - Stale bots get a 503 offline page (auto-refreshes every 15s)
386
+ - On graceful shutdown, bot calls `POST /api/disconnect`
387
+
388
+ **Domain tiers:**
389
+ | Tier | Subdomain | Path shortcut | Cost |
390
+ |---|---|---|---|
391
+ | Premium | `bruno.bloby.bot` | `bloby.bot/bruno` | $5/mo |
392
+ | Free | `bruno.my.bloby.bot` | `my.bloby.bot/bruno` | Free |
393
+
394
+ Same username can exist on both tiers independently. Compound unique index on `username + tier`.
395
+
396
+ **WebSocket proxying:**
397
+ The relay listens for HTTP upgrade events outside of Express middleware. This is critical -- Express middleware (body parsing, CORS) must not touch WebSocket upgrades. The upgrade handler parses the subdomain, looks up the bot, and calls `proxy.ws()`.
398
+
399
+ ### Critical Constraint: POST Bodies Through the Relay
400
+
401
+ The relay's `express.json()` middleware must run AFTER the subdomain resolver, not before. If body parsing runs first, it consumes the request stream and `http-proxy` has nothing to forward. This was a real bug -- the fix was scoping `express.json()` to `/api` routes only, letting proxied traffic pass through with raw streams intact.
402
+
403
+ The Bloby chat has additional workarounds for this (sending settings and whisper data over WebSocket instead of POST), but with the relay fix these are no longer strictly necessary. They remain as defense-in-depth.
404
+
405
+ ---
406
+
407
+ ## Onboarding (supervisor/chat/OnboardWizard.tsx)
408
+
409
+ Multi-step wizard shown on first launch (inside the Bloby chat iframe):
410
+
411
+ 1. **Welcome** -- intro screen
412
+ 2. **Provider** -- choose Claude (Anthropic) or OpenAI Codex
413
+ 3. **Model** -- select specific model (Opus, Sonnet, Haiku / GPT-5.x variants)
414
+ 4. **Auth** -- OAuth PKCE flow for Claude or OpenAI, or manual API key entry
415
+ 5. **Handle** -- register a public username with the relay (checks availability in real time)
416
+ 6. **Portal** -- set username/password for remote access
417
+ 7. **Whisper** -- optional voice transcription setup with OpenAI key
418
+ 8. **Done** -- completion screen
419
+
420
+ Settings are saved via WebSocket (`settings:save` message) to bypass relay POST limitations.
421
+
422
+ ---
423
+
424
+ ## CLI (bin/cli.js)
425
+
426
+ The CLI is the user-facing entry point. Commands:
427
+
428
+ | Command | Description |
429
+ |---|---|
430
+ | `bloby init` | First-time setup: interactive tunnel mode chooser (Quick or Named), creates config, installs cloudflared, boots server, optionally installs systemd daemon |
431
+ | `bloby start` | Boot the supervisor (or detect existing daemon and show status) |
432
+ | `bloby status` | Health check via `/api/health`, shows uptime, tunnel URL, and relay URL |
433
+ | `bloby update` | Downloads latest from npm registry, updates code directories, rebuilds UI, restarts daemon |
434
+ | `bloby tunnel` | Named tunnel management (subcommands below) |
435
+ | `bloby daemon` | Linux systemd management: install, start, stop, restart, status, logs, uninstall |
436
+
437
+ **`bloby tunnel` subcommands:**
438
+ | Subcommand | Description |
439
+ |---|---|
440
+ | `bloby tunnel setup` | Interactive named tunnel setup: login to Cloudflare, create tunnel, enter domain, generate config YAML, print CNAME instructions |
441
+ | `bloby tunnel status` | Show current tunnel mode and configuration |
442
+ | `bloby tunnel reset` | Switch back to quick tunnel mode |
443
+
444
+ **`bloby init` tunnel chooser:**
445
+
446
+ During init, the user is presented with an interactive arrow-key menu to choose their tunnel mode:
447
+
448
+ - **Quick Tunnel** (Easy and Fast) -- Random CloudFlare tunnel URL on every start/update. Optionally use Bloby Relay for a permanent `my.bloby.bot/username` handle (free) or a premium `bloby.bot/username` handle ($5 one-time).
449
+ - **Named Tunnel** (Advanced) -- Persistent URL with your own domain. Requires a Cloudflare account + domain. Use a subdomain like `bot.yourdomain.com` or the root domain.
450
+
451
+ If Named Tunnel is selected, `bloby init` immediately runs the named tunnel setup flow inline (same as `bloby tunnel setup`).
452
+
453
+ The CLI spawns the supervisor via `node --import tsx/esm supervisor/index.ts` and waits for readiness markers on stdout (`__TUNNEL_URL__`, `__RELAY_URL__`, `__VITE_WARM__`, `__READY__`, `__TUNNEL_FAILED__`) with a 45-second timeout.
454
+
455
+ On Linux, `bloby daemon` generates a systemd unit file that runs the supervisor as a service with auto-restart on failure.
456
+
457
+ ---
458
+
459
+ ## Installation
460
+
461
+ Two installation paths:
462
+
463
+ **Via curl (production):**
464
+ ```
465
+ curl -fsSL https://bloby.bot/install | sh
466
+ ```
467
+ The install script (`scripts/install.sh`) detects OS/arch, checks for Node.js >= 18 (or bundles Node 22.14.0), downloads the npm package, extracts to `~/.bloby/`, and adds `bloby` to PATH.
468
+
469
+ **Via npm (development):**
470
+ ```
471
+ npm install bloby
472
+ ```
473
+ The `postinstall` script (`scripts/postinstall.js`) copies code directories to `~/.bloby/`, runs `npm install --omit=dev` there, builds the chat UI if missing, and creates a `bloby` symlink.
474
+
475
+ Windows: `scripts/install.ps1` (PowerShell equivalent).
476
+
477
+ ---
478
+
479
+ ## Data Locations
480
+
481
+ | Path | Contents |
482
+ |---|---|
483
+ | `~/.bloby/config.json` | Port, username, AI provider, tunnel mode/config, relay token, tunnel URL |
484
+ | `~/.bloby/cloudflared-config.yml` | Named tunnel config (generated by `bloby tunnel setup`) |
485
+ | `~/.bloby/memory.db` | SQLite -- conversations, messages, settings, sessions, push subscriptions |
486
+ | `~/.bloby/bin/cloudflared` | Cloudflare tunnel binary |
487
+ | `~/.bloby/workspace/` | User's workspace copy (client, backend, memory files, skills, config) |
488
+ | `~/.codex/codedeck-auth.json` | OpenAI OAuth tokens |
489
+ | `~/.claude/.credentials.json` | Claude OAuth tokens (Linux/Windows) |
490
+ | macOS Keychain `Claude Code-credentials` | Claude OAuth tokens (macOS, source of truth) |
491
+
492
+ ---
493
+
494
+ ## File Map
495
+
496
+ ### Sacred (never modified by the agent)
497
+
498
+ ```
499
+ bin/cli.js CLI entry point, startup sequence, update logic, daemon management
500
+ supervisor/
501
+ index.ts HTTP server, request routing, WebSocket handler, process orchestration
502
+ backend.ts Backend process spawn/stop/restart
503
+ tunnel.ts Cloudflare tunnel lifecycle (quick + named), health watchdog
504
+ vite-dev.ts Vite dev server startup for dashboard HMR
505
+ bloby-agent.ts Claude Agent SDK wrapper, session management, memory injection
506
+ scheduler.ts PULSE + CRON scheduler, 60s tick, push notification dispatch
507
+ file-saver.ts Attachment storage (audio, images, documents)
508
+ widget.js Chat bubble + panel injected into dashboard
509
+ chat/
510
+ bloby-main.tsx Chat SPA entry -- auth, WS connection, push subscription, PWA
511
+ onboard-main.tsx Onboard SPA entry
512
+ OnboardWizard.tsx Multi-step setup wizard
513
+ ARCHITECTURE.md Network topology and relay workaround docs
514
+ src/
515
+ hooks/useChat.ts Base chat state management
516
+ hooks/useBlobyChat.ts Bloby-specific chat: DB persistence, sync, pagination, streaming
517
+ lib/ws-client.ts WebSocket client with reconnect + queue
518
+ lib/auth.ts Token storage and auth fetch wrapper
519
+ components/Chat/
520
+ ChatView.tsx Main chat container
521
+ InputBar.tsx Text input, file/camera attachments, voice recording
522
+ MessageBubble.tsx Markdown rendering, syntax highlighting, attachments
523
+ MessageList.tsx Paginated message history with infinite scroll
524
+ AudioBubble.tsx Audio player for voice messages
525
+ ImageLightbox.tsx Image viewer modal
526
+ TypingIndicator.tsx "Bot is typing..." animation
527
+ components/LoginScreen.tsx Portal login UI
528
+ worker/
529
+ index.ts Express API app -- all platform endpoints (runs in-process via createWorkerApp())
530
+ db.ts SQLite schema, CRUD operations, migrations
531
+ claude-auth.ts Claude OAuth PKCE flow, token refresh, Keychain integration
532
+ codex-auth.ts OpenAI OAuth PKCE flow, local callback server on port 1455
533
+ prompts/bloby-system-prompt.txt System prompt that constrains the agent
534
+ shared/
535
+ config.ts Load/save ~/.bloby/config.json
536
+ paths.ts All path constants (PKG_DIR, DATA_DIR, WORKSPACE_DIR)
537
+ relay.ts Relay API client (register, heartbeat, disconnect, tunnel update)
538
+ ai.ts AI provider abstraction (Anthropic, OpenAI, Ollama) with streaming
539
+ logger.ts Colored console logging with timestamps
540
+ scripts/
541
+ install.sh User-facing install script (curl-piped), Node bundling
542
+ install.ps1 Windows PowerShell installer
543
+ postinstall.js npm postinstall: copies files to ~/.bloby/, builds UI, creates symlink
544
+ ```
545
+
546
+ ### Workspace (agent-modifiable)
547
+
548
+ ```
549
+ workspace/
550
+ client/
551
+ index.html Dashboard HTML shell, PWA manifest, widget script tag
552
+ src/main.tsx React DOM entry
553
+ src/App.tsx Dashboard root -- error boundary, rebuild overlay
554
+ src/components/ Dashboard UI components
555
+ backend/
556
+ index.ts Express server template with .env loading and SQLite
557
+ .env Environment variables
558
+ app.db Workspace SQLite database
559
+ MYSELF.md Agent identity and personality
560
+ MYHUMAN.md User profile (agent-maintained)
561
+ MEMORY.md Long-term curated knowledge
562
+ PULSE.json Periodic wake-up configuration
563
+ CRONS.json Scheduled task definitions
564
+ memory/ Daily notes (YYYY-MM-DD.md)
565
+ skills/ Plugin directories (.claude-plugin/plugin.json)
566
+ MCP.json MCP server configuration (optional)
567
+ files/ Uploaded file storage (audio/, images/, documents/)
568
+ ```
569
+
570
+ ---
571
+
572
+ ## Key Design Decisions
573
+
574
+ **Why does the worker run in-process but the backend is a separate child process?**
575
+ The worker is trusted platform code (auth, database, API) -- it shares the same lifecycle as the supervisor. The backend runs user-editable workspace code that Claude can modify at any time. Keeping it as a separate process means a bug Claude introduces only crashes the backend, not the whole system. The supervisor and chat stay alive so the user can ask Claude to fix it. The backend also uses Node.js module hooks to enforce a sandbox boundary, preventing workspace code from importing packages outside `workspace/node_modules/`.
576
+
577
+ **Why serve the chat from pre-built static files instead of Vite?**
578
+ The chat must survive dashboard crashes. If Vite dies or the workspace frontend throws, the chat iframe loads from `dist-bloby/` which is just static files. No build process, no dev server dependency.
579
+
580
+ **Why WebSocket for chat instead of HTTP streaming?**
581
+ The relay couldn't reliably forward POST bodies (now fixed). WebSocket was the workaround. It also gives us bidirectional real-time communication, multi-device sync, and heartbeat detection for free.
582
+
583
+ **Why bypassPermissions on the agent?**
584
+ The whole point is that the user talks to Claude from their phone and Claude does whatever's needed. Confirmation prompts would require a terminal session that doesn't exist. The workspace directory boundary + the system prompt are the safety rails.
585
+
586
+ **Why two tunnel modes?**
587
+ Quick Tunnel is the default for simplicity -- zero configuration, no Cloudflare account needed. The tradeoff is the URL changes on restart, which is why the relay exists as an optional stable domain layer. Named Tunnel is for advanced users who want full control -- their own domain, no dependency on the relay, permanent URLs. Both modes are offered during `bloby init`.
588
+
589
+ **Why two Vite configs?**
590
+ `vite.config.ts` builds the workspace dashboard (user-facing app). `vite.bloby.config.ts` builds the Bloby chat SPA. They're separate apps with separate entry points, bundled independently. The chat is pre-built at publish time; the dashboard runs as a dev server with HMR.
591
+
592
+ **Why memory files instead of a database for agent memory?**
593
+ Files are the natural interface for the Claude Agent SDK -- it can read and write them with its built-in tools. No custom tool needed, no API integration. The agent manages its own memory with the same tools it uses to edit code.