@musistudio/claude-code-router 1.0.21 → 1.0.23

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/cli.js CHANGED
@@ -1517,19 +1517,19 @@ var require_process_warning = __commonJS({
1517
1517
  if (typeof unlimited !== "boolean") throw new Error("Warning opts.unlimited must be a boolean");
1518
1518
  code = code.toUpperCase();
1519
1519
  let warningContainer = {
1520
- [name]: function(a, b2, c) {
1520
+ [name]: function(a, b, c) {
1521
1521
  if (warning.emitted === true && warning.unlimited !== true) {
1522
1522
  return;
1523
1523
  }
1524
1524
  warning.emitted = true;
1525
- process.emitWarning(warning.format(a, b2, c), warning.name, warning.code);
1525
+ process.emitWarning(warning.format(a, b, c), warning.name, warning.code);
1526
1526
  }
1527
1527
  };
1528
1528
  if (unlimited) {
1529
1529
  warningContainer = {
1530
- [name]: function(a, b2, c) {
1530
+ [name]: function(a, b, c) {
1531
1531
  warning.emitted = true;
1532
- process.emitWarning(warning.format(a, b2, c), warning.name, warning.code);
1532
+ process.emitWarning(warning.format(a, b, c), warning.name, warning.code);
1533
1533
  }
1534
1534
  };
1535
1535
  }
@@ -1538,12 +1538,12 @@ var require_process_warning = __commonJS({
1538
1538
  warning.message = message;
1539
1539
  warning.unlimited = unlimited;
1540
1540
  warning.code = code;
1541
- warning.format = function(a, b2, c) {
1541
+ warning.format = function(a, b, c) {
1542
1542
  let formatted;
1543
- if (a && b2 && c) {
1544
- formatted = format(message, a, b2, c);
1545
- } else if (a && b2) {
1546
- formatted = format(message, a, b2);
1543
+ if (a && b && c) {
1544
+ formatted = format(message, a, b, c);
1545
+ } else if (a && b) {
1546
+ formatted = format(message, a, b);
1547
1547
  } else if (a) {
1548
1548
  formatted = format(message, a);
1549
1549
  } else {
@@ -7299,8 +7299,8 @@ var require_multistream = __commonJS({
7299
7299
  };
7300
7300
  }
7301
7301
  }
7302
- function compareByLevel(a, b2) {
7303
- return a.level - b2.level;
7302
+ function compareByLevel(a, b) {
7303
+ return a.level - b.level;
7304
7304
  }
7305
7305
  function initLoopVar(length, dedupe) {
7306
7306
  return dedupe ? length - 1 : 0;
@@ -12189,22 +12189,22 @@ var require_code = __commonJS({
12189
12189
  i++;
12190
12190
  }
12191
12191
  }
12192
- function mergeExprItems(a, b2) {
12193
- if (b2 === '""')
12192
+ function mergeExprItems(a, b) {
12193
+ if (b === '""')
12194
12194
  return a;
12195
12195
  if (a === '""')
12196
- return b2;
12196
+ return b;
12197
12197
  if (typeof a == "string") {
12198
- if (b2 instanceof Name || a[a.length - 1] !== '"')
12198
+ if (b instanceof Name || a[a.length - 1] !== '"')
12199
12199
  return;
12200
- if (typeof b2 != "string")
12201
- return `${a.slice(0, -1)}${b2}"`;
12202
- if (b2[0] === '"')
12203
- return a.slice(0, -1) + b2.slice(1);
12200
+ if (typeof b != "string")
12201
+ return `${a.slice(0, -1)}${b}"`;
12202
+ if (b[0] === '"')
12203
+ return a.slice(0, -1) + b.slice(1);
12204
12204
  return;
12205
12205
  }
12206
- if (typeof b2 == "string" && b2[0] === '"' && !(a instanceof Name))
12207
- return `"${a}${b2.slice(1)}`;
12206
+ if (typeof b == "string" && b[0] === '"' && !(a instanceof Name))
12207
+ return `"${a}${b.slice(1)}`;
12208
12208
  return;
12209
12209
  }
12210
12210
  function strConcat(c1, c2) {
@@ -13097,7 +13097,7 @@ var require_codegen = __commonJS({
13097
13097
  }
13098
13098
  exports2.or = or;
13099
13099
  function mappend(op) {
13100
- return (x, y) => x === code_1.nil ? y : y === code_1.nil ? x : (0, code_1._)`${par(x)} ${op} ${par(y)}`;
13100
+ return (x, y2) => x === code_1.nil ? y2 : y2 === code_1.nil ? x : (0, code_1._)`${par(x)} ${op} ${par(y2)}`;
13101
13101
  }
13102
13102
  function par(x) {
13103
13103
  return x instanceof code_1.Name ? x : (0, code_1._)`(${x})`;
@@ -14097,33 +14097,33 @@ var require_subschema = __commonJS({
14097
14097
  var require_fast_deep_equal = __commonJS({
14098
14098
  "node_modules/.pnpm/fast-deep-equal@3.1.3/node_modules/fast-deep-equal/index.js"(exports2, module2) {
14099
14099
  "use strict";
14100
- module2.exports = function equal(a, b2) {
14101
- if (a === b2) return true;
14102
- if (a && b2 && typeof a == "object" && typeof b2 == "object") {
14103
- if (a.constructor !== b2.constructor) return false;
14100
+ module2.exports = function equal(a, b) {
14101
+ if (a === b) return true;
14102
+ if (a && b && typeof a == "object" && typeof b == "object") {
14103
+ if (a.constructor !== b.constructor) return false;
14104
14104
  var length, i, keys;
14105
14105
  if (Array.isArray(a)) {
14106
14106
  length = a.length;
14107
- if (length != b2.length) return false;
14107
+ if (length != b.length) return false;
14108
14108
  for (i = length; i-- !== 0; )
14109
- if (!equal(a[i], b2[i])) return false;
14109
+ if (!equal(a[i], b[i])) return false;
14110
14110
  return true;
14111
14111
  }
14112
- if (a.constructor === RegExp) return a.source === b2.source && a.flags === b2.flags;
14113
- if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b2.valueOf();
14114
- if (a.toString !== Object.prototype.toString) return a.toString() === b2.toString();
14112
+ if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;
14113
+ if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();
14114
+ if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();
14115
14115
  keys = Object.keys(a);
14116
14116
  length = keys.length;
14117
- if (length !== Object.keys(b2).length) return false;
14117
+ if (length !== Object.keys(b).length) return false;
14118
14118
  for (i = length; i-- !== 0; )
14119
- if (!Object.prototype.hasOwnProperty.call(b2, keys[i])) return false;
14119
+ if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;
14120
14120
  for (i = length; i-- !== 0; ) {
14121
14121
  var key = keys[i];
14122
- if (!equal(a[key], b2[key])) return false;
14122
+ if (!equal(a[key], b[key])) return false;
14123
14123
  }
14124
14124
  return true;
14125
14125
  }
14126
- return a !== a && b2 !== b2;
14126
+ return a !== a && b !== b;
14127
14127
  };
14128
14128
  }
14129
14129
  });
@@ -20043,8 +20043,8 @@ var require_resolvers = __commonJS({
20043
20043
  mergedSchema[keyword] = Math.max(...values);
20044
20044
  }
20045
20045
  function commonMultiple(keyword, values, mergedSchema) {
20046
- const gcd = (a, b2) => !b2 ? a : gcd(b2, a % b2);
20047
- const lcm = (a, b2) => a * b2 / gcd(a, b2);
20046
+ const gcd = (a, b) => !b ? a : gcd(b, a % b);
20047
+ const lcm = (a, b) => a * b / gcd(a, b);
20048
20048
  let scale = 1;
20049
20049
  for (const value of values) {
20050
20050
  while (value * scale % 1 !== 0) {
@@ -20157,8 +20157,8 @@ var require_merge_json_schemas = __commonJS({
20157
20157
  for (const array of arrays) {
20158
20158
  const temp = [];
20159
20159
  for (const x of result) {
20160
- for (const y of array) {
20161
- temp.push([...x, y]);
20160
+ for (const y2 of array) {
20161
+ temp.push([...x, y2]);
20162
20162
  }
20163
20163
  }
20164
20164
  result = temp;
@@ -21497,11 +21497,11 @@ var require_timestamp = __commonJS({
21497
21497
  const matches = DATE.exec(str);
21498
21498
  if (!matches)
21499
21499
  return false;
21500
- const y = +matches[1];
21500
+ const y2 = +matches[1];
21501
21501
  const m = +matches[2];
21502
21502
  const d = +matches[3];
21503
21503
  return m >= 1 && m <= 12 && d >= 1 && (d <= DAYS[m] || // leap year: https://tools.ietf.org/html/rfc3339#appendix-C
21504
- m === 2 && d === 29 && (y % 100 === 0 ? y % 400 === 0 : y % 4 === 0));
21504
+ m === 2 && d === 29 && (y2 % 100 === 0 ? y2 % 400 === 0 : y2 % 4 === 0));
21505
21505
  }
21506
21506
  function validTime(str) {
21507
21507
  const matches = TIME.exec(str);
@@ -23605,16 +23605,16 @@ var require_identifiers = __commonJS({
23605
23605
  "node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/identifiers.js"(exports2, module2) {
23606
23606
  "use strict";
23607
23607
  var numeric = /^[0-9]+$/;
23608
- var compareIdentifiers = (a, b2) => {
23608
+ var compareIdentifiers = (a, b) => {
23609
23609
  const anum = numeric.test(a);
23610
- const bnum = numeric.test(b2);
23610
+ const bnum = numeric.test(b);
23611
23611
  if (anum && bnum) {
23612
23612
  a = +a;
23613
- b2 = +b2;
23613
+ b = +b;
23614
23614
  }
23615
- return a === b2 ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b2 ? -1 : 1;
23615
+ return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1;
23616
23616
  };
23617
- var rcompareIdentifiers = (a, b2) => compareIdentifiers(b2, a);
23617
+ var rcompareIdentifiers = (a, b) => compareIdentifiers(b, a);
23618
23618
  module2.exports = {
23619
23619
  compareIdentifiers,
23620
23620
  rcompareIdentifiers
@@ -23728,18 +23728,18 @@ var require_semver = __commonJS({
23728
23728
  let i = 0;
23729
23729
  do {
23730
23730
  const a = this.prerelease[i];
23731
- const b2 = other.prerelease[i];
23732
- debug("prerelease compare", i, a, b2);
23733
- if (a === void 0 && b2 === void 0) {
23731
+ const b = other.prerelease[i];
23732
+ debug("prerelease compare", i, a, b);
23733
+ if (a === void 0 && b === void 0) {
23734
23734
  return 0;
23735
- } else if (b2 === void 0) {
23735
+ } else if (b === void 0) {
23736
23736
  return 1;
23737
23737
  } else if (a === void 0) {
23738
23738
  return -1;
23739
- } else if (a === b2) {
23739
+ } else if (a === b) {
23740
23740
  continue;
23741
23741
  } else {
23742
- return compareIdentifiers(a, b2);
23742
+ return compareIdentifiers(a, b);
23743
23743
  }
23744
23744
  } while (++i);
23745
23745
  }
@@ -23750,18 +23750,18 @@ var require_semver = __commonJS({
23750
23750
  let i = 0;
23751
23751
  do {
23752
23752
  const a = this.build[i];
23753
- const b2 = other.build[i];
23754
- debug("build compare", i, a, b2);
23755
- if (a === void 0 && b2 === void 0) {
23753
+ const b = other.build[i];
23754
+ debug("build compare", i, a, b);
23755
+ if (a === void 0 && b === void 0) {
23756
23756
  return 0;
23757
- } else if (b2 === void 0) {
23757
+ } else if (b === void 0) {
23758
23758
  return 1;
23759
23759
  } else if (a === void 0) {
23760
23760
  return -1;
23761
- } else if (a === b2) {
23761
+ } else if (a === b) {
23762
23762
  continue;
23763
23763
  } else {
23764
- return compareIdentifiers(a, b2);
23764
+ return compareIdentifiers(a, b);
23765
23765
  }
23766
23766
  } while (++i);
23767
23767
  }
@@ -24047,7 +24047,7 @@ var require_compare = __commonJS({
24047
24047
  "node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare.js"(exports2, module2) {
24048
24048
  "use strict";
24049
24049
  var SemVer = require_semver();
24050
- var compare = (a, b2, loose) => new SemVer(a, loose).compare(new SemVer(b2, loose));
24050
+ var compare = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose));
24051
24051
  module2.exports = compare;
24052
24052
  }
24053
24053
  });
@@ -24057,7 +24057,7 @@ var require_rcompare = __commonJS({
24057
24057
  "node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rcompare.js"(exports2, module2) {
24058
24058
  "use strict";
24059
24059
  var compare = require_compare();
24060
- var rcompare = (a, b2, loose) => compare(b2, a, loose);
24060
+ var rcompare = (a, b, loose) => compare(b, a, loose);
24061
24061
  module2.exports = rcompare;
24062
24062
  }
24063
24063
  });
@@ -24067,7 +24067,7 @@ var require_compare_loose = __commonJS({
24067
24067
  "node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-loose.js"(exports2, module2) {
24068
24068
  "use strict";
24069
24069
  var compare = require_compare();
24070
- var compareLoose = (a, b2) => compare(a, b2, true);
24070
+ var compareLoose = (a, b) => compare(a, b, true);
24071
24071
  module2.exports = compareLoose;
24072
24072
  }
24073
24073
  });
@@ -24077,9 +24077,9 @@ var require_compare_build = __commonJS({
24077
24077
  "node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/compare-build.js"(exports2, module2) {
24078
24078
  "use strict";
24079
24079
  var SemVer = require_semver();
24080
- var compareBuild = (a, b2, loose) => {
24080
+ var compareBuild = (a, b, loose) => {
24081
24081
  const versionA = new SemVer(a, loose);
24082
- const versionB = new SemVer(b2, loose);
24082
+ const versionB = new SemVer(b, loose);
24083
24083
  return versionA.compare(versionB) || versionA.compareBuild(versionB);
24084
24084
  };
24085
24085
  module2.exports = compareBuild;
@@ -24091,7 +24091,7 @@ var require_sort = __commonJS({
24091
24091
  "node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/sort.js"(exports2, module2) {
24092
24092
  "use strict";
24093
24093
  var compareBuild = require_compare_build();
24094
- var sort = (list, loose) => list.sort((a, b2) => compareBuild(a, b2, loose));
24094
+ var sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose));
24095
24095
  module2.exports = sort;
24096
24096
  }
24097
24097
  });
@@ -24101,7 +24101,7 @@ var require_rsort = __commonJS({
24101
24101
  "node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/rsort.js"(exports2, module2) {
24102
24102
  "use strict";
24103
24103
  var compareBuild = require_compare_build();
24104
- var rsort = (list, loose) => list.sort((a, b2) => compareBuild(b2, a, loose));
24104
+ var rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose));
24105
24105
  module2.exports = rsort;
24106
24106
  }
24107
24107
  });
@@ -24111,7 +24111,7 @@ var require_gt = __commonJS({
24111
24111
  "node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gt.js"(exports2, module2) {
24112
24112
  "use strict";
24113
24113
  var compare = require_compare();
24114
- var gt = (a, b2, loose) => compare(a, b2, loose) > 0;
24114
+ var gt = (a, b, loose) => compare(a, b, loose) > 0;
24115
24115
  module2.exports = gt;
24116
24116
  }
24117
24117
  });
@@ -24121,7 +24121,7 @@ var require_lt = __commonJS({
24121
24121
  "node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lt.js"(exports2, module2) {
24122
24122
  "use strict";
24123
24123
  var compare = require_compare();
24124
- var lt = (a, b2, loose) => compare(a, b2, loose) < 0;
24124
+ var lt = (a, b, loose) => compare(a, b, loose) < 0;
24125
24125
  module2.exports = lt;
24126
24126
  }
24127
24127
  });
@@ -24131,7 +24131,7 @@ var require_eq = __commonJS({
24131
24131
  "node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/eq.js"(exports2, module2) {
24132
24132
  "use strict";
24133
24133
  var compare = require_compare();
24134
- var eq = (a, b2, loose) => compare(a, b2, loose) === 0;
24134
+ var eq = (a, b, loose) => compare(a, b, loose) === 0;
24135
24135
  module2.exports = eq;
24136
24136
  }
24137
24137
  });
@@ -24141,7 +24141,7 @@ var require_neq = __commonJS({
24141
24141
  "node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/neq.js"(exports2, module2) {
24142
24142
  "use strict";
24143
24143
  var compare = require_compare();
24144
- var neq = (a, b2, loose) => compare(a, b2, loose) !== 0;
24144
+ var neq = (a, b, loose) => compare(a, b, loose) !== 0;
24145
24145
  module2.exports = neq;
24146
24146
  }
24147
24147
  });
@@ -24151,7 +24151,7 @@ var require_gte = __commonJS({
24151
24151
  "node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/gte.js"(exports2, module2) {
24152
24152
  "use strict";
24153
24153
  var compare = require_compare();
24154
- var gte = (a, b2, loose) => compare(a, b2, loose) >= 0;
24154
+ var gte = (a, b, loose) => compare(a, b, loose) >= 0;
24155
24155
  module2.exports = gte;
24156
24156
  }
24157
24157
  });
@@ -24161,7 +24161,7 @@ var require_lte = __commonJS({
24161
24161
  "node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/lte.js"(exports2, module2) {
24162
24162
  "use strict";
24163
24163
  var compare = require_compare();
24164
- var lte = (a, b2, loose) => compare(a, b2, loose) <= 0;
24164
+ var lte = (a, b, loose) => compare(a, b, loose) <= 0;
24165
24165
  module2.exports = lte;
24166
24166
  }
24167
24167
  });
@@ -24176,38 +24176,38 @@ var require_cmp = __commonJS({
24176
24176
  var gte = require_gte();
24177
24177
  var lt = require_lt();
24178
24178
  var lte = require_lte();
24179
- var cmp = (a, op, b2, loose) => {
24179
+ var cmp = (a, op, b, loose) => {
24180
24180
  switch (op) {
24181
24181
  case "===":
24182
24182
  if (typeof a === "object") {
24183
24183
  a = a.version;
24184
24184
  }
24185
- if (typeof b2 === "object") {
24186
- b2 = b2.version;
24185
+ if (typeof b === "object") {
24186
+ b = b.version;
24187
24187
  }
24188
- return a === b2;
24188
+ return a === b;
24189
24189
  case "!==":
24190
24190
  if (typeof a === "object") {
24191
24191
  a = a.version;
24192
24192
  }
24193
- if (typeof b2 === "object") {
24194
- b2 = b2.version;
24193
+ if (typeof b === "object") {
24194
+ b = b.version;
24195
24195
  }
24196
- return a !== b2;
24196
+ return a !== b;
24197
24197
  case "":
24198
24198
  case "=":
24199
24199
  case "==":
24200
- return eq(a, b2, loose);
24200
+ return eq(a, b, loose);
24201
24201
  case "!=":
24202
- return neq(a, b2, loose);
24202
+ return neq(a, b, loose);
24203
24203
  case ">":
24204
- return gt(a, b2, loose);
24204
+ return gt(a, b, loose);
24205
24205
  case ">=":
24206
- return gte(a, b2, loose);
24206
+ return gte(a, b, loose);
24207
24207
  case "<":
24208
- return lt(a, b2, loose);
24208
+ return lt(a, b, loose);
24209
24209
  case "<=":
24210
- return lte(a, b2, loose);
24210
+ return lte(a, b, loose);
24211
24211
  default:
24212
24212
  throw new TypeError(`Invalid operator: ${op}`);
24213
24213
  }
@@ -25062,7 +25062,7 @@ var require_simplify = __commonJS({
25062
25062
  const set = [];
25063
25063
  let first = null;
25064
25064
  let prev = null;
25065
- const v = versions.sort((a, b2) => compare(a, b2, options));
25065
+ const v = versions.sort((a, b) => compare(a, b, options));
25066
25066
  for (const version2 of v) {
25067
25067
  const included = satisfies(version2, range, options);
25068
25068
  if (included) {
@@ -25246,19 +25246,19 @@ var require_subset = __commonJS({
25246
25246
  }
25247
25247
  return true;
25248
25248
  };
25249
- var higherGT = (a, b2, options) => {
25249
+ var higherGT = (a, b, options) => {
25250
25250
  if (!a) {
25251
- return b2;
25251
+ return b;
25252
25252
  }
25253
- const comp = compare(a.semver, b2.semver, options);
25254
- return comp > 0 ? a : comp < 0 ? b2 : b2.operator === ">" && a.operator === ">=" ? b2 : a;
25253
+ const comp = compare(a.semver, b.semver, options);
25254
+ return comp > 0 ? a : comp < 0 ? b : b.operator === ">" && a.operator === ">=" ? b : a;
25255
25255
  };
25256
- var lowerLT = (a, b2, options) => {
25256
+ var lowerLT = (a, b, options) => {
25257
25257
  if (!a) {
25258
- return b2;
25258
+ return b;
25259
25259
  }
25260
- const comp = compare(a.semver, b2.semver, options);
25261
- return comp < 0 ? a : comp > 0 ? b2 : b2.operator === "<" && a.operator === "<=" ? b2 : a;
25260
+ const comp = compare(a.semver, b.semver, options);
25261
+ return comp < 0 ? a : comp > 0 ? b : b.operator === "<" && a.operator === "<=" ? b : a;
25262
25262
  };
25263
25263
  module2.exports = subset;
25264
25264
  }
@@ -26477,11 +26477,11 @@ var require_util2 = __commonJS({
26477
26477
  var CTRL = "@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?";
26478
26478
  exports2.strToChars = (str) => {
26479
26479
  const charsRegex = /(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g;
26480
- return str.replace(charsRegex, (s, b2, lbs, a16, b16, dctrl, eslsh) => {
26480
+ return str.replace(charsRegex, (s, b, lbs, a16, b16, dctrl, eslsh) => {
26481
26481
  if (lbs) {
26482
26482
  return s;
26483
26483
  }
26484
- let code = b2 ? 8 : a16 ? parseInt(a16, 16) : b16 ? parseInt(b16, 16) : dctrl ? CTRL.indexOf(dctrl) : {
26484
+ let code = b ? 8 : a16 ? parseInt(a16, 16) : b16 ? parseInt(b16, 16) : dctrl ? CTRL.indexOf(dctrl) : {
26485
26485
  0: 0,
26486
26486
  t: 9,
26487
26487
  n: 10,
@@ -27330,7 +27330,7 @@ var require_handler_storage = __commonJS({
27330
27330
  throw new Error("find-my-way supports a maximum of 31 route handlers per node when there are constraints, limit reached");
27331
27331
  }
27332
27332
  this.handlers.push(handlerObject);
27333
- this.handlers.sort((a, b2) => Object.keys(a.constraints).length - Object.keys(b2.constraints).length);
27333
+ this.handlers.sort((a, b) => Object.keys(a.constraints).length - Object.keys(b.constraints).length);
27334
27334
  if (!isMergedTree) {
27335
27335
  this._compileGetHandlerMatchingConstraints(constrainer, constraints);
27336
27336
  }
@@ -30410,10 +30410,10 @@ var require_dist4 = __commonJS({
30410
30410
  var pathValueRegExp = /^[\u0020-\u003A\u003D-\u007E]*$/;
30411
30411
  var __toString = Object.prototype.toString;
30412
30412
  var NullObject = /* @__PURE__ */ (() => {
30413
- const C2 = function() {
30413
+ const C = function() {
30414
30414
  };
30415
- C2.prototype = /* @__PURE__ */ Object.create(null);
30416
- return C2;
30415
+ C.prototype = /* @__PURE__ */ Object.create(null);
30416
+ return C;
30417
30417
  })();
30418
30418
  function parse(str, options) {
30419
30419
  const obj = new NullObject();
@@ -30571,19 +30571,19 @@ var require_process_warning2 = __commonJS({
30571
30571
  if (typeof unlimited !== "boolean") throw new Error("Warning opts.unlimited must be a boolean");
30572
30572
  code = code.toUpperCase();
30573
30573
  let warningContainer = {
30574
- [name]: function(a, b2, c) {
30574
+ [name]: function(a, b, c) {
30575
30575
  if (warning.emitted === true && warning.unlimited !== true) {
30576
30576
  return;
30577
30577
  }
30578
30578
  warning.emitted = true;
30579
- process.emitWarning(warning.format(a, b2, c), warning.name, warning.code);
30579
+ process.emitWarning(warning.format(a, b, c), warning.name, warning.code);
30580
30580
  }
30581
30581
  };
30582
30582
  if (unlimited) {
30583
30583
  warningContainer = {
30584
- [name]: function(a, b2, c) {
30584
+ [name]: function(a, b, c) {
30585
30585
  warning.emitted = true;
30586
- process.emitWarning(warning.format(a, b2, c), warning.name, warning.code);
30586
+ process.emitWarning(warning.format(a, b, c), warning.name, warning.code);
30587
30587
  }
30588
30588
  };
30589
30589
  }
@@ -30592,12 +30592,12 @@ var require_process_warning2 = __commonJS({
30592
30592
  warning.message = message;
30593
30593
  warning.unlimited = unlimited;
30594
30594
  warning.code = code;
30595
- warning.format = function(a, b2, c) {
30595
+ warning.format = function(a, b, c) {
30596
30596
  let formatted;
30597
- if (a && b2 && c) {
30598
- formatted = format(message, a, b2, c);
30599
- } else if (a && b2) {
30600
- formatted = format(message, a, b2);
30597
+ if (a && b && c) {
30598
+ formatted = format(message, a, b, c);
30599
+ } else if (a && b) {
30600
+ formatted = format(message, a, b);
30601
30601
  } else if (a) {
30602
30602
  formatted = format(message, a);
30603
30603
  } else {
@@ -32538,7 +32538,7 @@ var require_fastify = __commonJS({
32538
32538
  listen,
32539
32539
  server,
32540
32540
  addresses: function() {
32541
- const binded = this[kServerBindings].map((b2) => b2.address());
32541
+ const binded = this[kServerBindings].map((b) => b.address());
32542
32542
  binded.push(this.server.address());
32543
32543
  return binded.filter((adr) => adr);
32544
32544
  },
@@ -37824,12 +37824,12 @@ var require_webidl = __commonJS({
37824
37824
  }
37825
37825
  return V2;
37826
37826
  };
37827
- webidl.converters.TypedArray = function(V2, T, prefix, name, opts) {
37828
- if (webidl.util.Type(V2) !== OBJECT || !types.isTypedArray(V2) || V2.constructor.name !== T.name) {
37827
+ webidl.converters.TypedArray = function(V2, T2, prefix, name, opts) {
37828
+ if (webidl.util.Type(V2) !== OBJECT || !types.isTypedArray(V2) || V2.constructor.name !== T2.name) {
37829
37829
  throw webidl.errors.conversionFailed({
37830
37830
  prefix,
37831
37831
  argument: `${name} ("${webidl.util.Stringify(V2)}")`,
37832
- types: [T.name]
37832
+ types: [T2.name]
37833
37833
  });
37834
37834
  }
37835
37835
  if (opts?.allowShared === false && types.isSharedArrayBuffer(V2.buffer)) {
@@ -38882,15 +38882,15 @@ var require_formdata = __commonJS({
38882
38882
  }
38883
38883
  }
38884
38884
  [nodeUtil.inspect.custom](depth, options) {
38885
- const state = this.#state.reduce((a, b2) => {
38886
- if (a[b2.name]) {
38887
- if (Array.isArray(a[b2.name])) {
38888
- a[b2.name].push(b2.value);
38885
+ const state = this.#state.reduce((a, b) => {
38886
+ if (a[b.name]) {
38887
+ if (Array.isArray(a[b.name])) {
38888
+ a[b.name].push(b.value);
38889
38889
  } else {
38890
- a[b2.name] = [a[b2.name], b2.value];
38890
+ a[b.name] = [a[b.name], b.value];
38891
38891
  }
38892
38892
  } else {
38893
- a[b2.name] = b2.value;
38893
+ a[b.name] = b.value;
38894
38894
  }
38895
38895
  return a;
38896
38896
  }, { __proto__: null });
@@ -42132,11 +42132,11 @@ var require_balanced_pool = __commonJS({
42132
42132
  var kWeight = Symbol("kWeight");
42133
42133
  var kMaxWeightPerServer = Symbol("kMaxWeightPerServer");
42134
42134
  var kErrorPenalty = Symbol("kErrorPenalty");
42135
- function getGreatestCommonDivisor(a, b2) {
42136
- if (a === 0) return b2;
42137
- while (b2 !== 0) {
42138
- const t = b2;
42139
- b2 = a % b2;
42135
+ function getGreatestCommonDivisor(a, b) {
42136
+ if (a === 0) return b;
42137
+ while (b !== 0) {
42138
+ const t = b;
42139
+ b = a % b;
42140
42140
  a = t;
42141
42141
  }
42142
42142
  return a;
@@ -42217,7 +42217,7 @@ var require_balanced_pool = __commonJS({
42217
42217
  if (!dispatcher) {
42218
42218
  return;
42219
42219
  }
42220
- const allClientsBusy = this[kClients].map((pool) => pool[kNeedDrain]).reduce((a, b2) => a && b2, true);
42220
+ const allClientsBusy = this[kClients].map((pool) => pool[kNeedDrain]).reduce((a, b) => a && b, true);
42221
42221
  if (allClientsBusy) {
42222
42222
  return;
42223
42223
  }
@@ -47932,8 +47932,8 @@ var require_headers = __commonJS({
47932
47932
  }
47933
47933
  return headersList.sortedMap = headers;
47934
47934
  }
47935
- function compareHeaderName(a, b2) {
47936
- return a[0] < b2[0] ? -1 : 1;
47935
+ function compareHeaderName(a, b) {
47936
+ return a[0] < b[0] ? -1 : 1;
47937
47937
  }
47938
47938
  var HeadersList = class _HeadersList {
47939
47939
  /** @type {[string, string][]|null} */
@@ -54958,7 +54958,7 @@ var initConfig = async () => {
54958
54958
  return config;
54959
54959
  };
54960
54960
 
54961
- // node_modules/.pnpm/@musistudio+llms@1.0.8_ws@8.18.3_zod@3.25.67/node_modules/@musistudio/llms/dist/esm/server.mjs
54961
+ // node_modules/.pnpm/@musistudio+llms@1.0.10_ws@8.18.3_zod@3.25.67/node_modules/@musistudio/llms/dist/esm/server.mjs
54962
54962
  var import_fastify = __toESM(require_fastify(), 1);
54963
54963
  var import_cors = __toESM(require_cors(), 1);
54964
54964
  var import_fs = require("fs");
@@ -54973,7 +54973,7 @@ var Z = ((s) => typeof require < "u" ? require : typeof Proxy < "u" ? new Proxy(
54973
54973
  if (typeof require < "u") return require.apply(this, arguments);
54974
54974
  throw Error('Dynamic require of "' + s + '" is not supported');
54975
54975
  });
54976
- var $ = class {
54976
+ var I = class {
54977
54977
  config = {};
54978
54978
  options;
54979
54979
  constructor(e = { jsonPath: "./config.json" }) {
@@ -55037,85 +55037,85 @@ var $ = class {
55037
55037
  return this.options.initialConfig && e.push("Initial Config"), this.options.useJsonFile && this.options.jsonPath && e.push(`JSON: ${this.options.jsonPath}`), this.options.useEnvFile && e.push(`ENV: ${this.options.envPath}`), this.options.useEnvironmentVariables && e.push("Environment Variables"), `Config sources: ${e.join(", ")}`;
55038
55038
  }
55039
55039
  };
55040
- function C(...s) {
55040
+ function y(...s) {
55041
55041
  if (console.log(...s), !(process.env.LOG === "true")) return;
55042
- let n = `[${(/* @__PURE__ */ new Date()).toISOString()}] ${Array.isArray(s) ? s.map((o) => typeof o == "object" ? JSON.stringify(o) : String(o)).join(" ") : ""}
55043
- `, r = process.env.LOG_FILE || "app.log";
55044
- import_node_fs.default.appendFileSync(r, n, "utf8");
55042
+ let n = `[${(/* @__PURE__ */ new Date()).toISOString()}] ${Array.isArray(s) ? s.map((r) => typeof r == "object" ? JSON.stringify(r) : String(r)).join(" ") : ""}
55043
+ `, o = process.env.LOG_FILE || "app.log";
55044
+ import_node_fs.default.appendFileSync(o, n, "utf8");
55045
55045
  }
55046
55046
  function L(s, e = 500, t = "internal_error", n = "api_error") {
55047
- let r = new Error(s);
55048
- return r.statusCode = e, r.code = t, r.type = n, r;
55047
+ let o = new Error(s);
55048
+ return o.statusCode = e, o.code = t, o.type = n, o;
55049
55049
  }
55050
55050
  async function le(s, e, t) {
55051
55051
  e.log.error(s);
55052
- let n = s.statusCode || 500, r = { error: { message: s.message || "Internal Server Error", type: s.type || "api_error", code: s.code || "internal_error" } };
55053
- return t.code(n).send(r);
55052
+ let n = s.statusCode || 500, o = { error: { message: s.message || "Internal Server Error", type: s.type || "api_error", code: s.code || "internal_error" } };
55053
+ return t.code(n).send(o);
55054
55054
  }
55055
55055
  function de(s, e, t) {
55056
55056
  let n = new Headers({ "Content-Type": "application/json" });
55057
- t.headers && Object.entries(t.headers).forEach(([d, c]) => {
55058
- n.set(d, c);
55057
+ t.headers && Object.entries(t.headers).forEach(([d, l]) => {
55058
+ n.set(d, l);
55059
55059
  });
55060
- let r, o = AbortSignal.timeout(t.TIMEOUT ?? 60 * 1e3 * 60);
55060
+ let o, r = AbortSignal.timeout(t.TIMEOUT ?? 60 * 1e3 * 60);
55061
55061
  if (t.signal) {
55062
- let d = new AbortController(), c = () => d.abort();
55063
- t.signal.addEventListener("abort", c), o.addEventListener("abort", c), r = d.signal;
55064
- } else r = o;
55065
- let l = { method: "POST", headers: n, body: JSON.stringify(e), signal: r };
55066
- return t.httpsProxy && (l.dispatcher = new import_undici.ProxyAgent(new URL(t.httpsProxy).toString())), C("final request:", typeof s == "string" ? s : s.toString(), t.httpsProxy, l), fetch(typeof s == "string" ? s : s.toString(), l);
55062
+ let d = new AbortController(), l = () => d.abort();
55063
+ t.signal.addEventListener("abort", l), r.addEventListener("abort", l), o = d.signal;
55064
+ } else o = r;
55065
+ let c = { method: "POST", headers: n, body: JSON.stringify(e), signal: o };
55066
+ return t.httpsProxy && (c.dispatcher = new import_undici.ProxyAgent(new URL(t.httpsProxy).toString())), y("final request:", typeof s == "string" ? s : s.toString(), t.httpsProxy, c), fetch(typeof s == "string" ? s : s.toString(), c);
55067
55067
  }
55068
- var fe = async (s) => {
55068
+ var ue = async (s) => {
55069
55069
  s.get("/", async (t, n) => ({ message: "LLMs API", version: "1.0.0" })), s.get("/health", async (t, n) => ({ status: "ok", timestamp: (/* @__PURE__ */ new Date()).toISOString() }));
55070
55070
  let e = s._server.transformerService.getTransformersWithEndpoint();
55071
- for (let { name: t, transformer: n } of e) n.endPoint && s.post(n.endPoint, async (r, o) => {
55072
- let l = r.body, d = r.provider, c = s._server.providerService.getProvider(d);
55073
- if (!c) throw L(`Provider '${d}' not found`, 404, "provider_not_found");
55074
- let a = l, u = {};
55071
+ for (let { name: t, transformer: n } of e) n.endPoint && s.post(n.endPoint, async (o, r) => {
55072
+ let c = o.body, d = o.provider, l = s._server.providerService.getProvider(d);
55073
+ if (!l) throw L(`Provider '${d}' not found`, 404, "provider_not_found");
55074
+ let i = c, p = {};
55075
55075
  if (typeof n.transformRequestOut == "function") {
55076
- let i = await n.transformRequestOut(l);
55077
- i.body ? (a = i.body, u = i.config || {}) : a = i;
55076
+ let a = await n.transformRequestOut(c);
55077
+ a.body ? (i = a.body, p = a.config || {}) : i = a;
55078
55078
  }
55079
- if (C("use transformers:", c.transformer?.use), c.transformer?.use?.length) for (let i of c.transformer.use) {
55080
- if (!i || typeof i.transformRequestIn != "function") continue;
55081
- let v = await i.transformRequestIn(a, c);
55082
- v.body ? (a = v.body, u = { ...u, ...v.config }) : a = v;
55079
+ if (y("use transformers:", l.transformer?.use), l.transformer?.use?.length) for (let a of l.transformer.use) {
55080
+ if (!a || typeof a.transformRequestIn != "function") continue;
55081
+ let v = await a.transformRequestIn(i, l);
55082
+ v.body ? (i = v.body, p = { ...p, ...v.config }) : i = v;
55083
55083
  }
55084
- if (c.transformer?.[r.body.model]?.use?.length) for (let i of c.transformer[r.body.model].use) !i || typeof i.transformRequestIn != "function" || (a = await i.transformRequestIn(a, c));
55085
- let y = u.url || new URL(c.baseUrl), k = await de(y, a, { httpsProxy: s._server.configService.getHttpsProxy(), ...u, headers: { Authorization: `Bearer ${c.apiKey}`, ...u?.headers || {} } });
55084
+ if (l.transformer?.[o.body.model]?.use?.length) for (let a of l.transformer[o.body.model].use) !a || typeof a.transformRequestIn != "function" || (i = await a.transformRequestIn(i, l));
55085
+ let _ = p.url || new URL(l.baseUrl), k = await de(_, i, { httpsProxy: s._server.configService.getHttpsProxy(), ...p, headers: { Authorization: `Bearer ${l.apiKey}`, ...p?.headers || {} } });
55086
55086
  if (!k.ok) {
55087
- let i = await k.text();
55088
- throw C(`Error response from ${y}: ${i}`), L(`Error from provider: ${i}`, k.status, "provider_response_error");
55087
+ let a = await k.text();
55088
+ throw y(`Error response from ${_}: ${a}`), L(`Error from provider: ${a}`, k.status, "provider_response_error");
55089
55089
  }
55090
55090
  let g = k;
55091
- if (c.transformer?.use?.length) for (let i of c.transformer.use) !i || typeof i.transformResponseOut != "function" || (g = await i.transformResponseOut(g));
55092
- if (c.transformer?.[r.body.model]?.use?.length) for (let i of c.transformer[r.body.model].use) !i || typeof i.transformResponseOut != "function" || (g = await i.transformResponseOut(g));
55093
- return n.transformResponseIn && (g = await n.transformResponseIn(g)), g.ok || o.code(g.status), l?.stream === true ? (o.header("Content-Type", "text/event-stream"), o.header("Cache-Control", "no-cache"), o.header("Connection", "keep-alive"), o.send(g.body)) : g.json();
55091
+ if (l.transformer?.use?.length) for (let a of l.transformer.use) !a || typeof a.transformResponseOut != "function" || (g = await a.transformResponseOut(g));
55092
+ if (l.transformer?.[o.body.model]?.use?.length) for (let a of l.transformer[o.body.model].use) !a || typeof a.transformResponseOut != "function" || (g = await a.transformResponseOut(g));
55093
+ return n.transformResponseIn && (g = await n.transformResponseIn(g)), g.ok || r.code(g.status), c?.stream === true ? (r.header("Content-Type", "text/event-stream"), r.header("Cache-Control", "no-cache"), r.header("Connection", "keep-alive"), r.send(g.body)) : g.json();
55094
55094
  });
55095
55095
  s.post("/providers", { schema: { body: { type: "object", properties: { id: { type: "string" }, name: { type: "string" }, type: { type: "string", enum: ["openai", "anthropic"] }, baseUrl: { type: "string" }, apiKey: { type: "string" }, models: { type: "array", items: { type: "string" } } }, required: ["id", "name", "type", "baseUrl", "apiKey", "models"] } } }, async (t, n) => {
55096
- let { name: r, type: o, baseUrl: l, apiKey: d, models: c } = t.body;
55097
- if (!r?.trim()) throw L("Provider name is required", 400, "invalid_request");
55098
- if (!l || !ke(l)) throw L("Valid base URL is required", 400, "invalid_request");
55096
+ let { name: o, type: r, baseUrl: c, apiKey: d, models: l } = t.body;
55097
+ if (!o?.trim()) throw L("Provider name is required", 400, "invalid_request");
55098
+ if (!c || !Ce(c)) throw L("Valid base URL is required", 400, "invalid_request");
55099
55099
  if (!d?.trim()) throw L("API key is required", 400, "invalid_request");
55100
- if (!c || !Array.isArray(c) || c.length === 0) throw L("At least one model is required", 400, "invalid_request");
55100
+ if (!l || !Array.isArray(l) || l.length === 0) throw L("At least one model is required", 400, "invalid_request");
55101
55101
  if (s._server.providerService.getProvider(id)) throw L(`Provider with ID '${id}' already exists`, 400, "provider_exists");
55102
55102
  return s._server.providerService.registerProvider(t.body);
55103
55103
  }), s.get("/providers", async (t, n) => s._server.providerService.getProviders()), s.get("/providers/:id", { schema: { params: { type: "object", properties: { id: { type: "string" } }, required: ["id"] } } }, async (t, n) => {
55104
- let r = s._server.providerService.getProvider(t.params.id);
55105
- return r || n.code(404).send({ error: "Provider not found" });
55104
+ let o = s._server.providerService.getProvider(t.params.id);
55105
+ return o || n.code(404).send({ error: "Provider not found" });
55106
55106
  }), s.put("/providers/:id", { schema: { params: { type: "object", properties: { id: { type: "string" } }, required: ["id"] }, body: { type: "object", properties: { name: { type: "string" }, type: { type: "string", enum: ["openai", "anthropic"] }, baseUrl: { type: "string" }, apiKey: { type: "string" }, models: { type: "array", items: { type: "string" } }, enabled: { type: "boolean" } } } } }, async (t, n) => {
55107
- let r = s._server.providerService.updateProvider(t.params.id, t.body);
55108
- return r || n.code(404).send({ error: "Provider not found" });
55107
+ let o = s._server.providerService.updateProvider(t.params.id, t.body);
55108
+ return o || n.code(404).send({ error: "Provider not found" });
55109
55109
  }), s.delete("/providers/:id", { schema: { params: { type: "object", properties: { id: { type: "string" } }, required: ["id"] } } }, async (t, n) => s._server.providerService.deleteProvider(t.params.id) ? { message: "Provider deleted successfully" } : n.code(404).send({ error: "Provider not found" })), s.patch("/providers/:id/toggle", { schema: { params: { type: "object", properties: { id: { type: "string" } }, required: ["id"] }, body: { type: "object", properties: { enabled: { type: "boolean" } }, required: ["enabled"] } } }, async (t, n) => s._server.providerService.toggleProvider(t.params.id, t.body.enabled) ? { message: `Provider ${t.body.enabled ? "enabled" : "disabled"} successfully` } : n.code(404).send({ error: "Provider not found" }));
55110
55110
  };
55111
- function ke(s) {
55111
+ function Ce(s) {
55112
55112
  try {
55113
55113
  return new URL(s), true;
55114
55114
  } catch {
55115
55115
  return false;
55116
55116
  }
55117
55117
  }
55118
- var q = class {
55118
+ var F = class {
55119
55119
  constructor(e) {
55120
55120
  this.providerService = e;
55121
55121
  }
@@ -55152,7 +55152,7 @@ var q = class {
55152
55152
  return this.providerService.getModelRoutes();
55153
55153
  }
55154
55154
  };
55155
- var F = class {
55155
+ var q = class {
55156
55156
  constructor(e, t) {
55157
55157
  this.configService = e;
55158
55158
  this.transformerService = t;
@@ -55172,31 +55172,31 @@ var F = class {
55172
55172
  try {
55173
55173
  if (!t.name || !t.api_base_url || !t.api_key) return;
55174
55174
  let n = {};
55175
- t.transformer && Object.keys(t.transformer).forEach((r) => {
55176
- r === "use" ? Array.isArray(t.transformer.use) && (n.use = t.transformer.use.map((o) => {
55177
- if (Array.isArray(o) && typeof o[0] == "string") {
55178
- let l = this.transformerService.getTransformer(o[0]);
55179
- if (l) return new l(o[1]);
55180
- }
55181
- if (typeof o == "string") return this.transformerService.getTransformer(o);
55182
- }).filter((o) => typeof o < "u")) : Array.isArray(t.transformer[r]?.use) && (n[r] = { use: t.transformer[r].use.map((o) => {
55183
- if (Array.isArray(o) && typeof o[0] == "string") {
55184
- let l = this.transformerService.getTransformer(o[0]);
55185
- if (l) return new l(o[1]);
55186
- }
55187
- if (typeof o == "string") return this.transformerService.getTransformer(o);
55188
- }).filter((o) => typeof o < "u") });
55189
- }), this.registerProvider({ name: t.name, baseUrl: t.api_base_url, apiKey: t.api_key, models: t.models || [], transformer: t.transformer ? n : void 0 }), C(`${t.name} provider registered`);
55175
+ t.transformer && Object.keys(t.transformer).forEach((o) => {
55176
+ o === "use" ? Array.isArray(t.transformer.use) && (n.use = t.transformer.use.map((r) => {
55177
+ if (Array.isArray(r) && typeof r[0] == "string") {
55178
+ let c = this.transformerService.getTransformer(r[0]);
55179
+ if (c) return new c(r[1]);
55180
+ }
55181
+ if (typeof r == "string") return this.transformerService.getTransformer(r);
55182
+ }).filter((r) => typeof r < "u")) : Array.isArray(t.transformer[o]?.use) && (n[o] = { use: t.transformer[o].use.map((r) => {
55183
+ if (Array.isArray(r) && typeof r[0] == "string") {
55184
+ let c = this.transformerService.getTransformer(r[0]);
55185
+ if (c) return new c(r[1]);
55186
+ }
55187
+ if (typeof r == "string") return this.transformerService.getTransformer(r);
55188
+ }).filter((r) => typeof r < "u") });
55189
+ }), this.registerProvider({ name: t.name, baseUrl: t.api_base_url, apiKey: t.api_key, models: t.models || [], transformer: t.transformer ? n : void 0 }), y(`${t.name} provider registered`);
55190
55190
  } catch (n) {
55191
- C(`${t.name} provider registered error: ${n}`);
55191
+ y(`${t.name} provider registered error: ${n}`);
55192
55192
  }
55193
55193
  });
55194
55194
  }
55195
55195
  registerProvider(e) {
55196
55196
  let t = { ...e };
55197
55197
  return this.providers.set(t.name, t), e.models.forEach((n) => {
55198
- let r = `${t.name},${n}`, o = { provider: t.name, model: n, fullModel: r };
55199
- this.modelRoutes.set(r, o), this.modelRoutes.has(n) || this.modelRoutes.set(n, o);
55198
+ let o = `${t.name},${n}`, r = { provider: t.name, model: n, fullModel: o };
55199
+ this.modelRoutes.set(o, r), this.modelRoutes.has(n) || this.modelRoutes.set(n, r);
55200
55200
  }), t;
55201
55201
  }
55202
55202
  getProviders() {
@@ -55208,20 +55208,20 @@ var F = class {
55208
55208
  updateProvider(e, t) {
55209
55209
  let n = this.providers.get(e);
55210
55210
  if (!n) return null;
55211
- let r = { ...n, ...t, updatedAt: /* @__PURE__ */ new Date() };
55212
- return this.providers.set(e, r), t.models && (n.models.forEach((o) => {
55213
- let l = `${n.id},${o}`;
55214
- this.modelRoutes.delete(l), this.modelRoutes.delete(o);
55215
- }), t.models.forEach((o) => {
55216
- let l = `${n.name},${o}`, d = { provider: n.name, model: o, fullModel: l };
55217
- this.modelRoutes.set(l, d), this.modelRoutes.has(o) || this.modelRoutes.set(o, d);
55218
- })), r;
55211
+ let o = { ...n, ...t, updatedAt: /* @__PURE__ */ new Date() };
55212
+ return this.providers.set(e, o), t.models && (n.models.forEach((r) => {
55213
+ let c = `${n.id},${r}`;
55214
+ this.modelRoutes.delete(c), this.modelRoutes.delete(r);
55215
+ }), t.models.forEach((r) => {
55216
+ let c = `${n.name},${r}`, d = { provider: n.name, model: r, fullModel: c };
55217
+ this.modelRoutes.set(c, d), this.modelRoutes.has(r) || this.modelRoutes.set(r, d);
55218
+ })), o;
55219
55219
  }
55220
55220
  deleteProvider(e) {
55221
55221
  let t = this.providers.get(e);
55222
55222
  return t ? (t.models.forEach((n) => {
55223
- let r = `${t.name},${n}`;
55224
- this.modelRoutes.delete(r), this.modelRoutes.delete(n);
55223
+ let o = `${t.name},${n}`;
55224
+ this.modelRoutes.delete(o), this.modelRoutes.delete(n);
55225
55225
  }), this.providers.delete(e), true) : false;
55226
55226
  }
55227
55227
  toggleProvider(e, t) {
@@ -55247,8 +55247,8 @@ var F = class {
55247
55247
  parseTransformerConfig(e) {
55248
55248
  return e ? Array.isArray(e) ? e.reduce((t, n) => {
55249
55249
  if (Array.isArray(n)) {
55250
- let [r, o = {}] = n;
55251
- t[r] = o;
55250
+ let [o, r = {}] = n;
55251
+ t[o] = r;
55252
55252
  } else t[n] = {};
55253
55253
  return t;
55254
55254
  }, {}) : e : {};
@@ -55262,38 +55262,64 @@ var F = class {
55262
55262
  }), { object: "list", data: e };
55263
55263
  }
55264
55264
  };
55265
- var U = class {
55265
+ var T = [];
55266
+ for (let s = 0; s < 256; ++s) T.push((s + 256).toString(16).slice(1));
55267
+ function fe(s, e = 0) {
55268
+ return (T[s[e + 0]] + T[s[e + 1]] + T[s[e + 2]] + T[s[e + 3]] + "-" + T[s[e + 4]] + T[s[e + 5]] + "-" + T[s[e + 6]] + T[s[e + 7]] + "-" + T[s[e + 8]] + T[s[e + 9]] + "-" + T[s[e + 10]] + T[s[e + 11]] + T[s[e + 12]] + T[s[e + 13]] + T[s[e + 14]] + T[s[e + 15]]).toLowerCase();
55269
+ }
55270
+ var J = new Uint8Array(256);
55271
+ var U = J.length;
55272
+ function ee() {
55273
+ return U > J.length - 16 && ((0, import_crypto.randomFillSync)(J), U = 0), J.slice(U, U += 16);
55274
+ }
55275
+ var te = { randomUUID: import_crypto2.randomUUID };
55276
+ function Re(s, e, t) {
55277
+ if (te.randomUUID && !e && !s) return te.randomUUID();
55278
+ s = s || {};
55279
+ let n = s.random ?? s.rng?.() ?? ee();
55280
+ if (n.length < 16) throw new Error("Random bytes length must be >= 16");
55281
+ if (n[6] = n[6] & 15 | 64, n[8] = n[8] & 63 | 128, e) {
55282
+ if (t = t || 0, t < 0 || t + 16 > e.length) throw new RangeError(`UUID byte range ${t}:${t + 15} is out of buffer bounds`);
55283
+ for (let o = 0; o < 16; ++o) e[t + o] = n[o];
55284
+ return e;
55285
+ }
55286
+ return fe(n);
55287
+ }
55288
+ var H = Re;
55289
+ var j = class {
55266
55290
  name = "Anthropic";
55267
55291
  endPoint = "/v1/messages";
55268
- transformRequestOut(e) {
55269
- C("Anthropic Request:", JSON.stringify(e, null, 2));
55292
+ async transformRequestOut(e) {
55293
+ y("Anthropic Request:", JSON.stringify(e, null, 2));
55270
55294
  let t = [];
55271
55295
  if (e.system) {
55272
55296
  if (typeof e.system == "string") t.push({ role: "system", content: e.system });
55273
- else if (Array.isArray(e.system)) {
55274
- let o = e.system.filter((l) => l.type === "text" && l.text).map((l) => ({ type: "text", text: l.text, cache_control: l.cache_control }));
55275
- t.push({ role: "system", content: o });
55276
- }
55277
- }
55278
- return JSON.parse(JSON.stringify(e.messages || []))?.forEach((o, l) => {
55279
- if (o.role === "user" || o.role === "assistant") {
55280
- let d = { role: o.role, content: null };
55281
- if (typeof o.content == "string") t.push({ role: o.role, content: o.content });
55282
- else if (Array.isArray(o.content)) {
55283
- if (o.role === "user") {
55284
- let c = o.content.filter((u) => u.type === "tool_result" && u.tool_use_id);
55285
- c.length && c.forEach((u, y) => {
55286
- let k = { role: "tool", content: typeof u.content == "string" ? u.content : JSON.stringify(u.content), tool_call_id: u.tool_use_id, cache_control: u.cache_control };
55287
- t.push(k);
55297
+ else if (Array.isArray(e.system) && e.system.length) {
55298
+ let r = e.system.filter((c) => c.type === "text" && c.text).map((c) => ({ type: "text", text: c.text, cache_control: c.cache_control }));
55299
+ t.push({ role: "system", content: r });
55300
+ }
55301
+ }
55302
+ return JSON.parse(JSON.stringify(e.messages || []))?.forEach((r, c) => {
55303
+ if (r.role === "user" || r.role === "assistant") {
55304
+ if (typeof r.content == "string") {
55305
+ t.push({ role: r.role, content: r.content });
55306
+ return;
55307
+ }
55308
+ if (Array.isArray(r.content)) {
55309
+ if (r.role === "user") {
55310
+ let d = r.content.filter((i) => i.type === "tool_result" && i.tool_use_id);
55311
+ d.length && d.forEach((i, p) => {
55312
+ let _ = { role: "tool", content: typeof i.content == "string" ? i.content : JSON.stringify(i.content), tool_call_id: i.tool_use_id, cache_control: i.cache_control };
55313
+ t.push(_);
55288
55314
  });
55289
- let a = o.content.filter((u) => u.type === "text" && u.text);
55290
- a.length && t.push({ role: "user", content: a });
55291
- } else if (o.role === "assistant") {
55292
- let c = { role: "assistant", content: null }, a = o.content.filter((y) => y.type === "text" && y.text);
55293
- a.length && (c.content = a.map((y) => y.text).join(`
55315
+ let l = r.content.filter((i) => i.type === "text" && i.text || i.type === "image" && i.source);
55316
+ l.length && t.push({ role: "user", content: l.map((i) => i?.type === "image" ? { type: "image_url", image_url: { url: i.source?.type === "base64" ? i.source.data : i.source.url }, media_type: i.source.media_type } : i) });
55317
+ } else if (r.role === "assistant") {
55318
+ let d = { role: "assistant", content: null }, l = r.content.filter((p) => p.type === "text" && p.text);
55319
+ l.length && (d.content = l.map((p) => p.text).join(`
55294
55320
  `));
55295
- let u = o.content.filter((y) => y.type === "tool_use" && y.id);
55296
- u.length && (c.tool_calls = u.map((y) => ({ id: y.id, type: "function", function: { name: y.name, arguments: JSON.stringify(y.input || {}) } }))), t.push(c);
55321
+ let i = r.content.filter((p) => p.type === "tool_use" && p.id);
55322
+ i.length && (d.tool_calls = i.map((p) => ({ id: p.id, type: "function", function: { name: p.name, arguments: JSON.stringify(p.input || {}) } }))), t.push(d);
55297
55323
  }
55298
55324
  return;
55299
55325
  }
@@ -55306,8 +55332,8 @@ var U = class {
55306
55332
  let n = await this.convertOpenAIStreamToAnthropic(e.body);
55307
55333
  return new Response(n, { headers: { "Content-Type": "text/event-stream", "Cache-Control": "no-cache", Connection: "keep-alive" } });
55308
55334
  } else {
55309
- let n = await e.json(), r = this.convertOpenAIResponseToAnthropic(n);
55310
- return new Response(JSON.stringify(r), { headers: { "Content-Type": "application/json" } });
55335
+ let n = await e.json(), o = this.convertOpenAIResponseToAnthropic(n);
55336
+ return new Response(JSON.stringify(o), { headers: { "Content-Type": "application/json" } });
55311
55337
  }
55312
55338
  }
55313
55339
  convertAnthropicToolsToUnified(e) {
@@ -55315,157 +55341,176 @@ var U = class {
55315
55341
  }
55316
55342
  async convertOpenAIStreamToAnthropic(e) {
55317
55343
  return new ReadableStream({ async start(n) {
55318
- let r = new TextEncoder(), o = `msg_${Date.now()}`, l = "unknown", d = false, c = false, a = false, u = /* @__PURE__ */ new Map(), y = /* @__PURE__ */ new Map(), k = 0, g = 0, f = 0, i = false, v = false, h = 0, p = (x) => {
55319
- if (!i) try {
55344
+ let o = new TextEncoder(), r = `msg_${Date.now()}`, c = "unknown", d = false, l = false, i = false, p = /* @__PURE__ */ new Map(), _ = /* @__PURE__ */ new Map(), k = 0, g = 0, u = 0, a = false, v = false, h = 0, f = (x) => {
55345
+ if (!a) try {
55320
55346
  n.enqueue(x);
55321
- let R = new TextDecoder().decode(x);
55322
- C("send data:", R.trim());
55323
- } catch (R) {
55324
- if (R instanceof TypeError && R.message.includes("Controller is already closed")) i = true;
55325
- else throw C(`send data error: ${R.message}`), R;
55347
+ let b = new TextDecoder().decode(x);
55348
+ y("send data:", b.trim());
55349
+ } catch (b) {
55350
+ if (b instanceof TypeError && b.message.includes("Controller is already closed")) a = true;
55351
+ else throw y(`send data error: ${b.message}`), b;
55326
55352
  }
55327
55353
  }, m = () => {
55328
- if (!i) try {
55329
- n.close(), i = true;
55354
+ if (!a) try {
55355
+ n.close(), a = true;
55330
55356
  } catch (x) {
55331
- if (x instanceof TypeError && x.message.includes("Controller is already closed")) i = true;
55357
+ if (x instanceof TypeError && x.message.includes("Controller is already closed")) a = true;
55332
55358
  else throw x;
55333
55359
  }
55334
- }, T = null;
55360
+ }, S = null;
55335
55361
  try {
55336
- T = e.getReader();
55337
- let x = new TextDecoder(), R = "";
55338
- for (; !i; ) {
55339
- let { done: X, value: me } = await T.read();
55362
+ S = e.getReader();
55363
+ let x = new TextDecoder(), b = "";
55364
+ for (; !a; ) {
55365
+ let { done: X, value: me } = await S.read();
55340
55366
  if (X) break;
55341
- R += x.decode(me, { stream: true });
55342
- let se = R.split(`
55367
+ b += x.decode(me, { stream: true });
55368
+ let se = b.split(`
55343
55369
  `);
55344
- R = se.pop() || "";
55370
+ b = se.pop() || "";
55345
55371
  for (let ie of se) {
55346
- if (i || a) break;
55372
+ if (a || i) break;
55347
55373
  if (!ie.startsWith("data: ")) continue;
55348
55374
  let Q = ie.slice(6);
55349
55375
  if (Q !== "[DONE]") try {
55350
55376
  let O = JSON.parse(Q);
55351
- if (k++, C("Original Response:", JSON.stringify(O, null, 2)), O.error) {
55352
- let _ = { type: "error", message: { type: "api_error", message: JSON.stringify(O.error) } };
55353
- p(r.encode(`event: error
55354
- data: ${JSON.stringify(_)}
55377
+ if (k++, y("Original Response:", JSON.stringify(O, null, 2)), O.error) {
55378
+ let C = { type: "error", message: { type: "api_error", message: JSON.stringify(O.error) } };
55379
+ f(o.encode(`event: error
55380
+ data: ${JSON.stringify(C)}
55355
55381
 
55356
55382
  `));
55357
55383
  continue;
55358
55384
  }
55359
- if (l = O.model || l, !d && !i && !a) {
55385
+ if (c = O.model || c, !d && !a && !i) {
55360
55386
  d = true;
55361
- let _ = { type: "message_start", message: { id: o, type: "message", role: "assistant", content: [], model: l, stop_reason: null, stop_sequence: null, usage: { input_tokens: 1, output_tokens: 1 } } };
55362
- p(r.encode(`event: message_start
55363
- data: ${JSON.stringify(_)}
55387
+ let C = { type: "message_start", message: { id: r, type: "message", role: "assistant", content: [], model: c, stop_reason: null, stop_sequence: null, usage: { input_tokens: 1, output_tokens: 1 } } };
55388
+ f(o.encode(`event: message_start
55389
+ data: ${JSON.stringify(C)}
55364
55390
 
55365
55391
  `));
55366
55392
  }
55367
55393
  let w = O.choices?.[0];
55368
55394
  if (!w) continue;
55369
- if (w?.delta?.thinking && !i && !a) {
55395
+ if (w?.delta?.thinking && !a && !i) {
55370
55396
  if (!v) {
55371
- let _ = { type: "content_block_start", index: h, content_block: { type: "thinking", thinking: "" } };
55372
- p(r.encode(`event: content_block_start
55373
- data: ${JSON.stringify(_)}
55397
+ let C = { type: "content_block_start", index: h, content_block: { type: "thinking", thinking: "" } };
55398
+ f(o.encode(`event: content_block_start
55399
+ data: ${JSON.stringify(C)}
55374
55400
 
55375
55401
  `)), v = true;
55376
55402
  }
55377
55403
  if (w.delta.thinking.signature) {
55378
- let _ = { type: "content_block_delta", index: h, delta: { type: "signature_delta", signature: w.delta.thinking.signature } };
55379
- p(r.encode(`event: content_block_delta
55380
- data: ${JSON.stringify(_)}
55404
+ let C = { type: "content_block_delta", index: h, delta: { type: "signature_delta", signature: w.delta.thinking.signature } };
55405
+ f(o.encode(`event: content_block_delta
55406
+ data: ${JSON.stringify(C)}
55381
55407
 
55382
55408
  `));
55383
- let S = { type: "content_block_stop", index: h };
55384
- p(r.encode(`event: content_block_stop
55385
- data: ${JSON.stringify(S)}
55409
+ let R = { type: "content_block_stop", index: h };
55410
+ f(o.encode(`event: content_block_stop
55411
+ data: ${JSON.stringify(R)}
55386
55412
 
55387
55413
  `)), h++;
55388
55414
  } else if (w.delta.thinking.content) {
55389
- let _ = { type: "content_block_delta", index: h, delta: { type: "thinking_delta", thinking: w.delta.thinking.content || "" } };
55390
- p(r.encode(`event: content_block_delta
55391
- data: ${JSON.stringify(_)}
55415
+ let C = { type: "content_block_delta", index: h, delta: { type: "thinking_delta", thinking: w.delta.thinking.content || "" } };
55416
+ f(o.encode(`event: content_block_delta
55417
+ data: ${JSON.stringify(C)}
55392
55418
 
55393
55419
  `));
55394
55420
  }
55395
55421
  }
55396
- if (w?.delta?.content && !i && !a) {
55397
- if (g++, !c && !a) {
55398
- c = true;
55399
- let _ = { type: "content_block_start", index: h, content_block: { type: "text", text: "" } };
55400
- p(r.encode(`event: content_block_start
55401
- data: ${JSON.stringify(_)}
55422
+ if (w?.delta?.content && !a && !i) {
55423
+ if (g++, !l && !i) {
55424
+ l = true;
55425
+ let C = { type: "content_block_start", index: h, content_block: { type: "text", text: "" } };
55426
+ f(o.encode(`event: content_block_start
55427
+ data: ${JSON.stringify(C)}
55402
55428
 
55403
55429
  `));
55404
55430
  }
55405
- if (!i && !a) {
55406
- let _ = { type: "content_block_delta", index: h, delta: { type: "text_delta", text: w.delta.content } };
55407
- p(r.encode(`event: content_block_delta
55408
- data: ${JSON.stringify(_)}
55431
+ if (!a && !i) {
55432
+ let C = { type: "content_block_delta", index: h, delta: { type: "text_delta", text: w.delta.content } };
55433
+ f(o.encode(`event: content_block_delta
55434
+ data: ${JSON.stringify(C)}
55409
55435
 
55410
55436
  `));
55411
55437
  }
55412
55438
  }
55413
- if (w?.delta?.tool_calls && !i && !a) {
55414
- f++;
55415
- let _ = /* @__PURE__ */ new Set();
55416
- for (let S of w.delta.tool_calls) {
55417
- if (i) break;
55418
- let P = S.index ?? 0;
55419
- if (_.has(P)) continue;
55420
- if (_.add(P), !y.has(P)) {
55421
- let E = c ? y.size + 1 : y.size;
55439
+ if (w?.delta?.annotations?.length && !a && !i) {
55440
+ let C = { type: "content_block_stop", index: h };
55441
+ f(o.encode(`event: content_block_stop
55442
+ data: ${JSON.stringify(C)}
55443
+
55444
+ `)), l = false, w?.delta?.annotations.forEach((R, P, he) => {
55445
+ h++;
55446
+ let E = { type: "content_block_start", index: h, content_block: { type: "web_search_tool_result", tool_use_id: `srvtoolu_${H()}`, content: [{ type: "web_search_result", title: R.url_citation.title, url: R.url_citation.url }] } };
55447
+ f(o.encode(`event: content_block_start
55448
+ data: ${JSON.stringify(E)}
55449
+
55450
+ `));
55451
+ let A = { type: "content_block_stop", index: h };
55452
+ f(o.encode(`event: content_block_stop
55453
+ data: ${JSON.stringify(A)}
55454
+
55455
+ `));
55456
+ });
55457
+ }
55458
+ if (w?.delta?.tool_calls && !a && !i) {
55459
+ u++;
55460
+ let C = /* @__PURE__ */ new Set();
55461
+ for (let R of w.delta.tool_calls) {
55462
+ if (a) break;
55463
+ let P = R.index ?? 0;
55464
+ if (C.has(P)) continue;
55465
+ if (C.add(P), !_.has(P)) {
55466
+ let E = l ? _.size + 1 : _.size;
55422
55467
  if (E !== 0) {
55423
- C("content_block_stop2");
55424
- let he = { type: "content_block_stop", index: h };
55425
- p(r.encode(`event: content_block_stop
55426
- data: ${JSON.stringify(he)}
55468
+ y("content_block_stop2");
55469
+ let ge = { type: "content_block_stop", index: h };
55470
+ f(o.encode(`event: content_block_stop
55471
+ data: ${JSON.stringify(ge)}
55427
55472
 
55428
55473
  `)), h++;
55429
55474
  }
55430
- y.set(P, E);
55431
- let M = S.id || `call_${Date.now()}_${P}`, A = S.function?.name || `tool_${P}`, N = { type: "content_block_start", index: h, content_block: { type: "tool_use", id: M, name: A, input: {} } };
55432
- p(r.encode(`event: content_block_start
55475
+ _.set(P, E);
55476
+ let A = R.id || `call_${Date.now()}_${P}`, M = R.function?.name || `tool_${P}`, N = { type: "content_block_start", index: h, content_block: { type: "tool_use", id: A, name: M, input: {} } };
55477
+ f(o.encode(`event: content_block_start
55433
55478
  data: ${JSON.stringify(N)}
55434
55479
 
55435
55480
  `));
55436
- let H = { id: M, name: A, arguments: "", contentBlockIndex: E };
55437
- u.set(P, H);
55438
- } else if (S.id && S.function?.name) {
55439
- let E = u.get(P);
55440
- E.id.startsWith("call_") && E.name.startsWith("tool_") && (E.id = S.id, E.name = S.function.name);
55481
+ let $ = { id: A, name: M, arguments: "", contentBlockIndex: E };
55482
+ p.set(P, $);
55483
+ } else if (R.id && R.function?.name) {
55484
+ let E = p.get(P);
55485
+ E.id.startsWith("call_") && E.name.startsWith("tool_") && (E.id = R.id, E.name = R.function.name);
55441
55486
  }
55442
- if (S.function?.arguments && !i && !a) {
55443
- if (y.get(P) === void 0) continue;
55444
- let M = u.get(P);
55445
- if (M) {
55446
- M.arguments += S.function.arguments;
55487
+ if (R.function?.arguments && !a && !i) {
55488
+ if (_.get(P) === void 0) continue;
55489
+ let A = p.get(P);
55490
+ if (A) {
55491
+ A.arguments += R.function.arguments;
55447
55492
  try {
55448
- let A = null, N = M.arguments.trim();
55493
+ let M = null, N = A.arguments.trim();
55449
55494
  if (N.startsWith("{") && N.endsWith("}")) try {
55450
- A = JSON.parse(N);
55451
- } catch (H) {
55452
- C("Tool call index:", P, "error", H.message);
55495
+ M = JSON.parse(N);
55496
+ } catch ($) {
55497
+ y("Tool call index:", P, "error", $.message);
55453
55498
  }
55454
- } catch (A) {
55455
- C("Tool call index:", P, "error", A.message);
55499
+ } catch (M) {
55500
+ y("Tool call index:", P, "error", M.message);
55456
55501
  }
55457
55502
  }
55458
55503
  try {
55459
- let A = { type: "content_block_delta", index: h, delta: { type: "input_json_delta", partial_json: S.function.arguments } };
55460
- p(r.encode(`event: content_block_delta
55461
- data: ${JSON.stringify(A)}
55504
+ let M = { type: "content_block_delta", index: h, delta: { type: "input_json_delta", partial_json: R.function.arguments } };
55505
+ f(o.encode(`event: content_block_delta
55506
+ data: ${JSON.stringify(M)}
55462
55507
 
55463
55508
  `));
55464
55509
  } catch {
55465
55510
  try {
55466
- let N = S.function.arguments.replace(/[\x00-\x1F\x7F-\x9F]/g, "").replace(/\\/g, "\\\\").replace(/"/g, '\\"'), H = { type: "content_block_delta", index: h, delta: { type: "input_json_delta", partial_json: N } };
55467
- p(r.encode(`event: content_block_delta
55468
- data: ${JSON.stringify(H)}
55511
+ let N = R.function.arguments.replace(/[\x00-\x1F\x7F-\x9F]/g, "").replace(/\\/g, "\\\\").replace(/"/g, '\\"'), $ = { type: "content_block_delta", index: h, delta: { type: "input_json_delta", partial_json: N } };
55512
+ f(o.encode(`event: content_block_delta
55513
+ data: ${JSON.stringify($)}
55469
55514
 
55470
55515
  `));
55471
55516
  } catch (N) {
@@ -55475,134 +55520,159 @@ data: ${JSON.stringify(H)}
55475
55520
  }
55476
55521
  }
55477
55522
  }
55478
- if (w?.finish_reason && !i && !a) {
55479
- if (a = true, g === 0 && f === 0 && console.error("Warning: No content in the stream response!"), (c || f > 0) && !i) {
55480
- C("content_block_stop hasTextContentStarted");
55481
- let _ = { type: "content_block_stop", index: h };
55482
- p(r.encode(`event: content_block_stop
55483
- data: ${JSON.stringify(_)}
55523
+ if (w?.finish_reason && !a && !i) {
55524
+ if (i = true, g === 0 && u === 0 && console.error("Warning: No content in the stream response!"), (l || u > 0) && !a) {
55525
+ y("content_block_stop hasTextContentStarted");
55526
+ let C = { type: "content_block_stop", index: h };
55527
+ f(o.encode(`event: content_block_stop
55528
+ data: ${JSON.stringify(C)}
55484
55529
 
55485
55530
  `));
55486
55531
  }
55487
- if (!i) {
55532
+ if (!a) {
55488
55533
  let P = { type: "message_delta", delta: { stop_reason: { stop: "end_turn", length: "max_tokens", tool_calls: "tool_use", content_filter: "stop_sequence" }[w.finish_reason] || "end_turn", stop_sequence: null }, usage: { input_tokens: O.usage?.prompt_tokens || 0, output_tokens: O.usage?.completion_tokens || 0 } };
55489
- p(r.encode(`event: message_delta
55534
+ f(o.encode(`event: message_delta
55490
55535
  data: ${JSON.stringify(P)}
55491
55536
 
55492
55537
  `));
55493
55538
  }
55494
- if (!i) {
55495
- let _ = { type: "message_stop" };
55496
- p(r.encode(`event: message_stop
55497
- data: ${JSON.stringify(_)}
55539
+ if (!a) {
55540
+ let C = { type: "message_stop" };
55541
+ f(o.encode(`event: message_stop
55542
+ data: ${JSON.stringify(C)}
55498
55543
 
55499
55544
  `));
55500
55545
  }
55501
55546
  break;
55502
55547
  }
55503
55548
  } catch (O) {
55504
- C(`parseError: ${O.name} message: ${O.message} stack: ${O.stack} data: ${Q}`);
55549
+ y(`parseError: ${O.name} message: ${O.message} stack: ${O.stack} data: ${Q}`);
55505
55550
  }
55506
55551
  }
55507
55552
  }
55508
55553
  m();
55509
55554
  } catch (x) {
55510
- if (!i) try {
55555
+ if (!a) try {
55511
55556
  n.error(x);
55512
- } catch (R) {
55513
- console.error(R);
55557
+ } catch (b) {
55558
+ console.error(b);
55514
55559
  }
55515
55560
  } finally {
55516
- if (T) try {
55517
- T.releaseLock();
55561
+ if (S) try {
55562
+ S.releaseLock();
55518
55563
  } catch (x) {
55519
55564
  console.error(x);
55520
55565
  }
55521
55566
  }
55522
55567
  }, cancel(n) {
55523
- C("cancle stream:", n);
55568
+ y("cancle stream:", n);
55524
55569
  } });
55525
55570
  }
55526
55571
  convertOpenAIResponseToAnthropic(e) {
55527
- C("Original OpenAI response:", JSON.stringify(e, null, 2));
55572
+ y("Original OpenAI response:", JSON.stringify(e, null, 2));
55528
55573
  let t = e.choices[0];
55529
55574
  if (!t) throw new Error("No choices found in OpenAI response");
55530
55575
  let n = [];
55531
- t.message.content && n.push({ type: "text", text: t.message.content }), t.message.tool_calls && t.message.tool_calls.length > 0 && t.message.tool_calls.forEach((o, l) => {
55576
+ if (t.message.annotations) {
55577
+ let r = `srvtoolu_${H()}`;
55578
+ n.push({ type: "server_tool_use", id: r, name: "web_search", input: { query: "" } }), n.push({ type: "web_search_tool_result", tool_use_id: r, content: t.message.annotations.map((c) => ({ type: "web_search_result", url: c.url_citation.url, title: c.url_citation.title })) });
55579
+ }
55580
+ t.message.content && n.push({ type: "text", text: t.message.content }), t.message.tool_calls && t.message.tool_calls.length > 0 && t.message.tool_calls.forEach((r, c) => {
55532
55581
  let d = {};
55533
55582
  try {
55534
- let c = o.function.arguments || "{}";
55535
- typeof c == "object" ? d = c : typeof c == "string" && (d = JSON.parse(c));
55583
+ let l = r.function.arguments || "{}";
55584
+ typeof l == "object" ? d = l : typeof l == "string" && (d = JSON.parse(l));
55536
55585
  } catch {
55537
- d = { text: o.function.arguments || "" };
55586
+ d = { text: r.function.arguments || "" };
55538
55587
  }
55539
- n.push({ type: "tool_use", id: o.id, name: o.function.name, input: d });
55588
+ n.push({ type: "tool_use", id: r.id, name: r.function.name, input: d });
55540
55589
  });
55541
- let r = { id: e.id, type: "message", role: "assistant", model: e.model, content: n, stop_reason: t.finish_reason === "stop" ? "end_turn" : t.finish_reason === "length" ? "max_tokens" : t.finish_reason === "tool_calls" ? "tool_use" : t.finish_reason === "content_filter" ? "stop_sequence" : "end_turn", stop_sequence: null, usage: { input_tokens: e.usage?.prompt_tokens || 0, output_tokens: e.usage?.completion_tokens || 0 } };
55542
- return C("Conversion complete, final Anthropic response:", JSON.stringify(r, null, 2)), r;
55590
+ let o = { id: e.id, type: "message", role: "assistant", model: e.model, content: n, stop_reason: t.finish_reason === "stop" ? "end_turn" : t.finish_reason === "length" ? "max_tokens" : t.finish_reason === "tool_calls" ? "tool_use" : t.finish_reason === "content_filter" ? "stop_sequence" : "end_turn", stop_sequence: null, usage: { input_tokens: e.usage?.prompt_tokens || 0, output_tokens: e.usage?.completion_tokens || 0 } };
55591
+ return y("Conversion complete, final Anthropic response:", JSON.stringify(o, null, 2)), o;
55543
55592
  }
55544
55593
  };
55545
- function ee(s) {
55594
+ function ne(s) {
55546
55595
  if (!(!s || typeof s != "object")) {
55547
55596
  if (Array.isArray(s)) {
55548
- s.forEach(ee);
55597
+ s.forEach(ne);
55549
55598
  return;
55550
55599
  }
55551
55600
  delete s.$schema, delete s.additionalProperties, s.type === "string" && s.format && !["enum", "date-time"].includes(s.format) && delete s.format, Object.keys(s).forEach((e) => {
55552
- ee(s[e]);
55601
+ ne(s[e]);
55553
55602
  });
55554
55603
  }
55555
55604
  }
55556
- var J = class {
55605
+ var D = class {
55557
55606
  name = "gemini";
55558
55607
  endPoint = "/v1beta/models/:modelAndAction";
55559
- transformRequestIn(e, t) {
55608
+ async transformRequestIn(e, t) {
55560
55609
  return { body: { contents: e.messages.map((n) => {
55561
- let r;
55562
- n.role === "assistant" ? r = "model" : (["user", "system", "tool"].includes(n.role), r = "user");
55563
- let o = [];
55564
- return typeof n.content == "string" ? o.push({ text: n.content }) : Array.isArray(n.content) && o.push(...n.content.map((l) => {
55565
- if (l.type === "text") return { text: l.text || "" };
55566
- })), Array.isArray(n.tool_calls) && o.push(...n.tool_calls.map((l) => ({ functionCall: { id: l.id || `tool_${Math.random().toString(36).substring(2, 15)}`, name: l.function.name, args: JSON.parse(l.function.arguments || "{}") } }))), { role: r, parts: o };
55567
- }), tools: [{ functionDeclarations: e.tools?.map((n) => (n.function.parameters && ee(n.function.parameters), { name: n.function.name, description: n.function.description, parameters: n.function.parameters })) || [] }] }, config: { url: new URL(`./${e.model}:${e.stream ? "streamGenerateContent?alt=sse" : "generateContent"}`, t.baseUrl), headers: { "x-goog-api-key": t.apiKey, Authorization: void 0 } } };
55610
+ let o;
55611
+ n.role === "assistant" ? o = "model" : (["user", "system", "tool"].includes(n.role), o = "user");
55612
+ let r = [];
55613
+ return typeof n.content == "string" ? r.push({ text: n.content }) : Array.isArray(n.content) && r.push(...n.content.map((c) => {
55614
+ if (c.type === "text") return { text: c.text || "" };
55615
+ if (c.type === "image_url") return c.image_url.url.startsWith("http") ? { file_data: { mime_type: c.media_type, file_uri: c.image_url.url } } : { inlineData: { mime_type: c.media_type, data: c.image_url.url } };
55616
+ })), Array.isArray(n.tool_calls) && r.push(...n.tool_calls.map((c) => ({ functionCall: { id: c.id || `tool_${Math.random().toString(36).substring(2, 15)}`, name: c.function.name, args: JSON.parse(c.function.arguments || "{}") } }))), { role: o, parts: r };
55617
+ }), tools: [{ functionDeclarations: e.tools?.filter((n) => n.function.name !== "web_search")?.map((n) => (n.function.parameters && ne(n.function.parameters), { name: n.function.name, description: n.function.description, parameters: n.function.parameters })) || [] }, e.tools?.find((n) => n.function.name === "web_search") ? { google_search: {} } : void 0] }, config: { url: new URL(`./${e.model}:${e.stream ? "streamGenerateContent?alt=sse" : "generateContent"}`, t.baseUrl), headers: { "x-goog-api-key": t.apiKey, Authorization: void 0 } } };
55568
55618
  }
55569
55619
  transformRequestOut(e) {
55570
- let t = e.contents, n = e.tools, r = e.model, o = e.max_tokens, l = e.temperature, d = e.stream, c = e.tool_choice, a = { messages: [], model: r, max_tokens: o, temperature: l, stream: d, tool_choice: c };
55571
- return Array.isArray(t) && t.forEach((u) => {
55572
- typeof u == "string" ? a.messages.push({ role: "user", content: u }) : typeof u.text == "string" ? a.messages.push({ role: "user", content: u.text || null }) : u.role === "user" ? a.messages.push({ role: "user", content: u?.parts?.map((y) => ({ type: "text", text: y.text || "" })) || [] }) : u.role === "model" && a.messages.push({ role: "assistant", content: u?.parts?.map((y) => ({ type: "text", text: y.text || "" })) || [] });
55573
- }), Array.isArray(n) && (a.tools = [], n.forEach((u) => {
55574
- Array.isArray(u.functionDeclarations) && u.functionDeclarations.forEach((y) => {
55575
- a.tools.push({ type: "function", function: { name: y.name, description: y.description, parameters: y.parameters } });
55620
+ let t = e.contents, n = e.tools, o = e.model, r = e.max_tokens, c = e.temperature, d = e.stream, l = e.tool_choice, i = { messages: [], model: o, max_tokens: r, temperature: c, stream: d, tool_choice: l };
55621
+ return Array.isArray(t) && t.forEach((p) => {
55622
+ typeof p == "string" ? i.messages.push({ role: "user", content: p }) : typeof p.text == "string" ? i.messages.push({ role: "user", content: p.text || null }) : p.role === "user" ? i.messages.push({ role: "user", content: p?.parts?.map((_) => ({ type: "text", text: _.text || "" })) || [] }) : p.role === "model" && i.messages.push({ role: "assistant", content: p?.parts?.map((_) => ({ type: "text", text: _.text || "" })) || [] });
55623
+ }), Array.isArray(n) && (i.tools = [], n.forEach((p) => {
55624
+ Array.isArray(p.functionDeclarations) && p.functionDeclarations.forEach((_) => {
55625
+ i.tools.push({ type: "function", function: { name: _.name, description: _.description, parameters: _.parameters } });
55576
55626
  });
55577
- })), a;
55627
+ })), i;
55578
55628
  }
55579
55629
  async transformResponseOut(e) {
55580
55630
  if (e.headers.get("Content-Type")?.includes("application/json")) {
55581
- let t = await e.json(), n = t.candidates[0].content.parts.filter((o) => o.functionCall).map((o) => ({ id: o.functionCall?.id || `tool_${Math.random().toString(36).substring(2, 15)}`, type: "function", function: { name: o.functionCall?.name, arguments: JSON.stringify(o.functionCall?.args || {}) } })), r = { id: t.responseId, choices: [{ finish_reason: t.candidates[0].finishReason?.toLowerCase() || null, index: 0, message: { content: t.candidates[0].content.parts.filter((o) => o.text).map((o) => o.text).join(`
55631
+ let t = await e.json(), n = t.candidates[0].content.parts?.filter((r) => r.functionCall)?.map((r) => ({ id: r.functionCall?.id || `tool_${Math.random().toString(36).substring(2, 15)}`, type: "function", function: { name: r.functionCall?.name, arguments: JSON.stringify(r.functionCall?.args || {}) } })), o = { id: t.responseId, choices: [{ finish_reason: t.candidates[0].finishReason?.toLowerCase() || null, index: 0, message: { content: t.candidates[0].content.parts?.filter((r) => r.text)?.map((r) => r.text)?.join(`
55582
55632
  `), role: "assistant", tool_calls: n.length > 0 ? n : void 0 } }], created: parseInt((/* @__PURE__ */ new Date()).getTime() / 1e3 + "", 10), model: t.modelVersion, object: "chat.completion", usage: { completion_tokens: t.usageMetadata.candidatesTokenCount, prompt_tokens: t.usageMetadata.promptTokenCount, total_tokens: t.usageMetadata.totalTokenCount } };
55583
- return new Response(JSON.stringify(r), { status: e.status, statusText: e.statusText, headers: e.headers });
55633
+ return new Response(JSON.stringify(o), { status: e.status, statusText: e.statusText, headers: e.headers });
55584
55634
  } else if (e.headers.get("Content-Type")?.includes("stream")) {
55585
55635
  if (!e.body) return e;
55586
- let t = new TextDecoder(), n = new TextEncoder(), r = new ReadableStream({ async start(o) {
55587
- let l = e.body.getReader();
55588
- try {
55589
- for (; ; ) {
55590
- let { done: d, value: c } = await l.read();
55591
- if (d) break;
55592
- let a = t.decode(c, { stream: true });
55593
- if (a.startsWith("data: ")) a = a.slice(6).trim();
55594
- else break;
55595
- C("gemini chunk:", a), a = JSON.parse(a);
55596
- let u = a.candidates[0].content.parts.filter((k) => k.functionCall).map((k) => ({ id: k.functionCall?.id || `tool_${Math.random().toString(36).substring(2, 15)}`, type: "function", function: { name: k.functionCall?.name, arguments: JSON.stringify(k.functionCall?.args || {}) } })), y = { choices: [{ delta: { role: "assistant", content: a.candidates[0].content.parts.filter((k) => k.text).map((k) => k.text).join(`
55597
- `), tool_calls: u.length > 0 ? u : void 0 }, finish_reason: a.candidates[0].finishReason?.toLowerCase() || null, index: a.candidates[0].index || u.length > 0 ? 1 : 0, logprobs: null }], created: parseInt((/* @__PURE__ */ new Date()).getTime() / 1e3 + "", 10), id: a.responseId || "", model: a.modelVersion || "", object: "chat.completion.chunk", system_fingerprint: "fp_a49d71b8a1" };
55598
- C("gemini response:", JSON.stringify(y, null, 2)), o.enqueue(n.encode(`data: ${JSON.stringify(y)}
55636
+ let t = new TextDecoder(), n = new TextEncoder(), o = (c, d) => {
55637
+ if (c.startsWith("data: ")) {
55638
+ let l = c.slice(6).trim();
55639
+ if (l) {
55640
+ y("gemini chunk:", l);
55641
+ try {
55642
+ let i = JSON.parse(l);
55643
+ y("groundingMetadata: ", JSON.stringify(i.candidates[0].groundingMetadata));
55644
+ let p = i.candidates[0].content.parts?.filter((k) => k.functionCall)?.map((k) => ({ id: k.functionCall?.id || `tool_${Math.random().toString(36).substring(2, 15)}`, type: "function", function: { name: k.functionCall?.name, arguments: JSON.stringify(k.functionCall?.args || {}) } })), _ = { choices: [{ delta: { role: "assistant", content: i.candidates[0].content.parts?.filter((k) => k.text)?.map((k) => k.text)?.join(`
55645
+ `), tool_calls: p.length > 0 ? p : void 0 }, finish_reason: i.candidates[0].finishReason?.toLowerCase() || null, index: i.candidates[0].index || p.length > 0 ? 1 : 0, logprobs: null }], created: parseInt((/* @__PURE__ */ new Date()).getTime() / 1e3 + "", 10), id: i.responseId || "", model: i.modelVersion || "", object: "chat.completion.chunk", system_fingerprint: "fp_a49d71b8a1", usage: { completion_tokens: i.usageMetadata.candidatesTokenCount, prompt_tokens: i.usageMetadata.promptTokenCount, total_tokens: i.usageMetadata.totalTokenCount } };
55646
+ i.candidates[0]?.groundingMetadata?.groundingChunks?.length && (_.choices[0].delta.annotations = i.candidates[0].groundingMetadata.groundingChunks.map((k, g) => {
55647
+ let u = i.candidates[0]?.groundingMetadata?.groundingSupports?.filter((a) => a.groundingChunkIndices.includes(g));
55648
+ return { type: "url_citation", url_citation: { url: k.web.uri, title: k.web.title, content: u?.[0].segment.text, start_index: u?.[0].segment.startIndex, end_index: u?.[0].segment.endIndex } };
55649
+ })), d.enqueue(n.encode(`data: ${JSON.stringify(_)}
55599
55650
 
55600
55651
  `));
55652
+ } catch (i) {
55653
+ y("Error parsing Gemini stream chunk", l, i.message);
55654
+ }
55601
55655
  }
55602
- } catch (d) {
55603
- o.error(d);
55656
+ }
55657
+ }, r = new ReadableStream({ async start(c) {
55658
+ let d = e.body.getReader(), l = "";
55659
+ try {
55660
+ for (; ; ) {
55661
+ let { done: i, value: p } = await d.read();
55662
+ if (i) {
55663
+ l && o(l, c);
55664
+ break;
55665
+ }
55666
+ l += t.decode(p, { stream: true });
55667
+ let _ = l.split(`
55668
+ `);
55669
+ l = _.pop() || "";
55670
+ for (let k of _) o(k, c);
55671
+ }
55672
+ } catch (i) {
55673
+ c.error(i);
55604
55674
  } finally {
55605
- o.close();
55675
+ c.close();
55606
55676
  }
55607
55677
  } });
55608
55678
  return new Response(r, { status: e.status, statusText: e.statusText, headers: e.headers });
@@ -55610,7 +55680,7 @@ var J = class {
55610
55680
  return e;
55611
55681
  }
55612
55682
  };
55613
- var j = class {
55683
+ var B = class {
55614
55684
  name = "deepseek";
55615
55685
  transformRequestIn(e) {
55616
55686
  return e.max_tokens && e.max_tokens > 8192 && (e.max_tokens = 8192), e;
@@ -55621,41 +55691,41 @@ var j = class {
55621
55691
  return new Response(JSON.stringify(t), { status: e.status, statusText: e.statusText, headers: e.headers });
55622
55692
  } else if (e.headers.get("Content-Type")?.includes("stream")) {
55623
55693
  if (!e.body) return e;
55624
- let t = new TextDecoder(), n = new TextEncoder(), r = "", o = false, l = new ReadableStream({ async start(d) {
55625
- let c = e.body.getReader();
55694
+ let t = new TextDecoder(), n = new TextEncoder(), o = "", r = false, c = new ReadableStream({ async start(d) {
55695
+ let l = e.body.getReader();
55626
55696
  try {
55627
55697
  for (; ; ) {
55628
- let { done: a, value: u } = await c.read();
55629
- if (a) break;
55630
- let k = t.decode(u, { stream: true }).split(`
55698
+ let { done: i, value: p } = await l.read();
55699
+ if (i) break;
55700
+ let k = t.decode(p, { stream: true }).split(`
55631
55701
  `);
55632
55702
  for (let g of k) if (g.startsWith("data: ") && g.trim() !== "data: [DONE]") try {
55633
- let f = JSON.parse(g.slice(6));
55634
- if (f.choices?.[0]?.delta?.reasoning_content) {
55635
- r += f.choices[0].delta.reasoning_content;
55636
- let i = { ...f, choices: [{ ...f.choices[0], delta: { ...f.choices[0].delta, thinking: { content: f.choices[0].delta.reasoning_content } } }] };
55637
- delete i.choices[0].delta.reasoning_content;
55638
- let v = `data: ${JSON.stringify(i)}
55703
+ let u = JSON.parse(g.slice(6));
55704
+ if (u.choices?.[0]?.delta?.reasoning_content) {
55705
+ o += u.choices[0].delta.reasoning_content;
55706
+ let a = { ...u, choices: [{ ...u.choices[0], delta: { ...u.choices[0].delta, thinking: { content: u.choices[0].delta.reasoning_content } } }] };
55707
+ delete a.choices[0].delta.reasoning_content;
55708
+ let v = `data: ${JSON.stringify(a)}
55639
55709
 
55640
55710
  `;
55641
55711
  d.enqueue(n.encode(v));
55642
55712
  continue;
55643
55713
  }
55644
- if (f.choices?.[0]?.delta?.content && r && !o) {
55645
- o = true;
55646
- let i = Date.now().toString(), v = { ...f, choices: [{ ...f.choices[0], delta: { ...f.choices[0].delta, content: null, thinking: { content: r, signature: i } } }] };
55714
+ if (u.choices?.[0]?.delta?.content && o && !r) {
55715
+ r = true;
55716
+ let a = Date.now().toString(), v = { ...u, choices: [{ ...u.choices[0], delta: { ...u.choices[0].delta, content: null, thinking: { content: o, signature: a } } }] };
55647
55717
  delete v.choices[0].delta.reasoning_content;
55648
55718
  let h = `data: ${JSON.stringify(v)}
55649
55719
 
55650
55720
  `;
55651
55721
  d.enqueue(n.encode(h));
55652
55722
  }
55653
- if (f.choices[0]?.delta?.reasoning_content && delete f.choices[0].delta.reasoning_content, f.choices?.[0]?.delta && Object.keys(f.choices[0].delta).length > 0) {
55654
- o && f.choices[0].index++;
55655
- let i = `data: ${JSON.stringify(f)}
55723
+ if (u.choices[0]?.delta?.reasoning_content && delete u.choices[0].delta.reasoning_content, u.choices?.[0]?.delta && Object.keys(u.choices[0].delta).length > 0) {
55724
+ r && u.choices[0].index++;
55725
+ let a = `data: ${JSON.stringify(u)}
55656
55726
 
55657
55727
  `;
55658
- d.enqueue(n.encode(i));
55728
+ d.enqueue(n.encode(a));
55659
55729
  }
55660
55730
  } catch {
55661
55731
  d.enqueue(n.encode(g + `
@@ -55664,23 +55734,23 @@ var j = class {
55664
55734
  else d.enqueue(n.encode(g + `
55665
55735
  `));
55666
55736
  }
55667
- } catch (a) {
55668
- d.error(a);
55737
+ } catch (i) {
55738
+ d.error(i);
55669
55739
  } finally {
55670
55740
  try {
55671
- c.releaseLock();
55672
- } catch (a) {
55673
- console.error("Error releasing reader lock:", a);
55741
+ l.releaseLock();
55742
+ } catch (i) {
55743
+ console.error("Error releasing reader lock:", i);
55674
55744
  }
55675
55745
  d.close();
55676
55746
  }
55677
55747
  } });
55678
- return new Response(l, { status: e.status, statusText: e.statusText, headers: { "Content-Type": e.headers.get("Content-Type") || "text/plain", "Cache-Control": "no-cache", Connection: "keep-alive" } });
55748
+ return new Response(c, { status: e.status, statusText: e.statusText, headers: { "Content-Type": e.headers.get("Content-Type") || "text/plain", "Cache-Control": "no-cache", Connection: "keep-alive" } });
55679
55749
  }
55680
55750
  return e;
55681
55751
  }
55682
55752
  };
55683
- var D = class {
55753
+ var W = class {
55684
55754
  name = "tooluse";
55685
55755
  transformRequestIn(e) {
55686
55756
  return e.messages.push({ role: "system", content: "<system-reminder>Tool mode is active. The user expects you to proactively execute the most suitable tool to help complete the task. \nBefore invoking a tool, you must carefully evaluate whether it matches the current task. If no available tool is appropriate for the task, you MUST call the `ExitTool` to exit tool mode \u2014 this is the only valid way to terminate tool mode.\nAlways prioritize completing the user's task effectively and efficiently by using tools whenever appropriate.</system-reminder>" }), e.tools?.length && (e.tool_choice = "required", e.tools.unshift({ type: "function", function: { name: "ExitTool", description: `Use this tool when you are in tool mode and have completed the task. This is the only valid way to exit tool mode.
@@ -55693,33 +55763,33 @@ Examples:
55693
55763
  if (e.headers.get("Content-Type")?.includes("application/json")) {
55694
55764
  let t = await e.json();
55695
55765
  if (t?.choices[0]?.message.tool_calls?.length && t?.choices[0]?.message.tool_calls[0]?.function?.name === "ExitTool") {
55696
- let n = t?.choices[0]?.message.tool_calls[0], r = JSON.parse(n.function.arguments || "{}");
55697
- t.choices[0].message.content = r.response || "", delete t.choices[0].message.tool_calls;
55766
+ let n = t?.choices[0]?.message.tool_calls[0], o = JSON.parse(n.function.arguments || "{}");
55767
+ t.choices[0].message.content = o.response || "", delete t.choices[0].message.tool_calls;
55698
55768
  }
55699
55769
  return new Response(JSON.stringify(t), { status: e.status, statusText: e.statusText, headers: e.headers });
55700
55770
  } else if (e.headers.get("Content-Type")?.includes("stream")) {
55701
55771
  if (!e.body) return e;
55702
- let t = new TextDecoder(), n = new TextEncoder(), r = -1, o = "", l = new ReadableStream({ async start(d) {
55703
- let c = e.body.getReader();
55772
+ let t = new TextDecoder(), n = new TextEncoder(), o = -1, r = "", c = new ReadableStream({ async start(d) {
55773
+ let l = e.body.getReader();
55704
55774
  try {
55705
55775
  for (; ; ) {
55706
- let { done: a, value: u } = await c.read();
55707
- if (a) break;
55708
- let k = t.decode(u, { stream: true }).split(`
55776
+ let { done: i, value: p } = await l.read();
55777
+ if (i) break;
55778
+ let k = t.decode(p, { stream: true }).split(`
55709
55779
  `);
55710
55780
  for (let g of k) if (g.startsWith("data: ") && g.trim() !== "data: [DONE]") try {
55711
- let f = JSON.parse(g.slice(6));
55712
- if (f.choices[0]?.delta?.tool_calls?.length) {
55713
- let i = f.choices[0].delta.tool_calls[0];
55714
- if (i.function?.name === "ExitTool") {
55715
- r = i.index;
55781
+ let u = JSON.parse(g.slice(6));
55782
+ if (u.choices[0]?.delta?.tool_calls?.length) {
55783
+ let a = u.choices[0].delta.tool_calls[0];
55784
+ if (a.function?.name === "ExitTool") {
55785
+ o = a.index;
55716
55786
  continue;
55717
- } else if (r > -1 && i.index === r && i.function.arguments) {
55718
- o += i.function.arguments;
55787
+ } else if (o > -1 && a.index === o && a.function.arguments) {
55788
+ r += a.function.arguments;
55719
55789
  try {
55720
- let v = JSON.parse(o);
55721
- f.choices = [{ delta: { role: "assistant", content: v.response || "" } }];
55722
- let h = `data: ${JSON.stringify(f)}
55790
+ let v = JSON.parse(r);
55791
+ u.choices = [{ delta: { role: "assistant", content: v.response || "" } }];
55792
+ let h = `data: ${JSON.stringify(u)}
55723
55793
 
55724
55794
  `;
55725
55795
  d.enqueue(n.encode(h));
@@ -55728,11 +55798,11 @@ Examples:
55728
55798
  continue;
55729
55799
  }
55730
55800
  }
55731
- if (f.choices?.[0]?.delta && Object.keys(f.choices[0].delta).length > 0) {
55732
- let i = `data: ${JSON.stringify(f)}
55801
+ if (u.choices?.[0]?.delta && Object.keys(u.choices[0].delta).length > 0) {
55802
+ let a = `data: ${JSON.stringify(u)}
55733
55803
 
55734
55804
  `;
55735
- d.enqueue(n.encode(i));
55805
+ d.enqueue(n.encode(a));
55736
55806
  }
55737
55807
  } catch {
55738
55808
  d.enqueue(n.encode(g + `
@@ -55741,52 +55811,28 @@ Examples:
55741
55811
  else d.enqueue(n.encode(g + `
55742
55812
  `));
55743
55813
  }
55744
- } catch (a) {
55745
- d.error(a);
55814
+ } catch (i) {
55815
+ d.error(i);
55746
55816
  } finally {
55747
55817
  try {
55748
- c.releaseLock();
55749
- } catch (a) {
55750
- console.error("Error releasing reader lock:", a);
55818
+ l.releaseLock();
55819
+ } catch (i) {
55820
+ console.error("Error releasing reader lock:", i);
55751
55821
  }
55752
55822
  d.close();
55753
55823
  }
55754
55824
  } });
55755
- return new Response(l, { status: e.status, statusText: e.statusText, headers: { "Content-Type": e.headers.get("Content-Type") || "text/plain", "Cache-Control": "no-cache", Connection: "keep-alive" } });
55825
+ return new Response(c, { status: e.status, statusText: e.statusText, headers: { "Content-Type": e.headers.get("Content-Type") || "text/plain", "Cache-Control": "no-cache", Connection: "keep-alive" } });
55756
55826
  }
55757
55827
  return e;
55758
55828
  }
55759
55829
  };
55760
- var b = [];
55761
- for (let s = 0; s < 256; ++s) b.push((s + 256).toString(16).slice(1));
55762
- function ue(s, e = 0) {
55763
- return (b[s[e + 0]] + b[s[e + 1]] + b[s[e + 2]] + b[s[e + 3]] + "-" + b[s[e + 4]] + b[s[e + 5]] + "-" + b[s[e + 6]] + b[s[e + 7]] + "-" + b[s[e + 8]] + b[s[e + 9]] + "-" + b[s[e + 10]] + b[s[e + 11]] + b[s[e + 12]] + b[s[e + 13]] + b[s[e + 14]] + b[s[e + 15]]).toLowerCase();
55764
- }
55765
- var z = new Uint8Array(256);
55766
- var B = z.length;
55767
- function te() {
55768
- return B > z.length - 16 && ((0, import_crypto.randomFillSync)(z), B = 0), z.slice(B, B += 16);
55769
- }
55770
- var ne = { randomUUID: import_crypto2.randomUUID };
55771
- function Re(s, e, t) {
55772
- if (ne.randomUUID && !e && !s) return ne.randomUUID();
55773
- s = s || {};
55774
- let n = s.random ?? s.rng?.() ?? te();
55775
- if (n.length < 16) throw new Error("Random bytes length must be >= 16");
55776
- if (n[6] = n[6] & 15 | 64, n[8] = n[8] & 63 | 128, e) {
55777
- if (t = t || 0, t < 0 || t + 16 > e.length) throw new RangeError(`UUID byte range ${t}:${t + 15} is out of buffer bounds`);
55778
- for (let r = 0; r < 16; ++r) e[t + r] = n[r];
55779
- return e;
55780
- }
55781
- return ue(n);
55782
- }
55783
- var I = Re;
55784
- var V = class {
55830
+ var z = class {
55785
55831
  name = "openrouter";
55786
- transformRequestIn(e) {
55832
+ async transformRequestIn(e) {
55787
55833
  return e.model.includes("claude") || e.messages.forEach((t) => {
55788
55834
  Array.isArray(t.content) ? t.content.forEach((n) => {
55789
- n.cache_control && delete n.cache_control;
55835
+ n.cache_control && delete n.cache_control, n.type === "image_url" && (n.image_url.url.startsWith("http") || (n.image_url.url = `data:${n.media_type};base64,${n.image_url.url}`), delete n.media_type);
55790
55836
  }) : t.cache_control && delete t.cache_control;
55791
55837
  }), e;
55792
55838
  }
@@ -55796,109 +55842,109 @@ var V = class {
55796
55842
  return new Response(JSON.stringify(t), { status: e.status, statusText: e.statusText, headers: e.headers });
55797
55843
  } else if (e.headers.get("Content-Type")?.includes("stream")) {
55798
55844
  if (!e.body) return e;
55799
- let t = new TextDecoder(), n = new TextEncoder(), r = false, o = "", l = false, d = false, c = "", a = new ReadableStream({ async start(u) {
55800
- let y = e.body.getReader(), k = (f, i, v) => {
55801
- let h = f.split(`
55845
+ let t = new TextDecoder(), n = new TextEncoder(), o = false, r = "", c = false, d = false, l = "", i = new ReadableStream({ async start(p) {
55846
+ let _ = e.body.getReader(), k = (u, a, v) => {
55847
+ let h = u.split(`
55802
55848
  `);
55803
- for (let p of h) p.trim() && i.enqueue(v.encode(p + `
55849
+ for (let f of h) f.trim() && a.enqueue(v.encode(f + `
55804
55850
  `));
55805
- }, g = (f, i) => {
55806
- let { controller: v, encoder: h } = i;
55807
- if (f.startsWith("data: ") && f.trim() !== "data: [DONE]") {
55808
- let p = f.slice(6);
55851
+ }, g = (u, a) => {
55852
+ let { controller: v, encoder: h } = a;
55853
+ if (u.startsWith("data: ") && u.trim() !== "data: [DONE]") {
55854
+ let f = u.slice(6);
55809
55855
  try {
55810
- let m = JSON.parse(p);
55811
- if (m.usage && (C("usage", m.usage, d), m.choices[0].finish_reason = d ? "tool_calls" : "stop"), m.choices?.[0]?.finish_reason === "error" && v.enqueue(h.encode(`data: ${JSON.stringify({ error: m.choices?.[0].error })}
55856
+ let m = JSON.parse(f);
55857
+ if (m.usage && (y("usage", m.usage, d), m.choices[0].finish_reason = d ? "tool_calls" : "stop"), m.choices?.[0]?.finish_reason === "error" && v.enqueue(h.encode(`data: ${JSON.stringify({ error: m.choices?.[0].error })}
55812
55858
 
55813
- `)), m.choices?.[0]?.delta?.content && !i.hasTextContent() && i.setHasTextContent(true), m.choices?.[0]?.delta?.reasoning) {
55814
- i.appendReasoningContent(m.choices[0].delta.reasoning);
55859
+ `)), m.choices?.[0]?.delta?.content && !a.hasTextContent() && a.setHasTextContent(true), m.choices?.[0]?.delta?.reasoning) {
55860
+ a.appendReasoningContent(m.choices[0].delta.reasoning);
55815
55861
  let x = { ...m, choices: [{ ...m.choices?.[0], delta: { ...m.choices[0].delta, thinking: { content: m.choices[0].delta.reasoning } } }] };
55816
55862
  x.choices?.[0]?.delta && delete x.choices[0].delta.reasoning;
55817
- let R = `data: ${JSON.stringify(x)}
55863
+ let b = `data: ${JSON.stringify(x)}
55818
55864
 
55819
55865
  `;
55820
- v.enqueue(h.encode(R));
55866
+ v.enqueue(h.encode(b));
55821
55867
  return;
55822
55868
  }
55823
- if (m.choices?.[0]?.delta?.content && i.reasoningContent() && !i.isReasoningComplete()) {
55824
- i.setReasoningComplete(true);
55825
- let x = Date.now().toString(), R = { ...m, choices: [{ ...m.choices?.[0], delta: { ...m.choices[0].delta, content: null, thinking: { content: i.reasoningContent(), signature: x } } }] };
55826
- R.choices?.[0]?.delta && delete R.choices[0].delta.reasoning;
55827
- let X = `data: ${JSON.stringify(R)}
55869
+ if (m.choices?.[0]?.delta?.content && a.reasoningContent() && !a.isReasoningComplete()) {
55870
+ a.setReasoningComplete(true);
55871
+ let x = Date.now().toString(), b = { ...m, choices: [{ ...m.choices?.[0], delta: { ...m.choices[0].delta, content: null, thinking: { content: a.reasoningContent(), signature: x } } }] };
55872
+ b.choices?.[0]?.delta && delete b.choices[0].delta.reasoning;
55873
+ let X = `data: ${JSON.stringify(b)}
55828
55874
 
55829
55875
  `;
55830
55876
  v.enqueue(h.encode(X));
55831
55877
  }
55832
55878
  m.choices?.[0]?.delta?.reasoning && delete m.choices[0].delta.reasoning, m.choices?.[0]?.delta?.tool_calls?.length && !Number.isNaN(parseInt(m.choices?.[0]?.delta?.tool_calls[0].id, 10)) && m.choices?.[0]?.delta?.tool_calls.forEach((x) => {
55833
- x.id = `call_${I()}`;
55834
- }), m.choices?.[0]?.delta?.tool_calls?.length && !d && (C("hasToolCall", true), d = true), m.choices?.[0]?.delta?.tool_calls?.length && i.hasTextContent() && (typeof m.choices[0].index == "number" ? m.choices[0].index += 1 : m.choices[0].index = 1);
55835
- let T = `data: ${JSON.stringify(m)}
55879
+ x.id = `call_${H()}`;
55880
+ }), m.choices?.[0]?.delta?.tool_calls?.length && !d && (y("hasToolCall", true), d = true), m.choices?.[0]?.delta?.tool_calls?.length && a.hasTextContent() && (typeof m.choices[0].index == "number" ? m.choices[0].index += 1 : m.choices[0].index = 1);
55881
+ let S = `data: ${JSON.stringify(m)}
55836
55882
 
55837
55883
  `;
55838
- v.enqueue(h.encode(T));
55884
+ v.enqueue(h.encode(S));
55839
55885
  } catch {
55840
- v.enqueue(h.encode(f + `
55886
+ v.enqueue(h.encode(u + `
55841
55887
  `));
55842
55888
  }
55843
- } else v.enqueue(h.encode(f + `
55889
+ } else v.enqueue(h.encode(u + `
55844
55890
  `));
55845
55891
  };
55846
55892
  try {
55847
55893
  for (; ; ) {
55848
- let { done: f, value: i } = await y.read();
55849
- if (f) {
55850
- c.trim() && k(c, u, n);
55894
+ let { done: u, value: a } = await _.read();
55895
+ if (u) {
55896
+ l.trim() && k(l, p, n);
55851
55897
  break;
55852
55898
  }
55853
- if (!i || i.length === 0) continue;
55899
+ if (!a || a.length === 0) continue;
55854
55900
  let v;
55855
55901
  try {
55856
- v = t.decode(i, { stream: true });
55857
- } catch (p) {
55858
- console.warn("Failed to decode chunk", p);
55902
+ v = t.decode(a, { stream: true });
55903
+ } catch (f) {
55904
+ console.warn("Failed to decode chunk", f);
55859
55905
  continue;
55860
55906
  }
55861
55907
  if (v.length === 0) continue;
55862
- if (c += v, c.length > 1e6) {
55908
+ if (l += v, l.length > 1e6) {
55863
55909
  console.warn("Buffer size exceeds limit, processing partial data");
55864
- let p = c.split(`
55910
+ let f = l.split(`
55865
55911
  `);
55866
- c = p.pop() || "";
55867
- for (let m of p) if (m.trim()) try {
55868
- g(m, { controller: u, encoder: n, hasTextContent: () => r, setHasTextContent: (T) => r = T, reasoningContent: () => o, appendReasoningContent: (T) => o += T, isReasoningComplete: () => l, setReasoningComplete: (T) => l = T });
55869
- } catch (T) {
55870
- console.error("Error processing line:", m, T), u.enqueue(n.encode(m + `
55912
+ l = f.pop() || "";
55913
+ for (let m of f) if (m.trim()) try {
55914
+ g(m, { controller: p, encoder: n, hasTextContent: () => o, setHasTextContent: (S) => o = S, reasoningContent: () => r, appendReasoningContent: (S) => r += S, isReasoningComplete: () => c, setReasoningComplete: (S) => c = S });
55915
+ } catch (S) {
55916
+ console.error("Error processing line:", m, S), p.enqueue(n.encode(m + `
55871
55917
  `));
55872
55918
  }
55873
55919
  continue;
55874
55920
  }
55875
- let h = c.split(`
55921
+ let h = l.split(`
55876
55922
  `);
55877
- c = h.pop() || "";
55878
- for (let p of h) if (p.trim()) try {
55879
- g(p, { controller: u, encoder: n, hasTextContent: () => r, setHasTextContent: (m) => r = m, reasoningContent: () => o, appendReasoningContent: (m) => o += m, isReasoningComplete: () => l, setReasoningComplete: (m) => l = m });
55923
+ l = h.pop() || "";
55924
+ for (let f of h) if (f.trim()) try {
55925
+ g(f, { controller: p, encoder: n, hasTextContent: () => o, setHasTextContent: (m) => o = m, reasoningContent: () => r, appendReasoningContent: (m) => r += m, isReasoningComplete: () => c, setReasoningComplete: (m) => c = m });
55880
55926
  } catch (m) {
55881
- console.error("Error processing line:", p, m), u.enqueue(n.encode(p + `
55927
+ console.error("Error processing line:", f, m), p.enqueue(n.encode(f + `
55882
55928
  `));
55883
55929
  }
55884
55930
  }
55885
- } catch (f) {
55886
- console.error("Stream error:", f), u.error(f);
55931
+ } catch (u) {
55932
+ console.error("Stream error:", u), p.error(u);
55887
55933
  } finally {
55888
55934
  try {
55889
- y.releaseLock();
55890
- } catch (f) {
55891
- console.error("Error releasing reader lock:", f);
55935
+ _.releaseLock();
55936
+ } catch (u) {
55937
+ console.error("Error releasing reader lock:", u);
55892
55938
  }
55893
- u.close();
55939
+ p.close();
55894
55940
  }
55895
55941
  } });
55896
- return new Response(a, { status: e.status, statusText: e.statusText, headers: { "Content-Type": e.headers.get("Content-Type") || "text/plain", "Cache-Control": "no-cache", Connection: "keep-alive" } });
55942
+ return new Response(i, { status: e.status, statusText: e.statusText, headers: { "Content-Type": e.headers.get("Content-Type") || "text/plain", "Cache-Control": "no-cache", Connection: "keep-alive" } });
55897
55943
  }
55898
55944
  return e;
55899
55945
  }
55900
55946
  };
55901
- var W = class {
55947
+ var V = class {
55902
55948
  constructor(e) {
55903
55949
  this.options = e;
55904
55950
  this.max_tokens = this.options?.max_tokens;
@@ -55926,58 +55972,58 @@ var G = class {
55926
55972
  return new Response(JSON.stringify(t), { status: e.status, statusText: e.statusText, headers: e.headers });
55927
55973
  } else if (e.headers.get("Content-Type")?.includes("stream")) {
55928
55974
  if (!e.body) return e;
55929
- let t = new TextDecoder(), n = new TextEncoder(), r = false, o = "", l = false, d = "", c = new ReadableStream({ async start(a) {
55930
- let u = e.body.getReader(), y = (g, f, i) => {
55975
+ let t = new TextDecoder(), n = new TextEncoder(), o = false, r = "", c = false, d = "", l = new ReadableStream({ async start(i) {
55976
+ let p = e.body.getReader(), _ = (g, u, a) => {
55931
55977
  let v = g.split(`
55932
55978
  `);
55933
- for (let h of v) h.trim() && f.enqueue(i.encode(h + `
55979
+ for (let h of v) h.trim() && u.enqueue(a.encode(h + `
55934
55980
  `));
55935
- }, k = (g, f) => {
55936
- let { controller: i, encoder: v } = f;
55981
+ }, k = (g, u) => {
55982
+ let { controller: a, encoder: v } = u;
55937
55983
  if (g.startsWith("data: ") && g.trim() !== "data: [DONE]") {
55938
55984
  let h = g.slice(6);
55939
55985
  try {
55940
- let p = JSON.parse(h);
55941
- if (p.error) throw new Error(JSON.stringify(p));
55942
- p.choices?.[0]?.delta?.content && !f.hasTextContent() && f.setHasTextContent(true), p.choices?.[0]?.delta?.tool_calls?.length && p.choices?.[0]?.delta?.tool_calls.forEach((T) => {
55943
- T.id = `call_${I()}`;
55944
- }), p.choices?.[0]?.delta?.tool_calls?.length && f.hasTextContent() && (typeof p.choices[0].index == "number" ? p.choices[0].index += 1 : p.choices[0].index = 1);
55945
- let m = `data: ${JSON.stringify(p)}
55986
+ let f = JSON.parse(h);
55987
+ if (f.error) throw new Error(JSON.stringify(f));
55988
+ f.choices?.[0]?.delta?.content && !u.hasTextContent() && u.setHasTextContent(true), f.choices?.[0]?.delta?.tool_calls?.length && f.choices?.[0]?.delta?.tool_calls.forEach((S) => {
55989
+ S.id = `call_${H()}`;
55990
+ }), f.choices?.[0]?.delta?.tool_calls?.length && u.hasTextContent() && (typeof f.choices[0].index == "number" ? f.choices[0].index += 1 : f.choices[0].index = 1);
55991
+ let m = `data: ${JSON.stringify(f)}
55946
55992
 
55947
55993
  `;
55948
- i.enqueue(v.encode(m));
55994
+ a.enqueue(v.encode(m));
55949
55995
  } catch {
55950
- i.enqueue(v.encode(g + `
55996
+ a.enqueue(v.encode(g + `
55951
55997
  `));
55952
55998
  }
55953
- } else i.enqueue(v.encode(g + `
55999
+ } else a.enqueue(v.encode(g + `
55954
56000
  `));
55955
56001
  };
55956
56002
  try {
55957
56003
  for (; ; ) {
55958
- let { done: g, value: f } = await u.read();
56004
+ let { done: g, value: u } = await p.read();
55959
56005
  if (g) {
55960
- d.trim() && y(d, a, n);
56006
+ d.trim() && _(d, i, n);
55961
56007
  break;
55962
56008
  }
55963
- if (!f || f.length === 0) continue;
55964
- let i;
56009
+ if (!u || u.length === 0) continue;
56010
+ let a;
55965
56011
  try {
55966
- i = t.decode(f, { stream: true });
56012
+ a = t.decode(u, { stream: true });
55967
56013
  } catch (h) {
55968
56014
  console.warn("Failed to decode chunk", h);
55969
56015
  continue;
55970
56016
  }
55971
- if (i.length === 0) continue;
55972
- if (d += i, d.length > 1e6) {
56017
+ if (a.length === 0) continue;
56018
+ if (d += a, d.length > 1e6) {
55973
56019
  console.warn("Buffer size exceeds limit, processing partial data");
55974
56020
  let h = d.split(`
55975
56021
  `);
55976
56022
  d = h.pop() || "";
55977
- for (let p of h) if (p.trim()) try {
55978
- k(p, { controller: a, encoder: n, hasTextContent: () => r, setHasTextContent: (m) => r = m, reasoningContent: () => o, appendReasoningContent: (m) => o += m, isReasoningComplete: () => l, setReasoningComplete: (m) => l = m });
56023
+ for (let f of h) if (f.trim()) try {
56024
+ k(f, { controller: i, encoder: n, hasTextContent: () => o, setHasTextContent: (m) => o = m, reasoningContent: () => r, appendReasoningContent: (m) => r += m, isReasoningComplete: () => c, setReasoningComplete: (m) => c = m });
55979
56025
  } catch (m) {
55980
- console.error("Error processing line:", p, m), a.enqueue(n.encode(p + `
56026
+ console.error("Error processing line:", f, m), i.enqueue(n.encode(f + `
55981
56027
  `));
55982
56028
  }
55983
56029
  continue;
@@ -55986,24 +56032,24 @@ var G = class {
55986
56032
  `);
55987
56033
  d = v.pop() || "";
55988
56034
  for (let h of v) if (h.trim()) try {
55989
- k(h, { controller: a, encoder: n, hasTextContent: () => r, setHasTextContent: (p) => r = p, reasoningContent: () => o, appendReasoningContent: (p) => o += p, isReasoningComplete: () => l, setReasoningComplete: (p) => l = p });
55990
- } catch (p) {
55991
- console.error("Error processing line:", h, p), a.enqueue(n.encode(h + `
56035
+ k(h, { controller: i, encoder: n, hasTextContent: () => o, setHasTextContent: (f) => o = f, reasoningContent: () => r, appendReasoningContent: (f) => r += f, isReasoningComplete: () => c, setReasoningComplete: (f) => c = f });
56036
+ } catch (f) {
56037
+ console.error("Error processing line:", h, f), i.enqueue(n.encode(h + `
55992
56038
  `));
55993
56039
  }
55994
56040
  }
55995
56041
  } catch (g) {
55996
- console.error("Stream error:", g), a.error(g);
56042
+ console.error("Stream error:", g), i.error(g);
55997
56043
  } finally {
55998
56044
  try {
55999
- u.releaseLock();
56045
+ p.releaseLock();
56000
56046
  } catch (g) {
56001
56047
  console.error("Error releasing reader lock:", g);
56002
56048
  }
56003
- a.close();
56049
+ i.close();
56004
56050
  }
56005
56051
  } });
56006
- return new Response(c, { status: e.status, statusText: e.statusText, headers: { "Content-Type": e.headers.get("Content-Type") || "text/plain", "Cache-Control": "no-cache", Connection: "keep-alive" } });
56052
+ return new Response(l, { status: e.status, statusText: e.statusText, headers: { "Content-Type": e.headers.get("Content-Type") || "text/plain", "Cache-Control": "no-cache", Connection: "keep-alive" } });
56007
56053
  }
56008
56054
  return e;
56009
56055
  }
@@ -56018,14 +56064,14 @@ var K = class {
56018
56064
  }), e;
56019
56065
  }
56020
56066
  };
56021
- var pe = { AnthropicTransformer: U, GeminiTransformer: J, DeepseekTransformer: j, TooluseTransformer: D, OpenrouterTransformer: V, MaxTokenTransformer: W, GroqTransformer: G, CleancacheTransformer: K };
56067
+ var pe = { AnthropicTransformer: j, GeminiTransformer: D, DeepseekTransformer: B, TooluseTransformer: W, OpenrouterTransformer: z, MaxTokenTransformer: V, GroqTransformer: G, CleancacheTransformer: K };
56022
56068
  var Y = class {
56023
56069
  constructor(e) {
56024
56070
  this.configService = e;
56025
56071
  }
56026
56072
  transformers = /* @__PURE__ */ new Map();
56027
56073
  registerTransformer(e, t) {
56028
- this.transformers.set(e, t), C(`register transformer: ${e}${t.endPoint ? ` (endpoint: ${t.endPoint})` : " (no endpoint)"}`);
56074
+ this.transformers.set(e, t), y(`register transformer: ${e}${t.endPoint ? ` (endpoint: ${t.endPoint})` : " (no endpoint)"}`);
56029
56075
  }
56030
56076
  getTransformer(e) {
56031
56077
  return this.transformers.get(e);
@@ -56054,26 +56100,26 @@ var Y = class {
56054
56100
  async registerTransformerFromConfig(e) {
56055
56101
  try {
56056
56102
  let t = import_node_module.default._load;
56057
- if (import_node_module.default._load = function(n, r, o) {
56058
- return n === "claude-code-router" ? { log: C } : t.apply(import_node_module.default, arguments);
56103
+ if (import_node_module.default._load = function(n, o, r) {
56104
+ return n === "claude-code-router" ? { log: y } : t.apply(import_node_module.default, arguments);
56059
56105
  }, e.path) {
56060
56106
  let n = Z(Z.resolve(e.path));
56061
56107
  if (n) {
56062
- let r = new n(e.options);
56063
- if (!r.name) throw new Error(`Transformer instance from ${e.path} does not have a name property.`);
56064
- return this.registerTransformer(r.name, r), true;
56108
+ let o = new n(e.options);
56109
+ if (!o.name) throw new Error(`Transformer instance from ${e.path} does not have a name property.`);
56110
+ return this.registerTransformer(o.name, o), true;
56065
56111
  }
56066
56112
  }
56067
56113
  return false;
56068
56114
  } catch (t) {
56069
- return C(`load transformer (${e.path}) error:`, t.message, t.stack), false;
56115
+ return y(`load transformer (${e.path}) error:`, t.message, t.stack), false;
56070
56116
  }
56071
56117
  }
56072
56118
  async initialize() {
56073
56119
  try {
56074
56120
  await this.registerDefaultTransformersInternal(), await this.loadFromConfig();
56075
56121
  } catch (e) {
56076
- C("TransformerService init error:", e);
56122
+ y("TransformerService init error:", e);
56077
56123
  }
56078
56124
  }
56079
56125
  async registerDefaultTransformersInternal() {
@@ -56086,7 +56132,7 @@ var Y = class {
56086
56132
  }
56087
56133
  });
56088
56134
  } catch (e) {
56089
- C("transformer regist error:", e);
56135
+ y("transformer regist error:", e);
56090
56136
  }
56091
56137
  }
56092
56138
  async loadFromConfig() {
@@ -56094,8 +56140,8 @@ var Y = class {
56094
56140
  for (let t of e) await this.registerTransformerFromConfig(t);
56095
56141
  }
56096
56142
  };
56097
- function Se() {
56098
- let s = (0, import_fastify.default)({});
56143
+ function Pe() {
56144
+ let s = (0, import_fastify.default)({ bodyLimit: 52428800 });
56099
56145
  return s.setErrorHandler(le), s.register(import_cors.default), s;
56100
56146
  }
56101
56147
  var re = class {
@@ -56105,9 +56151,9 @@ var re = class {
56105
56151
  providerService;
56106
56152
  transformerService;
56107
56153
  constructor(e = {}) {
56108
- this.configService = new $(e), this.transformerService = new Y(this.configService), this.transformerService.initialize().finally(() => {
56109
- this.providerService = new F(this.configService, this.transformerService), this.llmService = new q(this.providerService);
56110
- }), this.app = Se();
56154
+ this.configService = new I(e), this.transformerService = new Y(this.configService), this.transformerService.initialize().finally(() => {
56155
+ this.providerService = new q(this.configService, this.transformerService), this.llmService = new F(this.providerService);
56156
+ }), this.app = Pe();
56111
56157
  }
56112
56158
  async register(e, t) {
56113
56159
  await this.app.register(e, t);
@@ -56117,33 +56163,33 @@ var re = class {
56117
56163
  }
56118
56164
  async start() {
56119
56165
  try {
56120
- this.app._server = this, this.app.addHook("preHandler", async (n, r) => {
56166
+ this.app._server = this, this.app.addHook("preHandler", async (n, o) => {
56121
56167
  try {
56122
- let o = n.body;
56123
- if (!o || !o.model) return r.code(400).send({ error: "Missing model in request body" });
56124
- let [l, d] = o.model.split(",");
56125
- o.model = d, n.provider = l;
56168
+ let r = n.body;
56169
+ if (!r || !r.model) return o.code(400).send({ error: "Missing model in request body" });
56170
+ let [c, d] = r.model.split(",");
56171
+ r.model = d, n.provider = c;
56126
56172
  return;
56127
- } catch (o) {
56128
- return n.log.error("Error in modelProviderMiddleware:", o), r.code(500).send({ error: "Internal server error" });
56173
+ } catch (r) {
56174
+ return n.log.error("Error in modelProviderMiddleware:", r), o.code(500).send({ error: "Internal server error" });
56129
56175
  }
56130
- }), this.app.register(fe);
56176
+ }), this.app.register(ue);
56131
56177
  let e = await this.app.listen({ port: parseInt(this.configService.get("PORT") || "3000", 10), host: this.configService.get("HOST") || "127.0.0.1" });
56132
- C(`\u{1F680} LLMs API server listening on ${e}`);
56178
+ y(`\u{1F680} LLMs API server listening on ${e}`);
56133
56179
  let t = async (n) => {
56134
- C(`Received ${n}, shutting down gracefully...`), await this.app.close(), process.exit(0);
56180
+ y(`Received ${n}, shutting down gracefully...`), await this.app.close(), process.exit(0);
56135
56181
  };
56136
56182
  process.on("SIGINT", () => t("SIGINT")), process.on("SIGTERM", () => t("SIGTERM"));
56137
56183
  } catch (e) {
56138
- C(`Error starting server: ${e}`), process.exit(1);
56184
+ y(`Error starting server: ${e}`), process.exit(1);
56139
56185
  }
56140
56186
  }
56141
56187
  };
56142
- var cn = re;
56188
+ var ln = re;
56143
56189
 
56144
56190
  // src/server.ts
56145
56191
  var createServer = (config) => {
56146
- const server = new cn(config);
56192
+ const server = new ln(config);
56147
56193
  return server;
56148
56194
  };
56149
56195
 
@@ -56188,6 +56234,9 @@ var getUseModel = (req, tokenCount, config) => {
56188
56234
  log("Using think model for ", req.body.thinking);
56189
56235
  return config.Router.think;
56190
56236
  }
56237
+ if (Array.isArray(req.body.tools) && req.body.tools.some((tool) => tool.type?.startsWith("web_search")) && config.Router.webSearch) {
56238
+ return config.Router.webSearch;
56239
+ }
56191
56240
  return config.Router.default;
56192
56241
  };
56193
56242
  var router = async (req, res, config) => {
@@ -56335,14 +56384,15 @@ function getServicePid() {
56335
56384
  return null;
56336
56385
  }
56337
56386
  }
56338
- function getServiceInfo() {
56387
+ async function getServiceInfo() {
56339
56388
  const pid = getServicePid();
56340
56389
  const running = isServiceRunning();
56390
+ const config = await readConfigFile();
56341
56391
  return {
56342
56392
  running,
56343
56393
  pid,
56344
- port: 3456,
56345
- endpoint: "http://127.0.0.1:3456",
56394
+ port: config.PORT,
56395
+ endpoint: `http://127.0.0.1:${config.PORT}`,
56346
56396
  pidFile: PID_FILE,
56347
56397
  referenceCount: getReferenceCount()
56348
56398
  };
@@ -56383,7 +56433,7 @@ async function run(options = {}) {
56383
56433
  "\u26A0\uFE0F API key is not set. HOST is forced to 127.0.0.1."
56384
56434
  );
56385
56435
  }
56386
- const port = options.port || 3456;
56436
+ const port = config.PORT || 3456;
56387
56437
  savePid(process.pid);
56388
56438
  process.on("SIGINT", () => {
56389
56439
  console.log("Received SIGINT, cleaning up...");
@@ -56419,8 +56469,8 @@ async function run(options = {}) {
56419
56469
  }
56420
56470
 
56421
56471
  // src/utils/status.ts
56422
- function showStatus() {
56423
- const info = getServiceInfo();
56472
+ async function showStatus() {
56473
+ const info = await getServiceInfo();
56424
56474
  console.log("\n\u{1F4CA} Claude Code Router Status");
56425
56475
  console.log("\u2550".repeat(40));
56426
56476
  if (info.running) {
@@ -56474,7 +56524,7 @@ async function executeCodeCommand(args = []) {
56474
56524
  const env = {
56475
56525
  ...process.env,
56476
56526
  ANTHROPIC_AUTH_TOKEN: "test",
56477
- ANTHROPIC_BASE_URL: `http://127.0.0.1:3456`,
56527
+ ANTHROPIC_BASE_URL: `http://127.0.0.1:${config.PORT || 3456}`,
56478
56528
  API_TIMEOUT_MS: "600000"
56479
56529
  };
56480
56530
  if (config?.APIKEY) {
@@ -56504,7 +56554,7 @@ async function executeCodeCommand(args = []) {
56504
56554
  }
56505
56555
 
56506
56556
  // package.json
56507
- var version = "1.0.21";
56557
+ var version = "1.0.23";
56508
56558
 
56509
56559
  // src/cli.ts
56510
56560
  var import_child_process2 = require("child_process");
@@ -56565,7 +56615,7 @@ async function main() {
56565
56615
  }
56566
56616
  break;
56567
56617
  case "status":
56568
- showStatus();
56618
+ await showStatus();
56569
56619
  break;
56570
56620
  case "code":
56571
56621
  if (!isServiceRunning()) {