piclaw 0.0.20 → 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 (245) 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-D-Hc5HbQ.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/_chunks/app.mjs +138 -104
  8. package/.output/server/_chunks/config.mjs +4 -0
  9. package/.output/server/_chunks/dummy.mjs +1 -1
  10. package/.output/server/_chunks/logger.mjs +1 -1
  11. package/.output/server/_chunks/notes.mjs +1 -3
  12. package/.output/server/_chunks/renderer-template.mjs +1 -1
  13. package/.output/server/_chunks/sandbox.mjs +217 -0
  14. package/.output/server/_chunks/server.mjs +411 -291
  15. package/.output/server/_chunks/terminal.mjs +47 -8
  16. package/.output/server/_chunks/virtual.mjs +192 -54
  17. package/.output/server/_id_.delete.mjs +5 -2
  18. package/.output/server/_id_2.delete.mjs +8 -0
  19. package/.output/server/_jid_.delete.mjs +0 -1
  20. package/.output/server/_jid_.patch.mjs +21 -3
  21. package/.output/server/_jid_2.delete.mjs +0 -1
  22. package/.output/server/_libs/@acemir/cssom+[...].mjs +2269 -1137
  23. package/.output/server/_libs/@google/genai.mjs +348 -284
  24. package/.output/server/_libs/@mariozechner/pi-agent-core+[...].mjs +381 -2073
  25. package/.output/server/_libs/@mariozechner/pi-coding-agent+[...].mjs +236 -136
  26. package/.output/server/_libs/_.mjs +3 -2
  27. package/.output/server/_libs/_10.mjs +2 -4
  28. package/.output/server/_libs/_11.mjs +2 -4
  29. package/.output/server/_libs/_12.mjs +2 -3
  30. package/.output/server/_libs/_13.mjs +2 -3
  31. package/.output/server/_libs/_14.mjs +2 -4
  32. package/.output/server/_libs/_15.mjs +2 -4
  33. package/.output/server/_libs/_16.mjs +2 -3
  34. package/.output/server/_libs/_17.mjs +2 -4
  35. package/.output/server/_libs/_18.mjs +2 -2
  36. package/.output/server/_libs/_19.mjs +2 -2
  37. package/.output/server/_libs/_2.mjs +3 -3
  38. package/.output/server/_libs/_20.mjs +2 -2
  39. package/.output/server/_libs/_21.mjs +2 -2
  40. package/.output/server/_libs/_22.mjs +2 -2
  41. package/.output/server/_libs/_23.mjs +2 -2
  42. package/.output/server/_libs/_24.mjs +2 -2
  43. package/.output/server/_libs/_25.mjs +2 -2
  44. package/.output/server/_libs/_26.mjs +2 -2
  45. package/.output/server/_libs/_27.mjs +2 -2
  46. package/.output/server/_libs/_28.mjs +2 -2
  47. package/.output/server/_libs/_29.mjs +2 -2
  48. package/.output/server/_libs/_3.mjs +3 -3
  49. package/.output/server/_libs/_30.mjs +2 -2
  50. package/.output/server/_libs/_31.mjs +2 -2
  51. package/.output/server/_libs/_32.mjs +2 -2
  52. package/.output/server/_libs/_33.mjs +2 -2
  53. package/.output/server/_libs/_34.mjs +2 -2
  54. package/.output/server/_libs/_35.mjs +2 -2
  55. package/.output/server/_libs/_36.mjs +2 -2
  56. package/.output/server/_libs/_37.mjs +2 -2
  57. package/.output/server/_libs/_38.mjs +2 -2
  58. package/.output/server/_libs/_39.mjs +2 -2
  59. package/.output/server/_libs/_4.mjs +4 -3
  60. package/.output/server/_libs/_40.mjs +2 -2
  61. package/.output/server/_libs/_41.mjs +2 -2
  62. package/.output/server/_libs/_42.mjs +2 -2
  63. package/.output/server/_libs/_43.mjs +2 -2
  64. package/.output/server/_libs/_44.mjs +2 -2
  65. package/.output/server/_libs/_45.mjs +2 -2
  66. package/.output/server/_libs/_46.mjs +2 -2
  67. package/.output/server/_libs/_47.mjs +2 -2
  68. package/.output/server/_libs/_48.mjs +2 -2
  69. package/.output/server/_libs/_49.mjs +2 -2
  70. package/.output/server/_libs/_5.mjs +2 -3
  71. package/.output/server/_libs/_50.mjs +2 -2
  72. package/.output/server/_libs/_51.mjs +2 -2
  73. package/.output/server/_libs/_52.mjs +2 -2
  74. package/.output/server/_libs/_53.mjs +2 -2
  75. package/.output/server/_libs/_54.mjs +2 -2
  76. package/.output/server/_libs/_55.mjs +2 -2
  77. package/.output/server/_libs/_56.mjs +2 -2
  78. package/.output/server/_libs/_57.mjs +2 -2
  79. package/.output/server/_libs/_58.mjs +2 -2
  80. package/.output/server/_libs/_59.mjs +2 -2
  81. package/.output/server/_libs/_6.mjs +2 -3
  82. package/.output/server/_libs/_60.mjs +2 -2
  83. package/.output/server/_libs/_61.mjs +2 -2
  84. package/.output/server/_libs/_62.mjs +2 -2
  85. package/.output/server/_libs/_63.mjs +2 -2
  86. package/.output/server/_libs/_64.mjs +2 -2
  87. package/.output/server/_libs/_65.mjs +2 -2
  88. package/.output/server/_libs/_66.mjs +2 -2
  89. package/.output/server/_libs/_67.mjs +2 -2
  90. package/.output/server/_libs/_68.mjs +2 -2
  91. package/.output/server/_libs/_69.mjs +2 -2
  92. package/.output/server/_libs/_7.mjs +2 -5
  93. package/.output/server/_libs/_70.mjs +2 -2
  94. package/.output/server/_libs/_71.mjs +2 -2
  95. package/.output/server/_libs/_72.mjs +2 -2
  96. package/.output/server/_libs/_73.mjs +2 -2
  97. package/.output/server/_libs/_74.mjs +2 -2
  98. package/.output/server/_libs/_75.mjs +2 -2
  99. package/.output/server/_libs/_76.mjs +2 -2
  100. package/.output/server/_libs/_77.mjs +2 -2
  101. package/.output/server/_libs/_78.mjs +2 -2
  102. package/.output/server/_libs/_79.mjs +2 -2
  103. package/.output/server/_libs/_8.mjs +2 -3
  104. package/.output/server/_libs/_80.mjs +2 -2
  105. package/.output/server/_libs/_81.mjs +2 -2
  106. package/.output/server/_libs/_82.mjs +2 -2
  107. package/.output/server/_libs/_83.mjs +2 -2
  108. package/.output/server/_libs/_84.mjs +2 -2
  109. package/.output/server/_libs/_85.mjs +2 -2
  110. package/.output/server/_libs/_86.mjs +2 -2
  111. package/.output/server/_libs/_87.mjs +2 -2
  112. package/.output/server/_libs/_88.mjs +2 -2
  113. package/.output/server/_libs/_89.mjs +2 -2
  114. package/.output/server/_libs/_9.mjs +2 -4
  115. package/.output/server/_libs/_90.mjs +5 -2
  116. package/.output/server/_libs/_91.mjs +3 -2
  117. package/.output/server/_libs/_92.mjs +2 -2
  118. package/.output/server/_libs/_93.mjs +2 -2
  119. package/.output/server/_libs/_94.mjs +2 -2
  120. package/.output/server/_libs/agent-base.mjs +1 -1
  121. package/.output/server/_libs/cheerio+[...].mjs +1 -1
  122. package/.output/server/_libs/data-uri-to-buffer.mjs +2 -67
  123. package/.output/server/_libs/data-urls+[...].mjs +1 -1
  124. package/.output/server/_libs/diff.mjs +1 -1
  125. package/.output/server/_libs/exodus__bytes.mjs +99 -81
  126. package/.output/server/_libs/fetch-blob+node-domexception.mjs +1 -1
  127. package/.output/server/_libs/h3+rou3+srvx.mjs +34 -4
  128. package/.output/server/_libs/html-encoding-sniffer.mjs +1 -1
  129. package/.output/server/_libs/https-proxy-agent.mjs +2 -2
  130. package/.output/server/_libs/jsdom.mjs +1 -1
  131. package/.output/server/_libs/just-bash+[...].mjs +4676 -3916
  132. package/.output/server/_libs/mariozechner__jiti.mjs +1 -1
  133. package/.output/server/_libs/mariozechner__pi-ai.mjs +1472 -0
  134. package/.output/server/_libs/md4x.mjs +1 -1
  135. package/.output/server/_libs/node-fetch.mjs +14 -14
  136. package/.output/server/_libs/node-liblzma.mjs +1 -1
  137. package/.output/server/_libs/silvia-odwyer__photon-node.mjs +1 -1
  138. package/.output/server/_routes/api/auth/status.mjs +25 -6
  139. package/.output/server/_routes/api/config2.mjs +2 -0
  140. package/.output/server/_routes/api/files/groups.mjs +0 -1
  141. package/.output/server/_routes/api/groups.mjs +4 -2
  142. package/.output/server/_routes/api/groups2.mjs +14 -5
  143. package/.output/server/_routes/api/health.mjs +0 -1
  144. package/.output/server/_routes/api/pi/apikey.mjs +0 -1
  145. package/.output/server/_routes/api/pi/apikey_providers.mjs +0 -1
  146. package/.output/server/_routes/api/pi/commands.mjs +1 -2
  147. package/.output/server/_routes/api/pi/login/events.mjs +0 -1
  148. package/.output/server/_routes/api/pi/login/respond.mjs +0 -1
  149. package/.output/server/_routes/api/pi/login.mjs +0 -1
  150. package/.output/server/_routes/api/pi/logout.mjs +0 -1
  151. package/.output/server/_routes/api/pi/models.mjs +0 -1
  152. package/.output/server/_routes/api/pi/status.mjs +0 -1
  153. package/.output/server/_routes/api/sandbox.mjs +26 -0
  154. package/.output/server/_routes/api/sandbox2.mjs +17 -0
  155. package/.output/server/_routes/api/send.mjs +12 -12
  156. package/.output/server/_routes/api/status.mjs +0 -1
  157. package/.output/server/_routes/api/stop.mjs +0 -1
  158. package/.output/server/_routes/api/tasks2.mjs +0 -1
  159. package/.output/server/_routes/api/telegram/setup.mjs +0 -1
  160. package/.output/server/_routes/api/telegram/status.mjs +0 -1
  161. package/.output/server/_routes/api/terminal2.mjs +2 -1
  162. package/.output/server/_routes/api/tunnel/setup.mjs +0 -1
  163. package/.output/server/_runtime.mjs +1 -2
  164. package/.output/server/index.mjs +1 -1
  165. package/.output/server/node_modules/amdefine/amdefine.js +301 -0
  166. package/.output/server/node_modules/amdefine/package.json +16 -0
  167. package/.output/server/node_modules/compressjs/lib/BWT.js +420 -0
  168. package/.output/server/node_modules/compressjs/lib/BWTC.js +234 -0
  169. package/.output/server/node_modules/compressjs/lib/BitStream.js +108 -0
  170. package/.output/server/node_modules/compressjs/lib/Bzip2.js +936 -0
  171. package/.output/server/node_modules/compressjs/lib/CRC32.js +105 -0
  172. package/.output/server/node_modules/compressjs/lib/Context1Model.js +56 -0
  173. package/.output/server/node_modules/compressjs/lib/DefSumModel.js +152 -0
  174. package/.output/server/node_modules/compressjs/lib/DeflateDistanceModel.js +55 -0
  175. package/.output/server/node_modules/compressjs/lib/Dmc.js +197 -0
  176. package/.output/server/node_modules/compressjs/lib/DummyRangeCoder.js +81 -0
  177. package/.output/server/node_modules/compressjs/lib/FenwickModel.js +194 -0
  178. package/.output/server/node_modules/compressjs/lib/Huffman.js +514 -0
  179. package/.output/server/node_modules/compressjs/lib/HuffmanAllocator.js +227 -0
  180. package/.output/server/node_modules/compressjs/lib/LogDistanceModel.js +46 -0
  181. package/.output/server/node_modules/compressjs/lib/Lzjb.js +300 -0
  182. package/.output/server/node_modules/compressjs/lib/LzjbR.js +241 -0
  183. package/.output/server/node_modules/compressjs/lib/Lzp3.js +273 -0
  184. package/.output/server/node_modules/compressjs/lib/MTFModel.js +208 -0
  185. package/.output/server/node_modules/compressjs/lib/NoModel.js +46 -0
  186. package/.output/server/node_modules/compressjs/lib/PPM.js +343 -0
  187. package/.output/server/node_modules/compressjs/lib/RangeCoder.js +238 -0
  188. package/.output/server/node_modules/compressjs/lib/Simple.js +111 -0
  189. package/.output/server/node_modules/compressjs/lib/Stream.js +53 -0
  190. package/.output/server/node_modules/compressjs/lib/Util.js +324 -0
  191. package/.output/server/node_modules/compressjs/lib/freeze.js +14 -0
  192. package/.output/server/node_modules/compressjs/main.js +29 -0
  193. package/.output/server/node_modules/compressjs/package.json +35 -0
  194. package/.output/server/package.json +2 -1
  195. package/README.md +10 -1
  196. package/lib/index.d.mts +1 -0
  197. package/lib/index.mjs +1 -0
  198. package/lib/piclaw.mjs +100 -0
  199. package/lib/utils.mjs +96 -0
  200. package/package.json +16 -11
  201. package/.output/public/assets/defult-DtwgaiMA.js +0 -1
  202. package/.output/public/assets/index-B5n0eraW.css +0 -1
  203. package/.output/public/assets/index-DUbn6fuj.js +0 -205
  204. package/.output/server/_libs/@aws-crypto/crc32+[...].mjs +0 -299
  205. package/.output/server/_libs/@aws-sdk/client-bedrock-runtime+[...].mjs +0 -17828
  206. package/.output/server/_libs/@aws-sdk/credential-provider-http+[...].mjs +0 -122
  207. package/.output/server/_libs/@aws-sdk/credential-provider-ini+[...].mjs +0 -417
  208. package/.output/server/_libs/@aws-sdk/credential-provider-process+[...].mjs +0 -54
  209. package/.output/server/_libs/@aws-sdk/credential-provider-sso+[...].mjs +0 -1151
  210. package/.output/server/_libs/@aws-sdk/credential-provider-web-identity+[...].mjs +0 -50
  211. package/.output/server/_libs/@smithy/credential-provider-imds+[...].mjs +0 -369
  212. package/.output/server/_libs/@tootallnate/quickjs-emscripten+[...].mjs +0 -3011
  213. package/.output/server/_libs/_100.mjs +0 -2
  214. package/.output/server/_libs/_101.mjs +0 -2
  215. package/.output/server/_libs/_102.mjs +0 -2
  216. package/.output/server/_libs/_103.mjs +0 -5
  217. package/.output/server/_libs/_104.mjs +0 -3
  218. package/.output/server/_libs/_105.mjs +0 -2
  219. package/.output/server/_libs/_106.mjs +0 -3
  220. package/.output/server/_libs/_107.mjs +0 -2
  221. package/.output/server/_libs/_108.mjs +0 -2
  222. package/.output/server/_libs/_95.mjs +0 -2
  223. package/.output/server/_libs/_96.mjs +0 -2
  224. package/.output/server/_libs/_97.mjs +0 -2
  225. package/.output/server/_libs/_98.mjs +0 -2
  226. package/.output/server/_libs/_99.mjs +0 -2
  227. package/.output/server/_libs/amdefine.mjs +0 -188
  228. package/.output/server/_libs/ast-types.mjs +0 -2270
  229. package/.output/server/_libs/aws-sdk__nested-clients.mjs +0 -3141
  230. package/.output/server/_libs/basic-ftp.mjs +0 -1906
  231. package/.output/server/_libs/compressjs.mjs +0 -50
  232. package/.output/server/_libs/degenerator+[...].mjs +0 -9964
  233. package/.output/server/_libs/get-uri.mjs +0 -413
  234. package/.output/server/_libs/http-proxy-agent.mjs +0 -123
  235. package/.output/server/_libs/ip-address.mjs +0 -1423
  236. package/.output/server/_libs/lru-cache.mjs +0 -732
  237. package/.output/server/_libs/netmask.mjs +0 -139
  238. package/.output/server/_libs/pac-proxy-agent+[...].mjs +0 -3104
  239. package/.output/server/_libs/proxy-agent+proxy-from-env.mjs +0 -204
  240. package/.output/server/_libs/smithy__core.mjs +0 -192
  241. package/.output/server/node_modules/tslib/modules/index.js +0 -70
  242. package/.output/server/node_modules/tslib/modules/package.json +0 -3
  243. package/.output/server/node_modules/tslib/package.json +0 -47
  244. package/.output/server/node_modules/tslib/tslib.js +0 -484
  245. package/bin/piclaw.mjs +0 -195
@@ -47,7 +47,7 @@ function parseAST(input) {
47
47
  }
48
48
  async function init() {
49
49
  if (_hasInstance()) return;
50
- let { default: instance } = await import("./_100.mjs");
50
+ let { default: instance } = await import("./_86.mjs");
51
51
  if (instance instanceof WebAssembly.Module) instance = await WebAssembly.instantiate(instance, _imports);
52
52
  _setInstance(instance);
53
53
  }
@@ -1,14 +1,14 @@
1
1
  import { n as __esmMin } from "../_runtime.mjs";
2
- import { n as dataUriToBuffer, r as init_dist } from "./data-uri-to-buffer.mjs";
2
+ import { n as init_dist, t as dataUriToBuffer } from "./data-uri-to-buffer.mjs";
3
3
  import { a as init_fetch_blob, i as Blob, n as File, t as init_from } from "./fetch-blob+node-domexception.mjs";
4
4
  import { n as formDataToBlob, r as init_esm_min, t as FormData } from "./formdata-polyfill.mjs";
5
- import Stream, { PassThrough, pipeline } from "node:stream";
6
- import { deprecate, promisify, types } from "node:util";
7
5
  import { Buffer } from "node:buffer";
8
6
  import { format } from "node:url";
9
7
  import zlib from "node:zlib";
10
8
  import nodeHTTP from "node:http";
9
+ import Pe, { PassThrough, pipeline } from "node:stream";
11
10
  import nodeHTTPS from "node:https";
11
+ import { deprecate, promisify, types } from "node:util";
12
12
  import { isIP } from "node:net";
13
13
  var FetchBaseError;
14
14
  var init_base = __esmMin((() => {
@@ -84,7 +84,7 @@ async function consumeBody(data) {
84
84
  const { body } = data;
85
85
  if (body === null) return Buffer.alloc(0);
86
86
  /* c8 ignore next 3 */
87
- if (!(body instanceof Stream)) return Buffer.alloc(0);
87
+ if (!(body instanceof Pe)) return Buffer.alloc(0);
88
88
  const accum = [];
89
89
  let accumBytes = 0;
90
90
  try {
@@ -115,7 +115,7 @@ var init_body = __esmMin((() => {
115
115
  init_fetch_error();
116
116
  init_base();
117
117
  init_is();
118
- pipeline$1 = promisify(Stream.pipeline);
118
+ pipeline$1 = promisify(Pe.pipeline);
119
119
  INTERNALS$2 = Symbol("Body internals");
120
120
  Body = class {
121
121
  constructor(body, { size = 0 } = {}) {
@@ -124,13 +124,13 @@ var init_body = __esmMin((() => {
124
124
  else if (isURLSearchParameters(body)) body = Buffer.from(body.toString());
125
125
  else if (isBlob(body)) {} else if (Buffer.isBuffer(body)) {} else if (types.isAnyArrayBuffer(body)) body = Buffer.from(body);
126
126
  else if (ArrayBuffer.isView(body)) body = Buffer.from(body.buffer, body.byteOffset, body.byteLength);
127
- else if (body instanceof Stream) {} else if (body instanceof FormData) {
127
+ else if (body instanceof Pe) {} else if (body instanceof FormData) {
128
128
  body = formDataToBlob(body);
129
129
  boundary = body.type.split("=")[1];
130
130
  } else body = Buffer.from(String(body));
131
131
  let stream = body;
132
- if (Buffer.isBuffer(body)) stream = Stream.Readable.from(body);
133
- else if (isBlob(body)) stream = Stream.Readable.from(body.stream());
132
+ if (Buffer.isBuffer(body)) stream = Pe.Readable.from(body);
133
+ else if (isBlob(body)) stream = Pe.Readable.from(body.stream());
134
134
  this[INTERNALS$2] = {
135
135
  body,
136
136
  stream,
@@ -139,7 +139,7 @@ var init_body = __esmMin((() => {
139
139
  error: null
140
140
  };
141
141
  this.size = size;
142
- if (body instanceof Stream) body.on("error", (error_) => {
142
+ if (body instanceof Pe) body.on("error", (error_) => {
143
143
  const error = error_ instanceof FetchBaseError ? error_ : new FetchError(`Invalid response body while trying to fetch ${this.url}: ${error_.message}`, "system", error_);
144
144
  this[INTERNALS$2].error = error;
145
145
  });
@@ -167,7 +167,7 @@ var init_body = __esmMin((() => {
167
167
  for (const [name, value] of parameters) formData.append(name, value);
168
168
  return formData;
169
169
  }
170
- const { toFormData } = await import("./_104.mjs");
170
+ const { toFormData } = await import("./_91.mjs");
171
171
  return toFormData(this.body, ct);
172
172
  }
173
173
  /**
@@ -221,7 +221,7 @@ var init_body = __esmMin((() => {
221
221
  let p2;
222
222
  let { body } = instance[INTERNALS$2];
223
223
  if (instance.bodyUsed) throw new Error("cannot clone body after it is used");
224
- if (body instanceof Stream && typeof body.getBoundary !== "function") {
224
+ if (body instanceof Pe && typeof body.getBoundary !== "function") {
225
225
  p1 = new PassThrough({ highWaterMark });
226
226
  p2 = new PassThrough({ highWaterMark });
227
227
  body.pipe(p1);
@@ -240,7 +240,7 @@ var init_body = __esmMin((() => {
240
240
  if (Buffer.isBuffer(body) || types.isAnyArrayBuffer(body) || ArrayBuffer.isView(body)) return null;
241
241
  if (body instanceof FormData) return `multipart/form-data; boundary=${request[INTERNALS$2].boundary}`;
242
242
  if (body && typeof body.getBoundary === "function") return `multipart/form-data;boundary=${getNonSpecFormDataBoundary(body)}`;
243
- if (body instanceof Stream) return null;
243
+ if (body instanceof Pe) return null;
244
244
  return "text/plain;charset=UTF-8";
245
245
  };
246
246
  getTotalBytes = (request) => {
@@ -888,7 +888,7 @@ async function fetch(url, options_) {
888
888
  const abort = () => {
889
889
  const error = new AbortError("The operation was aborted.");
890
890
  reject(error);
891
- if (request.body && request.body instanceof Stream.Readable) request.body.destroy(error);
891
+ if (request.body && request.body instanceof Pe.Readable) request.body.destroy(error);
892
892
  if (!response || !response.body) return;
893
893
  response.body.emit("error", error);
894
894
  };
@@ -974,7 +974,7 @@ async function fetch(url, options_) {
974
974
  "cookie",
975
975
  "cookie2"
976
976
  ]) requestOptions.headers.delete(name);
977
- if (response_.statusCode !== 303 && request.body && options_.body instanceof Stream.Readable) {
977
+ if (response_.statusCode !== 303 && request.body && options_.body instanceof Pe.Readable) {
978
978
  reject(new FetchError("Cannot follow redirect with body being a readable stream", "unsupported-redirect"));
979
979
  finalize();
980
980
  return;
@@ -1,9 +1,9 @@
1
1
  import { createRequire } from "node:module";
2
2
  import { createReadStream, createWriteStream } from "node:fs";
3
3
  import * as path$1 from "node:path";
4
+ import { fileURLToPath } from "node:url";
4
5
  import { Transform } from "node:stream";
5
6
  import * as os$1 from "node:os";
6
- import { fileURLToPath } from "node:url";
7
7
  import { pipeline as pipeline$1 } from "node:stream/promises";
8
8
  import * as assert from "node:assert";
9
9
  import { EventEmitter } from "node:events";
@@ -1,4 +1,4 @@
1
- import { a as __require, t as __commonJSMin } from "../_runtime.mjs";
1
+ import { i as __require, t as __commonJSMin } from "../_runtime.mjs";
2
2
  var require_photon_rs = /* @__PURE__ */ __commonJSMin(((exports, module) => {
3
3
  var imports = {};
4
4
  imports["__wbindgen_placeholder__"] = module.exports;
@@ -1,18 +1,37 @@
1
- import { a as getDevice, c as parseCookies, l as registerDevice, n as COOKIE_NAME, o as makeSetCookie, t as COOKIE_MAX_AGE } from "../../../_chunks/auth.mjs";
1
+ import { a as getDevice, c as parseCookies, l as registerDevice, n as COOKIE_NAME, o as makeSetCookie, r as approveDevice, t as COOKIE_MAX_AGE } from "../../../_chunks/auth.mjs";
2
2
  import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
3
3
  var status_get_default = defineHandler(async (event) => {
4
- const deviceId = parseCookies(event.req.headers.get("cookie") || "")[COOKIE_NAME];
4
+ const cookies = parseCookies(event.req.headers.get("cookie") || "");
5
+ const deviceId = cookies[COOKIE_NAME];
6
+ const appSecret = process.env.PICLAW_APP_SECRET;
7
+ const isApp = !!(appSecret && cookies["piclaw_app_token"] === appSecret);
5
8
  if (deviceId) {
6
9
  const device = await getDevice(deviceId);
7
- if (device) return {
8
- status: device.status,
9
- device
10
- };
10
+ if (device) {
11
+ if (isApp && device.status === "pending") {
12
+ await approveDevice(device.id);
13
+ return {
14
+ status: "approved",
15
+ device: {
16
+ ...device,
17
+ status: "approved"
18
+ }
19
+ };
20
+ }
21
+ return {
22
+ status: device.status,
23
+ device
24
+ };
25
+ }
11
26
  }
12
27
  const device = await registerDevice({
13
28
  userAgent: event.req.headers.get("user-agent") || "",
14
29
  ip: event.req.ip || "unknown"
15
30
  });
31
+ if (isApp && device.status === "pending") {
32
+ await approveDevice(device.id);
33
+ device.status = "approved";
34
+ }
16
35
  event.res.headers.append("Set-Cookie", makeSetCookie(device.id, COOKIE_MAX_AGE));
17
36
  return {
18
37
  status: device.status,
@@ -1,5 +1,6 @@
1
1
  import { s as config } from "../../_chunks/config.mjs";
2
2
  import { a as defineHandler, n as HTTPError } from "../../_libs/h3+rou3+srvx.mjs";
3
+ import { t as deviceBus } from "../../_chunks/device-bus.mjs";
3
4
  var index_patch_default = defineHandler(async (event) => {
4
5
  const { key, value } = await event.req.json();
5
6
  if (typeof key !== "string" || !key) throw new HTTPError("key is required", { status: 400 });
@@ -9,6 +10,7 @@ var index_patch_default = defineHandler(async (event) => {
9
10
  } catch {
10
11
  throw new HTTPError(`Invalid config key: ${key}`, { status: 400 });
11
12
  }
13
+ deviceBus.emitDeviceEvent("config", { key });
12
14
  return { ok: true };
13
15
  });
14
16
  export { index_patch_default as default };
@@ -1,4 +1,3 @@
1
- import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
2
1
  import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
3
2
  import { t as server } from "../../../_chunks/server.mjs";
4
3
  import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
@@ -1,12 +1,14 @@
1
- import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
1
+ import { s as config } from "../../_chunks/config.mjs";
2
2
  import { a as defineHandler } from "../../_libs/h3+rou3+srvx.mjs";
3
3
  import { t as server } from "../../_chunks/server.mjs";
4
4
  import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
5
5
  var index_get_default = defineHandler(() => {
6
6
  const groups = server.getRegisteredGroups();
7
+ const enforced = config.get("sandbox") === "enforced";
7
8
  return Object.entries(groups).map(([jid, g]) => ({
8
9
  jid,
9
- ...g
10
+ ...g,
11
+ ...enforced ? { sandbox: "enforced" } : {}
10
12
  }));
11
13
  });
12
14
  export { index_get_default as default };
@@ -1,22 +1,23 @@
1
+ import { s as config } from "../../_chunks/config.mjs";
1
2
  import { t as createLogger } from "../../_chunks/logger.mjs";
2
- import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
3
3
  import { a as defineHandler, n as HTTPError } from "../../_libs/h3+rou3+srvx.mjs";
4
4
  import { t as server } from "../../_chunks/server.mjs";
5
5
  import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
6
6
  import { t as deviceBus } from "../../_chunks/device-bus.mjs";
7
7
  var logger = createLogger("api:groups");
8
8
  var index_post_default = defineHandler(async (event) => {
9
- const { jid, name, folder, trigger, model, thinkingLevel, soul } = await event.req.json();
9
+ const { jid, name, folder, trigger, model, thinkingLevel, soul, sandbox } = await event.req.json();
10
10
  if (!jid || !name || !folder) throw new HTTPError("jid, name, and folder are required", { status: 400 });
11
11
  const group = {
12
12
  name,
13
13
  folder,
14
- trigger: trigger || `@${server.assistantName}`,
14
+ trigger: trigger || `@${folder}`,
15
15
  requiresTrigger: !!trigger,
16
16
  added_at: (/* @__PURE__ */ new Date()).toISOString(),
17
17
  ...model ? { model } : {},
18
18
  ...thinkingLevel && thinkingLevel !== "off" ? { thinkingLevel } : {},
19
- ...soul ? { soul } : {}
19
+ ...soul ? { soul } : {},
20
+ ...resolveSandbox(sandbox) ? { sandbox: true } : {}
20
21
  };
21
22
  await server.setRegisteredGroup(jid, group, {
22
23
  channel: "admin",
@@ -29,12 +30,20 @@ var index_post_default = defineHandler(async (event) => {
29
30
  folder
30
31
  }, "Admin: group registered");
31
32
  deviceBus.emitDeviceEvent("groups");
33
+ const enforced = config.get("sandbox") === "enforced";
32
34
  return {
33
35
  ok: true,
34
36
  group: {
35
37
  jid,
36
- ...group
38
+ ...group,
39
+ ...enforced ? { sandbox: "enforced" } : {}
37
40
  }
38
41
  };
39
42
  });
43
+ /** Resolve sandbox for new group: explicit request > global config default */
44
+ function resolveSandbox(explicit) {
45
+ if (explicit !== void 0) return !!explicit;
46
+ const global = config.get("sandbox");
47
+ return global === "true" || global === "enforced";
48
+ }
40
49
  export { index_post_default as default };
@@ -1,4 +1,3 @@
1
- import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
2
1
  import { a as defineHandler } from "../../_libs/h3+rou3+srvx.mjs";
3
2
  import { r as startTime } from "../../_chunks/server.mjs";
4
3
  import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
@@ -1,4 +1,3 @@
1
- import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
2
1
  import { a as defineHandler, n as HTTPError } from "../../../_libs/h3+rou3+srvx.mjs";
3
2
  import { c as authStorage, u as modelRegistry } from "../../../_chunks/server.mjs";
4
3
  import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
@@ -1,4 +1,3 @@
1
- import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
2
1
  import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
3
2
  import { c as authStorage } from "../../../_chunks/server.mjs";
4
3
  import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
@@ -1,6 +1,5 @@
1
- import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
2
1
  import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
3
- import { i as commandDescriptions, l as getFilteredModels } from "../../../_chunks/server.mjs";
2
+ import { a as commandDescriptions, l as getFilteredModels } from "../../../_chunks/server.mjs";
4
3
  import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
5
4
  var commands_get_default = defineHandler(() => {
6
5
  return commandDescriptions.map((cmd) => {
@@ -1,4 +1,3 @@
1
- import "../../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
2
1
  import { a as defineHandler, c as getQuery, i as createEventStream, n as HTTPError } from "../../../../_libs/h3+rou3+srvx.mjs";
3
2
  import "../../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
4
3
  import { t as LoginSession } from "../../../../_chunks/login.mjs";
@@ -1,4 +1,3 @@
1
- import "../../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
2
1
  import { a as defineHandler, n as HTTPError } from "../../../../_libs/h3+rou3+srvx.mjs";
3
2
  import "../../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
4
3
  import { t as deviceBus } from "../../../../_chunks/device-bus.mjs";
@@ -1,4 +1,3 @@
1
- import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
2
1
  import { a as defineHandler, n as HTTPError } from "../../../_libs/h3+rou3+srvx.mjs";
3
2
  import { c as authStorage } from "../../../_chunks/server.mjs";
4
3
  import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
@@ -1,4 +1,3 @@
1
- import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
2
1
  import { a as defineHandler, n as HTTPError } from "../../../_libs/h3+rou3+srvx.mjs";
3
2
  import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
4
3
  import { t as deviceBus } from "../../../_chunks/device-bus.mjs";
@@ -1,4 +1,3 @@
1
- import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
2
1
  import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
3
2
  import { l as getFilteredModels } from "../../../_chunks/server.mjs";
4
3
  import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
@@ -1,4 +1,3 @@
1
- import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
2
1
  import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
3
2
  import { s as getPiSdkStatus } from "../../../_chunks/server.mjs";
4
3
  import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
@@ -0,0 +1,26 @@
1
+ import { a as defineHandler } from "../../_libs/h3+rou3+srvx.mjs";
2
+ import { t as server } from "../../_chunks/server.mjs";
3
+ import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
4
+ import { t as sandboxManager } from "../../_chunks/sandbox.mjs";
5
+ var index_get_default = defineHandler(() => {
6
+ const active = sandboxManager.getAll();
7
+ const activeIds = new Set(active.map((s) => s.id));
8
+ const groups = server.getRegisteredGroups();
9
+ const inactive = Object.entries(groups).filter(([_jid, g]) => !activeIds.has(g.folder)).map(([_jid, g]) => ({
10
+ id: g.folder,
11
+ cwd: "",
12
+ fileCount: 0,
13
+ overlay: false,
14
+ active: false,
15
+ groupName: g.name
16
+ }));
17
+ return [...active.map((s) => {
18
+ const group = Object.values(groups).find((g) => g.folder === s.id);
19
+ return {
20
+ ...s,
21
+ active: true,
22
+ groupName: group?.name
23
+ };
24
+ }), ...inactive];
25
+ });
26
+ export { index_get_default as default };
@@ -0,0 +1,17 @@
1
+ import { a as defineHandler, d as readBody } from "../../_libs/h3+rou3+srvx.mjs";
2
+ import { t as deviceBus } from "../../_chunks/device-bus.mjs";
3
+ import { t as sandboxManager } from "../../_chunks/sandbox.mjs";
4
+ var index_post_default = defineHandler(async (event) => {
5
+ const body = await readBody(event) || {};
6
+ const id = String(body.id || `sb-${Date.now().toString(36)}`);
7
+ const sb = sandboxManager.get(id, {
8
+ cwd: body.cwd,
9
+ files: body.files
10
+ });
11
+ deviceBus.emitDeviceEvent("sandbox");
12
+ return {
13
+ id: sb.id,
14
+ cwd: sb.cwd
15
+ };
16
+ });
17
+ export { index_post_default as default };
@@ -1,7 +1,6 @@
1
1
  import { T as storeMessage, w as storeChatMetadata } from "../../_chunks/db.mjs";
2
- import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
3
2
  import { a as defineHandler, n as HTTPError } from "../../_libs/h3+rou3+srvx.mjs";
4
- import { a as tryBashCommand, o as tryPriorityCommand, t as server } from "../../_chunks/server.mjs";
3
+ import { i as formatMessages, o as tryPriorityCommand, t as server } from "../../_chunks/server.mjs";
5
4
  import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
6
5
  import { t as deviceBus } from "../../_chunks/device-bus.mjs";
7
6
  import { a as saveAttachment } from "../../_chunks/uploads.mjs";
@@ -16,14 +15,6 @@ var send_post_default = defineHandler(async (event) => {
16
15
  const now = (/* @__PURE__ */ new Date()).toISOString();
17
16
  const group = server.getRegisteredGroups()[jid];
18
17
  const trimmed = message.trim();
19
- if (trimmed && group && tryBashCommand({
20
- chatJid: jid,
21
- group,
22
- server
23
- }, trimmed)) return {
24
- ok: true,
25
- method: "bash_command"
26
- };
27
18
  if (trimmed && group && tryPriorityCommand({
28
19
  chatJid: jid,
29
20
  group,
@@ -34,7 +25,7 @@ var send_post_default = defineHandler(async (event) => {
34
25
  };
35
26
  const msgId = crypto.randomUUID();
36
27
  const attachments = rawAttachments?.length && group ? rawAttachments.map((a) => saveAttachment(group.folder, msgId, a)) : void 0;
37
- await storeMessage({
28
+ const msg = {
38
29
  id: msgId,
39
30
  chat_jid: jid,
40
31
  sender: senderName,
@@ -44,10 +35,19 @@ var send_post_default = defineHandler(async (event) => {
44
35
  is_from_me: false,
45
36
  is_bot_message: false,
46
37
  meta: attachments?.length ? { attachments } : void 0
47
- });
38
+ };
39
+ await storeMessage(msg);
48
40
  await storeChatMetadata(jid, now, void 0, "admin");
49
41
  deviceBus.emitDeviceEvent("chats");
50
42
  if (group) {
43
+ const delivered = server.pi.sendMessage(jid, formatMessages([msg]));
44
+ if (delivered) {
45
+ await server.advanceCursor(jid, now);
46
+ return {
47
+ ok: true,
48
+ method: delivered
49
+ };
50
+ }
51
51
  server.queue.enqueueMessageCheck(jid);
52
52
  return {
53
53
  ok: true,
@@ -1,5 +1,4 @@
1
1
  import { a as getAllChats, c as getAllTasks } from "../../_chunks/db.mjs";
2
- import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
3
2
  import { a as defineHandler } from "../../_libs/h3+rou3+srvx.mjs";
4
3
  import { d as getSystemInfo, r as startTime, t as server } from "../../_chunks/server.mjs";
5
4
  import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
@@ -1,4 +1,3 @@
1
- import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
2
1
  import { a as defineHandler, n as HTTPError } from "../../_libs/h3+rou3+srvx.mjs";
3
2
  import { t as server } from "../../_chunks/server.mjs";
4
3
  import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
@@ -1,6 +1,5 @@
1
1
  import { t as createLogger } from "../../_chunks/logger.mjs";
2
2
  import { n as createTask } from "../../_chunks/db.mjs";
3
- import "../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
4
3
  import { a as defineHandler, n as HTTPError } from "../../_libs/h3+rou3+srvx.mjs";
5
4
  import { t as server } from "../../_chunks/server.mjs";
6
5
  import "../../_libs/@mariozechner/pi-agent-core+[...].mjs";
@@ -1,5 +1,4 @@
1
1
  import { t as createLogger } from "../../../_chunks/logger.mjs";
2
- import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
3
2
  import { a as defineHandler, n as HTTPError } from "../../../_libs/h3+rou3+srvx.mjs";
4
3
  import { t as server } from "../../../_chunks/server.mjs";
5
4
  import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
@@ -1,5 +1,4 @@
1
1
  import { l as getConfig } from "../../../_chunks/db.mjs";
2
- import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
3
2
  import { a as defineHandler } from "../../../_libs/h3+rou3+srvx.mjs";
4
3
  import { t as server } from "../../../_chunks/server.mjs";
5
4
  import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
@@ -7,7 +7,8 @@ var index_post_default = defineHandler(async (event) => {
7
7
  rows: body.rows,
8
8
  cwd: body.cwd,
9
9
  label: body.label,
10
- virtual: body.virtual
10
+ sandbox: body.sandbox,
11
+ sandboxId: body.sandboxId
11
12
  });
12
13
  return {
13
14
  id: session.id,
@@ -1,5 +1,4 @@
1
1
  import { t as createLogger } from "../../../_chunks/logger.mjs";
2
- import "../../../_libs/@aws-sdk/client-bedrock-runtime+[...].mjs";
3
2
  import { a as defineHandler, n as HTTPError } from "../../../_libs/h3+rou3+srvx.mjs";
4
3
  import { t as server } from "../../../_chunks/server.mjs";
5
4
  import "../../../_libs/@mariozechner/pi-agent-core+[...].mjs";
@@ -26,11 +26,10 @@ var __copyProps = (to, from, except, desc) => {
26
26
  }
27
27
  return to;
28
28
  };
29
- var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
30
29
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
31
30
  value: mod,
32
31
  enumerable: true
33
32
  }) : target, mod));
34
33
  var __toCommonJS = (mod) => __hasOwnProp.call(mod, "module.exports") ? mod["module.exports"] : __copyProps(__defProp({}, "__esModule", { value: true }), mod);
35
34
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
36
- export { __require as a, __reExport as i, __esmMin as n, __toCommonJS as o, __exportAll as r, __toESM as s, __commonJSMin as t };
35
+ export { __toCommonJS as a, __require as i, __esmMin as n, __toESM as o, __exportAll as r, __commonJSMin as t };
@@ -7,7 +7,7 @@ async function startServer(opts = {}) {
7
7
  if (server) return server;
8
8
  const { useNitroApp } = await import("./_chunks/app.mjs");
9
9
  const nitroApp = useNitroApp();
10
- const { serve } = await import("./_libs/_101.mjs");
10
+ const { serve } = await import("./_libs/_87.mjs");
11
11
  server = serve({
12
12
  port: process.env.PORT || 3737,
13
13
  hostname: process.env.HOSTNAME || "0.0.0.0",