@bunny-agent/daemon 0.9.29-beta.12 → 0.9.29-beta.13

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.
package/dist/bundle.mjs CHANGED
@@ -206364,10 +206364,28 @@ function fail(error) {
206364
206364
  return { ok: false, data: null, error };
206365
206365
  }
206366
206366
  function formatUnknownError(err) {
206367
+ const isObjectToStringMessage = (msg) => /^\[object [^\]]+\]$/.test(msg.trim());
206368
+ const collectErrorExtras = (e2) => {
206369
+ const extra = {};
206370
+ for (const key of Object.getOwnPropertyNames(e2)) {
206371
+ if (key === "name" || key === "message" || key === "stack") continue;
206372
+ extra[key] = e2[key];
206373
+ }
206374
+ for (const key of ["code", "status", "response", "body", "data"]) {
206375
+ if (key in e2 && !(key in extra)) {
206376
+ extra[key] = e2[key];
206377
+ }
206378
+ }
206379
+ return extra;
206380
+ };
206367
206381
  const errorRecord = (e2) => ({
206368
206382
  name: e2.name,
206369
206383
  message: e2.message,
206370
- ...e2.cause !== void 0 ? { cause: formatUnknownError(e2.cause) } : {}
206384
+ ...isObjectToStringMessage(e2.message) ? {
206385
+ note: "Upstream error message was stringified object"
206386
+ } : {},
206387
+ ...e2.cause !== void 0 ? { cause: formatUnknownError(e2.cause) } : {},
206388
+ ...Object.keys(collectErrorExtras(e2)).length > 0 ? { extra: collectErrorExtras(e2) } : {}
206371
206389
  });
206372
206390
  if (err == null) return String(err);
206373
206391
  if (typeof err === "string") return err;
@@ -206816,9 +206834,7 @@ var DaemonRouter = class {
206816
206834
  }
206817
206835
  return {
206818
206836
  status: 500,
206819
- body: fail(
206820
- err instanceof Error ? err.message : formatUnknownError(err)
206821
- )
206837
+ body: fail(formatUnknownError(err))
206822
206838
  };
206823
206839
  }
206824
206840
  }
@@ -264995,7 +265011,7 @@ async function bunnyAgentRun(req, res, env2) {
264995
265011
  res.write(chunk);
264996
265012
  }
264997
265013
  } catch (err) {
264998
- const msg = err instanceof Error ? err.message : formatUnknownError(err);
265014
+ const msg = formatUnknownError(err);
264999
265015
  res.write(`data: ${JSON.stringify({ type: "error", errorText: msg })}
265000
265016
 
265001
265017
  `);
@@ -265055,7 +265071,7 @@ function createDaemon(config) {
265055
265071
  res.end(JSON.stringify(result2));
265056
265072
  } catch (err) {
265057
265073
  const status2 = err instanceof AppError ? err.status : 500;
265058
- const msg = err instanceof Error ? err.message : formatUnknownError(err);
265074
+ const msg = formatUnknownError(err);
265059
265075
  res.writeHead(status2, { "Content-Type": "application/json" });
265060
265076
  res.end(JSON.stringify(fail(msg)));
265061
265077
  }
@@ -265082,7 +265098,7 @@ function createDaemon(config) {
265082
265098
  res.end(buffer);
265083
265099
  } catch (err) {
265084
265100
  const status2 = err instanceof AppError ? err.status : 500;
265085
- const msg = err instanceof Error ? err.message : formatUnknownError(err);
265101
+ const msg = formatUnknownError(err);
265086
265102
  res.writeHead(status2, { "Content-Type": "application/json" });
265087
265103
  res.end(JSON.stringify(fail(msg)));
265088
265104
  }
@@ -265115,7 +265131,7 @@ function createDaemon(config) {
265115
265131
  sendJson(res, err.status, fail(err.message));
265116
265132
  } else {
265117
265133
  console.error("Unhandled request error:", err);
265118
- const msg = err instanceof Error ? err.message : formatUnknownError(err);
265134
+ const msg = formatUnknownError(err);
265119
265135
  sendJson(res, 500, fail(`Internal server error: ${msg}`));
265120
265136
  }
265121
265137
  } else {
package/dist/index.js CHANGED
@@ -206298,10 +206298,28 @@ function fail(error) {
206298
206298
  return { ok: false, data: null, error };
206299
206299
  }
206300
206300
  function formatUnknownError(err) {
206301
+ const isObjectToStringMessage = (msg) => /^\[object [^\]]+\]$/.test(msg.trim());
206302
+ const collectErrorExtras = (e2) => {
206303
+ const extra = {};
206304
+ for (const key of Object.getOwnPropertyNames(e2)) {
206305
+ if (key === "name" || key === "message" || key === "stack") continue;
206306
+ extra[key] = e2[key];
206307
+ }
206308
+ for (const key of ["code", "status", "response", "body", "data"]) {
206309
+ if (key in e2 && !(key in extra)) {
206310
+ extra[key] = e2[key];
206311
+ }
206312
+ }
206313
+ return extra;
206314
+ };
206301
206315
  const errorRecord = (e2) => ({
206302
206316
  name: e2.name,
206303
206317
  message: e2.message,
206304
- ...e2.cause !== void 0 ? { cause: formatUnknownError(e2.cause) } : {}
206318
+ ...isObjectToStringMessage(e2.message) ? {
206319
+ note: "Upstream error message was stringified object"
206320
+ } : {},
206321
+ ...e2.cause !== void 0 ? { cause: formatUnknownError(e2.cause) } : {},
206322
+ ...Object.keys(collectErrorExtras(e2)).length > 0 ? { extra: collectErrorExtras(e2) } : {}
206305
206323
  });
206306
206324
  if (err == null) return String(err);
206307
206325
  if (typeof err === "string") return err;
@@ -206750,9 +206768,7 @@ var DaemonRouter = class {
206750
206768
  }
206751
206769
  return {
206752
206770
  status: 500,
206753
- body: fail(
206754
- err instanceof Error ? err.message : formatUnknownError(err)
206755
- )
206771
+ body: fail(formatUnknownError(err))
206756
206772
  };
206757
206773
  }
206758
206774
  }
@@ -264991,7 +265007,7 @@ async function bunnyAgentRun(req, res, env2) {
264991
265007
  res.write(chunk);
264992
265008
  }
264993
265009
  } catch (err) {
264994
- const msg = err instanceof Error ? err.message : formatUnknownError(err);
265010
+ const msg = formatUnknownError(err);
264995
265011
  res.write(`data: ${JSON.stringify({ type: "error", errorText: msg })}
264996
265012
 
264997
265013
  `);
@@ -265051,7 +265067,7 @@ function createDaemon(config) {
265051
265067
  res.end(JSON.stringify(result2));
265052
265068
  } catch (err) {
265053
265069
  const status2 = err instanceof AppError ? err.status : 500;
265054
- const msg = err instanceof Error ? err.message : formatUnknownError(err);
265070
+ const msg = formatUnknownError(err);
265055
265071
  res.writeHead(status2, { "Content-Type": "application/json" });
265056
265072
  res.end(JSON.stringify(fail(msg)));
265057
265073
  }
@@ -265078,7 +265094,7 @@ function createDaemon(config) {
265078
265094
  res.end(buffer);
265079
265095
  } catch (err) {
265080
265096
  const status2 = err instanceof AppError ? err.status : 500;
265081
- const msg = err instanceof Error ? err.message : formatUnknownError(err);
265097
+ const msg = formatUnknownError(err);
265082
265098
  res.writeHead(status2, { "Content-Type": "application/json" });
265083
265099
  res.end(JSON.stringify(fail(msg)));
265084
265100
  }
@@ -265111,7 +265127,7 @@ function createDaemon(config) {
265111
265127
  sendJson(res, err.status, fail(err.message));
265112
265128
  } else {
265113
265129
  console.error("Unhandled request error:", err);
265114
- const msg = err instanceof Error ? err.message : formatUnknownError(err);
265130
+ const msg = formatUnknownError(err);
265115
265131
  sendJson(res, 500, fail(`Internal server error: ${msg}`));
265116
265132
  }
265117
265133
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"nextjs.d.ts","sourceRoot":"","sources":["../src/nextjs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAeH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,IASzD,KAAK,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAkF/C"}
1
+ {"version":3,"file":"nextjs.d.ts","sourceRoot":"","sources":["../src/nextjs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAeH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,IASzD,KAAK,OAAO,KAAG,OAAO,CAAC,QAAQ,CAAC,CAgF/C"}
package/dist/nextjs.js CHANGED
@@ -206356,10 +206356,28 @@ function fail(error) {
206356
206356
  return { ok: false, data: null, error };
206357
206357
  }
206358
206358
  function formatUnknownError(err) {
206359
+ const isObjectToStringMessage = (msg) => /^\[object [^\]]+\]$/.test(msg.trim());
206360
+ const collectErrorExtras = (e2) => {
206361
+ const extra = {};
206362
+ for (const key of Object.getOwnPropertyNames(e2)) {
206363
+ if (key === "name" || key === "message" || key === "stack") continue;
206364
+ extra[key] = e2[key];
206365
+ }
206366
+ for (const key of ["code", "status", "response", "body", "data"]) {
206367
+ if (key in e2 && !(key in extra)) {
206368
+ extra[key] = e2[key];
206369
+ }
206370
+ }
206371
+ return extra;
206372
+ };
206359
206373
  const errorRecord = (e2) => ({
206360
206374
  name: e2.name,
206361
206375
  message: e2.message,
206362
- ...e2.cause !== void 0 ? { cause: formatUnknownError(e2.cause) } : {}
206376
+ ...isObjectToStringMessage(e2.message) ? {
206377
+ note: "Upstream error message was stringified object"
206378
+ } : {},
206379
+ ...e2.cause !== void 0 ? { cause: formatUnknownError(e2.cause) } : {},
206380
+ ...Object.keys(collectErrorExtras(e2)).length > 0 ? { extra: collectErrorExtras(e2) } : {}
206363
206381
  });
206364
206382
  if (err == null) return String(err);
206365
206383
  if (typeof err === "string") return err;
@@ -206808,9 +206826,7 @@ var DaemonRouter = class {
206808
206826
  }
206809
206827
  return {
206810
206828
  status: 500,
206811
- body: fail(
206812
- err instanceof Error ? err.message : formatUnknownError(err)
206813
- )
206829
+ body: fail(formatUnknownError(err))
206814
206830
  };
206815
206831
  }
206816
206832
  }
@@ -264984,7 +265000,7 @@ function codingRunStream(req, env2) {
264984
265000
  controller.enqueue(encoder.encode(chunk));
264985
265001
  }
264986
265002
  } catch (err) {
264987
- const msg = err instanceof Error ? err.message : formatUnknownError(err);
265003
+ const msg = formatUnknownError(err);
264988
265004
  controller.enqueue(
264989
265005
  encoder.encode(
264990
265006
  `data: ${JSON.stringify({ type: "error", errorText: msg })}
@@ -265046,7 +265062,7 @@ function createNextHandler(opts) {
265046
265062
  return Response.json(result2);
265047
265063
  } catch (err) {
265048
265064
  const status = err instanceof AppError ? err.status : 500;
265049
- const msg = err instanceof Error ? err.message : formatUnknownError(err);
265065
+ const msg = formatUnknownError(err);
265050
265066
  return Response.json(fail(msg), { status });
265051
265067
  }
265052
265068
  }
@@ -265073,7 +265089,7 @@ function createNextHandler(opts) {
265073
265089
  });
265074
265090
  } catch (err) {
265075
265091
  const status = err instanceof AppError ? err.status : 500;
265076
- const msg = err instanceof Error ? err.message : formatUnknownError(err);
265092
+ const msg = formatUnknownError(err);
265077
265093
  return Response.json(fail(msg), { status });
265078
265094
  }
265079
265095
  }
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,YAAY,CAAC;AAMxD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,MAAM,CAAmC;gBAErC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IA2B5B,MAAM,CACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI,CAAC;CAuBzD"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,YAAY,CAAC;AAMxD,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,MAAM,CAAmC;gBAErC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IA2B5B,MAAM,CACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAA;KAAE,GAAG,IAAI,CAAC;CAqBzD"}
@@ -1 +1 @@
1
- {"version":3,"file":"coding.d.ts","sourceRoot":"","sources":["../../src/routes/coding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAC;AAIvC,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAKD,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AAEnD,sCAAsC;AACtC,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC,CAoDf;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,QAAQ,CA8DV"}
1
+ {"version":3,"file":"coding.d.ts","sourceRoot":"","sources":["../../src/routes/coding.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,IAAI,MAAM,WAAW,CAAC;AAIvC,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAKD,eAAO,MAAM,iBAAiB,oBAAoB,CAAC;AAEnD,sCAAsC;AACtC,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,IAAI,CAAC,cAAc,EACxB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,OAAO,CAAC,IAAI,CAAC,CAoDf;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,UAAU,EACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,QAAQ,CA6DV"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAelC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,CAiI9D"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAelC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC,MAAM,CA8H9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAE7C;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAErD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CA6BvD;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CA2B1E;AAUD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAqBlE;AAQD,qBAAa,QAAS,SAAQ,KAAK;IAExB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAIlB;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;AAwCD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtD"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,wBAAgB,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAE7C;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,CAErD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CA0DvD;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CA2B1E;AAUD;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,CAqBlE;AAQD,qBAAa,QAAS,SAAQ,KAAK;IAExB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAIlB;AAED,wBAAsB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1D;AAwCD,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bunny-agent/daemon",
3
- "version": "0.9.29-beta.12",
3
+ "version": "0.9.29-beta.13",
4
4
  "description": "BunnyAgent Daemon - Unified API gateway for sandbox services (file, git, volumes)",
5
5
  "type": "module",
6
6
  "bin": {