@zimtsui/typechat 0.0.97 → 0.0.99
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 +3 -8
- package/README.md +5 -177
- package/assets/verbatim/instruction.md +1 -1
- package/assets/verbatim/response.handlebars +1 -1
- package/build/adaptor.d.ts +9 -9
- package/build/adaptor.js +15 -17
- package/build/adaptor.js.map +1 -1
- package/build/endpoint-spec.d.ts +1 -1
- package/build/endpoint-spec.js +1 -1
- package/build/engine/message.d.ts +75 -0
- package/build/engine/message.js +165 -0
- package/build/engine/message.js.map +1 -0
- package/build/engine/middleware.d.ts +11 -0
- package/build/engine/middleware.js +1 -0
- package/build/engine/middleware.js.map +1 -0
- package/build/engine/parts-validator.d.ts +9 -0
- package/build/engine/parts-validator.js +11 -0
- package/build/engine/parts-validator.js.map +1 -0
- package/build/engine/recoverable.d.ts +13 -0
- package/build/engine/recoverable.js +29 -0
- package/build/engine/recoverable.js.map +1 -0
- package/build/engine/session.d.ts +8 -32
- package/build/engine/session.js +0 -19
- package/build/engine/session.js.map +1 -1
- package/build/engine/structuring-validator.d.ts +15 -0
- package/build/engine/structuring-validator.js +64 -0
- package/build/engine/structuring-validator.js.map +1 -0
- package/build/engine/transport.d.ts +6 -3
- package/build/engine.d.ts +40 -39
- package/build/engine.js +100 -64
- package/build/engine.js.map +1 -1
- package/build/engines/anthropic/billing.js.map +1 -0
- package/build/engines/anthropic/message-codec.d.ts +22 -0
- package/build/engines/anthropic/message-codec.js +79 -0
- package/build/engines/anthropic/message-codec.js.map +1 -0
- package/build/engines/anthropic/message.d.ts +22 -0
- package/build/engines/anthropic/message.js +25 -0
- package/build/engines/anthropic/message.js.map +1 -0
- package/build/{compatible-engine.d/anthropic/choice-codec.d.ts → engines/anthropic/structuring-choice-codec.d.ts} +2 -2
- package/build/engines/anthropic/structuring-choice-codec.js +23 -0
- package/build/engines/anthropic/structuring-choice-codec.js.map +1 -0
- package/build/{api-types → engines}/anthropic/tool-codec.d.ts +5 -4
- package/build/{api-types → engines}/anthropic/tool-codec.js +16 -14
- package/build/engines/anthropic/tool-codec.js.map +1 -0
- package/build/engines/anthropic/transport.d.ts +37 -0
- package/build/{compatible-engine.d → engines}/anthropic/transport.js +8 -12
- package/build/engines/anthropic/transport.js.map +1 -0
- package/build/engines/anthropic.d.ts +22 -0
- package/build/engines/anthropic.js +46 -0
- package/build/engines/anthropic.js.map +1 -0
- package/build/engines/google/billing.js.map +1 -0
- package/build/engines/google/message-codec.d.ts +24 -0
- package/build/engines/google/message-codec.js +113 -0
- package/build/engines/google/message-codec.js.map +1 -0
- package/build/engines/google/message.d.ts +37 -0
- package/build/engines/google/message.js +58 -0
- package/build/engines/google/message.js.map +1 -0
- package/build/engines/google/restful-request.js.map +1 -0
- package/build/{compatible-engine.d/google/choice-codec.d.ts → engines/google/structuring-choice-codec.d.ts} +2 -2
- package/build/engines/google/structuring-choice-codec.js +23 -0
- package/build/engines/google/structuring-choice-codec.js.map +1 -0
- package/build/{api-types → engines}/google/tool-codec.d.ts +5 -4
- package/build/{api-types → engines}/google/tool-codec.js +15 -13
- package/build/engines/google/tool-codec.js.map +1 -0
- package/build/{native-engines.d → engines}/google/transport.d.ts +13 -14
- package/build/{native-engines.d → engines}/google/transport.js +18 -13
- package/build/engines/google/transport.js.map +1 -0
- package/build/engines/google.d.ts +41 -0
- package/build/engines/google.js +151 -0
- package/build/engines/google.js.map +1 -0
- package/build/engines/openai-chatcompletions/billing.js.map +1 -0
- package/build/engines/openai-chatcompletions/message-codec.d.ts +22 -0
- package/build/engines/openai-chatcompletions/message-codec.js +80 -0
- package/build/engines/openai-chatcompletions/message-codec.js.map +1 -0
- package/build/{compatible-engine.d/openai-chatcompletions/choice-codec.d.ts → engines/openai-chatcompletions/structuring-choice-codec.d.ts} +2 -2
- package/build/engines/openai-chatcompletions/structuring-choice-codec.js +22 -0
- package/build/engines/openai-chatcompletions/structuring-choice-codec.js.map +1 -0
- package/build/engines/openai-chatcompletions/tool-codec.d.ts +17 -0
- package/build/{api-types → engines}/openai-chatcompletions/tool-codec.js +19 -17
- package/build/engines/openai-chatcompletions/tool-codec.js.map +1 -0
- package/build/{compatible-engine.d → engines}/openai-chatcompletions/transport.d.ts +13 -15
- package/build/{compatible-engine.d → engines}/openai-chatcompletions/transport.js +8 -18
- package/build/engines/openai-chatcompletions/transport.js.map +1 -0
- package/build/engines/openai-chatcompletions.d.ts +22 -0
- package/build/engines/openai-chatcompletions.js +48 -0
- package/build/engines/openai-chatcompletions.js.map +1 -0
- package/build/engines/openai-responses/billing.js.map +1 -0
- package/build/engines/openai-responses/message-codec.d.ts +24 -0
- package/build/{compatible-engine.d → engines}/openai-responses/message-codec.js +55 -51
- package/build/engines/openai-responses/message-codec.js.map +1 -0
- package/build/engines/openai-responses/message.d.ts +25 -0
- package/build/engines/openai-responses/message.js +43 -0
- package/build/engines/openai-responses/message.js.map +1 -0
- package/build/engines/openai-responses/structuring-choice-codec.d.ts +3 -0
- package/build/engines/openai-responses/structuring-choice-codec.js +22 -0
- package/build/engines/openai-responses/structuring-choice-codec.js.map +1 -0
- package/build/engines/openai-responses/structuring-validator.d.ts +12 -0
- package/build/engines/openai-responses/structuring-validator.js +64 -0
- package/build/engines/openai-responses/structuring-validator.js.map +1 -0
- package/build/engines/openai-responses/tool-codec.d.ts +17 -0
- package/build/{api-types → engines}/openai-responses/tool-codec.js +19 -17
- package/build/engines/openai-responses/tool-codec.js.map +1 -0
- package/build/{native-engines.d → engines}/openai-responses/tool.d.ts +1 -3
- package/build/{native-engines.d → engines}/openai-responses/tool.js +3 -3
- package/build/engines/openai-responses/tool.js.map +1 -0
- package/build/{compatible-engine.d → engines}/openai-responses/transport.d.ts +16 -12
- package/build/{native-engines.d → engines}/openai-responses/transport.js +11 -9
- package/build/engines/openai-responses/transport.js.map +1 -0
- package/build/engines/openai-responses.d.ts +41 -0
- package/build/engines/openai-responses.js +134 -0
- package/build/engines/openai-responses.js.map +1 -0
- package/build/exports.d.ts +5 -5
- package/build/exports.js +5 -5
- package/build/exports.js.map +1 -1
- package/build/function.d.ts +7 -7
- package/build/function.js +19 -19
- package/build/function.js.map +1 -1
- package/build/repetition.d.ts +2 -2
- package/build/repetition.js +21 -20
- package/build/repetition.js.map +1 -1
- package/build/structuring-choice.d.ts +15 -0
- package/build/structuring-choice.js +18 -0
- package/build/structuring-choice.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/verbatim/codec/declarations.js +0 -2
- package/build/verbatim/codec/declarations.js.map +1 -1
- package/build/verbatim/codec/quotation.js +0 -3
- package/build/verbatim/codec/quotation.js.map +1 -1
- package/build/verbatim/codec/request.js +4 -4
- package/build/verbatim/codec/request.js.map +1 -1
- package/build/verbatim/codec/response.js +0 -3
- package/build/verbatim/codec/response.js.map +1 -1
- package/package.json +2 -4
- package/build/api-types/anthropic/billing.js.map +0 -1
- package/build/api-types/anthropic/tool-codec.js.map +0 -1
- package/build/api-types/google/billing.js.map +0 -1
- package/build/api-types/google/restful-request.js.map +0 -1
- package/build/api-types/google/tool-codec.js.map +0 -1
- package/build/api-types/openai-chatcompletions/billing.js.map +0 -1
- package/build/api-types/openai-chatcompletions/tool-codec.d.ts +0 -16
- package/build/api-types/openai-chatcompletions/tool-codec.js.map +0 -1
- package/build/api-types/openai-responses/billing.js.map +0 -1
- package/build/api-types/openai-responses/tool-codec.d.ts +0 -16
- package/build/api-types/openai-responses/tool-codec.js.map +0 -1
- package/build/compatible-engine/session.d.ts +0 -56
- package/build/compatible-engine/session.js +0 -85
- package/build/compatible-engine/session.js.map +0 -1
- package/build/compatible-engine/structuring.d.ts +0 -36
- package/build/compatible-engine/structuring.js +0 -34
- package/build/compatible-engine/structuring.js.map +0 -1
- package/build/compatible-engine/validation.d.ts +0 -28
- package/build/compatible-engine/validation.js +0 -104
- package/build/compatible-engine/validation.js.map +0 -1
- package/build/compatible-engine.d/agentloop.d.ts +0 -12
- package/build/compatible-engine.d/agentloop.js +0 -52
- package/build/compatible-engine.d/agentloop.js.map +0 -1
- package/build/compatible-engine.d/anthropic/choice-codec.js +0 -27
- package/build/compatible-engine.d/anthropic/choice-codec.js.map +0 -1
- package/build/compatible-engine.d/anthropic/message-codec.d.ts +0 -34
- package/build/compatible-engine.d/anthropic/message-codec.js +0 -85
- package/build/compatible-engine.d/anthropic/message-codec.js.map +0 -1
- package/build/compatible-engine.d/anthropic/transport.d.ts +0 -38
- package/build/compatible-engine.d/anthropic/transport.js.map +0 -1
- package/build/compatible-engine.d/anthropic.d.ts +0 -25
- package/build/compatible-engine.d/anthropic.js +0 -47
- package/build/compatible-engine.d/anthropic.js.map +0 -1
- package/build/compatible-engine.d/google/choice-codec.js +0 -27
- package/build/compatible-engine.d/google/choice-codec.js.map +0 -1
- package/build/compatible-engine.d/google/message-codec.d.ts +0 -34
- package/build/compatible-engine.d/google/message-codec.js +0 -95
- package/build/compatible-engine.d/google/message-codec.js.map +0 -1
- package/build/compatible-engine.d/google/transport.d.ts +0 -35
- package/build/compatible-engine.d/google/transport.js +0 -97
- package/build/compatible-engine.d/google/transport.js.map +0 -1
- package/build/compatible-engine.d/google.d.ts +0 -25
- package/build/compatible-engine.d/google.js +0 -64
- package/build/compatible-engine.d/google.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js +0 -31
- package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +0 -22
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +0 -68
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions.d.ts +0 -25
- package/build/compatible-engine.d/openai-chatcompletions.js +0 -49
- package/build/compatible-engine.d/openai-chatcompletions.js.map +0 -1
- package/build/compatible-engine.d/openai-responses/choice-codec.d.ts +0 -5
- package/build/compatible-engine.d/openai-responses/choice-codec.js +0 -30
- package/build/compatible-engine.d/openai-responses/choice-codec.js.map +0 -1
- package/build/compatible-engine.d/openai-responses/message-codec.d.ts +0 -36
- package/build/compatible-engine.d/openai-responses/message-codec.js.map +0 -1
- package/build/compatible-engine.d/openai-responses/transport.js +0 -91
- package/build/compatible-engine.d/openai-responses/transport.js.map +0 -1
- package/build/compatible-engine.d/openai-responses.d.ts +0 -25
- package/build/compatible-engine.d/openai-responses.js +0 -47
- package/build/compatible-engine.d/openai-responses.js.map +0 -1
- package/build/compatible-engine.d.ts +0 -26
- package/build/compatible-engine.js +0 -34
- package/build/compatible-engine.js.map +0 -1
- package/build/engine/validation.d.ts +0 -6
- package/build/engine/validation.js +0 -1
- package/build/engine/validation.js.map +0 -1
- package/build/native-engines.d/google/message-codec.d.ts +0 -26
- package/build/native-engines.d/google/message-codec.js +0 -70
- package/build/native-engines.d/google/message-codec.js.map +0 -1
- package/build/native-engines.d/google/session.d.ts +0 -58
- package/build/native-engines.d/google/session.js +0 -101
- package/build/native-engines.d/google/session.js.map +0 -1
- package/build/native-engines.d/google/transport.js.map +0 -1
- package/build/native-engines.d/google/validation.d.ts +0 -28
- package/build/native-engines.d/google/validation.js +0 -26
- package/build/native-engines.d/google/validation.js.map +0 -1
- package/build/native-engines.d/google.d/agentloop.d.ts +0 -12
- package/build/native-engines.d/google.d/agentloop.js +0 -57
- package/build/native-engines.d/google.d/agentloop.js.map +0 -1
- package/build/native-engines.d/google.d/exports.d.ts +0 -2
- package/build/native-engines.d/google.d/exports.js +0 -3
- package/build/native-engines.d/google.d/exports.js.map +0 -1
- package/build/native-engines.d/google.d.ts +0 -43
- package/build/native-engines.d/google.js +0 -100
- package/build/native-engines.d/google.js.map +0 -1
- package/build/native-engines.d/openai-responses/choice-codec.d.ts +0 -5
- package/build/native-engines.d/openai-responses/choice-codec.js +0 -30
- package/build/native-engines.d/openai-responses/choice-codec.js.map +0 -1
- package/build/native-engines.d/openai-responses/message-codec.d.ts +0 -25
- package/build/native-engines.d/openai-responses/message-codec.js +0 -99
- package/build/native-engines.d/openai-responses/message-codec.js.map +0 -1
- package/build/native-engines.d/openai-responses/session.d.ts +0 -61
- package/build/native-engines.d/openai-responses/session.js +0 -86
- package/build/native-engines.d/openai-responses/session.js.map +0 -1
- package/build/native-engines.d/openai-responses/structuring.d.ts +0 -19
- package/build/native-engines.d/openai-responses/structuring.js +0 -19
- package/build/native-engines.d/openai-responses/structuring.js.map +0 -1
- package/build/native-engines.d/openai-responses/tool.js.map +0 -1
- package/build/native-engines.d/openai-responses/transport.d.ts +0 -40
- package/build/native-engines.d/openai-responses/transport.js.map +0 -1
- package/build/native-engines.d/openai-responses/validation.d.ts +0 -28
- package/build/native-engines.d/openai-responses/validation.js +0 -101
- package/build/native-engines.d/openai-responses/validation.js.map +0 -1
- package/build/native-engines.d/openai-responses.d/agentloop.d.ts +0 -12
- package/build/native-engines.d/openai-responses.d/agentloop.js +0 -61
- package/build/native-engines.d/openai-responses.d/agentloop.js.map +0 -1
- package/build/native-engines.d/openai-responses.d/exports.d.ts +0 -2
- package/build/native-engines.d/openai-responses.d/exports.js +0 -3
- package/build/native-engines.d/openai-responses.d/exports.js.map +0 -1
- package/build/native-engines.d/openai-responses.d.ts +0 -45
- package/build/native-engines.d/openai-responses.js +0 -82
- package/build/native-engines.d/openai-responses.js.map +0 -1
- /package/build/{api-types → engines}/anthropic/billing.d.ts +0 -0
- /package/build/{api-types → engines}/anthropic/billing.js +0 -0
- /package/build/{api-types → engines}/google/billing.d.ts +0 -0
- /package/build/{api-types → engines}/google/billing.js +0 -0
- /package/build/{api-types → engines}/google/restful-request.d.ts +0 -0
- /package/build/{api-types → engines}/google/restful-request.js +0 -0
- /package/build/{api-types → engines}/openai-chatcompletions/billing.d.ts +0 -0
- /package/build/{api-types → engines}/openai-chatcompletions/billing.js +0 -0
- /package/build/{api-types → engines}/openai-responses/billing.d.ts +0 -0
- /package/build/{api-types → engines}/openai-responses/billing.js +0 -0
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { RoleMessage } from "./message.js";
|
|
2
|
+
import { Engine } from "../../engine.js";
|
|
3
|
+
import { Function } from "../../function.js";
|
|
4
|
+
import * as Google from '@google/genai';
|
|
5
|
+
import * as VerbatimCodec from "../../verbatim/codec.js";
|
|
6
|
+
import { Media } from "../../media.js";
|
|
7
|
+
export class MessageCodec {
|
|
8
|
+
toolCodec;
|
|
9
|
+
vdm;
|
|
10
|
+
codeExecution;
|
|
11
|
+
constructor(options) {
|
|
12
|
+
this.toolCodec = options.toolCodec;
|
|
13
|
+
this.vdm = options.vdm;
|
|
14
|
+
this.codeExecution = options.codeExecution;
|
|
15
|
+
}
|
|
16
|
+
encodeAiMessage(aiMessage) {
|
|
17
|
+
if (aiMessage instanceof RoleMessage.Ai) {
|
|
18
|
+
const nativeAiMessage = aiMessage;
|
|
19
|
+
return nativeAiMessage.getRaw();
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
const apiParts = [];
|
|
23
|
+
for (const part of aiMessage.getParts()) {
|
|
24
|
+
if (part instanceof RoleMessage.Ai.Part.Text) {
|
|
25
|
+
const textPart = part;
|
|
26
|
+
apiParts.push(Google.createPartFromText(textPart.text));
|
|
27
|
+
}
|
|
28
|
+
else if (part instanceof Function.Call) {
|
|
29
|
+
const fcall = part;
|
|
30
|
+
if (fcall.args instanceof Object) { }
|
|
31
|
+
else
|
|
32
|
+
throw new Error();
|
|
33
|
+
apiParts.push(Google.createPartFromFunctionCall(fcall.name, fcall.args));
|
|
34
|
+
}
|
|
35
|
+
else
|
|
36
|
+
throw new Error('Unknown AI message part type', { cause: part });
|
|
37
|
+
}
|
|
38
|
+
return Google.createModelContent(apiParts);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
encodeChatMessages(chatMessages) {
|
|
42
|
+
return chatMessages.map(chatMessage => {
|
|
43
|
+
if (chatMessage instanceof Engine.RoleMessage.User) {
|
|
44
|
+
const userMessage = chatMessage;
|
|
45
|
+
return this.encodeUserMessage(userMessage);
|
|
46
|
+
}
|
|
47
|
+
else if (chatMessage instanceof Engine.RoleMessage.Ai) {
|
|
48
|
+
const aiMessage = chatMessage;
|
|
49
|
+
return this.encodeAiMessage(aiMessage);
|
|
50
|
+
}
|
|
51
|
+
else
|
|
52
|
+
throw new Error();
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
encodeUserMessage(userMessage) {
|
|
56
|
+
const apiParts = [];
|
|
57
|
+
for (const part of userMessage.getParts()) {
|
|
58
|
+
if (part instanceof Engine.RoleMessage.User.Part.Text)
|
|
59
|
+
apiParts.push(Google.createPartFromText(part.text));
|
|
60
|
+
else if (part instanceof Function.Response) {
|
|
61
|
+
const fres = part;
|
|
62
|
+
apiParts.push(this.toolCodec.encodeFunctionResponse(fres));
|
|
63
|
+
}
|
|
64
|
+
else if (part instanceof Media.Pdf)
|
|
65
|
+
apiParts.push(Google.createPartFromBase64(part.base64, `${part.mimeType}`, Google.PartMediaResolutionLevel.MEDIA_RESOLUTION_MEDIUM));
|
|
66
|
+
else
|
|
67
|
+
throw new Error('Unknown user message part type', { cause: part });
|
|
68
|
+
}
|
|
69
|
+
;
|
|
70
|
+
return Google.createUserContent(apiParts);
|
|
71
|
+
}
|
|
72
|
+
encodeDeveloperMessage(developerMessage) {
|
|
73
|
+
const parts = developerMessage.getOnlyTextParts().map(part => Google.createPartFromText(part.text));
|
|
74
|
+
return { parts };
|
|
75
|
+
}
|
|
76
|
+
decodeAiMessage(content) {
|
|
77
|
+
if (content.parts) { }
|
|
78
|
+
else
|
|
79
|
+
throw new Error();
|
|
80
|
+
const parts = [];
|
|
81
|
+
for (const part of content.parts) {
|
|
82
|
+
if (part.text) {
|
|
83
|
+
const vreqs = VerbatimCodec.Request.decode(part.text, this.vdm);
|
|
84
|
+
parts.push(new RoleMessage.Ai.Part.Text(part.text, vreqs));
|
|
85
|
+
}
|
|
86
|
+
if (part.functionCall)
|
|
87
|
+
parts.push(this.toolCodec.decodeFunctionCall(part.functionCall));
|
|
88
|
+
if (part.executableCode) {
|
|
89
|
+
if (this.codeExecution) { }
|
|
90
|
+
else
|
|
91
|
+
throw new SyntaxError('Unexpected code execution', { cause: content });
|
|
92
|
+
if (part.executableCode.code) { }
|
|
93
|
+
else
|
|
94
|
+
throw new Error();
|
|
95
|
+
if (part.executableCode.language) { }
|
|
96
|
+
else
|
|
97
|
+
throw new Error();
|
|
98
|
+
parts.push(new RoleMessage.Ai.Part.ExecutableCode(part.executableCode.code, part.executableCode.language === Google.Language.LANGUAGE_UNSPECIFIED ? undefined : part.executableCode.language));
|
|
99
|
+
}
|
|
100
|
+
if (part.codeExecutionResult) {
|
|
101
|
+
if (this.codeExecution) { }
|
|
102
|
+
else
|
|
103
|
+
throw new SyntaxError('Unexpected code execution result', { cause: content });
|
|
104
|
+
if (part.codeExecutionResult.outcome) { }
|
|
105
|
+
else
|
|
106
|
+
throw new Error();
|
|
107
|
+
parts.push(new RoleMessage.Ai.Part.CodeExecutionResult(part.codeExecutionResult.outcome, part.codeExecutionResult.output));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return new RoleMessage.Ai(parts, content);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=message-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/engines/google/message-codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Function } from '../../function.ts';
|
|
2
|
+
import * as Google from '@google/genai';
|
|
3
|
+
import { Verbatim } from '../../verbatim.ts';
|
|
4
|
+
import { Engine } from '../../engine.ts';
|
|
5
|
+
declare const NOMINAL: unique symbol;
|
|
6
|
+
export declare namespace RoleMessage {
|
|
7
|
+
class Ai<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> extends Engine.RoleMessage.Ai<fdu, vdu> {
|
|
8
|
+
protected raw: Google.Content;
|
|
9
|
+
protected [NOMINAL]: never;
|
|
10
|
+
constructor(parts: unknown[], raw: Google.Content);
|
|
11
|
+
getRaw(): Google.Content;
|
|
12
|
+
allChat(): boolean;
|
|
13
|
+
static encodeExecutableCodePart(part: RoleMessage.Ai.Part.ExecutableCode): string;
|
|
14
|
+
static encodeCodeExecutionResultPart(part: RoleMessage.Ai.Part.CodeExecutionResult): string;
|
|
15
|
+
}
|
|
16
|
+
namespace Ai {
|
|
17
|
+
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Ai<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
18
|
+
namespace Part {
|
|
19
|
+
export import Text = Engine.RoleMessage.Ai.Part.Text;
|
|
20
|
+
class ExecutableCode {
|
|
21
|
+
code: string;
|
|
22
|
+
language?: string | undefined;
|
|
23
|
+
protected [NOMINAL]: never;
|
|
24
|
+
constructor(code: string, language?: string | undefined);
|
|
25
|
+
}
|
|
26
|
+
class CodeExecutionResult {
|
|
27
|
+
outcome: string;
|
|
28
|
+
output?: string | undefined;
|
|
29
|
+
protected [NOMINAL]: never;
|
|
30
|
+
constructor(outcome: string, output?: string | undefined);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export import User = Engine.RoleMessage.User;
|
|
35
|
+
export import Developer = Engine.RoleMessage.Developer;
|
|
36
|
+
}
|
|
37
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Engine } from "../../engine.js";
|
|
2
|
+
const NOMINAL = Symbol();
|
|
3
|
+
export var RoleMessage;
|
|
4
|
+
(function (RoleMessage) {
|
|
5
|
+
class Ai extends Engine.RoleMessage.Ai {
|
|
6
|
+
raw;
|
|
7
|
+
constructor(parts, raw) {
|
|
8
|
+
super(parts);
|
|
9
|
+
this.raw = raw;
|
|
10
|
+
}
|
|
11
|
+
getRaw() {
|
|
12
|
+
return this.raw;
|
|
13
|
+
}
|
|
14
|
+
allChat() {
|
|
15
|
+
return this.parts.every(part => part instanceof RoleMessage.Ai.Part.Text && !part.vreqs.length ||
|
|
16
|
+
part instanceof RoleMessage.Ai.Part.ExecutableCode ||
|
|
17
|
+
part instanceof RoleMessage.Ai.Part.CodeExecutionResult);
|
|
18
|
+
}
|
|
19
|
+
static encodeExecutableCodePart(part) {
|
|
20
|
+
return RoleMessage.Ai.Part.Text.paragraph('```' + (part.language ?? '') + '\n' + part.code + '\n```').text;
|
|
21
|
+
}
|
|
22
|
+
static encodeCodeExecutionResultPart(part) {
|
|
23
|
+
const textParts = [];
|
|
24
|
+
if (part.output)
|
|
25
|
+
textParts.push(RoleMessage.Ai.Part.Text.paragraph('```\n' + part.output + '\n```'));
|
|
26
|
+
textParts.push(RoleMessage.Ai.Part.Text.paragraph(part.outcome));
|
|
27
|
+
return textParts.map(part => part.text).join('');
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
RoleMessage.Ai = Ai;
|
|
31
|
+
(function (Ai) {
|
|
32
|
+
let Part;
|
|
33
|
+
(function (Part) {
|
|
34
|
+
Part.Text = Engine.RoleMessage.Ai.Part.Text;
|
|
35
|
+
class ExecutableCode {
|
|
36
|
+
code;
|
|
37
|
+
language;
|
|
38
|
+
constructor(code, language) {
|
|
39
|
+
this.code = code;
|
|
40
|
+
this.language = language;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
Part.ExecutableCode = ExecutableCode;
|
|
44
|
+
class CodeExecutionResult {
|
|
45
|
+
outcome;
|
|
46
|
+
output;
|
|
47
|
+
constructor(outcome, output) {
|
|
48
|
+
this.outcome = outcome;
|
|
49
|
+
this.output = output;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
Part.CodeExecutionResult = CodeExecutionResult;
|
|
53
|
+
})(Part = Ai.Part || (Ai.Part = {}));
|
|
54
|
+
})(Ai = RoleMessage.Ai || (RoleMessage.Ai = {}));
|
|
55
|
+
RoleMessage.User = Engine.RoleMessage.User;
|
|
56
|
+
RoleMessage.Developer = Engine.RoleMessage.Developer;
|
|
57
|
+
})(RoleMessage || (RoleMessage = {}));
|
|
58
|
+
//# sourceMappingURL=message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/engines/google/message.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAGzB,MAAM,KAAW,WAAW,CAkE3B;AAlED,WAAiB,WAAW;IAExB,MAAa,EAGX,SAAQ,MAAM,CAAC,WAAW,CAAC,EAAY;QAIvB;QAFd,YACI,KAAgB,EACN,GAAmB;YAE7B,KAAK,CAAC,KAAK,CAAC,CAAC;YAFH,QAAG,GAAH,GAAG,CAAgB;QAGjC,CAAC;QAEM,MAAM;YACT,OAAO,IAAI,CAAC,GAAG,CAAC;QACpB,CAAC;QACe,OAAO;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CACnB,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;gBAClE,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc;gBAClD,IAAI,YAAY,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAC9D,CAAC;QACN,CAAC;QACM,MAAM,CAAC,wBAAwB,CAAC,IAAwC;YAC3E,OAAO,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CACrC,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,OAAO,CAC7D,CAAC,IAAI,CAAC;QACX,CAAC;QACM,MAAM,CAAC,6BAA6B,CAAC,IAA6C;YACrF,MAAM,SAAS,GAAsC,EAAE,CAAC;YACxD,IAAI,IAAI,CAAC,MAAM;gBAAE,SAAS,CAAC,IAAI,CAC3B,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAC9B,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,OAAO,CAClC,CACJ,CAAC;YACF,SAAS,CAAC,IAAI,CACV,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CACnD,CAAC;YACF,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;KACJ;IAvCY,cAAE,KAuCd,CAAA;IACD,WAAiB,EAAE;QAMf,IAAiB,IAAI,CAapB;QAbD,WAAiB,IAAI;YAEH,SAAI,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YAErD,MAAa,cAAc;gBAEG;gBAAqB;gBAA/C,YAA0B,IAAY,EAAS,QAAiB;oBAAtC,SAAI,GAAJ,IAAI,CAAQ;oBAAS,aAAQ,GAAR,QAAQ,CAAS;gBAAG,CAAC;aACvE;YAHY,mBAAc,iBAG1B,CAAA;YAED,MAAa,mBAAmB;gBAEF;gBAAwB;gBAAlD,YAA0B,OAAe,EAAS,MAAe;oBAAvC,YAAO,GAAP,OAAO,CAAQ;oBAAS,WAAM,GAAN,MAAM,CAAS;gBAAG,CAAC;aACxE;YAHY,wBAAmB,sBAG/B,CAAA;QACL,CAAC,EAbgB,IAAI,GAAJ,OAAI,KAAJ,OAAI,QAapB;IACL,CAAC,EApBgB,EAAE,GAAF,cAAE,KAAF,cAAE,QAoBlB;IAEa,gBAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,qBAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;AAC3D,CAAC,EAlEgB,WAAW,KAAX,WAAW,QAkE3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restful-request.js","sourceRoot":"","sources":["../../../src/engines/google/restful-request.ts"],"names":[],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Structuring } from '../../compatible-engine/structuring.ts';
|
|
2
1
|
import type { Function } from '../../function.ts';
|
|
3
2
|
import type { Verbatim } from '../../verbatim.ts';
|
|
4
3
|
import * as Google from '@google/genai';
|
|
5
|
-
|
|
4
|
+
import { StructuringChoice } from '../../structuring-choice.ts';
|
|
5
|
+
export declare function encode<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto>(structuringChoice: StructuringChoice): Google.FunctionCallingConfig;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as Google from '@google/genai';
|
|
2
|
+
import { StructuringChoice } from "../../structuring-choice.js";
|
|
3
|
+
export function encode(structuringChoice) {
|
|
4
|
+
if (structuringChoice === StructuringChoice.NONE)
|
|
5
|
+
return { mode: Google.FunctionCallingConfigMode.NONE };
|
|
6
|
+
else if (structuringChoice === StructuringChoice.REQUIRED)
|
|
7
|
+
return { mode: Google.FunctionCallingConfigMode.AUTO };
|
|
8
|
+
else if (structuringChoice === StructuringChoice.ANYONE)
|
|
9
|
+
return { mode: Google.FunctionCallingConfigMode.AUTO };
|
|
10
|
+
else if (structuringChoice === StructuringChoice.AUTO)
|
|
11
|
+
return { mode: Google.FunctionCallingConfigMode.AUTO };
|
|
12
|
+
else if (structuringChoice === StructuringChoice.TCall.REQUIRED)
|
|
13
|
+
return { mode: Google.FunctionCallingConfigMode.ANY };
|
|
14
|
+
else if (structuringChoice === StructuringChoice.TCall.ANYONE)
|
|
15
|
+
return { mode: Google.FunctionCallingConfigMode.ANY };
|
|
16
|
+
else if (structuringChoice === StructuringChoice.VRequest.REQUIRED)
|
|
17
|
+
return { mode: Google.FunctionCallingConfigMode.NONE };
|
|
18
|
+
else if (structuringChoice === StructuringChoice.VRequest.ANYONE)
|
|
19
|
+
return { mode: Google.FunctionCallingConfigMode.NONE };
|
|
20
|
+
else
|
|
21
|
+
throw new Error('Invalid structuring choice');
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=structuring-choice-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structuring-choice-codec.js","sourceRoot":"","sources":["../../../src/engines/google/structuring-choice-codec.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAGhE,MAAM,UAAU,MAAM,CAIlB,iBAAoC;IAGpC,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SACpG,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SAC7G,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SAC3G,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SAEzG,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC;SAClH,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,CAAC;SAEhH,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SACtH,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;;QAEpH,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -2,12 +2,13 @@ import { Function } from '../../function.ts';
|
|
|
2
2
|
import * as Google from '@google/genai';
|
|
3
3
|
export declare class ToolCodec<in out fdm extends Function.Decl.Map.Proto> {
|
|
4
4
|
protected fdm: fdm;
|
|
5
|
+
protected apiFds: Google.FunctionDeclaration[];
|
|
5
6
|
constructor(options: ToolCodec.Options<fdm>);
|
|
6
|
-
encodeFunctionCall(
|
|
7
|
-
encodeFunctionDeclarationMap(
|
|
8
|
-
protected encodeFunctionDeclarationEntry(fdentry: Function.Decl.Entry.
|
|
7
|
+
encodeFunctionCall(fcall: Function.Call.From<fdm>): Google.FunctionCall;
|
|
8
|
+
encodeFunctionDeclarationMap(): Google.FunctionDeclaration[];
|
|
9
|
+
protected static encodeFunctionDeclarationEntry<fdu extends Function.Decl.Proto>(fdentry: Function.Decl.Entry.Of<fdu>): Google.FunctionDeclaration;
|
|
9
10
|
decodeFunctionCall(googlefc: Google.FunctionCall): Function.Call.From<fdm>;
|
|
10
|
-
encodeFunctionResponse(
|
|
11
|
+
encodeFunctionResponse(fres: Function.Response.From<fdm>): Google.Part;
|
|
11
12
|
}
|
|
12
13
|
export declare namespace ToolCodec {
|
|
13
14
|
interface Options<in out fdm extends Function.Decl.Map.Proto> {
|
|
@@ -2,21 +2,23 @@ import { Function } from "../../function.js";
|
|
|
2
2
|
import { Parse, ParseError } from 'typebox/schema';
|
|
3
3
|
export class ToolCodec {
|
|
4
4
|
fdm;
|
|
5
|
+
apiFds;
|
|
5
6
|
constructor(options) {
|
|
6
7
|
this.fdm = options.fdm;
|
|
8
|
+
const fdentries = Object.entries(this.fdm);
|
|
9
|
+
this.apiFds = fdentries.map(fdentry => ToolCodec.encodeFunctionDeclarationEntry(fdentry));
|
|
7
10
|
}
|
|
8
|
-
encodeFunctionCall(
|
|
11
|
+
encodeFunctionCall(fcall) {
|
|
9
12
|
return {
|
|
10
|
-
id:
|
|
11
|
-
name:
|
|
12
|
-
args:
|
|
13
|
+
id: fcall.id,
|
|
14
|
+
name: fcall.name,
|
|
15
|
+
args: fcall.args,
|
|
13
16
|
};
|
|
14
17
|
}
|
|
15
|
-
encodeFunctionDeclarationMap(
|
|
16
|
-
|
|
17
|
-
return fdentries.map(fdentry => this.encodeFunctionDeclarationEntry(fdentry));
|
|
18
|
+
encodeFunctionDeclarationMap() {
|
|
19
|
+
return this.apiFds.slice();
|
|
18
20
|
}
|
|
19
|
-
encodeFunctionDeclarationEntry(fdentry) {
|
|
21
|
+
static encodeFunctionDeclarationEntry(fdentry) {
|
|
20
22
|
return {
|
|
21
23
|
name: fdentry[0],
|
|
22
24
|
description: fdentry[1].description,
|
|
@@ -46,14 +48,14 @@ export class ToolCodec {
|
|
|
46
48
|
args: googlefc.args,
|
|
47
49
|
});
|
|
48
50
|
}
|
|
49
|
-
encodeFunctionResponse(
|
|
50
|
-
if (
|
|
51
|
+
encodeFunctionResponse(fres) {
|
|
52
|
+
if (fres instanceof Function.Response.Successful)
|
|
51
53
|
return {
|
|
52
|
-
functionResponse: { id:
|
|
54
|
+
functionResponse: { id: fres.id, name: fres.name, response: { output: fres.text } },
|
|
53
55
|
};
|
|
54
|
-
else if (
|
|
56
|
+
else if (fres instanceof Function.Response.Failed)
|
|
55
57
|
return {
|
|
56
|
-
functionResponse: { id:
|
|
58
|
+
functionResponse: { id: fres.id, name: fres.name, response: { error: fres.error } },
|
|
57
59
|
};
|
|
58
60
|
else
|
|
59
61
|
throw new Error();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-codec.js","sourceRoot":"","sources":["../../../src/engines/google/tool-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAInD,MAAM,OAAO,SAAS;IACR,GAAG,CAAM;IACT,MAAM,CAA+B;IAC/C,YAAmB,OAA+B;QAC9C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC;IAEM,kBAAkB,CACrB,KAA8B;QAE9B,OAAO;YACH,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,IAAsC;SACrD,CAAC;IACN,CAAC;IAEM,4BAA4B;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAES,MAAM,CAAC,8BAA8B,CAC3C,OAAoC;QAEpC,OAAO;YACH,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAChB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW;YACnC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAsC;SAChE,CAAC;IACN,CAAC;IAEM,kBAAkB,CACrB,QAA6B;QAE7B,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,MAAM,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,WAAW,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxF,IAAI,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,YAAY,UAAU;gBACvB,MAAM,IAAI,WAAW,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;;gBAC1E,MAAM,CAAC,CAAC;QACjB,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,IAAI,EAAE,QAAQ,CAAC,IAAI;SACa,CAAC,CAAC;IAC1C,CAAC;IAEM,sBAAsB,CACzB,IAAiC;QAEjC,IAAI,IAAI,YAAY,QAAQ,CAAC,QAAQ,CAAC,UAAU;YAAE,OAAO;gBACrD,gBAAgB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;aACtF,CAAC;aAAM,IAAI,IAAI,YAAY,QAAQ,CAAC,QAAQ,CAAC,MAAM;YAAE,OAAO;gBACzD,gBAAgB,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE;aACtF,CAAC;;YAAM,MAAM,IAAI,KAAK,EAAE,CAAC;IAC9B,CAAC;CAEJ"}
|
|
@@ -1,21 +1,20 @@
|
|
|
1
|
-
import { type
|
|
2
|
-
import { RoleMessage
|
|
1
|
+
import { type InferenceOptions, type ProviderSpecs, Engine } from '../../engine.ts';
|
|
2
|
+
import { RoleMessage } from './message.ts';
|
|
3
3
|
import { Function } from '../../function.ts';
|
|
4
4
|
import { type InferenceContext } from '../../inference-context.ts';
|
|
5
5
|
import { Throttle } from '../../throttle.ts';
|
|
6
6
|
import type { MessageCodec } from './message-codec.ts';
|
|
7
|
-
import type { ToolCodec } from '
|
|
8
|
-
import type { Billing } from '
|
|
7
|
+
import type { ToolCodec } from './tool-codec.ts';
|
|
8
|
+
import type { Billing } from './billing.ts';
|
|
9
9
|
import type { Verbatim } from '../../verbatim.ts';
|
|
10
|
-
import type {
|
|
11
|
-
|
|
12
|
-
export declare class GoogleNativeTransport<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>> {
|
|
10
|
+
import type { StructuringChoice } from '../../structuring-choice.ts';
|
|
11
|
+
export declare class Transport<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> implements Engine.Transport<fdm, vdm> {
|
|
13
12
|
protected apiURL: URL;
|
|
14
|
-
protected inferenceParams:
|
|
15
|
-
protected providerSpec:
|
|
13
|
+
protected inferenceParams: InferenceOptions;
|
|
14
|
+
protected providerSpec: ProviderSpecs;
|
|
16
15
|
protected fdm: fdm;
|
|
17
16
|
protected throttle: Throttle;
|
|
18
|
-
protected
|
|
17
|
+
protected structuringChoice: StructuringChoice;
|
|
19
18
|
protected codeExecution: boolean;
|
|
20
19
|
protected urlContext: boolean;
|
|
21
20
|
protected googleSearch: boolean;
|
|
@@ -23,15 +22,15 @@ export declare class GoogleNativeTransport<in out fdm extends Function.Decl.Map.
|
|
|
23
22
|
protected toolCodec: ToolCodec<fdm>;
|
|
24
23
|
protected billing: Billing;
|
|
25
24
|
constructor(options: GoogleNativeTransport.Options<fdm, vdm>);
|
|
26
|
-
fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
25
|
+
fetch(wfctx: InferenceContext, session: Engine.Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
27
26
|
}
|
|
28
27
|
export declare namespace GoogleNativeTransport {
|
|
29
28
|
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
30
|
-
inferenceParams:
|
|
31
|
-
providerSpec:
|
|
29
|
+
inferenceParams: InferenceOptions;
|
|
30
|
+
providerSpec: ProviderSpecs;
|
|
32
31
|
fdm: fdm;
|
|
33
32
|
throttle: Throttle;
|
|
34
|
-
|
|
33
|
+
structuringChoice: StructuringChoice;
|
|
35
34
|
codeExecution: boolean;
|
|
36
35
|
urlContext: boolean;
|
|
37
36
|
googleSearch: boolean;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import * as Google from '@google/genai';
|
|
2
2
|
import * as Undici from 'undici';
|
|
3
3
|
import { loggers } from "../../telemetry.js";
|
|
4
|
-
import * as ChoiceCodec from "
|
|
4
|
+
import * as ChoiceCodec from "./structuring-choice-codec.js";
|
|
5
5
|
import { MIMEType } from 'whatwg-mimetype';
|
|
6
|
-
export class
|
|
6
|
+
export class Transport {
|
|
7
7
|
apiURL;
|
|
8
8
|
inferenceParams;
|
|
9
9
|
providerSpec;
|
|
10
10
|
fdm;
|
|
11
11
|
throttle;
|
|
12
|
-
|
|
12
|
+
structuringChoice;
|
|
13
13
|
codeExecution;
|
|
14
14
|
urlContext;
|
|
15
15
|
googleSearch;
|
|
@@ -22,7 +22,7 @@ export class GoogleNativeTransport {
|
|
|
22
22
|
this.providerSpec = options.providerSpec;
|
|
23
23
|
this.fdm = options.fdm;
|
|
24
24
|
this.throttle = options.throttle;
|
|
25
|
-
this.
|
|
25
|
+
this.structuringChoice = options.structuringChoice;
|
|
26
26
|
this.codeExecution = options.codeExecution;
|
|
27
27
|
this.urlContext = options.urlContext;
|
|
28
28
|
this.googleSearch = options.googleSearch;
|
|
@@ -31,13 +31,14 @@ export class GoogleNativeTransport {
|
|
|
31
31
|
this.billing = options.billing;
|
|
32
32
|
}
|
|
33
33
|
async fetch(wfctx, session, signal) {
|
|
34
|
+
await this.throttle.requests(wfctx);
|
|
35
|
+
// Prepare request body
|
|
34
36
|
const systemInstruction = session.developerMessage && this.messageCodec.encodeDeveloperMessage(session.developerMessage);
|
|
35
37
|
const contents = this.messageCodec.encodeChatMessages(session.chatMessages);
|
|
36
|
-
|
|
37
|
-
const apifds = this.toolCodec.encodeFunctionDeclarationMap(this.fdm);
|
|
38
|
+
const apiFds = this.toolCodec.encodeFunctionDeclarationMap();
|
|
38
39
|
const apiTools = [];
|
|
39
|
-
if (
|
|
40
|
-
apiTools.push({ functionDeclarations:
|
|
40
|
+
if (apiFds.length)
|
|
41
|
+
apiTools.push({ functionDeclarations: apiFds });
|
|
41
42
|
if (this.urlContext)
|
|
42
43
|
apiTools.push({ urlContext: {} });
|
|
43
44
|
if (this.googleSearch)
|
|
@@ -45,8 +46,8 @@ export class GoogleNativeTransport {
|
|
|
45
46
|
if (this.codeExecution)
|
|
46
47
|
apiTools.push({ codeExecution: {} });
|
|
47
48
|
const apiToolConfig = {};
|
|
48
|
-
if (
|
|
49
|
-
apiToolConfig.functionCallingConfig = ChoiceCodec.encode(this.
|
|
49
|
+
if (apiFds.length)
|
|
50
|
+
apiToolConfig.functionCallingConfig = ChoiceCodec.encode(this.structuringChoice);
|
|
50
51
|
const reqbody = {
|
|
51
52
|
contents,
|
|
52
53
|
tools: apiTools.length ? apiTools : undefined,
|
|
@@ -55,6 +56,7 @@ export class GoogleNativeTransport {
|
|
|
55
56
|
generationConfig: this.inferenceParams.additionalOptions,
|
|
56
57
|
};
|
|
57
58
|
loggers.message.debug(reqbody);
|
|
59
|
+
// Send request
|
|
58
60
|
const res = await Undici.fetch(this.apiURL, {
|
|
59
61
|
method: 'POST',
|
|
60
62
|
headers: {
|
|
@@ -66,6 +68,7 @@ export class GoogleNativeTransport {
|
|
|
66
68
|
signal,
|
|
67
69
|
});
|
|
68
70
|
loggers.message.debug(res);
|
|
71
|
+
// Get response
|
|
69
72
|
if (res.ok) { }
|
|
70
73
|
else {
|
|
71
74
|
const contentType = res.headers.get('Content-Type');
|
|
@@ -81,6 +84,8 @@ export class GoogleNativeTransport {
|
|
|
81
84
|
throw new Error(res.statusText, { cause: res });
|
|
82
85
|
}
|
|
83
86
|
const response = await res.json();
|
|
87
|
+
loggers.message.debug(response);
|
|
88
|
+
// Validate response
|
|
84
89
|
if (response.candidates?.[0]?.content?.parts?.length) { }
|
|
85
90
|
else
|
|
86
91
|
throw new SyntaxError('Content missing', { cause: response });
|
|
@@ -89,15 +94,15 @@ export class GoogleNativeTransport {
|
|
|
89
94
|
if (response.candidates[0].finishReason === Google.FinishReason.STOP) { }
|
|
90
95
|
else
|
|
91
96
|
throw new SyntaxError('Abnormal finish reason', { cause: response });
|
|
97
|
+
if (response.usageMetadata) { }
|
|
98
|
+
else
|
|
99
|
+
throw new SyntaxError('Usage metadata missing', { cause: response });
|
|
92
100
|
for (const part of response.candidates[0].content.parts) {
|
|
93
101
|
if (part.text)
|
|
94
102
|
loggers.inference.info(part.text);
|
|
95
103
|
if (part.functionCall)
|
|
96
104
|
loggers.message.info(part.functionCall);
|
|
97
105
|
}
|
|
98
|
-
if (response.usageMetadata) { }
|
|
99
|
-
else
|
|
100
|
-
throw new SyntaxError('Usage metadata missing', { cause: response });
|
|
101
106
|
wfctx.cost?.(this.billing.charge(response.usageMetadata));
|
|
102
107
|
return this.messageCodec.decodeAiMessage(response.candidates[0].content);
|
|
103
108
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/engines/google/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Engine, Middleware } from '../engine.ts';
|
|
2
|
+
import { Function } from '../function.ts';
|
|
3
|
+
import { Verbatim } from '../verbatim.ts';
|
|
4
|
+
import { MessageCodec } from './google/message-codec.ts';
|
|
5
|
+
import { ToolCodec } from './google/tool-codec.ts';
|
|
6
|
+
import { Billing } from './google/billing.ts';
|
|
7
|
+
import { Transport } from './google/transport.ts';
|
|
8
|
+
import { InferenceContext } from '../inference-context.ts';
|
|
9
|
+
import * as MessageModule from './google/message.ts';
|
|
10
|
+
export type GoogleEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = GoogleEngine.Instance<fdm, vdm>;
|
|
11
|
+
export declare namespace GoogleEngine {
|
|
12
|
+
class Instance<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Engine.Instance<fdm, vdm> {
|
|
13
|
+
protected options: GoogleEngine.Options<fdm, vdm>;
|
|
14
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
15
|
+
protected messageCodec: MessageCodec<fdm, vdm>;
|
|
16
|
+
protected billing: Billing;
|
|
17
|
+
protected transport: Transport<fdm, vdm>;
|
|
18
|
+
protected structuringValidator: Engine.StructuringValidator.From<fdm, vdm>;
|
|
19
|
+
protected codeExecution: boolean;
|
|
20
|
+
protected urlContext: boolean;
|
|
21
|
+
protected googleSearch: boolean;
|
|
22
|
+
constructor(options: GoogleEngine.Options<fdm, vdm>);
|
|
23
|
+
clone(): GoogleEngine<fdm, vdm>;
|
|
24
|
+
protected infer(wfctx: InferenceContext, session: Engine.Session.From<fdm, vdm>): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
25
|
+
stateless(wfctx: InferenceContext, session: Engine.Session.From<fdm, vdm>): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
26
|
+
stateful(wfctx: InferenceContext, session: Engine.Session.From<fdm, vdm>): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
27
|
+
useStateless(middleware: Middleware.From<fdm, vdm>): GoogleEngine<fdm, vdm>;
|
|
28
|
+
useStateful(middleware: Middleware.From<fdm, vdm>): GoogleEngine<fdm, vdm>;
|
|
29
|
+
/**
|
|
30
|
+
* @param session mutable
|
|
31
|
+
*/
|
|
32
|
+
agentloop(wfctx: InferenceContext, session: Engine.Session.From<fdm, vdm>, fnm: Function.Map<fdm>, vhm: Verbatim.Handler.Map<vdm>, limit?: number): AsyncGenerator<string, string, void>;
|
|
33
|
+
}
|
|
34
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Engine.Options<fdm, vdm> {
|
|
35
|
+
codeExecution?: boolean;
|
|
36
|
+
urlContext?: boolean;
|
|
37
|
+
googleSearch?: boolean;
|
|
38
|
+
}
|
|
39
|
+
const create: Engine.Create;
|
|
40
|
+
export import RoleMessage = MessageModule.RoleMessage;
|
|
41
|
+
}
|