@zimtsui/typechat 0.0.98 → 0.0.100
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 +10 -6
- 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 -27
- 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 -44
- 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 -46
- 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,37 @@
|
|
|
1
|
+
import { type InferenceOptions, type ProviderSpecs, Engine } from '../../engine.ts';
|
|
2
|
+
import { Function } from '../../function.ts';
|
|
3
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
4
|
+
import { type InferenceContext } from '../../inference-context.ts';
|
|
5
|
+
import { Throttle } from '../../throttle.ts';
|
|
6
|
+
import type { MessageCodec } from './message-codec.ts';
|
|
7
|
+
import type { Billing } from './billing.ts';
|
|
8
|
+
import type { ToolCodec } from './tool-codec.ts';
|
|
9
|
+
import type { Verbatim } from '../../verbatim.ts';
|
|
10
|
+
import type { StructuringChoice } from '../../structuring-choice.ts';
|
|
11
|
+
import { RoleMessage } from './message.ts';
|
|
12
|
+
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
|
+
protected client: Anthropic;
|
|
14
|
+
protected providerSpec: ProviderSpecs;
|
|
15
|
+
protected inferenceParams: InferenceOptions;
|
|
16
|
+
protected fdm: fdm;
|
|
17
|
+
protected throttle: Throttle;
|
|
18
|
+
protected structuringChoice: StructuringChoice;
|
|
19
|
+
protected messageCodec: MessageCodec<fdm, vdm>;
|
|
20
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
21
|
+
protected billing: Billing;
|
|
22
|
+
constructor(options: Transport.Options<fdm, vdm>);
|
|
23
|
+
protected makeParams(session: Engine.Session.From<fdm, vdm>): Anthropic.MessageCreateParamsStreaming;
|
|
24
|
+
fetch(wfctx: InferenceContext, session: Engine.Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
25
|
+
}
|
|
26
|
+
export declare namespace Transport {
|
|
27
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
28
|
+
providerSpec: ProviderSpecs;
|
|
29
|
+
inferenceParams: InferenceOptions;
|
|
30
|
+
fdm: fdm;
|
|
31
|
+
throttle: Throttle;
|
|
32
|
+
structuringChoice: StructuringChoice;
|
|
33
|
+
messageCodec: MessageCodec<fdm, vdm>;
|
|
34
|
+
toolCodec: ToolCodec<fdm>;
|
|
35
|
+
billing: Billing;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import Anthropic from '@anthropic-ai/sdk';
|
|
2
2
|
import { loggers } from "../../telemetry.js";
|
|
3
|
-
import * as ChoiceCodec from "./choice-codec.js";
|
|
3
|
+
import * as ChoiceCodec from "./structuring-choice-codec.js";
|
|
4
4
|
import * as Undici from 'undici';
|
|
5
5
|
export class Transport {
|
|
6
6
|
client;
|
|
7
7
|
providerSpec;
|
|
8
|
-
|
|
8
|
+
inferenceParams;
|
|
9
9
|
fdm;
|
|
10
10
|
throttle;
|
|
11
11
|
structuringChoice;
|
|
@@ -20,38 +20,35 @@ export class Transport {
|
|
|
20
20
|
fetchOptions: { dispatcher: options.providerSpec.dispatcher },
|
|
21
21
|
});
|
|
22
22
|
this.providerSpec = options.providerSpec;
|
|
23
|
-
this.
|
|
23
|
+
this.inferenceParams = options.inferenceParams;
|
|
24
24
|
this.fdm = options.fdm;
|
|
25
25
|
this.throttle = options.throttle;
|
|
26
|
-
this.structuringChoice = options.
|
|
26
|
+
this.structuringChoice = options.structuringChoice;
|
|
27
27
|
this.messageCodec = options.messageCodec;
|
|
28
28
|
this.toolCodec = options.toolCodec;
|
|
29
29
|
this.billing = options.billing;
|
|
30
30
|
}
|
|
31
31
|
makeParams(session) {
|
|
32
|
-
const tools = this.toolCodec.encodeFunctionDeclarationMap(
|
|
32
|
+
const tools = this.toolCodec.encodeFunctionDeclarationMap();
|
|
33
33
|
return {
|
|
34
|
-
model: this.
|
|
34
|
+
model: this.inferenceParams.model,
|
|
35
35
|
stream: true,
|
|
36
36
|
messages: session.chatMessages.map(chatMessage => this.messageCodec.encodeChatMessage(chatMessage)),
|
|
37
37
|
system: session.developerMessage && this.messageCodec.encodeDeveloperMessage(session.developerMessage),
|
|
38
38
|
tools: tools.length ? tools : undefined,
|
|
39
|
-
tool_choice: tools.length ? ChoiceCodec.encode(this.structuringChoice, this.
|
|
39
|
+
tool_choice: tools.length ? ChoiceCodec.encode(this.structuringChoice, this.inferenceParams.parallelToolCall) : undefined,
|
|
40
40
|
max_tokens: 64 * 1024,
|
|
41
|
-
...this.
|
|
41
|
+
...this.inferenceParams.additionalOptions,
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
44
|
async fetch(wfctx, session, signal) {
|
|
45
45
|
await this.throttle.requests(wfctx);
|
|
46
|
-
// Prepare request
|
|
47
46
|
const params = this.makeParams(session);
|
|
48
47
|
loggers.message.debug(params);
|
|
49
|
-
// Send request
|
|
50
48
|
const stream = this.client.messages.stream(params, {
|
|
51
49
|
signal,
|
|
52
50
|
fetchOptions: { dispatcher: this.providerSpec.dispatcher },
|
|
53
51
|
});
|
|
54
|
-
// Get response
|
|
55
52
|
let response = null;
|
|
56
53
|
for await (const event of stream) {
|
|
57
54
|
loggers.stream.trace(event);
|
|
@@ -134,7 +131,6 @@ export class Transport {
|
|
|
134
131
|
throw new Error('Unknown stream event', { cause: event });
|
|
135
132
|
}
|
|
136
133
|
}
|
|
137
|
-
// Validate response
|
|
138
134
|
if (response) { }
|
|
139
135
|
else
|
|
140
136
|
throw new Error();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/engines/anthropic/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Engine } from '../engine.ts';
|
|
2
|
+
import { Function } from '../function.ts';
|
|
3
|
+
import { Verbatim } from '../verbatim.ts';
|
|
4
|
+
import { ToolCodec } from './anthropic/tool-codec.ts';
|
|
5
|
+
import { Billing } from './anthropic/billing.ts';
|
|
6
|
+
import { MessageCodec } from './anthropic/message-codec.ts';
|
|
7
|
+
import { Transport } from './anthropic/transport.ts';
|
|
8
|
+
export type AnthropicEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = AnthropicEngine.Instance<fdm, vdm>;
|
|
9
|
+
export declare namespace AnthropicEngine {
|
|
10
|
+
class Instance<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Engine.Instance<fdm, vdm> {
|
|
11
|
+
protected options: AnthropicEngine.Options<fdm, vdm>;
|
|
12
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
13
|
+
protected messageCodec: MessageCodec<fdm, vdm>;
|
|
14
|
+
protected billing: Billing;
|
|
15
|
+
protected transport: Transport<fdm, vdm>;
|
|
16
|
+
constructor(options: AnthropicEngine.Options<fdm, vdm>);
|
|
17
|
+
clone(): Engine<fdm, vdm>;
|
|
18
|
+
}
|
|
19
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Engine.Options<fdm, vdm> {
|
|
20
|
+
}
|
|
21
|
+
const create: Engine.Create;
|
|
22
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Engine } from "../engine.js";
|
|
2
|
+
import { ToolCodec } from "./anthropic/tool-codec.js";
|
|
3
|
+
import { Billing } from "./anthropic/billing.js";
|
|
4
|
+
import { MessageCodec } from "./anthropic/message-codec.js";
|
|
5
|
+
import { Transport } from "./anthropic/transport.js";
|
|
6
|
+
export var AnthropicEngine;
|
|
7
|
+
(function (AnthropicEngine) {
|
|
8
|
+
class Instance extends Engine.Instance {
|
|
9
|
+
options;
|
|
10
|
+
toolCodec;
|
|
11
|
+
messageCodec;
|
|
12
|
+
billing;
|
|
13
|
+
transport;
|
|
14
|
+
constructor(options) {
|
|
15
|
+
super(options);
|
|
16
|
+
this.options = options;
|
|
17
|
+
this.toolCodec = new ToolCodec({ fdm: this.fdm });
|
|
18
|
+
this.messageCodec = new MessageCodec({
|
|
19
|
+
toolCodec: this.toolCodec,
|
|
20
|
+
vdm: this.vdm,
|
|
21
|
+
});
|
|
22
|
+
this.billing = new Billing({ pricing: this.pricing });
|
|
23
|
+
this.transport = new Transport({
|
|
24
|
+
providerSpec: this.providerSpecs,
|
|
25
|
+
inferenceParams: this.inferenceOptions,
|
|
26
|
+
fdm: this.fdm,
|
|
27
|
+
throttle: this.throttle,
|
|
28
|
+
structuringChoice: this.structuringChoice,
|
|
29
|
+
messageCodec: this.messageCodec,
|
|
30
|
+
toolCodec: this.toolCodec,
|
|
31
|
+
billing: this.billing,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
clone() {
|
|
35
|
+
const engine = new AnthropicEngine.Instance(this.options);
|
|
36
|
+
engine.middlewaresStateless = [...this.middlewaresStateless];
|
|
37
|
+
engine.middlewaresStateful = [...this.middlewaresStateful];
|
|
38
|
+
return engine;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
AnthropicEngine.Instance = Instance;
|
|
42
|
+
AnthropicEngine.create = function (options) {
|
|
43
|
+
return new Instance(options);
|
|
44
|
+
};
|
|
45
|
+
})(AnthropicEngine || (AnthropicEngine = {}));
|
|
46
|
+
//# sourceMappingURL=anthropic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/engines/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAOrD,MAAM,KAAW,eAAe,CAiD/B;AAjDD,WAAiB,eAAe;IAC5B,MAAa,QAGX,SAAQ,MAAM,CAAC,QAAkB;QAMF;QALnB,SAAS,CAAiB;QAC1B,YAAY,CAAyB;QACrC,OAAO,CAAU;QACR,SAAS,CAAsB;QAElD,YAA6B,OAA0C;YACnE,KAAK,CAAC,OAAO,CAAC,CAAC;YADU,YAAO,GAAP,OAAO,CAAmC;YAEnE,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC;gBACjC,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,SAAS,CAAC;gBAC3B,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,eAAe,EAAE,IAAI,CAAC,gBAAgB;gBACtC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,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,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1D,MAAM,CAAC,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC7D,MAAM,CAAC,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC3D,OAAO,MAAM,CAAC;QAClB,CAAC;KACJ;IAnCY,wBAAQ,WAmCpB,CAAA;IAOY,sBAAM,GAAkB,UAGnC,OAAiC;QAC/B,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC,CAAA;AACL,CAAC,EAjDgB,eAAe,KAAf,eAAe,QAiD/B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../src/engines/google/billing.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAG7C,MAAM,OAAO,OAAO;IACN,OAAO,CAAU;IAC3B,YAAmB,OAAwB;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACnC,CAAC;IAEM,MAAM,CAAC,aAA0D;QACpE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAEpC,IAAI,aAAa,CAAC,gBAAgB,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,KAAK,CAAC,6BAA6B,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QACrH,MAAM,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,IAAI,CAAC,CAAC;QACrE,MAAM,kBAAkB,GAAG,aAAa,CAAC,uBAAuB,IAAI,CAAC,CAAC;QACtE,MAAM,mBAAmB,GAAG,aAAa,CAAC,gBAAgB,GAAG,kBAAkB,CAAC;QAChF,MAAM,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,IAAI,CAAC,CAAC;QACjE,MAAM,IAAI,GACN,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,mBAAmB,GAAG,GAAG;YACnD,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,kBAAkB,GAAG,GAAG;YAClD,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,oBAAoB,GAAG,GAAG;YACrD,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,kBAAkB,GAAG,GAAG,CAAC;QACxD,OAAO,IAAI,CAAC;IAChB,CAAC;CACJ"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { RoleMessage } from './message.ts';
|
|
2
|
+
import { Engine } from '../../engine.ts';
|
|
3
|
+
import { Function } from '../../function.ts';
|
|
4
|
+
import * as Google from '@google/genai';
|
|
5
|
+
import { type ToolCodec } from './tool-codec.ts';
|
|
6
|
+
import type { Verbatim } from '../../verbatim.ts';
|
|
7
|
+
export declare class MessageCodec<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> {
|
|
8
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
9
|
+
protected vdm: vdm;
|
|
10
|
+
protected codeExecution: boolean;
|
|
11
|
+
constructor(options: MessageCodec.Options<fdm, vdm>);
|
|
12
|
+
encodeAiMessage(aiMessage: Engine.RoleMessage.Ai.From<fdm, vdm>): Google.Content;
|
|
13
|
+
encodeChatMessages(chatMessages: Engine.Session.ChatMessage.From<fdm, vdm>[]): Google.Content[];
|
|
14
|
+
encodeUserMessage(userMessage: Engine.RoleMessage.User.From<fdm>): Google.Content;
|
|
15
|
+
encodeDeveloperMessage(developerMessage: Engine.RoleMessage.Developer): Google.Content;
|
|
16
|
+
decodeAiMessage(content: Google.Content): RoleMessage.Ai.From<fdm, vdm>;
|
|
17
|
+
}
|
|
18
|
+
export declare namespace MessageCodec {
|
|
19
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
20
|
+
toolCodec: ToolCodec<fdm>;
|
|
21
|
+
vdm: vdm;
|
|
22
|
+
codeExecution: boolean;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -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;
|