@zimtsui/typechat 0.0.105 → 0.0.107
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/README.md +0 -5
- package/assets/xml/instruction.md +19 -0
- package/assets/xml/quotation.handlebars +1 -0
- package/assets/xml/system.handlebars +1 -0
- package/build/adaptor.d.ts +6 -7
- package/build/adaptor.js.map +1 -1
- package/build/assets.d.ts +1 -3
- package/build/assets.js +4 -6
- package/build/assets.js.map +1 -1
- package/build/engine/message.d.ts +7 -15
- package/build/engine/message.js +4 -19
- package/build/engine/message.js.map +1 -1
- package/build/engine/middleware.d.ts +3 -4
- package/build/engine/parts-validator.d.ts +3 -4
- package/build/engine/parts-validator.js.map +1 -1
- package/build/engine/recoverable.d.ts +7 -8
- package/build/engine/recoverable.js.map +1 -1
- package/build/engine/session.d.ts +5 -6
- package/build/engine/tool-choice-validator.d.ts +14 -0
- package/build/engine/tool-choice-validator.js +44 -0
- package/build/engine/tool-choice-validator.js.map +1 -0
- package/build/engine/transport.d.ts +2 -3
- package/build/engine.d.ts +23 -26
- package/build/engine.js +14 -21
- package/build/engine.js.map +1 -1
- package/build/engines/anthropic/message-codec.d.ts +6 -9
- package/build/engines/anthropic/message-codec.js +2 -7
- package/build/engines/anthropic/message-codec.js.map +1 -1
- package/build/engines/anthropic/message.d.ts +2 -3
- package/build/engines/anthropic/message.js.map +1 -1
- package/build/engines/anthropic/tool-choice-codec.d.ts +3 -0
- package/build/engines/anthropic/tool-choice-codec.js +15 -0
- package/build/engines/anthropic/tool-choice-codec.js.map +1 -0
- package/build/engines/anthropic/transport.d.ts +10 -11
- package/build/engines/anthropic/transport.js +4 -4
- package/build/engines/anthropic/transport.js.map +1 -1
- package/build/engines/anthropic.d.ts +8 -9
- package/build/engines/anthropic.js +1 -2
- package/build/engines/anthropic.js.map +1 -1
- package/build/engines/google/message-codec.d.ts +6 -9
- package/build/engines/google/message-codec.js +3 -9
- package/build/engines/google/message-codec.js.map +1 -1
- package/build/engines/google/message.d.ts +3 -4
- package/build/engines/google/message.js +2 -2
- package/build/engines/google/message.js.map +1 -1
- package/build/engines/google/tool-choice-codec.d.ts +3 -0
- package/build/engines/google/tool-choice-codec.js +15 -0
- package/build/engines/google/tool-choice-codec.js.map +1 -0
- package/build/engines/google/transport.d.ts +9 -10
- package/build/engines/google/transport.js +4 -4
- package/build/engines/google/transport.js.map +1 -1
- package/build/engines/google.d.ts +15 -16
- package/build/engines/google.js +10 -18
- package/build/engines/google.js.map +1 -1
- package/build/engines/openai-chatcompletions/message-codec.d.ts +8 -11
- package/build/engines/openai-chatcompletions/message-codec.js +13 -15
- package/build/engines/openai-chatcompletions/message-codec.js.map +1 -1
- package/build/engines/openai-chatcompletions/tool-choice-codec.d.ts +3 -0
- package/build/engines/openai-chatcompletions/tool-choice-codec.js +14 -0
- package/build/engines/openai-chatcompletions/tool-choice-codec.js.map +1 -0
- package/build/engines/openai-chatcompletions/transport.d.ts +10 -11
- package/build/engines/openai-chatcompletions/transport.js +4 -4
- package/build/engines/openai-chatcompletions/transport.js.map +1 -1
- package/build/engines/openai-chatcompletions.d.ts +8 -9
- package/build/engines/openai-chatcompletions.js +1 -4
- package/build/engines/openai-chatcompletions.js.map +1 -1
- package/build/engines/openai-responses/message-codec.d.ts +6 -9
- package/build/engines/openai-responses/message-codec.js +2 -7
- package/build/engines/openai-responses/message-codec.js.map +1 -1
- package/build/engines/openai-responses/message.d.ts +2 -3
- package/build/engines/openai-responses/message.js.map +1 -1
- package/build/engines/openai-responses/tool-choice-codec.d.ts +3 -0
- package/build/engines/openai-responses/tool-choice-codec.js +14 -0
- package/build/engines/openai-responses/tool-choice-codec.js.map +1 -0
- package/build/engines/openai-responses/tool-choice-validator.d.ts +11 -0
- package/build/engines/openai-responses/tool-choice-validator.js +50 -0
- package/build/engines/openai-responses/tool-choice-validator.js.map +1 -0
- package/build/engines/openai-responses/transport.d.ts +10 -11
- package/build/engines/openai-responses/transport.js +4 -4
- package/build/engines/openai-responses/transport.js.map +1 -1
- package/build/engines/openai-responses.d.ts +16 -17
- package/build/engines/openai-responses.js +10 -20
- package/build/engines/openai-responses.js.map +1 -1
- package/build/exports.d.ts +2 -2
- package/build/exports.js +2 -2
- package/build/exports.js.map +1 -1
- package/build/function.d.ts +3 -2
- package/build/function.js.map +1 -1
- package/build/media.js +2 -2
- package/build/media.js.map +1 -1
- package/build/tool-choice.d.ts +7 -0
- package/build/tool-choice.js +8 -0
- package/build/tool-choice.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/xml/helpers.js.map +1 -0
- package/build/{verbatim/codec → xml}/quotation.js +2 -2
- package/build/xml/quotation.js.map +1 -0
- package/build/xml/system.js +7 -0
- package/build/xml/system.js.map +1 -0
- package/build/xml.d.ts +2 -0
- package/build/xml.js +3 -0
- package/build/xml.js.map +1 -0
- package/package.json +2 -2
- package/assets/verbatim/declarations.handlebars +0 -12
- package/assets/verbatim/instruction.md +0 -55
- package/assets/verbatim/quotation.handlebars +0 -1
- package/assets/verbatim/response.handlebars +0 -1
- package/assets/verbatim/system.handlebars +0 -1
- package/build/engine/structuring-validator.d.ts +0 -15
- package/build/engine/structuring-validator.js +0 -64
- package/build/engine/structuring-validator.js.map +0 -1
- package/build/engines/anthropic/structuring-choice-codec.d.ts +0 -5
- package/build/engines/anthropic/structuring-choice-codec.js +0 -23
- package/build/engines/anthropic/structuring-choice-codec.js.map +0 -1
- package/build/engines/google/structuring-choice-codec.d.ts +0 -5
- package/build/engines/google/structuring-choice-codec.js +0 -23
- package/build/engines/google/structuring-choice-codec.js.map +0 -1
- package/build/engines/openai-chatcompletions/structuring-choice-codec.d.ts +0 -5
- package/build/engines/openai-chatcompletions/structuring-choice-codec.js +0 -22
- package/build/engines/openai-chatcompletions/structuring-choice-codec.js.map +0 -1
- package/build/engines/openai-responses/structuring-choice-codec.d.ts +0 -3
- package/build/engines/openai-responses/structuring-choice-codec.js +0 -22
- package/build/engines/openai-responses/structuring-choice-codec.js.map +0 -1
- package/build/engines/openai-responses/structuring-validator.d.ts +0 -12
- package/build/engines/openai-responses/structuring-validator.js +0 -64
- package/build/engines/openai-responses/structuring-validator.js.map +0 -1
- package/build/structuring-choice.d.ts +0 -15
- package/build/structuring-choice.js +0 -18
- package/build/structuring-choice.js.map +0 -1
- package/build/verbatim/codec/declarations.d.ts +0 -2
- package/build/verbatim/codec/declarations.js +0 -25
- package/build/verbatim/codec/declarations.js.map +0 -1
- package/build/verbatim/codec/helpers.js.map +0 -1
- package/build/verbatim/codec/quotation.js.map +0 -1
- package/build/verbatim/codec/request.d.ts +0 -11
- package/build/verbatim/codec/request.js +0 -81
- package/build/verbatim/codec/request.js.map +0 -1
- package/build/verbatim/codec/response.d.ts +0 -2
- package/build/verbatim/codec/response.js +0 -7
- package/build/verbatim/codec/response.js.map +0 -1
- package/build/verbatim/codec/system.js +0 -7
- package/build/verbatim/codec/system.js.map +0 -1
- package/build/verbatim/codec.d.ts +0 -5
- package/build/verbatim/codec.js +0 -6
- package/build/verbatim/codec.js.map +0 -1
- package/build/verbatim.d.ts +0 -76
- package/build/verbatim.js +0 -17
- package/build/verbatim.js.map +0 -1
- /package/build/{verbatim/codec → xml}/helpers.d.ts +0 -0
- /package/build/{verbatim/codec → xml}/helpers.js +0 -0
- /package/build/{verbatim/codec → xml}/quotation.d.ts +0 -0
- /package/build/{verbatim/codec → xml}/system.d.ts +0 -0
|
@@ -3,22 +3,19 @@ import { RoleMessage } from './message.ts';
|
|
|
3
3
|
import { Function } from '../../function.ts';
|
|
4
4
|
import OpenAI from 'openai';
|
|
5
5
|
import type { ToolCodec } from './tool-codec.ts';
|
|
6
|
-
import type { Verbatim } from '../../verbatim.ts';
|
|
7
6
|
import { Media } from '../../media.ts';
|
|
8
|
-
export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto
|
|
7
|
+
export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto> {
|
|
9
8
|
protected toolCodec: ToolCodec<fdm>;
|
|
10
|
-
|
|
11
|
-
constructor(options: MessageCodec.Options<fdm, vdm>);
|
|
9
|
+
constructor(options: MessageCodec.Options<fdm>);
|
|
12
10
|
protected encodeImageResolution(resolution: Media.Image.Resolution): OpenAI.Responses.ResponseInputImage['detail'];
|
|
13
|
-
decodeAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): RoleMessage.Ai.From<fdm
|
|
11
|
+
decodeAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): RoleMessage.Ai.From<fdm>;
|
|
14
12
|
encodeUserMessage(userMessage: Engine.RoleMessage.User.From<fdm>): OpenAI.Responses.ResponseInput;
|
|
15
|
-
encodeAiMessage(aiMessage: Engine.RoleMessage.Ai.From<fdm
|
|
13
|
+
encodeAiMessage(aiMessage: Engine.RoleMessage.Ai.From<fdm>): OpenAI.Responses.ResponseInput;
|
|
16
14
|
encodeDeveloperMessage(developerMessage: Engine.RoleMessage.Developer): string;
|
|
17
|
-
encodeChatMessage(chatMessage: Engine.Session.ChatMessage.From<fdm
|
|
15
|
+
encodeChatMessage(chatMessage: Engine.Session.ChatMessage.From<fdm>): OpenAI.Responses.ResponseInput;
|
|
18
16
|
}
|
|
19
17
|
export declare namespace MessageCodec {
|
|
20
|
-
interface Options<in out fdm extends Function.Decl.Map.Proto
|
|
18
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto> {
|
|
21
19
|
toolCodec: ToolCodec<fdm>;
|
|
22
|
-
vdm: vdm;
|
|
23
20
|
}
|
|
24
21
|
}
|
|
@@ -2,14 +2,11 @@ import { Engine } from "../../engine.js";
|
|
|
2
2
|
import { RoleMessage } from "./message.js";
|
|
3
3
|
import { Function } from "../../function.js";
|
|
4
4
|
import { Tool } from "./tool.js";
|
|
5
|
-
import * as VerbatimCodec from "../../verbatim/codec.js";
|
|
6
5
|
import { Media } from "../../media.js";
|
|
7
6
|
export class MessageCodec {
|
|
8
7
|
toolCodec;
|
|
9
|
-
vdm;
|
|
10
8
|
constructor(options) {
|
|
11
9
|
this.toolCodec = options.toolCodec;
|
|
12
|
-
this.vdm = options.vdm;
|
|
13
10
|
}
|
|
14
11
|
encodeImageResolution(resolution) {
|
|
15
12
|
if (resolution === 1 /* Media.Image.Resolution.LOW */)
|
|
@@ -28,10 +25,8 @@ export class MessageCodec {
|
|
|
28
25
|
for (const item of output) {
|
|
29
26
|
if (item.type === 'message')
|
|
30
27
|
for (const part of item.content)
|
|
31
|
-
if (part.type === 'output_text')
|
|
32
|
-
|
|
33
|
-
parts.push(new RoleMessage.Ai.Part.Text(part.text, vreqs));
|
|
34
|
-
}
|
|
28
|
+
if (part.type === 'output_text')
|
|
29
|
+
parts.push(new RoleMessage.Ai.Part.Text(part.text));
|
|
35
30
|
else if (part.type === 'refusal')
|
|
36
31
|
throw new SyntaxError('Refusal', { cause: output });
|
|
37
32
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/message-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/message-codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { Engine } from '../../engine.ts';
|
|
2
2
|
import { Function } from '../../function.ts';
|
|
3
3
|
import { Tool } from './tool.ts';
|
|
4
|
-
import type { Verbatim } from '../../verbatim.ts';
|
|
5
4
|
import OpenAI from 'openai';
|
|
6
5
|
declare const NOMINAL: unique symbol;
|
|
7
6
|
export declare namespace RoleMessage {
|
|
8
|
-
class Ai<in out fdu extends Function.Decl.Proto
|
|
7
|
+
class Ai<in out fdu extends Function.Decl.Proto> extends Engine.RoleMessage.Ai<fdu> {
|
|
9
8
|
protected raw: OpenAI.Responses.ResponseOutputItem[];
|
|
10
9
|
protected [NOMINAL]: never;
|
|
11
10
|
constructor(parts: unknown[], raw: OpenAI.Responses.ResponseOutputItem[]);
|
|
@@ -14,7 +13,7 @@ export declare namespace RoleMessage {
|
|
|
14
13
|
getOnlyToolCall(): Tool.Call.Of<fdu>;
|
|
15
14
|
}
|
|
16
15
|
namespace Ai {
|
|
17
|
-
type From<fdm extends Function.Decl.Map.Proto
|
|
16
|
+
type From<fdm extends Function.Decl.Map.Proto> = Ai<Function.Decl.From<fdm>>;
|
|
18
17
|
namespace Part {
|
|
19
18
|
export import Text = Engine.RoleMessage.Ai.Part.Text;
|
|
20
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAGzB,MAAM,KAAW,WAAW,CA2C3B;AA3CD,WAAiB,WAAW;IACxB,MAAa,EAEX,SAAQ,MAAM,CAAC,WAAW,CAAC,EAAO;QAIlB;QAFd,YACI,KAAgB,EACN,GAA0C;YAEpD,KAAK,CAAC,KAAK,CAAC,CAAC;YAFH,QAAG,GAAH,GAAG,CAAuC;QAGxD,CAAC;QAEM,MAAM;YACT,OAAO,IAAI,CAAC,GAAG,CAAC;QACpB,CAAC;QACM,YAAY;YACf,MAAM,GAAG,GAAwB,EAAE,CAAC;YACpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK;gBACzB,IAAI,IAAI,YAAY,QAAQ,CAAC,IAAI,IAAI,IAAI,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;oBACxE,MAAM,EAAE,GAAG,IAAyB,CAAC;oBACrC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBACjB,CAAC;YACL,OAAO,GAAG,CAAC;QACf,CAAC;QACM,eAAe;YAClB,MAAM,GAAG,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;YAChC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,CAAA,CAAC;;gBAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAChD,OAAO,GAAG,CAAC,CAAC,CAAE,CAAC;QACnB,CAAC;KACJ;IA5BY,cAAE,KA4Bd,CAAA;IAED,WAAiB,EAAE;QAKf,IAAiB,IAAI,CAEpB;QAFD,WAAiB,IAAI;YACH,SAAI,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QACzD,CAAC,EAFgB,IAAI,GAAJ,OAAI,KAAJ,OAAI,QAEpB;IACL,CAAC,EARgB,EAAE,GAAF,cAAE,KAAF,cAAE,QAQlB;IAEa,gBAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,qBAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;AAC3D,CAAC,EA3CgB,WAAW,KAAX,WAAW,QA2C3B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ToolChoice } from "../../tool-choice.js";
|
|
2
|
+
export function encode(toolChoice) {
|
|
3
|
+
if (toolChoice === ToolChoice.NONE)
|
|
4
|
+
return 'none';
|
|
5
|
+
else if (toolChoice === ToolChoice.REQUIRED)
|
|
6
|
+
return 'required';
|
|
7
|
+
else if (toolChoice === ToolChoice.ANYONE)
|
|
8
|
+
return 'required';
|
|
9
|
+
else if (toolChoice === ToolChoice.AUTO)
|
|
10
|
+
return 'auto';
|
|
11
|
+
else
|
|
12
|
+
throw new Error();
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=tool-choice-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-choice-codec.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/tool-choice-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIlD,MAAM,UAAU,MAAM,CAClB,UAAsB;IAEtB,IAAI,UAAU,KAAK,UAAU,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;SAC7C,IAAI,UAAU,KAAK,UAAU,CAAC,QAAQ;QAAE,OAAO,UAAU,CAAC;SAC1D,IAAI,UAAU,KAAK,UAAU,CAAC,MAAM;QAAE,OAAO,UAAU,CAAC;SACxD,IAAI,UAAU,KAAK,UAAU,CAAC,IAAI;QAAE,OAAO,MAAM,CAAC;;QAClD,MAAM,IAAI,KAAK,EAAE,CAAC;AAC3B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Function } from '../../function.ts';
|
|
2
|
+
import { RoleMessage } from './message.ts';
|
|
3
|
+
import { Engine } from '../../engine.ts';
|
|
4
|
+
export declare class ToolChoiceValidator<in out fdu extends Function.Decl.Proto> extends Engine.ToolChoiceValidator<fdu> {
|
|
5
|
+
constructor(options: ToolChoiceValidator.Options);
|
|
6
|
+
validate(aiMessage: RoleMessage.Ai<fdu>): RoleMessage.User<fdu> | void;
|
|
7
|
+
}
|
|
8
|
+
export declare namespace ToolChoiceValidator {
|
|
9
|
+
type From<fdm extends Function.Decl.Map.Proto> = ToolChoiceValidator<Function.Decl.From<fdm>>;
|
|
10
|
+
type Options = Engine.ToolChoiceValidator.Options;
|
|
11
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Function } from "../../function.js";
|
|
2
|
+
import { RoleMessage } from "./message.js";
|
|
3
|
+
import * as XmlCodec from "../../xml.js";
|
|
4
|
+
import { ToolChoice } from "../../tool-choice.js";
|
|
5
|
+
import { Engine } from "../../engine.js";
|
|
6
|
+
import { Tool } from "./tool.js";
|
|
7
|
+
export class ToolChoiceValidator extends Engine.ToolChoiceValidator {
|
|
8
|
+
constructor(options) {
|
|
9
|
+
super(options);
|
|
10
|
+
}
|
|
11
|
+
validate(aiMessage) {
|
|
12
|
+
const tcalls = aiMessage.getToolCalls();
|
|
13
|
+
const tress = tcalls.map(tcall => tcall instanceof Tool.ApplyPatch.Call
|
|
14
|
+
? new Tool.ApplyPatch.Response({
|
|
15
|
+
id: tcall.raw.call_id,
|
|
16
|
+
failure: XmlCodec.System.encode('Cancelled by system.'),
|
|
17
|
+
})
|
|
18
|
+
: Function.Response.Failed.of({
|
|
19
|
+
id: tcall.id,
|
|
20
|
+
name: tcall.name,
|
|
21
|
+
error: XmlCodec.System.encode('Cancelled by system.'),
|
|
22
|
+
}));
|
|
23
|
+
if (this.toolChoice === ToolChoice.REQUIRED) {
|
|
24
|
+
if (tcalls.length) { }
|
|
25
|
+
else
|
|
26
|
+
return new RoleMessage.User([
|
|
27
|
+
RoleMessage.User.Part.Text.paragraph(XmlCodec.System.encode(`Error: Tool call required, but not found.`)),
|
|
28
|
+
]);
|
|
29
|
+
}
|
|
30
|
+
else if (this.toolChoice === ToolChoice.ANYONE) {
|
|
31
|
+
if (tcalls.length) { }
|
|
32
|
+
else
|
|
33
|
+
return new RoleMessage.User([
|
|
34
|
+
RoleMessage.User.Part.Text.paragraph(XmlCodec.System.encode(`Error: Tool call required, but not found.`)),
|
|
35
|
+
]);
|
|
36
|
+
if (tcalls.length > 1)
|
|
37
|
+
return new RoleMessage.User([
|
|
38
|
+
...tress,
|
|
39
|
+
RoleMessage.User.Part.Text.paragraph(XmlCodec.System.encode(`Error: Only 1 tool call allowed, but multiple found.`)),
|
|
40
|
+
]);
|
|
41
|
+
}
|
|
42
|
+
else if (this.toolChoice === ToolChoice.NONE) {
|
|
43
|
+
if (tcalls.length)
|
|
44
|
+
return new RoleMessage.User([
|
|
45
|
+
RoleMessage.User.Part.Text.paragraph(XmlCodec.System.encode(`Error: No tool call allowed.`)),
|
|
46
|
+
]);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=tool-choice-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-choice-validator.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/tool-choice-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,MAAM,OAAO,mBAEX,SAAQ,MAAM,CAAC,mBAAwB;IACrC,YAAmB,OAAoC;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAEe,QAAQ,CACpB,SAA8B;QAE9B,MAAM,MAAM,GAAG,SAAS,CAAC,YAAY,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CACpB,KAAK,CAAC,EAAE,CAAC,KAAK,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI;YAC1C,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAC3B,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO;gBACrB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC;aAC1D,CAAC;YACF,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1B,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC;aACZ,CAAC,CACrD,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA,CAAC;;gBACjB,OAAO,IAAI,WAAW,CAAC,IAAI,CAAQ;oBAC/B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,2CAA2C,CAAC,CACtE;iBACJ,CAAC,CAAC;QAEX,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YAC/C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA,CAAC;;gBACjB,OAAO,IAAI,WAAW,CAAC,IAAI,CAAQ;oBAC/B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,2CAA2C,CAAC,CACtE;iBACJ,CAAC,CAAC;YACP,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBACjB,OAAO,IAAI,WAAW,CAAC,IAAI,CAAM;oBAC7B,GAAG,KAAK;oBACR,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,sDAAsD,CAAC,CACjF;iBACJ,CAAC,CAAC;QAEX,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;YAC7C,IAAI,MAAM,CAAC,MAAM;gBACb,OAAO,IAAI,WAAW,CAAC,IAAI,CAAM;oBAC7B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,8BAA8B,CAAC,CACzD;iBACJ,CAAC,CAAC;QACX,CAAC;IACL,CAAC;CACJ"}
|
|
@@ -8,34 +8,33 @@ import { Throttle } from '../../throttle.ts';
|
|
|
8
8
|
import type { MessageCodec } from './message-codec.ts';
|
|
9
9
|
import type { ToolCodec } from './tool-codec.ts';
|
|
10
10
|
import type { Billing } from './billing.ts';
|
|
11
|
-
import
|
|
12
|
-
import { StructuringChoice } from '../../structuring-choice.ts';
|
|
11
|
+
import { ToolChoice } from '../../tool-choice.ts';
|
|
13
12
|
import type { Engine } from '../../engine.ts';
|
|
14
|
-
export declare class Transport<in out fdm extends Function.Decl.Map.Proto
|
|
13
|
+
export declare class Transport<in out fdm extends Function.Decl.Map.Proto> implements Engine.Transport<fdm> {
|
|
15
14
|
protected client: OpenAI;
|
|
16
15
|
protected inferenceParams: InferenceOptions;
|
|
17
16
|
protected providerSpec: ProviderSpecs;
|
|
18
17
|
protected fdm: fdm;
|
|
19
18
|
protected throttle: Throttle;
|
|
20
|
-
protected
|
|
19
|
+
protected toolChoice: ToolChoice;
|
|
21
20
|
protected applyPatch: boolean;
|
|
22
|
-
protected messageCodec: MessageCodec<fdm
|
|
21
|
+
protected messageCodec: MessageCodec<fdm>;
|
|
23
22
|
protected toolCodec: ToolCodec<fdm>;
|
|
24
23
|
protected billing: Billing;
|
|
25
|
-
constructor(options: Transport.Options<fdm
|
|
26
|
-
protected makeParams(session: Session.From<fdm
|
|
24
|
+
constructor(options: Transport.Options<fdm>);
|
|
25
|
+
protected makeParams(session: Session.From<fdm>): OpenAI.Responses.ResponseCreateParamsStreaming;
|
|
27
26
|
protected logAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): void;
|
|
28
|
-
fetch(wfctx: InferenceContext, session: Session.From<fdm
|
|
27
|
+
fetch(wfctx: InferenceContext, session: Session.From<fdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm>>;
|
|
29
28
|
}
|
|
30
29
|
export declare namespace Transport {
|
|
31
|
-
interface Options<in out fdm extends Function.Decl.Map.Proto
|
|
30
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto> {
|
|
32
31
|
inferenceParams: InferenceOptions;
|
|
33
32
|
providerSpec: ProviderSpecs;
|
|
34
33
|
fdm: fdm;
|
|
35
34
|
throttle: Throttle;
|
|
36
|
-
|
|
35
|
+
toolChoice: ToolChoice;
|
|
37
36
|
applyPatch: boolean;
|
|
38
|
-
messageCodec: MessageCodec<fdm
|
|
37
|
+
messageCodec: MessageCodec<fdm>;
|
|
39
38
|
toolCodec: ToolCodec<fdm>;
|
|
40
39
|
billing: Billing;
|
|
41
40
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
2
2
|
import { loggers } from "../../telemetry.js";
|
|
3
|
-
import * as
|
|
3
|
+
import * as ToolChoiceCodec from "./tool-choice-codec.js";
|
|
4
4
|
import * as Undici from 'undici';
|
|
5
5
|
export class Transport {
|
|
6
6
|
client;
|
|
@@ -8,7 +8,7 @@ export class Transport {
|
|
|
8
8
|
providerSpec;
|
|
9
9
|
fdm;
|
|
10
10
|
throttle;
|
|
11
|
-
|
|
11
|
+
toolChoice;
|
|
12
12
|
applyPatch;
|
|
13
13
|
messageCodec;
|
|
14
14
|
toolCodec;
|
|
@@ -24,7 +24,7 @@ export class Transport {
|
|
|
24
24
|
this.providerSpec = options.providerSpec;
|
|
25
25
|
this.fdm = options.fdm;
|
|
26
26
|
this.throttle = options.throttle;
|
|
27
|
-
this.
|
|
27
|
+
this.toolChoice = options.toolChoice;
|
|
28
28
|
this.applyPatch = options.applyPatch;
|
|
29
29
|
this.messageCodec = options.messageCodec;
|
|
30
30
|
this.toolCodec = options.toolCodec;
|
|
@@ -42,7 +42,7 @@ export class Transport {
|
|
|
42
42
|
input: session.chatMessages.flatMap(chatMessage => this.messageCodec.encodeChatMessage(chatMessage)),
|
|
43
43
|
instructions: session.developerMessage && this.messageCodec.encodeDeveloperMessage(session.developerMessage),
|
|
44
44
|
tools: tools.length ? tools : undefined,
|
|
45
|
-
tool_choice: tools.length ?
|
|
45
|
+
tool_choice: tools.length ? ToolChoiceCodec.encode(this.toolChoice) : undefined,
|
|
46
46
|
parallel_tool_calls: tools.length ? this.inferenceParams.parallelToolCall : undefined,
|
|
47
47
|
...this.inferenceParams.additionalOptions,
|
|
48
48
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/transport.ts"],"names":[],"mappings":"AAIA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,44 +1,43 @@
|
|
|
1
1
|
import { Engine, Middleware } from '../engine.ts';
|
|
2
2
|
import { Function } from '../function.ts';
|
|
3
|
-
import { Verbatim } from '../verbatim.ts';
|
|
4
3
|
import { MessageCodec } from './openai-responses/message-codec.ts';
|
|
5
4
|
import { ToolCodec } from './openai-responses/tool-codec.ts';
|
|
6
5
|
import { Billing } from './openai-responses/billing.ts';
|
|
7
|
-
import {
|
|
6
|
+
import { ToolChoiceValidator } from './openai-responses/tool-choice-validator.ts';
|
|
8
7
|
import { Transport } from './openai-responses/transport.ts';
|
|
9
8
|
import { InferenceContext } from '../inference-context.ts';
|
|
10
9
|
import { Session } from '../engine/session.ts';
|
|
11
10
|
import * as MessageModule from './openai-responses/message.ts';
|
|
12
11
|
import * as ToolModule from './openai-responses/tool.ts';
|
|
13
|
-
export type OpenAIResponsesEngine<fdm extends Function.Decl.Map.Proto
|
|
12
|
+
export type OpenAIResponsesEngine<fdm extends Function.Decl.Map.Proto> = OpenAIResponsesEngine.Instance<fdm>;
|
|
14
13
|
export declare namespace OpenAIResponsesEngine {
|
|
15
|
-
class Instance<in out fdm extends Function.Decl.Map.Proto
|
|
16
|
-
protected options: OpenAIResponsesEngine.Options<fdm
|
|
14
|
+
class Instance<in out fdm extends Function.Decl.Map.Proto> extends Engine.Instance<fdm> {
|
|
15
|
+
protected options: OpenAIResponsesEngine.Options<fdm>;
|
|
17
16
|
protected toolCodec: ToolCodec<fdm>;
|
|
18
|
-
protected messageCodec: MessageCodec<fdm
|
|
17
|
+
protected messageCodec: MessageCodec<fdm>;
|
|
19
18
|
protected billing: Billing;
|
|
20
|
-
protected transport: Transport<fdm
|
|
21
|
-
protected
|
|
19
|
+
protected transport: Transport<fdm>;
|
|
20
|
+
protected toolChoiceValidator: ToolChoiceValidator.From<fdm>;
|
|
22
21
|
protected applyPatch: boolean;
|
|
23
|
-
constructor(options: OpenAIResponsesEngine.Options<fdm
|
|
24
|
-
clone(): OpenAIResponsesEngine<fdm
|
|
22
|
+
constructor(options: OpenAIResponsesEngine.Options<fdm>);
|
|
23
|
+
clone(): OpenAIResponsesEngine<fdm>;
|
|
25
24
|
/**
|
|
26
25
|
* @throws {@link InferenceTimeout} 推理超时
|
|
27
26
|
* @throws {@link SyntaxError} 模型抽风
|
|
28
27
|
* @throws {@link Recoverable} 模型抽风但可恢复
|
|
29
28
|
* @throws {@link TypeError} 网络故障
|
|
30
29
|
*/
|
|
31
|
-
protected infer(wfctx: InferenceContext, session: Session.From<fdm
|
|
32
|
-
stateless(wfctx: InferenceContext, session: Session.From<fdm
|
|
33
|
-
stateful(wfctx: InferenceContext, session: Session.From<fdm
|
|
34
|
-
useStateless(middleware: Middleware.From<fdm
|
|
35
|
-
useStateful(middleware: Middleware.From<fdm
|
|
30
|
+
protected infer(wfctx: InferenceContext, session: Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
|
|
31
|
+
stateless(wfctx: InferenceContext, session: Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
|
|
32
|
+
stateful(wfctx: InferenceContext, session: Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
|
|
33
|
+
useStateless(middleware: Middleware.From<fdm>): OpenAIResponsesEngine<fdm>;
|
|
34
|
+
useStateful(middleware: Middleware.From<fdm>): OpenAIResponsesEngine<fdm>;
|
|
36
35
|
/**
|
|
37
36
|
* @param session mutable
|
|
38
37
|
*/
|
|
39
|
-
agentloop(wfctx: InferenceContext, session: Session.From<fdm
|
|
38
|
+
agentloop(wfctx: InferenceContext, session: Session.From<fdm>, fnm: Function.Map<fdm>, limit?: number, applyPatch?: Tool.ApplyPatch): AsyncGenerator<string, string, void>;
|
|
40
39
|
}
|
|
41
|
-
interface Options<in out fdm extends Function.Decl.Map.Proto
|
|
40
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto> extends Engine.Options<fdm> {
|
|
42
41
|
applyPatch?: boolean;
|
|
43
42
|
}
|
|
44
43
|
const create: Engine.Create;
|
|
@@ -3,7 +3,7 @@ import { Function } from "../function.js";
|
|
|
3
3
|
import { MessageCodec } from "./openai-responses/message-codec.js";
|
|
4
4
|
import { ToolCodec } from "./openai-responses/tool-codec.js";
|
|
5
5
|
import { Billing } from "./openai-responses/billing.js";
|
|
6
|
-
import {
|
|
6
|
+
import { ToolChoiceValidator } from "./openai-responses/tool-choice-validator.js";
|
|
7
7
|
import { Transport } from "./openai-responses/transport.js";
|
|
8
8
|
import * as MessageModule from "./openai-responses/message.js";
|
|
9
9
|
import * as ToolModule from "./openai-responses/tool.js";
|
|
@@ -16,7 +16,7 @@ export var OpenAIResponsesEngine;
|
|
|
16
16
|
messageCodec;
|
|
17
17
|
billing;
|
|
18
18
|
transport;
|
|
19
|
-
|
|
19
|
+
toolChoiceValidator;
|
|
20
20
|
applyPatch;
|
|
21
21
|
constructor(options) {
|
|
22
22
|
super(options);
|
|
@@ -25,7 +25,6 @@ export var OpenAIResponsesEngine;
|
|
|
25
25
|
this.toolCodec = new ToolCodec({ fdm: this.fdm });
|
|
26
26
|
this.messageCodec = new MessageCodec({
|
|
27
27
|
toolCodec: this.toolCodec,
|
|
28
|
-
vdm: this.vdm,
|
|
29
28
|
});
|
|
30
29
|
this.billing = new Billing({ pricing: this.pricing });
|
|
31
30
|
this.transport = new Transport({
|
|
@@ -33,13 +32,13 @@ export var OpenAIResponsesEngine;
|
|
|
33
32
|
providerSpec: this.providerSpecs,
|
|
34
33
|
fdm: this.fdm,
|
|
35
34
|
throttle: this.throttle,
|
|
36
|
-
|
|
35
|
+
toolChoice: this.toolChoice,
|
|
37
36
|
applyPatch: this.applyPatch,
|
|
38
37
|
messageCodec: this.messageCodec,
|
|
39
38
|
toolCodec: this.toolCodec,
|
|
40
39
|
billing: this.billing,
|
|
41
40
|
});
|
|
42
|
-
this.
|
|
41
|
+
this.toolChoiceValidator = new ToolChoiceValidator({ toolChoice: this.toolChoice });
|
|
43
42
|
}
|
|
44
43
|
clone() {
|
|
45
44
|
const engine = new OpenAIResponsesEngine.Instance(this.options);
|
|
@@ -60,8 +59,6 @@ export var OpenAIResponsesEngine;
|
|
|
60
59
|
catch (e) {
|
|
61
60
|
if (e instanceof OpenAI.APIConnectionError)
|
|
62
61
|
throw new TypeError(undefined, { cause: e });
|
|
63
|
-
else if (e instanceof DOMException)
|
|
64
|
-
throw new TypeError('Unknown fetch error', { cause: e });
|
|
65
62
|
else
|
|
66
63
|
throw e;
|
|
67
64
|
}
|
|
@@ -81,22 +78,16 @@ export var OpenAIResponsesEngine;
|
|
|
81
78
|
/**
|
|
82
79
|
* @param session mutable
|
|
83
80
|
*/
|
|
84
|
-
async *agentloop(wfctx, session, fnm,
|
|
81
|
+
async *agentloop(wfctx, session, fnm, limit = Number.POSITIVE_INFINITY, applyPatch) {
|
|
85
82
|
for (let i = 0; i < limit; i++) {
|
|
86
83
|
const response = await this.stateful(wfctx, session);
|
|
87
|
-
if (response.
|
|
88
|
-
return response.
|
|
84
|
+
if (response.allText())
|
|
85
|
+
return response.getText();
|
|
89
86
|
const pfress = [];
|
|
90
|
-
const pvress = [];
|
|
91
87
|
const papress = [];
|
|
92
88
|
for (const part of response.getParts()) {
|
|
93
89
|
if (part instanceof Engine.RoleMessage.Ai.Part.Text) {
|
|
94
|
-
|
|
95
|
-
yield textPart.text;
|
|
96
|
-
for (const vreq of textPart.vreqs) {
|
|
97
|
-
const vh = vhm[vreq.name];
|
|
98
|
-
pvress.push((async () => new OpenAIResponsesEngine.RoleMessage.User.Part.Text(await vh.call(vhm, vreq.args)))());
|
|
99
|
-
}
|
|
90
|
+
yield part.text;
|
|
100
91
|
}
|
|
101
92
|
else if (part instanceof Function.Call) {
|
|
102
93
|
const fcall = part;
|
|
@@ -106,7 +97,7 @@ export var OpenAIResponsesEngine;
|
|
|
106
97
|
return Function.Response.Successful.of({
|
|
107
98
|
id: fcall.id,
|
|
108
99
|
name: fcall.name,
|
|
109
|
-
text: await f.call(fnm, fcall.args),
|
|
100
|
+
text: await f.call(fnm, fcall.args, fcall),
|
|
110
101
|
});
|
|
111
102
|
}
|
|
112
103
|
catch (e) {
|
|
@@ -134,9 +125,8 @@ export var OpenAIResponsesEngine;
|
|
|
134
125
|
throw new Error();
|
|
135
126
|
}
|
|
136
127
|
const fress = await Promise.all(pfress);
|
|
137
|
-
const vress = await Promise.all(pvress);
|
|
138
128
|
const aprs = await Promise.all(papress);
|
|
139
|
-
session.chatMessages.push(new OpenAIResponsesEngine.RoleMessage.User([...fress, ...aprs
|
|
129
|
+
session.chatMessages.push(new OpenAIResponsesEngine.RoleMessage.User([...fress, ...aprs]));
|
|
140
130
|
}
|
|
141
131
|
throw new Engine.FunctionCallLimitExceeded('Function call limit exceeded.');
|
|
142
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../../src/engines/openai-responses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAc,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../../src/engines/openai-responses.ts"],"names":[],"mappings":"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"}
|
package/build/exports.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export * from './adaptor.ts';
|
|
2
2
|
export * from './function.ts';
|
|
3
|
-
export * from './
|
|
3
|
+
export * from './xml.ts';
|
|
4
4
|
export * from './config.ts';
|
|
5
5
|
export * from './inference-context.ts';
|
|
6
6
|
export * from './endpoint-spec.ts';
|
|
7
7
|
export * from './engine.ts';
|
|
8
8
|
export * from './media.ts';
|
|
9
|
-
export * from './
|
|
9
|
+
export * from './tool-choice.ts';
|
|
10
10
|
export * from './engines/google.ts';
|
|
11
11
|
export * from './engines/openai-responses.ts';
|
|
12
12
|
export * from './engines/openai-chatcompletions.ts';
|
package/build/exports.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export * from "./adaptor.js";
|
|
2
2
|
export * from "./function.js";
|
|
3
|
-
export * from "./
|
|
3
|
+
export * from "./xml.js";
|
|
4
4
|
export * from "./config.js";
|
|
5
5
|
export * from "./inference-context.js";
|
|
6
6
|
export * from "./endpoint-spec.js";
|
|
7
7
|
export * from "./engine.js";
|
|
8
8
|
export * from "./media.js";
|
|
9
|
-
export * from "./
|
|
9
|
+
export * from "./tool-choice.js";
|
|
10
10
|
export * from "./engines/google.js";
|
|
11
11
|
export * from "./engines/openai-responses.js";
|
|
12
12
|
export * from "./engines/openai-chatcompletions.js";
|
package/build/exports.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,
|
|
1
|
+
{"version":3,"file":"exports.js","sourceRoot":"","sources":["../src/exports.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AAEjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qCAAqC,CAAC;AACpD,cAAc,wBAAwB,CAAC"}
|
package/build/function.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { type Static, type TObject, type TSchema } from 'typebox';
|
|
2
2
|
declare const NOMINAL: unique symbol;
|
|
3
3
|
export interface Function<in out fd extends Function.Decl.Proto> {
|
|
4
|
-
(params: Static<fd['parameters']>): Promise<string>;
|
|
4
|
+
(params: Static<fd['parameters']>, fcall: Function.Call<fd>): Promise<string>;
|
|
5
5
|
}
|
|
6
6
|
export declare namespace Function {
|
|
7
7
|
namespace Name {
|
|
@@ -9,6 +9,7 @@ export declare namespace Function {
|
|
|
9
9
|
}
|
|
10
10
|
type Extract<fdm extends Function.Decl.Map.Proto, nameu extends Function.Name.From<fdm>> = Function.Of<Function.Decl.Extract<fdm, nameu>>;
|
|
11
11
|
type Of<fdu extends Function.Decl.Proto> = fdu extends infer fd extends Function.Decl.Proto ? Function<fd> : never;
|
|
12
|
+
type From<fdm extends Function.Decl.Map.Proto> = Function.Of<Function.Decl.From<fdm>>;
|
|
12
13
|
interface Decl<in out name extends string, in out params extends Function.Decl.Params.Proto> extends Function.Decl.Body<params> {
|
|
13
14
|
name: name;
|
|
14
15
|
}
|
|
@@ -98,7 +99,7 @@ export declare namespace Function {
|
|
|
98
99
|
}
|
|
99
100
|
}
|
|
100
101
|
type Map<fdm extends Function.Decl.Map.Proto> = {
|
|
101
|
-
[name in Function.Name.From<fdm>]: Function<Function.Decl.Extract<fdm, name>>;
|
|
102
|
+
[name in Function.Name.From<fdm>]: Function.Of<Function.Decl.Extract<fdm, name>>;
|
|
102
103
|
};
|
|
103
104
|
class Error extends globalThis.Error {
|
|
104
105
|
}
|
package/build/function.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.js","sourceRoot":"","sources":["../src/function.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAMzB,MAAM,KAAW,QAAQ,
|
|
1
|
+
{"version":3,"file":"function.js","sourceRoot":"","sources":["../src/function.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAMzB,MAAM,KAAW,QAAQ,CAiNxB;AAjND,WAAiB,QAAQ;IAsFrB,MAAa,IAAI;QAEN,EAAE,CAAU;QACZ,IAAI,CAAa;QACjB,IAAI,CAA2B;QACtC,YAAsB,KAA4B;YAC9C,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YACvB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QAC3B,CAAC;QACM,MAAM,CAAC,EAAE,CACZ,KAAoC;YAEpC,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAA0B,CAAC;QAC7D,CAAC;KAEJ;IAhBY,aAAI,OAgBhB,CAAA;IAqBD,MAAsB,QAAQ;QACnB,EAAE,CAAU;QACZ,IAAI,CAAa;QACxB,YAAsB,IAAwC;YAC1D,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QAC1B,CAAC;KACJ;IAPqB,iBAAQ,WAO7B,CAAA;IACD,WAAiB,QAAQ;QAQrB,MAAa,UAAkD,SAAQ,QAAQ,CAAC,QAAY;YAEjF,IAAI,CAAS;YACpB,YAAsB,IAA8C;gBAChE,KAAK,CAAC,IAAI,CAAC,CAAC;gBACZ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1B,CAAC;YACM,MAAM,CAAC,EAAE,CACZ,IAAkD;gBAElD,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAyC,CAAC;YAC1F,CAAC;SACJ;QAZY,mBAAU,aAYtB,CAAA;QAoBD,MAAa,MAA8C,SAAQ,QAAQ,CAAC,QAAY;YAE7E,KAAK,CAAS;YACrB,YAAsB,IAA0C;gBAC5D,KAAK,CAAC,IAAI,CAAC,CAAC;gBACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;YAC5B,CAAC;YACM,MAAM,CAAC,EAAE,CACZ,IAA8C;gBAE9C,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAqC,CAAC;YAClF,CAAC;SACJ;QAZY,eAAM,SAYlB,CAAA;IAmBL,CAAC,EAvEgB,QAAQ,GAAR,iBAAQ,KAAR,iBAAQ,QAuExB;IAMD,MAAa,KAAM,SAAQ,UAAU,CAAC,KAAK;KAAG;IAAjC,cAAK,QAA4B,CAAA;AAClD,CAAC,EAjNgB,QAAQ,KAAR,QAAQ,QAiNxB"}
|
package/build/media.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as XmlCodec from "./xml.js";
|
|
2
2
|
import { MIMEType } from 'whatwg-mimetype';
|
|
3
3
|
const NOMINAL = Symbol();
|
|
4
4
|
export class Media {
|
|
@@ -40,7 +40,7 @@ export class Media {
|
|
|
40
40
|
this.text = options.text;
|
|
41
41
|
}
|
|
42
42
|
quote() {
|
|
43
|
-
return
|
|
43
|
+
return XmlCodec.Quotation.encode(this.mimeType, this.text);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
Media.Text = Text;
|
package/build/media.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.js","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAGzB,MAAM,OAAgB,KAAK;CAG1B;AAED,WAAiB,KAAK;IAClB,MAAa,KAAM,SAAQ,KAAK;QACZ,QAAQ,CAAW;QAC5B,MAAM,CAAS;QACf,UAAU,CAAyB;QAC1C,YAAmB,OAA4B;YAC3C,KAAK,EAAE,CAAC;YACR,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC,CAAA,CAAC;;gBACrC,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;YACrE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACzC,CAAC;KACJ;IAZY,WAAK,QAYjB,CAAA;IAeD,MAAa,GAAI,SAAQ,KAAK;QAEA;QADV,QAAQ,GAAG,IAAI,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAC3D,YAA0B,MAAc;YACpC,KAAK,EAAE,CAAC;YADc,WAAM,GAAN,MAAM,CAAQ;QAExC,CAAC;KACJ;IALY,SAAG,MAKf,CAAA;IAED,MAAa,IAAK,SAAQ,KAAK;QACX,QAAQ,CAAW;QAC5B,IAAI,CAAS;QACpB,YAAmB,OAA2B;YAC1C,KAAK,EAAE,CAAC;YACR,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC,CAAA,CAAC;;gBACpC,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;YACnE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;YACjC,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QAC7B,CAAC;QAEM,KAAK;YACR,OAAO,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,CAAC;KACJ;IAdY,UAAI,OAchB,CAAA;AAOL,CAAC,EAxDgB,KAAK,KAAL,KAAK,QAwDrB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type ToolChoice = typeof ToolChoice.NONE | typeof ToolChoice.AUTO | typeof ToolChoice.REQUIRED | typeof ToolChoice.ANYONE;
|
|
2
|
+
export declare namespace ToolChoice {
|
|
3
|
+
const REQUIRED: unique symbol;
|
|
4
|
+
const ANYONE: unique symbol;
|
|
5
|
+
const NONE: unique symbol;
|
|
6
|
+
const AUTO: unique symbol;
|
|
7
|
+
}
|