@zimtsui/typechat 0.0.126 → 0.0.127
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/build/adaptor.d.ts +0 -10
- package/build/adaptor.js +0 -32
- package/build/adaptor.js.map +1 -1
- package/build/engine/exceptions.d.ts +7 -7
- package/build/engine/exceptions.js.map +1 -1
- package/build/engine/message-validator.d.ts +9 -0
- package/build/engine/message-validator.js +28 -0
- package/build/engine/message-validator.js.map +1 -0
- package/build/engine/message.d.ts +33 -31
- package/build/engine/message.js +26 -75
- package/build/engine/message.js.map +1 -1
- package/build/engine/middleware.d.ts +2 -2
- package/build/engine/session.d.ts +4 -4
- package/build/engine/tool-choice-validator.d.ts +2 -2
- package/build/engine/tool-choice-validator.js +18 -21
- package/build/engine/tool-choice-validator.js.map +1 -1
- package/build/engine/transport.d.ts +2 -2
- package/build/engine.d.ts +11 -11
- package/build/engine.js +29 -56
- package/build/engine.js.map +1 -1
- package/build/engines/anthropic/message-codec.d.ts +9 -5
- package/build/engines/anthropic/message-codec.js +37 -35
- package/build/engines/anthropic/message-codec.js.map +1 -1
- package/build/engines/anthropic/tool-codec.d.ts +3 -3
- package/build/engines/anthropic/tool-codec.js +45 -14
- package/build/engines/anthropic/tool-codec.js.map +1 -1
- package/build/engines/anthropic/transport.d.ts +1 -2
- package/build/engines/anthropic/transport.js +1 -1
- package/build/engines/anthropic/transport.js.map +1 -1
- package/build/engines/anthropic.d.ts +0 -3
- package/build/engines/anthropic.js +1 -8
- package/build/engines/anthropic.js.map +1 -1
- package/build/engines/google/message-codec.d.ts +10 -7
- package/build/engines/google/message-codec.js +50 -70
- package/build/engines/google/message-codec.js.map +1 -1
- package/build/engines/google/tool-codec.d.ts +2 -3
- package/build/engines/google/tool-codec.js +51 -22
- package/build/engines/google/tool-codec.js.map +1 -1
- package/build/engines/google/transport.d.ts +1 -8
- package/build/engines/google/transport.js +1 -13
- package/build/engines/google/transport.js.map +1 -1
- package/build/engines/google.d.ts +3 -25
- package/build/engines/google.js +1 -124
- package/build/engines/google.js.map +1 -1
- package/build/engines/openai-chatcompletions/message-codec.d.ts +11 -7
- package/build/engines/openai-chatcompletions/message-codec.js +45 -45
- package/build/engines/openai-chatcompletions/message-codec.js.map +1 -1
- package/build/engines/openai-chatcompletions/tool-codec.d.ts +3 -3
- package/build/engines/openai-chatcompletions/tool-codec.js +31 -31
- package/build/engines/openai-chatcompletions/tool-codec.js.map +1 -1
- package/build/engines/openai-chatcompletions/transport.d.ts +2 -2
- package/build/engines/openai-chatcompletions/transport.js +12 -12
- package/build/engines/openai-chatcompletions/transport.js.map +1 -1
- package/build/engines/openai-chatcompletions.d.ts +0 -3
- package/build/engines/openai-chatcompletions.js +1 -8
- package/build/engines/openai-chatcompletions.js.map +1 -1
- package/build/engines/openai-compatible/message-codec.d.ts +14 -5
- package/build/engines/openai-compatible/message-codec.js +72 -71
- package/build/engines/openai-compatible/message-codec.js.map +1 -1
- package/build/engines/openai-compatible/transport.d.ts +3 -6
- package/build/engines/openai-compatible/transport.js +6 -7
- package/build/engines/openai-compatible/transport.js.map +1 -1
- package/build/engines/openai-compatible.d.ts +0 -3
- package/build/engines/openai-compatible.js +1 -8
- package/build/engines/openai-compatible.js.map +1 -1
- package/build/engines/openai-responses/message-codec.d.ts +12 -5
- package/build/engines/openai-responses/message-codec.js +72 -88
- package/build/engines/openai-responses/message-codec.js.map +1 -1
- package/build/engines/openai-responses/tool-codec.d.ts +5 -3
- package/build/engines/openai-responses/tool-codec.js +43 -28
- package/build/engines/openai-responses/tool-codec.js.map +1 -1
- package/build/engines/openai-responses/transport.d.ts +2 -6
- package/build/engines/openai-responses/transport.js +1 -7
- package/build/engines/openai-responses/transport.js.map +1 -1
- package/build/engines/openai-responses.d.ts +3 -24
- package/build/engines/openai-responses.js +1 -111
- package/build/engines/openai-responses.js.map +1 -1
- package/build/exports/xml.d.ts +2 -2
- package/build/exports/xml.js +2 -2
- package/build/exports/xml.js.map +1 -1
- package/build/exports.d.ts +1 -5
- package/build/exports.js +1 -5
- package/build/exports.js.map +1 -1
- package/build/function.d.ts +4 -2
- package/build/function.js +2 -2
- package/build/function.js.map +1 -1
- package/build/media.d.ts +2 -2
- package/build/media.js +5 -5
- package/build/media.js.map +1 -1
- package/build/text.d.ts +8 -0
- package/build/text.js +11 -0
- package/build/text.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/DEVELOPMENT.md +0 -11
- package/build/engine/parts-validator.d.ts +0 -8
- package/build/engine/parts-validator.js +0 -12
- package/build/engine/parts-validator.js.map +0 -1
- package/build/engines/anthropic/message.d.ts +0 -19
- package/build/engines/anthropic/message.js +0 -20
- package/build/engines/anthropic/message.js.map +0 -1
- package/build/engines/google/message.d.ts +0 -36
- package/build/engines/google/message.js +0 -58
- package/build/engines/google/message.js.map +0 -1
- package/build/engines/openai-chatcompletions/message.d.ts +0 -19
- package/build/engines/openai-chatcompletions/message.js +0 -20
- package/build/engines/openai-chatcompletions/message.js.map +0 -1
- package/build/engines/openai-compatible/message.d.ts +0 -19
- package/build/engines/openai-compatible/message.js +0 -20
- package/build/engines/openai-compatible/message.js.map +0 -1
- package/build/engines/openai-responses/message.d.ts +0 -22
- package/build/engines/openai-responses/message.js +0 -38
- package/build/engines/openai-responses/message.js.map +0 -1
- package/build/engines/openai-responses/tool-choice-validator.d.ts +0 -11
- package/build/engines/openai-responses/tool-choice-validator.js +0 -50
- package/build/engines/openai-responses/tool-choice-validator.js.map +0 -1
- package/build/engines/openai-responses/tool.d.ts +0 -53
- package/build/engines/openai-responses/tool.js +0 -24
- package/build/engines/openai-responses/tool.js.map +0 -1
|
@@ -1,125 +1,109 @@
|
|
|
1
1
|
import { Engine } from "../../engine.js";
|
|
2
|
-
import { RoleMessage } from "./message.js";
|
|
3
2
|
import { Function } from "../../function.js";
|
|
4
|
-
import { Tool } from "./tool.js";
|
|
5
3
|
import { Media } from "../../media.js";
|
|
4
|
+
import { Text } from "../../text.js";
|
|
6
5
|
export class MessageCodec {
|
|
6
|
+
cacheDeveloperMessages = new WeakMap();
|
|
7
|
+
cacheInputMessages = new WeakMap();
|
|
8
|
+
cacheOutputMessages = new WeakMap();
|
|
7
9
|
toolCodec;
|
|
10
|
+
messageValidator;
|
|
8
11
|
constructor(options) {
|
|
9
12
|
this.toolCodec = options.toolCodec;
|
|
13
|
+
this.messageValidator = options.messageValidator;
|
|
10
14
|
}
|
|
11
|
-
|
|
15
|
+
decodeOutputMessage(raw) {
|
|
12
16
|
const parts = [];
|
|
13
17
|
for (const item of raw.output) {
|
|
14
18
|
if (item.type === 'message')
|
|
15
19
|
for (const part of item.content)
|
|
16
20
|
if (part.type === 'output_text')
|
|
17
|
-
parts.push(new
|
|
21
|
+
parts.push(new Text(part.text));
|
|
18
22
|
else if (part.type === 'refusal')
|
|
19
23
|
throw new Engine.Exceptions.InferenceError('Refusal', { cause: raw });
|
|
20
24
|
else
|
|
21
|
-
throw new Error();
|
|
25
|
+
throw new Error('Unsupported API output message part.', { cause: part });
|
|
22
26
|
else if (item.type === 'function_call')
|
|
23
27
|
parts.push(this.toolCodec.decodeFunctionCall(item));
|
|
24
28
|
else if (item.type === 'reasoning') { }
|
|
25
|
-
else if (item.type === 'apply_patch_call')
|
|
26
|
-
parts.push(new Tool.ApplyPatch.Call(item));
|
|
27
29
|
else
|
|
28
|
-
throw new Error();
|
|
30
|
+
throw new Error('Unsupported API output item.', { cause: item });
|
|
29
31
|
}
|
|
30
|
-
|
|
32
|
+
const outm = new Engine.Message.Output(parts);
|
|
33
|
+
this.messageValidator.validateOutputMessage(outm);
|
|
34
|
+
if (raw.output.every(item => item.type !== 'computer_call_output')) { }
|
|
35
|
+
else
|
|
36
|
+
throw new Error('Computer calls are not supported yet.');
|
|
37
|
+
this.cacheOutputMessages.set(outm, raw.output);
|
|
38
|
+
return outm;
|
|
39
|
+
}
|
|
40
|
+
encodeUserMessagePart(part) {
|
|
41
|
+
if (part instanceof Text)
|
|
42
|
+
return {
|
|
43
|
+
type: 'input_text',
|
|
44
|
+
text: part.raw,
|
|
45
|
+
};
|
|
46
|
+
else if (part instanceof Media.Text)
|
|
47
|
+
return {
|
|
48
|
+
type: 'input_text',
|
|
49
|
+
text: part.quote(),
|
|
50
|
+
};
|
|
51
|
+
else if (part instanceof Media.Image)
|
|
52
|
+
return {
|
|
53
|
+
type: 'input_image',
|
|
54
|
+
image_url: `data:${part.mimeType};base64,${part}`,
|
|
55
|
+
detail: 'high',
|
|
56
|
+
};
|
|
57
|
+
else if (part instanceof Media.Pdf)
|
|
58
|
+
return {
|
|
59
|
+
type: 'input_file',
|
|
60
|
+
file_data: `data:${part.mimeType};base64,${part}`,
|
|
61
|
+
};
|
|
62
|
+
else
|
|
63
|
+
throw new Error('Unsupported user message part.', { cause: part });
|
|
31
64
|
}
|
|
32
|
-
|
|
65
|
+
encodeInputMessage(inm) {
|
|
66
|
+
if (this.cacheInputMessages.has(inm))
|
|
67
|
+
return this.cacheInputMessages.get(inm);
|
|
68
|
+
this.messageValidator.validateInputMessage(inm);
|
|
33
69
|
const responseInput = [];
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
if (
|
|
37
|
-
responseInput.push({
|
|
38
|
-
type: 'message',
|
|
39
|
-
role: 'user',
|
|
40
|
-
content,
|
|
41
|
-
});
|
|
42
|
-
content = [];
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
for (const part of userMessage.getParts()) {
|
|
46
|
-
if (part instanceof Engine.RoleMessage.Part.Text)
|
|
47
|
-
content.push({
|
|
48
|
-
type: 'input_text',
|
|
49
|
-
text: part.text,
|
|
50
|
-
});
|
|
51
|
-
else if (part instanceof Media.Text)
|
|
52
|
-
content.push({
|
|
53
|
-
type: 'input_text',
|
|
54
|
-
text: part.quote(),
|
|
55
|
-
});
|
|
56
|
-
else if (part instanceof Media.Image)
|
|
57
|
-
content.push({
|
|
58
|
-
type: 'input_image',
|
|
59
|
-
image_url: `data:${part.mimeType};base64,${part}`,
|
|
60
|
-
detail: 'high',
|
|
61
|
-
});
|
|
62
|
-
else if (part instanceof Media.Pdf)
|
|
63
|
-
content.push({
|
|
64
|
-
type: 'input_file',
|
|
65
|
-
file_data: `data:${part.mimeType};base64,${part}`,
|
|
66
|
-
});
|
|
67
|
-
else if (part instanceof Function.Response) {
|
|
70
|
+
const content = [];
|
|
71
|
+
for (const part of inm.parts)
|
|
72
|
+
if (part instanceof Function.Response) {
|
|
68
73
|
const fr = part;
|
|
69
|
-
flush();
|
|
70
74
|
responseInput.push(this.toolCodec.encodeFunctionResponse(fr));
|
|
71
75
|
}
|
|
72
|
-
else if (part instanceof Tool.ApplyPatch.Response) {
|
|
73
|
-
flush();
|
|
74
|
-
responseInput.push({
|
|
75
|
-
type: 'apply_patch_call_output',
|
|
76
|
-
call_id: part.id,
|
|
77
|
-
status: part.failure ? 'failed' : 'completed',
|
|
78
|
-
output: part.failure || undefined,
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
76
|
else
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
77
|
+
content.push(this.encodeUserMessagePart(part));
|
|
78
|
+
if (content.length)
|
|
79
|
+
responseInput.push({
|
|
80
|
+
type: 'message',
|
|
81
|
+
role: 'user',
|
|
82
|
+
content,
|
|
83
|
+
});
|
|
84
|
+
this.cacheInputMessages.set(inm, responseInput);
|
|
85
85
|
return responseInput;
|
|
86
86
|
}
|
|
87
|
-
|
|
88
|
-
if (
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
if (raw.output.every(item => item.type !== 'computer_call_output')) { }
|
|
92
|
-
else
|
|
93
|
-
throw new Error('Computer calls are not supported yet.');
|
|
94
|
-
return raw.output;
|
|
95
|
-
}
|
|
96
|
-
const responseInput = [];
|
|
97
|
-
for (const part of aiMessage.getParts()) {
|
|
98
|
-
if (part instanceof RoleMessage.Part.Text)
|
|
99
|
-
responseInput.push({
|
|
100
|
-
role: 'assistant',
|
|
101
|
-
content: part.text,
|
|
102
|
-
});
|
|
103
|
-
else if (part instanceof Function.Call) {
|
|
104
|
-
const fc = part;
|
|
105
|
-
responseInput.push(this.toolCodec.encodeFunctionCall(fc));
|
|
106
|
-
}
|
|
107
|
-
else
|
|
108
|
-
throw new Error('Unknown AI message part type', { cause: part });
|
|
109
|
-
}
|
|
110
|
-
return responseInput;
|
|
87
|
+
encodeOutputMessage(outm) {
|
|
88
|
+
if (this.cacheOutputMessages.has(outm))
|
|
89
|
+
return this.cacheOutputMessages.get(outm);
|
|
90
|
+
throw new Error('Only native output message allowed.', { cause: outm });
|
|
111
91
|
}
|
|
112
92
|
encodeDeveloperMessage(developerMessage) {
|
|
113
|
-
|
|
93
|
+
if (this.cacheDeveloperMessages.has(developerMessage))
|
|
94
|
+
return this.cacheDeveloperMessages.get(developerMessage);
|
|
95
|
+
const raw = developerMessage.getOnlyTextParts().map(part => part.raw).join('');
|
|
96
|
+
this.cacheDeveloperMessages.set(developerMessage, raw);
|
|
97
|
+
return raw;
|
|
114
98
|
}
|
|
115
99
|
encodeChatMessage(chatMessage) {
|
|
116
|
-
if (chatMessage instanceof Engine.
|
|
117
|
-
const
|
|
118
|
-
return this.
|
|
100
|
+
if (chatMessage instanceof Engine.Message.Input) {
|
|
101
|
+
const inm = chatMessage;
|
|
102
|
+
return this.encodeInputMessage(inm);
|
|
119
103
|
}
|
|
120
|
-
else if (chatMessage instanceof Engine.
|
|
121
|
-
const
|
|
122
|
-
return this.
|
|
104
|
+
else if (chatMessage instanceof Engine.Message.Output) {
|
|
105
|
+
const outm = chatMessage;
|
|
106
|
+
return this.encodeOutputMessage(outm);
|
|
123
107
|
}
|
|
124
108
|
else
|
|
125
109
|
throw new Error();
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/message-codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import OpenAI from 'openai';
|
|
2
2
|
import { Function } from '../../function.ts';
|
|
3
|
+
import { Media } from '../../media.ts';
|
|
4
|
+
import { Text } from '../../text.ts';
|
|
3
5
|
export declare class ToolCodec<in out fdm extends Function.Decl.Map.Proto> {
|
|
4
6
|
protected fdm: fdm;
|
|
5
|
-
protected
|
|
7
|
+
protected rawfds: OpenAI.Responses.FunctionTool[];
|
|
6
8
|
constructor(options: ToolCodec.Options<fdm>);
|
|
9
|
+
encodeFunctionResponsePart(part: Text | Media): OpenAI.Responses.ResponseFunctionCallOutputItem;
|
|
7
10
|
encodeFunctionResponse(fr: Function.Response.From<fdm>): OpenAI.Responses.ResponseInputItem.FunctionCallOutput;
|
|
8
11
|
protected static encodeFunctionDeclarationEntry<fdu extends Function.Decl.Proto>(fdentry: Function.Decl.Entry.Of<fdu>): OpenAI.Responses.FunctionTool;
|
|
9
12
|
encodeFunctionDeclarationMap(): OpenAI.Responses.FunctionTool[];
|
|
10
|
-
decodeFunctionCall(
|
|
11
|
-
encodeFunctionCall(fc: Function.Call.From<fdm>): OpenAI.Responses.ResponseFunctionToolCall;
|
|
13
|
+
decodeFunctionCall(rawfc: OpenAI.Responses.ResponseFunctionToolCall): Function.Call.From<fdm>;
|
|
12
14
|
}
|
|
13
15
|
export declare namespace ToolCodec {
|
|
14
16
|
interface Options<in out fdm extends Function.Decl.Map.Proto> {
|
|
@@ -2,13 +2,40 @@ import { Function } from "../../function.js";
|
|
|
2
2
|
import { Parse, ParseError } from 'typebox/schema';
|
|
3
3
|
import { addAdditionalProperties } from "../../function/parameters.js";
|
|
4
4
|
import { Engine } from "../../engine.js";
|
|
5
|
+
import { Media } from "../../media.js";
|
|
6
|
+
import { Text } from "../../text.js";
|
|
5
7
|
export class ToolCodec {
|
|
6
8
|
fdm;
|
|
7
|
-
|
|
9
|
+
rawfds;
|
|
8
10
|
constructor(options) {
|
|
9
11
|
this.fdm = options.fdm;
|
|
10
12
|
const fdentries = Object.entries(this.fdm);
|
|
11
|
-
this.
|
|
13
|
+
this.rawfds = fdentries.map(fdentry => ToolCodec.encodeFunctionDeclarationEntry(fdentry));
|
|
14
|
+
}
|
|
15
|
+
encodeFunctionResponsePart(part) {
|
|
16
|
+
if (part instanceof Text)
|
|
17
|
+
return {
|
|
18
|
+
type: 'input_text',
|
|
19
|
+
text: part.raw,
|
|
20
|
+
};
|
|
21
|
+
else if (part instanceof Media.Text)
|
|
22
|
+
return {
|
|
23
|
+
type: 'input_text',
|
|
24
|
+
text: part.quote(),
|
|
25
|
+
};
|
|
26
|
+
else if (part instanceof Media.Image)
|
|
27
|
+
return {
|
|
28
|
+
type: 'input_image',
|
|
29
|
+
image_url: `data:${part.mimeType};base64,${part}`,
|
|
30
|
+
detail: 'high',
|
|
31
|
+
};
|
|
32
|
+
else if (part instanceof Media.Pdf)
|
|
33
|
+
return {
|
|
34
|
+
type: 'input_file',
|
|
35
|
+
file_data: `data:${part.mimeType};base64,${part}`,
|
|
36
|
+
};
|
|
37
|
+
else
|
|
38
|
+
throw new Error();
|
|
12
39
|
}
|
|
13
40
|
encodeFunctionResponse(fr) {
|
|
14
41
|
if (fr.id) { }
|
|
@@ -18,7 +45,7 @@ export class ToolCodec {
|
|
|
18
45
|
return {
|
|
19
46
|
type: 'function_call_output',
|
|
20
47
|
call_id: fr.id,
|
|
21
|
-
output: fr.
|
|
48
|
+
output: fr.parts.map(part => this.encodeFunctionResponsePart(part)),
|
|
22
49
|
};
|
|
23
50
|
else if (fr instanceof Function.Response.Failed)
|
|
24
51
|
return {
|
|
@@ -39,21 +66,20 @@ export class ToolCodec {
|
|
|
39
66
|
};
|
|
40
67
|
}
|
|
41
68
|
encodeFunctionDeclarationMap() {
|
|
42
|
-
return this.
|
|
69
|
+
return this.rawfds.slice();
|
|
43
70
|
}
|
|
44
|
-
decodeFunctionCall(
|
|
45
|
-
const fditem = this.fdm[
|
|
71
|
+
decodeFunctionCall(rawfc) {
|
|
72
|
+
const fditem = this.fdm[rawfc.name];
|
|
46
73
|
if (fditem) { }
|
|
47
74
|
else
|
|
48
|
-
throw new Engine.Exceptions.InferenceError('Unknown function call', { cause:
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
})();
|
|
75
|
+
throw new Engine.Exceptions.InferenceError('Unknown function call', { cause: rawfc });
|
|
76
|
+
let args;
|
|
77
|
+
try {
|
|
78
|
+
args = JSON.parse(rawfc.arguments);
|
|
79
|
+
}
|
|
80
|
+
catch (e) {
|
|
81
|
+
throw new Engine.Exceptions.InferenceError('Invalid JSON of function call', { cause: rawfc });
|
|
82
|
+
}
|
|
57
83
|
try {
|
|
58
84
|
Parse(fditem.parameters, args);
|
|
59
85
|
}
|
|
@@ -64,21 +90,10 @@ export class ToolCodec {
|
|
|
64
90
|
throw e;
|
|
65
91
|
}
|
|
66
92
|
return Function.Call.of({
|
|
67
|
-
id:
|
|
68
|
-
name:
|
|
93
|
+
id: rawfc.call_id,
|
|
94
|
+
name: rawfc.name,
|
|
69
95
|
args,
|
|
70
96
|
});
|
|
71
97
|
}
|
|
72
|
-
encodeFunctionCall(fc) {
|
|
73
|
-
if (fc.id) { }
|
|
74
|
-
else
|
|
75
|
-
throw new Error();
|
|
76
|
-
return {
|
|
77
|
-
type: 'function_call',
|
|
78
|
-
call_id: fc.id,
|
|
79
|
-
name: fc.name,
|
|
80
|
-
arguments: JSON.stringify(fc.args),
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
98
|
}
|
|
84
99
|
//# sourceMappingURL=tool-codec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-codec.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/tool-codec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"tool-codec.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/tool-codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { type InferenceOptions, type ProviderSpecs, Engine } from '../../engine.ts';
|
|
2
|
-
import { type Session } from '../../engine/session.ts';
|
|
3
|
-
import { RoleMessage } from './message.ts';
|
|
4
2
|
import { Function } from '../../function.ts';
|
|
5
3
|
import OpenAI from 'openai';
|
|
6
4
|
import { type InferenceContext } from '../../inference-context.ts';
|
|
@@ -16,14 +14,13 @@ export declare class Transport<in out fdm extends Function.Decl.Map.Proto> imple
|
|
|
16
14
|
protected fdm: fdm;
|
|
17
15
|
protected throttle: Throttle;
|
|
18
16
|
protected toolChoice: ToolChoice;
|
|
19
|
-
protected applyPatch: boolean;
|
|
20
17
|
protected messageCodec: MessageCodec<fdm>;
|
|
21
18
|
protected toolCodec: ToolCodec<fdm>;
|
|
22
19
|
protected billing: Billing;
|
|
23
20
|
constructor(options: Transport.Options<fdm>);
|
|
24
|
-
protected makeParams(session: Session.From<fdm>): OpenAI.Responses.ResponseCreateParamsStreaming;
|
|
21
|
+
protected makeParams(session: Engine.Session.From<fdm>): OpenAI.Responses.ResponseCreateParamsStreaming;
|
|
25
22
|
protected logAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): void;
|
|
26
|
-
fetch(wfctx: InferenceContext, session: Session.From<fdm>, signal?: AbortSignal): Promise<
|
|
23
|
+
fetch(wfctx: InferenceContext, session: Engine.Session.From<fdm>, signal?: AbortSignal): Promise<Engine.Message.Output.From<fdm>>;
|
|
27
24
|
}
|
|
28
25
|
export declare namespace Transport {
|
|
29
26
|
interface Options<in out fdm extends Function.Decl.Map.Proto> {
|
|
@@ -32,7 +29,6 @@ export declare namespace Transport {
|
|
|
32
29
|
fdm: fdm;
|
|
33
30
|
throttle: Throttle;
|
|
34
31
|
toolChoice: ToolChoice;
|
|
35
|
-
applyPatch: boolean;
|
|
36
32
|
messageCodec: MessageCodec<fdm>;
|
|
37
33
|
toolCodec: ToolCodec<fdm>;
|
|
38
34
|
billing: Billing;
|
|
@@ -10,7 +10,6 @@ export class Transport {
|
|
|
10
10
|
fdm;
|
|
11
11
|
throttle;
|
|
12
12
|
toolChoice;
|
|
13
|
-
applyPatch;
|
|
14
13
|
messageCodec;
|
|
15
14
|
toolCodec;
|
|
16
15
|
billing;
|
|
@@ -27,15 +26,12 @@ export class Transport {
|
|
|
27
26
|
this.fdm = options.fdm;
|
|
28
27
|
this.throttle = options.throttle;
|
|
29
28
|
this.toolChoice = options.toolChoice;
|
|
30
|
-
this.applyPatch = options.applyPatch;
|
|
31
29
|
this.messageCodec = options.messageCodec;
|
|
32
30
|
this.toolCodec = options.toolCodec;
|
|
33
31
|
this.billing = options.billing;
|
|
34
32
|
}
|
|
35
33
|
makeParams(session) {
|
|
36
34
|
const tools = this.toolCodec.encodeFunctionDeclarationMap();
|
|
37
|
-
if (this.applyPatch)
|
|
38
|
-
tools.push({ type: 'apply_patch' });
|
|
39
35
|
return {
|
|
40
36
|
model: this.inferenceParams.model,
|
|
41
37
|
include: ['reasoning.encrypted_content'],
|
|
@@ -59,8 +55,6 @@ export class Transport {
|
|
|
59
55
|
}
|
|
60
56
|
else if (item.type === 'function_call')
|
|
61
57
|
loggers.message.info(item);
|
|
62
|
-
else if (item.type === 'apply_patch_call')
|
|
63
|
-
loggers.message.info(item);
|
|
64
58
|
else if (item.type === 'reasoning') { }
|
|
65
59
|
else
|
|
66
60
|
loggers.message.info(item);
|
|
@@ -105,7 +99,7 @@ export class Transport {
|
|
|
105
99
|
this.logAiMessage(response.output);
|
|
106
100
|
wfctx.cost?.(this.billing.charge(response.usage));
|
|
107
101
|
loggers.message.info(response.usage);
|
|
108
|
-
return this.messageCodec.
|
|
102
|
+
return this.messageCodec.decodeOutputMessage(response);
|
|
109
103
|
}
|
|
110
104
|
}
|
|
111
105
|
//# sourceMappingURL=transport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6C,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/engines/openai-responses/transport.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,39 +3,18 @@ import { Function } from '../function.ts';
|
|
|
3
3
|
import { MessageCodec } from './openai-responses/message-codec.ts';
|
|
4
4
|
import { ToolCodec } from './openai-responses/tool-codec.ts';
|
|
5
5
|
import { Billing } from './openai-responses/billing.ts';
|
|
6
|
-
import { ToolChoiceValidator } from './openai-responses/tool-choice-validator.ts';
|
|
7
6
|
import * as TransportModule from './openai-responses/transport.ts';
|
|
8
|
-
import { InferenceContext } from '../inference-context.ts';
|
|
9
|
-
import * as MessageModule from './openai-responses/message.ts';
|
|
10
|
-
import * as ToolModule from './openai-responses/tool.ts';
|
|
11
7
|
export type OpenAIResponsesEngine<fdm extends Function.Decl.Map.Proto> = OpenAIResponsesEngine.Instance<fdm>;
|
|
12
8
|
export declare namespace OpenAIResponsesEngine {
|
|
13
9
|
class Instance<in out fdm extends Function.Decl.Map.Proto> extends Engine.Instance<fdm> {
|
|
14
|
-
protected options:
|
|
10
|
+
protected options: Engine.Options<fdm>;
|
|
15
11
|
protected toolCodec: ToolCodec<fdm>;
|
|
16
12
|
protected messageCodec: MessageCodec<fdm>;
|
|
17
13
|
protected billing: Billing;
|
|
18
14
|
protected transport: Transport<fdm>;
|
|
19
|
-
|
|
20
|
-
protected applyPatch: boolean;
|
|
21
|
-
constructor(options: OpenAIResponsesEngine.Options<fdm>);
|
|
22
|
-
clone(): OpenAIResponsesEngine<fdm>;
|
|
23
|
-
protected infer(wfctx: InferenceContext, session: Engine.Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
|
|
24
|
-
stateless(wfctx: InferenceContext, session: Engine.Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
|
|
25
|
-
stateful(wfctx: InferenceContext, session: Engine.Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
|
|
26
|
-
useStateless(middleware: Engine.Middleware.From<fdm>): OpenAIResponsesEngine<fdm>;
|
|
27
|
-
useStateful(middleware: Engine.Middleware.From<fdm>): OpenAIResponsesEngine<fdm>;
|
|
28
|
-
/**
|
|
29
|
-
* @param session mutable
|
|
30
|
-
*/
|
|
31
|
-
agentloop(wfctx: InferenceContext, session: Engine.Session.From<fdm>, fnm: Function.Map<fdm>, limit?: number, applyPatch?: Tool.ApplyPatch): AsyncGenerator<string, string, void>;
|
|
15
|
+
constructor(options: Engine.Options<fdm>);
|
|
32
16
|
}
|
|
33
|
-
|
|
34
|
-
applyPatch?: boolean;
|
|
35
|
-
}
|
|
36
|
-
function create<fdm extends Function.Decl.Map.Proto>(options: OpenAIResponsesEngine.Options<fdm>): OpenAIResponsesEngine<fdm>;
|
|
17
|
+
function create<fdm extends Function.Decl.Map.Proto>(options: Engine.Options<fdm>): OpenAIResponsesEngine<fdm>;
|
|
37
18
|
function createEngine<fdm extends Function.Decl.Map.Proto>(options: Engine.Options<fdm>): Engine<fdm>;
|
|
38
|
-
export import Tool = ToolModule.Tool;
|
|
39
|
-
export import RoleMessage = MessageModule.RoleMessage;
|
|
40
19
|
export import Transport = TransportModule.Transport;
|
|
41
20
|
}
|