@zimtsui/typechat 0.0.126 → 0.0.128

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 +3 -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 +14 -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 +8 -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 +3 -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
@@ -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":"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"}
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));
@@ -82,8 +81,10 @@ export class Transport {
82
81
  loggers.message.debug(params);
83
82
  let response = null;
84
83
  try {
84
+ signal?.throwIfAborted();
85
85
  const stream = await this.client.responses.create(params, { signal });
86
86
  for await (const event of stream) {
87
+ signal?.throwIfAborted();
87
88
  loggers.stream.trace(event);
88
89
  if (event.type === 'response.completed')
89
90
  response = event.response;
@@ -116,7 +117,7 @@ export class Transport {
116
117
  this.logAiMessage(response.output);
117
118
  wfctx.cost?.(this.billing.charge(response.usage));
118
119
  loggers.message.info(response.usage);
119
- return this.messageCodec.decodeAiMessage(response);
120
+ return this.messageCodec.decodeOutputMessage(response);
120
121
  }
121
122
  }
122
123
  //# 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
  }