agent-shim 8.36.0 → 8.37.0

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.cjs CHANGED
@@ -60943,6 +60943,10 @@ function resolversOf(context) {
60943
60943
  ...pool?.lastPickHoursAgo === void 0 ? {} : { "session.lastPickHoursAgo": pool.lastPickHoursAgo },
60944
60944
  ...context.request?.model === void 0 ? {} : { "request.model": context.request.model },
60945
60945
  ...context.request?.hasImage === void 0 ? {} : { "request.hasImage": context.request.hasImage },
60946
+ ...context.request?.toolsPresent === void 0 ? {} : { "request.toolsPresent": context.request.toolsPresent },
60947
+ ...context.request?.thinking === void 0 ? {} : { "request.thinking": context.request.thinking },
60948
+ ...context.request?.maxTokens === void 0 ? {} : { "request.maxTokens": context.request.maxTokens },
60949
+ ...context.request?.isCountTokens === void 0 ? {} : { "request.isCountTokens": context.request.isCountTokens },
60946
60950
  ...context.providerQuota === void 0 ? {} : Object.fromEntries(
60947
60951
  Object.entries(context.providerQuota).flatMap(
60948
60952
  ([name, windows]) => [
@@ -63703,7 +63707,7 @@ function registerIdentityCommand(program2, deps) {
63703
63707
  // package.json
63704
63708
  var package_default = {
63705
63709
  name: "agent-shim",
63706
- version: "8.36.0",
63710
+ version: "8.37.0",
63707
63711
  description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
63708
63712
  license: "MIT",
63709
63713
  author: "Joseph Mearman <joseph@mearman.co.uk>",
@@ -77445,7 +77449,17 @@ async function scanRequestHead(request7, wholeBody = false) {
77445
77449
  for (const chunk of head) {
77446
77450
  replay.write(chunk);
77447
77451
  }
77448
- resolve({ ...model === void 0 ? {} : { model }, hasImage, ...wholeBody ? { whole: true, text: text2 } : {}, replayed: { ...request7, body: replay } });
77452
+ const maxTokens = /"max_tokens"\s*:\s*([0-9]+)/.exec(text2)?.[1];
77453
+ resolve({
77454
+ ...model === void 0 ? {} : { model },
77455
+ hasImage,
77456
+ toolsPresent: /"tools"\s*:\s*\[\s*\{/.test(text2),
77457
+ thinking: /"thinking"\s*:\s*\{\s*"type"\s*:\s*"enabled"/.test(text2),
77458
+ ...maxTokens === void 0 ? {} : { maxTokens: Number(maxTokens) },
77459
+ isCountTokens: request7.url.includes("/v1/messages/count_tokens"),
77460
+ ...wholeBody ? { whole: true, text: text2 } : {},
77461
+ replayed: { ...request7, body: replay }
77462
+ });
77449
77463
  };
77450
77464
  body.on("data", (chunk) => {
77451
77465
  if (decided) {
@@ -77610,7 +77624,15 @@ function createProviderRouteResolver(deps) {
77610
77624
  return resolution.ok && replay !== void 0 ? { ok: true, route: servingRewritten(resolution.route, { ...replay, url: current.url }) } : resolution;
77611
77625
  }
77612
77626
  replay = scan.replayed;
77613
- const context = { nowMs: Date.now(), env: deps.env, providerQuota, ...scan.model === void 0 && scan.hasImage === void 0 ? {} : { request: { ...scan.model === void 0 ? {} : { model: scan.model }, hasImage: scan.hasImage } } };
77627
+ const requestFacts = {
77628
+ ...scan.model === void 0 ? {} : { model: scan.model },
77629
+ ...scan.hasImage === void 0 ? {} : { hasImage: scan.hasImage },
77630
+ ...scan.toolsPresent === void 0 ? {} : { toolsPresent: scan.toolsPresent },
77631
+ ...scan.thinking === void 0 ? {} : { thinking: scan.thinking },
77632
+ ...scan.maxTokens === void 0 ? {} : { maxTokens: scan.maxTokens },
77633
+ ...scan.isCountTokens === void 0 ? {} : { isCountTokens: scan.isCountTokens }
77634
+ };
77635
+ const context = { nowMs: Date.now(), env: deps.env, providerQuota, ...Object.keys(requestFacts).length === 0 ? {} : { request: requestFacts } };
77614
77636
  let matched;
77615
77637
  for (const entry of routes) {
77616
77638
  const verdict = evaluateWhen(entry.when, context);
package/dist/index.cjs CHANGED
@@ -1031,6 +1031,10 @@ function resolversOf(context) {
1031
1031
  ...pool?.lastPickHoursAgo === void 0 ? {} : { "session.lastPickHoursAgo": pool.lastPickHoursAgo },
1032
1032
  ...context.request?.model === void 0 ? {} : { "request.model": context.request.model },
1033
1033
  ...context.request?.hasImage === void 0 ? {} : { "request.hasImage": context.request.hasImage },
1034
+ ...context.request?.toolsPresent === void 0 ? {} : { "request.toolsPresent": context.request.toolsPresent },
1035
+ ...context.request?.thinking === void 0 ? {} : { "request.thinking": context.request.thinking },
1036
+ ...context.request?.maxTokens === void 0 ? {} : { "request.maxTokens": context.request.maxTokens },
1037
+ ...context.request?.isCountTokens === void 0 ? {} : { "request.isCountTokens": context.request.isCountTokens },
1034
1038
  ...context.providerQuota === void 0 ? {} : Object.fromEntries(
1035
1039
  Object.entries(context.providerQuota).flatMap(
1036
1040
  ([name, windows]) => [
@@ -5419,7 +5423,7 @@ var import_undici = require("undici");
5419
5423
  // package.json
5420
5424
  var package_default = {
5421
5425
  name: "agent-shim",
5422
- version: "8.36.0",
5426
+ version: "8.37.0",
5423
5427
  description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
5424
5428
  license: "MIT",
5425
5429
  author: "Joseph Mearman <joseph@mearman.co.uk>",
package/dist/index.mjs CHANGED
@@ -719,6 +719,10 @@ function resolversOf(context) {
719
719
  ...pool?.lastPickHoursAgo === void 0 ? {} : { "session.lastPickHoursAgo": pool.lastPickHoursAgo },
720
720
  ...context.request?.model === void 0 ? {} : { "request.model": context.request.model },
721
721
  ...context.request?.hasImage === void 0 ? {} : { "request.hasImage": context.request.hasImage },
722
+ ...context.request?.toolsPresent === void 0 ? {} : { "request.toolsPresent": context.request.toolsPresent },
723
+ ...context.request?.thinking === void 0 ? {} : { "request.thinking": context.request.thinking },
724
+ ...context.request?.maxTokens === void 0 ? {} : { "request.maxTokens": context.request.maxTokens },
725
+ ...context.request?.isCountTokens === void 0 ? {} : { "request.isCountTokens": context.request.isCountTokens },
722
726
  ...context.providerQuota === void 0 ? {} : Object.fromEntries(
723
727
  Object.entries(context.providerQuota).flatMap(
724
728
  ([name, windows]) => [
@@ -5107,7 +5111,7 @@ import { Agent as Agent3, fetch as undiciFetch } from "undici";
5107
5111
  // package.json
5108
5112
  var package_default = {
5109
5113
  name: "agent-shim",
5110
- version: "8.36.0",
5114
+ version: "8.37.0",
5111
5115
  description: "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
5112
5116
  license: "MIT",
5113
5117
  author: "Joseph Mearman <joseph@mearman.co.uk>",
@@ -7115,6 +7115,10 @@ interface ConditionContext {
7115
7115
  readonly request?: {
7116
7116
  readonly model?: string;
7117
7117
  readonly hasImage?: boolean;
7118
+ readonly toolsPresent?: boolean;
7119
+ readonly thinking?: boolean;
7120
+ readonly maxTokens?: number;
7121
+ readonly isCountTokens?: boolean;
7118
7122
  };
7119
7123
  /** Per-provider quota facts for request routing, keyed by provider name, from the session identity's usage snapshot: a route condition names a target's windows (`provider.<name>.fiveHour.utilization` and kin) to skip one that is exhausted or nearly spent. The windows are the same shape the pool facts read. */
7120
7124
  readonly providerQuota?: Readonly<Record<string, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-shim",
3
- "version": "8.36.0",
3
+ "version": "8.37.0",
4
4
  "description": "A profile manager and launcher for Claude Code that lets one person run multiple logins from one machine while controlling what gets shared between them.",
5
5
  "license": "MIT",
6
6
  "author": "Joseph Mearman <joseph@mearman.co.uk>",