@zimtsui/typechat 0.0.61

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 (216) hide show
  1. package/DEVELOPMENT.md +22 -0
  2. package/LICENSE +165 -0
  3. package/README.md +202 -0
  4. package/assets/verbatim/declarations.handlebars +11 -0
  5. package/assets/verbatim/instruction.md +49 -0
  6. package/build/adaptor.d.ts +45 -0
  7. package/build/adaptor.js +90 -0
  8. package/build/adaptor.js.map +1 -0
  9. package/build/api-types/anthropic/billing.d.ts +12 -0
  10. package/build/api-types/anthropic/billing.js +14 -0
  11. package/build/api-types/anthropic/billing.js.map +1 -0
  12. package/build/api-types/anthropic/tool-codec.d.ts +16 -0
  13. package/build/api-types/anthropic/tool-codec.js +58 -0
  14. package/build/api-types/anthropic/tool-codec.js.map +1 -0
  15. package/build/api-types/google/billing.d.ts +12 -0
  16. package/build/api-types/google/billing.js +23 -0
  17. package/build/api-types/google/billing.js.map +1 -0
  18. package/build/api-types/google/restful-request.d.ts +8 -0
  19. package/build/api-types/google/restful-request.js +1 -0
  20. package/build/api-types/google/restful-request.js.map +1 -0
  21. package/build/api-types/google/tool-codec.d.ts +16 -0
  22. package/build/api-types/google/tool-codec.js +80 -0
  23. package/build/api-types/google/tool-codec.js.map +1 -0
  24. package/build/api-types/openai-chatcompletions/billing.d.ts +12 -0
  25. package/build/api-types/openai-chatcompletions/billing.js +14 -0
  26. package/build/api-types/openai-chatcompletions/billing.js.map +1 -0
  27. package/build/api-types/openai-chatcompletions/tool-codec.d.ts +17 -0
  28. package/build/api-types/openai-chatcompletions/tool-codec.js +80 -0
  29. package/build/api-types/openai-chatcompletions/tool-codec.js.map +1 -0
  30. package/build/api-types/openai-responses/billing.d.ts +12 -0
  31. package/build/api-types/openai-responses/billing.js +14 -0
  32. package/build/api-types/openai-responses/billing.js.map +1 -0
  33. package/build/api-types/openai-responses/tool-codec.d.ts +16 -0
  34. package/build/api-types/openai-responses/tool-codec.js +76 -0
  35. package/build/api-types/openai-responses/tool-codec.js.map +1 -0
  36. package/build/assets.d.ts +7 -0
  37. package/build/assets.js +8 -0
  38. package/build/assets.js.map +1 -0
  39. package/build/compatible-engine/session.d.ts +67 -0
  40. package/build/compatible-engine/session.js +92 -0
  41. package/build/compatible-engine/session.js.map +1 -0
  42. package/build/compatible-engine/structuring.d.ts +36 -0
  43. package/build/compatible-engine/structuring.js +34 -0
  44. package/build/compatible-engine/structuring.js.map +1 -0
  45. package/build/compatible-engine/validation.d.ts +21 -0
  46. package/build/compatible-engine/validation.js +82 -0
  47. package/build/compatible-engine/validation.js.map +1 -0
  48. package/build/compatible-engine.d/agentloop.d.ts +12 -0
  49. package/build/compatible-engine.d/agentloop.js +52 -0
  50. package/build/compatible-engine.d/agentloop.js.map +1 -0
  51. package/build/compatible-engine.d/aliyun/transport.d.ts +12 -0
  52. package/build/compatible-engine.d/aliyun/transport.js +7 -0
  53. package/build/compatible-engine.d/aliyun/transport.js.map +1 -0
  54. package/build/compatible-engine.d/aliyun.d.ts +24 -0
  55. package/build/compatible-engine.d/aliyun.js +46 -0
  56. package/build/compatible-engine.d/aliyun.js.map +1 -0
  57. package/build/compatible-engine.d/anthropic/choice-codec.d.ts +5 -0
  58. package/build/compatible-engine.d/anthropic/choice-codec.js +26 -0
  59. package/build/compatible-engine.d/anthropic/choice-codec.js.map +1 -0
  60. package/build/compatible-engine.d/anthropic/message-codec.d.ts +36 -0
  61. package/build/compatible-engine.d/anthropic/message-codec.js +86 -0
  62. package/build/compatible-engine.d/anthropic/message-codec.js.map +1 -0
  63. package/build/compatible-engine.d/anthropic/transport.d.ts +34 -0
  64. package/build/compatible-engine.d/anthropic/transport.js +150 -0
  65. package/build/compatible-engine.d/anthropic/transport.js.map +1 -0
  66. package/build/compatible-engine.d/anthropic.d.ts +26 -0
  67. package/build/compatible-engine.d/anthropic.js +46 -0
  68. package/build/compatible-engine.d/anthropic.js.map +1 -0
  69. package/build/compatible-engine.d/google/choice-codec.d.ts +5 -0
  70. package/build/compatible-engine.d/google/choice-codec.js +27 -0
  71. package/build/compatible-engine.d/google/choice-codec.js.map +1 -0
  72. package/build/compatible-engine.d/google/message-codec.d.ts +36 -0
  73. package/build/compatible-engine.d/google/message-codec.js +94 -0
  74. package/build/compatible-engine.d/google/message-codec.js.map +1 -0
  75. package/build/compatible-engine.d/google/transport.d.ts +30 -0
  76. package/build/compatible-engine.d/google/transport.js +78 -0
  77. package/build/compatible-engine.d/google/transport.js.map +1 -0
  78. package/build/compatible-engine.d/google.d.ts +26 -0
  79. package/build/compatible-engine.d/google.js +50 -0
  80. package/build/compatible-engine.d/google.js.map +1 -0
  81. package/build/compatible-engine.d/openai-chatcompletions/choice-codec.d.ts +5 -0
  82. package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js +31 -0
  83. package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js.map +1 -0
  84. package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +24 -0
  85. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +71 -0
  86. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +1 -0
  87. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.d.ts +38 -0
  88. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js +77 -0
  89. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js.map +1 -0
  90. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.d.ts +37 -0
  91. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js +190 -0
  92. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js.map +1 -0
  93. package/build/compatible-engine.d/openai-chatcompletions/transport.d.ts +10 -0
  94. package/build/compatible-engine.d/openai-chatcompletions/transport.js +11 -0
  95. package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +1 -0
  96. package/build/compatible-engine.d/openai-chatcompletions.d.ts +17 -0
  97. package/build/compatible-engine.d/openai-chatcompletions.js +14 -0
  98. package/build/compatible-engine.d/openai-chatcompletions.js.map +1 -0
  99. package/build/compatible-engine.d/openai-responses/choice-codec.d.ts +5 -0
  100. package/build/compatible-engine.d/openai-responses/choice-codec.js +30 -0
  101. package/build/compatible-engine.d/openai-responses/choice-codec.js.map +1 -0
  102. package/build/compatible-engine.d/openai-responses/message-codec.d.ts +36 -0
  103. package/build/compatible-engine.d/openai-responses/message-codec.js +96 -0
  104. package/build/compatible-engine.d/openai-responses/message-codec.js.map +1 -0
  105. package/build/compatible-engine.d/openai-responses/transport.d.ts +35 -0
  106. package/build/compatible-engine.d/openai-responses/transport.js +80 -0
  107. package/build/compatible-engine.d/openai-responses/transport.js.map +1 -0
  108. package/build/compatible-engine.d/openai-responses.d.ts +26 -0
  109. package/build/compatible-engine.d/openai-responses.js +46 -0
  110. package/build/compatible-engine.d/openai-responses.js.map +1 -0
  111. package/build/compatible-engine.d.ts +22 -0
  112. package/build/compatible-engine.js +29 -0
  113. package/build/compatible-engine.js.map +1 -0
  114. package/build/config.d.ts +24 -0
  115. package/build/config.js +11 -0
  116. package/build/config.js.map +1 -0
  117. package/build/endpoint-spec.d.ts +20 -0
  118. package/build/endpoint-spec.js +26 -0
  119. package/build/endpoint-spec.js.map +1 -0
  120. package/build/engine/session.d.ts +7 -0
  121. package/build/engine/session.js +1 -0
  122. package/build/engine/session.js.map +1 -0
  123. package/build/engine/transport.d.ts +5 -0
  124. package/build/engine/transport.js +1 -0
  125. package/build/engine/transport.js.map +1 -0
  126. package/build/engine/validation.d.ts +9 -0
  127. package/build/engine/validation.js +1 -0
  128. package/build/engine/validation.js.map +1 -0
  129. package/build/engine.d.ts +82 -0
  130. package/build/engine.js +104 -0
  131. package/build/engine.js.map +1 -0
  132. package/build/exports.d.ts +14 -0
  133. package/build/exports.js +15 -0
  134. package/build/exports.js.map +1 -0
  135. package/build/function.d.ts +106 -0
  136. package/build/function.js +55 -0
  137. package/build/function.js.map +1 -0
  138. package/build/inference-context.d.ts +6 -0
  139. package/build/inference-context.js +1 -0
  140. package/build/inference-context.js.map +1 -0
  141. package/build/native-engines.d/google/message-codec.d.ts +23 -0
  142. package/build/native-engines.d/google/message-codec.js +67 -0
  143. package/build/native-engines.d/google/message-codec.js.map +1 -0
  144. package/build/native-engines.d/google/session.d.ts +58 -0
  145. package/build/native-engines.d/google/session.js +101 -0
  146. package/build/native-engines.d/google/session.js.map +1 -0
  147. package/build/native-engines.d/google/transport.d.ts +34 -0
  148. package/build/native-engines.d/google/transport.js +81 -0
  149. package/build/native-engines.d/google/transport.js.map +1 -0
  150. package/build/native-engines.d/google/validation.d.ts +22 -0
  151. package/build/native-engines.d/google/validation.js +20 -0
  152. package/build/native-engines.d/google/validation.js.map +1 -0
  153. package/build/native-engines.d/google.d/agentloop.d.ts +12 -0
  154. package/build/native-engines.d/google.d/agentloop.js +57 -0
  155. package/build/native-engines.d/google.d/agentloop.js.map +1 -0
  156. package/build/native-engines.d/google.d/exports.d.ts +2 -0
  157. package/build/native-engines.d/google.d/exports.js +3 -0
  158. package/build/native-engines.d/google.d/exports.js.map +1 -0
  159. package/build/native-engines.d/google.d.ts +42 -0
  160. package/build/native-engines.d/google.js +83 -0
  161. package/build/native-engines.d/google.js.map +1 -0
  162. package/build/native-engines.d/openai-responses/choice-codec.d.ts +5 -0
  163. package/build/native-engines.d/openai-responses/choice-codec.js +30 -0
  164. package/build/native-engines.d/openai-responses/choice-codec.js.map +1 -0
  165. package/build/native-engines.d/openai-responses/message-codec.d.ts +23 -0
  166. package/build/native-engines.d/openai-responses/message-codec.js +75 -0
  167. package/build/native-engines.d/openai-responses/message-codec.js.map +1 -0
  168. package/build/native-engines.d/openai-responses/session.d.ts +61 -0
  169. package/build/native-engines.d/openai-responses/session.js +86 -0
  170. package/build/native-engines.d/openai-responses/session.js.map +1 -0
  171. package/build/native-engines.d/openai-responses/structuring.d.ts +19 -0
  172. package/build/native-engines.d/openai-responses/structuring.js +19 -0
  173. package/build/native-engines.d/openai-responses/structuring.js.map +1 -0
  174. package/build/native-engines.d/openai-responses/tool.d.ts +55 -0
  175. package/build/native-engines.d/openai-responses/tool.js +24 -0
  176. package/build/native-engines.d/openai-responses/tool.js.map +1 -0
  177. package/build/native-engines.d/openai-responses/transport.d.ts +35 -0
  178. package/build/native-engines.d/openai-responses/transport.js +84 -0
  179. package/build/native-engines.d/openai-responses/transport.js.map +1 -0
  180. package/build/native-engines.d/openai-responses/validation.d.ts +20 -0
  181. package/build/native-engines.d/openai-responses/validation.js +80 -0
  182. package/build/native-engines.d/openai-responses/validation.js.map +1 -0
  183. package/build/native-engines.d/openai-responses.d/agentloop.d.ts +12 -0
  184. package/build/native-engines.d/openai-responses.d/agentloop.js +61 -0
  185. package/build/native-engines.d/openai-responses.d/agentloop.js.map +1 -0
  186. package/build/native-engines.d/openai-responses.d/exports.d.ts +2 -0
  187. package/build/native-engines.d/openai-responses.d/exports.js +3 -0
  188. package/build/native-engines.d/openai-responses.d/exports.js.map +1 -0
  189. package/build/native-engines.d/openai-responses.d.ts +44 -0
  190. package/build/native-engines.d/openai-responses.js +78 -0
  191. package/build/native-engines.d/openai-responses.js.map +1 -0
  192. package/build/telemetry.d.ts +6 -0
  193. package/build/telemetry.js +19 -0
  194. package/build/telemetry.js.map +1 -0
  195. package/build/throttle.d.ts +11 -0
  196. package/build/throttle.js +39 -0
  197. package/build/throttle.js.map +1 -0
  198. package/build/tsconfig.tsbuildinfo +1 -0
  199. package/build/verbatim/codec/declarations.d.ts +2 -0
  200. package/build/verbatim/codec/declarations.js +22 -0
  201. package/build/verbatim/codec/declarations.js.map +1 -0
  202. package/build/verbatim/codec/request.d.ts +7 -0
  203. package/build/verbatim/codec/request.js +53 -0
  204. package/build/verbatim/codec/request.js.map +1 -0
  205. package/build/verbatim/codec.d.ts +2 -0
  206. package/build/verbatim/codec.js +3 -0
  207. package/build/verbatim/codec.js.map +1 -0
  208. package/build/verbatim.d.ts +74 -0
  209. package/build/verbatim.js +17 -0
  210. package/build/verbatim.js.map +1 -0
  211. package/examples/agent.ts +65 -0
  212. package/examples/chat.ts +24 -0
  213. package/examples/config.ts +24 -0
  214. package/examples/tsconfig.json +28 -0
  215. package/examples/verbatim.ts +44 -0
  216. package/package.json +50 -0
@@ -0,0 +1,75 @@
1
+ import { RoleMessage } from "./session.js";
2
+ import { Function } from "../../function.js";
3
+ import { Tool } from "./tool.js";
4
+ import { ResponseInvalid } from "../../engine.js";
5
+ import * as VerbatimCodec from "../../verbatim/codec.js";
6
+ export class MessageCodec {
7
+ ctx;
8
+ constructor(ctx) {
9
+ this.ctx = ctx;
10
+ }
11
+ encodeFunctionResponse(fr) {
12
+ return this.ctx.toolCodec.encodeFunctionResponse(fr);
13
+ }
14
+ decodeAiMessage(output) {
15
+ const parts = output.flatMap((item) => {
16
+ if (item.type === 'message') {
17
+ if (item.content.every(part => part.type === 'output_text')) { }
18
+ else
19
+ throw new ResponseInvalid('Refusal', { cause: output });
20
+ const text = item.content.map(part => part.text).join('');
21
+ if (text) {
22
+ const vrs = VerbatimCodec.Request.decode(text, this.ctx.vdm);
23
+ return [new RoleMessage.Part.Text(text, vrs)];
24
+ }
25
+ else
26
+ return [];
27
+ }
28
+ else if (item.type === 'function_call')
29
+ return [this.ctx.toolCodec.decodeFunctionCall(item)];
30
+ else if (item.type === 'reasoning')
31
+ return [];
32
+ else if (item.type === 'apply_patch_call')
33
+ return [new Tool.ApplyPatch.Call(item)];
34
+ else
35
+ throw new Error();
36
+ });
37
+ return new RoleMessage.Ai(parts, output);
38
+ }
39
+ encodeUserMessage(userMessage) {
40
+ return userMessage.getParts().map(part => {
41
+ if (part instanceof RoleMessage.Part.Text)
42
+ return {
43
+ type: 'message',
44
+ role: 'user',
45
+ content: part.text,
46
+ };
47
+ else if (part instanceof Function.Response)
48
+ return this.encodeFunctionResponse(part);
49
+ else if (part instanceof Tool.ApplyPatch.Response)
50
+ return {
51
+ type: 'apply_patch_call_output',
52
+ call_id: part.id,
53
+ status: part.failure ? 'failed' : 'completed',
54
+ output: part.failure || undefined,
55
+ };
56
+ else
57
+ throw new Error();
58
+ });
59
+ }
60
+ encodeAiMessage(aiMessage) {
61
+ return aiMessage.getRaw();
62
+ }
63
+ encodeDeveloperMessage(developerMessage) {
64
+ return this.ctx.compatibleMessageCodec.encodeDeveloperMessage(developerMessage);
65
+ }
66
+ encodeChatMessage(chatMessage) {
67
+ if (chatMessage instanceof RoleMessage.User)
68
+ return this.encodeUserMessage(chatMessage);
69
+ else if (chatMessage instanceof RoleMessage.Ai)
70
+ return this.encodeAiMessage(chatMessage);
71
+ else
72
+ throw new Error();
73
+ }
74
+ }
75
+ //# sourceMappingURL=message-codec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/message-codec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import { RoleMessage as CompatibleRoleMessage } from '../../compatible-engine/session.ts';
2
+ import { Function } from '../../function.ts';
3
+ import { Tool } from './tool.ts';
4
+ import type { Engine } from '../../engine.ts';
5
+ import type { Verbatim } from '../../verbatim.ts';
6
+ import OpenAI from 'openai';
7
+ declare const NOMINAL: unique symbol;
8
+ export interface Session<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> extends Engine.Session<RoleMessage.User<fdu>, RoleMessage.Ai<fdu, vdu>, RoleMessage.Developer> {
9
+ }
10
+ export declare namespace Session {
11
+ type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Session<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
12
+ type ChatMessage<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto> = Engine.Session.ChatMessage<RoleMessage.User<fdu>, RoleMessage.Ai<fdu, vdu>>;
13
+ namespace ChatMessage {
14
+ type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Session.ChatMessage<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
15
+ }
16
+ }
17
+ export declare namespace RoleMessage {
18
+ namespace Part {
19
+ export import Text = CompatibleRoleMessage.Part.Text;
20
+ }
21
+ class Ai<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> {
22
+ protected parts: RoleMessage.Ai.Part<fdu, vdu>[];
23
+ protected raw: OpenAI.Responses.ResponseOutputItem[];
24
+ protected [NOMINAL]: never;
25
+ constructor(parts: RoleMessage.Ai.Part<fdu, vdu>[], raw: OpenAI.Responses.ResponseOutputItem[]);
26
+ getParts(): RoleMessage.Ai.Part<fdu, vdu>[];
27
+ getRaw(): OpenAI.Responses.ResponseOutputItem[];
28
+ allTextPart(): boolean;
29
+ getTextParts(): RoleMessage.Part.Text<vdu>[];
30
+ getText(): string;
31
+ getToolCalls(): Tool.Call.Of<fdu>[];
32
+ getFunctionCalls(): Function.Call.Of<fdu>[];
33
+ getVerbatimRequests(): Verbatim.Request.Of<vdu>[];
34
+ getOnlyFunctionCall(): Function.Call.Of<fdu>;
35
+ getOnlyToolCall(): Tool.Call.Of<fdu>;
36
+ getOnlyVerbatimRequest(): Verbatim.Request.Of<vdu>;
37
+ }
38
+ namespace Ai {
39
+ type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = RoleMessage.Ai<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
40
+ type Part<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto> = RoleMessage.Part.Text<vdu> | Tool.Call.Of<fdu>;
41
+ namespace Part {
42
+ type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = RoleMessage.Ai.Part<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
43
+ }
44
+ }
45
+ class User<in out fdu extends Function.Decl.Proto> {
46
+ protected parts: RoleMessage.User.Part<fdu>[];
47
+ protected [NOMINAL]: never;
48
+ constructor(parts: RoleMessage.User.Part<fdu>[]);
49
+ getParts(): RoleMessage.User.Part<fdu>[];
50
+ getToolResponses(): Tool.Response.Of<fdu>[];
51
+ }
52
+ namespace User {
53
+ type From<fdm extends Function.Decl.Map.Proto> = RoleMessage.User<Function.Decl.From<fdm>>;
54
+ type Part<fdu extends Function.Decl.Proto> = RoleMessage.Part.Text<never> | Tool.Response.Of<fdu>;
55
+ namespace Part {
56
+ type From<fdm extends Function.Decl.Map.Proto> = RoleMessage.User.Part<Function.Decl.From<fdm>>;
57
+ }
58
+ }
59
+ export import Developer = CompatibleRoleMessage.Developer;
60
+ }
61
+ export {};
@@ -0,0 +1,86 @@
1
+ import { RoleMessage as CompatibleRoleMessage } from "../../compatible-engine/session.js";
2
+ import { Function } from "../../function.js";
3
+ import { Tool } from "./tool.js";
4
+ const NOMINAL = Symbol();
5
+ export var RoleMessage;
6
+ (function (RoleMessage) {
7
+ let Part;
8
+ (function (Part) {
9
+ Part.Text = CompatibleRoleMessage.Part.Text;
10
+ })(Part = RoleMessage.Part || (RoleMessage.Part = {}));
11
+ class Ai {
12
+ parts;
13
+ raw;
14
+ constructor(parts, raw) {
15
+ this.parts = parts;
16
+ this.raw = raw;
17
+ }
18
+ getParts() {
19
+ return this.parts;
20
+ }
21
+ getRaw() {
22
+ return this.raw;
23
+ }
24
+ allTextPart() {
25
+ return this.parts.every(part => part instanceof RoleMessage.Part.Text);
26
+ }
27
+ getTextParts() {
28
+ return this.parts.filter(part => part instanceof RoleMessage.Part.Text);
29
+ }
30
+ getText() {
31
+ return this.getTextParts().map(part => part.text).join('');
32
+ }
33
+ getToolCalls() {
34
+ return this.parts.filter(part => part instanceof Function.Call || part instanceof Tool.ApplyPatch.Call);
35
+ }
36
+ getFunctionCalls() {
37
+ return this.parts.filter(part => part instanceof Function.Call);
38
+ }
39
+ getVerbatimRequests() {
40
+ return this.parts
41
+ .filter(part => part instanceof RoleMessage.Part.Text)
42
+ .flatMap(part => part.vrs);
43
+ }
44
+ getOnlyFunctionCall() {
45
+ const tcs = this.getToolCalls();
46
+ if (tcs.length === 1) { }
47
+ else
48
+ throw new Error();
49
+ const tc = tcs[0];
50
+ if (tc instanceof Function.Call) { }
51
+ else
52
+ throw new Error();
53
+ return tc;
54
+ }
55
+ getOnlyToolCall() {
56
+ const tcs = this.getToolCalls();
57
+ if (tcs.length === 1) { }
58
+ else
59
+ throw new Error();
60
+ return tcs[0];
61
+ }
62
+ getOnlyVerbatimRequest() {
63
+ const vrs = this.getVerbatimRequests();
64
+ if (vrs.length === 1) { }
65
+ else
66
+ throw new Error();
67
+ return vrs[0];
68
+ }
69
+ }
70
+ RoleMessage.Ai = Ai;
71
+ class User {
72
+ parts;
73
+ constructor(parts) {
74
+ this.parts = parts;
75
+ }
76
+ getParts() {
77
+ return this.parts;
78
+ }
79
+ getToolResponses() {
80
+ return this.parts.filter(part => part instanceof Function.Response || part instanceof Tool.ApplyPatch.Response);
81
+ }
82
+ }
83
+ RoleMessage.User = User;
84
+ RoleMessage.Developer = CompatibleRoleMessage.Developer;
85
+ })(RoleMessage || (RoleMessage = {}));
86
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAC,MAAM,oCAAoC,CAAC;AACzF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAKjC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAgCzB,MAAM,KAAW,WAAW,CA8G3B;AA9GD,WAAiB,WAAW;IACxB,IAAiB,IAAI,CAEpB;IAFD,WAAiB,IAAI;QACH,SAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;IACzD,CAAC,EAFgB,IAAI,GAAJ,gBAAI,KAAJ,gBAAI,QAEpB;IAED,MAAa,EAAE;QAMG;QACA;QAFd,YACc,KAAsC,EACtC,GAA0C;YAD1C,UAAK,GAAL,KAAK,CAAiC;YACtC,QAAG,GAAH,GAAG,CAAuC;QACrD,CAAC;QAEG,QAAQ;YACX,OAAO,IAAI,CAAC,KAAK,CAAC;QACtB,CAAC;QACM,MAAM;YACT,OAAO,IAAI,CAAC,GAAG,CAAC;QACpB,CAAC;QACM,WAAW;YACd,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3E,CAAC;QACM,YAAY;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,CAAC;QACM,OAAO;YACV,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC/D,CAAC;QACM,YAAY;YACf,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,QAAQ,CAAC,IAAI,IAAI,IAAI,YAAY,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC5G,CAAC;QACM,gBAAgB;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,QAAQ,CAAC,IAAI,CAAC,CAAC;QACpE,CAAC;QACM,mBAAmB;YACtB,OAAO,IAAI,CAAC,KAAK;iBACZ,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;iBACrD,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;QAEM,mBAAmB;YACtB,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,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;YACnB,IAAI,EAAE,YAAY,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA,CAAC;;gBAAM,MAAM,IAAI,KAAK,EAAE,CAAC;YAC3D,OAAO,EAAE,CAAC;QACd,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;QACM,sBAAsB;YACzB,MAAM,GAAG,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACvC,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;IAtDY,cAAE,KAsDd,CAAA;IAsBD,MAAa,IAAI;QAIgB;QAA7B,YAA6B,KAAmC;YAAnC,UAAK,GAAL,KAAK,CAA8B;QAAG,CAAC;QAC7D,QAAQ;YACX,OAAO,IAAI,CAAC,KAAK,CAAC;QACtB,CAAC;QACM,gBAAgB;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,YAAY,QAAQ,CAAC,QAAQ,IAAI,IAAI,YAAY,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACpH,CAAC;KACJ;IAXY,gBAAI,OAWhB,CAAA;IAiBa,qBAAS,GAAG,qBAAqB,CAAC,SAAS,CAAC;AAC9D,CAAC,EA9GgB,WAAW,KAAX,WAAW,QA8G3B"}
@@ -0,0 +1,19 @@
1
+ import { Structuring as CompatibleStructuring } from '../../compatible-engine/structuring.ts';
2
+ import type { Function } from '../../function.ts';
3
+ import type { Verbatim } from '../../verbatim.ts';
4
+ export declare namespace Structuring {
5
+ type Choice<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto> = Structuring.Choice.TCall.FCall.Of<fdu> | typeof Structuring.Choice.TCall.REQUIRED | typeof Structuring.Choice.TCall.ANYONE | Structuring.Choice.VRequest.Of<vdu> | typeof Structuring.Choice.VRequest.REQUIRED | typeof Structuring.Choice.VRequest.ANYONE | typeof Structuring.Choice.NONE | typeof Structuring.Choice.AUTO | typeof Structuring.Choice.REQUIRED | typeof Structuring.Choice.ANYONE;
6
+ namespace Choice {
7
+ type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Structuring.Choice<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
8
+ export import REQUIRED = CompatibleStructuring.Choice.REQUIRED;
9
+ export import ANYONE = CompatibleStructuring.Choice.ANYONE;
10
+ namespace TCall {
11
+ const REQUIRED: unique symbol;
12
+ const ANYONE: unique symbol;
13
+ export import FCall = CompatibleStructuring.Choice.FCall;
14
+ }
15
+ export import VRequest = CompatibleStructuring.Choice.VRequest;
16
+ export import NONE = CompatibleStructuring.Choice.NONE;
17
+ export import AUTO = CompatibleStructuring.Choice.AUTO;
18
+ }
19
+ }
@@ -0,0 +1,19 @@
1
+ import { Structuring as CompatibleStructuring } from "../../compatible-engine/structuring.js";
2
+ export var Structuring;
3
+ (function (Structuring) {
4
+ let Choice;
5
+ (function (Choice) {
6
+ Choice.REQUIRED = CompatibleStructuring.Choice.REQUIRED;
7
+ Choice.ANYONE = CompatibleStructuring.Choice.ANYONE;
8
+ let TCall;
9
+ (function (TCall) {
10
+ TCall.REQUIRED = Symbol();
11
+ TCall.ANYONE = Symbol();
12
+ TCall.FCall = CompatibleStructuring.Choice.FCall;
13
+ })(TCall = Choice.TCall || (Choice.TCall = {}));
14
+ Choice.VRequest = CompatibleStructuring.Choice.VRequest;
15
+ Choice.NONE = CompatibleStructuring.Choice.NONE;
16
+ Choice.AUTO = CompatibleStructuring.Choice.AUTO;
17
+ })(Choice = Structuring.Choice || (Structuring.Choice = {}));
18
+ })(Structuring || (Structuring = {}));
19
+ //# sourceMappingURL=structuring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuring.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/structuring.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAK9F,MAAM,KAAW,WAAW,CAuC3B;AAvCD,WAAiB,WAAW;IAmBxB,IAAiB,MAAM,CAmBtB;IAnBD,WAAiB,MAAM;QAML,eAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjD,aAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,MAAM,CAAC;QAE3D,IAAiB,KAAK,CAKrB;QALD,WAAiB,KAAK;YACL,cAAQ,GAAG,MAAM,EAAE,CAAC;YACpB,YAAM,GAAG,MAAM,EAAE,CAAC;YAEjB,WAAK,GAAG,qBAAqB,CAAC,MAAM,CAAC,KAAK,CAAC;QAC7D,CAAC,EALgB,KAAK,GAAL,YAAK,KAAL,YAAK,QAKrB;QAEa,eAAQ,GAAG,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjD,WAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;QACzC,WAAI,GAAG,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC;IAC3D,CAAC,EAnBgB,MAAM,GAAN,kBAAM,KAAN,kBAAM,QAmBtB;AACL,CAAC,EAvCgB,WAAW,KAAX,WAAW,QAuC3B"}
@@ -0,0 +1,55 @@
1
+ import { Function } from '../../function.ts';
2
+ import OpenAI from 'openai';
3
+ export declare namespace Tool {
4
+ const APPLY_PATCH: unique symbol;
5
+ namespace Name {
6
+ type From<fdm extends Function.Decl.Map.Proto> = Function.Name.From<fdm> | typeof Tool.APPLY_PATCH;
7
+ }
8
+ type Map<fdm extends Function.Decl.Map.Proto> = {
9
+ [name in Tool.Name.From<fdm>]: name extends typeof Tool.APPLY_PATCH ? Tool.ApplyPatch : name extends Function.Name.From<fdm> ? Function.Extract<fdm, name> : never;
10
+ };
11
+ namespace Call {
12
+ type Of<fdu extends Function.Decl.Proto> = Function.Call.Of<fdu> | ApplyPatch.Call;
13
+ type From<fdm extends Function.Decl.Map.Proto> = Call.Of<Function.Decl.From<fdm>>;
14
+ }
15
+ namespace Response {
16
+ type Of<fdu extends Function.Decl.Proto> = Function.Response.Of<fdu> | ApplyPatch.Response;
17
+ type From<fdm extends Function.Decl.Map.Proto> = Response.Of<Function.Decl.From<fdm>>;
18
+ }
19
+ interface ApplyPatch {
20
+ /**
21
+ * @returns empty string on success
22
+ */
23
+ (operation: ApplyPatch.Operation): Promise<string>;
24
+ }
25
+ namespace ApplyPatch {
26
+ type Operation = Operation.UpdateFile | Operation.CreateFile | Operation.DeleteFile;
27
+ namespace Operation {
28
+ interface UpdateFile {
29
+ type: 'update_file';
30
+ diff: string;
31
+ path: string;
32
+ }
33
+ interface CreateFile {
34
+ type: 'create_file';
35
+ diff: string;
36
+ path: string;
37
+ }
38
+ interface DeleteFile {
39
+ type: 'delete_file';
40
+ path: string;
41
+ }
42
+ }
43
+ }
44
+ namespace ApplyPatch {
45
+ class Call {
46
+ raw: OpenAI.Responses.ResponseApplyPatchToolCall;
47
+ constructor(raw: OpenAI.Responses.ResponseApplyPatchToolCall);
48
+ }
49
+ class Response {
50
+ id: string;
51
+ failure: string;
52
+ constructor(apr: Omit<ApplyPatch.Response, never>);
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,24 @@
1
+ export var Tool;
2
+ (function (Tool) {
3
+ Tool.APPLY_PATCH = Symbol();
4
+ let ApplyPatch;
5
+ (function (ApplyPatch) {
6
+ class Call {
7
+ raw;
8
+ constructor(raw) {
9
+ this.raw = raw;
10
+ }
11
+ }
12
+ ApplyPatch.Call = Call;
13
+ class Response {
14
+ id;
15
+ failure;
16
+ constructor(apr) {
17
+ this.id = apr.id;
18
+ this.failure = apr.failure;
19
+ }
20
+ }
21
+ ApplyPatch.Response = Response;
22
+ })(ApplyPatch = Tool.ApplyPatch || (Tool.ApplyPatch = {}));
23
+ })(Tool || (Tool = {}));
24
+ //# sourceMappingURL=tool.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/tool.ts"],"names":[],"mappings":"AAIA,MAAM,KAAW,IAAI,CAkFpB;AAlFD,WAAiB,IAAI;IACJ,gBAAW,GAAG,MAAM,EAAE,CAAC;IA+DpC,IAAiB,UAAU,CAe1B;IAfD,WAAiB,UAAU;QAEvB,MAAa,IAAI;YACa;YAA1B,YAA0B,GAAgD;gBAAhD,QAAG,GAAH,GAAG,CAA6C;YAAG,CAAC;SACjF;QAFY,eAAI,OAEhB,CAAA;QAED,MAAa,QAAQ;YACV,EAAE,CAAS;YACX,OAAO,CAAS;YACvB,YAAmB,GAAqC;gBACpD,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC;YAC/B,CAAC;SACJ;QAPY,mBAAQ,WAOpB,CAAA;IAEL,CAAC,EAfgB,UAAU,GAAV,eAAU,KAAV,eAAU,QAe1B;AAGL,CAAC,EAlFgB,IAAI,KAAJ,IAAI,QAkFpB"}
@@ -0,0 +1,35 @@
1
+ import { type InferenceParams, type ProviderSpec } from '../../engine.ts';
2
+ import { RoleMessage, type Session } from './session.ts';
3
+ import { Function } from '../../function.ts';
4
+ import type OpenAI from 'openai';
5
+ import { type InferenceContext } from '../../inference-context.ts';
6
+ import { Throttle } from '../../throttle.ts';
7
+ import type { MessageCodec } from './message-codec.ts';
8
+ import type { ToolCodec } from '../../api-types/openai-responses/tool-codec.ts';
9
+ import type { Billing } from '../../api-types/openai-responses/billing.ts';
10
+ import type { Validator } from './validation.ts';
11
+ import type { Verbatim } from '../../verbatim.ts';
12
+ import { Structuring } from './structuring.ts';
13
+ export declare class Transport<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> {
14
+ protected ctx: Transport.Context<fdm, vdm>;
15
+ protected apiURL: URL;
16
+ constructor(ctx: Transport.Context<fdm, vdm>);
17
+ protected makeParams(session: Session.From<fdm, vdm>): OpenAI.Responses.ResponseCreateParamsNonStreaming;
18
+ protected logAiMessage(output: OpenAI.Responses.ResponseOutputItem[]): void;
19
+ fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
20
+ }
21
+ export declare namespace Transport {
22
+ interface Context<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
23
+ inferenceParams: InferenceParams;
24
+ providerSpec: ProviderSpec;
25
+ fdm: fdm;
26
+ throttle: Throttle;
27
+ choice: Structuring.Choice.From<fdm, vdm>;
28
+ parallelToolCall: boolean;
29
+ applyPatch: boolean;
30
+ messageCodec: MessageCodec<fdm, vdm>;
31
+ toolCodec: ToolCodec<fdm>;
32
+ billing: Billing;
33
+ validator: Validator.From<fdm, vdm>;
34
+ }
35
+ }
@@ -0,0 +1,84 @@
1
+ import { NetworkError, ResponseInvalid } from "../../engine.js";
2
+ import * as Undici from 'undici';
3
+ import { logger } from "../../telemetry.js";
4
+ import * as ChoiceCodec from "./choice-codec.js";
5
+ export class Transport {
6
+ ctx;
7
+ apiURL;
8
+ constructor(ctx) {
9
+ this.ctx = ctx;
10
+ this.apiURL = new URL(`${this.ctx.providerSpec.baseUrl}/responses`);
11
+ }
12
+ makeParams(session) {
13
+ const tools = this.ctx.toolCodec.encodeFunctionDeclarationMap(this.ctx.fdm);
14
+ if (this.ctx.applyPatch)
15
+ tools.push({ type: 'apply_patch' });
16
+ return {
17
+ model: this.ctx.inferenceParams.model,
18
+ include: ['reasoning.encrypted_content'],
19
+ store: false,
20
+ input: session.chatMessages.flatMap(chatMessage => this.ctx.messageCodec.encodeChatMessage(chatMessage)),
21
+ instructions: session.developerMessage && this.ctx.messageCodec.encodeDeveloperMessage(session.developerMessage),
22
+ tools: tools.length ? tools : undefined,
23
+ tool_choice: tools.length ? ChoiceCodec.encode(this.ctx.choice) : undefined,
24
+ parallel_tool_calls: tools.length ? this.ctx.parallelToolCall : undefined,
25
+ max_output_tokens: this.ctx.inferenceParams.maxTokens,
26
+ ...this.ctx.inferenceParams.additionalOptions,
27
+ };
28
+ }
29
+ logAiMessage(output) {
30
+ for (const item of output)
31
+ if (item.type === 'message') {
32
+ if (item.content.every(part => part.type === 'output_text')) { }
33
+ else
34
+ throw new Error();
35
+ logger.inference.debug(item.content.map(part => part.text).join(''));
36
+ }
37
+ else if (item.type === 'function_call')
38
+ logger.message.debug(item);
39
+ else if (item.type === 'apply_patch_call')
40
+ logger.message.debug(item);
41
+ }
42
+ async fetch(wfctx, session, signal) {
43
+ await this.ctx.throttle.requests(wfctx);
44
+ // Prepare request
45
+ const params = this.makeParams(session);
46
+ logger.message.trace(params);
47
+ // Send request
48
+ const res = await Undici.fetch(this.apiURL, {
49
+ method: 'POST',
50
+ headers: new Headers({
51
+ 'Content-Type': 'application/json',
52
+ 'Authorization': `Bearer ${this.ctx.providerSpec.apiKey}`,
53
+ }),
54
+ body: JSON.stringify(params),
55
+ dispatcher: this.ctx.providerSpec.proxyAgent,
56
+ signal,
57
+ }).catch(e => {
58
+ if (e instanceof TypeError)
59
+ throw new NetworkError(undefined, { cause: e });
60
+ else
61
+ throw e;
62
+ });
63
+ // Get response
64
+ if (res.ok) { }
65
+ else
66
+ throw new Error(undefined, { cause: res });
67
+ const response = await res.json();
68
+ logger.message.trace(response);
69
+ // Validate response
70
+ if (response.status === 'incomplete' && response.incomplete_details?.reason === 'max_output_tokens')
71
+ throw new ResponseInvalid('Token limit exceeded.', { cause: response });
72
+ if (response.status === 'completed') { }
73
+ else
74
+ throw new ResponseInvalid('Abnormal response status', { cause: response });
75
+ if (response.usage) { }
76
+ else
77
+ throw new Error();
78
+ this.logAiMessage(response.output);
79
+ wfctx.cost?.(this.ctx.billing.charge(response.usage));
80
+ logger.message.debug(response.usage);
81
+ return this.ctx.messageCodec.decodeAiMessage(response.output);
82
+ }
83
+ }
84
+ //# sourceMappingURL=transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/transport.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Structuring } from './structuring.ts';
2
+ import { Function } from '../../function.ts';
3
+ import { Verbatim } from '../../verbatim.ts';
4
+ import { RoleMessage } from './session.ts';
5
+ import type { Engine } from '../../engine.ts';
6
+ export declare class Validator<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> implements Engine.Validator<fdu, vdu, RoleMessage.Ai<fdu, vdu>> {
7
+ protected ctx: Validator.Context<fdu, vdu>;
8
+ constructor(ctx: Validator.Context<fdu, vdu>);
9
+ validateChoice(message: RoleMessage.Ai<fdu, vdu>): void;
10
+ validateParts(message: RoleMessage.Ai<fdu, vdu>): void;
11
+ }
12
+ export declare namespace Validator {
13
+ type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Validator<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
14
+ interface Context<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> {
15
+ choice: Structuring.Choice<fdu, vdu>;
16
+ }
17
+ namespace Context {
18
+ type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Context<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
19
+ }
20
+ }
@@ -0,0 +1,80 @@
1
+ import { Structuring } from "./structuring.js";
2
+ import { Function } from "../../function.js";
3
+ import { ResponseInvalid } from "../../engine.js";
4
+ export class Validator {
5
+ ctx;
6
+ constructor(ctx) {
7
+ this.ctx = ctx;
8
+ }
9
+ validateChoice(message) {
10
+ const tcs = message.getToolCalls();
11
+ const vrs = message.getVerbatimRequests();
12
+ if (this.ctx.choice === Structuring.Choice.TCall.REQUIRED) {
13
+ if (tcs.length) { }
14
+ else
15
+ throw new ResponseInvalid('Tool call required.');
16
+ }
17
+ else if (this.ctx.choice === Structuring.Choice.TCall.ANYONE) {
18
+ if (tcs.length) { }
19
+ else
20
+ throw new ResponseInvalid('Tool call required.');
21
+ if (tcs.length > 1)
22
+ throw new ResponseInvalid('Only one tool call allowed.');
23
+ }
24
+ else if (this.ctx.choice instanceof Structuring.Choice.TCall.FCall) {
25
+ if (tcs.length) { }
26
+ else
27
+ throw new ResponseInvalid(`Function call of ${this.ctx.choice.name} required.`);
28
+ if (tcs.length > 1)
29
+ throw new ResponseInvalid('Only one function call allowed.');
30
+ if (tcs[0] instanceof Function.Call && tcs[0].name === this.ctx.choice.name) { }
31
+ else
32
+ throw new ResponseInvalid(`Only function call of ${this.ctx.choice.name} allowed.`);
33
+ }
34
+ else if (this.ctx.choice === Structuring.Choice.VRequest.REQUIRED) {
35
+ if (vrs.length) { }
36
+ else
37
+ throw new ResponseInvalid('Verbatim message required.');
38
+ }
39
+ else if (this.ctx.choice === Structuring.Choice.VRequest.ANYONE) {
40
+ if (vrs.length) { }
41
+ else
42
+ throw new ResponseInvalid('Verbatim message required.');
43
+ if (vrs.length > 1)
44
+ throw new ResponseInvalid('Only one verbatim message allowed.');
45
+ }
46
+ else if (this.ctx.choice instanceof Structuring.Choice.VRequest) {
47
+ if (vrs.length) { }
48
+ else
49
+ throw new ResponseInvalid(`Verbatim message through channel ${this.ctx.choice.name} required.`);
50
+ if (vrs.length > 1)
51
+ throw new ResponseInvalid('Only one verbatim message allowed.');
52
+ if (vrs[0].name === this.ctx.choice.name) { }
53
+ else
54
+ throw new ResponseInvalid(`Only verbatim message through channel ${this.ctx.choice.name} allowed.`);
55
+ }
56
+ else if (this.ctx.choice === Structuring.Choice.REQUIRED) {
57
+ if (tcs.length + vrs.length) { }
58
+ else
59
+ throw new ResponseInvalid('Either tool call or verbatim message required.');
60
+ }
61
+ else if (this.ctx.choice === Structuring.Choice.ANYONE) {
62
+ if (tcs.length + vrs.length) { }
63
+ else
64
+ throw new ResponseInvalid('Either tool call or verbatim message required.');
65
+ if (tcs.length + vrs.length > 1)
66
+ throw new ResponseInvalid('Only one tool call or verbatim message allowed.');
67
+ }
68
+ else if (this.ctx.choice === Structuring.Choice.NONE) {
69
+ if (tcs.length + vrs.length)
70
+ throw new ResponseInvalid('Neither tool call nor verbatim message allowed.');
71
+ }
72
+ }
73
+ validateParts(message) {
74
+ const parts = message.getParts();
75
+ if (parts.length) { }
76
+ else
77
+ throw new ResponseInvalid('Empty message.');
78
+ }
79
+ }
80
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/validation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { type InferenceContext } from '../../inference-context.ts';
2
+ import { Function } from '../../function.ts';
3
+ import { OpenAIResponsesNativeEngine } from '../openai-responses.ts';
4
+ import * as CompatibleAgentloopModule from '../../compatible-engine.d/agentloop.ts';
5
+ import type { Verbatim } from '../../verbatim.ts';
6
+ /**
7
+ * @param session mutable
8
+ */
9
+ export declare function agentloop<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto>(wfctx: InferenceContext, session: OpenAIResponsesNativeEngine.Session.From<fdm, vdm>, engine: OpenAIResponsesNativeEngine<fdm, vdm>, tlm: OpenAIResponsesNativeEngine.Tool.Map<fdm>, limit?: number): AsyncGenerator<string, string, void>;
10
+ export declare namespace agentloop {
11
+ export import FunctionCallLimitExceeded = CompatibleAgentloopModule.agentloop.FunctionCallLimitExceeded;
12
+ }