@zimtsui/typechat 0.0.94 → 0.0.96
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/DEVELOPMENT.md +0 -6
- package/README.md +26 -36
- package/assets/verbatim/instruction.md +27 -25
- package/assets/verbatim/quotation.handlebars +1 -1
- package/assets/verbatim/system.handlebars +1 -0
- package/build/adaptor.d.ts +5 -23
- package/build/adaptor.js +14 -25
- package/build/adaptor.js.map +1 -1
- package/build/api-types/anthropic/billing.d.ts +3 -3
- package/build/api-types/anthropic/billing.js +6 -6
- package/build/api-types/anthropic/billing.js.map +1 -1
- package/build/api-types/anthropic/tool-codec.d.ts +3 -3
- package/build/api-types/anthropic/tool-codec.js +15 -11
- package/build/api-types/anthropic/tool-codec.js.map +1 -1
- package/build/api-types/google/billing.d.ts +3 -3
- package/build/api-types/google/billing.js +7 -7
- package/build/api-types/google/billing.js.map +1 -1
- package/build/api-types/google/tool-codec.d.ts +3 -3
- package/build/api-types/google/tool-codec.js +16 -34
- package/build/api-types/google/tool-codec.js.map +1 -1
- package/build/api-types/openai-chatcompletions/billing.d.ts +5 -5
- package/build/api-types/openai-chatcompletions/billing.js +7 -7
- package/build/api-types/openai-chatcompletions/billing.js.map +1 -1
- package/build/api-types/openai-chatcompletions/tool-codec.d.ts +5 -5
- package/build/api-types/openai-chatcompletions/tool-codec.js +17 -13
- package/build/api-types/openai-chatcompletions/tool-codec.js.map +1 -1
- package/build/api-types/openai-responses/billing.d.ts +3 -3
- package/build/api-types/openai-responses/billing.js +6 -6
- package/build/api-types/openai-responses/billing.js.map +1 -1
- package/build/api-types/openai-responses/tool-codec.d.ts +3 -3
- package/build/api-types/openai-responses/tool-codec.js +16 -12
- package/build/api-types/openai-responses/tool-codec.js.map +1 -1
- package/build/assets.d.ts +1 -1
- package/build/assets.js +6 -5
- package/build/assets.js.map +1 -1
- package/build/compatible-engine/session.d.ts +4 -16
- package/build/compatible-engine/session.js +8 -15
- package/build/compatible-engine/session.js.map +1 -1
- package/build/compatible-engine/validation.d.ts +7 -7
- package/build/compatible-engine/validation.js +33 -34
- package/build/compatible-engine/validation.js.map +1 -1
- package/build/compatible-engine.d/anthropic/message-codec.d.ts +4 -3
- package/build/compatible-engine.d/anthropic/message-codec.js +16 -22
- package/build/compatible-engine.d/anthropic/message-codec.js.map +1 -1
- package/build/compatible-engine.d/anthropic/transport.d.ts +10 -3
- package/build/compatible-engine.d/anthropic/transport.js +105 -101
- package/build/compatible-engine.d/anthropic/transport.js.map +1 -1
- package/build/compatible-engine.d/anthropic.d.ts +2 -0
- package/build/compatible-engine.d/anthropic.js +9 -1
- package/build/compatible-engine.d/anthropic.js.map +1 -1
- package/build/compatible-engine.d/google/message-codec.d.ts +4 -3
- package/build/compatible-engine.d/google/message-codec.js +16 -22
- package/build/compatible-engine.d/google/message-codec.js.map +1 -1
- package/build/compatible-engine.d/google/transport.d.ts +10 -3
- package/build/compatible-engine.d/google/transport.js +32 -24
- package/build/compatible-engine.d/google/transport.js.map +1 -1
- package/build/compatible-engine.d/google.d.ts +2 -0
- package/build/compatible-engine.d/google.js +23 -2
- package/build/compatible-engine.d/google.js.map +1 -1
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +6 -5
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +17 -24
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +1 -1
- package/build/compatible-engine.d/openai-chatcompletions/transport.d.ts +33 -3
- package/build/compatible-engine.d/openai-chatcompletions/transport.js +182 -6
- package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +1 -1
- package/build/compatible-engine.d/openai-chatcompletions.d.ts +10 -2
- package/build/compatible-engine.d/openai-chatcompletions.js +35 -0
- package/build/compatible-engine.d/openai-chatcompletions.js.map +1 -1
- package/build/compatible-engine.d/openai-responses/message-codec.d.ts +4 -6
- package/build/compatible-engine.d/openai-responses/message-codec.js +70 -74
- package/build/compatible-engine.d/openai-responses/message-codec.js.map +1 -1
- package/build/compatible-engine.d/openai-responses/transport.d.ts +14 -8
- package/build/compatible-engine.d/openai-responses/transport.js +64 -64
- package/build/compatible-engine.d/openai-responses/transport.js.map +1 -1
- package/build/compatible-engine.d/openai-responses.d.ts +2 -0
- package/build/compatible-engine.d/openai-responses.js +10 -2
- package/build/compatible-engine.d/openai-responses.js.map +1 -1
- package/build/compatible-engine.d.ts +2 -1
- package/build/compatible-engine.js +3 -3
- package/build/compatible-engine.js.map +1 -1
- package/build/config.d.ts +17 -19
- package/build/config.js +2 -4
- package/build/config.js.map +1 -1
- package/build/endpoint-spec.d.ts +15 -15
- package/build/endpoint-spec.js +2 -2
- package/build/endpoint-spec.js.map +1 -1
- package/build/engine/session.d.ts +31 -0
- package/build/engine/session.js +19 -0
- package/build/engine/session.js.map +1 -1
- package/build/engine/validation.d.ts +1 -7
- package/build/engine.d.ts +37 -20
- package/build/engine.js +154 -87
- package/build/engine.js.map +1 -1
- package/build/function.d.ts +1 -1
- package/build/native-engines.d/google/message-codec.d.ts +6 -3
- package/build/native-engines.d/google/message-codec.js +23 -27
- package/build/native-engines.d/google/message-codec.js.map +1 -1
- package/build/native-engines.d/google/transport.d.ts +13 -3
- package/build/native-engines.d/google/transport.js +41 -27
- package/build/native-engines.d/google/transport.js.map +1 -1
- package/build/native-engines.d/google/validation.d.ts +5 -6
- package/build/native-engines.d/google/validation.js +3 -6
- package/build/native-engines.d/google/validation.js.map +1 -1
- package/build/native-engines.d/google.d.ts +2 -2
- package/build/native-engines.d/google.js +22 -4
- package/build/native-engines.d/google.js.map +1 -1
- package/build/native-engines.d/openai-responses/choice-codec.d.ts +1 -1
- package/build/native-engines.d/openai-responses/choice-codec.js +12 -12
- package/build/native-engines.d/openai-responses/choice-codec.js.map +1 -1
- package/build/native-engines.d/openai-responses/message-codec.d.ts +5 -3
- package/build/native-engines.d/openai-responses/message-codec.js +59 -48
- package/build/native-engines.d/openai-responses/message-codec.js.map +1 -1
- package/build/native-engines.d/openai-responses/transport.d.ts +14 -6
- package/build/native-engines.d/openai-responses/transport.js +56 -54
- package/build/native-engines.d/openai-responses/transport.js.map +1 -1
- package/build/native-engines.d/openai-responses/validation.d.ts +7 -7
- package/build/native-engines.d/openai-responses/validation.js +31 -32
- package/build/native-engines.d/openai-responses/validation.js.map +1 -1
- package/build/native-engines.d/openai-responses.d.ts +2 -2
- package/build/native-engines.d/openai-responses.js +9 -4
- package/build/native-engines.d/openai-responses.js.map +1 -1
- package/build/repetition.d.ts +2 -1
- package/build/repetition.js +7 -42
- package/build/repetition.js.map +1 -1
- package/build/telemetry.d.ts +1 -0
- package/build/telemetry.js +1 -0
- package/build/telemetry.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/verbatim/codec/declarations.d.ts +0 -1
- package/build/verbatim/codec/declarations.js +1 -2
- package/build/verbatim/codec/declarations.js.map +1 -1
- package/build/verbatim/codec/helpers.d.ts +2 -0
- package/build/verbatim/codec/{escape.js → helpers.js} +5 -1
- package/build/verbatim/codec/helpers.js.map +1 -0
- package/build/verbatim/codec/quotation.d.ts +1 -2
- package/build/verbatim/codec/quotation.js +3 -4
- package/build/verbatim/codec/quotation.js.map +1 -1
- package/build/verbatim/codec/response.d.ts +0 -1
- package/build/verbatim/codec/response.js +1 -2
- package/build/verbatim/codec/response.js.map +1 -1
- package/build/verbatim/codec/{meta.d.ts → system.d.ts} +0 -1
- package/build/verbatim/codec/system.js +7 -0
- package/build/verbatim/codec/system.js.map +1 -0
- package/build/verbatim/codec.d.ts +1 -1
- package/build/verbatim/codec.js +1 -1
- package/build/verbatim/codec.js.map +1 -1
- package/package.json +8 -9
- package/assets/verbatim/meta.handlebars +0 -1
- package/build/compatible-engine.d/aliyun/transport.d.ts +0 -12
- package/build/compatible-engine.d/aliyun/transport.js +0 -7
- package/build/compatible-engine.d/aliyun/transport.js.map +0 -1
- package/build/compatible-engine.d/aliyun.d.ts +0 -21
- package/build/compatible-engine.d/aliyun.js +0 -38
- package/build/compatible-engine.d/aliyun.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.d.ts +0 -31
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js +0 -88
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.d.ts +0 -34
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js +0 -190
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js.map +0 -1
- package/build/verbatim/codec/escape.d.ts +0 -1
- package/build/verbatim/codec/escape.js.map +0 -1
- package/build/verbatim/codec/meta.js +0 -8
- package/build/verbatim/codec/meta.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/native-engines.d/google/transport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/native-engines.d/google/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,21 +5,20 @@ import { RoleMessage } from './session.ts';
|
|
|
5
5
|
import { StructuringValidator as CompatibleStructuringValidator, PartsValidator as CompatiblePartsValidator } from '../../compatible-engine/validation.ts';
|
|
6
6
|
import { Engine } from '../../engine.ts';
|
|
7
7
|
export declare class StructuringValidator<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> implements Engine.StructuringValidator<RoleMessage.User<fdu>, RoleMessage.Ai<fdu, vdu>> {
|
|
8
|
-
protected ctx: StructuringValidator.Context<fdu, vdu>;
|
|
9
8
|
protected compatibleStructuringValidator: CompatibleStructuringValidator<fdu, vdu>;
|
|
10
|
-
constructor(
|
|
9
|
+
constructor(options: StructuringValidator.Options<fdu, vdu>);
|
|
11
10
|
validate(message: RoleMessage.Ai<fdu, vdu>): void | RoleMessage.User<fdu>;
|
|
12
11
|
}
|
|
13
12
|
export declare namespace StructuringValidator {
|
|
14
13
|
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = StructuringValidator<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
15
|
-
interface
|
|
14
|
+
interface Options<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> {
|
|
16
15
|
choice: Structuring.Choice<fdu, vdu>;
|
|
17
16
|
}
|
|
18
|
-
namespace
|
|
19
|
-
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> =
|
|
17
|
+
namespace Options {
|
|
18
|
+
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Options<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
20
19
|
}
|
|
21
20
|
}
|
|
22
|
-
export declare class PartsValidator<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> implements Engine.PartsValidator<RoleMessage.
|
|
21
|
+
export declare class PartsValidator<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> implements Engine.PartsValidator<RoleMessage.Ai<fdu, vdu>> {
|
|
23
22
|
protected compatiblePartsValidator: CompatiblePartsValidator<fdu, vdu>;
|
|
24
23
|
constructor();
|
|
25
24
|
validate(message: RoleMessage.Ai<fdu, vdu>): void;
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import { RoleMessage } from "./session.js";
|
|
2
2
|
import { StructuringValidator as CompatibleStructuringValidator, PartsValidator as CompatiblePartsValidator, } from "../../compatible-engine/validation.js";
|
|
3
|
-
import { ResponseInvalid } from "../../engine.js";
|
|
4
3
|
export class StructuringValidator {
|
|
5
|
-
ctx;
|
|
6
4
|
compatibleStructuringValidator;
|
|
7
|
-
constructor(
|
|
8
|
-
this.
|
|
9
|
-
this.compatibleStructuringValidator = new CompatibleStructuringValidator({ choice: this.ctx.choice });
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.compatibleStructuringValidator = new CompatibleStructuringValidator({ structuringChoice: options.choice });
|
|
10
7
|
}
|
|
11
8
|
validate(message) {
|
|
12
9
|
const fcs = message.getFunctionCalls();
|
|
@@ -22,7 +19,7 @@ export class PartsValidator {
|
|
|
22
19
|
validate(message) {
|
|
23
20
|
if (message.getParts().length) { }
|
|
24
21
|
else
|
|
25
|
-
throw new
|
|
22
|
+
throw new SyntaxError('Empty message.');
|
|
26
23
|
this.compatiblePartsValidator.validateMessageTextParts(message.getChatParts().filter(part => part instanceof RoleMessage.Part.Text));
|
|
27
24
|
}
|
|
28
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/native-engines.d/google/validation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACH,oBAAoB,IAAI,8BAA8B,EACtD,cAAc,IAAI,wBAAwB,GAC7C,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/native-engines.d/google/validation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EACH,oBAAoB,IAAI,8BAA8B,EACtD,cAAc,IAAI,wBAAwB,GAC7C,MAAM,uCAAuC,CAAC;AAK/C,MAAM,OAAO,oBAAoB;IAInB,8BAA8B,CAA2C;IACnF,YAAmB,OAA+C;QAC9D,IAAI,CAAC,8BAA8B,GAAG,IAAI,8BAA8B,CAAC,EAAE,iBAAiB,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACpH,CAAC;IAEM,QAAQ,CACX,OAAiC;QAEjC,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC,8BAA8B,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;CACJ;AAuBD,MAAM,OAAO,cAAc;IAIb,wBAAwB,CAAqC;IACvE;QACI,IAAI,CAAC,wBAAwB,GAAG,IAAI,wBAAwB,EAAE,CAAC;IACnE,CAAC;IAEM,QAAQ,CACX,OAAiC;QAEjC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC/E,IAAI,CAAC,wBAAwB,CAAC,wBAAwB,CAClD,OAAO,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAC/E,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Function } from '../function.ts';
|
|
2
2
|
import * as SessionModule from './google/session.ts';
|
|
3
3
|
import { Engine } from '../engine.ts';
|
|
4
|
-
import { type InferenceContext } from '../inference-context.ts';
|
|
5
4
|
import { ToolCodec } from '../api-types/google/tool-codec.ts';
|
|
6
5
|
import { Billing } from '../api-types/google/billing.ts';
|
|
7
6
|
import * as ValidationModule from './google/validation.ts';
|
|
@@ -13,6 +12,7 @@ import { Structuring } from '../compatible-engine/structuring.ts';
|
|
|
13
12
|
export type GoogleNativeEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = GoogleNativeEngine.Instance<fdm, vdm>;
|
|
14
13
|
export declare namespace GoogleNativeEngine {
|
|
15
14
|
class Instance<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Engine.Instance<fdm, vdm, GoogleNativeEngine.RoleMessage.User.From<fdm>, GoogleNativeEngine.RoleMessage.Ai.From<fdm, vdm>, GoogleNativeEngine.RoleMessage.Developer, GoogleNativeEngine.Session.From<fdm, vdm>> {
|
|
15
|
+
protected options: GoogleNativeEngine.Options<fdm, vdm>;
|
|
16
16
|
protected choice: Structuring.Choice.From<fdm, vdm>;
|
|
17
17
|
protected codeExecution: boolean;
|
|
18
18
|
protected urlContext: boolean;
|
|
@@ -25,9 +25,9 @@ export declare namespace GoogleNativeEngine {
|
|
|
25
25
|
protected partsValidator: GoogleNativeEngine.PartsValidator.From<fdm, vdm>;
|
|
26
26
|
protected transport: GoogleNativeTransport<fdm, vdm>;
|
|
27
27
|
constructor(options: GoogleNativeEngine.Options<fdm, vdm>);
|
|
28
|
-
protected infer(wfctx: InferenceContext, session: GoogleNativeEngine.Session.From<fdm, vdm>, signal?: AbortSignal): Promise<GoogleNativeEngine.RoleMessage.Ai.From<fdm, vdm>>;
|
|
29
28
|
appendUserMessage(session: GoogleNativeEngine.Session.From<fdm, vdm>, message: GoogleNativeEngine.RoleMessage.User.From<fdm>): GoogleNativeEngine.Session.From<fdm, vdm>;
|
|
30
29
|
pushUserMessage(session: GoogleNativeEngine.Session.From<fdm, vdm>, message: GoogleNativeEngine.RoleMessage.User.From<fdm>): GoogleNativeEngine.Session.From<fdm, vdm>;
|
|
30
|
+
clone(): GoogleNativeEngine.Instance<fdm, vdm>;
|
|
31
31
|
}
|
|
32
32
|
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Engine.Options<fdm, vdm> {
|
|
33
33
|
structuringChoice?: Structuring.Choice.From<fdm, vdm>;
|
|
@@ -7,9 +7,12 @@ import { MessageCodec as CompatibleMessageCodec } from "../compatible-engine.d/g
|
|
|
7
7
|
import * as MessageCodecModule from "./google/message-codec.js";
|
|
8
8
|
import { GoogleNativeTransport } from "./google/transport.js";
|
|
9
9
|
import { Structuring } from "../compatible-engine/structuring.js";
|
|
10
|
+
import { env } from 'node:process';
|
|
11
|
+
import { Agent, ProxyAgent } from 'undici';
|
|
10
12
|
export var GoogleNativeEngine;
|
|
11
13
|
(function (GoogleNativeEngine) {
|
|
12
14
|
class Instance extends Engine.Instance {
|
|
15
|
+
options;
|
|
13
16
|
choice;
|
|
14
17
|
codeExecution;
|
|
15
18
|
urlContext;
|
|
@@ -23,7 +26,19 @@ export var GoogleNativeEngine;
|
|
|
23
26
|
transport;
|
|
24
27
|
constructor(options) {
|
|
25
28
|
super(options);
|
|
26
|
-
|
|
29
|
+
this.options = options;
|
|
30
|
+
const proxyUrl = options.endpointSpec.proxy || env.https_proxy || env.HTTPS_PROXY;
|
|
31
|
+
this.providerSpec.dispatcher = proxyUrl
|
|
32
|
+
? new ProxyAgent({
|
|
33
|
+
uri: proxyUrl,
|
|
34
|
+
headersTimeout: 0,
|
|
35
|
+
bodyTimeout: 0,
|
|
36
|
+
})
|
|
37
|
+
: new Agent({
|
|
38
|
+
headersTimeout: 0,
|
|
39
|
+
bodyTimeout: 0,
|
|
40
|
+
});
|
|
41
|
+
if (options.endpointSpec.parallelToolCall === false)
|
|
27
42
|
throw new Error('Parallel tool calling is required by Google engine.');
|
|
28
43
|
this.choice = options.structuringChoice ?? Structuring.Choice.AUTO;
|
|
29
44
|
this.codeExecution = options.codeExecution ?? false;
|
|
@@ -59,9 +74,6 @@ export var GoogleNativeEngine;
|
|
|
59
74
|
billing: this.billing,
|
|
60
75
|
});
|
|
61
76
|
}
|
|
62
|
-
infer(wfctx, session, signal) {
|
|
63
|
-
return this.transport.fetch(wfctx, session, signal);
|
|
64
|
-
}
|
|
65
77
|
appendUserMessage(session, message) {
|
|
66
78
|
return {
|
|
67
79
|
developerMessage: session.developerMessage,
|
|
@@ -72,6 +84,12 @@ export var GoogleNativeEngine;
|
|
|
72
84
|
session.chatMessages.push(message);
|
|
73
85
|
return session;
|
|
74
86
|
}
|
|
87
|
+
clone() {
|
|
88
|
+
const engine = new GoogleNativeEngine.Instance(this.options);
|
|
89
|
+
engine.middlewares = [...this.middlewares];
|
|
90
|
+
engine.statefulMiddlewares = [...this.statefulMiddlewares];
|
|
91
|
+
return engine;
|
|
92
|
+
}
|
|
75
93
|
}
|
|
76
94
|
GoogleNativeEngine.Instance = Instance;
|
|
77
95
|
GoogleNativeEngine.RoleMessage = SessionModule.RoleMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/native-engines.d/google.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/native-engines.d/google.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,4 +2,4 @@ import { Structuring } from './structuring.ts';
|
|
|
2
2
|
import type { Function } from '../../function.ts';
|
|
3
3
|
import type { Verbatim } from '../../verbatim.ts';
|
|
4
4
|
import type { OpenAI } from 'openai';
|
|
5
|
-
export declare function encode<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto>(
|
|
5
|
+
export declare function encode<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto>(structuringChoice: Structuring.Choice<fdu, vdu>): OpenAI.Responses.ToolChoiceOptions | OpenAI.Responses.ToolChoiceAllowed;
|
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
import { Structuring } from "./structuring.js";
|
|
2
|
-
export function encode(
|
|
3
|
-
if (
|
|
2
|
+
export function encode(structuringChoice) {
|
|
3
|
+
if (structuringChoice === Structuring.Choice.NONE)
|
|
4
4
|
return 'none';
|
|
5
|
-
else if (
|
|
5
|
+
else if (structuringChoice === Structuring.Choice.REQUIRED)
|
|
6
6
|
return 'auto';
|
|
7
|
-
else if (
|
|
7
|
+
else if (structuringChoice === Structuring.Choice.ANYONE)
|
|
8
8
|
return 'auto';
|
|
9
|
-
else if (
|
|
9
|
+
else if (structuringChoice === Structuring.Choice.AUTO)
|
|
10
10
|
return 'auto';
|
|
11
|
-
else if (
|
|
11
|
+
else if (structuringChoice === Structuring.Choice.TCall.REQUIRED)
|
|
12
12
|
return 'required';
|
|
13
|
-
else if (
|
|
13
|
+
else if (structuringChoice === Structuring.Choice.TCall.ANYONE)
|
|
14
14
|
return 'required';
|
|
15
|
-
else if (
|
|
15
|
+
else if (structuringChoice instanceof Structuring.Choice.TCall.FCall)
|
|
16
16
|
return {
|
|
17
17
|
type: 'allowed_tools',
|
|
18
18
|
mode: 'required',
|
|
19
|
-
tools: [{ type: 'function', name:
|
|
19
|
+
tools: [{ type: 'function', name: structuringChoice.name }],
|
|
20
20
|
};
|
|
21
|
-
else if (
|
|
21
|
+
else if (structuringChoice === Structuring.Choice.VRequest.REQUIRED)
|
|
22
22
|
return 'none';
|
|
23
|
-
else if (
|
|
23
|
+
else if (structuringChoice === Structuring.Choice.VRequest.ANYONE)
|
|
24
24
|
return 'none';
|
|
25
|
-
else if (
|
|
25
|
+
else if (structuringChoice instanceof Structuring.Choice.VRequest)
|
|
26
26
|
return 'none';
|
|
27
27
|
else
|
|
28
28
|
throw new Error();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"choice-codec.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/choice-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C,MAAM,UAAU,MAAM,CAIlB,
|
|
1
|
+
{"version":3,"file":"choice-codec.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/choice-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAO/C,MAAM,UAAU,MAAM,CAIlB,iBAA+C;IAE/C,IAAI,iBAAiB,KAAK,WAAW,CAAC,MAAM,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;SAC5D,IAAI,iBAAiB,KAAK,WAAW,CAAC,MAAM,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;SACrE,IAAI,iBAAiB,KAAK,WAAW,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;SACnE,IAAI,iBAAiB,KAAK,WAAW,CAAC,MAAM,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;SAEjE,IAAI,iBAAiB,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAC;SAC/E,IAAI,iBAAiB,KAAK,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;SAC7E,IAAI,iBAAiB,YAAY,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK;QAChE,OAAO;YACH,IAAI,EAAE,eAAe;YACrB,IAAI,EAAE,UAAU;YAChB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,CAAC,IAAI,EAAE,CAAiD;SAC9G,CAAC;SAED,IAAI,iBAAiB,KAAK,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;SAC9E,IAAI,iBAAiB,KAAK,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;SAC5E,IAAI,iBAAiB,YAAY,WAAW,CAAC,MAAM,CAAC,QAAQ;QAAE,OAAO,MAAM,CAAC;;QAE5E,MAAM,IAAI,KAAK,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -5,8 +5,10 @@ import { MessageCodec as CompatibleMessageCodec } from '../../compatible-engine.
|
|
|
5
5
|
import type { ToolCodec } from '../../api-types/openai-responses/tool-codec.ts';
|
|
6
6
|
import type { Verbatim } from '../../verbatim.ts';
|
|
7
7
|
export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
8
|
-
protected
|
|
9
|
-
|
|
8
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
9
|
+
protected compatibleMessageCodec: CompatibleMessageCodec<fdm, vdm>;
|
|
10
|
+
protected vdm: vdm;
|
|
11
|
+
constructor(options: MessageCodec.Options<fdm, vdm>);
|
|
10
12
|
encodeFunctionResponse(fr: Function.Response.From<fdm>): OpenAI.Responses.ResponseInputItem.FunctionCallOutput;
|
|
11
13
|
decodeAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): RoleMessage.Ai.From<fdm, vdm>;
|
|
12
14
|
encodeUserMessage(userMessage: RoleMessage.User.From<fdm>): OpenAI.Responses.ResponseInput;
|
|
@@ -15,7 +17,7 @@ export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto, in
|
|
|
15
17
|
encodeChatMessage(chatMessage: Session.ChatMessage.From<fdm, vdm>): OpenAI.Responses.ResponseInput;
|
|
16
18
|
}
|
|
17
19
|
export declare namespace MessageCodec {
|
|
18
|
-
interface
|
|
20
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
19
21
|
toolCodec: ToolCodec<fdm>;
|
|
20
22
|
compatibleMessageCodec: CompatibleMessageCodec<fdm, vdm>;
|
|
21
23
|
vdm: vdm;
|
|
@@ -1,80 +1,91 @@
|
|
|
1
1
|
import { RoleMessage } from "./session.js";
|
|
2
2
|
import { Function } from "../../function.js";
|
|
3
3
|
import { Tool } from "./tool.js";
|
|
4
|
-
import { ResponseInvalid } from "../../engine.js";
|
|
5
4
|
import * as VerbatimCodec from "../../verbatim/codec.js";
|
|
6
5
|
export class MessageCodec {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
toolCodec;
|
|
7
|
+
compatibleMessageCodec;
|
|
8
|
+
vdm;
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.toolCodec = options.toolCodec;
|
|
11
|
+
this.compatibleMessageCodec = options.compatibleMessageCodec;
|
|
12
|
+
this.vdm = options.vdm;
|
|
10
13
|
}
|
|
11
14
|
encodeFunctionResponse(fr) {
|
|
12
|
-
return this.
|
|
15
|
+
return this.toolCodec.encodeFunctionResponse(fr);
|
|
13
16
|
}
|
|
14
17
|
decodeAiMessage(output) {
|
|
15
|
-
const parts =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
try {
|
|
23
|
-
const vrs = VerbatimCodec.Request.decode(text, this.ctx.vdm);
|
|
24
|
-
return [new RoleMessage.Part.Text(text, vrs)];
|
|
18
|
+
const parts = [];
|
|
19
|
+
for (const item of output) {
|
|
20
|
+
if (item.type === 'message')
|
|
21
|
+
for (const part of item.content)
|
|
22
|
+
if (part.type === 'output_text') {
|
|
23
|
+
const vrs = VerbatimCodec.Request.decode(part.text, this.vdm);
|
|
24
|
+
parts.push(new RoleMessage.Part.Text(part.text, vrs));
|
|
25
25
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
throw e;
|
|
31
|
-
}
|
|
32
|
-
else
|
|
33
|
-
return [];
|
|
34
|
-
}
|
|
26
|
+
else if (part.type === 'refusal')
|
|
27
|
+
throw new SyntaxError('Refusal', { cause: output });
|
|
28
|
+
else
|
|
29
|
+
throw new Error();
|
|
35
30
|
else if (item.type === 'function_call')
|
|
36
|
-
|
|
37
|
-
else if (item.type === 'reasoning')
|
|
38
|
-
return [];
|
|
31
|
+
parts.push(this.toolCodec.decodeFunctionCall(item));
|
|
32
|
+
else if (item.type === 'reasoning') { }
|
|
39
33
|
else if (item.type === 'apply_patch_call')
|
|
40
|
-
|
|
34
|
+
parts.push(new Tool.ApplyPatch.Call(item));
|
|
41
35
|
else
|
|
42
36
|
throw new Error();
|
|
43
|
-
}
|
|
37
|
+
}
|
|
38
|
+
;
|
|
44
39
|
return new RoleMessage.Ai(parts, output);
|
|
45
40
|
}
|
|
46
41
|
encodeUserMessage(userMessage) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
42
|
+
const responseInput = [];
|
|
43
|
+
let content = [];
|
|
44
|
+
function flush() {
|
|
45
|
+
if (content.length) {
|
|
46
|
+
responseInput.push({
|
|
50
47
|
type: 'message',
|
|
51
48
|
role: 'user',
|
|
52
|
-
content
|
|
53
|
-
};
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
49
|
+
content,
|
|
50
|
+
});
|
|
51
|
+
content = [];
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
for (const part of userMessage.getParts()) {
|
|
55
|
+
if (part instanceof RoleMessage.Part.Text)
|
|
56
|
+
content.push({
|
|
57
|
+
type: 'input_text',
|
|
58
|
+
text: part.text,
|
|
59
|
+
});
|
|
60
|
+
else if (part instanceof Function.Response) {
|
|
61
|
+
flush();
|
|
62
|
+
responseInput.push(this.encodeFunctionResponse(part));
|
|
63
|
+
}
|
|
64
|
+
else if (part instanceof Tool.ApplyPatch.Response) {
|
|
65
|
+
flush();
|
|
66
|
+
responseInput.push({
|
|
58
67
|
type: 'apply_patch_call_output',
|
|
59
68
|
call_id: part.id,
|
|
60
69
|
status: part.failure ? 'failed' : 'completed',
|
|
61
70
|
output: part.failure || undefined,
|
|
62
|
-
};
|
|
71
|
+
});
|
|
72
|
+
}
|
|
63
73
|
else
|
|
64
74
|
throw new Error();
|
|
65
|
-
}
|
|
75
|
+
}
|
|
76
|
+
;
|
|
77
|
+
flush();
|
|
78
|
+
return responseInput;
|
|
66
79
|
}
|
|
67
80
|
encodeAiMessage(aiMessage) {
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
throw new Error('Computer calls are not supported yet.');
|
|
74
|
-
});
|
|
81
|
+
const responseInput = aiMessage.getRaw();
|
|
82
|
+
if (responseInput.every(item => item.type !== 'computer_call_output')) { }
|
|
83
|
+
else
|
|
84
|
+
throw new Error('Computer calls are not supported yet.');
|
|
85
|
+
return responseInput;
|
|
75
86
|
}
|
|
76
87
|
encodeDeveloperMessage(developerMessage) {
|
|
77
|
-
return this.
|
|
88
|
+
return this.compatibleMessageCodec.encodeDeveloperMessage(developerMessage);
|
|
78
89
|
}
|
|
79
90
|
encodeChatMessage(chatMessage) {
|
|
80
91
|
if (chatMessage instanceof RoleMessage.User)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/message-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,OAAO,
|
|
1
|
+
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/message-codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type InferenceParams, type ProviderSpec } from '../../engine.ts';
|
|
2
2
|
import { RoleMessage, type Session } from './session.ts';
|
|
3
3
|
import { Function } from '../../function.ts';
|
|
4
|
-
import
|
|
4
|
+
import OpenAI from 'openai';
|
|
5
5
|
import { type InferenceContext } from '../../inference-context.ts';
|
|
6
6
|
import { Throttle } from '../../throttle.ts';
|
|
7
7
|
import type { MessageCodec } from './message-codec.ts';
|
|
@@ -10,15 +10,23 @@ import type { Billing } from '../../api-types/openai-responses/billing.ts';
|
|
|
10
10
|
import type { Verbatim } from '../../verbatim.ts';
|
|
11
11
|
import { Structuring } from './structuring.ts';
|
|
12
12
|
export declare class Transport<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> {
|
|
13
|
-
protected
|
|
14
|
-
protected
|
|
15
|
-
|
|
16
|
-
protected
|
|
13
|
+
protected client: OpenAI;
|
|
14
|
+
protected inferenceParams: InferenceParams;
|
|
15
|
+
protected providerSpec: ProviderSpec;
|
|
16
|
+
protected fdm: fdm;
|
|
17
|
+
protected throttle: Throttle;
|
|
18
|
+
protected choice: Structuring.Choice.From<fdm, vdm>;
|
|
19
|
+
protected applyPatch: boolean;
|
|
20
|
+
protected messageCodec: MessageCodec<fdm, vdm>;
|
|
21
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
22
|
+
protected billing: Billing;
|
|
23
|
+
constructor(options: Transport.Options<fdm, vdm>);
|
|
24
|
+
protected makeParams(session: Session.From<fdm, vdm>): OpenAI.Responses.ResponseCreateParamsStreaming;
|
|
17
25
|
protected logAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): void;
|
|
18
26
|
fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
|
|
19
27
|
}
|
|
20
28
|
export declare namespace Transport {
|
|
21
|
-
interface
|
|
29
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
22
30
|
inferenceParams: InferenceParams;
|
|
23
31
|
providerSpec: ProviderSpec;
|
|
24
32
|
fdm: fdm;
|
|
@@ -1,29 +1,50 @@
|
|
|
1
|
-
import
|
|
2
|
-
import * as Undici from 'undici';
|
|
1
|
+
import OpenAI from 'openai';
|
|
3
2
|
import { loggers } from "../../telemetry.js";
|
|
4
3
|
import * as ChoiceCodec from "./choice-codec.js";
|
|
5
|
-
import
|
|
4
|
+
import * as Undici from 'undici';
|
|
6
5
|
export class Transport {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
6
|
+
client;
|
|
7
|
+
inferenceParams;
|
|
8
|
+
providerSpec;
|
|
9
|
+
fdm;
|
|
10
|
+
throttle;
|
|
11
|
+
choice;
|
|
12
|
+
applyPatch;
|
|
13
|
+
messageCodec;
|
|
14
|
+
toolCodec;
|
|
15
|
+
billing;
|
|
16
|
+
constructor(options) {
|
|
17
|
+
this.client = new OpenAI({
|
|
18
|
+
baseURL: options.providerSpec.baseUrl,
|
|
19
|
+
apiKey: options.providerSpec.apiKey,
|
|
20
|
+
fetch: Undici.fetch,
|
|
21
|
+
fetchOptions: { dispatcher: options.providerSpec.dispatcher },
|
|
22
|
+
});
|
|
23
|
+
this.inferenceParams = options.inferenceParams;
|
|
24
|
+
this.providerSpec = options.providerSpec;
|
|
25
|
+
this.fdm = options.fdm;
|
|
26
|
+
this.throttle = options.throttle;
|
|
27
|
+
this.choice = options.choice;
|
|
28
|
+
this.applyPatch = options.applyPatch;
|
|
29
|
+
this.messageCodec = options.messageCodec;
|
|
30
|
+
this.toolCodec = options.toolCodec;
|
|
31
|
+
this.billing = options.billing;
|
|
12
32
|
}
|
|
13
33
|
makeParams(session) {
|
|
14
|
-
const tools = this.
|
|
15
|
-
if (this.
|
|
34
|
+
const tools = this.toolCodec.encodeFunctionDeclarationMap(this.fdm);
|
|
35
|
+
if (this.applyPatch)
|
|
16
36
|
tools.push({ type: 'apply_patch' });
|
|
17
37
|
return {
|
|
18
|
-
model: this.
|
|
38
|
+
model: this.inferenceParams.model,
|
|
19
39
|
include: ['reasoning.encrypted_content'],
|
|
20
40
|
store: false,
|
|
21
|
-
|
|
22
|
-
|
|
41
|
+
stream: true,
|
|
42
|
+
input: session.chatMessages.flatMap(chatMessage => this.messageCodec.encodeChatMessage(chatMessage)),
|
|
43
|
+
instructions: session.developerMessage && this.messageCodec.encodeDeveloperMessage(session.developerMessage),
|
|
23
44
|
tools: tools.length ? tools : undefined,
|
|
24
|
-
tool_choice: tools.length ? ChoiceCodec.encode(this.
|
|
25
|
-
parallel_tool_calls: tools.length ? this.
|
|
26
|
-
...this.
|
|
45
|
+
tool_choice: tools.length ? ChoiceCodec.encode(this.choice) : undefined,
|
|
46
|
+
parallel_tool_calls: tools.length ? this.inferenceParams.parallelToolCall : undefined,
|
|
47
|
+
...this.inferenceParams.additionalOptions,
|
|
27
48
|
};
|
|
28
49
|
}
|
|
29
50
|
logAiMessage(output) {
|
|
@@ -31,7 +52,7 @@ export class Transport {
|
|
|
31
52
|
if (item.type === 'message') {
|
|
32
53
|
if (item.content.every(part => part.type === 'output_text')) { }
|
|
33
54
|
else
|
|
34
|
-
throw new
|
|
55
|
+
throw new SyntaxError('Refusal', { cause: output });
|
|
35
56
|
loggers.inference.info(item.content.map(part => part.text).join(''));
|
|
36
57
|
}
|
|
37
58
|
else if (item.type === 'function_call')
|
|
@@ -40,56 +61,37 @@ export class Transport {
|
|
|
40
61
|
loggers.message.info(item);
|
|
41
62
|
}
|
|
42
63
|
async fetch(wfctx, session, signal) {
|
|
43
|
-
await this.
|
|
64
|
+
await this.throttle.requests(wfctx);
|
|
44
65
|
// Prepare request
|
|
45
66
|
const params = this.makeParams(session);
|
|
46
67
|
loggers.message.debug(params);
|
|
47
68
|
// Send request
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
if (e instanceof TypeError)
|
|
59
|
-
throw new NetworkError(undefined, { cause: e });
|
|
60
|
-
else
|
|
61
|
-
throw e;
|
|
62
|
-
});
|
|
63
|
-
// Get response
|
|
64
|
-
if (res.ok) { }
|
|
65
|
-
else {
|
|
66
|
-
const contentType = res.headers.get('Content-Type');
|
|
67
|
-
if (contentType) { }
|
|
68
|
-
else
|
|
69
|
-
throw new Error(res.statusText, { cause: res });
|
|
70
|
-
const mimeType = new MIMEType(contentType);
|
|
71
|
-
if (mimeType.essence === 'application/json')
|
|
72
|
-
throw new Error(res.statusText, { cause: await res.json() });
|
|
73
|
-
else if (mimeType.type === 'text')
|
|
74
|
-
throw new Error(res.statusText, { cause: await res.text() });
|
|
75
|
-
else
|
|
76
|
-
throw new Error(res.statusText, { cause: res });
|
|
69
|
+
let response = null;
|
|
70
|
+
const stream = await this.client.responses.create(params, { signal });
|
|
71
|
+
for await (const event of stream) {
|
|
72
|
+
loggers.stream.trace(event);
|
|
73
|
+
if (event.type === 'response.completed')
|
|
74
|
+
response = event.response;
|
|
75
|
+
else if (event.type === 'response.incomplete')
|
|
76
|
+
response = event.response;
|
|
77
|
+
else if (event.type === 'error')
|
|
78
|
+
throw new SyntaxError(event.message, { cause: event });
|
|
77
79
|
}
|
|
78
|
-
const response = await res.json();
|
|
79
|
-
loggers.message.debug(response);
|
|
80
80
|
// Validate response
|
|
81
|
-
if (response
|
|
82
|
-
|
|
81
|
+
if (response) { }
|
|
82
|
+
else
|
|
83
|
+
throw new Error();
|
|
84
|
+
loggers.message.debug(response);
|
|
83
85
|
if (response.status === 'completed') { }
|
|
84
86
|
else
|
|
85
|
-
throw new
|
|
87
|
+
throw new SyntaxError('Abnormal response status', { cause: response });
|
|
86
88
|
if (response.usage) { }
|
|
87
89
|
else
|
|
88
90
|
throw new Error();
|
|
89
91
|
this.logAiMessage(response.output);
|
|
90
|
-
wfctx.cost?.(this.
|
|
92
|
+
wfctx.cost?.(this.billing.charge(response.usage));
|
|
91
93
|
loggers.message.info(response.usage);
|
|
92
|
-
return this.
|
|
94
|
+
return this.messageCodec.decodeAiMessage(response.output);
|
|
93
95
|
}
|
|
94
96
|
}
|
|
95
97
|
//# sourceMappingURL=transport.js.map
|