@parall/daemon 1.56.1 → 1.57.1

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.
@@ -178,6 +178,13 @@ var init_browser_viewer = __esm({
178
178
  }
179
179
  });
180
180
 
181
+ // ts/sdk/dist/browser-use.js
182
+ var init_browser_use = __esm({
183
+ "ts/sdk/dist/browser-use.js"() {
184
+ "use strict";
185
+ }
186
+ });
187
+
181
188
  // ts/sdk/dist/attachment-types.js
182
189
  var init_attachment_types = __esm({
183
190
  "ts/sdk/dist/attachment-types.js"() {
@@ -225,6 +232,8 @@ var init_constants = __esm({
225
232
  // Users
226
233
  USERS_ME: `${API_BASE}/users/me`,
227
234
  USER_AVATAR: `${API_BASE}/users/me/avatar`,
235
+ PERSONAL_API_KEYS: `${API_BASE}/users/me/api-keys`,
236
+ PERSONAL_API_KEY: (keyId) => `${API_BASE}/users/me/api-keys/${keyId}`,
228
237
  USER: (id) => `${API_BASE}/users/${id}`,
229
238
  // WebSocket ticket
230
239
  WS_TICKET: `${API_BASE}/ws/ticket`,
@@ -239,6 +248,24 @@ var init_constants = __esm({
239
248
  TEAM_MEMBERS: (orgId, teamId) => `${API_BASE}/orgs/${orgId}/teams/${teamId}/members`,
240
249
  TEAM_MEMBER: (orgId, teamId, userId) => `${API_BASE}/orgs/${orgId}/teams/${teamId}/members/${userId}`,
241
250
  ORG_MEMBERS_ONLINE: (orgId) => `${API_BASE}/orgs/${orgId}/members/online`,
251
+ LLM_PROVIDERS: (orgId) => `${API_BASE}/orgs/${orgId}/llm-providers`,
252
+ LLM_PROVIDER: (orgId, providerId) => `${API_BASE}/orgs/${orgId}/llm-providers/${providerId}`,
253
+ ORG_LLM_MODELS: (orgId) => `${API_BASE}/orgs/${orgId}/llm-models`,
254
+ ORG_LLM_MODEL: (orgId, modelRowId) => `${API_BASE}/orgs/${orgId}/llm-models/${modelRowId}`,
255
+ /**
256
+ * Platform catalog merged with this org's own model rows. Pass `runtime` to
257
+ * filter org-added models to the ones that runtime can actually reach —
258
+ * without it a picker can offer a model the write path rejects.
259
+ */
260
+ ORG_MODEL_CATALOG: (orgId, runtime, includeModel) => {
261
+ const params = new URLSearchParams();
262
+ if (runtime)
263
+ params.set("runtime", runtime);
264
+ if (includeModel)
265
+ params.set("include_model", includeModel);
266
+ const qs = params.toString();
267
+ return `${API_BASE}/orgs/${orgId}/models${qs ? `?${qs}` : ""}`;
268
+ },
242
269
  ORG_MEMBER: (orgId, userId) => `${API_BASE}/orgs/${orgId}/members/${userId}`,
243
270
  ORG_MEMBER_CHATS: (orgId, memberId) => `${API_BASE}/orgs/${orgId}/members/${memberId}/chats`,
244
271
  ORG_MEMBER_TASKS: (orgId, memberId) => `${API_BASE}/orgs/${orgId}/members/${memberId}/tasks`,
@@ -1017,6 +1044,63 @@ var init_wechat_client = __esm({
1017
1044
  }
1018
1045
  });
1019
1046
 
1047
+ // ts/sdk/dist/llm-provider-client.js
1048
+ var LLMProviderClient;
1049
+ var init_llm_provider_client = __esm({
1050
+ "ts/sdk/dist/llm-provider-client.js"() {
1051
+ "use strict";
1052
+ init_constants();
1053
+ init_wechat_client();
1054
+ LLMProviderClient = class extends WechatClient {
1055
+ async getLLMProviders(orgId) {
1056
+ const response = await this.request("GET", ENDPOINTS.LLM_PROVIDERS(orgId));
1057
+ return response.data;
1058
+ }
1059
+ async createLLMProvider(orgId, data) {
1060
+ return this.request("POST", ENDPOINTS.LLM_PROVIDERS(orgId), data);
1061
+ }
1062
+ /** Omitting `api_key` leaves the stored credential untouched. */
1063
+ async updateLLMProvider(orgId, providerId, data) {
1064
+ return this.request("PATCH", ENDPOINTS.LLM_PROVIDER(orgId, providerId), data);
1065
+ }
1066
+ /** Fails with PROVIDER_IN_USE while model rows still point at it. */
1067
+ async deleteLLMProvider(orgId, providerId) {
1068
+ return this.request("DELETE", ENDPOINTS.LLM_PROVIDER(orgId, providerId));
1069
+ }
1070
+ async getOrgLLMModels(orgId) {
1071
+ const response = await this.request("GET", ENDPOINTS.ORG_LLM_MODELS(orgId));
1072
+ return response.data;
1073
+ }
1074
+ async createOrgLLMModel(orgId, data) {
1075
+ return this.request("POST", ENDPOINTS.ORG_LLM_MODELS(orgId), data);
1076
+ }
1077
+ /**
1078
+ * Patches a model row in place. Repointing a provider or fixing an upstream
1079
+ * name this way avoids the delete-and-recreate window, during which an
1080
+ * org-only model has no upstream at all and its pinned agents fail.
1081
+ */
1082
+ async updateOrgLLMModel(orgId, modelRowId, data) {
1083
+ return this.request("PATCH", ENDPOINTS.ORG_LLM_MODEL(orgId, modelRowId), data);
1084
+ }
1085
+ async deleteOrgLLMModel(orgId, modelRowId) {
1086
+ return this.request("DELETE", ENDPOINTS.ORG_LLM_MODEL(orgId, modelRowId));
1087
+ }
1088
+ /**
1089
+ * The catalog as this org sees it: platform models with the org's rows
1090
+ * merged in. Distinct from the public model catalog, which stays org-agnostic
1091
+ * and cacheable — use this one wherever an org context exists.
1092
+ *
1093
+ * Pass `runtime` on a picker: org-added models are then filtered to what that
1094
+ * runtime's protocol can reach, matching the server-side pin validation.
1095
+ */
1096
+ async getOrgModelCatalog(orgId, runtime, includeModel) {
1097
+ const response = await this.request("GET", ENDPOINTS.ORG_MODEL_CATALOG(orgId, runtime, includeModel));
1098
+ return response.data;
1099
+ }
1100
+ };
1101
+ }
1102
+ });
1103
+
1020
1104
  // ts/sdk/dist/attachment-client.js
1021
1105
  function isRetryableCompletionError(error) {
1022
1106
  if (!error || typeof error !== "object" || !("status" in error))
@@ -1029,9 +1113,9 @@ var init_attachment_client = __esm({
1029
1113
  "ts/sdk/dist/attachment-client.js"() {
1030
1114
  "use strict";
1031
1115
  init_constants();
1032
- init_wechat_client();
1116
+ init_llm_provider_client();
1033
1117
  COMPLETION_RETRY_DELAYS_MS = [250, 750];
1034
- AttachmentClient = class extends WechatClient {
1118
+ AttachmentClient = class extends LLMProviderClient {
1035
1119
  async getUploadPresignUrl(orgId, req) {
1036
1120
  return this.request("POST", ENDPOINTS.UPLOAD_PRESIGN(orgId), req);
1037
1121
  }
@@ -1061,14 +1145,110 @@ var init_attachment_client = __esm({
1061
1145
  }
1062
1146
  });
1063
1147
 
1064
- // ts/sdk/dist/client.js
1148
+ // ts/sdk/dist/wiki-upload.js
1149
+ function createWikiUploadFormData(params) {
1150
+ const form = new FormData();
1151
+ form.append("path", params.path);
1152
+ form.append("file", params.file);
1153
+ if (params.message)
1154
+ form.append("message", params.message);
1155
+ if (params.uploadId)
1156
+ form.append("upload_id", params.uploadId);
1157
+ if (params.conflict)
1158
+ form.append("conflict", params.conflict);
1159
+ if ("contentRoute" in params && params.contentRoute) {
1160
+ form.append("content_route", params.contentRoute);
1161
+ }
1162
+ return form;
1163
+ }
1164
+ function sendMultipartRequest(options) {
1165
+ if (options.onProgress && typeof XMLHttpRequest !== "undefined") {
1166
+ return multipartXHR(options, options.onProgress);
1167
+ }
1168
+ const timeoutSignal = AbortSignal.timeout(options.timeoutMs);
1169
+ const signal = options.signal ? AbortSignal.any([options.signal, timeoutSignal]) : timeoutSignal;
1170
+ return fetch(options.url, {
1171
+ method: options.method,
1172
+ headers: options.headers,
1173
+ body: options.body,
1174
+ signal
1175
+ });
1176
+ }
1177
+ function multipartXHR(options, onProgress) {
1178
+ return new Promise((resolve9, reject) => {
1179
+ const xhr = new XMLHttpRequest();
1180
+ let settled = false;
1181
+ const finish = (fn) => {
1182
+ if (settled)
1183
+ return;
1184
+ settled = true;
1185
+ options.signal?.removeEventListener("abort", abortFromSignal);
1186
+ fn();
1187
+ };
1188
+ const abortFromSignal = () => xhr.abort();
1189
+ xhr.open(options.method, options.url, true);
1190
+ xhr.timeout = options.timeoutMs;
1191
+ for (const [name, value] of Object.entries(options.headers)) {
1192
+ xhr.setRequestHeader(name, value);
1193
+ }
1194
+ xhr.upload.onprogress = (event) => {
1195
+ try {
1196
+ onProgress(event.loaded, event.lengthComputable ? event.total : 0);
1197
+ } catch {
1198
+ }
1199
+ };
1200
+ xhr.onload = () => finish(() => {
1201
+ const responseHeaders = new Headers();
1202
+ for (const line of xhr.getAllResponseHeaders().trim().split(/[\r\n]+/)) {
1203
+ if (!line)
1204
+ continue;
1205
+ const separator = line.indexOf(":");
1206
+ if (separator > 0) {
1207
+ responseHeaders.append(line.slice(0, separator).trim(), line.slice(separator + 1).trim());
1208
+ }
1209
+ }
1210
+ const responseBody = xhr.status === 204 || xhr.responseText === "" ? null : xhr.responseText;
1211
+ resolve9(new Response(responseBody, {
1212
+ status: xhr.status,
1213
+ statusText: xhr.statusText,
1214
+ headers: responseHeaders
1215
+ }));
1216
+ });
1217
+ xhr.onerror = () => finish(() => reject(new TypeError("Network request failed")));
1218
+ xhr.ontimeout = () => finish(() => reject(new DOMException("Request timed out", "TimeoutError")));
1219
+ xhr.onabort = () => finish(() => reject(new DOMException("Request aborted", "AbortError")));
1220
+ if (options.signal?.aborted) {
1221
+ finish(() => reject(new DOMException("Request aborted", "AbortError")));
1222
+ return;
1223
+ }
1224
+ options.signal?.addEventListener("abort", abortFromSignal, { once: true });
1225
+ xhr.send(options.body);
1226
+ });
1227
+ }
1228
+ var init_wiki_upload = __esm({
1229
+ "ts/sdk/dist/wiki-upload.js"() {
1230
+ "use strict";
1231
+ }
1232
+ });
1233
+
1234
+ // ts/sdk/dist/wiki-changeset.js
1065
1235
  function normalizeWikiChangeset(changeset) {
1066
1236
  return {
1067
1237
  ...changeset,
1238
+ head_branch: changeset.head_branch ?? null,
1239
+ base_commit: changeset.base_commit ?? null,
1240
+ merge_commit: changeset.merge_commit ?? null,
1068
1241
  changed_paths: changeset.changed_paths ?? [],
1069
1242
  file_changes: changeset.file_changes ?? []
1070
1243
  };
1071
1244
  }
1245
+ var init_wiki_changeset = __esm({
1246
+ "ts/sdk/dist/wiki-changeset.js"() {
1247
+ "use strict";
1248
+ }
1249
+ });
1250
+
1251
+ // ts/sdk/dist/client.js
1072
1252
  function buildApiError(res, rawErrorBody) {
1073
1253
  const errorBody = rawErrorBody !== null && typeof rawErrorBody === "object" ? rawErrorBody : {};
1074
1254
  const errorObj = errorBody.error && typeof errorBody.error === "object" ? errorBody.error : void 0;
@@ -1106,6 +1286,8 @@ var init_client = __esm({
1106
1286
  init_browser_viewer();
1107
1287
  init_constants();
1108
1288
  init_attachment_client();
1289
+ init_wiki_upload();
1290
+ init_wiki_changeset();
1109
1291
  ParallClient = class _ParallClient extends AttachmentClient {
1110
1292
  baseUrl;
1111
1293
  wikiBaseUrl;
@@ -1310,23 +1492,27 @@ var init_client = __esm({
1310
1492
  * Multipart upload variant of `request`. Same auth / refresh / error
1311
1493
  * handling, but lets the caller hand us a prepared `FormData` (file +
1312
1494
  * text fields) and skips the JSON content-type. Used by
1313
- * uploadWikiFile / uploadWikiFileToChangeset — wiki binary uploads can
1495
+ * uploadWikiFile / uploadWikiFileToChangeset — wiki file uploads can
1314
1496
  * hit the 100 MiB cap, so a longer 5-minute timeout is used so a
1315
1497
  * 50 MiB blob on a slow connection doesn't get chopped at 15 s.
1316
1498
  */
1317
- async multipartRequest(method, path23, body, retried = false) {
1499
+ async multipartRequest(method, path23, body, retried = false, opts) {
1318
1500
  if (!retried) {
1319
1501
  await this.ensureFreshToken(path23);
1320
1502
  }
1321
1503
  const { "Content-Type": _drop, ...headers } = this.buildHeaders(path23);
1322
1504
  void _drop;
1505
+ const timeoutMs = opts?.timeoutMs ?? 5 * 60 * 1e3;
1323
1506
  let res;
1324
1507
  try {
1325
- res = await fetch(`${this.baseUrlFor(path23)}${path23}`, {
1508
+ res = await sendMultipartRequest({
1326
1509
  method,
1510
+ url: `${this.baseUrlFor(path23)}${path23}`,
1327
1511
  headers,
1328
1512
  body,
1329
- signal: AbortSignal.timeout(5 * 60 * 1e3)
1513
+ timeoutMs,
1514
+ signal: opts?.signal,
1515
+ onProgress: opts?.onProgress
1330
1516
  });
1331
1517
  } catch (err) {
1332
1518
  throw _ParallClient.normalizeFetchError(err);
@@ -1337,7 +1523,7 @@ var init_client = __esm({
1337
1523
  if (!retried && !isAuthPath && this.getRefreshToken) {
1338
1524
  const refreshed = await this.tryRefresh();
1339
1525
  if (refreshed) {
1340
- return this.multipartRequest(method, path23, body, true);
1526
+ return this.multipartRequest(method, path23, body, true, opts);
1341
1527
  }
1342
1528
  }
1343
1529
  if (this.onTokenExpired && !isAuthPath) {
@@ -1416,6 +1602,18 @@ var init_client = __esm({
1416
1602
  async deleteAvatar() {
1417
1603
  return this.request("DELETE", ENDPOINTS.USER_AVATAR);
1418
1604
  }
1605
+ // ---- Personal API keys (org-scoped; JWT session required) ----
1606
+ /** Mints an org-scoped personal API key. The plaintext is returned once and never again. */
1607
+ async createPersonalApiKey(req) {
1608
+ return this.request("POST", ENDPOINTS.PERSONAL_API_KEYS, req);
1609
+ }
1610
+ async listPersonalApiKeys() {
1611
+ const res = await this.request("GET", ENDPOINTS.PERSONAL_API_KEYS);
1612
+ return res.data;
1613
+ }
1614
+ async revokePersonalApiKey(keyId) {
1615
+ return this.request("DELETE", ENDPOINTS.PERSONAL_API_KEY(keyId));
1616
+ }
1419
1617
  async uploadAgentAvatar(orgId, agentId, file) {
1420
1618
  const fd = new FormData();
1421
1619
  fd.append("file", file);
@@ -2634,26 +2832,21 @@ var init_client = __esm({
2634
2832
  * through createWikiChangeset / updateWikiChangeset.
2635
2833
  */
2636
2834
  async uploadWikiFile(orgId, wikiId, params) {
2637
- const fd = new FormData();
2638
- fd.append("path", params.path);
2639
- fd.append("file", params.file);
2640
- if (params.message)
2641
- fd.append("message", params.message);
2642
- return this.multipartRequest("POST", ENDPOINTS.WIKI_UPLOADS(orgId, wikiId), fd);
2835
+ const fd = createWikiUploadFormData(params);
2836
+ return this.multipartRequest("POST", ENDPOINTS.WIKI_UPLOADS(orgId, wikiId), fd, false, {
2837
+ signal: params.signal,
2838
+ onProgress: params.onProgress
2839
+ });
2643
2840
  }
2644
2841
  /**
2645
- * Upload a binary file into a changeset's feature branch (read scope +
2646
- * author-only). Used by reader flow: propose a changeset, attach
2647
- * binary, PATCH markdown that references it. On merge the binary
2648
- * squashes into the default branch.
2842
+ * Upload a file into a changeset's feature branch (read scope +
2843
+ * author-only). The default remains binary-only; contentRoute `auto`
2844
+ * opts into reviewable text for the Web library upload flow. On merge the
2845
+ * branch contents squash into the default branch.
2649
2846
  */
2650
2847
  async uploadWikiFileToChangeset(orgId, wikiId, changesetId, params) {
2651
- const fd = new FormData();
2652
- fd.append("path", params.path);
2653
- fd.append("file", params.file);
2654
- if (params.message)
2655
- fd.append("message", params.message);
2656
- return this.multipartRequest("POST", ENDPOINTS.WIKI_CHANGESET_FILES(orgId, wikiId, changesetId), fd);
2848
+ const fd = createWikiUploadFormData(params);
2849
+ return this.multipartRequest("POST", ENDPOINTS.WIKI_CHANGESET_FILES(orgId, wikiId, changesetId), fd, false, { signal: params.signal, onProgress: params.onProgress });
2657
2850
  }
2658
2851
  /** Remove a binary file from the default branch. Text files must use a
2659
2852
  * changeset delete action. The blob stays reachable via git history. */
@@ -3542,6 +3735,13 @@ var init_client = __esm({
3542
3735
  }
3543
3736
  });
3544
3737
 
3738
+ // ts/sdk/dist/llm-provider-types.js
3739
+ var init_llm_provider_types = __esm({
3740
+ "ts/sdk/dist/llm-provider-types.js"() {
3741
+ "use strict";
3742
+ }
3743
+ });
3744
+
3545
3745
  // ts/sdk/dist/subject.js
3546
3746
  var init_subject = __esm({
3547
3747
  "ts/sdk/dist/subject.js"() {
@@ -3915,9 +4115,11 @@ var init_dist = __esm({
3915
4115
  "ts/sdk/dist/index.js"() {
3916
4116
  "use strict";
3917
4117
  init_browser_viewer();
4118
+ init_browser_use();
3918
4119
  init_attachment_types();
3919
4120
  init_client();
3920
4121
  init_constants();
4122
+ init_llm_provider_types();
3921
4123
  init_subject();
3922
4124
  init_task_label_types();
3923
4125
  init_types();
@@ -48686,7 +48888,7 @@ var require_headers = __commonJS({
48686
48888
  }
48687
48889
  }
48688
48890
  };
48689
- var Headers = class _Headers {
48891
+ var Headers2 = class _Headers {
48690
48892
  #guard;
48691
48893
  /**
48692
48894
  * @type {HeadersList}
@@ -48827,13 +49029,13 @@ var require_headers = __commonJS({
48827
49029
  target.#headersList = list;
48828
49030
  }
48829
49031
  };
48830
- var { getHeadersGuard, setHeadersGuard, getHeadersList, setHeadersList } = Headers;
48831
- Reflect.deleteProperty(Headers, "getHeadersGuard");
48832
- Reflect.deleteProperty(Headers, "setHeadersGuard");
48833
- Reflect.deleteProperty(Headers, "getHeadersList");
48834
- Reflect.deleteProperty(Headers, "setHeadersList");
48835
- iteratorMixin("Headers", Headers, headersListSortAndCombine, 0, 1);
48836
- Object.defineProperties(Headers.prototype, {
49032
+ var { getHeadersGuard, setHeadersGuard, getHeadersList, setHeadersList } = Headers2;
49033
+ Reflect.deleteProperty(Headers2, "getHeadersGuard");
49034
+ Reflect.deleteProperty(Headers2, "setHeadersGuard");
49035
+ Reflect.deleteProperty(Headers2, "getHeadersList");
49036
+ Reflect.deleteProperty(Headers2, "setHeadersList");
49037
+ iteratorMixin("Headers", Headers2, headersListSortAndCombine, 0, 1);
49038
+ Object.defineProperties(Headers2.prototype, {
48837
49039
  append: kEnumerableProperty,
48838
49040
  delete: kEnumerableProperty,
48839
49041
  get: kEnumerableProperty,
@@ -48851,7 +49053,7 @@ var require_headers = __commonJS({
48851
49053
  webidl.converters.HeadersInit = function(V, prefix, argument) {
48852
49054
  if (webidl.util.Type(V) === webidl.util.Types.OBJECT) {
48853
49055
  const iterator = Reflect.get(V, Symbol.iterator);
48854
- if (!util.types.isProxy(V) && iterator === Headers.prototype.entries) {
49056
+ if (!util.types.isProxy(V) && iterator === Headers2.prototype.entries) {
48855
49057
  try {
48856
49058
  return getHeadersList(V).entriesList;
48857
49059
  } catch {
@@ -48872,7 +49074,7 @@ var require_headers = __commonJS({
48872
49074
  fill,
48873
49075
  // for test.
48874
49076
  compareHeaderName,
48875
- Headers,
49077
+ Headers: Headers2,
48876
49078
  HeadersList,
48877
49079
  getHeadersGuard,
48878
49080
  setHeadersGuard,
@@ -48886,7 +49088,7 @@ var require_headers = __commonJS({
48886
49088
  var require_response = __commonJS({
48887
49089
  "ts/node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/response.js"(exports2, module2) {
48888
49090
  "use strict";
48889
- var { Headers, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = require_headers();
49091
+ var { Headers: Headers2, HeadersList, fill, getHeadersGuard, setHeadersGuard, setHeadersList } = require_headers();
48890
49092
  var { extractBody, cloneBody, mixinBody, streamRegistry, bodyUnusable } = require_body();
48891
49093
  var util = require_util2();
48892
49094
  var nodeUtil = __require("node:util");
@@ -48908,7 +49110,7 @@ var require_response = __commonJS({
48908
49110
  var assert = __require("node:assert");
48909
49111
  var { isomorphicEncode, serializeJavascriptValueToJSONString } = require_infra();
48910
49112
  var textEncoder = new TextEncoder("utf-8");
48911
- var Response = class _Response {
49113
+ var Response2 = class _Response {
48912
49114
  /** @type {Headers} */
48913
49115
  #headers;
48914
49116
  #state;
@@ -48962,7 +49164,7 @@ var require_response = __commonJS({
48962
49164
  }
48963
49165
  init = webidl.converters.ResponseInit(init);
48964
49166
  this.#state = makeResponse({});
48965
- this.#headers = new Headers(kConstruct);
49167
+ this.#headers = new Headers2(kConstruct);
48966
49168
  setHeadersGuard(this.#headers, "response");
48967
49169
  setHeadersList(this.#headers, this.#state.headersList);
48968
49170
  let bodyWithType = null;
@@ -49080,13 +49282,13 @@ var require_response = __commonJS({
49080
49282
  response.#state = newState;
49081
49283
  }
49082
49284
  };
49083
- var { getResponseHeaders, setResponseHeaders, getResponseState, setResponseState } = Response;
49084
- Reflect.deleteProperty(Response, "getResponseHeaders");
49085
- Reflect.deleteProperty(Response, "setResponseHeaders");
49086
- Reflect.deleteProperty(Response, "getResponseState");
49087
- Reflect.deleteProperty(Response, "setResponseState");
49088
- mixinBody(Response, getResponseState);
49089
- Object.defineProperties(Response.prototype, {
49285
+ var { getResponseHeaders, setResponseHeaders, getResponseState, setResponseState } = Response2;
49286
+ Reflect.deleteProperty(Response2, "getResponseHeaders");
49287
+ Reflect.deleteProperty(Response2, "setResponseHeaders");
49288
+ Reflect.deleteProperty(Response2, "getResponseState");
49289
+ Reflect.deleteProperty(Response2, "setResponseState");
49290
+ mixinBody(Response2, getResponseState);
49291
+ Object.defineProperties(Response2.prototype, {
49090
49292
  type: kEnumerableProperty,
49091
49293
  url: kEnumerableProperty,
49092
49294
  status: kEnumerableProperty,
@@ -49102,7 +49304,7 @@ var require_response = __commonJS({
49102
49304
  configurable: true
49103
49305
  }
49104
49306
  });
49105
- Object.defineProperties(Response, {
49307
+ Object.defineProperties(Response2, {
49106
49308
  json: kEnumerableProperty,
49107
49309
  redirect: kEnumerableProperty,
49108
49310
  error: kEnumerableProperty
@@ -49235,9 +49437,9 @@ var require_response = __commonJS({
49235
49437
  }
49236
49438
  }
49237
49439
  function fromInnerResponse(innerResponse, guard) {
49238
- const response = new Response(kConstruct);
49440
+ const response = new Response2(kConstruct);
49239
49441
  setResponseState(response, innerResponse);
49240
- const headers = new Headers(kConstruct);
49442
+ const headers = new Headers2(kConstruct);
49241
49443
  setResponseHeaders(response, headers);
49242
49444
  setHeadersList(headers, innerResponse.headersList);
49243
49445
  setHeadersGuard(headers, guard);
@@ -49289,14 +49491,14 @@ var require_response = __commonJS({
49289
49491
  converter: webidl.converters.HeadersInit
49290
49492
  }
49291
49493
  ]);
49292
- webidl.is.Response = webidl.util.MakeTypeAssertion(Response);
49494
+ webidl.is.Response = webidl.util.MakeTypeAssertion(Response2);
49293
49495
  module2.exports = {
49294
49496
  isNetworkError,
49295
49497
  makeNetworkError,
49296
49498
  makeResponse,
49297
49499
  makeAppropriateNetworkError,
49298
49500
  filterResponse,
49299
- Response,
49501
+ Response: Response2,
49300
49502
  cloneResponse,
49301
49503
  fromInnerResponse,
49302
49504
  getResponseState
@@ -49309,7 +49511,7 @@ var require_request2 = __commonJS({
49309
49511
  "ts/node_modules/.pnpm/undici@7.24.8/node_modules/undici/lib/web/fetch/request.js"(exports2, module2) {
49310
49512
  "use strict";
49311
49513
  var { extractBody, mixinBody, cloneBody, bodyUnusable } = require_body();
49312
- var { Headers, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = require_headers();
49514
+ var { Headers: Headers2, fill: fillHeaders, HeadersList, setHeadersGuard, getHeadersGuard, setHeadersList, getHeadersList } = require_headers();
49313
49515
  var util = require_util2();
49314
49516
  var nodeUtil = __require("node:util");
49315
49517
  var {
@@ -49578,7 +49780,7 @@ var require_request2 = __commonJS({
49578
49780
  requestFinalizer.register(ac, { signal, abort }, abort);
49579
49781
  }
49580
49782
  }
49581
- this.#headers = new Headers(kConstruct);
49783
+ this.#headers = new Headers2(kConstruct);
49582
49784
  setHeadersList(this.#headers, request3.headersList);
49583
49785
  setHeadersGuard(this.#headers, "request");
49584
49786
  if (mode === "no-cors") {
@@ -49919,7 +50121,7 @@ var require_request2 = __commonJS({
49919
50121
  setRequestState(request3, innerRequest);
49920
50122
  setRequestDispatcher(request3, dispatcher);
49921
50123
  setRequestSignal(request3, signal);
49922
- const headers = new Headers(kConstruct);
50124
+ const headers = new Headers2(kConstruct);
49923
50125
  setRequestHeaders(request3, headers);
49924
50126
  setHeadersList(headers, innerRequest.headersList);
49925
50127
  setHeadersGuard(headers, guard);
@@ -52363,8 +52565,8 @@ var require_cookies = __commonJS({
52363
52565
  var { parseSetCookie } = require_parse2();
52364
52566
  var { stringify } = require_util5();
52365
52567
  var { webidl } = require_webidl();
52366
- var { Headers } = require_headers();
52367
- var brandChecks = webidl.brandCheckMultiple([Headers, globalThis.Headers].filter(Boolean));
52568
+ var { Headers: Headers2 } = require_headers();
52569
+ var brandChecks = webidl.brandCheckMultiple([Headers2, globalThis.Headers].filter(Boolean));
52368
52570
  function getCookies(headers) {
52369
52571
  webidl.argumentLengthCheck(arguments, 1, "getCookies");
52370
52572
  brandChecks(headers);
@@ -53105,7 +53307,7 @@ var require_connection = __commonJS({
53105
53307
  var { parseExtensions, isClosed, isClosing, isEstablished, isConnecting, validateCloseCodeAndReason } = require_util6();
53106
53308
  var { makeRequest } = require_request2();
53107
53309
  var { fetching } = require_fetch();
53108
- var { Headers, getHeadersList } = require_headers();
53310
+ var { Headers: Headers2, getHeadersList } = require_headers();
53109
53311
  var { getDecodeSplit } = require_util3();
53110
53312
  var { WebsocketFrameSend } = require_frame();
53111
53313
  var assert = __require("node:assert");
@@ -53127,7 +53329,7 @@ var require_connection = __commonJS({
53127
53329
  useURLCredentials: true
53128
53330
  });
53129
53331
  if (options.headers) {
53130
- const headersList = getHeadersList(new Headers(options.headers));
53332
+ const headersList = getHeadersList(new Headers2(options.headers));
53131
53333
  request3.headersList = headersList;
53132
53334
  }
53133
53335
  const keyValue = crypto2.randomBytes(16).toString("base64");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@parall/daemon",
3
- "version": "1.56.1",
3
+ "version": "1.57.1",
4
4
  "description": "Parall local agent runtime — daemon supervisor + bridge runtimes, bundled as standalone JS files",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -33,11 +33,11 @@
33
33
  "@aws-sdk/client-s3": "3.984.0",
34
34
  "@pinixai/bb-browser-pro": "0.15.0",
35
35
  "ws": "^8.18.0",
36
- "@parall/agent-core": "1.56.1",
37
- "@parall/sdk": "1.56.1",
38
- "@parall/claude-agent": "1.56.1",
39
- "@parall/codex-agent": "1.56.1",
40
- "@parall/openclaw-agent": "1.56.1"
36
+ "@parall/agent-core": "1.57.1",
37
+ "@parall/sdk": "1.57.1",
38
+ "@parall/claude-agent": "1.57.1",
39
+ "@parall/openclaw-agent": "1.57.1",
40
+ "@parall/codex-agent": "1.57.1"
41
41
  },
42
42
  "devDependencies": {
43
43
  "@types/node": "^22.0.0",