@zimtsui/typechat 0.0.94 → 0.0.95

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
@@ -1,91 +1,91 @@
1
- import { NetworkError, ResponseInvalid } from "../../engine.js";
2
- import * as Undici from 'undici';
1
+ import OpenAI from 'openai';
3
2
  import { loggers } from "../../telemetry.js";
4
3
  import * as ChoiceCodec from "./choice-codec.js";
5
- import { MIMEType } from 'whatwg-mimetype';
4
+ import * as Undici from 'undici';
6
5
  export class Transport {
7
- ctx;
8
- apiURL;
9
- constructor(ctx) {
10
- this.ctx = ctx;
11
- this.apiURL = new URL(`${this.ctx.providerSpec.baseUrl}/responses`);
6
+ client;
7
+ inferenceParams;
8
+ providerSpec;
9
+ fdm;
10
+ throttle;
11
+ choice;
12
+ messageCodec;
13
+ toolCodec;
14
+ billing;
15
+ constructor(options) {
16
+ this.client = new OpenAI({
17
+ baseURL: options.providerSpec.baseUrl,
18
+ apiKey: options.providerSpec.apiKey,
19
+ fetch: Undici.fetch,
20
+ fetchOptions: { dispatcher: options.providerSpec.dispatcher },
21
+ });
22
+ this.inferenceParams = options.inferenceParams;
23
+ this.providerSpec = options.providerSpec;
24
+ this.fdm = options.fdm;
25
+ this.throttle = options.throttle;
26
+ this.choice = options.choice;
27
+ this.messageCodec = options.messageCodec;
28
+ this.toolCodec = options.toolCodec;
29
+ this.billing = options.billing;
12
30
  }
13
31
  makeParams(session) {
14
- const tools = this.ctx.toolCodec.encodeFunctionDeclarationMap(this.ctx.fdm);
32
+ const tools = this.toolCodec.encodeFunctionDeclarationMap(this.fdm);
15
33
  return {
16
- model: this.ctx.inferenceSpec.model,
34
+ model: this.inferenceParams.model,
17
35
  include: ['reasoning.encrypted_content'],
18
36
  store: false,
19
- input: session.chatMessages.flatMap(chatMessage => this.ctx.messageCodec.encodeChatMessage(chatMessage)),
20
- instructions: session.developerMessage && this.ctx.messageCodec.encodeDeveloperMessage(session.developerMessage),
37
+ stream: true,
38
+ input: session.chatMessages.flatMap(chatMessage => this.messageCodec.encodeChatMessage(chatMessage)),
39
+ instructions: session.developerMessage && this.messageCodec.encodeDeveloperMessage(session.developerMessage),
21
40
  tools: tools.length ? tools : undefined,
22
- tool_choice: tools.length ? ChoiceCodec.encode(this.ctx.choice) : undefined,
23
- parallel_tool_calls: tools.length ? this.ctx.inferenceSpec.parallelToolCall : undefined,
24
- ...this.ctx.inferenceSpec.additionalOptions,
41
+ tool_choice: tools.length ? ChoiceCodec.encode(this.choice) : undefined,
42
+ parallel_tool_calls: tools.length ? this.inferenceParams.parallelToolCall : undefined,
43
+ ...this.inferenceParams.additionalOptions,
25
44
  };
26
45
  }
27
- logAiMessage(output) {
28
- for (const item of output)
29
- if (item.type === 'message') {
30
- if (item.content.every(part => part.type === 'output_text')) { }
31
- else
32
- throw new ResponseInvalid('Refusal', { cause: output });
33
- loggers.inference.info(item.content.map(part => part.text).join(''));
34
- }
35
- else if (item.type === 'function_call')
36
- loggers.message.info(item);
37
- }
38
46
  async fetch(wfctx, session, signal) {
39
- await this.ctx.throttle.requests(wfctx);
47
+ await this.throttle.requests(wfctx);
40
48
  // Prepare request
41
49
  const params = this.makeParams(session);
42
50
  loggers.message.debug(params);
43
51
  // Send request
44
- const res = await Undici.fetch(this.apiURL, {
45
- method: 'POST',
46
- headers: {
47
- 'Content-Type': 'application/json',
48
- 'Authorization': `Bearer ${this.ctx.providerSpec.apiKey}`,
49
- },
50
- body: JSON.stringify(params),
51
- dispatcher: this.ctx.providerSpec.dispatcher,
52
- signal,
53
- }).catch(e => {
54
- if (e instanceof TypeError)
55
- throw new NetworkError(undefined, { cause: e });
56
- else
57
- throw e;
58
- });
59
- // Get response
60
- if (res.ok) { }
61
- else {
62
- const contentType = res.headers.get('Content-Type');
63
- if (contentType) { }
64
- else
65
- throw new Error(res.statusText, { cause: res });
66
- const mimeType = new MIMEType(contentType);
67
- if (mimeType.essence === 'application/json')
68
- throw new Error(res.statusText, { cause: await res.json() });
69
- else if (mimeType.type === 'text')
70
- throw new Error(res.statusText, { cause: await res.text() });
71
- else
72
- throw new Error(res.statusText, { cause: res });
52
+ let response = null;
53
+ const stream = await this.client.responses.create(params, { signal });
54
+ for await (const event of stream) {
55
+ loggers.stream.trace(event);
56
+ if (event.type === 'response.completed')
57
+ response = event.response;
58
+ else if (event.type === 'response.incomplete')
59
+ response = event.response;
60
+ else if (event.type === 'response.failed')
61
+ response = event.response;
62
+ else if (event.type === 'error')
63
+ throw new SyntaxError('Response stream error', { cause: event });
73
64
  }
74
- const response = await res.json();
75
- loggers.message.debug(response);
76
65
  // Validate response
77
- if (response.status === 'incomplete' && response.incomplete_details?.reason === 'max_output_tokens')
78
- throw new ResponseInvalid('Token limit exceeded.', { cause: response });
66
+ if (response) { }
67
+ else
68
+ throw new Error();
69
+ loggers.message.debug(response);
79
70
  if (response.status === 'completed') { }
80
71
  else
81
- throw new ResponseInvalid('Abnormal response status', { cause: response });
72
+ throw new SyntaxError('Abnormal response status', { cause: response });
82
73
  if (response.usage) { }
83
74
  else
84
75
  throw new Error();
85
- this.logAiMessage(response.output);
76
+ // Log response
77
+ for (const item of response.output)
78
+ if (item.type === 'message')
79
+ for (const part of item.content)
80
+ if (part.type === 'output_text')
81
+ loggers.inference.info(part.text);
82
+ else if (part.type === 'refusal')
83
+ loggers.inference.warn(part.refusal);
84
+ else
85
+ loggers.message.info(item);
86
86
  loggers.message.info(response.usage);
87
- wfctx.cost?.(this.ctx.billing.charge(response.usage));
88
- return this.ctx.messageCodec.decodeAiMessage(response.output);
87
+ wfctx.cost?.(this.billing.charge(response.usage));
88
+ return this.messageCodec.decodeAiMessage(response.output);
89
89
  }
90
90
  }
91
91
  //# sourceMappingURL=transport.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/openai-responses/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/compatible-engine.d/openai-responses/transport.ts"],"names":[],"mappings":"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"}
@@ -9,11 +9,13 @@ import * as ChoiceCodecModule from './openai-responses/choice-codec.ts';
9
9
  export type OpenAIResponsesCompatibleEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = OpenAIResponsesCompatibleEngine.Instance<fdm, vdm>;
10
10
  export declare namespace OpenAIResponsesCompatibleEngine {
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: OpenAIResponsesCompatibleEngine.Options<fdm, vdm>;
12
13
  protected toolCodec: ToolCodec<fdm>;
13
14
  protected messageCodec: OpenAIResponsesCompatibleEngine.MessageCodec<fdm, vdm>;
14
15
  protected billing: Billing;
15
16
  protected transport: OpenAIResponsesCompatibleEngine.Transport<fdm, vdm>;
16
17
  constructor(options: OpenAIResponsesCompatibleEngine.Options<fdm, vdm>);
18
+ clone(): OpenAIResponsesCompatibleEngine<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
  }
@@ -7,12 +7,14 @@ import * as ChoiceCodecModule from "./openai-responses/choice-codec.js";
7
7
  export var OpenAIResponsesCompatibleEngine;
8
8
  (function (OpenAIResponsesCompatibleEngine) {
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 OpenAIResponsesCompatibleEngine.MessageCodec({
18
20
  toolCodec: this.toolCodec,
@@ -20,16 +22,22 @@ export var OpenAIResponsesCompatibleEngine;
20
22
  });
21
23
  this.billing = new Billing({ pricing: this.pricing });
22
24
  this.transport = new OpenAIResponsesCompatibleEngine.Transport({
23
- inferenceSpec: this.inferenceParams,
25
+ inferenceParams: this.inferenceParams,
24
26
  providerSpec: this.providerSpec,
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 OpenAIResponsesCompatibleEngine.Instance(this.options);
37
+ engine.middlewares = [...this.middlewares];
38
+ engine.statefulMiddlewares = [...this.statefulMiddlewares];
39
+ return engine;
40
+ }
33
41
  }
34
42
  OpenAIResponsesCompatibleEngine.Instance = Instance;
35
43
  OpenAIResponsesCompatibleEngine.MessageCodec = MessageCodecModule.MessageCodec;
@@ -1 +1 @@
1
- {"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../../src/compatible-engine.d/openai-responses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,0CAA0C,CAAC;AACnE,OAAO,KAAK,kBAAkB,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,eAAe,MAAM,iCAAiC,CAAC;AAEnE,OAAO,KAAK,iBAAiB,MAAM,oCAAoC,CAAC;AAQxE,MAAM,KAAW,+BAA+B,CAwC/C;AAxCD,WAAiB,+BAA+B;IAC5C,MAAa,QAGX,SAAQ,gBAAgB,CAAC,QAAkB;QAC/B,SAAS,CAAiB;QAC1B,YAAY,CAAyD;QACrE,OAAO,CAAU;QACR,SAAS,CAAsD;QAElF,YAAmB,OAA0D;YACzE,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,+BAA+B,CAAC,YAAY,CAAC;gBACjE,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,+BAA+B,CAAC,SAAS,CAAC;gBAC3D,aAAa,EAAE,IAAI,CAAC,eAAe;gBACnC,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;IA7BY,wCAAQ,WA6BpB,CAAA;IAOa,4CAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC;IAC/C,yCAAS,GAAG,eAAe,CAAC,SAAS,CAAC;IACtC,2CAAW,GAAG,iBAAiB,CAAC;AAClD,CAAC,EAxCgB,+BAA+B,KAA/B,+BAA+B,QAwC/C"}
1
+ {"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../../src/compatible-engine.d/openai-responses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,0CAA0C,CAAC;AACnE,OAAO,KAAK,kBAAkB,MAAM,qCAAqC,CAAC;AAC1E,OAAO,KAAK,eAAe,MAAM,iCAAiC,CAAC;AAEnE,OAAO,KAAK,iBAAiB,MAAM,oCAAoC,CAAC;AAQxE,MAAM,KAAW,+BAA+B,CA+C/C;AA/CD,WAAiB,+BAA+B;IAC5C,MAAa,QAGX,SAAQ,gBAAgB,CAAC,QAAkB;QAMZ;QALnB,SAAS,CAAiB;QAC1B,YAAY,CAAyD;QACrE,OAAO,CAAU;QACR,SAAS,CAAsD;QAElF,YAA6B,OAA0D;YACnF,KAAK,CAAC,OAAO,CAAC,CAAC;YADU,YAAO,GAAP,OAAO,CAAmD;YAEnF,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,IAAI,CAAC,YAAY,GAAG,IAAI,+BAA+B,CAAC,YAAY,CAAC;gBACjE,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,+BAA+B,CAAC,SAAS,CAAC;gBAC3D,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,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,+BAA+B,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1E,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,wCAAQ,WAoCpB,CAAA;IAOa,4CAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC;IAC/C,yCAAS,GAAG,eAAe,CAAC,SAAS,CAAC;IACtC,2CAAW,GAAG,iBAAiB,CAAC;AAClD,CAAC,EA/CgB,+BAA+B,KAA/B,+BAA+B,QA+C/C"}
@@ -7,12 +7,13 @@ import * as SessionModule from './compatible-engine/session.ts';
7
7
  export type CompatibleEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = CompatibleEngine.Instance<fdm, vdm>;
8
8
  export declare namespace CompatibleEngine {
9
9
  abstract class Instance<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Engine.Instance<fdm, vdm, CompatibleEngine.RoleMessage.User.From<fdm>, CompatibleEngine.RoleMessage.Ai.From<fdm, vdm>, CompatibleEngine.RoleMessage.Developer, CompatibleEngine.Session.From<fdm, vdm>> {
10
- protected choice: CompatibleEngine.Structuring.Choice.From<fdm, vdm>;
10
+ protected structuringChoice: CompatibleEngine.Structuring.Choice.From<fdm, vdm>;
11
11
  protected structuringValidator: CompatibleEngine.StructuringValidator.From<fdm, vdm>;
12
12
  protected partsValidator: CompatibleEngine.PartsValidator.From<fdm, vdm>;
13
13
  constructor(options: CompatibleEngine.Options<fdm, vdm>);
14
14
  appendUserMessage(session: CompatibleEngine.Session.From<fdm, vdm>, message: CompatibleEngine.RoleMessage.User.From<fdm>): CompatibleEngine.Session.From<fdm, vdm>;
15
15
  pushUserMessage(session: CompatibleEngine.Session.From<fdm, vdm>, message: CompatibleEngine.RoleMessage.User.From<fdm>): CompatibleEngine.Session.From<fdm, vdm>;
16
+ abstract clone(): CompatibleEngine<fdm, vdm>;
16
17
  }
17
18
  interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Engine.Options<fdm, vdm> {
18
19
  structuringChoice?: CompatibleEngine.Structuring.Choice.From<fdm, vdm>;
@@ -5,13 +5,13 @@ import * as SessionModule from "./compatible-engine/session.js";
5
5
  export var CompatibleEngine;
6
6
  (function (CompatibleEngine) {
7
7
  class Instance extends Engine.Instance {
8
- choice;
8
+ structuringChoice;
9
9
  structuringValidator;
10
10
  partsValidator;
11
11
  constructor(options) {
12
12
  super(options);
13
- this.choice = options.structuringChoice ?? CompatibleEngine.Structuring.Choice.AUTO;
14
- this.structuringValidator = new CompatibleEngine.StructuringValidator({ choice: this.choice });
13
+ this.structuringChoice = options.structuringChoice ?? CompatibleEngine.Structuring.Choice.AUTO;
14
+ this.structuringValidator = new CompatibleEngine.StructuringValidator({ structuringChoice: this.structuringChoice });
15
15
  this.partsValidator = new CompatibleEngine.PartsValidator();
16
16
  }
17
17
  appendUserMessage(session, message) {
@@ -1 +1 @@
1
- {"version":3,"file":"compatible-engine.js","sourceRoot":"","sources":["../src/compatible-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,KAAK,iBAAiB,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,gBAAgB,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC;AAQhE,MAAM,KAAW,gBAAgB,CAqDhC;AArDD,WAAiB,gBAAgB;IAC7B,MAAsB,QAGpB,SAAQ,MAAM,CAAC,QAMhB;QACa,MAAM,CAAqD;QAClD,oBAAoB,CAAuD;QAC3E,cAAc,CAAiD;QAElF,YAAmB,OAA2C;YAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;YACf,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,iBAAiB,IAAI,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;YACpF,IAAI,CAAC,oBAAoB,GAAG,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/F,IAAI,CAAC,cAAc,GAAG,IAAI,gBAAgB,CAAC,cAAc,EAAE,CAAC;QAChE,CAAC;QAEe,iBAAiB,CAC7B,OAAgD,EAChD,OAAoD;YAEpD,OAAO;gBACH,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC;aACnD,CAAC;QACN,CAAC;QAEe,eAAe,CAC3B,OAAgD,EAChD,OAAoD;YAEpD,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO,OAAO,CAAC;QACnB,CAAC;KACJ;IAtCqB,yBAAQ,WAsC7B,CAAA;IAUa,4BAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IACxC,qCAAoB,GAAG,gBAAgB,CAAC,oBAAoB,CAAC;IAC7D,+BAAc,GAAG,gBAAgB,CAAC,cAAc,CAAC;IACjD,4BAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC;AAC9D,CAAC,EArDgB,gBAAgB,KAAhB,gBAAgB,QAqDhC"}
1
+ {"version":3,"file":"compatible-engine.js","sourceRoot":"","sources":["../src/compatible-engine.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,KAAK,iBAAiB,MAAM,oCAAoC,CAAC;AACxE,OAAO,KAAK,gBAAgB,MAAM,mCAAmC,CAAC;AACtE,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC;AAQhE,MAAM,KAAW,gBAAgB,CAwDhC;AAxDD,WAAiB,gBAAgB;IAC7B,MAAsB,QAGpB,SAAQ,MAAM,CAAC,QAMhB;QACa,iBAAiB,CAAqD;QAC7D,oBAAoB,CAAuD;QAC3E,cAAc,CAAiD;QAElF,YAAmB,OAA2C;YAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;YACf,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,gBAAgB,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;YAC/F,IAAI,CAAC,oBAAoB,GAAG,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;YACrH,IAAI,CAAC,cAAc,GAAG,IAAI,gBAAgB,CAAC,cAAc,EAAE,CAAC;QAChE,CAAC;QAEe,iBAAiB,CAC7B,OAAgD,EAChD,OAAoD;YAEpD,OAAO;gBACH,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;gBAC1C,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC;aACnD,CAAC;QACN,CAAC;QAEe,eAAe,CAC3B,OAAgD,EAChD,OAAoD;YAEpD,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACnC,OAAO,OAAO,CAAC;QACnB,CAAC;KAGJ;IAxCqB,yBAAQ,WAwC7B,CAAA;IAWa,4BAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IACxC,qCAAoB,GAAG,gBAAgB,CAAC,oBAAoB,CAAC;IAC7D,+BAAc,GAAG,gBAAgB,CAAC,cAAc,CAAC;IACjD,4BAAW,GAAG,iBAAiB,CAAC,WAAW,CAAC;AAC9D,CAAC,EAxDgB,gBAAgB,KAAhB,gBAAgB,QAwDhC"}
package/build/config.d.ts CHANGED
@@ -1,23 +1,21 @@
1
- import { type Static } from '@sinclair/typebox';
1
+ import { Type, type Static } from 'typebox';
2
2
  export type Config = Static<typeof Config.schema>;
3
3
  export declare namespace Config {
4
- const schema: import("@sinclair/typebox").TObject<{
5
- typechat: import("@sinclair/typebox").TObject<{
6
- endpoints: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
7
- baseUrl: import("@sinclair/typebox").TString;
8
- proxy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
9
- apiKey: import("@sinclair/typebox").TString;
10
- model: import("@sinclair/typebox").TString;
11
- name: import("@sinclair/typebox").TString;
12
- apiType: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"openai-responses">, import("@sinclair/typebox").TLiteral<"google">, import("@sinclair/typebox").TLiteral<"aliyun">, import("@sinclair/typebox").TLiteral<"anthropic">]>;
13
- inputPrice: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
14
- outputPrice: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
15
- cachePrice: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
16
- parallelToolCall: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
17
- additionalOptions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny>>;
18
- rpm: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
19
- timeout: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
20
- }>>;
21
- }>;
4
+ const schema: Type.TObject<{
5
+ endpoints: Type.TRecord<"^.*$", Type.TObject<{
6
+ baseUrl: Type.TString;
7
+ proxy: Type.TOptional<Type.TString>;
8
+ apiKey: Type.TString;
9
+ model: Type.TString;
10
+ name: Type.TString;
11
+ apiType: Type.TUnion<[Type.TLiteral<"openai-chatcompletions">, Type.TLiteral<"openai-responses">, Type.TLiteral<"google">, Type.TLiteral<"anthropic">]>;
12
+ inputPrice: Type.TOptional<Type.TNumber>;
13
+ outputPrice: Type.TOptional<Type.TNumber>;
14
+ cachePrice: Type.TOptional<Type.TNumber>;
15
+ parallelToolCall: Type.TOptional<Type.TBoolean>;
16
+ additionalOptions: Type.TOptional<Type.TRecord<"^.*$", Type.TAny>>;
17
+ rpm: Type.TOptional<Type.TNumber>;
18
+ timeout: Type.TOptional<Type.TNumber>;
19
+ }>>;
22
20
  }>;
23
21
  }
package/build/config.js CHANGED
@@ -1,11 +1,9 @@
1
- import { Type } from '@sinclair/typebox';
1
+ import { Type } from 'typebox';
2
2
  import { EndpointSpec } from "./endpoint-spec.js";
3
3
  export var Config;
4
4
  (function (Config) {
5
5
  Config.schema = Type.Object({
6
- typechat: Type.Object({
7
- endpoints: Type.Record(Type.String(), EndpointSpec.schema),
8
- }),
6
+ endpoints: Type.Record(Type.String(), EndpointSpec.schema),
9
7
  });
10
8
  })(Config || (Config = {}));
11
9
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD,MAAM,KAAW,MAAM,CAMtB;AAND,WAAiB,MAAM;IACN,aAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC;YAClB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC;SAC7D,CAAC;KACL,CAAC,CAAC;AACP,CAAC,EANgB,MAAM,KAAN,MAAM,QAMtB"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,SAAS,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,KAAW,MAAM,CAItB;AAJD,WAAiB,MAAM;IACN,aAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC;KAC7D,CAAC,CAAC;AACP,CAAC,EAJgB,MAAM,KAAN,MAAM,QAItB"}
@@ -1,19 +1,19 @@
1
- import { type Static } from "@sinclair/typebox";
1
+ import { Type, type Static } from "typebox";
2
2
  export type EndpointSpec = Static<typeof EndpointSpec.schema>;
3
3
  export declare namespace EndpointSpec {
4
- const schema: import("@sinclair/typebox").TObject<{
5
- baseUrl: import("@sinclair/typebox").TString;
6
- proxy: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
7
- apiKey: import("@sinclair/typebox").TString;
8
- model: import("@sinclair/typebox").TString;
9
- name: import("@sinclair/typebox").TString;
10
- apiType: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"openai-responses">, import("@sinclair/typebox").TLiteral<"google">, import("@sinclair/typebox").TLiteral<"aliyun">, import("@sinclair/typebox").TLiteral<"anthropic">]>;
11
- inputPrice: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
12
- outputPrice: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
13
- cachePrice: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
14
- parallelToolCall: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
15
- additionalOptions: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny>>;
16
- rpm: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
17
- timeout: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
4
+ const schema: Type.TObject<{
5
+ baseUrl: Type.TString;
6
+ proxy: Type.TOptional<Type.TString>;
7
+ apiKey: Type.TString;
8
+ model: Type.TString;
9
+ name: Type.TString;
10
+ apiType: Type.TUnion<[Type.TLiteral<"openai-chatcompletions">, Type.TLiteral<"openai-responses">, Type.TLiteral<"google">, Type.TLiteral<"anthropic">]>;
11
+ inputPrice: Type.TOptional<Type.TNumber>;
12
+ outputPrice: Type.TOptional<Type.TNumber>;
13
+ cachePrice: Type.TOptional<Type.TNumber>;
14
+ parallelToolCall: Type.TOptional<Type.TBoolean>;
15
+ additionalOptions: Type.TOptional<Type.TRecord<"^.*$", Type.TAny>>;
16
+ rpm: Type.TOptional<Type.TNumber>;
17
+ timeout: Type.TOptional<Type.TNumber>;
18
18
  }>;
19
19
  }
@@ -1,4 +1,4 @@
1
- import { Type } from "@sinclair/typebox";
1
+ import { Type } from "typebox";
2
2
  export var EndpointSpec;
3
3
  (function (EndpointSpec) {
4
4
  EndpointSpec.schema = Type.Object({
@@ -8,9 +8,9 @@ export var EndpointSpec;
8
8
  model: Type.String(),
9
9
  name: Type.String(),
10
10
  apiType: Type.Union([
11
+ Type.Literal('openai-chatcompletions'),
11
12
  Type.Literal('openai-responses'),
12
13
  Type.Literal('google'),
13
- Type.Literal('aliyun'),
14
14
  Type.Literal('anthropic'),
15
15
  ]),
16
16
  inputPrice: Type.Optional(Type.Number()),
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-spec.js","sourceRoot":"","sources":["../src/endpoint-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,mBAAmB,CAAC;AAItD,MAAM,KAAW,YAAY,CAqB5B;AArBD,WAAiB,YAAY;IACZ,mBAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;QACtB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QACrB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SAC5B,CAAC;QACF,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACxC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACzC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACxC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACxE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;KACtD,CAAC,CAAC;AACP,CAAC,EArBgB,YAAY,KAAZ,YAAY,QAqB5B"}
1
+ {"version":3,"file":"endpoint-spec.js","sourceRoot":"","sources":["../src/endpoint-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAe,MAAM,SAAS,CAAC;AAI5C,MAAM,KAAW,YAAY,CAqB5B;AArBD,WAAiB,YAAY;IACZ,mBAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE;QACtB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;QACrB,KAAK,EAAE,IAAI,CAAC,MAAM,EAAE;QACpB,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE;QACnB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;YAChB,IAAI,CAAC,OAAO,CAAC,wBAAwB,CAAC;YACtC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;YACtB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;SAC5B,CAAC;QACF,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACxC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACzC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACxC,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/C,iBAAiB,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;QACxE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;QAC/C,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;KACtD,CAAC,CAAC;AACP,CAAC,EArBgB,YAAY,KAAZ,YAAY,QAqB5B"}
@@ -1,3 +1,7 @@
1
+ import { Function } from '../function.ts';
2
+ import { Verbatim } from '../verbatim.ts';
3
+ import { Media } from '../media.ts';
4
+ declare const NOMINAL: unique symbol;
1
5
  export interface Session<userm, aim, devm> {
2
6
  chatMessages: Session.ChatMessage<userm, aim>[];
3
7
  developerMessage?: devm;
@@ -5,3 +9,30 @@ export interface Session<userm, aim, devm> {
5
9
  export declare namespace Session {
6
10
  type ChatMessage<userm, aim> = userm | aim;
7
11
  }
12
+ export declare namespace RoleMessage {
13
+ namespace Part {
14
+ class Text<out vdu extends Verbatim.Decl.Proto> {
15
+ text: string;
16
+ vrs: Verbatim.Request.Of<vdu>[];
17
+ static paragraph(text: string): Text<never>;
18
+ protected [NOMINAL]: never;
19
+ constructor(text: string, vrs: Verbatim.Request.Of<vdu>[]);
20
+ }
21
+ }
22
+ namespace Ai {
23
+ type Part<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto> = RoleMessage.Part.Text<vdu> | Function.Call.Of<fdu>;
24
+ namespace Part {
25
+ type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = RoleMessage.Ai.Part<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
26
+ }
27
+ }
28
+ namespace User {
29
+ type Part<fdu extends Function.Decl.Proto> = RoleMessage.Part.Text<never> | Function.Response.Of<fdu> | Media;
30
+ namespace Part {
31
+ type From<fdm extends Function.Decl.Map.Proto> = RoleMessage.User.Part<Function.Decl.From<fdm>>;
32
+ }
33
+ }
34
+ namespace Developer {
35
+ type Part = RoleMessage.Part.Text<never>;
36
+ }
37
+ }
38
+ export {};
@@ -1 +1,20 @@
1
+ const NOMINAL = Symbol();
2
+ export var RoleMessage;
3
+ (function (RoleMessage) {
4
+ let Part;
5
+ (function (Part) {
6
+ class Text {
7
+ text;
8
+ vrs;
9
+ static paragraph(text) {
10
+ return new RoleMessage.Part.Text(text.trimEnd() + '\n\n', []);
11
+ }
12
+ constructor(text, vrs) {
13
+ this.text = text;
14
+ this.vrs = vrs;
15
+ }
16
+ }
17
+ Part.Text = Text;
18
+ })(Part = RoleMessage.Part || (RoleMessage.Part = {}));
19
+ })(RoleMessage || (RoleMessage = {}));
1
20
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/engine/session.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/engine/session.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAazB,MAAM,KAAW,WAAW,CAqD3B;AArDD,WAAiB,WAAW;IAExB,IAAiB,IAAI,CAYpB;IAZD,WAAiB,IAAI;QACjB,MAAa,IAAI;YAOF;YACA;YAPJ,MAAM,CAAC,SAAS,CAAC,IAAY;gBAChC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,EAAE,EAAE,CAAC,CAAC;YAClE,CAAC;YAGD,YACW,IAAY,EACZ,GAA+B;gBAD/B,SAAI,GAAJ,IAAI,CAAQ;gBACZ,QAAG,GAAH,GAAG,CAA4B;YACvC,CAAC;SACP;QAVY,SAAI,OAUhB,CAAA;IACL,CAAC,EAZgB,IAAI,GAAJ,gBAAI,KAAJ,gBAAI,QAYpB;AAuCL,CAAC,EArDgB,WAAW,KAAX,WAAW,QAqD3B"}
@@ -1,12 +1,6 @@
1
1
  export interface StructuringValidator<out userm, in aim> {
2
2
  validate(aiMessage: aim): userm | void;
3
3
  }
4
- export declare namespace StructuringValidator {
5
- type From<userm, aim> = StructuringValidator<userm, aim>;
6
- }
7
- export interface PartsValidator<out userm, in aim> {
4
+ export interface PartsValidator<in aim> {
8
5
  validate(aiMessage: aim): void;
9
6
  }
10
- export declare namespace PartsValidator {
11
- type From<userm, aim> = PartsValidator<userm, aim>;
12
- }
package/build/engine.d.ts CHANGED
@@ -16,6 +16,7 @@ export interface ProviderSpec {
16
16
  baseUrl: string;
17
17
  apiKey: string;
18
18
  dispatcher: Dispatcher;
19
+ retry: number;
19
20
  }
20
21
  export interface InferenceParams {
21
22
  model: string;
@@ -34,51 +35,67 @@ export declare namespace Engine {
34
35
  fdm: fdm;
35
36
  vdm: vdm;
36
37
  protected throttle: Throttle;
37
- protected abstract structuringValidator: Engine.StructuringValidator.From<userm, aim>;
38
- protected abstract partsValidator: Engine.PartsValidator.From<userm, aim>;
38
+ protected abstract structuringValidator: Engine.StructuringValidator<userm, aim>;
39
+ protected abstract partsValidator: Engine.PartsValidator<aim>;
39
40
  protected abstract transport: Engine.Transport<userm, aim, devm, session>;
40
41
  constructor(options: Engine.Options<fdm, vdm>);
41
- protected infer(wfctx: InferenceContext, session: session, signal?: AbortSignal): Promise<aim>;
42
+ /**
43
+ * @throws {@link SyntaxError} 模型抽风
44
+ * @throws {@link Recoverable} 模型抽风但可恢复
45
+ * @throws {@link TypeError} 网络故障
46
+ */
47
+ protected infer(wfctx: InferenceContext, session: session): Promise<aim>;
42
48
  /**
43
49
  * @throws {@link InferenceTimeout} 推理超时
44
- * @throws {@link ResponseInvalid} 模型抽风
45
- * @throws {@link NetworkError} 网络故障
46
- * @throws {@link CustomRetry} 自定义重试
50
+ * @throws {@link SyntaxError} 模型抽风
51
+ * @throws {@link TypeError} 网络故障
47
52
  */
48
- stateless(wfctx: InferenceContext, session: session, validate?: (response: aim) => Promise<boolean>): Promise<aim>;
53
+ stateless(wfctx: InferenceContext, session: session): Promise<aim>;
49
54
  /**
55
+ * @throws {@link InferenceTimeout} 推理超时
56
+ * @throws {@link SyntaxError} 模型抽风
57
+ * @throws {@link TypeError} 网络故障
50
58
  * @param session mutable
51
59
  */
52
- stateful(wfctx: InferenceContext, session: session, validate?: (response: aim) => Promise<boolean>): Promise<aim>;
60
+ stateful(wfctx: InferenceContext, session: session): Promise<aim>;
53
61
  abstract appendUserMessage(session: session, message: userm): session;
54
62
  /**
55
63
  * @param session mutable
56
64
  */
57
65
  abstract pushUserMessage(session: session, message: userm): session;
66
+ abstract clone(): Engine<fdm, vdm, userm, aim, devm, session>;
67
+ protected middlewares: Middleware<userm, aim, devm, session>[];
68
+ use(middleware: Middleware<userm, aim, devm, session>): Engine<fdm, vdm, userm, aim, devm, session>;
69
+ protected statefulMiddlewares: Middleware<userm, aim, devm, session>[];
70
+ statefulUse(middleware: Middleware<userm, aim, devm, session>): Engine<fdm, vdm, userm, aim, devm, session>;
71
+ protected compose(middlewares: Middleware<userm, aim, devm, session>[], i?: number): Middleware<userm, aim, devm, session>;
72
+ }
73
+ interface Middleware<userm, aim, devm, session extends Engine.Session<userm, aim, devm>> {
74
+ (wfctx: InferenceContext, session: session, next: () => Promise<aim>): Promise<aim>;
58
75
  }
59
- interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends EndpointSpec {
76
+ interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
60
77
  throttle: Throttle;
78
+ endpointSpec: EndpointSpec;
61
79
  functionDeclarationMap: fdm;
62
80
  verbatimDeclarationMap: vdm;
63
- parallelToolCall?: boolean;
64
- retry?: number;
81
+ providerRetry?: number;
82
+ inferenceRetry?: number;
65
83
  }
66
84
  export import Session = SessionModule.Session;
85
+ export import RoleMessage = SessionModule.RoleMessage;
67
86
  export import StructuringValidator = ValidationModule.StructuringValidator;
68
87
  export import PartsValidator = ValidationModule.PartsValidator;
69
88
  export import Transport = TransportModule.Transport;
70
89
  }
71
90
  export declare class InferenceTimeout extends Error {
72
91
  }
73
- export declare class NetworkError extends Error {
74
- }
75
- export declare class CustomRetry extends Error {
76
- }
77
- export declare class ResponseInvalid extends Error {
78
- }
79
- export declare namespace ResponseInvalid {
80
- class Recoverable extends ResponseInvalid {
81
- }
92
+ export declare class Recoverable<userm, aim> extends SyntaxError {
93
+ protected response: aim;
94
+ protected rejection: userm;
95
+ constructor(response: aim, rejection: userm, ...rest: ConstructorParameters<typeof SyntaxError>);
96
+ resume(): aim;
97
+ recover(): userm;
98
+ static recover<userm, aim, devm, session extends Engine.Session<userm, aim, devm>>(wfctx: InferenceContext, session: session, next: () => Promise<aim>): Promise<aim>;
82
99
  }
83
100
  declare global {
84
101
  export namespace NodeJS {