@zimtsui/typechat 0.0.94 → 0.0.96

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 (164) hide show
  1. package/DEVELOPMENT.md +0 -6
  2. package/README.md +26 -36
  3. package/assets/verbatim/instruction.md +27 -25
  4. package/assets/verbatim/quotation.handlebars +1 -1
  5. package/assets/verbatim/system.handlebars +1 -0
  6. package/build/adaptor.d.ts +5 -23
  7. package/build/adaptor.js +14 -25
  8. package/build/adaptor.js.map +1 -1
  9. package/build/api-types/anthropic/billing.d.ts +3 -3
  10. package/build/api-types/anthropic/billing.js +6 -6
  11. package/build/api-types/anthropic/billing.js.map +1 -1
  12. package/build/api-types/anthropic/tool-codec.d.ts +3 -3
  13. package/build/api-types/anthropic/tool-codec.js +15 -11
  14. package/build/api-types/anthropic/tool-codec.js.map +1 -1
  15. package/build/api-types/google/billing.d.ts +3 -3
  16. package/build/api-types/google/billing.js +7 -7
  17. package/build/api-types/google/billing.js.map +1 -1
  18. package/build/api-types/google/tool-codec.d.ts +3 -3
  19. package/build/api-types/google/tool-codec.js +16 -34
  20. package/build/api-types/google/tool-codec.js.map +1 -1
  21. package/build/api-types/openai-chatcompletions/billing.d.ts +5 -5
  22. package/build/api-types/openai-chatcompletions/billing.js +7 -7
  23. package/build/api-types/openai-chatcompletions/billing.js.map +1 -1
  24. package/build/api-types/openai-chatcompletions/tool-codec.d.ts +5 -5
  25. package/build/api-types/openai-chatcompletions/tool-codec.js +17 -13
  26. package/build/api-types/openai-chatcompletions/tool-codec.js.map +1 -1
  27. package/build/api-types/openai-responses/billing.d.ts +3 -3
  28. package/build/api-types/openai-responses/billing.js +6 -6
  29. package/build/api-types/openai-responses/billing.js.map +1 -1
  30. package/build/api-types/openai-responses/tool-codec.d.ts +3 -3
  31. package/build/api-types/openai-responses/tool-codec.js +16 -12
  32. package/build/api-types/openai-responses/tool-codec.js.map +1 -1
  33. package/build/assets.d.ts +1 -1
  34. package/build/assets.js +6 -5
  35. package/build/assets.js.map +1 -1
  36. package/build/compatible-engine/session.d.ts +4 -16
  37. package/build/compatible-engine/session.js +8 -15
  38. package/build/compatible-engine/session.js.map +1 -1
  39. package/build/compatible-engine/validation.d.ts +7 -7
  40. package/build/compatible-engine/validation.js +33 -34
  41. package/build/compatible-engine/validation.js.map +1 -1
  42. package/build/compatible-engine.d/anthropic/message-codec.d.ts +4 -3
  43. package/build/compatible-engine.d/anthropic/message-codec.js +16 -22
  44. package/build/compatible-engine.d/anthropic/message-codec.js.map +1 -1
  45. package/build/compatible-engine.d/anthropic/transport.d.ts +10 -3
  46. package/build/compatible-engine.d/anthropic/transport.js +105 -101
  47. package/build/compatible-engine.d/anthropic/transport.js.map +1 -1
  48. package/build/compatible-engine.d/anthropic.d.ts +2 -0
  49. package/build/compatible-engine.d/anthropic.js +9 -1
  50. package/build/compatible-engine.d/anthropic.js.map +1 -1
  51. package/build/compatible-engine.d/google/message-codec.d.ts +4 -3
  52. package/build/compatible-engine.d/google/message-codec.js +16 -22
  53. package/build/compatible-engine.d/google/message-codec.js.map +1 -1
  54. package/build/compatible-engine.d/google/transport.d.ts +10 -3
  55. package/build/compatible-engine.d/google/transport.js +32 -24
  56. package/build/compatible-engine.d/google/transport.js.map +1 -1
  57. package/build/compatible-engine.d/google.d.ts +2 -0
  58. package/build/compatible-engine.d/google.js +23 -2
  59. package/build/compatible-engine.d/google.js.map +1 -1
  60. package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +6 -5
  61. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +17 -24
  62. package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +1 -1
  63. package/build/compatible-engine.d/openai-chatcompletions/transport.d.ts +33 -3
  64. package/build/compatible-engine.d/openai-chatcompletions/transport.js +182 -6
  65. package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +1 -1
  66. package/build/compatible-engine.d/openai-chatcompletions.d.ts +10 -2
  67. package/build/compatible-engine.d/openai-chatcompletions.js +35 -0
  68. package/build/compatible-engine.d/openai-chatcompletions.js.map +1 -1
  69. package/build/compatible-engine.d/openai-responses/message-codec.d.ts +4 -6
  70. package/build/compatible-engine.d/openai-responses/message-codec.js +70 -74
  71. package/build/compatible-engine.d/openai-responses/message-codec.js.map +1 -1
  72. package/build/compatible-engine.d/openai-responses/transport.d.ts +14 -8
  73. package/build/compatible-engine.d/openai-responses/transport.js +64 -64
  74. package/build/compatible-engine.d/openai-responses/transport.js.map +1 -1
  75. package/build/compatible-engine.d/openai-responses.d.ts +2 -0
  76. package/build/compatible-engine.d/openai-responses.js +10 -2
  77. package/build/compatible-engine.d/openai-responses.js.map +1 -1
  78. package/build/compatible-engine.d.ts +2 -1
  79. package/build/compatible-engine.js +3 -3
  80. package/build/compatible-engine.js.map +1 -1
  81. package/build/config.d.ts +17 -19
  82. package/build/config.js +2 -4
  83. package/build/config.js.map +1 -1
  84. package/build/endpoint-spec.d.ts +15 -15
  85. package/build/endpoint-spec.js +2 -2
  86. package/build/endpoint-spec.js.map +1 -1
  87. package/build/engine/session.d.ts +31 -0
  88. package/build/engine/session.js +19 -0
  89. package/build/engine/session.js.map +1 -1
  90. package/build/engine/validation.d.ts +1 -7
  91. package/build/engine.d.ts +37 -20
  92. package/build/engine.js +154 -87
  93. package/build/engine.js.map +1 -1
  94. package/build/function.d.ts +1 -1
  95. package/build/native-engines.d/google/message-codec.d.ts +6 -3
  96. package/build/native-engines.d/google/message-codec.js +23 -27
  97. package/build/native-engines.d/google/message-codec.js.map +1 -1
  98. package/build/native-engines.d/google/transport.d.ts +13 -3
  99. package/build/native-engines.d/google/transport.js +41 -27
  100. package/build/native-engines.d/google/transport.js.map +1 -1
  101. package/build/native-engines.d/google/validation.d.ts +5 -6
  102. package/build/native-engines.d/google/validation.js +3 -6
  103. package/build/native-engines.d/google/validation.js.map +1 -1
  104. package/build/native-engines.d/google.d.ts +2 -2
  105. package/build/native-engines.d/google.js +22 -4
  106. package/build/native-engines.d/google.js.map +1 -1
  107. package/build/native-engines.d/openai-responses/choice-codec.d.ts +1 -1
  108. package/build/native-engines.d/openai-responses/choice-codec.js +12 -12
  109. package/build/native-engines.d/openai-responses/choice-codec.js.map +1 -1
  110. package/build/native-engines.d/openai-responses/message-codec.d.ts +5 -3
  111. package/build/native-engines.d/openai-responses/message-codec.js +59 -48
  112. package/build/native-engines.d/openai-responses/message-codec.js.map +1 -1
  113. package/build/native-engines.d/openai-responses/transport.d.ts +14 -6
  114. package/build/native-engines.d/openai-responses/transport.js +56 -54
  115. package/build/native-engines.d/openai-responses/transport.js.map +1 -1
  116. package/build/native-engines.d/openai-responses/validation.d.ts +7 -7
  117. package/build/native-engines.d/openai-responses/validation.js +31 -32
  118. package/build/native-engines.d/openai-responses/validation.js.map +1 -1
  119. package/build/native-engines.d/openai-responses.d.ts +2 -2
  120. package/build/native-engines.d/openai-responses.js +9 -4
  121. package/build/native-engines.d/openai-responses.js.map +1 -1
  122. package/build/repetition.d.ts +2 -1
  123. package/build/repetition.js +7 -42
  124. package/build/repetition.js.map +1 -1
  125. package/build/telemetry.d.ts +1 -0
  126. package/build/telemetry.js +1 -0
  127. package/build/telemetry.js.map +1 -1
  128. package/build/tsconfig.tsbuildinfo +1 -1
  129. package/build/verbatim/codec/declarations.d.ts +0 -1
  130. package/build/verbatim/codec/declarations.js +1 -2
  131. package/build/verbatim/codec/declarations.js.map +1 -1
  132. package/build/verbatim/codec/helpers.d.ts +2 -0
  133. package/build/verbatim/codec/{escape.js → helpers.js} +5 -1
  134. package/build/verbatim/codec/helpers.js.map +1 -0
  135. package/build/verbatim/codec/quotation.d.ts +1 -2
  136. package/build/verbatim/codec/quotation.js +3 -4
  137. package/build/verbatim/codec/quotation.js.map +1 -1
  138. package/build/verbatim/codec/response.d.ts +0 -1
  139. package/build/verbatim/codec/response.js +1 -2
  140. package/build/verbatim/codec/response.js.map +1 -1
  141. package/build/verbatim/codec/{meta.d.ts → system.d.ts} +0 -1
  142. package/build/verbatim/codec/system.js +7 -0
  143. package/build/verbatim/codec/system.js.map +1 -0
  144. package/build/verbatim/codec.d.ts +1 -1
  145. package/build/verbatim/codec.js +1 -1
  146. package/build/verbatim/codec.js.map +1 -1
  147. package/package.json +8 -9
  148. package/assets/verbatim/meta.handlebars +0 -1
  149. package/build/compatible-engine.d/aliyun/transport.d.ts +0 -12
  150. package/build/compatible-engine.d/aliyun/transport.js +0 -7
  151. package/build/compatible-engine.d/aliyun/transport.js.map +0 -1
  152. package/build/compatible-engine.d/aliyun.d.ts +0 -21
  153. package/build/compatible-engine.d/aliyun.js +0 -38
  154. package/build/compatible-engine.d/aliyun.js.map +0 -1
  155. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.d.ts +0 -31
  156. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js +0 -88
  157. package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js.map +0 -1
  158. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.d.ts +0 -34
  159. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js +0 -190
  160. package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js.map +0 -1
  161. package/build/verbatim/codec/escape.d.ts +0 -1
  162. package/build/verbatim/codec/escape.js.map +0 -1
  163. package/build/verbatim/codec/meta.js +0 -8
  164. package/build/verbatim/codec/meta.js.map +0 -1
@@ -7,12 +7,14 @@ import * as ChoiceCodecModule from "./anthropic/choice-codec.js";
7
7
  export var AnthropicCompatibleEngine;
8
8
  (function (AnthropicCompatibleEngine) {
9
9
  class Instance extends CompatibleEngine.Instance {
10
+ options;
10
11
  toolCodec;
11
12
  messageCodec;
12
13
  billing;
13
14
  transport;
14
15
  constructor(options) {
15
16
  super(options);
17
+ this.options = options;
16
18
  this.toolCodec = new ToolCodec({ fdm: this.fdm });
17
19
  this.messageCodec = new AnthropicCompatibleEngine.MessageCodec({
18
20
  toolCodec: this.toolCodec,
@@ -24,12 +26,18 @@ export var AnthropicCompatibleEngine;
24
26
  inferenceSpec: this.inferenceParams,
25
27
  fdm: this.fdm,
26
28
  throttle: this.throttle,
27
- choice: this.choice,
29
+ choice: this.structuringChoice,
28
30
  messageCodec: this.messageCodec,
29
31
  toolCodec: this.toolCodec,
30
32
  billing: this.billing,
31
33
  });
32
34
  }
35
+ clone() {
36
+ const engine = new AnthropicCompatibleEngine.Instance(this.options);
37
+ engine.middlewares = [...this.middlewares];
38
+ engine.statefulMiddlewares = [...this.statefulMiddlewares];
39
+ return engine;
40
+ }
33
41
  }
34
42
  AnthropicCompatibleEngine.Instance = Instance;
35
43
  AnthropicCompatibleEngine.MessageCodec = MessageCodecModule.MessageCodec;
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/compatible-engine.d/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,iBAAiB,MAAM,6BAA6B,CAAC;AASjE,MAAM,KAAW,yBAAyB,CAuCzC;AAvCD,WAAiB,yBAAyB;IACtC,MAAa,QAGX,SAAQ,gBAAgB,CAAC,QAAkB;QAC/B,SAAS,CAAiB;QAC1B,YAAY,CAAmD;QAC/D,OAAO,CAAU;QACjB,SAAS,CAAgD;QAEnE,YAAmB,OAAoD;YACnE,KAAK,CAAC,OAAO,CAAC,CAAC;YACf,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,IAAI,yBAAyB,CAAC,YAAY,CAAC;gBAC3D,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,GAAG,EAAE,IAAI,CAAC,GAAG;aAChB,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,yBAAyB,CAAC,SAAS,CAAC;gBACrD,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,aAAa,EAAE,IAAI,CAAC,eAAe;gBACnC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,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,kCAAQ,WA4BpB,CAAA;IAOa,sCAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC;IAC/C,mCAAS,GAAG,eAAe,CAAC,SAAS,CAAC;IACtC,qCAAW,GAAG,iBAAiB,CAAC;AAClD,CAAC,EAvCgB,yBAAyB,KAAzB,yBAAyB,QAuCzC"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/compatible-engine.d/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,mCAAmC,CAAC;AAC5D,OAAO,KAAK,kBAAkB,MAAM,8BAA8B,CAAC;AACnE,OAAO,KAAK,eAAe,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,iBAAiB,MAAM,6BAA6B,CAAC;AASjE,MAAM,KAAW,yBAAyB,CA+CzC;AA/CD,WAAiB,yBAAyB;IACtC,MAAa,QAGX,SAAQ,gBAAgB,CAAC,QAAkB;QAMZ;QALnB,SAAS,CAAiB;QAC1B,YAAY,CAAmD;QAC/D,OAAO,CAAU;QACjB,SAAS,CAAgD;QAEnE,YAA6B,OAAoD;YAC7E,KAAK,CAAC,OAAO,CAAC,CAAC;YADU,YAAO,GAAP,OAAO,CAA6C;YAE7E,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,IAAI,yBAAyB,CAAC,YAAY,CAAC;gBAC3D,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,GAAG,EAAE,IAAI,CAAC,GAAG;aAChB,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,yBAAyB,CAAC,SAAS,CAAC;gBACrD,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,aAAa,EAAE,IAAI,CAAC,eAAe;gBACnC,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,iBAAiB;gBAC9B,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,yBAAyB,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACpE,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAC,mBAAmB,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC;YAC3D,OAAO,MAAM,CAAC;QAClB,CAAC;KAEJ;IApCY,kCAAQ,WAoCpB,CAAA;IAOa,sCAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC;IAC/C,mCAAS,GAAG,eAAe,CAAC,SAAS,CAAC;IACtC,qCAAW,GAAG,iBAAiB,CAAC;AAClD,CAAC,EA/CgB,yBAAyB,KAAzB,yBAAyB,QA+CzC"}
@@ -5,8 +5,9 @@ import { type ToolCodec } from '../../api-types/google/tool-codec.ts';
5
5
  import type { Verbatim } from '../../verbatim.ts';
6
6
  declare const NOMINAL: unique symbol;
7
7
  export declare class MessageCodec<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> {
8
- protected ctx: MessageCodec.Context<fdm, vdm>;
9
- constructor(ctx: MessageCodec.Context<fdm, vdm>);
8
+ protected toolCodec: ToolCodec<fdm>;
9
+ protected vdm: vdm;
10
+ constructor(options: MessageCodec.Options<fdm, vdm>);
10
11
  encodeAiMessage(aiMessage: RoleMessage.Ai.From<fdm, vdm>): Google.Content;
11
12
  encodeChatMessages(chatMessages: Session.ChatMessage.From<fdm, vdm>[]): Google.Content[];
12
13
  encodeUserMessage(userMessage: RoleMessage.User.From<fdm>): Google.Content;
@@ -14,7 +15,7 @@ export declare class MessageCodec<fdm extends Function.Decl.Map.Proto, vdm exten
14
15
  decodeAiMessage(content: Google.Content): MessageCodec.Message.Ai.From<fdm, vdm>;
15
16
  }
16
17
  export declare namespace MessageCodec {
17
- interface Context<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
18
+ interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
18
19
  toolCodec: ToolCodec<fdm>;
19
20
  vdm: vdm;
20
21
  }
@@ -1,4 +1,3 @@
1
- import { ResponseInvalid } from "../../engine.js";
2
1
  import { RoleMessage } from "../../compatible-engine/session.js";
3
2
  import { Function } from "../../function.js";
4
3
  import * as Google from '@google/genai';
@@ -6,9 +5,11 @@ import * as VerbatimCodec from "../../verbatim/codec.js";
6
5
  import { Media } from "../../media.js";
7
6
  const NOMINAL = Symbol();
8
7
  export class MessageCodec {
9
- ctx;
10
- constructor(ctx) {
11
- this.ctx = ctx;
8
+ toolCodec;
9
+ vdm;
10
+ constructor(options) {
11
+ this.toolCodec = options.toolCodec;
12
+ this.vdm = options.vdm;
12
13
  }
13
14
  encodeAiMessage(aiMessage) {
14
15
  if (aiMessage instanceof MessageCodec.Message.Ai)
@@ -44,7 +45,7 @@ export class MessageCodec {
44
45
  if (part instanceof RoleMessage.Part.Text)
45
46
  return Google.createPartFromText(part.text);
46
47
  else if (part instanceof Function.Response)
47
- return this.ctx.toolCodec.encodeFunctionResponse(part);
48
+ return this.toolCodec.encodeFunctionResponse(part);
48
49
  else if (part instanceof Media.Pdf)
49
50
  return Google.createPartFromBase64(part.base64, `${part.mimeType}`, Google.PartMediaResolutionLevel.MEDIA_RESOLUTION_MEDIUM);
50
51
  else
@@ -60,26 +61,19 @@ export class MessageCodec {
60
61
  if (content.parts) { }
61
62
  else
62
63
  throw new Error();
63
- return new MessageCodec.Message.Ai(content.parts.flatMap(part => {
64
- const parts = [];
64
+ const parts = [];
65
+ for (const part of content.parts) {
65
66
  if (part.functionCall || part.text) { }
66
67
  else
67
- throw new ResponseInvalid('Unknown content part', { cause: content });
68
- if (part.text)
69
- try {
70
- const vrs = VerbatimCodec.Request.decode(part.text, this.ctx.vdm);
71
- parts.push(new RoleMessage.Part.Text(part.text, vrs));
72
- }
73
- catch (e) {
74
- if (e instanceof SyntaxError)
75
- throw new ResponseInvalid('Invalid verbatim message', { cause: content });
76
- else
77
- throw e;
78
- }
68
+ throw new SyntaxError('Unknown content part', { cause: content });
69
+ if (part.text) {
70
+ const vrs = VerbatimCodec.Request.decode(part.text, this.vdm);
71
+ parts.push(new RoleMessage.Part.Text(part.text, vrs));
72
+ }
79
73
  if (part.functionCall)
80
- parts.push(this.ctx.toolCodec.decodeFunctionCall(part.functionCall));
81
- return parts;
82
- }), content);
74
+ parts.push(this.toolCodec.decodeFunctionCall(part.functionCall));
75
+ }
76
+ return new MessageCodec.Message.Ai(parts, content);
83
77
  }
84
78
  }
85
79
  (function (MessageCodec) {
@@ -1 +1 @@
1
- {"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/google/message-codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/google/message-codec.ts"],"names":[],"mappings":"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"}
@@ -9,13 +9,20 @@ import type { Billing } from '../../api-types/google/billing.ts';
9
9
  import type { Verbatim } from '../../verbatim.ts';
10
10
  import type { Structuring } from '../../compatible-engine/structuring.ts';
11
11
  export declare class Transport<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> implements Engine.Transport<RoleMessage.User.From<fdm>, RoleMessage.Ai.From<fdm, vdm>, RoleMessage.Developer, Session.From<fdm, vdm>> {
12
- protected ctx: Transport.Context<fdm, vdm>;
13
12
  protected apiURL: URL;
14
- constructor(ctx: Transport.Context<fdm, vdm>);
13
+ protected inferenceParams: InferenceParams;
14
+ protected providerSpec: ProviderSpec;
15
+ protected fdm: fdm;
16
+ protected throttle: Throttle;
17
+ protected structuringChoice: Structuring.Choice.From<fdm, vdm>;
18
+ protected messageCodec: MessageCodec<fdm, vdm>;
19
+ protected toolCodec: ToolCodec<fdm>;
20
+ protected billing: Billing;
21
+ constructor(options: Transport.Options<fdm, vdm>);
15
22
  fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
16
23
  }
17
24
  export declare namespace Transport {
18
- interface Context<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
25
+ interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
19
26
  inferenceParams: InferenceParams;
20
27
  providerSpec: ProviderSpec;
21
28
  fdm: fdm;
@@ -1,34 +1,47 @@
1
- import { NetworkError, ResponseInvalid } from "../../engine.js";
2
1
  import * as Google from '@google/genai';
3
2
  import * as Undici from 'undici';
4
3
  import { loggers } from "../../telemetry.js";
5
4
  import * as ChoiceCodec from "./choice-codec.js";
6
5
  import { MIMEType } from 'whatwg-mimetype';
7
6
  export class Transport {
8
- ctx;
9
7
  apiURL;
10
- constructor(ctx) {
11
- this.ctx = ctx;
12
- this.apiURL = new URL(`${this.ctx.providerSpec.baseUrl}/v1beta/models/${this.ctx.inferenceParams.model}:generateContent`);
8
+ inferenceParams;
9
+ providerSpec;
10
+ fdm;
11
+ throttle;
12
+ structuringChoice;
13
+ messageCodec;
14
+ toolCodec;
15
+ billing;
16
+ constructor(options) {
17
+ this.apiURL = new URL(`${options.providerSpec.baseUrl}/v1beta/models/${options.inferenceParams.model}:generateContent`);
18
+ this.inferenceParams = options.inferenceParams;
19
+ this.providerSpec = options.providerSpec;
20
+ this.fdm = options.fdm;
21
+ this.throttle = options.throttle;
22
+ this.structuringChoice = options.choice;
23
+ this.messageCodec = options.messageCodec;
24
+ this.toolCodec = options.toolCodec;
25
+ this.billing = options.billing;
13
26
  }
14
27
  async fetch(wfctx, session, signal) {
15
- await this.ctx.throttle.requests(wfctx);
28
+ await this.throttle.requests(wfctx);
16
29
  // Prepare request body
17
- const systemInstruction = session.developerMessage && this.ctx.messageCodec.encodeDeveloperMessage(session.developerMessage);
18
- const contents = this.ctx.messageCodec.encodeChatMessages(session.chatMessages);
19
- const apiFds = this.ctx.toolCodec.encodeFunctionDeclarationMap(this.ctx.fdm);
30
+ const systemInstruction = session.developerMessage && this.messageCodec.encodeDeveloperMessage(session.developerMessage);
31
+ const contents = this.messageCodec.encodeChatMessages(session.chatMessages);
32
+ const apiFds = this.toolCodec.encodeFunctionDeclarationMap(this.fdm);
20
33
  const apiTools = [];
21
34
  if (apiFds.length)
22
35
  apiTools.push({ functionDeclarations: apiFds });
23
36
  const apiToolConfig = {};
24
37
  if (apiFds.length)
25
- apiToolConfig.functionCallingConfig = ChoiceCodec.encode(this.ctx.choice);
38
+ apiToolConfig.functionCallingConfig = ChoiceCodec.encode(this.structuringChoice);
26
39
  const reqbody = {
27
40
  contents,
28
41
  tools: apiTools,
29
42
  toolConfig: apiToolConfig,
30
43
  systemInstruction,
31
- generationConfig: this.ctx.inferenceParams.additionalOptions,
44
+ generationConfig: this.inferenceParams.additionalOptions,
32
45
  };
33
46
  loggers.message.debug(reqbody);
34
47
  // Send request
@@ -36,16 +49,11 @@ export class Transport {
36
49
  method: 'POST',
37
50
  headers: {
38
51
  'Content-Type': 'application/json',
39
- 'x-goog-api-key': this.ctx.providerSpec.apiKey,
52
+ 'x-goog-api-key': this.providerSpec.apiKey,
40
53
  },
41
54
  body: JSON.stringify(reqbody),
42
- dispatcher: this.ctx.providerSpec.dispatcher,
55
+ dispatcher: this.providerSpec.dispatcher,
43
56
  signal,
44
- }).catch(e => {
45
- if (e instanceof TypeError)
46
- throw new NetworkError(undefined, { cause: e });
47
- else
48
- throw e;
49
57
  });
50
58
  // Get response
51
59
  if (res.ok) { }
@@ -67,23 +75,23 @@ export class Transport {
67
75
  // Validate response
68
76
  if (response.candidates?.[0]?.content?.parts?.length) { }
69
77
  else
70
- throw new ResponseInvalid('Content missing', { cause: response });
78
+ throw new SyntaxError('Content missing', { cause: response });
71
79
  if (response.candidates[0].finishReason === Google.FinishReason.MAX_TOKENS)
72
- throw new ResponseInvalid('Token limit exceeded.', { cause: response });
80
+ throw new SyntaxError('Token limit exceeded.', { cause: response });
73
81
  if (response.candidates[0].finishReason === Google.FinishReason.STOP) { }
74
82
  else
75
- throw new ResponseInvalid('Abnormal finish reason', { cause: response });
83
+ throw new SyntaxError('Abnormal finish reason', { cause: response });
76
84
  if (response.usageMetadata) { }
77
85
  else
78
- throw new ResponseInvalid('Usage metadata missing', { cause: response });
86
+ throw new SyntaxError('Usage metadata missing', { cause: response });
79
87
  for (const part of response.candidates[0].content.parts) {
80
88
  if (part.text)
81
89
  loggers.inference.info(part.text);
82
90
  if (part.functionCall)
83
91
  loggers.message.info(part.functionCall);
84
92
  }
85
- wfctx.cost?.(this.ctx.billing.charge(response.usageMetadata));
86
- return this.ctx.messageCodec.decodeAiMessage(response.candidates[0].content);
93
+ wfctx.cost?.(this.billing.charge(response.usageMetadata));
94
+ return this.messageCodec.decodeAiMessage(response.candidates[0].content);
87
95
  }
88
96
  }
89
97
  //# sourceMappingURL=transport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/google/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/google/transport.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,13 @@ import * as ChoiceCodecModule from './google/choice-codec.ts';
9
9
  export type GoogleCompatibleEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = GoogleCompatibleEngine.Instance<fdm, vdm>;
10
10
  export declare namespace GoogleCompatibleEngine {
11
11
  class Instance<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends CompatibleEngine.Instance<fdm, vdm> {
12
+ protected options: GoogleCompatibleEngine.Options<fdm, vdm>;
12
13
  protected toolCodec: ToolCodec<fdm>;
13
14
  protected messageCodec: GoogleCompatibleEngine.MessageCodec<fdm, vdm>;
14
15
  protected billing: Billing;
15
16
  protected transport: GoogleCompatibleEngine.Transport<fdm, vdm>;
16
17
  constructor(options: GoogleCompatibleEngine.Options<fdm, vdm>);
18
+ clone(): GoogleCompatibleEngine<fdm, vdm>;
17
19
  }
18
20
  interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends CompatibleEngine.Options<fdm, vdm> {
19
21
  }
@@ -4,16 +4,31 @@ import { ToolCodec } from "../api-types/google/tool-codec.js";
4
4
  import { Billing } from "../api-types/google/billing.js";
5
5
  import * as TransportModule from "./google/transport.js";
6
6
  import * as ChoiceCodecModule from "./google/choice-codec.js";
7
+ import { env } from 'node:process';
8
+ import { Agent, ProxyAgent } from 'undici';
7
9
  export var GoogleCompatibleEngine;
8
10
  (function (GoogleCompatibleEngine) {
9
11
  class Instance extends CompatibleEngine.Instance {
12
+ options;
10
13
  toolCodec;
11
14
  messageCodec;
12
15
  billing;
13
16
  transport;
14
17
  constructor(options) {
15
18
  super(options);
16
- if (options.parallelToolCall === false)
19
+ this.options = options;
20
+ const proxyUrl = options.endpointSpec.proxy || env.https_proxy || env.HTTPS_PROXY;
21
+ this.providerSpec.dispatcher = proxyUrl
22
+ ? new ProxyAgent({
23
+ uri: proxyUrl,
24
+ headersTimeout: 0,
25
+ bodyTimeout: 0,
26
+ })
27
+ : new Agent({
28
+ headersTimeout: 0,
29
+ bodyTimeout: 0,
30
+ });
31
+ if (options.endpointSpec.parallelToolCall === false)
17
32
  throw new Error('Parallel tool calling is required by Google engine.');
18
33
  this.toolCodec = new ToolCodec({
19
34
  fdm: this.fdm,
@@ -28,12 +43,18 @@ export var GoogleCompatibleEngine;
28
43
  providerSpec: this.providerSpec,
29
44
  fdm: this.fdm,
30
45
  throttle: this.throttle,
31
- choice: this.choice,
46
+ choice: this.structuringChoice,
32
47
  messageCodec: this.messageCodec,
33
48
  toolCodec: this.toolCodec,
34
49
  billing: this.billing,
35
50
  });
36
51
  }
52
+ clone() {
53
+ const engine = new GoogleCompatibleEngine.Instance(this.options);
54
+ engine.middlewares = [...this.middlewares];
55
+ engine.statefulMiddlewares = [...this.statefulMiddlewares];
56
+ return engine;
57
+ }
37
58
  }
38
59
  GoogleCompatibleEngine.Instance = Instance;
39
60
  GoogleCompatibleEngine.Transport = TransportModule.Transport;
@@ -1 +1 @@
1
- {"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/compatible-engine.d/google.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,kBAAkB,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AACzD,OAAO,KAAK,eAAe,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAQ9D,MAAM,KAAW,sBAAsB,CA2CtC;AA3CD,WAAiB,sBAAsB;IACnC,MAAa,QAGX,SAAQ,gBAAgB,CAAC,QAAkB;QAC/B,SAAS,CAAiB;QAC1B,YAAY,CAAgD;QAC5D,OAAO,CAAU;QACR,SAAS,CAA6C;QAEzE,YAAmB,OAAiD;YAChE,KAAK,CAAC,OAAO,CAAC,CAAC;YACf,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK;gBAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;YAC/G,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC;gBAC3B,GAAG,EAAE,IAAI,CAAC,GAAG;aAChB,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,sBAAsB,CAAC,YAAY,CAAC;gBACxD,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,GAAG,EAAE,IAAI,CAAC,GAAG;aAChB,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,sBAAsB,CAAC,SAAS,CAAC;gBAClD,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,OAAO,EAAE,IAAI,CAAC,OAAO;aACxB,CAAC,CAAC;QACP,CAAC;KAEJ;IAhCY,+BAAQ,WAgCpB,CAAA;IAOa,gCAAS,GAAG,eAAe,CAAC,SAAS,CAAC;IACtC,mCAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC;IAC/C,kCAAW,GAAG,iBAAiB,CAAC;AAClD,CAAC,EA3CgB,sBAAsB,KAAtB,sBAAsB,QA2CtC"}
1
+ {"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/compatible-engine.d/google.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
1
  import { RoleMessage, type Session } from '../../compatible-engine/session.ts';
2
2
  import { Function } from '../../function.ts';
3
3
  import OpenAI from 'openai';
4
- import type { OpenAIChatCompletionsToolCodec } from '../../api-types/openai-chatcompletions/tool-codec.ts';
4
+ import type { ToolCodec } from '../../api-types/openai-chatcompletions/tool-codec.ts';
5
5
  import type { Verbatim } from '../../verbatim.ts';
6
6
  export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
7
- protected ctx: MessageCodec.Context<fdm, vdm>;
8
- constructor(ctx: MessageCodec.Context<fdm, vdm>);
7
+ protected toolCodec: ToolCodec<fdm>;
8
+ protected vdm: vdm;
9
+ constructor(options: MessageCodec.Options<fdm, vdm>);
9
10
  decodeAiMessage(message: OpenAI.ChatCompletionMessage): RoleMessage.Ai.From<fdm, vdm>;
10
11
  encodeDeveloperMessage(developerMessage: RoleMessage.Developer): OpenAI.ChatCompletionSystemMessageParam;
11
12
  encodeUserMessage(userMessage: RoleMessage.User.From<fdm>): [OpenAI.ChatCompletionUserMessageParam] | OpenAI.ChatCompletionToolMessageParam[];
@@ -14,8 +15,8 @@ export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto, in
14
15
  encodeRoleMessages(chatMessages: (Session.ChatMessage.From<fdm, vdm> | RoleMessage.Developer)[]): OpenAI.ChatCompletionMessageParam[];
15
16
  }
16
17
  export declare namespace MessageCodec {
17
- interface Context<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
18
- toolCodec: OpenAIChatCompletionsToolCodec<fdm>;
18
+ interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
19
+ toolCodec: ToolCodec<fdm>;
19
20
  vdm: vdm;
20
21
  }
21
22
  }
@@ -1,36 +1,29 @@
1
- import { ResponseInvalid } from "../../engine.js";
2
1
  import { RoleMessage } from "../../compatible-engine/session.js";
3
2
  import { Function } from "../../function.js";
4
3
  import * as VerbatimCodec from "../../verbatim/codec.js";
5
4
  export class MessageCodec {
6
- ctx;
7
- constructor(ctx) {
8
- this.ctx = ctx;
5
+ toolCodec;
6
+ vdm;
7
+ constructor(options) {
8
+ this.toolCodec = options.toolCodec;
9
+ this.vdm = options.vdm;
9
10
  }
10
11
  decodeAiMessage(message) {
11
12
  const parts = [];
12
- if (message.content)
13
- try {
14
- const vrs = VerbatimCodec.Request.decode(message.content, this.ctx.vdm);
15
- parts.push(new RoleMessage.Part.Text(message.content, vrs));
16
- }
17
- catch (e) {
18
- if (e instanceof SyntaxError)
19
- throw new ResponseInvalid('Invalid verbatim message', { cause: message });
20
- else
21
- throw e;
22
- }
13
+ if (message.content) {
14
+ const vrs = VerbatimCodec.Request.decode(message.content, this.vdm);
15
+ parts.push(new RoleMessage.Part.Text(message.content, vrs));
16
+ }
23
17
  if (message.tool_calls)
24
- parts.push(...message.tool_calls.map(apifc => {
25
- if (apifc.type === 'function') { }
18
+ for (const apifc of message.tool_calls)
19
+ if (apifc.type === 'function')
20
+ parts.push(this.toolCodec.decodeFunctionCall(apifc));
26
21
  else
27
22
  throw new Error();
28
- return this.ctx.toolCodec.decodeFunctionCall(apifc);
29
- }));
30
- if (parts.length) { }
23
+ if (parts.length)
24
+ return new RoleMessage.Ai(parts);
31
25
  else
32
- throw new ResponseInvalid('Content or tool calls not found in Response', { cause: message });
33
- return new RoleMessage.Ai(parts);
26
+ throw new SyntaxError('Content or tool calls not found in Response', { cause: message });
34
27
  }
35
28
  encodeDeveloperMessage(developerMessage) {
36
29
  return {
@@ -44,7 +37,7 @@ export class MessageCodec {
44
37
  if (textParts.length && !frs.length)
45
38
  return [{ role: 'user', content: textParts.map(part => ({ type: 'text', text: part.text })) }];
46
39
  else if (!textParts.length && frs.length)
47
- return frs.map(fr => this.ctx.toolCodec.encodeFunctionResponse(fr));
40
+ return frs.map(fr => this.toolCodec.encodeFunctionResponse(fr));
48
41
  else
49
42
  throw new Error('Unsupported user message type.');
50
43
  }
@@ -55,7 +48,7 @@ export class MessageCodec {
55
48
  return {
56
49
  role: 'assistant',
57
50
  content: textParts.length ? textParts.map(part => part.text).join('') : undefined,
58
- tool_calls: fcParts.length ? fcParts.map(fc => this.ctx.toolCodec.encodeFunctionCall(fc)) : undefined,
51
+ tool_calls: fcParts.length ? fcParts.map(fc => this.toolCodec.encodeFunctionCall(fc)) : undefined,
59
52
  };
60
53
  }
61
54
  encodeRoleMessage(roleMessage) {
@@ -1 +1 @@
1
- {"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/openai-chatcompletions/message-codec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/openai-chatcompletions/message-codec.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,37 @@ import OpenAI from 'openai';
4
4
  import type { InferenceContext } from '../../inference-context.ts';
5
5
  import type { Verbatim } from '../../verbatim.ts';
6
6
  import type { Engine } from '../../engine.ts';
7
- export declare abstract class Transport<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> implements Engine.Transport<RoleMessage.User.From<fdm>, RoleMessage.Ai.From<fdm, vdm>, RoleMessage.Developer, Session.From<fdm, vdm>> {
8
- abstract fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
9
- handleFinishReason(completion: OpenAI.ChatCompletion, finishReason: OpenAI.ChatCompletion.Choice['finish_reason']): void;
7
+ import { type InferenceParams, type ProviderSpec } from '../../engine.ts';
8
+ import type { Billing } from '../../api-types/openai-chatcompletions/billing.ts';
9
+ import type { ToolCodec } from '../../api-types/openai-chatcompletions/tool-codec.ts';
10
+ import { Throttle } from '../../throttle.ts';
11
+ import { type MessageCodec } from './message-codec.ts';
12
+ import type { Structuring } from '../../compatible-engine/structuring.ts';
13
+ export declare class Transport<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> implements Engine.Transport<RoleMessage.User.From<fdm>, RoleMessage.Ai.From<fdm, vdm>, RoleMessage.Developer, Session.From<fdm, vdm>> {
14
+ protected client: OpenAI;
15
+ protected inferenceParams: InferenceParams;
16
+ protected providerSpec: ProviderSpec;
17
+ protected fdm: fdm;
18
+ protected throttle: Throttle;
19
+ protected choice: Structuring.Choice.From<fdm, vdm>;
20
+ protected messageCodec: MessageCodec<fdm, vdm>;
21
+ protected toolCodec: ToolCodec<fdm>;
22
+ protected billing: Billing;
23
+ constructor(options: Transport.Options<fdm, vdm>);
24
+ protected makeParams(session: Session.From<fdm, vdm>): OpenAI.ChatCompletionCreateParamsStreaming;
25
+ mergeToolCall(apifc: OpenAI.ChatCompletionChunk.Choice.Delta.ToolCall): OpenAI.ChatCompletionMessageToolCall;
26
+ mergeCompletion(stock: OpenAI.ChatCompletionChunk): OpenAI.ChatCompletion;
27
+ fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
28
+ }
29
+ export declare namespace Transport {
30
+ interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
31
+ inferenceParams: InferenceParams;
32
+ providerSpec: ProviderSpec;
33
+ fdm: fdm;
34
+ throttle: Throttle;
35
+ choice: Structuring.Choice.From<fdm, vdm>;
36
+ messageCodec: MessageCodec<fdm, vdm>;
37
+ toolCodec: ToolCodec<fdm>;
38
+ billing: Billing;
39
+ }
10
40
  }