@rynfar/meridian 1.37.0 → 1.37.2

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.
@@ -16491,6 +16491,7 @@ function createProxyServer(config = {}) {
16491
16491
  const serverVersion = finalConfig.version ?? "unknown";
16492
16492
  restoreActiveProfile(finalConfig.profiles);
16493
16493
  const sessionDiscoveredTools = new Map;
16494
+ const sessionToolCache = new Map;
16494
16495
  const app = new Hono2;
16495
16496
  app.use("*", cors());
16496
16497
  app.use("/v1/*", requireAuth);
@@ -16767,13 +16768,23 @@ function createProxyServer(config = {}) {
16767
16768
  const capturedToolUses = [];
16768
16769
  const fileChanges = [];
16769
16770
  let passthroughMcp;
16770
- if (passthrough && Array.isArray(body.tools) && body.tools.length > 0) {
16771
- passthroughMcp = createPassthroughMcpServer(body.tools, adapter.getCoreToolNames?.());
16771
+ let requestTools = Array.isArray(body.tools) ? body.tools : [];
16772
+ if (passthrough && requestTools.length === 0 && profileSessionId) {
16773
+ const cached = sessionToolCache.get(profileSessionId);
16774
+ if (cached && cached.length > 0) {
16775
+ requestTools = cached;
16776
+ console.error(`[PROXY] ${requestMeta.requestId} tools_restored: client sent 0 tools but session had ${cached.length} — reusing cached tools to preserve prompt cache`);
16777
+ }
16778
+ }
16779
+ if (passthrough && requestTools.length > 0) {
16780
+ passthroughMcp = createPassthroughMcpServer(requestTools, adapter.getCoreToolNames?.());
16781
+ if (profileSessionId)
16782
+ sessionToolCache.set(profileSessionId, requestTools);
16772
16783
  }
16773
16784
  const hasDeferredTools = passthroughMcp?.hasDeferredTools ?? false;
16774
16785
  const coreNames = adapter.getCoreToolNames?.();
16775
16786
  const coreSet = coreNames ? new Set(coreNames.map((n) => n.toLowerCase())) : undefined;
16776
- const deferredToolCount = hasDeferredTools && Array.isArray(body.tools) ? body.tools.filter((t) => t.defer_loading === true || coreSet && !coreSet.has(String(t.name).toLowerCase())).length : 0;
16787
+ const deferredToolCount = hasDeferredTools && requestTools.length > 0 ? requestTools.filter((t) => t.defer_loading === true || coreSet && !coreSet.has(String(t.name).toLowerCase())).length : 0;
16777
16788
  if (hasDeferredTools) {
16778
16789
  console.error(`[PROXY] ${requestMeta.requestId} deferred=${deferredToolCount}/${toolCount} tools (core: ${coreNames?.join(",") ?? "none"})`);
16779
16790
  }
package/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import {
3
3
  startProxyServer
4
- } from "./cli-ygx1djsx.js";
4
+ } from "./cli-q712ymxw.js";
5
5
  import"./cli-pr79d7nw.js";
6
6
  import"./cli-rtab0qa6.js";
7
7
  import"./cli-m9pfb7h9.js";
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,CAAA;AAyBvD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAA+B,iBAAiB,EAAE,mBAAmB,EAAsC,MAAM,iBAAiB,CAAA;AAGzI,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,CAAA;AAkJ7B,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAk3DhF;AAED,wBAAsB,gBAAgB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAiEhG"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,CAAA;AAyBvD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,KAAK,aAAa,EAEnB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAA+B,iBAAiB,EAAE,mBAAmB,EAAsC,MAAM,iBAAiB,CAAA;AAGzI,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,CAAA;AAkJ7B,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAi4DhF;AAED,wBAAsB,gBAAgB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAiEhG"}
package/dist/server.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  getMaxSessionsLimit,
7
7
  hashMessage,
8
8
  startProxyServer
9
- } from "./cli-ygx1djsx.js";
9
+ } from "./cli-q712ymxw.js";
10
10
  import"./cli-pr79d7nw.js";
11
11
  import"./cli-rtab0qa6.js";
12
12
  import"./cli-m9pfb7h9.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rynfar/meridian",
3
- "version": "1.37.0",
3
+ "version": "1.37.2",
4
4
  "description": "Local Anthropic API powered by your Claude Max subscription. One subscription, every agent.",
5
5
  "type": "module",
6
6
  "main": "./dist/server.js",