piclaw 0.0.19 → 0.0.21

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 (270) hide show
  1. package/.output/nitro.json +1 -1
  2. package/.output/public/assets/defult-D5RLDUrI.js +1 -0
  3. package/.output/public/assets/{dist-CMBqBOCp.js → dist-BH_oa-kv.js} +1 -1
  4. package/.output/public/assets/index-7JvURuHy.js +204 -0
  5. package/.output/public/assets/index-K43slwjJ.css +1 -0
  6. package/.output/public/index.html +11 -2
  7. package/.output/server/_...path_.get.mjs +16 -0
  8. package/.output/server/_chunks/app.mjs +261 -181
  9. package/.output/server/_chunks/browser.mjs +4 -1
  10. package/.output/server/_chunks/config.mjs +4 -0
  11. package/.output/server/_chunks/db.mjs +32 -28
  12. package/.output/server/_chunks/device-bus.mjs +123 -0
  13. package/.output/server/_chunks/dummy.mjs +1 -1
  14. package/.output/server/_chunks/logger.mjs +23 -0
  15. package/.output/server/_chunks/login.mjs +1 -1
  16. package/.output/server/_chunks/notes.mjs +1 -3
  17. package/.output/server/_chunks/renderer-template.mjs +1 -1
  18. package/.output/server/_chunks/sandbox.mjs +217 -0
  19. package/.output/server/_chunks/server.mjs +2302 -122
  20. package/.output/server/_chunks/terminal.mjs +63 -8
  21. package/.output/server/_chunks/uploads.mjs +60 -0
  22. package/.output/server/_chunks/virtual.mjs +192 -54
  23. package/.output/server/_id_.delete.mjs +5 -2
  24. package/.output/server/_id_.patch.mjs +2 -0
  25. package/.output/server/_id_2.delete.mjs +8 -0
  26. package/.output/server/_jid_.delete.mjs +5 -2
  27. package/.output/server/_jid_.patch.mjs +37 -4
  28. package/.output/server/_jid_2.delete.mjs +5 -2
  29. package/.output/server/_libs/@acemir/cssom+[...].mjs +2269 -1137
  30. package/.output/server/_libs/@google/genai.mjs +337 -273
  31. package/.output/server/_libs/@mariozechner/pi-agent-core+[...].mjs +381 -2073
  32. package/.output/server/_libs/@mariozechner/pi-coding-agent+[...].mjs +231 -131
  33. package/.output/server/_libs/_.mjs +3 -2
  34. package/.output/server/_libs/_10.mjs +2 -4
  35. package/.output/server/_libs/_11.mjs +2 -4
  36. package/.output/server/_libs/_12.mjs +2 -3
  37. package/.output/server/_libs/_13.mjs +2 -3
  38. package/.output/server/_libs/_14.mjs +2 -4
  39. package/.output/server/_libs/_15.mjs +2 -4
  40. package/.output/server/_libs/_16.mjs +2 -3
  41. package/.output/server/_libs/_17.mjs +2 -4
  42. package/.output/server/_libs/_18.mjs +2 -2
  43. package/.output/server/_libs/_19.mjs +2 -2
  44. package/.output/server/_libs/_2.mjs +3 -3
  45. package/.output/server/_libs/_20.mjs +2 -2
  46. package/.output/server/_libs/_21.mjs +2 -2
  47. package/.output/server/_libs/_22.mjs +2 -2
  48. package/.output/server/_libs/_23.mjs +2 -2
  49. package/.output/server/_libs/_24.mjs +2 -2
  50. package/.output/server/_libs/_25.mjs +2 -2
  51. package/.output/server/_libs/_26.mjs +2 -2
  52. package/.output/server/_libs/_27.mjs +2 -2
  53. package/.output/server/_libs/_28.mjs +2 -2
  54. package/.output/server/_libs/_29.mjs +2 -2
  55. package/.output/server/_libs/_3.mjs +3 -3
  56. package/.output/server/_libs/_30.mjs +2 -2
  57. package/.output/server/_libs/_31.mjs +2 -2
  58. package/.output/server/_libs/_32.mjs +2 -2
  59. package/.output/server/_libs/_33.mjs +2 -2
  60. package/.output/server/_libs/_34.mjs +2 -2
  61. package/.output/server/_libs/_35.mjs +2 -2
  62. package/.output/server/_libs/_36.mjs +2 -2
  63. package/.output/server/_libs/_37.mjs +2 -2
  64. package/.output/server/_libs/_38.mjs +2 -2
  65. package/.output/server/_libs/_39.mjs +2 -2
  66. package/.output/server/_libs/_4.mjs +4 -3
  67. package/.output/server/_libs/_40.mjs +2 -2
  68. package/.output/server/_libs/_41.mjs +2 -2
  69. package/.output/server/_libs/_42.mjs +2 -2
  70. package/.output/server/_libs/_43.mjs +2 -2
  71. package/.output/server/_libs/_44.mjs +2 -2
  72. package/.output/server/_libs/_45.mjs +2 -2
  73. package/.output/server/_libs/_46.mjs +2 -2
  74. package/.output/server/_libs/_47.mjs +2 -2
  75. package/.output/server/_libs/_48.mjs +2 -2
  76. package/.output/server/_libs/_49.mjs +2 -2
  77. package/.output/server/_libs/_5.mjs +2 -3
  78. package/.output/server/_libs/_50.mjs +2 -2
  79. package/.output/server/_libs/_51.mjs +2 -2
  80. package/.output/server/_libs/_52.mjs +2 -2
  81. package/.output/server/_libs/_53.mjs +2 -2
  82. package/.output/server/_libs/_54.mjs +2 -2
  83. package/.output/server/_libs/_55.mjs +2 -2
  84. package/.output/server/_libs/_56.mjs +2 -2
  85. package/.output/server/_libs/_57.mjs +2 -2
  86. package/.output/server/_libs/_58.mjs +2 -2
  87. package/.output/server/_libs/_59.mjs +2 -2
  88. package/.output/server/_libs/_6.mjs +2 -3
  89. package/.output/server/_libs/_60.mjs +2 -2
  90. package/.output/server/_libs/_61.mjs +2 -2
  91. package/.output/server/_libs/_62.mjs +2 -2
  92. package/.output/server/_libs/_63.mjs +2 -2
  93. package/.output/server/_libs/_64.mjs +2 -2
  94. package/.output/server/_libs/_65.mjs +2 -2
  95. package/.output/server/_libs/_66.mjs +2 -2
  96. package/.output/server/_libs/_67.mjs +2 -2
  97. package/.output/server/_libs/_68.mjs +2 -2
  98. package/.output/server/_libs/_69.mjs +2 -2
  99. package/.output/server/_libs/_7.mjs +2 -5
  100. package/.output/server/_libs/_70.mjs +2 -2
  101. package/.output/server/_libs/_71.mjs +2 -2
  102. package/.output/server/_libs/_72.mjs +2 -2
  103. package/.output/server/_libs/_73.mjs +2 -2
  104. package/.output/server/_libs/_74.mjs +2 -2
  105. package/.output/server/_libs/_75.mjs +2 -2
  106. package/.output/server/_libs/_76.mjs +2 -2
  107. package/.output/server/_libs/_77.mjs +2 -2
  108. package/.output/server/_libs/_78.mjs +2 -2
  109. package/.output/server/_libs/_79.mjs +2 -2
  110. package/.output/server/_libs/_8.mjs +2 -3
  111. package/.output/server/_libs/_80.mjs +2 -2
  112. package/.output/server/_libs/_81.mjs +2 -2
  113. package/.output/server/_libs/_82.mjs +2 -2
  114. package/.output/server/_libs/_83.mjs +2 -2
  115. package/.output/server/_libs/_84.mjs +2 -2
  116. package/.output/server/_libs/_85.mjs +2 -2
  117. package/.output/server/_libs/_86.mjs +2 -2
  118. package/.output/server/_libs/_87.mjs +2 -2
  119. package/.output/server/_libs/_88.mjs +2 -2
  120. package/.output/server/_libs/_89.mjs +2 -2
  121. package/.output/server/_libs/_9.mjs +2 -4
  122. package/.output/server/_libs/_90.mjs +5 -2
  123. package/.output/server/_libs/_91.mjs +3 -2
  124. package/.output/server/_libs/_92.mjs +2 -2
  125. package/.output/server/_libs/_93.mjs +2 -2
  126. package/.output/server/_libs/_94.mjs +2 -2
  127. package/.output/server/_libs/agent-base.mjs +1 -1
  128. package/.output/server/_libs/cheerio+[...].mjs +1 -1
  129. package/.output/server/_libs/data-uri-to-buffer.mjs +2 -67
  130. package/.output/server/_libs/data-urls+[...].mjs +1 -1
  131. package/.output/server/_libs/diff.mjs +1 -1
  132. package/.output/server/_libs/exodus__bytes.mjs +99 -81
  133. package/.output/server/_libs/fetch-blob+node-domexception.mjs +1 -1
  134. package/.output/server/_libs/h3+rou3+srvx.mjs +34 -4
  135. package/.output/server/_libs/html-encoding-sniffer.mjs +1 -1
  136. package/.output/server/_libs/https-proxy-agent.mjs +2 -2
  137. package/.output/server/_libs/jsdom.mjs +1 -1
  138. package/.output/server/_libs/just-bash+[...].mjs +4676 -3916
  139. package/.output/server/_libs/mariozechner__jiti.mjs +1 -1
  140. package/.output/server/_libs/mariozechner__pi-ai.mjs +1472 -0
  141. package/.output/server/_libs/md4x.mjs +1 -1
  142. package/.output/server/_libs/mime.mjs +838 -1
  143. package/.output/server/_libs/node-fetch.mjs +4 -4
  144. package/.output/server/_libs/node-liblzma.mjs +1 -1
  145. package/.output/server/_libs/silvia-odwyer__photon-node.mjs +1 -1
  146. package/.output/server/_routes/api/auth/approve.mjs +2 -0
  147. package/.output/server/_routes/api/auth/revoke.mjs +2 -0
  148. package/.output/server/_routes/api/auth/status.mjs +25 -6
  149. package/.output/server/_routes/api/browser2.mjs +1 -1
  150. package/.output/server/_routes/api/config2.mjs +2 -0
  151. package/.output/server/_routes/api/device_events.mjs +36 -0
  152. package/.output/server/_routes/api/files/groups.mjs +1 -2
  153. package/.output/server/_routes/api/files/raw.mjs +1 -1
  154. package/.output/server/_routes/api/groups.mjs +5 -3
  155. package/.output/server/_routes/api/groups2.mjs +18 -6
  156. package/.output/server/_routes/api/health.mjs +1 -2
  157. package/.output/server/_routes/api/messages.mjs +7 -1
  158. package/.output/server/_routes/api/notes/delete.mjs +4 -1
  159. package/.output/server/_routes/api/notes/write.mjs +2 -0
  160. package/.output/server/_routes/api/ntfy/setup.mjs +8 -0
  161. package/.output/server/_routes/api/pi/apikey.mjs +3 -2
  162. package/.output/server/_routes/api/pi/apikey_providers.mjs +1 -2
  163. package/.output/server/_routes/api/pi/commands.mjs +13 -3
  164. package/.output/server/_routes/api/pi/login/events.mjs +0 -1
  165. package/.output/server/_routes/api/pi/login/respond.mjs +2 -1
  166. package/.output/server/_routes/api/pi/login.mjs +1 -2
  167. package/.output/server/_routes/api/pi/logout.mjs +2 -1
  168. package/.output/server/_routes/api/pi/models.mjs +1 -2
  169. package/.output/server/_routes/api/pi/models_config2.mjs +2 -0
  170. package/.output/server/_routes/api/pi/settings2.mjs +2 -0
  171. package/.output/server/_routes/api/pi/status.mjs +1 -2
  172. package/.output/server/_routes/api/proxy.mjs +19 -1
  173. package/.output/server/_routes/api/sandbox.mjs +26 -0
  174. package/.output/server/_routes/api/sandbox2.mjs +17 -0
  175. package/.output/server/_routes/api/send.mjs +26 -18
  176. package/.output/server/_routes/api/status.mjs +1 -3
  177. package/.output/server/_routes/api/stop.mjs +11 -0
  178. package/.output/server/_routes/api/store/plugins.mjs +75 -0
  179. package/.output/server/_routes/api/store/skills.mjs +11 -0
  180. package/.output/server/_routes/api/tasks2.mjs +3 -2
  181. package/.output/server/_routes/api/telegram/setup.mjs +5 -2
  182. package/.output/server/_routes/api/telegram/status.mjs +1 -2
  183. package/.output/server/_routes/api/terminal2.mjs +2 -1
  184. package/.output/server/_routes/api/tunnel/setup.mjs +4 -2
  185. package/.output/server/_runtime.mjs +1 -2
  186. package/.output/server/_utils.mjs +10 -2
  187. package/.output/server/index.mjs +1 -1
  188. package/.output/server/node_modules/amdefine/amdefine.js +301 -0
  189. package/.output/server/node_modules/amdefine/package.json +16 -0
  190. package/.output/server/node_modules/compressjs/lib/BWT.js +420 -0
  191. package/.output/server/node_modules/compressjs/lib/BWTC.js +234 -0
  192. package/.output/server/node_modules/compressjs/lib/BitStream.js +108 -0
  193. package/.output/server/node_modules/compressjs/lib/Bzip2.js +936 -0
  194. package/.output/server/node_modules/compressjs/lib/CRC32.js +105 -0
  195. package/.output/server/node_modules/compressjs/lib/Context1Model.js +56 -0
  196. package/.output/server/node_modules/compressjs/lib/DefSumModel.js +152 -0
  197. package/.output/server/node_modules/compressjs/lib/DeflateDistanceModel.js +55 -0
  198. package/.output/server/node_modules/compressjs/lib/Dmc.js +197 -0
  199. package/.output/server/node_modules/compressjs/lib/DummyRangeCoder.js +81 -0
  200. package/.output/server/node_modules/compressjs/lib/FenwickModel.js +194 -0
  201. package/.output/server/node_modules/compressjs/lib/Huffman.js +514 -0
  202. package/.output/server/node_modules/compressjs/lib/HuffmanAllocator.js +227 -0
  203. package/.output/server/node_modules/compressjs/lib/LogDistanceModel.js +46 -0
  204. package/.output/server/node_modules/compressjs/lib/Lzjb.js +300 -0
  205. package/.output/server/node_modules/compressjs/lib/LzjbR.js +241 -0
  206. package/.output/server/node_modules/compressjs/lib/Lzp3.js +273 -0
  207. package/.output/server/node_modules/compressjs/lib/MTFModel.js +208 -0
  208. package/.output/server/node_modules/compressjs/lib/NoModel.js +46 -0
  209. package/.output/server/node_modules/compressjs/lib/PPM.js +343 -0
  210. package/.output/server/node_modules/compressjs/lib/RangeCoder.js +238 -0
  211. package/.output/server/node_modules/compressjs/lib/Simple.js +111 -0
  212. package/.output/server/node_modules/compressjs/lib/Stream.js +53 -0
  213. package/.output/server/node_modules/compressjs/lib/Util.js +324 -0
  214. package/.output/server/node_modules/compressjs/lib/freeze.js +14 -0
  215. package/.output/server/node_modules/compressjs/main.js +29 -0
  216. package/.output/server/node_modules/compressjs/package.json +35 -0
  217. package/.output/server/package.json +2 -1
  218. package/README.md +10 -1
  219. package/lib/index.d.mts +1 -0
  220. package/lib/index.mjs +1 -0
  221. package/lib/piclaw.mjs +100 -0
  222. package/lib/utils.mjs +96 -0
  223. package/package.json +16 -11
  224. package/.output/public/assets/defult-CMO6TZ5a.js +0 -1
  225. package/.output/public/assets/index-jdnbJw-M.js +0 -204
  226. package/.output/public/assets/index-ooXrRwgl.css +0 -1
  227. package/.output/server/_chunks/commands.mjs +0 -282
  228. package/.output/server/_chunks/pi.mjs +0 -202
  229. package/.output/server/_chunks/session.mjs +0 -1114
  230. package/.output/server/_libs/@aws-crypto/crc32+[...].mjs +0 -299
  231. package/.output/server/_libs/@aws-sdk/client-bedrock-runtime+[...].mjs +0 -17828
  232. package/.output/server/_libs/@aws-sdk/credential-provider-http+[...].mjs +0 -122
  233. package/.output/server/_libs/@aws-sdk/credential-provider-ini+[...].mjs +0 -417
  234. package/.output/server/_libs/@aws-sdk/credential-provider-process+[...].mjs +0 -54
  235. package/.output/server/_libs/@aws-sdk/credential-provider-sso+[...].mjs +0 -1151
  236. package/.output/server/_libs/@aws-sdk/credential-provider-web-identity+[...].mjs +0 -50
  237. package/.output/server/_libs/@smithy/credential-provider-imds+[...].mjs +0 -369
  238. package/.output/server/_libs/@tootallnate/quickjs-emscripten+[...].mjs +0 -3011
  239. package/.output/server/_libs/_100.mjs +0 -2
  240. package/.output/server/_libs/_101.mjs +0 -2
  241. package/.output/server/_libs/_102.mjs +0 -5
  242. package/.output/server/_libs/_103.mjs +0 -3
  243. package/.output/server/_libs/_104.mjs +0 -2
  244. package/.output/server/_libs/_105.mjs +0 -3
  245. package/.output/server/_libs/_106.mjs +0 -2
  246. package/.output/server/_libs/_107.mjs +0 -2
  247. package/.output/server/_libs/_95.mjs +0 -2
  248. package/.output/server/_libs/_96.mjs +0 -2
  249. package/.output/server/_libs/_97.mjs +0 -2
  250. package/.output/server/_libs/_98.mjs +0 -2
  251. package/.output/server/_libs/_99.mjs +0 -2
  252. package/.output/server/_libs/amdefine.mjs +0 -188
  253. package/.output/server/_libs/ast-types.mjs +0 -2270
  254. package/.output/server/_libs/aws-sdk__nested-clients.mjs +0 -3141
  255. package/.output/server/_libs/basic-ftp.mjs +0 -1906
  256. package/.output/server/_libs/compressjs.mjs +0 -50
  257. package/.output/server/_libs/degenerator+[...].mjs +0 -9964
  258. package/.output/server/_libs/get-uri.mjs +0 -413
  259. package/.output/server/_libs/http-proxy-agent.mjs +0 -123
  260. package/.output/server/_libs/ip-address.mjs +0 -1423
  261. package/.output/server/_libs/lru-cache.mjs +0 -732
  262. package/.output/server/_libs/netmask.mjs +0 -139
  263. package/.output/server/_libs/pac-proxy-agent+[...].mjs +0 -3104
  264. package/.output/server/_libs/proxy-agent+proxy-from-env.mjs +0 -204
  265. package/.output/server/_libs/smithy__core.mjs +0 -192
  266. package/.output/server/node_modules/tslib/modules/index.js +0 -70
  267. package/.output/server/node_modules/tslib/modules/package.json +0 -3
  268. package/.output/server/node_modules/tslib/package.json +0 -47
  269. package/.output/server/node_modules/tslib/tslib.js +0 -484
  270. package/bin/piclaw.mjs +0 -195
@@ -1,9 +1,8 @@
1
1
  import { a as getDevice, c as parseCookies, d as touchDevice, n as COOKIE_NAME, o as makeSetCookie } from "./auth.mjs";
2
- import "../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
3
- import { a as defineHandler, d as toEventHandler, n as HTTPError, o as defineLazyEventHandler, p as NodeResponse, s as defineMiddleware, t as H3Core, u as proxyRequest } from "../_libs/h3+rou3+srvx.mjs";
2
+ import { a as defineHandler, f as toEventHandler, m as NodeResponse, n as HTTPError, o as defineLazyEventHandler, s as defineMiddleware, t as H3Core, u as proxyRequest } from "../_libs/h3+rou3+srvx.mjs";
4
3
  import { t as HookableCore } from "../_libs/hookable.mjs";
5
- import "../_libs/@mariozechner/pi-agent-core+[...].mjs";
6
4
  import { n as server_default } from "./server.mjs";
5
+ import "../_libs/@mariozechner/pi-agent-core+[...].mjs";
7
6
  import { a as withoutBase, i as withQuery, n as joinURL, o as withoutTrailingSlash, r as withLeadingSlash, t as decodePath } from "../_libs/ufo.mjs";
8
7
  import { promises } from "node:fs";
9
8
  import { dirname, resolve } from "node:path";
@@ -80,142 +79,142 @@ var public_assets_data_default = {
80
79
  "/icon-192.png": {
81
80
  "type": "image/png",
82
81
  "etag": "\"1ed8-HRm0wMoc1YcKORc1dxMZZIs4XqM\"",
83
- "mtime": "2026-03-04T11:56:44.280Z",
82
+ "mtime": "2026-03-05T20:48:22.901Z",
84
83
  "size": 7896,
85
84
  "path": "../public/icon-192.png"
86
85
  },
87
86
  "/icon-512.png": {
88
87
  "type": "image/png",
89
88
  "etag": "\"61b1-w2AVse8SydUKs9vEM9tKbfXakcc\"",
90
- "mtime": "2026-03-04T11:56:44.280Z",
89
+ "mtime": "2026-03-05T20:48:22.901Z",
91
90
  "size": 25009,
92
91
  "path": "../public/icon-512.png"
93
92
  },
94
93
  "/icon.svg": {
95
94
  "type": "image/svg+xml",
96
95
  "etag": "\"41a-ki4Lp5uMw3sCqMRSciVIHajM4ps\"",
97
- "mtime": "2026-03-04T11:56:44.280Z",
96
+ "mtime": "2026-03-05T20:48:22.901Z",
98
97
  "size": 1050,
99
98
  "path": "../public/icon.svg"
100
99
  },
101
100
  "/index.html": {
102
101
  "type": "text/html; charset=utf-8",
103
- "etag": "\"408-Y+E+WN+xuwQuK+U9dNKdduZ98SI\"",
104
- "mtime": "2026-03-04T11:56:44.241Z",
105
- "size": 1032,
102
+ "etag": "\"593-i9ceRAzAQpumHWT433QoPzP7trM\"",
103
+ "mtime": "2026-03-05T20:48:22.862Z",
104
+ "size": 1427,
106
105
  "path": "../public/index.html"
107
106
  },
108
- "/manifest.json": {
109
- "type": "application/json",
110
- "etag": "\"21c-+ajOSgCwd9Z+fs01GNQu1MQTwuk\"",
111
- "mtime": "2026-03-04T11:56:44.280Z",
112
- "size": 540,
113
- "path": "../public/manifest.json"
114
- },
115
107
  "/reset.html": {
116
108
  "type": "text/html; charset=utf-8",
117
109
  "etag": "\"e8f-ShXrVZaJ0i30oN0foalVLUdrgYk\"",
118
- "mtime": "2026-03-04T11:56:44.280Z",
110
+ "mtime": "2026-03-05T20:48:22.901Z",
119
111
  "size": 3727,
120
112
  "path": "../public/reset.html"
121
113
  },
122
114
  "/sw.js": {
123
115
  "type": "text/javascript; charset=utf-8",
124
116
  "etag": "\"765-FHQ7M5HcgHxyZi8sVv0/baOJWD8\"",
125
- "mtime": "2026-03-04T11:56:44.280Z",
117
+ "mtime": "2026-03-05T20:48:22.901Z",
126
118
  "size": 1893,
127
119
  "path": "../public/sw.js"
128
120
  },
121
+ "/manifest.json": {
122
+ "type": "application/json",
123
+ "etag": "\"21c-+ajOSgCwd9Z+fs01GNQu1MQTwuk\"",
124
+ "mtime": "2026-03-05T20:48:22.901Z",
125
+ "size": 540,
126
+ "path": "../public/manifest.json"
127
+ },
129
128
  "/assets/GeistPixel-Square-CwnHaJd_.woff2": {
130
129
  "type": "font/woff2",
131
130
  "etag": "\"6fc8-Nl3X3tuURsyt3ex8iF9PBK3Fymk\"",
132
- "mtime": "2026-03-04T11:56:44.241Z",
131
+ "mtime": "2026-03-05T20:48:22.861Z",
133
132
  "size": 28616,
134
133
  "path": "../public/assets/GeistPixel-Square-CwnHaJd_.woff2"
135
134
  },
136
- "/assets/defult-CMO6TZ5a.js": {
135
+ "/assets/defult-D5RLDUrI.js": {
137
136
  "type": "text/javascript; charset=utf-8",
138
- "etag": "\"5be-nxefa1Feq4tpRjc0us0tqM0MTNs\"",
139
- "mtime": "2026-03-04T11:56:44.240Z",
140
- "size": 1470,
141
- "path": "../public/assets/defult-CMO6TZ5a.js"
137
+ "etag": "\"5cd-wWLpazRnh6aEcrSXaekPu0e3LRk\"",
138
+ "mtime": "2026-03-05T20:48:22.860Z",
139
+ "size": 1485,
140
+ "path": "../public/assets/defult-D5RLDUrI.js"
142
141
  },
143
142
  "/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2": {
144
143
  "type": "font/woff2",
145
144
  "etag": "\"3964-jfUkxTfHRj1cpO33jEsDk2lkrvM\"",
146
- "mtime": "2026-03-04T11:56:44.241Z",
145
+ "mtime": "2026-03-05T20:48:22.861Z",
147
146
  "size": 14692,
148
147
  "path": "../public/assets/geist-cyrillic-wght-normal-CHSlOQsW.woff2"
149
148
  },
150
149
  "/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2": {
151
150
  "type": "font/woff2",
152
151
  "etag": "\"3bcc-oSFlPnDlb7fAcQTPv6sqm6NgXXU\"",
153
- "mtime": "2026-03-04T11:56:44.241Z",
152
+ "mtime": "2026-03-05T20:48:22.861Z",
154
153
  "size": 15308,
155
154
  "path": "../public/assets/geist-latin-ext-wght-normal-DMtmJ5ZE.woff2"
156
155
  },
157
156
  "/assets/geist-latin-wght-normal-Dm3htQBi.woff2": {
158
157
  "type": "font/woff2",
159
158
  "etag": "\"6ef0-pZqr0k2V92t+lxQ/ogxqTIOgDGM\"",
160
- "mtime": "2026-03-04T11:56:44.241Z",
159
+ "mtime": "2026-03-05T20:48:22.862Z",
161
160
  "size": 28400,
162
161
  "path": "../public/assets/geist-latin-wght-normal-Dm3htQBi.woff2"
163
162
  },
164
163
  "/assets/geist-mono-cyrillic-wght-normal-BZdD_g9V.woff2": {
165
164
  "type": "font/woff2",
166
165
  "etag": "\"3148-fDEowP3hdBu549ke2NSllgnKwFo\"",
167
- "mtime": "2026-03-04T11:56:44.241Z",
166
+ "mtime": "2026-03-05T20:48:22.862Z",
168
167
  "size": 12616,
169
168
  "path": "../public/assets/geist-mono-cyrillic-wght-normal-BZdD_g9V.woff2"
170
169
  },
171
170
  "/assets/geist-mono-latin-ext-wght-normal-b6lpi8_2.woff2": {
172
171
  "type": "font/woff2",
173
172
  "etag": "\"32f4-mFhyUXRKosFvmVg6XWwBAV3kvk4\"",
174
- "mtime": "2026-03-04T11:56:44.241Z",
173
+ "mtime": "2026-03-05T20:48:22.862Z",
175
174
  "size": 13044,
176
175
  "path": "../public/assets/geist-mono-latin-ext-wght-normal-b6lpi8_2.woff2"
177
176
  },
178
177
  "/assets/geist-mono-latin-wght-normal-Cjtb1TV-.woff2": {
179
178
  "type": "font/woff2",
180
179
  "etag": "\"7a88-DQWpi033XojA2ZmNMyp8i2zZURE\"",
181
- "mtime": "2026-03-04T11:56:44.241Z",
180
+ "mtime": "2026-03-05T20:48:22.862Z",
182
181
  "size": 31368,
183
182
  "path": "../public/assets/geist-mono-latin-wght-normal-Cjtb1TV-.woff2"
184
183
  },
184
+ "/assets/index-K43slwjJ.css": {
185
+ "type": "text/css; charset=utf-8",
186
+ "etag": "\"135fb-zTkqASNX7Pvm3wLJmP2ooi8MCkY\"",
187
+ "mtime": "2026-03-05T20:48:22.862Z",
188
+ "size": 79355,
189
+ "path": "../public/assets/index-K43slwjJ.css"
190
+ },
185
191
  "/assets/md4x-CNLJ57xO.wasm": {
186
192
  "type": "application/wasm",
187
193
  "etag": "\"41116-fXWw13Hb4mtmx1zqWY937G5o04w\"",
188
- "mtime": "2026-03-04T11:56:44.241Z",
194
+ "mtime": "2026-03-05T20:48:22.862Z",
189
195
  "size": 266518,
190
196
  "path": "../public/assets/md4x-CNLJ57xO.wasm"
191
197
  },
192
198
  "/assets/md4x-CyfQToGJ.js": {
193
199
  "type": "text/javascript; charset=utf-8",
194
200
  "etag": "\"38-QLTgoA+K9j0djblpu5tawfdfO5c\"",
195
- "mtime": "2026-03-04T11:56:44.241Z",
201
+ "mtime": "2026-03-05T20:48:22.861Z",
196
202
  "size": 56,
197
203
  "path": "../public/assets/md4x-CyfQToGJ.js"
198
204
  },
199
- "/assets/index-ooXrRwgl.css": {
200
- "type": "text/css; charset=utf-8",
201
- "etag": "\"11a5a-fDdcgt/mooiZHKFzT+rp674XenY\"",
202
- "mtime": "2026-03-04T11:56:44.241Z",
203
- "size": 72282,
204
- "path": "../public/assets/index-ooXrRwgl.css"
205
- },
206
- "/assets/index-jdnbJw-M.js": {
205
+ "/assets/dist-BH_oa-kv.js": {
207
206
  "type": "text/javascript; charset=utf-8",
208
- "etag": "\"12848f-KK6kHTiZJ1dxAukqa7MeB+mkRps\"",
209
- "mtime": "2026-03-04T11:56:44.239Z",
210
- "size": 1213583,
211
- "path": "../public/assets/index-jdnbJw-M.js"
207
+ "etag": "\"16e8b9-eKD68lKcWgL2KIjd7XYrwbTvOJE\"",
208
+ "mtime": "2026-03-05T20:48:22.861Z",
209
+ "size": 1501369,
210
+ "path": "../public/assets/dist-BH_oa-kv.js"
212
211
  },
213
- "/assets/dist-CMBqBOCp.js": {
212
+ "/assets/index-7JvURuHy.js": {
214
213
  "type": "text/javascript; charset=utf-8",
215
- "etag": "\"16e8b9-qcmkpUvZy8/Czjc2aRmiRXsLebU\"",
216
- "mtime": "2026-03-04T11:56:44.241Z",
217
- "size": 1501369,
218
- "path": "../public/assets/dist-CMBqBOCp.js"
214
+ "etag": "\"1314ab-rlVhnCt0436TgqLGRpssRR5GONo\"",
215
+ "mtime": "2026-03-05T20:48:22.859Z",
216
+ "size": 1250475,
217
+ "path": "../public/assets/index-7JvURuHy.js"
219
218
  }
220
219
  };
221
220
  function readAsset(id) {
@@ -290,8 +289,14 @@ var PUBLIC_PREFIXES = ["/api/auth/"];
290
289
  var device_auth_default = defineMiddleware(async (event, next) => {
291
290
  const pathname = event.url.pathname;
292
291
  if (!pathname.startsWith("/api/")) return next();
292
+ const cookies = parseCookies(event.req.headers.get("cookie") || "");
293
+ const deviceId = cookies[COOKIE_NAME];
294
+ const appSecret = process.env.PICLAW_APP_SECRET;
295
+ if (appSecret && cookies["piclaw_app_token"] === appSecret) {
296
+ if (deviceId) event.context.deviceId = deviceId;
297
+ return next();
298
+ }
293
299
  if (PUBLIC_PREFIXES.some((p) => pathname.startsWith(p))) return next();
294
- const deviceId = parseCookies(event.req.headers.get("cookie") || "")[COOKIE_NAME];
295
300
  if (!deviceId) throw new HTTPError("Device not registered", { status: 401 });
296
301
  const device = await getDevice(deviceId);
297
302
  if (!device) {
@@ -303,6 +308,7 @@ var device_auth_default = defineMiddleware(async (event, next) => {
303
308
  throw new HTTPError("Device revoked", { status: 403 });
304
309
  }
305
310
  if (device.status === "pending") throw new HTTPError("Device pending approval", { status: 403 });
311
+ event.context.deviceId = deviceId;
306
312
  const lastSeen = new Date(device.last_seen).getTime();
307
313
  if (Date.now() - lastSeen > 6e4) touchDevice(deviceId).catch(() => {});
308
314
  return next();
@@ -351,7 +357,8 @@ var _lazy_XlgjaQ = defineLazyEventHandler(() => import("../_jid_.delete.mjs"));
351
357
  var _lazy_zxmisQ = defineLazyEventHandler(() => import("../_routes/api/chats.mjs"));
352
358
  var _lazy_FCzSbE = defineLazyEventHandler(() => import("../_routes/api/config.mjs"));
353
359
  var _lazy_g8U0Ne = defineLazyEventHandler(() => import("../_routes/api/config2.mjs"));
354
- var _lazy_WbrfDt = defineLazyEventHandler(() => import("../_libs/_107.mjs"));
360
+ var _lazy_WwSK4s = defineLazyEventHandler(() => import("../_routes/api/device_events.mjs"));
361
+ var _lazy_WbrfDt = defineLazyEventHandler(() => import("../_libs/_94.mjs"));
355
362
  var _lazy_Cc2xrp = defineLazyEventHandler(() => import("../_routes/api/files/delete.mjs"));
356
363
  var _lazy_S352Hh = defineLazyEventHandler(() => import("../_routes/api/files/groups.mjs"));
357
364
  var _lazy_h04WvL = defineLazyEventHandler(() => import("../_routes/api/files.mjs"));
@@ -394,15 +401,21 @@ var _lazy_BroS7q = defineLazyEventHandler(() => import("../_routes/api/resources
394
401
  var _lazy_IdxSZC = defineLazyEventHandler(() => import("../_routes/api/resources/kill.mjs"));
395
402
  var _lazy_r6Q53x = defineLazyEventHandler(() => import("../_routes/api/resources/ports.mjs"));
396
403
  var _lazy_kp8jE9 = defineLazyEventHandler(() => import("../_routes/api/resources/processes.mjs"));
404
+ var _lazy_6yvNQ3 = defineLazyEventHandler(() => import("../_id_.delete.mjs"));
405
+ var _lazy_Os3TTN = defineLazyEventHandler(() => import("../_routes/api/sandbox.mjs"));
406
+ var _lazy_9Excp1 = defineLazyEventHandler(() => import("../_routes/api/sandbox2.mjs"));
397
407
  var _lazy_Cf90g9 = defineLazyEventHandler(() => import("../_routes/api/send.mjs"));
398
408
  var _lazy_f46SiX = defineLazyEventHandler(() => import("../_routes/api/status.mjs"));
409
+ var _lazy_fUZGDL = defineLazyEventHandler(() => import("../_routes/api/stop.mjs"));
410
+ var _lazy_nBHtiI = defineLazyEventHandler(() => import("../_routes/api/store/plugins.mjs"));
411
+ var _lazy_qwcxy0 = defineLazyEventHandler(() => import("../_routes/api/store/skills.mjs"));
399
412
  var _lazy_BCmuoq = defineLazyEventHandler(() => import("../_routes/api/stream.mjs"));
400
413
  var _lazy_E6g8OK = defineLazyEventHandler(() => import("../_id_.patch.mjs"));
401
414
  var _lazy_a4eaQ4 = defineLazyEventHandler(() => import("../_routes/api/tasks.mjs"));
402
415
  var _lazy_y4X9HC = defineLazyEventHandler(() => import("../_routes/api/tasks2.mjs"));
403
416
  var _lazy_s4mtPg = defineLazyEventHandler(() => import("../_routes/api/telegram/setup.mjs"));
404
417
  var _lazy_lqAhEC = defineLazyEventHandler(() => import("../_routes/api/telegram/status.mjs"));
405
- var _lazy_hwedry = defineLazyEventHandler(() => import("../_id_.delete.mjs"));
418
+ var _lazy_hwedry = defineLazyEventHandler(() => import("../_id_2.delete.mjs"));
406
419
  var _lazy_jKIB9c = defineLazyEventHandler(() => import("../_id_2.patch.mjs"));
407
420
  var _lazy_SNxV59 = defineLazyEventHandler(() => import("../_routes/api/terminal/[id]/input.mjs"));
408
421
  var _lazy_2wGwm5 = defineLazyEventHandler(() => import("../_routes/api/terminal/[id]/nudge.mjs"));
@@ -413,7 +426,8 @@ var _lazy_vnbFXO = defineLazyEventHandler(() => import("../_routes/api/terminal2
413
426
  var _lazy_GBBzFJ = defineLazyEventHandler(() => import("../_routes/api/tunnel/password.mjs"));
414
427
  var _lazy_ikDCsl = defineLazyEventHandler(() => import("../_routes/api/tunnel/setup.mjs"));
415
428
  var _lazy_PyoJFH = defineLazyEventHandler(() => import("../_routes/api/tunnel/status.mjs"));
416
- var _lazy_lIU8fq = defineLazyEventHandler(() => import("./renderer-template.mjs"));
429
+ var _lazy_sfQTMO = defineLazyEventHandler(() => import("../_...path_.get.mjs"));
430
+ var _lazy_2jdFi6 = defineLazyEventHandler(() => import("./renderer-template.mjs"));
417
431
  const findRoute = /* @__PURE__ */ (() => {
418
432
  const $0 = {
419
433
  route: "/api/auth/approve",
@@ -456,258 +470,290 @@ const findRoute = /* @__PURE__ */ (() => {
456
470
  method: "patch",
457
471
  handler: _lazy_g8U0Ne
458
472
  }, $10 = {
473
+ route: "/api/device-events",
474
+ method: "get",
475
+ handler: _lazy_WwSK4s
476
+ }, $11 = {
459
477
  route: "/api/files/_utils",
460
478
  handler: _lazy_WbrfDt
461
- }, $11 = {
479
+ }, $12 = {
462
480
  route: "/api/files/delete",
463
481
  method: "post",
464
482
  handler: _lazy_Cc2xrp
465
- }, $12 = {
483
+ }, $13 = {
466
484
  route: "/api/files/groups",
467
485
  method: "get",
468
486
  handler: _lazy_S352Hh
469
- }, $13 = {
487
+ }, $14 = {
470
488
  route: "/api/files",
471
489
  method: "get",
472
490
  handler: _lazy_h04WvL
473
- }, $14 = {
491
+ }, $15 = {
474
492
  route: "/api/files/raw",
475
493
  method: "get",
476
494
  handler: _lazy_Oh5yIW
477
- }, $15 = {
495
+ }, $16 = {
478
496
  route: "/api/files/read",
479
497
  method: "get",
480
498
  handler: _lazy_AjFP4u
481
- }, $16 = {
499
+ }, $17 = {
482
500
  route: "/api/files/watch",
483
501
  method: "get",
484
502
  handler: _lazy_s9hSqQ
485
- }, $17 = {
503
+ }, $18 = {
486
504
  route: "/api/files/write",
487
505
  method: "post",
488
506
  handler: _lazy_QfxTDL
489
- }, $18 = {
507
+ }, $19 = {
490
508
  route: "/api/groups",
491
509
  method: "get",
492
510
  handler: _lazy_qNOInh
493
- }, $19 = {
511
+ }, $20 = {
494
512
  route: "/api/groups",
495
513
  method: "post",
496
514
  handler: _lazy_I4K_Ku
497
- }, $20 = {
515
+ }, $21 = {
498
516
  route: "/api/health",
499
517
  method: "get",
500
518
  handler: _lazy_5k0OnF
501
- }, $21 = {
519
+ }, $22 = {
502
520
  route: "/api/logs",
503
521
  method: "get",
504
522
  handler: _lazy_5Od_hK
505
- }, $22 = {
523
+ }, $23 = {
506
524
  route: "/api/messages",
507
525
  method: "get",
508
526
  handler: _lazy_BN5xMn
509
- }, $23 = {
527
+ }, $24 = {
510
528
  route: "/api/notes/delete",
511
529
  method: "post",
512
530
  handler: _lazy_vH7_pJ
513
- }, $24 = {
531
+ }, $25 = {
514
532
  route: "/api/notes",
515
533
  method: "get",
516
534
  handler: _lazy_X2LwSF
517
- }, $25 = {
535
+ }, $26 = {
518
536
  route: "/api/notes/read",
519
537
  method: "get",
520
538
  handler: _lazy_1WC1KJ
521
- }, $26 = {
539
+ }, $27 = {
522
540
  route: "/api/notes/write",
523
541
  method: "post",
524
542
  handler: _lazy_niB5J3
525
- }, $27 = {
543
+ }, $28 = {
526
544
  route: "/api/ntfy/setup",
527
545
  method: "post",
528
546
  handler: _lazy_bJTpRi
529
- }, $28 = {
547
+ }, $29 = {
530
548
  route: "/api/ntfy/status",
531
549
  method: "get",
532
550
  handler: _lazy_lIgYkU
533
- }, $29 = {
551
+ }, $30 = {
534
552
  route: "/api/pi/apikey-providers",
535
553
  method: "get",
536
554
  handler: _lazy_Ty4phZ
537
- }, $30 = {
555
+ }, $31 = {
538
556
  route: "/api/pi/apikey",
539
557
  method: "post",
540
558
  handler: _lazy_4yq7Zp
541
- }, $31 = {
559
+ }, $32 = {
542
560
  route: "/api/pi/auth",
543
561
  method: "get",
544
562
  handler: _lazy_r1EyD3
545
- }, $32 = {
563
+ }, $33 = {
546
564
  route: "/api/pi/auth",
547
565
  method: "put",
548
566
  handler: _lazy_JTd0yY
549
- }, $33 = {
567
+ }, $34 = {
550
568
  route: "/api/pi/commands",
551
569
  method: "get",
552
570
  handler: _lazy_1FAaOb
553
- }, $34 = {
571
+ }, $35 = {
554
572
  route: "/api/pi/login/events",
555
573
  method: "get",
556
574
  handler: _lazy_d86N2w
557
- }, $35 = {
575
+ }, $36 = {
558
576
  route: "/api/pi/login",
559
577
  method: "post",
560
578
  handler: _lazy_CwRTc7
561
- }, $36 = {
579
+ }, $37 = {
562
580
  route: "/api/pi/login/respond",
563
581
  method: "post",
564
582
  handler: _lazy_10o54h
565
- }, $37 = {
583
+ }, $38 = {
566
584
  route: "/api/pi/logout",
567
585
  method: "post",
568
586
  handler: _lazy_bB1ALe
569
- }, $38 = {
587
+ }, $39 = {
570
588
  route: "/api/pi/models-config",
571
589
  method: "get",
572
590
  handler: _lazy_F7Yi6K
573
- }, $39 = {
591
+ }, $40 = {
574
592
  route: "/api/pi/models-config",
575
593
  method: "put",
576
594
  handler: _lazy_Bnx5Eu
577
- }, $40 = {
595
+ }, $41 = {
578
596
  route: "/api/pi/models",
579
597
  method: "get",
580
598
  handler: _lazy_AcJVdP
581
- }, $41 = {
599
+ }, $42 = {
582
600
  route: "/api/pi/models",
583
601
  method: "post",
584
602
  handler: _lazy_hl4fpC
585
- }, $42 = {
603
+ }, $43 = {
586
604
  route: "/api/pi/schemas",
587
605
  method: "get",
588
606
  handler: _lazy_KBw6PM
589
- }, $43 = {
607
+ }, $44 = {
590
608
  route: "/api/pi/settings",
591
609
  method: "get",
592
610
  handler: _lazy_1XnNGD
593
- }, $44 = {
611
+ }, $45 = {
594
612
  route: "/api/pi/settings",
595
613
  method: "put",
596
614
  handler: _lazy_WQRibR
597
- }, $45 = {
615
+ }, $46 = {
598
616
  route: "/api/pi/status",
599
617
  method: "get",
600
618
  handler: _lazy_wpe4XT
601
- }, $46 = {
619
+ }, $47 = {
602
620
  route: "/api/proxy",
603
621
  handler: _lazy_MjBjEa
604
- }, $47 = {
622
+ }, $48 = {
605
623
  route: "/api/resources",
606
624
  method: "get",
607
625
  handler: _lazy_BroS7q
608
- }, $48 = {
626
+ }, $49 = {
609
627
  route: "/api/resources/kill",
610
628
  method: "post",
611
629
  handler: _lazy_IdxSZC
612
- }, $49 = {
630
+ }, $50 = {
613
631
  route: "/api/resources/ports",
614
632
  method: "get",
615
633
  handler: _lazy_r6Q53x
616
- }, $50 = {
634
+ }, $51 = {
617
635
  route: "/api/resources/processes",
618
636
  method: "get",
619
637
  handler: _lazy_kp8jE9
620
- }, $51 = {
638
+ }, $52 = {
639
+ route: "/api/sandbox",
640
+ method: "get",
641
+ handler: _lazy_Os3TTN
642
+ }, $53 = {
643
+ route: "/api/sandbox",
644
+ method: "post",
645
+ handler: _lazy_9Excp1
646
+ }, $54 = {
621
647
  route: "/api/send",
622
648
  method: "post",
623
649
  handler: _lazy_Cf90g9
624
- }, $52 = {
650
+ }, $55 = {
625
651
  route: "/api/status",
626
652
  method: "get",
627
653
  handler: _lazy_f46SiX
628
- }, $53 = {
654
+ }, $56 = {
655
+ route: "/api/stop",
656
+ method: "post",
657
+ handler: _lazy_fUZGDL
658
+ }, $57 = {
659
+ route: "/api/store/plugins",
660
+ method: "get",
661
+ handler: _lazy_nBHtiI
662
+ }, $58 = {
663
+ route: "/api/store/skills",
664
+ method: "get",
665
+ handler: _lazy_qwcxy0
666
+ }, $59 = {
629
667
  route: "/api/stream",
630
668
  method: "get",
631
669
  handler: _lazy_BCmuoq
632
- }, $54 = {
670
+ }, $60 = {
633
671
  route: "/api/tasks",
634
672
  method: "get",
635
673
  handler: _lazy_a4eaQ4
636
- }, $55 = {
674
+ }, $61 = {
637
675
  route: "/api/tasks",
638
676
  method: "post",
639
677
  handler: _lazy_y4X9HC
640
- }, $56 = {
678
+ }, $62 = {
641
679
  route: "/api/telegram/setup",
642
680
  method: "post",
643
681
  handler: _lazy_s4mtPg
644
- }, $57 = {
682
+ }, $63 = {
645
683
  route: "/api/telegram/status",
646
684
  method: "get",
647
685
  handler: _lazy_lqAhEC
648
- }, $58 = {
686
+ }, $64 = {
649
687
  route: "/api/terminal",
650
688
  method: "get",
651
689
  handler: _lazy_thB4Sz
652
- }, $59 = {
690
+ }, $65 = {
653
691
  route: "/api/terminal",
654
692
  method: "post",
655
693
  handler: _lazy_vnbFXO
656
- }, $60 = {
694
+ }, $66 = {
657
695
  route: "/api/tunnel/password",
658
696
  method: "get",
659
697
  handler: _lazy_GBBzFJ
660
- }, $61 = {
698
+ }, $67 = {
661
699
  route: "/api/tunnel/setup",
662
700
  method: "post",
663
701
  handler: _lazy_ikDCsl
664
- }, $62 = {
702
+ }, $68 = {
665
703
  route: "/api/tunnel/status",
666
704
  method: "get",
667
705
  handler: _lazy_PyoJFH
668
- }, $63 = {
706
+ }, $69 = {
669
707
  route: "/api/chats/:jid",
670
708
  method: "delete",
671
709
  handler: _lazy_XlgjaQ
672
- }, $64 = {
710
+ }, $70 = {
673
711
  route: "/api/groups/:jid",
674
712
  method: "delete",
675
713
  handler: _lazy_EWoGjx
676
- }, $65 = {
714
+ }, $71 = {
677
715
  route: "/api/groups/:jid",
678
716
  method: "patch",
679
717
  handler: _lazy_RpSu7h
680
- }, $66 = {
718
+ }, $72 = {
719
+ route: "/api/sandbox/:id",
720
+ method: "delete",
721
+ handler: _lazy_6yvNQ3
722
+ }, $73 = {
681
723
  route: "/api/tasks/:id",
682
724
  method: "patch",
683
725
  handler: _lazy_E6g8OK
684
- }, $67 = {
726
+ }, $74 = {
685
727
  route: "/api/terminal/:id",
686
728
  method: "delete",
687
729
  handler: _lazy_hwedry
688
- }, $68 = {
730
+ }, $75 = {
689
731
  route: "/api/terminal/:id",
690
732
  method: "patch",
691
733
  handler: _lazy_jKIB9c
692
- }, $69 = {
734
+ }, $76 = {
693
735
  route: "/api/terminal/:id/input",
694
736
  method: "post",
695
737
  handler: _lazy_SNxV59
696
- }, $70 = {
738
+ }, $77 = {
697
739
  route: "/api/terminal/:id/nudge",
698
740
  method: "post",
699
741
  handler: _lazy_2wGwm5
700
- }, $71 = {
742
+ }, $78 = {
701
743
  route: "/api/terminal/:id/resize",
702
744
  method: "post",
703
745
  handler: _lazy_EST4ov
704
- }, $72 = {
746
+ }, $79 = {
705
747
  route: "/api/terminal/:id/stream",
706
748
  method: "get",
707
749
  handler: _lazy_K7Xq0B
708
- }, $73 = {
750
+ }, $80 = {
751
+ route: "/api/uploads/**:path",
752
+ method: "get",
753
+ handler: _lazy_sfQTMO
754
+ }, $81 = {
709
755
  route: "/**",
710
- handler: _lazy_lIU8fq
756
+ handler: _lazy_2jdFi6
711
757
  };
712
758
  return (m, p) => {
713
759
  if (p.charCodeAt(p.length - 1) === 47) p = p.slice(0, -1) || "/";
@@ -737,146 +783,162 @@ const findRoute = /* @__PURE__ */ (() => {
737
783
  if (m === "GET") return { data: $8 };
738
784
  if (m === "PATCH") return { data: $9 };
739
785
  }
740
- if (p === "/api/files/_utils") return { data: $10 };
786
+ if (p === "/api/device-events") {
787
+ if (m === "GET") return { data: $10 };
788
+ }
789
+ if (p === "/api/files/_utils") return { data: $11 };
741
790
  if (p === "/api/files/delete") {
742
- if (m === "POST") return { data: $11 };
791
+ if (m === "POST") return { data: $12 };
743
792
  }
744
793
  if (p === "/api/files/groups") {
745
- if (m === "GET") return { data: $12 };
794
+ if (m === "GET") return { data: $13 };
746
795
  }
747
796
  if (p === "/api/files") {
748
- if (m === "GET") return { data: $13 };
797
+ if (m === "GET") return { data: $14 };
749
798
  }
750
799
  if (p === "/api/files/raw") {
751
- if (m === "GET") return { data: $14 };
800
+ if (m === "GET") return { data: $15 };
752
801
  }
753
802
  if (p === "/api/files/read") {
754
- if (m === "GET") return { data: $15 };
803
+ if (m === "GET") return { data: $16 };
755
804
  }
756
805
  if (p === "/api/files/watch") {
757
- if (m === "GET") return { data: $16 };
806
+ if (m === "GET") return { data: $17 };
758
807
  }
759
808
  if (p === "/api/files/write") {
760
- if (m === "POST") return { data: $17 };
809
+ if (m === "POST") return { data: $18 };
761
810
  }
762
811
  if (p === "/api/groups") {
763
- if (m === "GET") return { data: $18 };
764
- if (m === "POST") return { data: $19 };
812
+ if (m === "GET") return { data: $19 };
813
+ if (m === "POST") return { data: $20 };
765
814
  }
766
815
  if (p === "/api/health") {
767
- if (m === "GET") return { data: $20 };
816
+ if (m === "GET") return { data: $21 };
768
817
  }
769
818
  if (p === "/api/logs") {
770
- if (m === "GET") return { data: $21 };
819
+ if (m === "GET") return { data: $22 };
771
820
  }
772
821
  if (p === "/api/messages") {
773
- if (m === "GET") return { data: $22 };
822
+ if (m === "GET") return { data: $23 };
774
823
  }
775
824
  if (p === "/api/notes/delete") {
776
- if (m === "POST") return { data: $23 };
825
+ if (m === "POST") return { data: $24 };
777
826
  }
778
827
  if (p === "/api/notes") {
779
- if (m === "GET") return { data: $24 };
828
+ if (m === "GET") return { data: $25 };
780
829
  }
781
830
  if (p === "/api/notes/read") {
782
- if (m === "GET") return { data: $25 };
831
+ if (m === "GET") return { data: $26 };
783
832
  }
784
833
  if (p === "/api/notes/write") {
785
- if (m === "POST") return { data: $26 };
834
+ if (m === "POST") return { data: $27 };
786
835
  }
787
836
  if (p === "/api/ntfy/setup") {
788
- if (m === "POST") return { data: $27 };
837
+ if (m === "POST") return { data: $28 };
789
838
  }
790
839
  if (p === "/api/ntfy/status") {
791
- if (m === "GET") return { data: $28 };
840
+ if (m === "GET") return { data: $29 };
792
841
  }
793
842
  if (p === "/api/pi/apikey-providers") {
794
- if (m === "GET") return { data: $29 };
843
+ if (m === "GET") return { data: $30 };
795
844
  }
796
845
  if (p === "/api/pi/apikey") {
797
- if (m === "POST") return { data: $30 };
846
+ if (m === "POST") return { data: $31 };
798
847
  }
799
848
  if (p === "/api/pi/auth") {
800
- if (m === "GET") return { data: $31 };
801
- if (m === "PUT") return { data: $32 };
849
+ if (m === "GET") return { data: $32 };
850
+ if (m === "PUT") return { data: $33 };
802
851
  }
803
852
  if (p === "/api/pi/commands") {
804
- if (m === "GET") return { data: $33 };
853
+ if (m === "GET") return { data: $34 };
805
854
  }
806
855
  if (p === "/api/pi/login/events") {
807
- if (m === "GET") return { data: $34 };
856
+ if (m === "GET") return { data: $35 };
808
857
  }
809
858
  if (p === "/api/pi/login") {
810
- if (m === "POST") return { data: $35 };
859
+ if (m === "POST") return { data: $36 };
811
860
  }
812
861
  if (p === "/api/pi/login/respond") {
813
- if (m === "POST") return { data: $36 };
862
+ if (m === "POST") return { data: $37 };
814
863
  }
815
864
  if (p === "/api/pi/logout") {
816
- if (m === "POST") return { data: $37 };
865
+ if (m === "POST") return { data: $38 };
817
866
  }
818
867
  if (p === "/api/pi/models-config") {
819
- if (m === "GET") return { data: $38 };
820
- if (m === "PUT") return { data: $39 };
868
+ if (m === "GET") return { data: $39 };
869
+ if (m === "PUT") return { data: $40 };
821
870
  }
822
871
  if (p === "/api/pi/models") {
823
- if (m === "GET") return { data: $40 };
824
- if (m === "POST") return { data: $41 };
872
+ if (m === "GET") return { data: $41 };
873
+ if (m === "POST") return { data: $42 };
825
874
  }
826
875
  if (p === "/api/pi/schemas") {
827
- if (m === "GET") return { data: $42 };
876
+ if (m === "GET") return { data: $43 };
828
877
  }
829
878
  if (p === "/api/pi/settings") {
830
- if (m === "GET") return { data: $43 };
831
- if (m === "PUT") return { data: $44 };
879
+ if (m === "GET") return { data: $44 };
880
+ if (m === "PUT") return { data: $45 };
832
881
  }
833
882
  if (p === "/api/pi/status") {
834
- if (m === "GET") return { data: $45 };
883
+ if (m === "GET") return { data: $46 };
835
884
  }
836
- if (p === "/api/proxy") return { data: $46 };
885
+ if (p === "/api/proxy") return { data: $47 };
837
886
  if (p === "/api/resources") {
838
- if (m === "GET") return { data: $47 };
887
+ if (m === "GET") return { data: $48 };
839
888
  }
840
889
  if (p === "/api/resources/kill") {
841
- if (m === "POST") return { data: $48 };
890
+ if (m === "POST") return { data: $49 };
842
891
  }
843
892
  if (p === "/api/resources/ports") {
844
- if (m === "GET") return { data: $49 };
893
+ if (m === "GET") return { data: $50 };
845
894
  }
846
895
  if (p === "/api/resources/processes") {
847
- if (m === "GET") return { data: $50 };
896
+ if (m === "GET") return { data: $51 };
897
+ }
898
+ if (p === "/api/sandbox") {
899
+ if (m === "GET") return { data: $52 };
900
+ if (m === "POST") return { data: $53 };
848
901
  }
849
902
  if (p === "/api/send") {
850
- if (m === "POST") return { data: $51 };
903
+ if (m === "POST") return { data: $54 };
851
904
  }
852
905
  if (p === "/api/status") {
853
- if (m === "GET") return { data: $52 };
906
+ if (m === "GET") return { data: $55 };
907
+ }
908
+ if (p === "/api/stop") {
909
+ if (m === "POST") return { data: $56 };
910
+ }
911
+ if (p === "/api/store/plugins") {
912
+ if (m === "GET") return { data: $57 };
913
+ }
914
+ if (p === "/api/store/skills") {
915
+ if (m === "GET") return { data: $58 };
854
916
  }
855
917
  if (p === "/api/stream") {
856
- if (m === "GET") return { data: $53 };
918
+ if (m === "GET") return { data: $59 };
857
919
  }
858
920
  if (p === "/api/tasks") {
859
- if (m === "GET") return { data: $54 };
860
- if (m === "POST") return { data: $55 };
921
+ if (m === "GET") return { data: $60 };
922
+ if (m === "POST") return { data: $61 };
861
923
  }
862
924
  if (p === "/api/telegram/setup") {
863
- if (m === "POST") return { data: $56 };
925
+ if (m === "POST") return { data: $62 };
864
926
  }
865
927
  if (p === "/api/telegram/status") {
866
- if (m === "GET") return { data: $57 };
928
+ if (m === "GET") return { data: $63 };
867
929
  }
868
930
  if (p === "/api/terminal") {
869
- if (m === "GET") return { data: $58 };
870
- if (m === "POST") return { data: $59 };
931
+ if (m === "GET") return { data: $64 };
932
+ if (m === "POST") return { data: $65 };
871
933
  }
872
934
  if (p === "/api/tunnel/password") {
873
- if (m === "GET") return { data: $60 };
935
+ if (m === "GET") return { data: $66 };
874
936
  }
875
937
  if (p === "/api/tunnel/setup") {
876
- if (m === "POST") return { data: $61 };
938
+ if (m === "POST") return { data: $67 };
877
939
  }
878
940
  if (p === "/api/tunnel/status") {
879
- if (m === "GET") return { data: $62 };
941
+ if (m === "GET") return { data: $68 };
880
942
  }
881
943
  let s = p.split("/"), l = s.length - 1;
882
944
  if (s[1] === "api") {
@@ -884,7 +946,7 @@ const findRoute = /* @__PURE__ */ (() => {
884
946
  if (l === 3 || l === 2) {
885
947
  if (m === "DELETE") {
886
948
  if (l >= 3) return {
887
- data: $63,
949
+ data: $69,
888
950
  params: { "jid": s[3] }
889
951
  };
890
952
  }
@@ -894,23 +956,33 @@ const findRoute = /* @__PURE__ */ (() => {
894
956
  if (l === 3 || l === 2) {
895
957
  if (m === "DELETE") {
896
958
  if (l >= 3) return {
897
- data: $64,
959
+ data: $70,
898
960
  params: { "jid": s[3] }
899
961
  };
900
962
  }
901
963
  if (m === "PATCH") {
902
964
  if (l >= 3) return {
903
- data: $65,
965
+ data: $71,
904
966
  params: { "jid": s[3] }
905
967
  };
906
968
  }
907
969
  }
908
970
  }
971
+ if (s[2] === "sandbox") {
972
+ if (l === 3 || l === 2) {
973
+ if (m === "DELETE") {
974
+ if (l >= 3) return {
975
+ data: $72,
976
+ params: { "id": s[3] }
977
+ };
978
+ }
979
+ }
980
+ }
909
981
  if (s[2] === "tasks") {
910
982
  if (l === 3 || l === 2) {
911
983
  if (m === "PATCH") {
912
984
  if (l >= 3) return {
913
- data: $66,
985
+ data: $73,
914
986
  params: { "id": s[3] }
915
987
  };
916
988
  }
@@ -920,13 +992,13 @@ const findRoute = /* @__PURE__ */ (() => {
920
992
  if (l === 3 || l === 2) {
921
993
  if (m === "DELETE") {
922
994
  if (l >= 3) return {
923
- data: $67,
995
+ data: $74,
924
996
  params: { "id": s[3] }
925
997
  };
926
998
  }
927
999
  if (m === "PATCH") {
928
1000
  if (l >= 3) return {
929
- data: $68,
1001
+ data: $75,
930
1002
  params: { "id": s[3] }
931
1003
  };
932
1004
  }
@@ -934,7 +1006,7 @@ const findRoute = /* @__PURE__ */ (() => {
934
1006
  if (s[4] === "input") {
935
1007
  if (l === 4) {
936
1008
  if (m === "POST") return {
937
- data: $69,
1009
+ data: $76,
938
1010
  params: { "id": s[3] }
939
1011
  };
940
1012
  }
@@ -942,7 +1014,7 @@ const findRoute = /* @__PURE__ */ (() => {
942
1014
  if (s[4] === "nudge") {
943
1015
  if (l === 4) {
944
1016
  if (m === "POST") return {
945
- data: $70,
1017
+ data: $77,
946
1018
  params: { "id": s[3] }
947
1019
  };
948
1020
  }
@@ -950,7 +1022,7 @@ const findRoute = /* @__PURE__ */ (() => {
950
1022
  if (s[4] === "resize") {
951
1023
  if (l === 4) {
952
1024
  if (m === "POST") return {
953
- data: $71,
1025
+ data: $78,
954
1026
  params: { "id": s[3] }
955
1027
  };
956
1028
  }
@@ -958,15 +1030,23 @@ const findRoute = /* @__PURE__ */ (() => {
958
1030
  if (s[4] === "stream") {
959
1031
  if (l === 4) {
960
1032
  if (m === "GET") return {
961
- data: $72,
1033
+ data: $79,
962
1034
  params: { "id": s[3] }
963
1035
  };
964
1036
  }
965
1037
  }
966
1038
  }
1039
+ if (s[2] === "uploads") {
1040
+ if (m === "GET") {
1041
+ if (l >= 2) return {
1042
+ data: $80,
1043
+ params: { "path": s.slice(3).join("/") }
1044
+ };
1045
+ }
1046
+ }
967
1047
  }
968
1048
  return {
969
- data: $73,
1049
+ data: $81,
970
1050
  params: { "_": s.slice(1).join("/") }
971
1051
  };
972
1052
  };