@zimtsui/brainswitch 0.0.55 → 0.0.56
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 +13 -14
- package/README.md +7 -14
- package/build/adaptor.d.ts +5 -5
- package/build/adaptor.js +16 -16
- package/build/adaptor.js.map +1 -1
- package/build/agentloop.d.ts +5 -5
- package/build/agentloop.js +4 -4
- package/build/agentloop.js.map +1 -1
- package/build/api-types/anthropic/billing.d.ts +12 -0
- package/build/api-types/anthropic/billing.js +15 -0
- package/build/api-types/anthropic/billing.js.map +1 -0
- package/build/api-types/anthropic/tool-codec.d.ts +17 -0
- package/build/api-types/anthropic/tool-codec.js +73 -0
- package/build/api-types/anthropic/tool-codec.js.map +1 -0
- package/build/api-types/google/billing.d.ts +12 -0
- package/build/api-types/google/billing.js +24 -0
- package/build/api-types/google/billing.js.map +1 -0
- package/build/api-types/google/restful-request.d.ts +8 -0
- package/build/api-types/google/restful-request.js +2 -0
- package/build/api-types/google/restful-request.js.map +1 -0
- package/build/api-types/google/tool-codec.d.ts +16 -0
- package/build/api-types/{google.js → google/tool-codec.js} +27 -26
- package/build/api-types/google/tool-codec.js.map +1 -0
- package/build/api-types/openai-chatcompletion/billing.d.ts +13 -0
- package/build/api-types/openai-chatcompletion/billing.js +16 -0
- package/build/api-types/openai-chatcompletion/billing.js.map +1 -0
- package/build/api-types/openai-chatcompletion/tool-codec.d.ts +18 -0
- package/build/api-types/openai-chatcompletion/tool-codec.js +86 -0
- package/build/api-types/openai-chatcompletion/tool-codec.js.map +1 -0
- package/build/api-types/openai-responses/billing.d.ts +12 -0
- package/build/api-types/openai-responses/billing.js +15 -0
- package/build/api-types/openai-responses/billing.js.map +1 -0
- package/build/api-types/openai-responses/tool-codec.d.ts +16 -0
- package/build/api-types/openai-responses/tool-codec.js +72 -0
- package/build/api-types/openai-responses/tool-codec.js.map +1 -0
- package/build/compatible/engine.d/aliyun.d.ts +23 -0
- package/build/compatible/engine.d/aliyun.js +44 -0
- package/build/compatible/engine.d/aliyun.js.map +1 -0
- package/build/compatible/engine.d/anthropic.d.ts +23 -0
- package/build/compatible/engine.d/anthropic.js +41 -0
- package/build/compatible/engine.d/anthropic.js.map +1 -0
- package/build/compatible/engine.d/google.d.ts +23 -0
- package/build/compatible/engine.d/google.js +45 -0
- package/build/compatible/engine.d/google.js.map +1 -0
- package/build/compatible/engine.d/openai-responses.d.ts +23 -0
- package/build/compatible/engine.d/openai-responses.js +41 -0
- package/build/compatible/engine.d/openai-responses.js.map +1 -0
- package/build/compatible/engine.d.ts +18 -0
- package/build/compatible/engine.js +21 -0
- package/build/compatible/engine.js.map +1 -0
- package/build/compatible/session.d.ts +78 -0
- package/build/compatible/session.js +138 -0
- package/build/compatible/session.js.map +1 -0
- package/build/compatible/tool-call-validator.d.ts +11 -0
- package/build/compatible/tool-call-validator.js +12 -0
- package/build/compatible/tool-call-validator.js.map +1 -0
- package/build/compatible.d/aliyun/transport.d.ts +11 -0
- package/build/compatible.d/aliyun/transport.js +9 -0
- package/build/compatible.d/aliyun/transport.js.map +1 -0
- package/build/compatible.d/anthropic/message-codec.d.ts +31 -0
- package/build/compatible.d/anthropic/message-codec.js +88 -0
- package/build/compatible.d/anthropic/message-codec.js.map +1 -0
- package/build/compatible.d/anthropic/transport.d.ts +31 -0
- package/build/compatible.d/anthropic/transport.js +137 -0
- package/build/compatible.d/anthropic/transport.js.map +1 -0
- package/build/compatible.d/google/message-codec.d.ts +31 -0
- package/build/compatible.d/google/message-codec.js +98 -0
- package/build/compatible.d/google/message-codec.js.map +1 -0
- package/build/compatible.d/google/transport.d.ts +28 -0
- package/build/compatible.d/google/transport.js +74 -0
- package/build/compatible.d/google/transport.js.map +1 -0
- package/build/compatible.d/openai-chatcompletions/message-codec.d.ts +19 -0
- package/build/compatible.d/openai-chatcompletions/message-codec.js +66 -0
- package/build/compatible.d/openai-chatcompletions/message-codec.js.map +1 -0
- package/build/compatible.d/openai-chatcompletions/transport.d.ts +9 -0
- package/build/compatible.d/openai-chatcompletions/transport.js +25 -0
- package/build/compatible.d/openai-chatcompletions/transport.js.map +1 -0
- package/build/compatible.d/openai-chatcompletions.d/monolith.d.ts +36 -0
- package/build/compatible.d/openai-chatcompletions.d/monolith.js +74 -0
- package/build/compatible.d/openai-chatcompletions.d/monolith.js.map +1 -0
- package/build/compatible.d/openai-chatcompletions.d/stream.d.ts +35 -0
- package/build/{compatible-engines.d → compatible.d}/openai-chatcompletions.d/stream.js +52 -42
- package/build/compatible.d/openai-chatcompletions.d/stream.js.map +1 -0
- package/build/compatible.d/openai-responses/message-codec.d.ts +32 -0
- package/build/compatible.d/openai-responses/message-codec.js +105 -0
- package/build/compatible.d/openai-responses/message-codec.js.map +1 -0
- package/build/compatible.d/openai-responses/transport.d.ts +33 -0
- package/build/compatible.d/openai-responses/transport.js +88 -0
- package/build/compatible.d/openai-responses/transport.js.map +1 -0
- package/build/config.js +1 -1
- package/build/config.js.map +1 -1
- package/build/engine.d.ts +48 -26
- package/build/engine.js +78 -29
- package/build/engine.js.map +1 -1
- package/build/exports.d.ts +14 -13
- package/build/exports.js +14 -13
- package/build/exports.js.map +1 -1
- package/build/function.d.ts +25 -13
- package/build/function.js +2 -1
- package/build/function.js.map +1 -1
- package/build/native-engines.d/google/agentloop.d.ts +6 -6
- package/build/native-engines.d/google/agentloop.js +5 -5
- package/build/native-engines.d/google/agentloop.js.map +1 -1
- package/build/native-engines.d/google/engine.d.ts +28 -103
- package/build/native-engines.d/google/engine.js +63 -304
- package/build/native-engines.d/google/engine.js.map +1 -1
- package/build/native-engines.d/google/exports.d.ts +5 -5
- package/build/native-engines.d/google/exports.js +5 -5
- package/build/native-engines.d/google/exports.js.map +1 -1
- package/build/native-engines.d/google/message-codec.d.ts +21 -0
- package/build/native-engines.d/google/message-codec.js +69 -0
- package/build/native-engines.d/google/message-codec.js.map +1 -0
- package/build/native-engines.d/google/session.d.ts +16 -15
- package/build/native-engines.d/google/session.js +2 -2
- package/build/native-engines.d/google/session.js.map +1 -1
- package/build/native-engines.d/google/transport.d.ts +31 -0
- package/build/native-engines.d/google/transport.js +81 -0
- package/build/native-engines.d/google/transport.js.map +1 -0
- package/build/native-engines.d/openai-responses/agentloop.d.ts +7 -7
- package/build/native-engines.d/openai-responses/agentloop.js +6 -6
- package/build/native-engines.d/openai-responses/agentloop.js.map +1 -1
- package/build/native-engines.d/openai-responses/engine.d.ts +26 -106
- package/build/native-engines.d/openai-responses/engine.js +53 -334
- package/build/native-engines.d/openai-responses/engine.js.map +1 -1
- package/build/native-engines.d/openai-responses/exports.d.ts +6 -7
- package/build/native-engines.d/openai-responses/exports.js +6 -7
- package/build/native-engines.d/openai-responses/exports.js.map +1 -1
- package/build/native-engines.d/openai-responses/message-codec.d.ts +21 -0
- package/build/native-engines.d/openai-responses/message-codec.js +69 -0
- package/build/native-engines.d/openai-responses/message-codec.js.map +1 -0
- package/build/native-engines.d/openai-responses/session.d.ts +27 -26
- package/build/native-engines.d/openai-responses/session.js +3 -3
- package/build/native-engines.d/openai-responses/session.js.map +1 -1
- package/build/native-engines.d/openai-responses/tool-call-validator.d.ts +12 -0
- package/build/native-engines.d/openai-responses/tool-call-validator.js +33 -0
- package/build/native-engines.d/openai-responses/tool-call-validator.js.map +1 -0
- package/build/native-engines.d/openai-responses/tool.d.ts +3 -3
- package/build/native-engines.d/openai-responses/tool.js +1 -1
- package/build/native-engines.d/openai-responses/tool.js.map +1 -1
- package/build/native-engines.d/openai-responses/transport.d.ts +36 -0
- package/build/native-engines.d/openai-responses/transport.js +104 -0
- package/build/native-engines.d/openai-responses/transport.js.map +1 -0
- package/build/session.d.ts +5 -75
- package/build/session.js +0 -136
- package/build/session.js.map +1 -1
- package/build/throttle.d.ts +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/test/build/test-codecs.js +230 -0
- package/test/build/test-codecs.js.map +1 -0
- package/test/build/test-compatible-engine.d.ts +1 -0
- package/test/build/test-compatible-engine.js +27 -0
- package/test/build/test-compatible-engine.js.map +1 -0
- package/test/build/test-compatible-engines.d.ts +1 -0
- package/test/build/test-compatible-engines.js +112 -0
- package/test/build/test-compatible-engines.js.map +1 -0
- package/test/build/test-engine.d.ts +1 -0
- package/test/build/test-engine.js +97 -0
- package/test/build/test-engine.js.map +1 -0
- package/test/build/test-helpers.d.ts +46 -0
- package/test/build/test-helpers.js +45 -0
- package/test/build/test-helpers.js.map +1 -0
- package/test/build/test-native-engines.d.ts +1 -0
- package/test/build/test-native-engines.js +64 -0
- package/test/build/test-native-engines.js.map +1 -0
- package/test/build/test.d.ts +5 -0
- package/test/build/test.js +6 -0
- package/test/build/test.js.map +1 -0
- package/test/build/tsconfig.tsbuildinfo +1 -0
- package/test/src/test-codecs.ts +256 -0
- package/test/src/test-compatible-engine.ts +45 -0
- package/test/src/test-compatible-engines.ts +129 -0
- package/test/src/test-engine.ts +144 -0
- package/test/src/test-helpers.ts +53 -0
- package/test/src/test-native-engines.ts +75 -0
- package/test/src/test.ts +5 -0
- package/test/src/tsconfig.json +30 -0
- package/build/api-types/anthropic.d.ts +0 -29
- package/build/api-types/anthropic.js +0 -93
- package/build/api-types/anthropic.js.map +0 -1
- package/build/api-types/google.d.ts +0 -28
- package/build/api-types/google.js.map +0 -1
- package/build/api-types/openai-chat-completions.d.ts +0 -31
- package/build/api-types/openai-chat-completions.js +0 -113
- package/build/api-types/openai-chat-completions.js.map +0 -1
- package/build/api-types/openai-responses.d.ts +0 -23
- package/build/api-types/openai-responses.js +0 -71
- package/build/api-types/openai-responses.js.map +0 -1
- package/build/compatible-engine.d.ts +0 -51
- package/build/compatible-engine.js +0 -67
- package/build/compatible-engine.js.map +0 -1
- package/build/compatible-engines.d/aliyun.d.ts +0 -69
- package/build/compatible-engines.d/aliyun.js +0 -149
- package/build/compatible-engines.d/aliyun.js.map +0 -1
- package/build/compatible-engines.d/anthropic.d.ts +0 -78
- package/build/compatible-engines.d/anthropic.js +0 -312
- package/build/compatible-engines.d/anthropic.js.map +0 -1
- package/build/compatible-engines.d/google.d.ts +0 -83
- package/build/compatible-engines.d/google.js +0 -279
- package/build/compatible-engines.d/google.js.map +0 -1
- package/build/compatible-engines.d/openai-chatcompletions.d/monolith.d.ts +0 -15
- package/build/compatible-engines.d/openai-chatcompletions.d/monolith.js +0 -75
- package/build/compatible-engines.d/openai-chatcompletions.d/monolith.js.map +0 -1
- package/build/compatible-engines.d/openai-chatcompletions.d/stream.d.ts +0 -21
- package/build/compatible-engines.d/openai-chatcompletions.d/stream.js.map +0 -1
- package/build/compatible-engines.d/openai-chatcompletions.d.ts +0 -27
- package/build/compatible-engines.d/openai-chatcompletions.js +0 -76
- package/build/compatible-engines.d/openai-chatcompletions.js.map +0 -1
- package/build/compatible-engines.d/openai-responses.d.ts +0 -93
- package/build/compatible-engines.d/openai-responses.js +0 -300
- package/build/compatible-engines.d/openai-responses.js.map +0 -1
- package/build/test.js +0 -198
- package/build/test.js.map +0 -1
- /package/{build/test.d.ts → test/build/test-codecs.d.ts} +0 -0
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Function } from '#@/function.ts';
|
|
2
|
+
import { type GenericSession } from '#@/session.ts';
|
|
3
|
+
export interface Session<in out fdm extends Function.Declaration.Map> extends GenericSession<RoleMessage.User<fdm>, RoleMessage.Ai<fdm>, RoleMessage.Developer> {
|
|
4
|
+
}
|
|
5
|
+
export declare namespace Session {
|
|
6
|
+
type ChatMessage<fdm extends Function.Declaration.Map> = GenericSession.ChatMessage<RoleMessage.User<fdm>, RoleMessage.Ai<fdm>>;
|
|
7
|
+
}
|
|
8
|
+
export type RoleMessage = RoleMessage.Instance;
|
|
9
|
+
export declare namespace RoleMessage {
|
|
10
|
+
class SpecificMessageError extends Error {
|
|
11
|
+
constructor();
|
|
12
|
+
}
|
|
13
|
+
const NOMINAL: unique symbol;
|
|
14
|
+
abstract class Instance {
|
|
15
|
+
private readonly [NOMINAL];
|
|
16
|
+
abstract getText(): string;
|
|
17
|
+
abstract getOnlyText(): string;
|
|
18
|
+
}
|
|
19
|
+
namespace Part {
|
|
20
|
+
type Text = Text.Instance;
|
|
21
|
+
namespace Text {
|
|
22
|
+
function create(text: string): Text;
|
|
23
|
+
function paragraph(text: string): Text;
|
|
24
|
+
const NOMINAL: unique symbol;
|
|
25
|
+
class Instance {
|
|
26
|
+
text: string;
|
|
27
|
+
private readonly [NOMINAL];
|
|
28
|
+
constructor(text: string);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
type Ai<fdm extends Function.Declaration.Map> = Ai.Instance<fdm>;
|
|
33
|
+
namespace Ai {
|
|
34
|
+
function create<fdm extends Function.Declaration.Map>(parts: RoleMessage.Ai.Part<fdm>[]): RoleMessage.Ai<fdm>;
|
|
35
|
+
const NOMINAL: unique symbol;
|
|
36
|
+
class Instance<in out fdm extends Function.Declaration.Map> extends RoleMessage.Instance {
|
|
37
|
+
protected parts: RoleMessage.Ai.Part<fdm>[];
|
|
38
|
+
readonly [NOMINAL]: void;
|
|
39
|
+
constructor(parts: RoleMessage.Ai.Part<fdm>[]);
|
|
40
|
+
getParts(): RoleMessage.Ai.Part<fdm>[];
|
|
41
|
+
getText(): string;
|
|
42
|
+
getOnlyText(): string;
|
|
43
|
+
getOnlyFunctionCall(): Function.Call.From<fdm>;
|
|
44
|
+
getFunctionCalls(): Function.Call.From<fdm>[];
|
|
45
|
+
}
|
|
46
|
+
type Part<fdm extends Function.Declaration.Map> = RoleMessage.Part.Text | Function.Call.From<fdm>;
|
|
47
|
+
}
|
|
48
|
+
type User<fdm extends Function.Declaration.Map> = User.Instance<fdm>;
|
|
49
|
+
namespace User {
|
|
50
|
+
function create<fdm extends Function.Declaration.Map>(parts: RoleMessage.User.Part<fdm>[]): RoleMessage.User<fdm>;
|
|
51
|
+
const NOMINAL: unique symbol;
|
|
52
|
+
class Instance<in out fdm extends Function.Declaration.Map> extends RoleMessage.Instance {
|
|
53
|
+
protected parts: RoleMessage.User.Part<fdm>[];
|
|
54
|
+
private readonly [NOMINAL];
|
|
55
|
+
constructor(parts: RoleMessage.User.Part<fdm>[]);
|
|
56
|
+
getParts(): RoleMessage.User.Part<fdm>[];
|
|
57
|
+
getText(): string;
|
|
58
|
+
getOnlyText(): string;
|
|
59
|
+
getFunctionResponses(): Function.Response.Distributive<fdm>[];
|
|
60
|
+
getOnlyFunctionResponse(): Function.Response.Distributive<fdm>;
|
|
61
|
+
}
|
|
62
|
+
type Part<fdm extends Function.Declaration.Map> = RoleMessage.Part.Text | Function.Response.Distributive<fdm>;
|
|
63
|
+
}
|
|
64
|
+
type Developer = Developer.Instance;
|
|
65
|
+
namespace Developer {
|
|
66
|
+
function create(parts: Developer.Part[]): Developer;
|
|
67
|
+
const NOMINAL: unique symbol;
|
|
68
|
+
class Instance extends RoleMessage.Instance {
|
|
69
|
+
protected parts: Developer.Part[];
|
|
70
|
+
private readonly [NOMINAL];
|
|
71
|
+
constructor(parts: Developer.Part[]);
|
|
72
|
+
getParts(): Developer.Part[];
|
|
73
|
+
getText(): string;
|
|
74
|
+
getOnlyText(): string;
|
|
75
|
+
}
|
|
76
|
+
type Part = Part.Text;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import { Function } from '#@/function.ts';
|
|
2
|
+
import {} from '#@/session.ts';
|
|
3
|
+
export var RoleMessage;
|
|
4
|
+
(function (RoleMessage) {
|
|
5
|
+
class SpecificMessageError extends Error {
|
|
6
|
+
constructor() {
|
|
7
|
+
super('This message is specific to a certain type of engines.');
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
RoleMessage.SpecificMessageError = SpecificMessageError;
|
|
11
|
+
RoleMessage.NOMINAL = Symbol();
|
|
12
|
+
class Instance {
|
|
13
|
+
}
|
|
14
|
+
RoleMessage.Instance = Instance;
|
|
15
|
+
let Part;
|
|
16
|
+
(function (Part) {
|
|
17
|
+
let Text;
|
|
18
|
+
(function (Text) {
|
|
19
|
+
function create(text) {
|
|
20
|
+
return new Instance(text);
|
|
21
|
+
}
|
|
22
|
+
Text.create = create;
|
|
23
|
+
function paragraph(text) {
|
|
24
|
+
return new Instance(text.trimEnd() + '\n\n');
|
|
25
|
+
}
|
|
26
|
+
Text.paragraph = paragraph;
|
|
27
|
+
Text.NOMINAL = Symbol();
|
|
28
|
+
class Instance {
|
|
29
|
+
text;
|
|
30
|
+
constructor(text) {
|
|
31
|
+
this.text = text;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
Text.Instance = Instance;
|
|
35
|
+
})(Text = Part.Text || (Part.Text = {}));
|
|
36
|
+
})(Part = RoleMessage.Part || (RoleMessage.Part = {}));
|
|
37
|
+
let Ai;
|
|
38
|
+
(function (Ai) {
|
|
39
|
+
function create(parts) {
|
|
40
|
+
return new Instance(parts);
|
|
41
|
+
}
|
|
42
|
+
Ai.create = create;
|
|
43
|
+
Ai.NOMINAL = Symbol();
|
|
44
|
+
class Instance extends RoleMessage.Instance {
|
|
45
|
+
parts;
|
|
46
|
+
constructor(parts) {
|
|
47
|
+
super();
|
|
48
|
+
this.parts = parts;
|
|
49
|
+
}
|
|
50
|
+
getParts() {
|
|
51
|
+
return this.parts;
|
|
52
|
+
}
|
|
53
|
+
getText() {
|
|
54
|
+
return this.parts.filter(part => part instanceof RoleMessage.Part.Text.Instance).map(part => part.text).join('');
|
|
55
|
+
}
|
|
56
|
+
getOnlyText() {
|
|
57
|
+
if (this.parts.every(part => part instanceof RoleMessage.Part.Text.Instance)) { }
|
|
58
|
+
else
|
|
59
|
+
throw new Error();
|
|
60
|
+
return this.getText();
|
|
61
|
+
}
|
|
62
|
+
getOnlyFunctionCall() {
|
|
63
|
+
const fcs = this.getFunctionCalls();
|
|
64
|
+
if (fcs.length === 1) { }
|
|
65
|
+
else
|
|
66
|
+
throw new Error();
|
|
67
|
+
return fcs[0];
|
|
68
|
+
}
|
|
69
|
+
getFunctionCalls() {
|
|
70
|
+
return this.parts.filter(part => part instanceof Function.Call);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
Ai.Instance = Instance;
|
|
74
|
+
})(Ai = RoleMessage.Ai || (RoleMessage.Ai = {}));
|
|
75
|
+
let User;
|
|
76
|
+
(function (User) {
|
|
77
|
+
function create(parts) {
|
|
78
|
+
return new Instance(parts);
|
|
79
|
+
}
|
|
80
|
+
User.create = create;
|
|
81
|
+
User.NOMINAL = Symbol();
|
|
82
|
+
class Instance extends RoleMessage.Instance {
|
|
83
|
+
parts;
|
|
84
|
+
constructor(parts) {
|
|
85
|
+
super();
|
|
86
|
+
this.parts = parts;
|
|
87
|
+
}
|
|
88
|
+
getParts() {
|
|
89
|
+
return this.parts;
|
|
90
|
+
}
|
|
91
|
+
getText() {
|
|
92
|
+
return this.parts.filter(part => part instanceof RoleMessage.Part.Text.Instance).map(part => part.text).join('');
|
|
93
|
+
}
|
|
94
|
+
getOnlyText() {
|
|
95
|
+
if (this.parts.every(part => part instanceof RoleMessage.Part.Text.Instance)) { }
|
|
96
|
+
else
|
|
97
|
+
throw new Error();
|
|
98
|
+
return this.getText();
|
|
99
|
+
}
|
|
100
|
+
getFunctionResponses() {
|
|
101
|
+
return this.parts.filter(part => part instanceof Function.Response);
|
|
102
|
+
}
|
|
103
|
+
getOnlyFunctionResponse() {
|
|
104
|
+
if (this.parts.length === 1 && this.parts[0] instanceof Function.Response) { }
|
|
105
|
+
else
|
|
106
|
+
throw new Error();
|
|
107
|
+
return this.parts[0];
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
User.Instance = Instance;
|
|
111
|
+
})(User = RoleMessage.User || (RoleMessage.User = {}));
|
|
112
|
+
let Developer;
|
|
113
|
+
(function (Developer) {
|
|
114
|
+
function create(parts) {
|
|
115
|
+
return new Instance(parts);
|
|
116
|
+
}
|
|
117
|
+
Developer.create = create;
|
|
118
|
+
Developer.NOMINAL = Symbol();
|
|
119
|
+
class Instance extends RoleMessage.Instance {
|
|
120
|
+
parts;
|
|
121
|
+
constructor(parts) {
|
|
122
|
+
super();
|
|
123
|
+
this.parts = parts;
|
|
124
|
+
}
|
|
125
|
+
getParts() {
|
|
126
|
+
return this.parts;
|
|
127
|
+
}
|
|
128
|
+
getText() {
|
|
129
|
+
return this.parts.map(part => part.text).join('');
|
|
130
|
+
}
|
|
131
|
+
getOnlyText() {
|
|
132
|
+
return this.getText();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
Developer.Instance = Instance;
|
|
136
|
+
})(Developer = RoleMessage.Developer || (RoleMessage.Developer = {}));
|
|
137
|
+
})(RoleMessage || (RoleMessage = {}));
|
|
138
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/compatible/session.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Function } from '#@/function.ts';
|
|
2
|
+
export declare class ToolCallValidator<in out fdm extends Function.Declaration.Map> {
|
|
3
|
+
protected ctx: ToolCallValidator.Context<fdm>;
|
|
4
|
+
constructor(ctx: ToolCallValidator.Context<fdm>);
|
|
5
|
+
validate(toolCalls: Function.Call.From<fdm>[]): void;
|
|
6
|
+
}
|
|
7
|
+
export declare namespace ToolCallValidator {
|
|
8
|
+
interface Context<in out fdm extends Function.Declaration.Map> {
|
|
9
|
+
toolChoice: Function.ToolChoice<fdm>;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Function } from '#@/function.ts';
|
|
2
|
+
import { ResponseInvalid } from '#@/engine.ts';
|
|
3
|
+
export class ToolCallValidator {
|
|
4
|
+
ctx;
|
|
5
|
+
constructor(ctx) {
|
|
6
|
+
this.ctx = ctx;
|
|
7
|
+
}
|
|
8
|
+
validate(toolCalls) {
|
|
9
|
+
Function.Call.validate(toolCalls, this.ctx.toolChoice, new ResponseInvalid('Invalid function call', { cause: toolCalls }));
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=tool-call-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-call-validator.js","sourceRoot":"","sources":["../../src/compatible/tool-call-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,OAAO,iBAAiB;IACG;IAA7B,YAA6B,GAAmC;QAAnC,QAAG,GAAH,GAAG,CAAgC;IAAG,CAAC;IAG7D,QAAQ,CACX,SAAoC;QAEpC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAClB,SAAS,EACT,IAAI,CAAC,GAAG,CAAC,UAAU,EACnB,IAAI,eAAe,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CACrE,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Function } from '#@/function.ts';
|
|
2
|
+
import { OpenAIChatCompletionsCompatibleStream } from '#@/compatible.d/openai-chatcompletions.d/stream.ts';
|
|
3
|
+
import OpenAI from 'openai';
|
|
4
|
+
export declare class AliyunTransport<in out fdm extends Function.Declaration.Map> extends OpenAIChatCompletionsCompatibleStream<fdm> {
|
|
5
|
+
protected getDeltaThoughts(delta: OpenAI.ChatCompletionChunk.Choice.Delta): string;
|
|
6
|
+
}
|
|
7
|
+
export declare namespace AliyunTransport {
|
|
8
|
+
interface ChatCompletionChunkChoiceDelta extends OpenAI.ChatCompletionChunk.Choice.Delta {
|
|
9
|
+
reasoning_content?: string;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Function } from '#@/function.ts';
|
|
2
|
+
import { OpenAIChatCompletionsCompatibleStream } from '#@/compatible.d/openai-chatcompletions.d/stream.ts';
|
|
3
|
+
import OpenAI from 'openai';
|
|
4
|
+
export class AliyunTransport extends OpenAIChatCompletionsCompatibleStream {
|
|
5
|
+
getDeltaThoughts(delta) {
|
|
6
|
+
return delta.reasoning_content ?? '';
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/compatible.d/aliyun/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,qCAAqC,EAAE,MAAM,oDAAoD,CAAC;AAC3G,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B,MAAM,OAAO,eAA6D,SACtE,qCAA0C;IAEvB,gBAAgB,CAAC,KAA8C;QAC9E,OAAQ,KAAwD,CAAC,iBAAiB,IAAI,EAAE,CAAC;IAC7F,CAAC;CAEJ"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { RoleMessage, type Session } from '#@/compatible/session.ts';
|
|
2
|
+
import { Function } from '#@/function.ts';
|
|
3
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
4
|
+
import type { AnthropicToolCodec } from '#@/api-types/anthropic/tool-codec.ts';
|
|
5
|
+
export declare class AnthropicCompatibleMessageCodec<in out fdm extends Function.Declaration.Map> {
|
|
6
|
+
protected ctx: AnthropicCompatibleMessageCodec.Context<fdm>;
|
|
7
|
+
constructor(ctx: AnthropicCompatibleMessageCodec.Context<fdm>);
|
|
8
|
+
convertFromUserMessage(userMessage: RoleMessage.User<fdm>): Anthropic.ContentBlockParam[];
|
|
9
|
+
convertFromAiMessage(aiMessage: RoleMessage.Ai<fdm>): Anthropic.ContentBlockParam[];
|
|
10
|
+
convertFromDeveloperMessage(developerMessage: RoleMessage.Developer): Anthropic.TextBlockParam[];
|
|
11
|
+
convertFromChatMessage(chatMessage: Session.ChatMessage<fdm>): Anthropic.MessageParam;
|
|
12
|
+
convertToAiMessage(raw: Anthropic.ContentBlock[]): AnthropicCompatibleMessageCodec.Message.Ai<fdm>;
|
|
13
|
+
}
|
|
14
|
+
export declare namespace AnthropicCompatibleMessageCodec {
|
|
15
|
+
interface Context<in out fdm extends Function.Declaration.Map> {
|
|
16
|
+
toolCodec: AnthropicToolCodec<fdm>;
|
|
17
|
+
}
|
|
18
|
+
namespace Message {
|
|
19
|
+
type Ai<fdm extends Function.Declaration.Map> = Ai.Instance<fdm>;
|
|
20
|
+
namespace Ai {
|
|
21
|
+
function create<fdm extends Function.Declaration.Map>(parts: RoleMessage.Ai.Part<fdm>[], raw: Anthropic.ContentBlock[]): Ai<fdm>;
|
|
22
|
+
const NOMINAL: unique symbol;
|
|
23
|
+
class Instance<in out fdm extends Function.Declaration.Map> extends RoleMessage.Ai.Instance<fdm> {
|
|
24
|
+
protected raw: Anthropic.ContentBlock[];
|
|
25
|
+
readonly [NOMINAL]: void;
|
|
26
|
+
constructor(parts: RoleMessage.Ai.Part<fdm>[], raw: Anthropic.ContentBlock[]);
|
|
27
|
+
getRaw(): Anthropic.ContentBlock[];
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { RoleMessage } from '#@/compatible/session.ts';
|
|
2
|
+
import { Function } from '#@/function.ts';
|
|
3
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
4
|
+
export class AnthropicCompatibleMessageCodec {
|
|
5
|
+
ctx;
|
|
6
|
+
constructor(ctx) {
|
|
7
|
+
this.ctx = ctx;
|
|
8
|
+
}
|
|
9
|
+
convertFromUserMessage(userMessage) {
|
|
10
|
+
return userMessage.getParts().map(part => {
|
|
11
|
+
if (part instanceof RoleMessage.Part.Text.Instance)
|
|
12
|
+
return {
|
|
13
|
+
type: 'text',
|
|
14
|
+
text: part.text,
|
|
15
|
+
};
|
|
16
|
+
else if (part instanceof Function.Response)
|
|
17
|
+
return this.ctx.toolCodec.convertFromFunctionResponse(part);
|
|
18
|
+
else
|
|
19
|
+
throw new Error();
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
convertFromAiMessage(aiMessage) {
|
|
23
|
+
if (aiMessage instanceof AnthropicCompatibleMessageCodec.Message.Ai.Instance)
|
|
24
|
+
return aiMessage.getRaw();
|
|
25
|
+
else {
|
|
26
|
+
return aiMessage.getParts().map(part => {
|
|
27
|
+
if (part instanceof RoleMessage.Part.Text.Instance)
|
|
28
|
+
return {
|
|
29
|
+
type: 'text',
|
|
30
|
+
text: part.text,
|
|
31
|
+
};
|
|
32
|
+
else if (part instanceof Function.Call)
|
|
33
|
+
return this.ctx.toolCodec.convertFromFunctionCall(part);
|
|
34
|
+
else
|
|
35
|
+
throw new Error();
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
convertFromDeveloperMessage(developerMessage) {
|
|
40
|
+
return developerMessage.getParts().map(part => ({ type: 'text', text: part.text }));
|
|
41
|
+
}
|
|
42
|
+
convertFromChatMessage(chatMessage) {
|
|
43
|
+
if (chatMessage instanceof RoleMessage.User.Instance)
|
|
44
|
+
return { role: 'user', content: this.convertFromUserMessage(chatMessage) };
|
|
45
|
+
else if (chatMessage instanceof RoleMessage.Ai.Instance)
|
|
46
|
+
return { role: 'assistant', content: this.convertFromAiMessage(chatMessage) };
|
|
47
|
+
else
|
|
48
|
+
throw new Error();
|
|
49
|
+
}
|
|
50
|
+
convertToAiMessage(raw) {
|
|
51
|
+
const parts = raw.flatMap((item) => {
|
|
52
|
+
if (item.type === 'text')
|
|
53
|
+
return [RoleMessage.Part.Text.create(item.text)];
|
|
54
|
+
else if (item.type === 'tool_use')
|
|
55
|
+
return [this.ctx.toolCodec.convertToFunctionCall(item)];
|
|
56
|
+
else if (item.type === 'thinking')
|
|
57
|
+
return [];
|
|
58
|
+
else
|
|
59
|
+
throw new Error();
|
|
60
|
+
});
|
|
61
|
+
return AnthropicCompatibleMessageCodec.Message.Ai.create(parts, raw);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
(function (AnthropicCompatibleMessageCodec) {
|
|
65
|
+
let Message;
|
|
66
|
+
(function (Message) {
|
|
67
|
+
let Ai;
|
|
68
|
+
(function (Ai) {
|
|
69
|
+
function create(parts, raw) {
|
|
70
|
+
return new Instance(parts, raw);
|
|
71
|
+
}
|
|
72
|
+
Ai.create = create;
|
|
73
|
+
Ai.NOMINAL = Symbol();
|
|
74
|
+
class Instance extends RoleMessage.Ai.Instance {
|
|
75
|
+
raw;
|
|
76
|
+
constructor(parts, raw) {
|
|
77
|
+
super(parts);
|
|
78
|
+
this.raw = raw;
|
|
79
|
+
}
|
|
80
|
+
getRaw() {
|
|
81
|
+
return this.raw;
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
Ai.Instance = Instance;
|
|
85
|
+
})(Ai = Message.Ai || (Message.Ai = {}));
|
|
86
|
+
})(Message = AnthropicCompatibleMessageCodec.Message || (AnthropicCompatibleMessageCodec.Message = {}));
|
|
87
|
+
})(AnthropicCompatibleMessageCodec || (AnthropicCompatibleMessageCodec = {}));
|
|
88
|
+
//# sourceMappingURL=message-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/compatible.d/anthropic/message-codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type InferenceParams, type ProviderSpec } from '#@/engine.ts';
|
|
2
|
+
import { RoleMessage, type Session } from '#@/compatible/session.ts';
|
|
3
|
+
import { Function } from '#@/function.ts';
|
|
4
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
5
|
+
import { type InferenceContext } from '#@/inference-context.ts';
|
|
6
|
+
import { Throttle } from '#@/throttle.ts';
|
|
7
|
+
import type { AnthropicCompatibleMessageCodec } from '#@/compatible.d/anthropic/message-codec.ts';
|
|
8
|
+
import type { AnthropicBilling } from '#@/api-types/anthropic/billing.ts';
|
|
9
|
+
import type { AnthropicToolCodec } from '#@/api-types/anthropic/tool-codec.ts';
|
|
10
|
+
import type { ToolCallValidator } from '#@/compatible/tool-call-validator.ts';
|
|
11
|
+
export declare class AnthropicCompatibleTransport<in out fdm extends Function.Declaration.Map> {
|
|
12
|
+
protected ctx: AnthropicCompatibleTransport.Context<fdm>;
|
|
13
|
+
protected client: Anthropic;
|
|
14
|
+
constructor(ctx: AnthropicCompatibleTransport.Context<fdm>);
|
|
15
|
+
protected makeParams(session: Session<fdm>): Anthropic.MessageCreateParamsStreaming;
|
|
16
|
+
fetch(wfctx: InferenceContext, session: Session<fdm>, signal?: AbortSignal): Promise<RoleMessage.Ai<fdm>>;
|
|
17
|
+
}
|
|
18
|
+
export declare namespace AnthropicCompatibleTransport {
|
|
19
|
+
interface Context<in out fdm extends Function.Declaration.Map> {
|
|
20
|
+
providerSpec: ProviderSpec;
|
|
21
|
+
inferenceSpec: InferenceParams;
|
|
22
|
+
fdm: fdm;
|
|
23
|
+
throttle: Throttle;
|
|
24
|
+
toolChoice: Function.ToolChoice<fdm>;
|
|
25
|
+
parallelToolCall: boolean;
|
|
26
|
+
messageCodec: AnthropicCompatibleMessageCodec<fdm>;
|
|
27
|
+
toolCodec: AnthropicToolCodec<fdm>;
|
|
28
|
+
billing: AnthropicBilling;
|
|
29
|
+
toolCallValidator: ToolCallValidator<fdm>;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import { ResponseInvalid } from '#@/engine.ts';
|
|
2
|
+
import { RoleMessage } from '#@/compatible/session.ts';
|
|
3
|
+
import { Function } from '#@/function.ts';
|
|
4
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
5
|
+
import {} from '#@/inference-context.ts';
|
|
6
|
+
import { Throttle } from '#@/throttle.ts';
|
|
7
|
+
import { logger } from '#@/telemetry.ts';
|
|
8
|
+
export class AnthropicCompatibleTransport {
|
|
9
|
+
ctx;
|
|
10
|
+
client;
|
|
11
|
+
constructor(ctx) {
|
|
12
|
+
this.ctx = ctx;
|
|
13
|
+
this.client = new Anthropic({
|
|
14
|
+
baseURL: this.ctx.providerSpec.baseUrl,
|
|
15
|
+
apiKey: this.ctx.providerSpec.apiKey,
|
|
16
|
+
fetchOptions: { dispatcher: this.ctx.providerSpec.proxyAgent },
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
makeParams(session) {
|
|
20
|
+
const tools = this.ctx.toolCodec.convertFromFunctionDeclarationMap(this.ctx.fdm);
|
|
21
|
+
return {
|
|
22
|
+
model: this.ctx.inferenceSpec.model,
|
|
23
|
+
stream: true,
|
|
24
|
+
messages: session.chatMessages.map(chatMessage => this.ctx.messageCodec.convertFromChatMessage(chatMessage)),
|
|
25
|
+
system: session.developerMessage && this.ctx.messageCodec.convertFromDeveloperMessage(session.developerMessage),
|
|
26
|
+
tools: tools.length ? tools : undefined,
|
|
27
|
+
tool_choice: tools.length ? this.ctx.toolCodec.convertFromToolChoice(this.ctx.toolChoice, this.ctx.parallelToolCall) : undefined,
|
|
28
|
+
max_tokens: this.ctx.inferenceSpec.maxTokens ?? 64 * 1024,
|
|
29
|
+
...this.ctx.inferenceSpec.additionalOptions,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
async fetch(wfctx, session, signal) {
|
|
33
|
+
const params = this.makeParams(session);
|
|
34
|
+
logger.message.trace(params);
|
|
35
|
+
await this.ctx.throttle.requests(wfctx);
|
|
36
|
+
const stream = this.client.messages.stream(params, { signal });
|
|
37
|
+
let response = null;
|
|
38
|
+
for await (const event of stream) {
|
|
39
|
+
if (event.type === 'message_start') {
|
|
40
|
+
logger.message.trace(event);
|
|
41
|
+
response = structuredClone(event.message);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
if (response) { }
|
|
45
|
+
else
|
|
46
|
+
throw new Error();
|
|
47
|
+
if (event.type === 'message_delta') {
|
|
48
|
+
logger.message.trace(event);
|
|
49
|
+
response.stop_sequence = event.delta.stop_sequence ?? response.stop_sequence;
|
|
50
|
+
response.stop_reason = event.delta.stop_reason ?? response.stop_reason;
|
|
51
|
+
response.usage.input_tokens = event.usage.input_tokens ?? response.usage.input_tokens;
|
|
52
|
+
response.usage.output_tokens = event.usage.output_tokens;
|
|
53
|
+
response.usage.cache_read_input_tokens = event.usage.cache_read_input_tokens ?? response.usage.cache_read_input_tokens;
|
|
54
|
+
response.usage.cache_creation_input_tokens = event.usage.cache_creation_input_tokens ?? response.usage.cache_creation_input_tokens;
|
|
55
|
+
response.usage.server_tool_use = event.usage.server_tool_use ?? response.usage.server_tool_use;
|
|
56
|
+
}
|
|
57
|
+
else if (event.type === 'message_stop') {
|
|
58
|
+
logger.message.trace(event);
|
|
59
|
+
}
|
|
60
|
+
else if (event.type === 'content_block_start') {
|
|
61
|
+
logger.message.trace(event);
|
|
62
|
+
const contentBlock = structuredClone(event.content_block);
|
|
63
|
+
response.content.push(contentBlock);
|
|
64
|
+
if (contentBlock.type === 'tool_use')
|
|
65
|
+
contentBlock.input = '';
|
|
66
|
+
}
|
|
67
|
+
else if (event.type === 'content_block_delta') {
|
|
68
|
+
const contentBlock = response.content[event.index];
|
|
69
|
+
if (event.delta.type === 'text_delta') {
|
|
70
|
+
logger.inference.debug(event.delta.text);
|
|
71
|
+
if (contentBlock?.type === 'text') { }
|
|
72
|
+
else
|
|
73
|
+
throw new Error();
|
|
74
|
+
contentBlock.text += event.delta.text;
|
|
75
|
+
}
|
|
76
|
+
else if (event.delta.type === 'thinking_delta') {
|
|
77
|
+
logger.inference.trace(event.delta.thinking);
|
|
78
|
+
if (contentBlock?.type === 'thinking') { }
|
|
79
|
+
else
|
|
80
|
+
throw new Error();
|
|
81
|
+
contentBlock.thinking += event.delta.thinking;
|
|
82
|
+
}
|
|
83
|
+
else if (event.delta.type === 'signature_delta') {
|
|
84
|
+
if (contentBlock?.type === 'thinking') { }
|
|
85
|
+
else
|
|
86
|
+
throw new Error();
|
|
87
|
+
contentBlock.signature += event.delta.signature;
|
|
88
|
+
}
|
|
89
|
+
else if (event.delta.type === 'input_json_delta') {
|
|
90
|
+
logger.inference.trace(event.delta.partial_json);
|
|
91
|
+
if (contentBlock?.type === 'tool_use') { }
|
|
92
|
+
else
|
|
93
|
+
throw new Error();
|
|
94
|
+
if (typeof contentBlock.input === 'string') { }
|
|
95
|
+
else
|
|
96
|
+
throw new Error();
|
|
97
|
+
contentBlock.input += event.delta.partial_json;
|
|
98
|
+
}
|
|
99
|
+
else
|
|
100
|
+
throw new Error('Unknown type of content block delta', { cause: event.delta });
|
|
101
|
+
}
|
|
102
|
+
else if (event.type === 'content_block_stop') {
|
|
103
|
+
const contentBlock = response.content[event.index];
|
|
104
|
+
if (contentBlock?.type === 'text')
|
|
105
|
+
logger.inference.debug('\n');
|
|
106
|
+
else if (contentBlock?.type === 'thinking')
|
|
107
|
+
logger.inference.trace('\n');
|
|
108
|
+
else if (contentBlock?.type === 'tool_use')
|
|
109
|
+
logger.inference.debug('\n');
|
|
110
|
+
logger.message.trace(event);
|
|
111
|
+
if (contentBlock?.type === 'tool_use') {
|
|
112
|
+
if (typeof contentBlock.input === 'string') { }
|
|
113
|
+
else
|
|
114
|
+
throw new Error();
|
|
115
|
+
logger.message.debug(contentBlock);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else
|
|
119
|
+
throw new Error('Unknown stream event', { cause: event });
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (response) { }
|
|
123
|
+
else
|
|
124
|
+
throw new Error();
|
|
125
|
+
if (response.stop_reason === 'max_tokens')
|
|
126
|
+
throw new ResponseInvalid('Token limit exceeded.', { cause: response });
|
|
127
|
+
if (response.stop_reason === 'end_turn' || response.stop_reason === 'tool_use') { }
|
|
128
|
+
else
|
|
129
|
+
throw new ResponseInvalid('Abnormal stop reason', { cause: response });
|
|
130
|
+
logger.message.debug(response.usage);
|
|
131
|
+
wfctx.cost?.(this.ctx.billing.charge(response.usage));
|
|
132
|
+
const aiMessage = this.ctx.messageCodec.convertToAiMessage(response.content);
|
|
133
|
+
this.ctx.toolCallValidator.validate(aiMessage.getFunctionCalls());
|
|
134
|
+
return aiMessage;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=transport.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/compatible.d/anthropic/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { RoleMessage, type Session } from '#@/compatible/session.ts';
|
|
2
|
+
import { Function } from '#@/function.ts';
|
|
3
|
+
import * as Google from '@google/genai';
|
|
4
|
+
import { type GoogleToolCodec } from '#@/api-types/google/tool-codec.ts';
|
|
5
|
+
export declare class GoogleCompatibleMessageCodec<fdm extends Function.Declaration.Map> {
|
|
6
|
+
protected ctx: GoogleCompatibleMessageCodec.Context<fdm>;
|
|
7
|
+
constructor(ctx: GoogleCompatibleMessageCodec.Context<fdm>);
|
|
8
|
+
convertFromAiMessage(aiMessage: RoleMessage.Ai<fdm>): Google.Content;
|
|
9
|
+
convertFromChatMessages(chatMessages: Session.ChatMessage<fdm>[]): Google.Content[];
|
|
10
|
+
convertFromUserMessage(userMessage: RoleMessage.User<fdm>): Google.Content;
|
|
11
|
+
convertFromDeveloperMessage(developerMessage: RoleMessage.Developer): Google.Content;
|
|
12
|
+
convertToAiMessage(content: Google.Content): GoogleCompatibleMessageCodec.Message.Ai<fdm>;
|
|
13
|
+
}
|
|
14
|
+
export declare namespace GoogleCompatibleMessageCodec {
|
|
15
|
+
interface Context<fdm extends Function.Declaration.Map> {
|
|
16
|
+
toolCodec: GoogleToolCodec<fdm>;
|
|
17
|
+
}
|
|
18
|
+
namespace Message {
|
|
19
|
+
type Ai<fdm extends Function.Declaration.Map> = Ai.Instance<fdm>;
|
|
20
|
+
namespace Ai {
|
|
21
|
+
function create<fdm extends Function.Declaration.Map>(parts: RoleMessage.Ai.Part<fdm>[], raw: Google.Content): Ai<fdm>;
|
|
22
|
+
const NOMINAL: unique symbol;
|
|
23
|
+
class Instance<in out fdm extends Function.Declaration.Map> extends RoleMessage.Ai.Instance<fdm> {
|
|
24
|
+
protected raw: Google.Content;
|
|
25
|
+
readonly [NOMINAL]: void;
|
|
26
|
+
constructor(parts: RoleMessage.Ai.Part<fdm>[], raw: Google.Content);
|
|
27
|
+
getRaw(): Google.Content;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|