@zimtsui/typechat 0.0.94 → 0.0.96
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/DEVELOPMENT.md +0 -6
- package/README.md +26 -36
- package/assets/verbatim/instruction.md +27 -25
- package/assets/verbatim/quotation.handlebars +1 -1
- package/assets/verbatim/system.handlebars +1 -0
- package/build/adaptor.d.ts +5 -23
- package/build/adaptor.js +14 -25
- package/build/adaptor.js.map +1 -1
- package/build/api-types/anthropic/billing.d.ts +3 -3
- package/build/api-types/anthropic/billing.js +6 -6
- package/build/api-types/anthropic/billing.js.map +1 -1
- package/build/api-types/anthropic/tool-codec.d.ts +3 -3
- package/build/api-types/anthropic/tool-codec.js +15 -11
- package/build/api-types/anthropic/tool-codec.js.map +1 -1
- package/build/api-types/google/billing.d.ts +3 -3
- package/build/api-types/google/billing.js +7 -7
- package/build/api-types/google/billing.js.map +1 -1
- package/build/api-types/google/tool-codec.d.ts +3 -3
- package/build/api-types/google/tool-codec.js +16 -34
- package/build/api-types/google/tool-codec.js.map +1 -1
- package/build/api-types/openai-chatcompletions/billing.d.ts +5 -5
- package/build/api-types/openai-chatcompletions/billing.js +7 -7
- package/build/api-types/openai-chatcompletions/billing.js.map +1 -1
- package/build/api-types/openai-chatcompletions/tool-codec.d.ts +5 -5
- package/build/api-types/openai-chatcompletions/tool-codec.js +17 -13
- package/build/api-types/openai-chatcompletions/tool-codec.js.map +1 -1
- package/build/api-types/openai-responses/billing.d.ts +3 -3
- package/build/api-types/openai-responses/billing.js +6 -6
- package/build/api-types/openai-responses/billing.js.map +1 -1
- package/build/api-types/openai-responses/tool-codec.d.ts +3 -3
- package/build/api-types/openai-responses/tool-codec.js +16 -12
- package/build/api-types/openai-responses/tool-codec.js.map +1 -1
- package/build/assets.d.ts +1 -1
- package/build/assets.js +6 -5
- package/build/assets.js.map +1 -1
- package/build/compatible-engine/session.d.ts +4 -16
- package/build/compatible-engine/session.js +8 -15
- package/build/compatible-engine/session.js.map +1 -1
- package/build/compatible-engine/validation.d.ts +7 -7
- package/build/compatible-engine/validation.js +33 -34
- package/build/compatible-engine/validation.js.map +1 -1
- package/build/compatible-engine.d/anthropic/message-codec.d.ts +4 -3
- package/build/compatible-engine.d/anthropic/message-codec.js +16 -22
- package/build/compatible-engine.d/anthropic/message-codec.js.map +1 -1
- package/build/compatible-engine.d/anthropic/transport.d.ts +10 -3
- package/build/compatible-engine.d/anthropic/transport.js +105 -101
- package/build/compatible-engine.d/anthropic/transport.js.map +1 -1
- package/build/compatible-engine.d/anthropic.d.ts +2 -0
- package/build/compatible-engine.d/anthropic.js +9 -1
- package/build/compatible-engine.d/anthropic.js.map +1 -1
- package/build/compatible-engine.d/google/message-codec.d.ts +4 -3
- package/build/compatible-engine.d/google/message-codec.js +16 -22
- package/build/compatible-engine.d/google/message-codec.js.map +1 -1
- package/build/compatible-engine.d/google/transport.d.ts +10 -3
- package/build/compatible-engine.d/google/transport.js +32 -24
- package/build/compatible-engine.d/google/transport.js.map +1 -1
- package/build/compatible-engine.d/google.d.ts +2 -0
- package/build/compatible-engine.d/google.js +23 -2
- package/build/compatible-engine.d/google.js.map +1 -1
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +6 -5
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +17 -24
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +1 -1
- package/build/compatible-engine.d/openai-chatcompletions/transport.d.ts +33 -3
- package/build/compatible-engine.d/openai-chatcompletions/transport.js +182 -6
- package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +1 -1
- package/build/compatible-engine.d/openai-chatcompletions.d.ts +10 -2
- package/build/compatible-engine.d/openai-chatcompletions.js +35 -0
- package/build/compatible-engine.d/openai-chatcompletions.js.map +1 -1
- package/build/compatible-engine.d/openai-responses/message-codec.d.ts +4 -6
- package/build/compatible-engine.d/openai-responses/message-codec.js +70 -74
- package/build/compatible-engine.d/openai-responses/message-codec.js.map +1 -1
- package/build/compatible-engine.d/openai-responses/transport.d.ts +14 -8
- package/build/compatible-engine.d/openai-responses/transport.js +64 -64
- package/build/compatible-engine.d/openai-responses/transport.js.map +1 -1
- package/build/compatible-engine.d/openai-responses.d.ts +2 -0
- package/build/compatible-engine.d/openai-responses.js +10 -2
- package/build/compatible-engine.d/openai-responses.js.map +1 -1
- package/build/compatible-engine.d.ts +2 -1
- package/build/compatible-engine.js +3 -3
- package/build/compatible-engine.js.map +1 -1
- package/build/config.d.ts +17 -19
- package/build/config.js +2 -4
- package/build/config.js.map +1 -1
- package/build/endpoint-spec.d.ts +15 -15
- package/build/endpoint-spec.js +2 -2
- package/build/endpoint-spec.js.map +1 -1
- package/build/engine/session.d.ts +31 -0
- package/build/engine/session.js +19 -0
- package/build/engine/session.js.map +1 -1
- package/build/engine/validation.d.ts +1 -7
- package/build/engine.d.ts +37 -20
- package/build/engine.js +154 -87
- package/build/engine.js.map +1 -1
- package/build/function.d.ts +1 -1
- package/build/native-engines.d/google/message-codec.d.ts +6 -3
- package/build/native-engines.d/google/message-codec.js +23 -27
- package/build/native-engines.d/google/message-codec.js.map +1 -1
- package/build/native-engines.d/google/transport.d.ts +13 -3
- package/build/native-engines.d/google/transport.js +41 -27
- package/build/native-engines.d/google/transport.js.map +1 -1
- package/build/native-engines.d/google/validation.d.ts +5 -6
- package/build/native-engines.d/google/validation.js +3 -6
- package/build/native-engines.d/google/validation.js.map +1 -1
- package/build/native-engines.d/google.d.ts +2 -2
- package/build/native-engines.d/google.js +22 -4
- package/build/native-engines.d/google.js.map +1 -1
- package/build/native-engines.d/openai-responses/choice-codec.d.ts +1 -1
- package/build/native-engines.d/openai-responses/choice-codec.js +12 -12
- package/build/native-engines.d/openai-responses/choice-codec.js.map +1 -1
- package/build/native-engines.d/openai-responses/message-codec.d.ts +5 -3
- package/build/native-engines.d/openai-responses/message-codec.js +59 -48
- package/build/native-engines.d/openai-responses/message-codec.js.map +1 -1
- package/build/native-engines.d/openai-responses/transport.d.ts +14 -6
- package/build/native-engines.d/openai-responses/transport.js +56 -54
- package/build/native-engines.d/openai-responses/transport.js.map +1 -1
- package/build/native-engines.d/openai-responses/validation.d.ts +7 -7
- package/build/native-engines.d/openai-responses/validation.js +31 -32
- package/build/native-engines.d/openai-responses/validation.js.map +1 -1
- package/build/native-engines.d/openai-responses.d.ts +2 -2
- package/build/native-engines.d/openai-responses.js +9 -4
- package/build/native-engines.d/openai-responses.js.map +1 -1
- package/build/repetition.d.ts +2 -1
- package/build/repetition.js +7 -42
- package/build/repetition.js.map +1 -1
- package/build/telemetry.d.ts +1 -0
- package/build/telemetry.js +1 -0
- package/build/telemetry.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/verbatim/codec/declarations.d.ts +0 -1
- package/build/verbatim/codec/declarations.js +1 -2
- package/build/verbatim/codec/declarations.js.map +1 -1
- package/build/verbatim/codec/helpers.d.ts +2 -0
- package/build/verbatim/codec/{escape.js → helpers.js} +5 -1
- package/build/verbatim/codec/helpers.js.map +1 -0
- package/build/verbatim/codec/quotation.d.ts +1 -2
- package/build/verbatim/codec/quotation.js +3 -4
- package/build/verbatim/codec/quotation.js.map +1 -1
- package/build/verbatim/codec/response.d.ts +0 -1
- package/build/verbatim/codec/response.js +1 -2
- package/build/verbatim/codec/response.js.map +1 -1
- package/build/verbatim/codec/{meta.d.ts → system.d.ts} +0 -1
- package/build/verbatim/codec/system.js +7 -0
- package/build/verbatim/codec/system.js.map +1 -0
- package/build/verbatim/codec.d.ts +1 -1
- package/build/verbatim/codec.js +1 -1
- package/build/verbatim/codec.js.map +1 -1
- package/package.json +8 -9
- package/assets/verbatim/meta.handlebars +0 -1
- package/build/compatible-engine.d/aliyun/transport.d.ts +0 -12
- package/build/compatible-engine.d/aliyun/transport.js +0 -7
- package/build/compatible-engine.d/aliyun/transport.js.map +0 -1
- package/build/compatible-engine.d/aliyun.d.ts +0 -21
- package/build/compatible-engine.d/aliyun.js +0 -38
- package/build/compatible-engine.d/aliyun.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.d.ts +0 -31
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js +0 -88
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.d.ts +0 -34
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js +0 -190
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js.map +0 -1
- package/build/verbatim/codec/escape.d.ts +0 -1
- package/build/verbatim/codec/escape.js.map +0 -1
- package/build/verbatim/codec/meta.js +0 -8
- package/build/verbatim/codec/meta.js.map +0 -1
|
@@ -7,12 +7,14 @@ import * as ChoiceCodecModule from "./anthropic/choice-codec.js";
|
|
|
7
7
|
export var AnthropicCompatibleEngine;
|
|
8
8
|
(function (AnthropicCompatibleEngine) {
|
|
9
9
|
class Instance extends CompatibleEngine.Instance {
|
|
10
|
+
options;
|
|
10
11
|
toolCodec;
|
|
11
12
|
messageCodec;
|
|
12
13
|
billing;
|
|
13
14
|
transport;
|
|
14
15
|
constructor(options) {
|
|
15
16
|
super(options);
|
|
17
|
+
this.options = options;
|
|
16
18
|
this.toolCodec = new ToolCodec({ fdm: this.fdm });
|
|
17
19
|
this.messageCodec = new AnthropicCompatibleEngine.MessageCodec({
|
|
18
20
|
toolCodec: this.toolCodec,
|
|
@@ -24,12 +26,18 @@ export var AnthropicCompatibleEngine;
|
|
|
24
26
|
inferenceSpec: this.inferenceParams,
|
|
25
27
|
fdm: this.fdm,
|
|
26
28
|
throttle: this.throttle,
|
|
27
|
-
choice: this.
|
|
29
|
+
choice: this.structuringChoice,
|
|
28
30
|
messageCodec: this.messageCodec,
|
|
29
31
|
toolCodec: this.toolCodec,
|
|
30
32
|
billing: this.billing,
|
|
31
33
|
});
|
|
32
34
|
}
|
|
35
|
+
clone() {
|
|
36
|
+
const engine = new AnthropicCompatibleEngine.Instance(this.options);
|
|
37
|
+
engine.middlewares = [...this.middlewares];
|
|
38
|
+
engine.statefulMiddlewares = [...this.statefulMiddlewares];
|
|
39
|
+
return engine;
|
|
40
|
+
}
|
|
33
41
|
}
|
|
34
42
|
AnthropicCompatibleEngine.Instance = Instance;
|
|
35
43
|
AnthropicCompatibleEngine.MessageCodec = MessageCodecModule.MessageCodec;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/compatible-engine.d/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,iBAAiB,MAAM,6BAA6B,CAAC;AASjE,MAAM,KAAW,yBAAyB,
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/compatible-engine.d/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,iBAAiB,MAAM,6BAA6B,CAAC;AASjE,MAAM,KAAW,yBAAyB,CA+CzC;AA/CD,WAAiB,yBAAyB;IACtC,MAAa,QAGX,SAAQ,gBAAgB,CAAC,QAAkB;QAMZ;QALnB,SAAS,CAAiB;QAC1B,YAAY,CAAmD;QAC/D,OAAO,CAAU;QACjB,SAAS,CAAgD;QAEnE,YAA6B,OAAoD;YAC7E,KAAK,CAAC,OAAO,CAAC,CAAC;YADU,YAAO,GAAP,OAAO,CAA6C;YAE7E,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,IAAI,yBAAyB,CAAC,YAAY,CAAC;gBAC3D,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,GAAG,EAAE,IAAI,CAAC,GAAG;aAChB,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,IAAI,yBAAyB,CAAC,SAAS,CAAC;gBACrD,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,aAAa,EAAE,IAAI,CAAC,eAAe;gBACnC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,iBAAiB;gBAC9B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;QACP,CAAC;QAEe,KAAK;YACjB,MAAM,MAAM,GAAG,IAAI,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpE,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAC,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC3D,OAAO,MAAM,CAAC;QAClB,CAAC;KAEJ;IApCY,kCAAQ,WAoCpB,CAAA;IAOa,sCAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC;IAC/C,mCAAS,GAAG,eAAe,CAAC,SAAS,CAAC;IACtC,qCAAW,GAAG,iBAAiB,CAAC;AAClD,CAAC,EA/CgB,yBAAyB,KAAzB,yBAAyB,QA+CzC"}
|
|
@@ -5,8 +5,9 @@ import { type ToolCodec } from '../../api-types/google/tool-codec.ts';
|
|
|
5
5
|
import type { Verbatim } from '../../verbatim.ts';
|
|
6
6
|
declare const NOMINAL: unique symbol;
|
|
7
7
|
export declare class MessageCodec<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> {
|
|
8
|
-
protected
|
|
9
|
-
|
|
8
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
9
|
+
protected vdm: vdm;
|
|
10
|
+
constructor(options: MessageCodec.Options<fdm, vdm>);
|
|
10
11
|
encodeAiMessage(aiMessage: RoleMessage.Ai.From<fdm, vdm>): Google.Content;
|
|
11
12
|
encodeChatMessages(chatMessages: Session.ChatMessage.From<fdm, vdm>[]): Google.Content[];
|
|
12
13
|
encodeUserMessage(userMessage: RoleMessage.User.From<fdm>): Google.Content;
|
|
@@ -14,7 +15,7 @@ export declare class MessageCodec<fdm extends Function.Decl.Map.Proto, vdm exten
|
|
|
14
15
|
decodeAiMessage(content: Google.Content): MessageCodec.Message.Ai.From<fdm, vdm>;
|
|
15
16
|
}
|
|
16
17
|
export declare namespace MessageCodec {
|
|
17
|
-
interface
|
|
18
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
18
19
|
toolCodec: ToolCodec<fdm>;
|
|
19
20
|
vdm: vdm;
|
|
20
21
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ResponseInvalid } from "../../engine.js";
|
|
2
1
|
import { RoleMessage } from "../../compatible-engine/session.js";
|
|
3
2
|
import { Function } from "../../function.js";
|
|
4
3
|
import * as Google from '@google/genai';
|
|
@@ -6,9 +5,11 @@ import * as VerbatimCodec from "../../verbatim/codec.js";
|
|
|
6
5
|
import { Media } from "../../media.js";
|
|
7
6
|
const NOMINAL = Symbol();
|
|
8
7
|
export class MessageCodec {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
toolCodec;
|
|
9
|
+
vdm;
|
|
10
|
+
constructor(options) {
|
|
11
|
+
this.toolCodec = options.toolCodec;
|
|
12
|
+
this.vdm = options.vdm;
|
|
12
13
|
}
|
|
13
14
|
encodeAiMessage(aiMessage) {
|
|
14
15
|
if (aiMessage instanceof MessageCodec.Message.Ai)
|
|
@@ -44,7 +45,7 @@ export class MessageCodec {
|
|
|
44
45
|
if (part instanceof RoleMessage.Part.Text)
|
|
45
46
|
return Google.createPartFromText(part.text);
|
|
46
47
|
else if (part instanceof Function.Response)
|
|
47
|
-
return this.
|
|
48
|
+
return this.toolCodec.encodeFunctionResponse(part);
|
|
48
49
|
else if (part instanceof Media.Pdf)
|
|
49
50
|
return Google.createPartFromBase64(part.base64, `${part.mimeType}`, Google.PartMediaResolutionLevel.MEDIA_RESOLUTION_MEDIUM);
|
|
50
51
|
else
|
|
@@ -60,26 +61,19 @@ export class MessageCodec {
|
|
|
60
61
|
if (content.parts) { }
|
|
61
62
|
else
|
|
62
63
|
throw new Error();
|
|
63
|
-
|
|
64
|
-
|
|
64
|
+
const parts = [];
|
|
65
|
+
for (const part of content.parts) {
|
|
65
66
|
if (part.functionCall || part.text) { }
|
|
66
67
|
else
|
|
67
|
-
throw new
|
|
68
|
-
if (part.text)
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
73
|
-
catch (e) {
|
|
74
|
-
if (e instanceof SyntaxError)
|
|
75
|
-
throw new ResponseInvalid('Invalid verbatim message', { cause: content });
|
|
76
|
-
else
|
|
77
|
-
throw e;
|
|
78
|
-
}
|
|
68
|
+
throw new SyntaxError('Unknown content part', { cause: content });
|
|
69
|
+
if (part.text) {
|
|
70
|
+
const vrs = VerbatimCodec.Request.decode(part.text, this.vdm);
|
|
71
|
+
parts.push(new RoleMessage.Part.Text(part.text, vrs));
|
|
72
|
+
}
|
|
79
73
|
if (part.functionCall)
|
|
80
|
-
parts.push(this.
|
|
81
|
-
|
|
82
|
-
|
|
74
|
+
parts.push(this.toolCodec.decodeFunctionCall(part.functionCall));
|
|
75
|
+
}
|
|
76
|
+
return new MessageCodec.Message.Ai(parts, content);
|
|
83
77
|
}
|
|
84
78
|
}
|
|
85
79
|
(function (MessageCodec) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/google/message-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/google/message-codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,13 +9,20 @@ import type { Billing } from '../../api-types/google/billing.ts';
|
|
|
9
9
|
import type { Verbatim } from '../../verbatim.ts';
|
|
10
10
|
import type { Structuring } from '../../compatible-engine/structuring.ts';
|
|
11
11
|
export declare class Transport<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> implements Engine.Transport<RoleMessage.User.From<fdm>, RoleMessage.Ai.From<fdm, vdm>, RoleMessage.Developer, Session.From<fdm, vdm>> {
|
|
12
|
-
protected ctx: Transport.Context<fdm, vdm>;
|
|
13
12
|
protected apiURL: URL;
|
|
14
|
-
|
|
13
|
+
protected inferenceParams: InferenceParams;
|
|
14
|
+
protected providerSpec: ProviderSpec;
|
|
15
|
+
protected fdm: fdm;
|
|
16
|
+
protected throttle: Throttle;
|
|
17
|
+
protected structuringChoice: Structuring.Choice.From<fdm, vdm>;
|
|
18
|
+
protected messageCodec: MessageCodec<fdm, vdm>;
|
|
19
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
20
|
+
protected billing: Billing;
|
|
21
|
+
constructor(options: Transport.Options<fdm, vdm>);
|
|
15
22
|
fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
16
23
|
}
|
|
17
24
|
export declare namespace Transport {
|
|
18
|
-
interface
|
|
25
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
19
26
|
inferenceParams: InferenceParams;
|
|
20
27
|
providerSpec: ProviderSpec;
|
|
21
28
|
fdm: fdm;
|
|
@@ -1,34 +1,47 @@
|
|
|
1
|
-
import { NetworkError, ResponseInvalid } from "../../engine.js";
|
|
2
1
|
import * as Google from '@google/genai';
|
|
3
2
|
import * as Undici from 'undici';
|
|
4
3
|
import { loggers } from "../../telemetry.js";
|
|
5
4
|
import * as ChoiceCodec from "./choice-codec.js";
|
|
6
5
|
import { MIMEType } from 'whatwg-mimetype';
|
|
7
6
|
export class Transport {
|
|
8
|
-
ctx;
|
|
9
7
|
apiURL;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
inferenceParams;
|
|
9
|
+
providerSpec;
|
|
10
|
+
fdm;
|
|
11
|
+
throttle;
|
|
12
|
+
structuringChoice;
|
|
13
|
+
messageCodec;
|
|
14
|
+
toolCodec;
|
|
15
|
+
billing;
|
|
16
|
+
constructor(options) {
|
|
17
|
+
this.apiURL = new URL(`${options.providerSpec.baseUrl}/v1beta/models/${options.inferenceParams.model}:generateContent`);
|
|
18
|
+
this.inferenceParams = options.inferenceParams;
|
|
19
|
+
this.providerSpec = options.providerSpec;
|
|
20
|
+
this.fdm = options.fdm;
|
|
21
|
+
this.throttle = options.throttle;
|
|
22
|
+
this.structuringChoice = options.choice;
|
|
23
|
+
this.messageCodec = options.messageCodec;
|
|
24
|
+
this.toolCodec = options.toolCodec;
|
|
25
|
+
this.billing = options.billing;
|
|
13
26
|
}
|
|
14
27
|
async fetch(wfctx, session, signal) {
|
|
15
|
-
await this.
|
|
28
|
+
await this.throttle.requests(wfctx);
|
|
16
29
|
// Prepare request body
|
|
17
|
-
const systemInstruction = session.developerMessage && this.
|
|
18
|
-
const contents = this.
|
|
19
|
-
const apiFds = this.
|
|
30
|
+
const systemInstruction = session.developerMessage && this.messageCodec.encodeDeveloperMessage(session.developerMessage);
|
|
31
|
+
const contents = this.messageCodec.encodeChatMessages(session.chatMessages);
|
|
32
|
+
const apiFds = this.toolCodec.encodeFunctionDeclarationMap(this.fdm);
|
|
20
33
|
const apiTools = [];
|
|
21
34
|
if (apiFds.length)
|
|
22
35
|
apiTools.push({ functionDeclarations: apiFds });
|
|
23
36
|
const apiToolConfig = {};
|
|
24
37
|
if (apiFds.length)
|
|
25
|
-
apiToolConfig.functionCallingConfig = ChoiceCodec.encode(this.
|
|
38
|
+
apiToolConfig.functionCallingConfig = ChoiceCodec.encode(this.structuringChoice);
|
|
26
39
|
const reqbody = {
|
|
27
40
|
contents,
|
|
28
41
|
tools: apiTools,
|
|
29
42
|
toolConfig: apiToolConfig,
|
|
30
43
|
systemInstruction,
|
|
31
|
-
generationConfig: this.
|
|
44
|
+
generationConfig: this.inferenceParams.additionalOptions,
|
|
32
45
|
};
|
|
33
46
|
loggers.message.debug(reqbody);
|
|
34
47
|
// Send request
|
|
@@ -36,16 +49,11 @@ export class Transport {
|
|
|
36
49
|
method: 'POST',
|
|
37
50
|
headers: {
|
|
38
51
|
'Content-Type': 'application/json',
|
|
39
|
-
'x-goog-api-key': this.
|
|
52
|
+
'x-goog-api-key': this.providerSpec.apiKey,
|
|
40
53
|
},
|
|
41
54
|
body: JSON.stringify(reqbody),
|
|
42
|
-
dispatcher: this.
|
|
55
|
+
dispatcher: this.providerSpec.dispatcher,
|
|
43
56
|
signal,
|
|
44
|
-
}).catch(e => {
|
|
45
|
-
if (e instanceof TypeError)
|
|
46
|
-
throw new NetworkError(undefined, { cause: e });
|
|
47
|
-
else
|
|
48
|
-
throw e;
|
|
49
57
|
});
|
|
50
58
|
// Get response
|
|
51
59
|
if (res.ok) { }
|
|
@@ -67,23 +75,23 @@ export class Transport {
|
|
|
67
75
|
// Validate response
|
|
68
76
|
if (response.candidates?.[0]?.content?.parts?.length) { }
|
|
69
77
|
else
|
|
70
|
-
throw new
|
|
78
|
+
throw new SyntaxError('Content missing', { cause: response });
|
|
71
79
|
if (response.candidates[0].finishReason === Google.FinishReason.MAX_TOKENS)
|
|
72
|
-
throw new
|
|
80
|
+
throw new SyntaxError('Token limit exceeded.', { cause: response });
|
|
73
81
|
if (response.candidates[0].finishReason === Google.FinishReason.STOP) { }
|
|
74
82
|
else
|
|
75
|
-
throw new
|
|
83
|
+
throw new SyntaxError('Abnormal finish reason', { cause: response });
|
|
76
84
|
if (response.usageMetadata) { }
|
|
77
85
|
else
|
|
78
|
-
throw new
|
|
86
|
+
throw new SyntaxError('Usage metadata missing', { cause: response });
|
|
79
87
|
for (const part of response.candidates[0].content.parts) {
|
|
80
88
|
if (part.text)
|
|
81
89
|
loggers.inference.info(part.text);
|
|
82
90
|
if (part.functionCall)
|
|
83
91
|
loggers.message.info(part.functionCall);
|
|
84
92
|
}
|
|
85
|
-
wfctx.cost?.(this.
|
|
86
|
-
return this.
|
|
93
|
+
wfctx.cost?.(this.billing.charge(response.usageMetadata));
|
|
94
|
+
return this.messageCodec.decodeAiMessage(response.candidates[0].content);
|
|
87
95
|
}
|
|
88
96
|
}
|
|
89
97
|
//# sourceMappingURL=transport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/google/transport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/google/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,11 +9,13 @@ import * as ChoiceCodecModule from './google/choice-codec.ts';
|
|
|
9
9
|
export type GoogleCompatibleEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = GoogleCompatibleEngine.Instance<fdm, vdm>;
|
|
10
10
|
export declare namespace GoogleCompatibleEngine {
|
|
11
11
|
class Instance<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends CompatibleEngine.Instance<fdm, vdm> {
|
|
12
|
+
protected options: GoogleCompatibleEngine.Options<fdm, vdm>;
|
|
12
13
|
protected toolCodec: ToolCodec<fdm>;
|
|
13
14
|
protected messageCodec: GoogleCompatibleEngine.MessageCodec<fdm, vdm>;
|
|
14
15
|
protected billing: Billing;
|
|
15
16
|
protected transport: GoogleCompatibleEngine.Transport<fdm, vdm>;
|
|
16
17
|
constructor(options: GoogleCompatibleEngine.Options<fdm, vdm>);
|
|
18
|
+
clone(): GoogleCompatibleEngine<fdm, vdm>;
|
|
17
19
|
}
|
|
18
20
|
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends CompatibleEngine.Options<fdm, vdm> {
|
|
19
21
|
}
|
|
@@ -4,16 +4,31 @@ import { ToolCodec } from "../api-types/google/tool-codec.js";
|
|
|
4
4
|
import { Billing } from "../api-types/google/billing.js";
|
|
5
5
|
import * as TransportModule from "./google/transport.js";
|
|
6
6
|
import * as ChoiceCodecModule from "./google/choice-codec.js";
|
|
7
|
+
import { env } from 'node:process';
|
|
8
|
+
import { Agent, ProxyAgent } from 'undici';
|
|
7
9
|
export var GoogleCompatibleEngine;
|
|
8
10
|
(function (GoogleCompatibleEngine) {
|
|
9
11
|
class Instance extends CompatibleEngine.Instance {
|
|
12
|
+
options;
|
|
10
13
|
toolCodec;
|
|
11
14
|
messageCodec;
|
|
12
15
|
billing;
|
|
13
16
|
transport;
|
|
14
17
|
constructor(options) {
|
|
15
18
|
super(options);
|
|
16
|
-
|
|
19
|
+
this.options = options;
|
|
20
|
+
const proxyUrl = options.endpointSpec.proxy || env.https_proxy || env.HTTPS_PROXY;
|
|
21
|
+
this.providerSpec.dispatcher = proxyUrl
|
|
22
|
+
? new ProxyAgent({
|
|
23
|
+
uri: proxyUrl,
|
|
24
|
+
headersTimeout: 0,
|
|
25
|
+
bodyTimeout: 0,
|
|
26
|
+
})
|
|
27
|
+
: new Agent({
|
|
28
|
+
headersTimeout: 0,
|
|
29
|
+
bodyTimeout: 0,
|
|
30
|
+
});
|
|
31
|
+
if (options.endpointSpec.parallelToolCall === false)
|
|
17
32
|
throw new Error('Parallel tool calling is required by Google engine.');
|
|
18
33
|
this.toolCodec = new ToolCodec({
|
|
19
34
|
fdm: this.fdm,
|
|
@@ -28,12 +43,18 @@ export var GoogleCompatibleEngine;
|
|
|
28
43
|
providerSpec: this.providerSpec,
|
|
29
44
|
fdm: this.fdm,
|
|
30
45
|
throttle: this.throttle,
|
|
31
|
-
choice: this.
|
|
46
|
+
choice: this.structuringChoice,
|
|
32
47
|
messageCodec: this.messageCodec,
|
|
33
48
|
toolCodec: this.toolCodec,
|
|
34
49
|
billing: this.billing,
|
|
35
50
|
});
|
|
36
51
|
}
|
|
52
|
+
clone() {
|
|
53
|
+
const engine = new GoogleCompatibleEngine.Instance(this.options);
|
|
54
|
+
engine.middlewares = [...this.middlewares];
|
|
55
|
+
engine.statefulMiddlewares = [...this.statefulMiddlewares];
|
|
56
|
+
return engine;
|
|
57
|
+
}
|
|
37
58
|
}
|
|
38
59
|
GoogleCompatibleEngine.Instance = Instance;
|
|
39
60
|
GoogleCompatibleEngine.Transport = TransportModule.Transport;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/compatible-engine.d/google.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/compatible-engine.d/google.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { RoleMessage, type Session } from '../../compatible-engine/session.ts';
|
|
2
2
|
import { Function } from '../../function.ts';
|
|
3
3
|
import OpenAI from 'openai';
|
|
4
|
-
import type {
|
|
4
|
+
import type { ToolCodec } from '../../api-types/openai-chatcompletions/tool-codec.ts';
|
|
5
5
|
import type { Verbatim } from '../../verbatim.ts';
|
|
6
6
|
export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
7
|
-
protected
|
|
8
|
-
|
|
7
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
8
|
+
protected vdm: vdm;
|
|
9
|
+
constructor(options: MessageCodec.Options<fdm, vdm>);
|
|
9
10
|
decodeAiMessage(message: OpenAI.ChatCompletionMessage): RoleMessage.Ai.From<fdm, vdm>;
|
|
10
11
|
encodeDeveloperMessage(developerMessage: RoleMessage.Developer): OpenAI.ChatCompletionSystemMessageParam;
|
|
11
12
|
encodeUserMessage(userMessage: RoleMessage.User.From<fdm>): [OpenAI.ChatCompletionUserMessageParam] | OpenAI.ChatCompletionToolMessageParam[];
|
|
@@ -14,8 +15,8 @@ export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto, in
|
|
|
14
15
|
encodeRoleMessages(chatMessages: (Session.ChatMessage.From<fdm, vdm> | RoleMessage.Developer)[]): OpenAI.ChatCompletionMessageParam[];
|
|
15
16
|
}
|
|
16
17
|
export declare namespace MessageCodec {
|
|
17
|
-
interface
|
|
18
|
-
toolCodec:
|
|
18
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
19
|
+
toolCodec: ToolCodec<fdm>;
|
|
19
20
|
vdm: vdm;
|
|
20
21
|
}
|
|
21
22
|
}
|
|
@@ -1,36 +1,29 @@
|
|
|
1
|
-
import { ResponseInvalid } from "../../engine.js";
|
|
2
1
|
import { RoleMessage } from "../../compatible-engine/session.js";
|
|
3
2
|
import { Function } from "../../function.js";
|
|
4
3
|
import * as VerbatimCodec from "../../verbatim/codec.js";
|
|
5
4
|
export class MessageCodec {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
toolCodec;
|
|
6
|
+
vdm;
|
|
7
|
+
constructor(options) {
|
|
8
|
+
this.toolCodec = options.toolCodec;
|
|
9
|
+
this.vdm = options.vdm;
|
|
9
10
|
}
|
|
10
11
|
decodeAiMessage(message) {
|
|
11
12
|
const parts = [];
|
|
12
|
-
if (message.content)
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
17
|
-
catch (e) {
|
|
18
|
-
if (e instanceof SyntaxError)
|
|
19
|
-
throw new ResponseInvalid('Invalid verbatim message', { cause: message });
|
|
20
|
-
else
|
|
21
|
-
throw e;
|
|
22
|
-
}
|
|
13
|
+
if (message.content) {
|
|
14
|
+
const vrs = VerbatimCodec.Request.decode(message.content, this.vdm);
|
|
15
|
+
parts.push(new RoleMessage.Part.Text(message.content, vrs));
|
|
16
|
+
}
|
|
23
17
|
if (message.tool_calls)
|
|
24
|
-
|
|
25
|
-
if (apifc.type === 'function')
|
|
18
|
+
for (const apifc of message.tool_calls)
|
|
19
|
+
if (apifc.type === 'function')
|
|
20
|
+
parts.push(this.toolCodec.decodeFunctionCall(apifc));
|
|
26
21
|
else
|
|
27
22
|
throw new Error();
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
if (parts.length) { }
|
|
23
|
+
if (parts.length)
|
|
24
|
+
return new RoleMessage.Ai(parts);
|
|
31
25
|
else
|
|
32
|
-
throw new
|
|
33
|
-
return new RoleMessage.Ai(parts);
|
|
26
|
+
throw new SyntaxError('Content or tool calls not found in Response', { cause: message });
|
|
34
27
|
}
|
|
35
28
|
encodeDeveloperMessage(developerMessage) {
|
|
36
29
|
return {
|
|
@@ -44,7 +37,7 @@ export class MessageCodec {
|
|
|
44
37
|
if (textParts.length && !frs.length)
|
|
45
38
|
return [{ role: 'user', content: textParts.map(part => ({ type: 'text', text: part.text })) }];
|
|
46
39
|
else if (!textParts.length && frs.length)
|
|
47
|
-
return frs.map(fr => this.
|
|
40
|
+
return frs.map(fr => this.toolCodec.encodeFunctionResponse(fr));
|
|
48
41
|
else
|
|
49
42
|
throw new Error('Unsupported user message type.');
|
|
50
43
|
}
|
|
@@ -55,7 +48,7 @@ export class MessageCodec {
|
|
|
55
48
|
return {
|
|
56
49
|
role: 'assistant',
|
|
57
50
|
content: textParts.length ? textParts.map(part => part.text).join('') : undefined,
|
|
58
|
-
tool_calls: fcParts.length ? fcParts.map(fc => this.
|
|
51
|
+
tool_calls: fcParts.length ? fcParts.map(fc => this.toolCodec.encodeFunctionCall(fc)) : undefined,
|
|
59
52
|
};
|
|
60
53
|
}
|
|
61
54
|
encodeRoleMessage(roleMessage) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/openai-chatcompletions/message-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/openai-chatcompletions/message-codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,37 @@ import OpenAI from 'openai';
|
|
|
4
4
|
import type { InferenceContext } from '../../inference-context.ts';
|
|
5
5
|
import type { Verbatim } from '../../verbatim.ts';
|
|
6
6
|
import type { Engine } from '../../engine.ts';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
import { type InferenceParams, type ProviderSpec } from '../../engine.ts';
|
|
8
|
+
import type { Billing } from '../../api-types/openai-chatcompletions/billing.ts';
|
|
9
|
+
import type { ToolCodec } from '../../api-types/openai-chatcompletions/tool-codec.ts';
|
|
10
|
+
import { Throttle } from '../../throttle.ts';
|
|
11
|
+
import { type MessageCodec } from './message-codec.ts';
|
|
12
|
+
import type { Structuring } from '../../compatible-engine/structuring.ts';
|
|
13
|
+
export declare class Transport<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> implements Engine.Transport<RoleMessage.User.From<fdm>, RoleMessage.Ai.From<fdm, vdm>, RoleMessage.Developer, Session.From<fdm, vdm>> {
|
|
14
|
+
protected client: OpenAI;
|
|
15
|
+
protected inferenceParams: InferenceParams;
|
|
16
|
+
protected providerSpec: ProviderSpec;
|
|
17
|
+
protected fdm: fdm;
|
|
18
|
+
protected throttle: Throttle;
|
|
19
|
+
protected choice: Structuring.Choice.From<fdm, vdm>;
|
|
20
|
+
protected messageCodec: MessageCodec<fdm, vdm>;
|
|
21
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
22
|
+
protected billing: Billing;
|
|
23
|
+
constructor(options: Transport.Options<fdm, vdm>);
|
|
24
|
+
protected makeParams(session: Session.From<fdm, vdm>): OpenAI.ChatCompletionCreateParamsStreaming;
|
|
25
|
+
mergeToolCall(apifc: OpenAI.ChatCompletionChunk.Choice.Delta.ToolCall): OpenAI.ChatCompletionMessageToolCall;
|
|
26
|
+
mergeCompletion(stock: OpenAI.ChatCompletionChunk): OpenAI.ChatCompletion;
|
|
27
|
+
fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
28
|
+
}
|
|
29
|
+
export declare namespace Transport {
|
|
30
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
31
|
+
inferenceParams: InferenceParams;
|
|
32
|
+
providerSpec: ProviderSpec;
|
|
33
|
+
fdm: fdm;
|
|
34
|
+
throttle: Throttle;
|
|
35
|
+
choice: Structuring.Choice.From<fdm, vdm>;
|
|
36
|
+
messageCodec: MessageCodec<fdm, vdm>;
|
|
37
|
+
toolCodec: ToolCodec<fdm>;
|
|
38
|
+
billing: Billing;
|
|
39
|
+
}
|
|
10
40
|
}
|