@zimtsui/typechat 0.0.125 → 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 +5 -2
  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 +16 -13
  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 +10 -8
  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 +5 -8
  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
@@ -2,7 +2,6 @@ import { Function } from '../function.ts';
2
2
  import { Engine } from '../engine.ts';
3
3
  import { MessageCodec } from './openai-chatcompletions/message-codec.ts';
4
4
  import * as TransportModule from './openai-chatcompletions/transport.ts';
5
- import * as MessageModule from './openai-chatcompletions/message.ts';
6
5
  import { ToolCodec } from './openai-chatcompletions/tool-codec.ts';
7
6
  import { Billing } from './openai-chatcompletions/billing.ts';
8
7
  export type OpenAIChatCompletionsEngine<fdm extends Function.Decl.Map.Proto> = OpenAIChatCompletionsEngine.Instance<fdm>;
@@ -14,9 +13,7 @@ export declare namespace OpenAIChatCompletionsEngine {
14
13
  protected billing: Billing;
15
14
  protected transport: Transport<fdm>;
16
15
  constructor(options: Engine.Options<fdm>);
17
- clone(): Engine<fdm>;
18
16
  }
19
- export import RoleMessage = MessageModule.RoleMessage;
20
17
  export import Transport = TransportModule.Transport;
21
18
  function createEngine<fdm extends Function.Decl.Map.Proto>(options: Engine.Options<fdm>): Engine<fdm>;
22
19
  }
@@ -1,7 +1,6 @@
1
1
  import { Engine } from "../engine.js";
2
2
  import { MessageCodec } from "./openai-chatcompletions/message-codec.js";
3
3
  import * as TransportModule from "./openai-chatcompletions/transport.js";
4
- import * as MessageModule from "./openai-chatcompletions/message.js";
5
4
  import { ToolCodec } from "./openai-chatcompletions/tool-codec.js";
6
5
  import { Billing } from "./openai-chatcompletions/billing.js";
7
6
  export var OpenAIChatCompletionsEngine;
@@ -18,6 +17,7 @@ export var OpenAIChatCompletionsEngine;
18
17
  this.toolCodec = new ToolCodec({ fdm: this.fdm });
19
18
  this.messageCodec = new MessageCodec({
20
19
  toolCodec: this.toolCodec,
20
+ messageValidator: this.messageValidator,
21
21
  });
22
22
  this.billing = new Billing({ pricing: this.pricing });
23
23
  this.transport = new OpenAIChatCompletionsEngine.Transport({
@@ -31,15 +31,8 @@ export var OpenAIChatCompletionsEngine;
31
31
  billing: this.billing,
32
32
  });
33
33
  }
34
- clone() {
35
- const engine = new OpenAIChatCompletionsEngine.Instance(this.options);
36
- engine.middlewaresStateless = [...this.middlewaresStateless];
37
- engine.middlewaresStateful = [...this.middlewaresStateful];
38
- return engine;
39
- }
40
34
  }
41
35
  OpenAIChatCompletionsEngine.Instance = Instance;
42
- OpenAIChatCompletionsEngine.RoleMessage = MessageModule.RoleMessage;
43
36
  OpenAIChatCompletionsEngine.Transport = TransportModule.Transport;
44
37
  createEngine;
45
38
  function createEngine(options) {
@@ -1 +1 @@
1
- {"version":3,"file":"openai-chatcompletions.js","sourceRoot":"","sources":["../../src/engines/openai-chatcompletions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,KAAK,eAAe,MAAM,uCAAuC,CAAC;AACzE,OAAO,KAAK,aAAa,MAAM,qCAAqC,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAQ9D,MAAM,KAAW,2BAA2B,CA8C3C;AA9CD,WAAiB,2BAA2B;IACxC,MAAa,QAEX,SAAQ,MAAM,CAAC,QAAa;QAMG;QALnB,SAAS,CAAiB;QAC1B,YAAY,CAAoB;QAChC,OAAO,CAAU;QACR,SAAS,CAAiB;QAE7C,YAA6B,OAA4B;YACrD,KAAK,CAAC,OAAO,CAAC,CAAC;YADU,YAAO,GAAP,OAAO,CAAqB;YAErD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC;gBACjC,SAAS,EAAE,IAAI,CAAC,SAAS;aAC5B,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,IAAI,4BAAA,SAAS,CAAC;gBAC3B,eAAe,EAAE,IAAI,CAAC,gBAAgB;gBACtC,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;QACP,CAAC;QAEe,KAAK;YACjB,MAAM,MAAM,GAAG,IAAI,2BAA2B,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtE,MAAM,CAAC,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC7D,MAAM,CAAC,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC3D,OAAO,MAAM,CAAC;QAClB,CAAC;KAEJ;IAlCY,oCAAQ,WAkCpB,CAAA;IAEa,uCAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IACxC,qCAAS,GAAG,eAAe,CAAC,SAAS,CAAC;IAEpD,YAAoC,CAAC;IACrC,SAAgB,YAAY,CAE1B,OAA4B;QAC1B,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAJe,wCAAY,eAI3B,CAAA;AACL,CAAC,EA9CgB,2BAA2B,KAA3B,2BAA2B,QA8C3C"}
1
+ {"version":3,"file":"openai-chatcompletions.js","sourceRoot":"","sources":["../../src/engines/openai-chatcompletions.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA2C,CAAC;AACzE,OAAO,KAAK,eAAe,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AAM9D,MAAM,KAAW,2BAA2B,CAsC3C;AAtCD,WAAiB,2BAA2B;IACxC,MAAa,QAEX,SAAQ,MAAM,CAAC,QAAa;QAMG;QALnB,SAAS,CAAiB;QAC1B,YAAY,CAAoB;QAChC,OAAO,CAAU;QACR,SAAS,CAAiB;QAE7C,YAA6B,OAA4B;YACrD,KAAK,CAAC,OAAO,CAAC,CAAC;YADU,YAAO,GAAP,OAAO,CAAqB;YAErD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC;gBACjC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aAC1C,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,IAAI,4BAAA,SAAS,CAAC;gBAC3B,eAAe,EAAE,IAAI,CAAC,gBAAgB;gBACtC,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;QACP,CAAC;KACJ;IA3BY,oCAAQ,WA2BpB,CAAA;IAEa,qCAAS,GAAG,eAAe,CAAC,SAAS,CAAC;IAEpD,YAAoC,CAAC;IACrC,SAAgB,YAAY,CAE1B,OAA4B;QAC1B,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAJe,wCAAY,eAI3B,CAAA;AACL,CAAC,EAtCgB,2BAA2B,KAA3B,2BAA2B,QAsC3C"}
@@ -1,19 +1,28 @@
1
1
  import { Engine } from '../../engine.ts';
2
- import { RoleMessage } from './message.ts';
3
2
  import { Function } from '../../function.ts';
4
3
  import OpenAI from 'openai';
5
4
  import { ToolCodec } from '../openai-responses/tool-codec.ts';
5
+ import { Media } from '../../media.ts';
6
+ import { Text } from '../../text.ts';
6
7
  export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto> {
8
+ protected cacheDeveloperMessages: WeakMap<Engine.Message.Developer, string>;
9
+ protected cacheInputMessages: WeakMap<Engine.Message.Input<Function.Decl.Proto>, OpenAI.Responses.ResponseInput>;
10
+ protected cacheOutputMessages: WeakMap<Engine.Message.Output<Function.Decl.Proto>, OpenAI.Responses.ResponseInput>;
11
+ protected cacheResponseIds: WeakMap<Engine.Message.Output<Function.Decl.Proto>, string>;
7
12
  protected toolCodec: ToolCodec<fdm>;
13
+ protected messageValidator: Engine.MessageValidator.From<fdm>;
8
14
  constructor(options: MessageCodec.Options<fdm>);
9
- decodeAiMessage(raw: OpenAI.Responses.Response): RoleMessage.Ai.From<fdm>;
10
- encodeUserMessage(userMessage: Engine.RoleMessage.User.From<fdm>): OpenAI.Responses.ResponseInput;
11
- encodeAiMessage(aiMessage: Engine.RoleMessage.Ai.From<fdm>): OpenAI.Responses.ResponseInput;
12
- encodeDeveloperMessage(developerMessage: Engine.RoleMessage.Developer): string;
15
+ decodeOutputMessage(raw: OpenAI.Responses.Response): Engine.Message.Output.From<fdm>;
16
+ encodeUserMessagePart(part: Text | Media): OpenAI.Responses.ResponseInputContent;
17
+ encodeInputMessage(inm: Engine.Message.Input.From<fdm>): OpenAI.Responses.ResponseInput;
18
+ encodeOutputMessage(outm: Engine.Message.Output.From<fdm>): OpenAI.Responses.ResponseInput;
19
+ getResponseId(outm: Engine.Message.Output.From<fdm>): string | undefined;
20
+ encodeDeveloperMessage(developerMessage: Engine.Message.Developer): string;
13
21
  encodeChatMessage(chatMessage: Engine.Session.ChatMessage.From<fdm>): OpenAI.Responses.ResponseInput;
14
22
  }
15
23
  export declare namespace MessageCodec {
16
24
  interface Options<in out fdm extends Function.Decl.Map.Proto> {
17
25
  toolCodec: ToolCodec<fdm>;
26
+ messageValidator: Engine.MessageValidator.From<fdm>;
18
27
  }
19
28
  }
@@ -1,108 +1,109 @@
1
1
  import { Engine } from "../../engine.js";
2
- import { RoleMessage } from "./message.js";
3
2
  import { Function } from "../../function.js";
4
3
  import { Media } from "../../media.js";
4
+ import { Text } from "../../text.js";
5
5
  export class MessageCodec {
6
+ cacheDeveloperMessages = new WeakMap();
7
+ cacheInputMessages = new WeakMap();
8
+ cacheOutputMessages = new WeakMap();
9
+ cacheResponseIds = new WeakMap();
6
10
  toolCodec;
11
+ messageValidator;
7
12
  constructor(options) {
8
13
  this.toolCodec = options.toolCodec;
14
+ this.messageValidator = options.messageValidator;
9
15
  }
10
- decodeAiMessage(raw) {
16
+ decodeOutputMessage(raw) {
11
17
  const parts = [];
12
18
  for (const item of raw.output) {
13
19
  if (item.type === 'message')
14
20
  for (const part of item.content)
15
21
  if (part.type === 'output_text')
16
- parts.push(new RoleMessage.Part.Text(part.text));
22
+ parts.push(new Text(part.text));
17
23
  else if (part.type === 'refusal')
18
24
  throw new Engine.Exceptions.InferenceError('Refusal', { cause: raw });
19
25
  else
20
- throw new Error();
26
+ throw new Error('Unsupported API output message part.', { cause: part });
21
27
  else if (item.type === 'function_call')
22
28
  parts.push(this.toolCodec.decodeFunctionCall(item));
23
29
  else if (item.type === 'reasoning') { }
24
30
  else
25
- throw new Error();
31
+ throw new Error('Unsupported API output item.', { cause: item });
26
32
  }
27
- return new RoleMessage.Ai(parts, raw);
33
+ const outm = new Engine.Message.Output(parts);
34
+ this.messageValidator.validateOutputMessage(outm);
35
+ if (raw.output.every(item => item.type !== 'computer_call_output')) { }
36
+ else
37
+ throw new Error('Computer calls are not supported yet.');
38
+ this.cacheOutputMessages.set(outm, raw.output);
39
+ this.cacheResponseIds.set(outm, raw.id);
40
+ return outm;
41
+ }
42
+ encodeUserMessagePart(part) {
43
+ if (part instanceof Text)
44
+ return {
45
+ type: 'input_text',
46
+ text: part.raw,
47
+ };
48
+ else if (part instanceof Media.Text)
49
+ return {
50
+ type: 'input_text',
51
+ text: part.quote(),
52
+ };
53
+ else if (part instanceof Media.Image)
54
+ return {
55
+ type: 'input_image',
56
+ image_url: `data:${part.mimeType};base64,${part}`,
57
+ detail: 'auto',
58
+ };
59
+ else
60
+ throw new Error('Unsupported user message part.', { cause: part });
28
61
  }
29
- encodeUserMessage(userMessage) {
62
+ encodeInputMessage(inm) {
63
+ if (this.cacheInputMessages.has(inm))
64
+ return this.cacheInputMessages.get(inm);
65
+ this.messageValidator.validateInputMessage(inm);
30
66
  const responseInput = [];
31
- let content = [];
32
- function flush() {
33
- if (content.length) {
34
- responseInput.push({
35
- type: 'message',
36
- role: 'user',
37
- content,
38
- });
39
- content = [];
40
- }
41
- }
42
- for (const part of userMessage.getParts()) {
43
- if (part instanceof Engine.RoleMessage.Part.Text)
44
- content.push({
45
- type: 'input_text',
46
- text: part.text,
47
- });
48
- else if (part instanceof Media.Text)
49
- content.push({
50
- type: 'input_text',
51
- text: part.quote(),
52
- });
53
- else if (part instanceof Media.Image)
54
- content.push({
55
- type: 'input_image',
56
- image_url: `data:${part.mimeType};base64,${part}`,
57
- detail: 'auto',
58
- });
59
- else if (part instanceof Function.Response) {
67
+ const content = [];
68
+ for (const part of inm.parts)
69
+ if (part instanceof Function.Response) {
60
70
  const fr = part;
61
- flush();
62
71
  responseInput.push(this.toolCodec.encodeFunctionResponse(fr));
63
72
  }
64
73
  else
65
- throw new Error('Unknown user message part type', { cause: part });
66
- }
67
- flush();
74
+ content.push(this.encodeUserMessagePart(part));
75
+ if (content.length)
76
+ responseInput.push({
77
+ type: 'message',
78
+ role: 'user',
79
+ content,
80
+ });
81
+ this.cacheInputMessages.set(inm, responseInput);
68
82
  return responseInput;
69
83
  }
70
- encodeAiMessage(aiMessage) {
71
- if (aiMessage instanceof RoleMessage.Ai) {
72
- const nativeAiMessage = aiMessage;
73
- const raw = nativeAiMessage.getRaw();
74
- if (raw.output.every(item => item.type !== 'computer_call_output')) { }
75
- else
76
- throw new Error('Computer calls are not supported yet.');
77
- return raw.output;
78
- }
79
- const responseInput = [];
80
- for (const part of aiMessage.getParts()) {
81
- if (part instanceof RoleMessage.Part.Text)
82
- responseInput.push({
83
- role: 'assistant',
84
- content: part.text,
85
- });
86
- else if (part instanceof Function.Call) {
87
- const fc = part;
88
- responseInput.push(this.toolCodec.encodeFunctionCall(fc));
89
- }
90
- else
91
- throw new Error('Unknown AI message part type', { cause: part });
92
- }
93
- return responseInput;
84
+ encodeOutputMessage(outm) {
85
+ if (this.cacheOutputMessages.has(outm))
86
+ return this.cacheOutputMessages.get(outm);
87
+ throw new Error('Only native output message allowed.', { cause: outm });
88
+ }
89
+ getResponseId(outm) {
90
+ return this.cacheResponseIds.get(outm);
94
91
  }
95
92
  encodeDeveloperMessage(developerMessage) {
96
- 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;
97
98
  }
98
99
  encodeChatMessage(chatMessage) {
99
- if (chatMessage instanceof Engine.RoleMessage.User) {
100
- const userMessage = chatMessage;
101
- return this.encodeUserMessage(userMessage);
100
+ if (chatMessage instanceof Engine.Message.Input) {
101
+ const inm = chatMessage;
102
+ return this.encodeInputMessage(inm);
102
103
  }
103
- else if (chatMessage instanceof Engine.RoleMessage.Ai) {
104
- const aiMessage = chatMessage;
105
- return this.encodeAiMessage(aiMessage);
104
+ else if (chatMessage instanceof Engine.Message.Output) {
105
+ const outm = chatMessage;
106
+ return this.encodeOutputMessage(outm);
106
107
  }
107
108
  else
108
109
  throw new Error();
@@ -1 +1 @@
1
- {"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/engines/openai-compatible/message-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAGvC,MAAM,OAAO,YAAY;IAGX,SAAS,CAAiB;IACpC,YAAmB,OAAkC;QACjD,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IACvC,CAAC;IAEM,eAAe,CAClB,GAA8B;QAE9B,MAAM,KAAK,GAAc,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBACvB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,OAAO;oBAC3B,IAAI,IAAI,CAAC,IAAI,KAAK,aAAa;wBAC3B,KAAK,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;yBAChD,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;wBAC5B,MAAM,IAAI,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;;wBACrE,MAAM,IAAI,KAAK,EAAE,CAAC;iBAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe;gBAClC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;iBACnD,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC,CAAA,CAAC;;gBACjC,MAAM,IAAI,KAAK,EAAE,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAEM,iBAAiB,CACpB,WAA8C;QAE9C,MAAM,aAAa,GAAmC,EAAE,CAAC;QACzD,IAAI,OAAO,GAA4C,EAAE,CAAC;QAC1D,SAAS,KAAK;YACV,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,aAAa,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,MAAM;oBACZ,OAAO;iBACV,CAAC,CAAC;gBACH,OAAO,GAAG,EAAE,CAAC;YACjB,CAAC;QACL,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,CAAC;YACxC,IAAI,IAAI,YAAY,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI;gBAC5C,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,IAAI,CAAC,IAAI;iBAClB,CAAC,CAAC;iBACF,IAAI,IAAI,YAAY,KAAK,CAAC,IAAI;gBAC/B,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,YAAY;oBAClB,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;iBACrB,CAAC,CAAC;iBACF,IAAI,IAAI,YAAY,KAAK,CAAC,KAAK;gBAChC,OAAO,CAAC,IAAI,CAAC;oBACT,IAAI,EAAE,aAAa;oBACnB,SAAS,EAAE,QAAQ,IAAI,CAAC,QAAQ,WAAW,IAAI,EAAE;oBACjD,MAAM,EAAE,MAAM;iBACjB,CAAC,CAAC;iBACF,IAAI,IAAI,YAAY,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACzC,MAAM,EAAE,GAAG,IAAmC,CAAC;gBAC/C,KAAK,EAAE,CAAC;gBACR,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC,CAAC;YAClE,CAAC;;gBAAM,MAAM,IAAI,KAAK,CAAC,gCAAgC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9E,CAAC;QACD,KAAK,EAAE,CAAC;QACR,OAAO,aAAa,CAAC;IACzB,CAAC;IAEM,eAAe,CAClB,SAA0C;QAE1C,IAAI,SAAS,YAAY,WAAW,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,eAAe,GAAG,SAAqC,CAAC;YAC9D,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC;YACrC,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC,EAAE,CAAC,CAAA,CAAC;;gBAClE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;YAC7D,OAAO,GAAG,CAAC,MAAM,CAAC;QACtB,CAAC;QACD,MAAM,aAAa,GAAmC,EAAE,CAAC;QACzD,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC;YACtC,IAAI,IAAI,YAAY,WAAW,CAAC,IAAI,CAAC,IAAI;gBACrC,aAAa,CAAC,IAAI,CAAC;oBACf,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE,IAAI,CAAC,IAAI;iBACrB,CAAC,CAAC;iBACF,IAAI,IAAI,YAAY,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACrC,MAAM,EAAE,GAAG,IAA+B,CAAC;gBAC3C,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;;gBAAM,MAAM,IAAI,KAAK,CAAC,8BAA8B,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,aAAa,CAAC;IACzB,CAAC;IAEM,sBAAsB,CAAC,gBAA8C;QACxE,OAAO,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC/E,CAAC;IAEM,iBAAiB,CACpB,WAAiD;QAEjD,IAAI,WAAW,YAAY,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACjD,MAAM,WAAW,GAAG,WAAgD,CAAC;YACrE,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,WAAW,YAAY,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,SAAS,GAAG,WAA8C,CAAC;YACjE,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC;;YACI,MAAM,IAAI,KAAK,EAAE,CAAC;IAC3B,CAAC;CACJ"}
1
+ {"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/engines/openai-compatible/message-codec.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,4 @@
1
- import { type InferenceOptions, type ProviderSpecs } from '../../engine.ts';
2
- import { type Session } from '../../engine/session.ts';
3
- import { RoleMessage } from './message.ts';
1
+ import { type InferenceOptions, type ProviderSpecs, Engine } from '../../engine.ts';
4
2
  import { Function } from '../../function.ts';
5
3
  import OpenAI from 'openai';
6
4
  import { type InferenceContext } from '../../inference-context.ts';
@@ -9,7 +7,6 @@ import type { MessageCodec } from './message-codec.ts';
9
7
  import type { ToolCodec } from '../openai-responses/tool-codec.ts';
10
8
  import type { Billing } from '../openai-responses/billing.ts';
11
9
  import { ToolChoice } from '../../tool-choice.ts';
12
- import { Engine } from "../../engine.js";
13
10
  export declare class Transport<in out fdm extends Function.Decl.Map.Proto> implements Engine.Transport<fdm> {
14
11
  protected client: OpenAI;
15
12
  protected inferenceParams: InferenceOptions;
@@ -21,9 +18,9 @@ export declare class Transport<in out fdm extends Function.Decl.Map.Proto> imple
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> {
@@ -1,8 +1,7 @@
1
- import { RoleMessage } from "./message.js";
1
+ import { Engine } from "../../engine.js";
2
2
  import OpenAI from 'openai';
3
3
  import { loggers } from "../../telemetry.js";
4
4
  import * as ToolChoiceCodec from "./tool-choice-codec.js";
5
- import { Engine } from "../../engine.js";
6
5
  import * as Undici from 'undici';
7
6
  import assert from 'node:assert';
8
7
  export class Transport {
@@ -38,11 +37,11 @@ export class Transport {
38
37
  let previous_response_id = undefined;
39
38
  let instructions = undefined;
40
39
  const lastSecondMessage = session.chatMessages.at(-2);
41
- if (lastSecondMessage instanceof RoleMessage.Ai) {
40
+ if (lastSecondMessage instanceof Engine.Message.Output && this.messageCodec.getResponseId(lastSecondMessage)) {
42
41
  const lastMessage = session.chatMessages.at(-1);
43
- assert(lastMessage instanceof Engine.RoleMessage.User);
44
- input = this.messageCodec.encodeUserMessage(lastMessage);
45
- previous_response_id = lastSecondMessage.getRaw().id;
42
+ assert(lastMessage instanceof Engine.Message.Input);
43
+ input = this.messageCodec.encodeInputMessage(lastMessage);
44
+ previous_response_id = this.messageCodec.getResponseId(lastSecondMessage);
46
45
  }
47
46
  else {
48
47
  input = session.chatMessages.flatMap(chatMessage => this.messageCodec.encodeChatMessage(chatMessage));
@@ -98,7 +97,10 @@ export class Transport {
98
97
  catch (e) {
99
98
  if (e instanceof OpenAI.APIConnectionError)
100
99
  throw new Engine.Exceptions.ConnectionError(undefined, { cause: e });
101
- throw e;
100
+ else if (e instanceof TypeError)
101
+ throw new Engine.Exceptions.ConnectionError(undefined, { cause: e });
102
+ else
103
+ throw e;
102
104
  }
103
105
  if (response) { }
104
106
  else
@@ -113,7 +115,7 @@ export class Transport {
113
115
  this.logAiMessage(response.output);
114
116
  wfctx.cost?.(this.billing.charge(response.usage));
115
117
  loggers.message.info(response.usage);
116
- return this.messageCodec.decodeAiMessage(response);
118
+ return this.messageCodec.decodeOutputMessage(response);
117
119
  }
118
120
  }
119
121
  //# sourceMappingURL=transport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/engines/openai-compatible/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/engines/openai-compatible/transport.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,6 @@ import { MessageCodec } from './openai-compatible/message-codec.ts';
4
4
  import { ToolCodec } from './openai-responses/tool-codec.ts';
5
5
  import { Billing } from './openai-responses/billing.ts';
6
6
  import * as TransportModule from './openai-compatible/transport.ts';
7
- import * as MessageModule from './openai-compatible/message.ts';
8
7
  export type OpenAICompatibleEngine<fdm extends Function.Decl.Map.Proto> = OpenAICompatibleEngine.Instance<fdm>;
9
8
  export declare namespace OpenAICompatibleEngine {
10
9
  class Instance<in out fdm extends Function.Decl.Map.Proto> extends Engine.Instance<fdm> {
@@ -14,9 +13,7 @@ export declare namespace OpenAICompatibleEngine {
14
13
  protected billing: Billing;
15
14
  protected transport: Transport<fdm>;
16
15
  constructor(options: Engine.Options<fdm>);
17
- clone(): OpenAICompatibleEngine<fdm>;
18
16
  }
19
17
  function createEngine<fdm extends Function.Decl.Map.Proto>(options: Engine.Options<fdm>): Engine<fdm>;
20
- export import RoleMessage = MessageModule.RoleMessage;
21
18
  export import Transport = TransportModule.Transport;
22
19
  }
@@ -3,7 +3,6 @@ import { MessageCodec } from "./openai-compatible/message-codec.js";
3
3
  import { ToolCodec } from "./openai-responses/tool-codec.js";
4
4
  import { Billing } from "./openai-responses/billing.js";
5
5
  import * as TransportModule from "./openai-compatible/transport.js";
6
- import * as MessageModule from "./openai-compatible/message.js";
7
6
  export var OpenAICompatibleEngine;
8
7
  (function (OpenAICompatibleEngine) {
9
8
  class Instance extends Engine.Instance {
@@ -18,6 +17,7 @@ export var OpenAICompatibleEngine;
18
17
  this.toolCodec = new ToolCodec({ fdm: this.fdm });
19
18
  this.messageCodec = new MessageCodec({
20
19
  toolCodec: this.toolCodec,
20
+ messageValidator: this.messageValidator,
21
21
  });
22
22
  this.billing = new Billing({ pricing: this.pricing });
23
23
  this.transport = new OpenAICompatibleEngine.Transport({
@@ -31,12 +31,6 @@ export var OpenAICompatibleEngine;
31
31
  billing: this.billing,
32
32
  });
33
33
  }
34
- clone() {
35
- const engine = new OpenAICompatibleEngine.Instance(this.options);
36
- engine.middlewaresStateless = [...this.middlewaresStateless];
37
- engine.middlewaresStateful = [...this.middlewaresStateful];
38
- return engine;
39
- }
40
34
  }
41
35
  OpenAICompatibleEngine.Instance = Instance;
42
36
  createEngine;
@@ -44,7 +38,6 @@ export var OpenAICompatibleEngine;
44
38
  return new Instance(options);
45
39
  }
46
40
  OpenAICompatibleEngine.createEngine = createEngine;
47
- OpenAICompatibleEngine.RoleMessage = MessageModule.RoleMessage;
48
41
  OpenAICompatibleEngine.Transport = TransportModule.Transport;
49
42
  })(OpenAICompatibleEngine || (OpenAICompatibleEngine = {}));
50
43
  //# sourceMappingURL=openai-compatible.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai-compatible.js","sourceRoot":"","sources":["../../src/engines/openai-compatible.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAC;AAEpE,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC;AAOhE,MAAM,KAAW,sBAAsB,CA+CtC;AA/CD,WAAiB,sBAAsB;IACnC,MAAa,QAEX,SAAQ,MAAM,CAAC,QAAa;QAMG;QALnB,SAAS,CAAiB;QAC1B,YAAY,CAAoB;QAChC,OAAO,CAAU;QACR,SAAS,CAAiB;QAE7C,YAA6B,OAA4B;YACrD,KAAK,CAAC,OAAO,CAAC,CAAC;YADU,YAAO,GAAP,OAAO,CAAqB;YAGrD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC;gBACjC,SAAS,EAAE,IAAI,CAAC,SAAS;aAC5B,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,IAAI,uBAAA,SAAS,CAAC;gBAC3B,eAAe,EAAE,IAAI,CAAC,gBAAgB;gBACtC,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;QACP,CAAC;QAEe,KAAK;YACjB,MAAM,MAAM,GAAG,IAAI,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACjE,MAAM,CAAC,oBAAoB,GAAG,CAAC,GAAG,IAAI,CAAC,oBAAoB,CAAC,CAAC;YAC7D,MAAM,CAAC,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC3D,OAAO,MAAM,CAAC;QAClB,CAAC;KAEJ;IAnCY,+BAAQ,WAmCpB,CAAA;IAED,YAAoC,CAAC;IACrC,SAAgB,YAAY,CAE1B,OAA4B;QAC1B,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAJe,mCAAY,eAI3B,CAAA;IAEa,kCAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IACxC,gCAAS,GAAG,eAAe,CAAC,SAAS,CAAC;AACxD,CAAC,EA/CgB,sBAAsB,KAAtB,sBAAsB,QA+CtC"}
1
+ {"version":3,"file":"openai-compatible.js","sourceRoot":"","sources":["../../src/engines/openai-compatible.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,+BAA+B,CAAC;AACxD,OAAO,KAAK,eAAe,MAAM,kCAAkC,CAAC;AAMpE,MAAM,KAAW,sBAAsB,CAuCtC;AAvCD,WAAiB,sBAAsB;IACnC,MAAa,QAEX,SAAQ,MAAM,CAAC,QAAa;QAMG;QALnB,SAAS,CAAiB;QAC1B,YAAY,CAAoB;QAChC,OAAO,CAAU;QACR,SAAS,CAAiB;QAE7C,YAA6B,OAA4B;YACrD,KAAK,CAAC,OAAO,CAAC,CAAC;YADU,YAAO,GAAP,OAAO,CAAqB;YAGrD,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC;gBACjC,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;aAC1C,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,SAAS,GAAG,IAAI,uBAAA,SAAS,CAAC;gBAC3B,eAAe,EAAE,IAAI,CAAC,gBAAgB;gBACtC,YAAY,EAAE,IAAI,CAAC,aAAa;gBAChC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;QACP,CAAC;KACJ;IA5BY,+BAAQ,WA4BpB,CAAA;IAED,YAAoC,CAAC;IACrC,SAAgB,YAAY,CAE1B,OAA4B;QAC1B,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAJe,mCAAY,eAI3B,CAAA;IAEa,gCAAS,GAAG,eAAe,CAAC,SAAS,CAAC;AACxD,CAAC,EAvCgB,sBAAsB,KAAtB,sBAAsB,QAuCtC"}
@@ -1,19 +1,26 @@
1
1
  import { Engine } from '../../engine.ts';
2
- import { RoleMessage } from './message.ts';
3
2
  import { Function } from '../../function.ts';
4
3
  import OpenAI from 'openai';
5
4
  import type { ToolCodec } from './tool-codec.ts';
5
+ import { Media } from '../../media.ts';
6
+ import { Text } from '../../text.ts';
6
7
  export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto> {
8
+ protected cacheDeveloperMessages: WeakMap<Engine.Message.Developer, string>;
9
+ protected cacheInputMessages: WeakMap<Engine.Message.Input<Function.Decl.Proto>, OpenAI.Responses.ResponseInput>;
10
+ protected cacheOutputMessages: WeakMap<Engine.Message.Output<Function.Decl.Proto>, OpenAI.Responses.ResponseInput>;
7
11
  protected toolCodec: ToolCodec<fdm>;
12
+ protected messageValidator: Engine.MessageValidator.From<fdm>;
8
13
  constructor(options: MessageCodec.Options<fdm>);
9
- decodeAiMessage(raw: OpenAI.Responses.Response): RoleMessage.Ai.From<fdm>;
10
- encodeUserMessage(userMessage: Engine.RoleMessage.User.From<fdm>): OpenAI.Responses.ResponseInput;
11
- encodeAiMessage(aiMessage: Engine.RoleMessage.Ai.From<fdm>): OpenAI.Responses.ResponseInput;
12
- encodeDeveloperMessage(developerMessage: Engine.RoleMessage.Developer): string;
14
+ decodeOutputMessage(raw: OpenAI.Responses.Response): Engine.Message.Output.From<fdm>;
15
+ encodeUserMessagePart(part: Text | Media): OpenAI.Responses.ResponseInputContent;
16
+ encodeInputMessage(inm: Engine.Message.Input.From<fdm>): OpenAI.Responses.ResponseInput;
17
+ encodeOutputMessage(outm: Engine.Message.Output.From<fdm>): OpenAI.Responses.ResponseInput;
18
+ encodeDeveloperMessage(developerMessage: Engine.Message.Developer): string;
13
19
  encodeChatMessage(chatMessage: Engine.Session.ChatMessage.From<fdm>): OpenAI.Responses.ResponseInput;
14
20
  }
15
21
  export declare namespace MessageCodec {
16
22
  interface Options<in out fdm extends Function.Decl.Map.Proto> {
17
23
  toolCodec: ToolCodec<fdm>;
24
+ messageValidator: Engine.MessageValidator.From<fdm>;
18
25
  }
19
26
  }