@rynfar/meridian 1.23.1 → 1.24.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -228,7 +228,8 @@ src/proxy/
228
228
  │ ├── detect.ts ← Agent detection from request headers
229
229
  │ ├── opencode.ts ← OpenCode adapter
230
230
  │ ├── crush.ts ← Crush (Charm) adapter
231
- └── droid.ts ← Droid (Factory AI) adapter
231
+ ├── droid.ts ← Droid (Factory AI) adapter
232
+ │ └── passthrough.ts ← LiteLLM passthrough adapter
232
233
  ├── query.ts ← SDK query options builder
233
234
  ├── errors.ts ← Error classification
234
235
  ├── models.ts ← Model mapping (sonnet/opus/haiku)
@@ -7103,14 +7103,17 @@ async function resolveClaudeExecutableAsync() {
7103
7103
  if (cachedClaudePathPromise)
7104
7104
  return cachedClaudePathPromise;
7105
7105
  cachedClaudePathPromise = (async () => {
7106
- try {
7107
- const sdkPath = fileURLToPath(import.meta.resolve("@anthropic-ai/claude-agent-sdk"));
7108
- const sdkCliJs = join(dirname(sdkPath), "cli.js");
7109
- if (existsSync(sdkCliJs)) {
7110
- cachedClaudePath = sdkCliJs;
7111
- return sdkCliJs;
7112
- }
7113
- } catch {}
7106
+ const runningUnderBun = typeof process.versions.bun !== "undefined";
7107
+ if (runningUnderBun) {
7108
+ try {
7109
+ const sdkPath = fileURLToPath(import.meta.resolve("@anthropic-ai/claude-agent-sdk"));
7110
+ const sdkCliJs = join(dirname(sdkPath), "cli.js");
7111
+ if (existsSync(sdkCliJs)) {
7112
+ cachedClaudePath = sdkCliJs;
7113
+ return sdkCliJs;
7114
+ }
7115
+ } catch {}
7116
+ }
7114
7117
  try {
7115
7118
  const { stdout } = await exec("which claude");
7116
7119
  const claudePath = stdout.trim();
@@ -7119,6 +7122,16 @@ async function resolveClaudeExecutableAsync() {
7119
7122
  return claudePath;
7120
7123
  }
7121
7124
  } catch {}
7125
+ if (!runningUnderBun) {
7126
+ try {
7127
+ const sdkPath = fileURLToPath(import.meta.resolve("@anthropic-ai/claude-agent-sdk"));
7128
+ const sdkCliJs = join(dirname(sdkPath), "cli.js");
7129
+ if (existsSync(sdkCliJs)) {
7130
+ cachedClaudePath = sdkCliJs;
7131
+ return sdkCliJs;
7132
+ }
7133
+ } catch {}
7134
+ }
7122
7135
  throw new Error("Could not find Claude Code executable. Install via: npm install -g @anthropic-ai/claude-code");
7123
7136
  })();
7124
7137
  try {
@@ -7648,7 +7661,92 @@ var crushAdapter = {
7648
7661
  }
7649
7662
  };
7650
7663
 
7664
+ // src/proxy/adapters/passthrough.ts
7665
+ var MCP_SERVER_NAME2 = "litellm";
7666
+ var ALLOWED_MCP_TOOLS2 = [
7667
+ `mcp__${MCP_SERVER_NAME2}__read`,
7668
+ `mcp__${MCP_SERVER_NAME2}__write`,
7669
+ `mcp__${MCP_SERVER_NAME2}__edit`,
7670
+ `mcp__${MCP_SERVER_NAME2}__bash`,
7671
+ `mcp__${MCP_SERVER_NAME2}__glob`,
7672
+ `mcp__${MCP_SERVER_NAME2}__grep`
7673
+ ];
7674
+ function extractCwdFromBody(body) {
7675
+ if (!body)
7676
+ return;
7677
+ let promptContent = "";
7678
+ if (typeof body.prompt === "string") {
7679
+ promptContent = body.prompt;
7680
+ } else if (Array.isArray(body.messages)) {
7681
+ for (const msg of body.messages) {
7682
+ if (msg.role === "user") {
7683
+ if (typeof msg.content === "string") {
7684
+ promptContent += msg.content;
7685
+ } else if (Array.isArray(msg.content)) {
7686
+ for (const block of msg.content) {
7687
+ if (block.type === "text" && block.text) {
7688
+ promptContent += block.text;
7689
+ }
7690
+ }
7691
+ }
7692
+ }
7693
+ }
7694
+ }
7695
+ const envMatch = promptContent.match(/<env[^>]*cwd=["']([^"']+)["']/s);
7696
+ if (envMatch)
7697
+ return envMatch[1];
7698
+ const cwdMatch = promptContent.match(/cwd=["']([^"']+)["']/);
7699
+ if (cwdMatch)
7700
+ return cwdMatch[1];
7701
+ return;
7702
+ }
7703
+ var passthroughAdapter = {
7704
+ name: "passthrough",
7705
+ getSessionId(c) {
7706
+ return c.req.header("x-litellm-session-id");
7707
+ },
7708
+ extractWorkingDirectory(body) {
7709
+ return extractCwdFromBody(body);
7710
+ },
7711
+ normalizeContent(content) {
7712
+ return normalizeContent(content);
7713
+ },
7714
+ getBlockedBuiltinTools() {
7715
+ return [];
7716
+ },
7717
+ getAgentIncompatibleTools() {
7718
+ return [];
7719
+ },
7720
+ getMcpServerName() {
7721
+ return MCP_SERVER_NAME2;
7722
+ },
7723
+ getAllowedMcpTools() {
7724
+ return ALLOWED_MCP_TOOLS2;
7725
+ },
7726
+ buildSdkAgents(_body, _mcpToolNames) {
7727
+ return {};
7728
+ },
7729
+ buildSdkHooks(_body, _sdkAgents) {
7730
+ return;
7731
+ },
7732
+ buildSystemContextAddendum(_body, _sdkAgents) {
7733
+ return "";
7734
+ },
7735
+ usesPassthrough() {
7736
+ return true;
7737
+ },
7738
+ prefersStreaming(_body) {
7739
+ return false;
7740
+ }
7741
+ };
7742
+
7651
7743
  // src/proxy/adapters/detect.ts
7744
+ function isLiteLLMRequest(c) {
7745
+ if ((c.req.header("user-agent") || "").startsWith("litellm/"))
7746
+ return true;
7747
+ const headers = c.req.header();
7748
+ return Object.keys(headers).some((k) => k.toLowerCase().startsWith("x-litellm-"));
7749
+ }
7652
7750
  function detectAdapter(c) {
7653
7751
  const userAgent = c.req.header("user-agent") || "";
7654
7752
  if (userAgent.startsWith("factory-cli/")) {
@@ -7657,6 +7755,9 @@ function detectAdapter(c) {
7657
7755
  if (userAgent.startsWith("Charm-Crush/")) {
7658
7756
  return crushAdapter;
7659
7757
  }
7758
+ if (isLiteLLMRequest(c)) {
7759
+ return passthroughAdapter;
7760
+ }
7660
7761
  return openCodeAdapter;
7661
7762
  }
7662
7763
 
@@ -14050,8 +14151,9 @@ function createProxyServer(config = {}) {
14050
14151
  const body = await c.req.json();
14051
14152
  const authStatus = await getClaudeAuthStatusAsync();
14052
14153
  let model = mapModelToClaudeModel(body.model || "sonnet", authStatus?.subscriptionType);
14053
- const stream2 = body.stream ?? true;
14054
14154
  const adapter = detectAdapter(c);
14155
+ const adapterStreamPref = adapter.prefersStreaming?.(body);
14156
+ const stream2 = adapterStreamPref !== undefined ? adapterStreamPref : body.stream ?? true;
14055
14157
  const workingDirectory = (process.env.MERIDIAN_WORKDIR ?? process.env.CLAUDE_PROXY_WORKDIR) || adapter.extractWorkingDirectory(body) || process.cwd();
14056
14158
  const {
14057
14159
  CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS,
package/dist/cli.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  __require,
4
4
  startProxyServer
5
- } from "./cli-nnnww55k.js";
5
+ } from "./cli-bjpad5x9.js";
6
6
 
7
7
  // bin/cli.ts
8
8
  import { createRequire } from "module";
@@ -64,6 +64,14 @@ export interface AgentAdapter {
64
64
  * Return empty string if nothing to add.
65
65
  */
66
66
  buildSystemContextAddendum?(body: any, sdkAgents: Record<string, any>): string;
67
+ /**
68
+ * Whether this agent prefers non-streaming (JSON) responses.
69
+ *
70
+ * When this method is defined and returns false, the proxy forces
71
+ * stream=false regardless of the client's body.stream setting.
72
+ * When undefined or returns true, body.stream is used (defaulting to true).
73
+ */
74
+ prefersStreaming?(body: any): boolean;
67
75
  /**
68
76
  * Whether this agent uses passthrough mode for tool execution.
69
77
  *
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/proxy/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;IAE5C;;;OAGG;IACH,uBAAuB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAAA;IAEtD;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAA;IAEtC;;;OAGG;IACH,sBAAsB,IAAI,SAAS,MAAM,EAAE,CAAA;IAE3C;;;;OAIG;IACH,yBAAyB,IAAI,SAAS,MAAM,EAAE,CAAA;IAE9C;;;OAGG;IACH,gBAAgB,IAAI,MAAM,CAAA;IAE1B;;OAEG;IACH,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAAA;IAEvC;;;;OAIG;IACH,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAEhF;;;OAGG;IACH,aAAa,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAA;IAE9D;;;OAGG;IACH,0BAA0B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAA;IAE9E;;;;;;;;OAQG;IACH,eAAe,CAAC,IAAI,OAAO,CAAA;IAE3B;;;;;;;;;;;;;;;OAeG;IACH,6BAA6B,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,eAAe,EAAE,UAAU,EAAE,CAAA;CAC3G"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/proxy/adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC;;;;GAIG;AACH,MAAM,WAAW,YAAY;IAC3B,sCAAsC;IACtC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB;;;OAGG;IACH,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;IAE5C;;;OAGG;IACH,uBAAuB,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,GAAG,SAAS,CAAA;IAEtD;;;OAGG;IACH,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,MAAM,CAAA;IAEtC;;;OAGG;IACH,sBAAsB,IAAI,SAAS,MAAM,EAAE,CAAA;IAE3C;;;;OAIG;IACH,yBAAyB,IAAI,SAAS,MAAM,EAAE,CAAA;IAE9C;;;OAGG;IACH,gBAAgB,IAAI,MAAM,CAAA;IAE1B;;OAEG;IACH,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAAA;IAEvC;;;;OAIG;IACH,cAAc,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAEhF;;;OAGG;IACH,aAAa,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG,CAAA;IAE9D;;;OAGG;IACH,0BAA0B,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAA;IAE9E;;;;;;OAMG;IACH,gBAAgB,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAA;IAErC;;;;;;;;OAQG;IACH,eAAe,CAAC,IAAI,OAAO,CAAA;IAE3B;;;;;;;;;;;;;;;OAeG;IACH,6BAA6B,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,eAAe,EAAE,UAAU,EAAE,CAAA;CAC3G"}
@@ -12,7 +12,8 @@ import type { AgentAdapter } from "../adapter";
12
12
  * Detection rules (evaluated in order):
13
13
  * 1. User-Agent starts with "factory-cli/" → Droid adapter
14
14
  * 2. User-Agent starts with "Charm-Crush/" → Crush adapter
15
- * 3. Default OpenCode adapter (backward compatible)
15
+ * 3. litellm/* UA or x-litellm-* headers LiteLLM passthrough adapter
16
+ * 4. Default → OpenCode adapter (backward compatible)
16
17
  */
17
18
  export declare function detectAdapter(c: Context): AgentAdapter;
18
19
  //# sourceMappingURL=detect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/detect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAK9C;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,CAYtD"}
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/detect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAmB9C;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,CAgBtD"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * LiteLLM passthrough adapter.
3
+ *
4
+ * Handles requests from LiteLLM (detected via x-litellm-* headers or
5
+ * litellm/* User-Agent). LiteLLM manages its own tool execution loop,
6
+ * so this adapter forces passthrough mode — the proxy returns tool_use
7
+ * blocks to LiteLLM for execution rather than running them internally.
8
+ *
9
+ * Key characteristics:
10
+ * - Passthrough mode always enabled (overrides MERIDIAN_PASSTHROUGH env var)
11
+ * - Non-streaming: LiteLLM health checks don't send x-litellm-* headers
12
+ * so we can't reliably distinguish them; non-streaming is safe for all requests
13
+ * - Session continuity: uses x-litellm-session-id header when present
14
+ * - CWD: extracts from <env cwd="..."> blocks in the prompt if available
15
+ * - MCP server name: "litellm" (tools appear as mcp__litellm__*)
16
+ */
17
+ import type { AgentAdapter } from "../adapter";
18
+ export declare const passthroughAdapter: AgentAdapter;
19
+ //# sourceMappingURL=passthrough.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passthrough.d.ts","sourceRoot":"","sources":["../../../src/proxy/adapters/passthrough.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAiD9C,eAAO,MAAM,kBAAkB,EAAE,YA4EhC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/proxy/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAA;AACjF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AA0BD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAYlG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAIpE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE9D;AAED,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAkCjF;AAOD;;;;;;;;;;GAUG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,MAAM,CAAC,CAiCpE;AAED,2CAA2C;AAC3C,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED,kDAAkD;AAClD,wBAAgB,2BAA2B,IAAI,IAAI,CAMlD;AAED;;6DAE6D;AAC7D,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG/D"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/proxy/models.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,UAAU,GAAG,OAAO,CAAA;AACjF,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AA0BD,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,CAYlG;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,CAIpE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAE9D;AAED,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAkCjF;AAOD;;;;;;;;;;GAUG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,MAAM,CAAC,CA4DpE;AAED,2CAA2C;AAC3C,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED,kDAAkD;AAClD,wBAAgB,2BAA2B,IAAI,IAAI,CAMlD;AAED;;6DAE6D;AAC7D,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,CAAA;AAiBvD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAA+B,iBAAiB,EAAE,mBAAmB,EAAgB,MAAM,iBAAiB,CAAA;AAEnH,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,CAAA;AAyF7B,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAksChF;AAED,wBAAsB,gBAAgB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA0ChG"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/proxy/server.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AACtE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,WAAW,EAAE,CAAA;AAiBvD,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,oBAAoB,EACpB,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAA+B,iBAAiB,EAAE,mBAAmB,EAAgB,MAAM,iBAAiB,CAAA;AAEnH,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,CAAA;AACjD,YAAY,EAAE,aAAa,EAAE,CAAA;AAyF7B,wBAAgB,iBAAiB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,WAAW,CAosChF;AAED,wBAAsB,gBAAgB,CAAC,MAAM,GAAE,OAAO,CAAC,WAAW,CAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CA0ChG"}
package/dist/server.js CHANGED
@@ -6,7 +6,7 @@ import {
6
6
  getMaxSessionsLimit,
7
7
  hashMessage,
8
8
  startProxyServer
9
- } from "./cli-nnnww55k.js";
9
+ } from "./cli-bjpad5x9.js";
10
10
  export {
11
11
  startProxyServer,
12
12
  hashMessage,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rynfar/meridian",
3
- "version": "1.23.1",
3
+ "version": "1.24.1",
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",