@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.
Files changed (119) hide show
  1. package/build/adaptor.d.ts +0 -10
  2. package/build/adaptor.js +0 -32
  3. package/build/adaptor.js.map +1 -1
  4. package/build/engine/exceptions.d.ts +7 -7
  5. package/build/engine/exceptions.js.map +1 -1
  6. package/build/engine/message-validator.d.ts +9 -0
  7. package/build/engine/message-validator.js +28 -0
  8. package/build/engine/message-validator.js.map +1 -0
  9. package/build/engine/message.d.ts +33 -31
  10. package/build/engine/message.js +26 -75
  11. package/build/engine/message.js.map +1 -1
  12. package/build/engine/middleware.d.ts +2 -2
  13. package/build/engine/session.d.ts +4 -4
  14. package/build/engine/tool-choice-validator.d.ts +2 -2
  15. package/build/engine/tool-choice-validator.js +18 -21
  16. package/build/engine/tool-choice-validator.js.map +1 -1
  17. package/build/engine/transport.d.ts +2 -2
  18. package/build/engine.d.ts +11 -11
  19. package/build/engine.js +29 -56
  20. package/build/engine.js.map +1 -1
  21. package/build/engines/anthropic/message-codec.d.ts +9 -5
  22. package/build/engines/anthropic/message-codec.js +37 -35
  23. package/build/engines/anthropic/message-codec.js.map +1 -1
  24. package/build/engines/anthropic/tool-codec.d.ts +3 -3
  25. package/build/engines/anthropic/tool-codec.js +45 -14
  26. package/build/engines/anthropic/tool-codec.js.map +1 -1
  27. package/build/engines/anthropic/transport.d.ts +1 -2
  28. package/build/engines/anthropic/transport.js +1 -1
  29. package/build/engines/anthropic/transport.js.map +1 -1
  30. package/build/engines/anthropic.d.ts +0 -3
  31. package/build/engines/anthropic.js +1 -8
  32. package/build/engines/anthropic.js.map +1 -1
  33. package/build/engines/google/message-codec.d.ts +10 -7
  34. package/build/engines/google/message-codec.js +50 -70
  35. package/build/engines/google/message-codec.js.map +1 -1
  36. package/build/engines/google/tool-codec.d.ts +2 -3
  37. package/build/engines/google/tool-codec.js +51 -22
  38. package/build/engines/google/tool-codec.js.map +1 -1
  39. package/build/engines/google/transport.d.ts +1 -8
  40. package/build/engines/google/transport.js +1 -13
  41. package/build/engines/google/transport.js.map +1 -1
  42. package/build/engines/google.d.ts +3 -25
  43. package/build/engines/google.js +1 -124
  44. package/build/engines/google.js.map +1 -1
  45. package/build/engines/openai-chatcompletions/message-codec.d.ts +11 -7
  46. package/build/engines/openai-chatcompletions/message-codec.js +45 -45
  47. package/build/engines/openai-chatcompletions/message-codec.js.map +1 -1
  48. package/build/engines/openai-chatcompletions/tool-codec.d.ts +3 -3
  49. package/build/engines/openai-chatcompletions/tool-codec.js +31 -31
  50. package/build/engines/openai-chatcompletions/tool-codec.js.map +1 -1
  51. package/build/engines/openai-chatcompletions/transport.d.ts +2 -2
  52. package/build/engines/openai-chatcompletions/transport.js +12 -12
  53. package/build/engines/openai-chatcompletions/transport.js.map +1 -1
  54. package/build/engines/openai-chatcompletions.d.ts +0 -3
  55. package/build/engines/openai-chatcompletions.js +1 -8
  56. package/build/engines/openai-chatcompletions.js.map +1 -1
  57. package/build/engines/openai-compatible/message-codec.d.ts +14 -5
  58. package/build/engines/openai-compatible/message-codec.js +72 -71
  59. package/build/engines/openai-compatible/message-codec.js.map +1 -1
  60. package/build/engines/openai-compatible/transport.d.ts +3 -6
  61. package/build/engines/openai-compatible/transport.js +6 -7
  62. package/build/engines/openai-compatible/transport.js.map +1 -1
  63. package/build/engines/openai-compatible.d.ts +0 -3
  64. package/build/engines/openai-compatible.js +1 -8
  65. package/build/engines/openai-compatible.js.map +1 -1
  66. package/build/engines/openai-responses/message-codec.d.ts +12 -5
  67. package/build/engines/openai-responses/message-codec.js +72 -88
  68. package/build/engines/openai-responses/message-codec.js.map +1 -1
  69. package/build/engines/openai-responses/tool-codec.d.ts +5 -3
  70. package/build/engines/openai-responses/tool-codec.js +43 -28
  71. package/build/engines/openai-responses/tool-codec.js.map +1 -1
  72. package/build/engines/openai-responses/transport.d.ts +2 -6
  73. package/build/engines/openai-responses/transport.js +1 -7
  74. package/build/engines/openai-responses/transport.js.map +1 -1
  75. package/build/engines/openai-responses.d.ts +3 -24
  76. package/build/engines/openai-responses.js +1 -111
  77. package/build/engines/openai-responses.js.map +1 -1
  78. package/build/exports/xml.d.ts +2 -2
  79. package/build/exports/xml.js +2 -2
  80. package/build/exports/xml.js.map +1 -1
  81. package/build/exports.d.ts +1 -5
  82. package/build/exports.js +1 -5
  83. package/build/exports.js.map +1 -1
  84. package/build/function.d.ts +4 -2
  85. package/build/function.js +2 -2
  86. package/build/function.js.map +1 -1
  87. package/build/media.d.ts +2 -2
  88. package/build/media.js +5 -5
  89. package/build/media.js.map +1 -1
  90. package/build/text.d.ts +8 -0
  91. package/build/text.js +11 -0
  92. package/build/text.js.map +1 -0
  93. package/build/tsconfig.tsbuildinfo +1 -1
  94. package/package.json +3 -3
  95. package/DEVELOPMENT.md +0 -11
  96. package/build/engine/parts-validator.d.ts +0 -8
  97. package/build/engine/parts-validator.js +0 -12
  98. package/build/engine/parts-validator.js.map +0 -1
  99. package/build/engines/anthropic/message.d.ts +0 -19
  100. package/build/engines/anthropic/message.js +0 -20
  101. package/build/engines/anthropic/message.js.map +0 -1
  102. package/build/engines/google/message.d.ts +0 -36
  103. package/build/engines/google/message.js +0 -58
  104. package/build/engines/google/message.js.map +0 -1
  105. package/build/engines/openai-chatcompletions/message.d.ts +0 -19
  106. package/build/engines/openai-chatcompletions/message.js +0 -20
  107. package/build/engines/openai-chatcompletions/message.js.map +0 -1
  108. package/build/engines/openai-compatible/message.d.ts +0 -19
  109. package/build/engines/openai-compatible/message.js +0 -20
  110. package/build/engines/openai-compatible/message.js.map +0 -1
  111. package/build/engines/openai-responses/message.d.ts +0 -22
  112. package/build/engines/openai-responses/message.js +0 -38
  113. package/build/engines/openai-responses/message.js.map +0 -1
  114. package/build/engines/openai-responses/tool-choice-validator.d.ts +0 -11
  115. package/build/engines/openai-responses/tool-choice-validator.js +0 -50
  116. package/build/engines/openai-responses/tool-choice-validator.js.map +0 -1
  117. package/build/engines/openai-responses/tool.d.ts +0 -53
  118. package/build/engines/openai-responses/tool.js +0 -24
  119. 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
- decodeAiMessage(raw) {
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 RoleMessage.Part.Text(part.text));
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
- return new RoleMessage.Ai(parts, raw);
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
- encodeUserMessage(userMessage) {
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
- let content = [];
35
- function flush() {
36
- if (content.length) {
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
- throw new Error('Unknown user message part type', { cause: part });
83
- }
84
- flush();
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
- encodeAiMessage(aiMessage) {
88
- if (aiMessage instanceof RoleMessage.Ai) {
89
- const nativeAiMessage = aiMessage;
90
- const raw = nativeAiMessage.getRaw();
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
- return developerMessage.getOnlyTextParts().map(part => part.text).join('');
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.RoleMessage.User) {
117
- const userMessage = chatMessage;
118
- return this.encodeUserMessage(userMessage);
100
+ if (chatMessage instanceof Engine.Message.Input) {
101
+ const inm = chatMessage;
102
+ return this.encodeInputMessage(inm);
119
103
  }
120
- else if (chatMessage instanceof Engine.RoleMessage.Ai) {
121
- const aiMessage = chatMessage;
122
- return this.encodeAiMessage(aiMessage);
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":"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"}
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 apiFds: OpenAI.Responses.FunctionTool[];
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(apifc: OpenAI.Responses.ResponseFunctionToolCall): Function.Call.From<fdm>;
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
- apiFds;
9
+ rawfds;
8
10
  constructor(options) {
9
11
  this.fdm = options.fdm;
10
12
  const fdentries = Object.entries(this.fdm);
11
- this.apiFds = fdentries.map(fdentry => ToolCodec.encodeFunctionDeclarationEntry(fdentry));
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.text,
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.apiFds.slice();
69
+ return this.rawfds.slice();
43
70
  }
44
- decodeFunctionCall(apifc) {
45
- const fditem = this.fdm[apifc.name];
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: apifc });
49
- const args = (() => {
50
- try {
51
- return JSON.parse(apifc.arguments);
52
- }
53
- catch (e) {
54
- throw new Engine.Exceptions.InferenceError('Invalid JSON of function call', { cause: apifc });
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: apifc.call_id,
68
- name: apifc.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":"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"}
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<RoleMessage.Ai.From<fdm>>;
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.decodeAiMessage(response);
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":"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"}
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: OpenAIResponsesEngine.Options<fdm>;
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
- protected toolChoiceValidator: ToolChoiceValidator.From<fdm>;
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
- interface Options<in out fdm extends Function.Decl.Map.Proto> extends Engine.Options<fdm> {
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
  }