llmpt 1.2.0 → 1.2.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.
@@ -3,7 +3,7 @@ import type { ProviderConfig } from '../types.js';
3
3
  export declare class AnthropicProvider extends Provider {
4
4
  constructor(config: ProviderConfig);
5
5
  getUpstreamUrl(requestPath: string): string;
6
- getUpstreamHeaders(): Record<string, string>;
6
+ getUpstreamHeaders(incomingHeaders?: Record<string, string>): Record<string, string>;
7
7
  matchesPath(path: string): boolean;
8
8
  }
9
9
  //# sourceMappingURL=anthropic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/server/providers/anthropic.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,qBAAa,iBAAkB,SAAQ,QAAQ;gBACjC,MAAM,EAAE,cAAc;IAIlC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAM3C,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAU5C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGnC"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../src/server/providers/anthropic.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,qBAAa,iBAAkB,SAAQ,QAAQ;gBACjC,MAAM,EAAE,cAAc;IAIlC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAM3C,kBAAkB,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAwBpF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGnC"}
@@ -11,13 +11,30 @@ export class AnthropicProvider extends Provider {
11
11
  const base = this.config.baseUrl.replace(/\/+$/, '');
12
12
  return `${base}/${cleanPath}`;
13
13
  }
14
- getUpstreamHeaders() {
14
+ getUpstreamHeaders(incomingHeaders) {
15
15
  const headers = {
16
16
  'Content-Type': 'application/json',
17
17
  'anthropic-version': '2023-06-01',
18
18
  };
19
- if (this.config.apiKey)
19
+ if (this.config.apiKey) {
20
+ // Configured key takes priority
20
21
  headers['x-api-key'] = this.config.apiKey;
22
+ }
23
+ else if (incomingHeaders) {
24
+ // Pass-through auth from the incoming request
25
+ if (incomingHeaders['x-api-key'])
26
+ headers['x-api-key'] = incomingHeaders['x-api-key'];
27
+ if (incomingHeaders['authorization'])
28
+ headers['authorization'] = incomingHeaders['authorization'];
29
+ }
30
+ // Always pass through anthropic-specific headers from the client
31
+ if (incomingHeaders) {
32
+ for (const [k, v] of Object.entries(incomingHeaders)) {
33
+ const kl = k.toLowerCase();
34
+ if (kl.startsWith('anthropic-') && kl !== 'anthropic-version')
35
+ headers[k] = v;
36
+ }
37
+ }
21
38
  if (this.config.headers)
22
39
  Object.assign(headers, this.config.headers);
23
40
  return headers;
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/server/providers/anthropic.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,6BAA6B;AAC7B,+DAA+D;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAC7C,YAAY,MAAsB;QAChC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,kBAAkB;QAChB,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,mBAAmB,EAAE,YAAY;SAClC,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAClE,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;CACF"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/server/providers/anthropic.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,6BAA6B;AAC7B,+DAA+D;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,MAAM,OAAO,iBAAkB,SAAQ,QAAQ;IAC7C,YAAY,MAAsB;QAChC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,kBAAkB,CAAC,eAAwC;QACzD,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,mBAAmB,EAAE,YAAY;SAClC,CAAC;QACF,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,gCAAgC;YAChC,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAC5C,CAAC;aAAM,IAAI,eAAe,EAAE,CAAC;YAC3B,8CAA8C;YAC9C,IAAI,eAAe,CAAC,WAAW,CAAC;gBAAE,OAAO,CAAC,WAAW,CAAC,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;YACtF,IAAI,eAAe,CAAC,eAAe,CAAC;gBAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;QACpG,CAAC;QACD,iEAAiE;QACjE,IAAI,eAAe,EAAE,CAAC;YACpB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;gBACrD,MAAM,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,mBAAmB;oBAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACpC,CAAC;CACF"}
@@ -5,8 +5,10 @@ export declare abstract class Provider {
5
5
  constructor(type: string, config: ProviderConfig);
6
6
  /** Build the upstream URL for a given request path */
7
7
  abstract getUpstreamUrl(requestPath: string): string;
8
- /** Build headers to send to the upstream provider */
9
- abstract getUpstreamHeaders(): Record<string, string>;
8
+ /** Build headers to send to the upstream provider.
9
+ * @param incomingHeaders Original request headers — used to pass-through auth when provider has no apiKey configured.
10
+ */
11
+ abstract getUpstreamHeaders(incomingHeaders?: Record<string, string>): Record<string, string>;
10
12
  /** Check if this provider handles the given request path */
11
13
  abstract matchesPath(path: string): boolean;
12
14
  get baseUrl(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/server/providers/base.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,8BAAsB,QAAQ;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAEpB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;IAKhD,sDAAsD;IACtD,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAEpD,qDAAqD;IACrD,QAAQ,CAAC,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAErD,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAE3C,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/server/providers/base.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,8BAAsB,QAAQ;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;gBAEpB,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc;IAKhD,sDAAsD;IACtD,QAAQ,CAAC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAEpD;;OAEG;IACH,QAAQ,CAAC,kBAAkB,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAE7F,4DAA4D;IAC5D,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAE3C,IAAI,OAAO,IAAI,MAAM,CAEpB;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/server/providers/base.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,2BAA2B;AAC3B,+DAA+D;AAI/D,MAAM,OAAgB,QAAQ;IACnB,IAAI,CAAS;IACb,MAAM,CAAiB;IAEhC,YAAY,IAAY,EAAE,MAAsB;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAWD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/server/providers/base.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,2BAA2B;AAC3B,+DAA+D;AAI/D,MAAM,OAAgB,QAAQ;IACnB,IAAI,CAAS;IACb,MAAM,CAAiB;IAEhC,YAAY,IAAY,EAAE,MAAsB;QAC9C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAaD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;CACF"}
@@ -3,7 +3,7 @@ import type { ProviderConfig } from '../types.js';
3
3
  export declare class OllamaProvider extends Provider {
4
4
  constructor(config: ProviderConfig);
5
5
  getUpstreamUrl(requestPath: string): string;
6
- getUpstreamHeaders(): Record<string, string>;
6
+ getUpstreamHeaders(incomingHeaders?: Record<string, string>): Record<string, string>;
7
7
  matchesPath(path: string): boolean;
8
8
  }
9
9
  //# sourceMappingURL=ollama.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/server/providers/ollama.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,qBAAa,cAAe,SAAQ,QAAQ;gBAC9B,MAAM,EAAE,cAAc;IAIlC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAM3C,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAM5C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGnC"}
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/server/providers/ollama.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,qBAAa,cAAe,SAAQ,QAAQ;gBAC9B,MAAM,EAAE,cAAc;IAIlC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAM3C,kBAAkB,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAMpF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAGnC"}
@@ -11,7 +11,7 @@ export class OllamaProvider extends Provider {
11
11
  const base = this.config.baseUrl.replace(/\/+$/, '');
12
12
  return `${base}/${cleanPath}`;
13
13
  }
14
- getUpstreamHeaders() {
14
+ getUpstreamHeaders(incomingHeaders) {
15
15
  const headers = { 'Content-Type': 'application/json' };
16
16
  if (this.config.headers)
17
17
  Object.assign(headers, this.config.headers);
@@ -1 +1 @@
1
- {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../src/server/providers/ollama.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,0BAA0B;AAC1B,+DAA+D;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAC1C,YAAY,MAAsB;QAChC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,kBAAkB;QAChB,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;CACF"}
1
+ {"version":3,"file":"ollama.js","sourceRoot":"","sources":["../../../src/server/providers/ollama.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,0BAA0B;AAC1B,+DAA+D;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAC1C,YAAY,MAAsB;QAChC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,OAAO,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;IAChC,CAAC;IAED,kBAAkB,CAAC,eAAwC;QACzD,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -3,7 +3,7 @@ import type { ProviderConfig } from '../types.js';
3
3
  export declare class OpenAIProvider extends Provider {
4
4
  constructor(config: ProviderConfig);
5
5
  getUpstreamUrl(requestPath: string): string;
6
- getUpstreamHeaders(): Record<string, string>;
6
+ getUpstreamHeaders(incomingHeaders?: Record<string, string>): Record<string, string>;
7
7
  matchesPath(path: string): boolean;
8
8
  }
9
9
  //# sourceMappingURL=openai.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/server/providers/openai.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,qBAAa,cAAe,SAAQ,QAAQ;gBAC9B,MAAM,EAAE,cAAc;IAIlC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAU3C,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAO5C,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAKnC"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../src/server/providers/openai.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAElD,qBAAa,cAAe,SAAQ,QAAQ;gBAC9B,MAAM,EAAE,cAAc;IAIlC,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAU3C,kBAAkB,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAWpF,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAKnC"}
@@ -15,10 +15,14 @@ export class OpenAIProvider extends Provider {
15
15
  }
16
16
  return `${base}/v1/${cleanPath}`;
17
17
  }
18
- getUpstreamHeaders() {
18
+ getUpstreamHeaders(incomingHeaders) {
19
19
  const headers = { 'Content-Type': 'application/json' };
20
- if (this.config.apiKey)
20
+ if (this.config.apiKey) {
21
21
  headers['Authorization'] = `Bearer ${this.config.apiKey}`;
22
+ }
23
+ else if (incomingHeaders?.['authorization']) {
24
+ headers['Authorization'] = incomingHeaders['authorization'];
25
+ }
22
26
  if (this.config.headers)
23
27
  Object.assign(headers, this.config.headers);
24
28
  return headers;
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/server/providers/openai.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,0BAA0B;AAC1B,+DAA+D;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAC1C,YAAY,MAAsB;QAChC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACnF,uDAAuD;QACvD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,OAAO,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,GAAG,IAAI,OAAO,SAAS,EAAE,CAAC;IACnC,CAAC;IAED,kBAAkB;QAChB,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAClF,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YAC5D,IAAI,KAAK,SAAS,CAAC;IAC5B,CAAC;CACF"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../../src/server/providers/openai.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,0BAA0B;AAC1B,+DAA+D;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,MAAM,OAAO,cAAe,SAAQ,QAAQ;IAC1C,YAAY,MAAsB;QAChC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,cAAc,CAAC,WAAmB;QAChC,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,SAAS,GAAG,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;QACnF,uDAAuD;QACvD,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACxD,OAAO,GAAG,IAAI,IAAI,SAAS,EAAE,CAAC;QAChC,CAAC;QACD,OAAO,GAAG,IAAI,OAAO,SAAS,EAAE,CAAC;IACnC,CAAC;IAED,kBAAkB,CAAC,eAAwC;QACzD,MAAM,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAC/E,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACvB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QAC5D,CAAC;aAAM,IAAI,eAAe,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC;YAC9C,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAC,eAAe,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACrE,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YACjD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;YAC5D,IAAI,KAAK,SAAS,CAAC;IAC5B,CAAC;CACF"}
@@ -38,7 +38,7 @@ export async function handleProxy(c, registry, collector, ws) {
38
38
  collector.setProvider(trace.id, provider.type);
39
39
  // Build upstream request
40
40
  const upstreamUrl = provider.getUpstreamUrl(path);
41
- const upstreamHeaders = provider.getUpstreamHeaders();
41
+ const upstreamHeaders = provider.getUpstreamHeaders(reqHeaders);
42
42
  const isStream = body.stream === true;
43
43
  try {
44
44
  // Forward request to upstream
@@ -58,14 +58,14 @@ export async function handleProxy(c, registry, collector, ws) {
58
58
  }
59
59
  // Handle streaming response
60
60
  if (isStream && upstreamResp.body) {
61
- return proxySSEStream(upstreamResp, trace, collector, ws, startTime);
61
+ return proxySSEStream(upstreamResp, trace, collector, ws, startTime, provider.type);
62
62
  }
63
63
  // Handle non-streaming response
64
64
  const respBody = await upstreamResp.json();
65
65
  const ttfb = Date.now() - startTime;
66
66
  collector.recordResponse(trace.id, upstreamResp.status, Object.fromEntries(upstreamResp.headers.entries()), respBody);
67
67
  // Extract usage
68
- const usage = extractUsageFromResponse(respBody);
68
+ const usage = extractUsageFromResponse(respBody, provider.type);
69
69
  collector.complete(trace.id, ttfb, usage);
70
70
  return c.json(respBody);
71
71
  }
@@ -76,10 +76,24 @@ export async function handleProxy(c, registry, collector, ws) {
76
76
  return c.json({ error: { message: 'Proxy fetch failed', type: 'proxy_error', detail: errorMsg } }, 400);
77
77
  }
78
78
  }
79
- function extractUsageFromResponse(body) {
79
+ function extractUsageFromResponse(body, providerType) {
80
80
  const usage = body.usage;
81
81
  if (!usage)
82
82
  return undefined;
83
+ // Anthropic non-stream: { input_tokens, output_tokens, cache_read_input_tokens, ... }
84
+ if (providerType === 'anthropic') {
85
+ const result = {
86
+ promptTokens: usage.input_tokens || 0,
87
+ completionTokens: usage.output_tokens || 0,
88
+ totalTokens: (usage.input_tokens || 0) + (usage.output_tokens || 0),
89
+ };
90
+ if (usage.cache_read_input_tokens)
91
+ result.cacheReadTokens = usage.cache_read_input_tokens;
92
+ if (usage.cache_creation_input_tokens)
93
+ result.cacheWriteTokens = usage.cache_creation_input_tokens;
94
+ return result;
95
+ }
96
+ // OpenAI-compatible: { prompt_tokens, completion_tokens, total_tokens, ... }
83
97
  const result = {
84
98
  promptTokens: usage.prompt_tokens || 0,
85
99
  completionTokens: usage.completion_tokens || 0,
@@ -1 +1 @@
1
- {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/server/proxy/handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handler.js","sourceRoot":"","sources":["../../../src/server/proxy/handler.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,2BAA2B;AAC3B,+DAA+D;AAO/D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,CAAU,EACV,QAA0B,EAC1B,SAAyB,EACzB,EAAY;IAEZ,MAAM,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IACxB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,gEAAgE;IAChE,IAAI,IAAI,GAA4B,EAAE,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,uCAAuC;IACzC,CAAC;IAED,sBAAsB;IACtB,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC;QAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAE/D,mBAAmB;IACnB,MAAM,QAAQ,GAAG,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAEhD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,wCAAwC,CAAC,CAAC;QACvF,8DAA8D;QAC9D,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5F,CAAC;IAED,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAE/C,yBAAyB;IACzB,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,QAAQ,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAEhE,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC;IAEtC,IAAI,CAAC;QACH,8BAA8B;QAC9B,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,WAAW,EAAE;YAC5C,MAAM;YACN,OAAO,EAAE,eAAe;YACxB,IAAI,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;SAC1D,CAAC,CAAC;QAEH,2DAA2D;QAC3D,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;YACrB,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;YAC5C,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;YACvH,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,gBAAgB,EAAE,qBAAqB,YAAY,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;YACxH,iFAAiF;YACjF,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC;YAC5E,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,CAAC,MAAM,EAAE,EAAE,EAAE,YAAmB,CAAC,CAAC;QAC7I,CAAC;QAED,4BAA4B;QAC5B,IAAI,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;YAClC,OAAO,cAAc,CAAC,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtF,CAAC;QAED,gCAAgC;QAChC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QAEpC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEtH,gBAAgB;QAChB,MAAM,KAAK,GAAG,wBAAwB,CAAC,QAAmC,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC3F,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAE1C,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClE,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;QACvD,uCAAuC;QACvC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;IAC1G,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,IAA6B,EAC7B,YAAqB;IAErB,MAAM,KAAK,GAAG,IAAI,CAAC,KAA4C,CAAC;IAChE,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAE7B,sFAAsF;IACtF,IAAI,YAAY,KAAK,WAAW,EAAE,CAAC;QACjC,MAAM,MAAM,GAAqC;YAC/C,YAAY,EAAO,KAAK,CAAC,YAAuB,IAAK,CAAC;YACtD,gBAAgB,EAAG,KAAK,CAAC,aAAwB,IAAI,CAAC;YACtD,WAAW,EAAO,CAAE,KAAK,CAAC,YAAuB,IAAI,CAAC,CAAC,GAAG,CAAE,KAAK,CAAC,aAAwB,IAAI,CAAC,CAAC;SACjG,CAAC;QACF,IAAI,KAAK,CAAC,uBAAuB;YAAM,MAAM,CAAC,eAAe,GAAI,KAAK,CAAC,uBAAiC,CAAC;QACzG,IAAI,KAAK,CAAC,2BAA2B;YAAE,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,2BAAqC,CAAC;QAC7G,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,6EAA6E;IAC7E,MAAM,MAAM,GAAqC;QAC/C,YAAY,EAAO,KAAK,CAAC,aAAwB,IAAQ,CAAC;QAC1D,gBAAgB,EAAG,KAAK,CAAC,iBAA4B,IAAI,CAAC;QAC1D,WAAW,EAAQ,KAAK,CAAC,YAAuB,IAAS,CAAC;KAC3D,CAAC;IAEF,MAAM,WAAW,GAAG,KAAK,CAAC,yBAAgE,CAAC;IAC3F,IAAI,WAAW,EAAE,gBAAgB;QAAE,MAAM,CAAC,eAAe,GAAG,WAAW,CAAC,gBAA0B,CAAC;IAEnG,MAAM,aAAa,GAAG,KAAK,CAAC,qBAA4D,CAAC;IACzF,IAAI,aAAa,EAAE,aAAa;QAAE,MAAM,CAAC,YAAY,GAAG,aAAa,CAAC,aAAuB,CAAC;IAE9F,IAAI,KAAK,CAAC,uBAAuB;QAAM,MAAM,CAAC,eAAe,GAAI,KAAK,CAAC,uBAAiC,CAAC;IACzG,IAAI,KAAK,CAAC,2BAA2B;QAAE,MAAM,CAAC,gBAAgB,GAAG,KAAK,CAAC,2BAAqC,CAAC;IAC7G,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,KAAK,CAAC,gBAAgB;QAAE,MAAM,CAAC,eAAe,GAAG,KAAK,CAAC,gBAA0B,CAAC;IAEjH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -5,5 +5,5 @@ import type { TraceRecord } from '../types.js';
5
5
  * Proxy an SSE stream from upstream to client, recording chunks for trace.
6
6
  * 使用 start() 异步循环驱动,避免 pull() 回调的竞态问题。
7
7
  */
8
- export declare function proxySSEStream(upstreamResponse: Response, trace: TraceRecord, collector: TraceCollector, ws: WSServer, requestStartTime: number): Promise<Response>;
8
+ export declare function proxySSEStream(upstreamResponse: Response, trace: TraceRecord, collector: TraceCollector, ws: WSServer, requestStartTime: number, providerType?: string): Promise<Response>;
9
9
  //# sourceMappingURL=stream.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/server/proxy/stream.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAwB,MAAM,aAAa,CAAC;AAErE;;;GAGG;AACH,wBAAsB,cAAc,CAClC,gBAAgB,EAAE,QAAQ,EAC1B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,cAAc,EACzB,EAAE,EAAE,QAAQ,EACZ,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,QAAQ,CAAC,CA4InB"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../src/server/proxy/stream.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAwB,MAAM,aAAa,CAAC;AAErE;;;GAGG;AACH,wBAAsB,cAAc,CAClC,gBAAgB,EAAE,QAAQ,EAC1B,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,cAAc,EACzB,EAAE,EAAE,QAAQ,EACZ,gBAAgB,EAAE,MAAM,EACxB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,QAAQ,CAAC,CAiJnB"}
@@ -5,11 +5,10 @@
5
5
  * Proxy an SSE stream from upstream to client, recording chunks for trace.
6
6
  * 使用 start() 异步循环驱动,避免 pull() 回调的竞态问题。
7
7
  */
8
- export async function proxySSEStream(upstreamResponse, trace, collector, ws, requestStartTime) {
8
+ export async function proxySSEStream(upstreamResponse, trace, collector, ws, requestStartTime, providerType) {
9
9
  if (!upstreamResponse.body) {
10
10
  throw new Error('Upstream response has no body');
11
11
  }
12
- // startTime 来自 handler,包含完整的请求发出时间,确保 TTFB 统计准确
13
12
  const startTime = requestStartTime;
14
13
  let ttfb = 0;
15
14
  let firstChunk = true;
@@ -18,10 +17,9 @@ export async function proxySSEStream(upstreamResponse, trace, collector, ws, req
18
17
  let reasoningContent = '';
19
18
  const toolCallsMap = new Map();
20
19
  let usage;
20
+ const isAnthropic = providerType === 'anthropic';
21
21
  const reader = upstreamResponse.body.getReader();
22
22
  const decoder = new TextDecoder();
23
- // 用 start() 而不是 pull(),用一个 async 循环完整驱动读取,
24
- // 彻底避免 pull() 竞态导致的 ERR_INVALID_STATE
25
23
  const stream = new ReadableStream({
26
24
  async start(controller) {
27
25
  try {
@@ -32,7 +30,6 @@ export async function proxySSEStream(upstreamResponse, trace, collector, ws, req
32
30
  ({ done, value } = await reader.read());
33
31
  }
34
32
  catch (readErr) {
35
- // 上游连接被关闭(客户端断开 / 超时)
36
33
  const msg = readErr instanceof Error ? readErr.message : String(readErr);
37
34
  if (!msg.includes('aborted') && !msg.includes('closed') && !msg.includes('disconnected')) {
38
35
  console.error('[Stream] Reader error:', readErr);
@@ -62,29 +59,39 @@ export async function proxySSEStream(upstreamResponse, trace, collector, ws, req
62
59
  continue;
63
60
  try {
64
61
  const parsed = JSON.parse(data);
65
- const delta = parsed.choices?.[0]?.delta;
66
- if (delta) {
67
- if (typeof delta.content === 'string')
68
- fullContent += delta.content;
69
- if (typeof delta.reasoning_content === 'string')
70
- reasoningContent += delta.reasoning_content;
71
- if (Array.isArray(delta.tool_calls)) {
72
- for (const tc of delta.tool_calls) {
73
- const idx = tc.index ?? 0;
74
- if (tc.id && tc.function?.name) {
75
- toolCallsMap.set(idx, { id: tc.id, name: tc.function.name, arguments: tc.function.arguments || '' });
76
- }
77
- else if (tc.function?.arguments) {
78
- const existing = toolCallsMap.get(idx);
79
- if (existing)
80
- existing.arguments += tc.function.arguments;
62
+ if (isAnthropic) {
63
+ parseAnthropicChunk(parsed, { fullContent, reasoningContent, toolCallsMap, usage }, (updates) => {
64
+ fullContent = updates.fullContent;
65
+ reasoningContent = updates.reasoningContent;
66
+ if (updates.usage)
67
+ usage = updates.usage;
68
+ });
69
+ }
70
+ else {
71
+ // OpenAI-compatible format
72
+ const delta = parsed.choices?.[0]?.delta;
73
+ if (delta) {
74
+ if (typeof delta.content === 'string')
75
+ fullContent += delta.content;
76
+ if (typeof delta.reasoning_content === 'string')
77
+ reasoningContent += delta.reasoning_content;
78
+ if (Array.isArray(delta.tool_calls)) {
79
+ for (const tc of delta.tool_calls) {
80
+ const idx = tc.index ?? 0;
81
+ if (tc.id && tc.function?.name) {
82
+ toolCallsMap.set(idx, { id: tc.id, name: tc.function.name, arguments: tc.function.arguments || '' });
83
+ }
84
+ else if (tc.function?.arguments) {
85
+ const existing = toolCallsMap.get(idx);
86
+ if (existing)
87
+ existing.arguments += tc.function.arguments;
88
+ }
81
89
  }
82
90
  }
83
91
  }
84
- }
85
- // 提取 usage(含扩展字段)
86
- if (parsed.usage && typeof parsed.usage === 'object') {
87
- usage = extractUsage(parsed.usage);
92
+ if (parsed.usage && typeof parsed.usage === 'object') {
93
+ usage = extractUsageOpenAI(parsed.usage);
94
+ }
88
95
  }
89
96
  }
90
97
  catch { /* Not JSON, skip */ }
@@ -102,13 +109,11 @@ export async function proxySSEStream(upstreamResponse, trace, collector, ws, req
102
109
  controller.enqueue(value);
103
110
  }
104
111
  catch {
105
- // Client disconnected — stop reading
106
112
  break;
107
113
  }
108
114
  }
109
115
  }
110
116
  finally {
111
- // 无论正常结束还是异常退出,都完成 trace 并关闭 controller
112
117
  const totalDuration = Date.now() - startTime;
113
118
  const toolCalls = Array.from(toolCallsMap.values());
114
119
  const completeBody = buildCompleteBody(fullContent, reasoningContent, trace.model, toolCalls, usage);
@@ -142,34 +147,98 @@ export async function proxySSEStream(upstreamResponse, trace, collector, ws, req
142
147
  headers: responseHeaders,
143
148
  });
144
149
  }
145
- /** usage 对象提取全部字段(含各家扩展) */
146
- function extractUsage(u) {
150
+ function parseAnthropicChunk(parsed, acc, update) {
151
+ const type = parsed.type;
152
+ // message_start: contains initial usage (input tokens)
153
+ if (type === 'message_start') {
154
+ const msg = parsed.message;
155
+ if (msg?.usage) {
156
+ acc.usage = mergeAnthropicUsage(acc.usage, msg.usage);
157
+ update({ fullContent: acc.fullContent, reasoningContent: acc.reasoningContent, usage: acc.usage });
158
+ }
159
+ return;
160
+ }
161
+ // content_block_delta: text or thinking content
162
+ if (type === 'content_block_delta') {
163
+ const delta = parsed.delta;
164
+ if (!delta)
165
+ return;
166
+ if (delta.type === 'text_delta' && typeof delta.text === 'string') {
167
+ acc.fullContent += delta.text;
168
+ update({ fullContent: acc.fullContent, reasoningContent: acc.reasoningContent });
169
+ }
170
+ else if (delta.type === 'thinking_delta' && typeof delta.thinking === 'string') {
171
+ acc.reasoningContent += delta.thinking;
172
+ update({ fullContent: acc.fullContent, reasoningContent: acc.reasoningContent });
173
+ }
174
+ else if (delta.type === 'input_json_delta' && typeof delta.partial_json === 'string') {
175
+ // tool use argument streaming
176
+ const idx = parsed.index ?? 0;
177
+ const existing = acc.toolCallsMap.get(idx);
178
+ if (existing)
179
+ existing.arguments += delta.partial_json;
180
+ }
181
+ return;
182
+ }
183
+ // content_block_start: tool_use block starts here (id + name)
184
+ if (type === 'content_block_start') {
185
+ const block = parsed.content_block;
186
+ if (block?.type === 'tool_use') {
187
+ const idx = parsed.index ?? 0;
188
+ acc.toolCallsMap.set(idx, {
189
+ id: block.id || '',
190
+ name: block.name || '',
191
+ arguments: '',
192
+ });
193
+ }
194
+ return;
195
+ }
196
+ // message_delta: contains output token count + stop reason
197
+ if (type === 'message_delta') {
198
+ const deltaUsage = parsed.usage;
199
+ if (deltaUsage) {
200
+ acc.usage = mergeAnthropicUsage(acc.usage, deltaUsage);
201
+ update({ fullContent: acc.fullContent, reasoningContent: acc.reasoningContent, usage: acc.usage });
202
+ }
203
+ return;
204
+ }
205
+ }
206
+ /** 合并 Anthropic 分批下发的 usage 字段(input 在 message_start,output 在 message_delta) */
207
+ function mergeAnthropicUsage(existing, raw) {
208
+ const base = existing ?? { promptTokens: 0, completionTokens: 0, totalTokens: 0 };
209
+ if (raw.input_tokens != null)
210
+ base.promptTokens = raw.input_tokens;
211
+ if (raw.output_tokens != null)
212
+ base.completionTokens = raw.output_tokens;
213
+ if (raw.cache_read_input_tokens != null)
214
+ base.cacheReadTokens = raw.cache_read_input_tokens;
215
+ if (raw.cache_creation_input_tokens != null)
216
+ base.cacheWriteTokens = raw.cache_creation_input_tokens;
217
+ base.totalTokens = base.promptTokens + base.completionTokens;
218
+ return base;
219
+ }
220
+ // ─── OpenAI usage extractor ─────────────────────────────────────────────────
221
+ function extractUsageOpenAI(u) {
147
222
  const base = {
148
223
  promptTokens: u.prompt_tokens || 0,
149
224
  completionTokens: u.completion_tokens || 0,
150
225
  totalTokens: u.total_tokens || 0,
151
226
  };
152
- // OpenAI o1 / reasoning tokens
153
227
  const compDetails = u.completion_tokens_details;
154
- if (compDetails?.reasoning_tokens) {
228
+ if (compDetails?.reasoning_tokens)
155
229
  base.reasoningTokens = compDetails.reasoning_tokens;
156
- }
157
- // OpenAI prompt cache
158
230
  const promptDetails = u.prompt_tokens_details;
159
- if (promptDetails?.cached_tokens) {
231
+ if (promptDetails?.cached_tokens)
160
232
  base.cachedTokens = promptDetails.cached_tokens;
161
- }
162
- // Anthropic cache
163
233
  if (u.cache_read_input_tokens)
164
234
  base.cacheReadTokens = u.cache_read_input_tokens;
165
235
  if (u.cache_creation_input_tokens)
166
236
  base.cacheWriteTokens = u.cache_creation_input_tokens;
167
- // GLM/DeepSeek: completion_tokens_details.reasoning_tokens 或直接 reasoning_tokens
168
- if (!base.reasoningTokens && u.reasoning_tokens) {
237
+ if (!base.reasoningTokens && u.reasoning_tokens)
169
238
  base.reasoningTokens = u.reasoning_tokens;
170
- }
171
239
  return base;
172
240
  }
241
+ // ─── Shared helpers ──────────────────────────────────────────────────────────
173
242
  function buildCompleteBody(content, reasoningContent, model, toolCalls, usage) {
174
243
  const message = {
175
244
  role: 'assistant',
@@ -1 +1 @@
1
- {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../src/server/proxy/stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.js","sourceRoot":"","sources":["../../../src/server/proxy/stream.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "llmpt",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "LLM Proxy Trace - local LLM proxy that captures full traces with real-time Web dashboard",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",