@zimtsui/typechat 0.0.106 → 0.0.108

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 (152) hide show
  1. package/README.md +0 -5
  2. package/assets/xml/instruction.md +19 -0
  3. package/assets/xml/quotation.handlebars +1 -0
  4. package/assets/xml/system.handlebars +1 -0
  5. package/build/adaptor.d.ts +6 -7
  6. package/build/adaptor.js.map +1 -1
  7. package/build/assets.d.ts +1 -3
  8. package/build/assets.js +4 -6
  9. package/build/assets.js.map +1 -1
  10. package/build/engine/message.d.ts +7 -15
  11. package/build/engine/message.js +4 -19
  12. package/build/engine/message.js.map +1 -1
  13. package/build/engine/middleware.d.ts +3 -4
  14. package/build/engine/parts-validator.d.ts +3 -4
  15. package/build/engine/parts-validator.js.map +1 -1
  16. package/build/engine/recoverable.d.ts +7 -8
  17. package/build/engine/recoverable.js.map +1 -1
  18. package/build/engine/session.d.ts +5 -6
  19. package/build/engine/tool-choice-validator.d.ts +14 -0
  20. package/build/engine/tool-choice-validator.js +44 -0
  21. package/build/engine/tool-choice-validator.js.map +1 -0
  22. package/build/engine/transport.d.ts +2 -3
  23. package/build/engine.d.ts +23 -26
  24. package/build/engine.js +12 -18
  25. package/build/engine.js.map +1 -1
  26. package/build/engines/anthropic/message-codec.d.ts +6 -9
  27. package/build/engines/anthropic/message-codec.js +2 -7
  28. package/build/engines/anthropic/message-codec.js.map +1 -1
  29. package/build/engines/anthropic/message.d.ts +2 -3
  30. package/build/engines/anthropic/message.js.map +1 -1
  31. package/build/engines/anthropic/tool-choice-codec.d.ts +3 -0
  32. package/build/engines/anthropic/tool-choice-codec.js +15 -0
  33. package/build/engines/anthropic/tool-choice-codec.js.map +1 -0
  34. package/build/engines/anthropic/transport.d.ts +10 -11
  35. package/build/engines/anthropic/transport.js +4 -4
  36. package/build/engines/anthropic/transport.js.map +1 -1
  37. package/build/engines/anthropic.d.ts +8 -9
  38. package/build/engines/anthropic.js +1 -2
  39. package/build/engines/anthropic.js.map +1 -1
  40. package/build/engines/google/message-codec.d.ts +6 -9
  41. package/build/engines/google/message-codec.js +3 -9
  42. package/build/engines/google/message-codec.js.map +1 -1
  43. package/build/engines/google/message.d.ts +3 -4
  44. package/build/engines/google/message.js +2 -2
  45. package/build/engines/google/message.js.map +1 -1
  46. package/build/engines/google/tool-choice-codec.d.ts +3 -0
  47. package/build/engines/google/tool-choice-codec.js +15 -0
  48. package/build/engines/google/tool-choice-codec.js.map +1 -0
  49. package/build/engines/google/transport.d.ts +9 -10
  50. package/build/engines/google/transport.js +4 -4
  51. package/build/engines/google/transport.js.map +1 -1
  52. package/build/engines/google.d.ts +15 -16
  53. package/build/engines/google.js +10 -18
  54. package/build/engines/google.js.map +1 -1
  55. package/build/engines/openai-chatcompletions/message-codec.d.ts +7 -10
  56. package/build/engines/openai-chatcompletions/message-codec.js +2 -7
  57. package/build/engines/openai-chatcompletions/message-codec.js.map +1 -1
  58. package/build/engines/openai-chatcompletions/tool-choice-codec.d.ts +3 -0
  59. package/build/engines/openai-chatcompletions/tool-choice-codec.js +14 -0
  60. package/build/engines/openai-chatcompletions/tool-choice-codec.js.map +1 -0
  61. package/build/engines/openai-chatcompletions/transport.d.ts +10 -11
  62. package/build/engines/openai-chatcompletions/transport.js +4 -4
  63. package/build/engines/openai-chatcompletions/transport.js.map +1 -1
  64. package/build/engines/openai-chatcompletions.d.ts +8 -9
  65. package/build/engines/openai-chatcompletions.js +1 -4
  66. package/build/engines/openai-chatcompletions.js.map +1 -1
  67. package/build/engines/openai-responses/message-codec.d.ts +6 -9
  68. package/build/engines/openai-responses/message-codec.js +2 -7
  69. package/build/engines/openai-responses/message-codec.js.map +1 -1
  70. package/build/engines/openai-responses/message.d.ts +2 -3
  71. package/build/engines/openai-responses/message.js.map +1 -1
  72. package/build/engines/openai-responses/tool-choice-codec.d.ts +3 -0
  73. package/build/engines/openai-responses/tool-choice-codec.js +14 -0
  74. package/build/engines/openai-responses/tool-choice-codec.js.map +1 -0
  75. package/build/engines/openai-responses/tool-choice-validator.d.ts +11 -0
  76. package/build/engines/openai-responses/tool-choice-validator.js +50 -0
  77. package/build/engines/openai-responses/tool-choice-validator.js.map +1 -0
  78. package/build/engines/openai-responses/transport.d.ts +10 -11
  79. package/build/engines/openai-responses/transport.js +4 -4
  80. package/build/engines/openai-responses/transport.js.map +1 -1
  81. package/build/engines/openai-responses.d.ts +16 -17
  82. package/build/engines/openai-responses.js +10 -18
  83. package/build/engines/openai-responses.js.map +1 -1
  84. package/build/exports.d.ts +2 -2
  85. package/build/exports.js +2 -2
  86. package/build/exports.js.map +1 -1
  87. package/build/function.d.ts +3 -2
  88. package/build/function.js.map +1 -1
  89. package/build/media.js +2 -2
  90. package/build/media.js.map +1 -1
  91. package/build/tool-choice.d.ts +7 -0
  92. package/build/tool-choice.js +8 -0
  93. package/build/tool-choice.js.map +1 -0
  94. package/build/tsconfig.tsbuildinfo +1 -1
  95. package/build/xml/helpers.js.map +1 -0
  96. package/build/{verbatim/codec → xml}/quotation.js +2 -2
  97. package/build/xml/quotation.js.map +1 -0
  98. package/build/xml/system.js +7 -0
  99. package/build/xml/system.js.map +1 -0
  100. package/build/xml.d.ts +2 -0
  101. package/build/xml.js +3 -0
  102. package/build/xml.js.map +1 -0
  103. package/package.json +2 -2
  104. package/assets/verbatim/declarations.handlebars +0 -12
  105. package/assets/verbatim/instruction.md +0 -55
  106. package/assets/verbatim/quotation.handlebars +0 -1
  107. package/assets/verbatim/response.handlebars +0 -1
  108. package/assets/verbatim/system.handlebars +0 -1
  109. package/build/engine/structuring-validator.d.ts +0 -15
  110. package/build/engine/structuring-validator.js +0 -77
  111. package/build/engine/structuring-validator.js.map +0 -1
  112. package/build/engines/anthropic/structuring-choice-codec.d.ts +0 -5
  113. package/build/engines/anthropic/structuring-choice-codec.js +0 -23
  114. package/build/engines/anthropic/structuring-choice-codec.js.map +0 -1
  115. package/build/engines/google/structuring-choice-codec.d.ts +0 -5
  116. package/build/engines/google/structuring-choice-codec.js +0 -23
  117. package/build/engines/google/structuring-choice-codec.js.map +0 -1
  118. package/build/engines/openai-chatcompletions/structuring-choice-codec.d.ts +0 -5
  119. package/build/engines/openai-chatcompletions/structuring-choice-codec.js +0 -22
  120. package/build/engines/openai-chatcompletions/structuring-choice-codec.js.map +0 -1
  121. package/build/engines/openai-responses/structuring-choice-codec.d.ts +0 -3
  122. package/build/engines/openai-responses/structuring-choice-codec.js +0 -22
  123. package/build/engines/openai-responses/structuring-choice-codec.js.map +0 -1
  124. package/build/engines/openai-responses/structuring-validator.d.ts +0 -12
  125. package/build/engines/openai-responses/structuring-validator.js +0 -83
  126. package/build/engines/openai-responses/structuring-validator.js.map +0 -1
  127. package/build/structuring-choice.d.ts +0 -15
  128. package/build/structuring-choice.js +0 -18
  129. package/build/structuring-choice.js.map +0 -1
  130. package/build/verbatim/codec/declarations.d.ts +0 -2
  131. package/build/verbatim/codec/declarations.js +0 -25
  132. package/build/verbatim/codec/declarations.js.map +0 -1
  133. package/build/verbatim/codec/helpers.js.map +0 -1
  134. package/build/verbatim/codec/quotation.js.map +0 -1
  135. package/build/verbatim/codec/request.d.ts +0 -11
  136. package/build/verbatim/codec/request.js +0 -81
  137. package/build/verbatim/codec/request.js.map +0 -1
  138. package/build/verbatim/codec/response.d.ts +0 -2
  139. package/build/verbatim/codec/response.js +0 -7
  140. package/build/verbatim/codec/response.js.map +0 -1
  141. package/build/verbatim/codec/system.js +0 -7
  142. package/build/verbatim/codec/system.js.map +0 -1
  143. package/build/verbatim/codec.d.ts +0 -5
  144. package/build/verbatim/codec.js +0 -6
  145. package/build/verbatim/codec.js.map +0 -1
  146. package/build/verbatim.d.ts +0 -76
  147. package/build/verbatim.js +0 -17
  148. package/build/verbatim.js.map +0 -1
  149. /package/build/{verbatim/codec → xml}/helpers.d.ts +0 -0
  150. /package/build/{verbatim/codec → xml}/helpers.js +0 -0
  151. /package/build/{verbatim/codec → xml}/quotation.d.ts +0 -0
  152. /package/build/{verbatim/codec → xml}/system.d.ts +0 -0
package/README.md CHANGED
@@ -14,8 +14,3 @@ TypeChat 是一个强类型的 LLM 推理服务商 API 适配器。
14
14
  ## [配置](./examples/config.ts)
15
15
  ## [对话](./examples/chat.ts)
16
16
  ## [智能体](./examples/agent.ts)
17
- ### [XML 逐字频道](./examples/verbatim.ts)
18
-
19
- When a LLM outputs structured data in JSON format (e.g., legacy LLM function calling), if there are too many special characters in a string property (e.g., a large LaTeX document, or a complex shell command), the LLM is prone to make mistakes in JSON escaping.
20
-
21
- XML Verbatim Channel is designed to avoid escaping in LLM messages.
@@ -0,0 +1,19 @@
1
+ # TypeChat
2
+
3
+ TypeChat is the adaptor you are using for LLM inference providers.
4
+
5
+ ## Verbatim Quotation
6
+
7
+ LLM developer/user-role messages may contain verbatim quotations in the form of
8
+
9
+ <typechat:quotation author="AUTHOR OF QUOTATION"><![CDATA[VERBATIM QUOTATION]]></typechat:quotation>
10
+
11
+ The CDATA section may directly contain `]]>`, which is not allowed in standard XML.
12
+
13
+ The attribute `author` is optional, indicating the source of the quotation.
14
+
15
+ ## System Information
16
+
17
+ LLM developer/user-role messages may contain system information from the AI agent framework in the form of
18
+
19
+ <typechat:system></typechat:system>
@@ -0,0 +1 @@
1
+ <typechat:quotation{{#if (isDefined this.author)}} author="{{AssertXmlAttr this.author}}"{{/if}} mime-type="{{XmlAttr this.mimeType}}"><![CDATA[{{{this.text}}}]]></typechat:quotation>
@@ -0,0 +1 @@
1
+ <typechat:system>{{this.text}}</typechat:system>
@@ -3,25 +3,24 @@ import { Function } from './function.ts';
3
3
  import { Throttle } from './throttle.ts';
4
4
  import { GoogleEngine } from './engines/google.ts';
5
5
  import { OpenAIResponsesEngine } from './engines/openai-responses.ts';
6
- import type { Verbatim } from './verbatim.ts';
7
6
  import { Engine } from './engine.ts';
8
7
  export declare class Adaptor {
9
8
  config: Config;
10
9
  static create(config: Config): Adaptor;
11
10
  protected throttles: Map<string, Throttle>;
12
11
  protected constructor(config: Config);
13
- makeEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto>(adaptorOptions: Adaptor.Params<fdm, vdm>): Engine<fdm, vdm>;
14
- makeGoogleEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto>(adaptorOptions: Adaptor.GoogleParams<fdm, vdm>): GoogleEngine<fdm, vdm>;
15
- makeOpenAIResponsesEngine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto>(adaptorOptions: Adaptor.OpenAIResponsesParams<fdm, vdm>): OpenAIResponsesEngine<fdm, vdm>;
12
+ makeEngine<fdm extends Function.Decl.Map.Proto>(adaptorOptions: Adaptor.Params<fdm>): Engine<fdm>;
13
+ makeGoogleEngine<fdm extends Function.Decl.Map.Proto>(adaptorOptions: Adaptor.GoogleParams<fdm>): GoogleEngine<fdm>;
14
+ makeOpenAIResponsesEngine<fdm extends Function.Decl.Map.Proto>(adaptorOptions: Adaptor.OpenAIResponsesParams<fdm>): OpenAIResponsesEngine<fdm>;
16
15
  }
17
16
  export declare namespace Adaptor {
18
- interface Params<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Omit<Engine.Options<fdm, vdm>, 'endpointSpec' | 'throttle'> {
17
+ interface Params<in out fdm extends Function.Decl.Map.Proto> extends Omit<Engine.Options<fdm>, 'endpointSpec' | 'throttle'> {
19
18
  endpoint: string;
20
19
  }
21
- interface GoogleParams<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Omit<GoogleEngine.Options<fdm, vdm>, 'endpointSpec' | 'throttle'> {
20
+ interface GoogleParams<in out fdm extends Function.Decl.Map.Proto> extends Omit<GoogleEngine.Options<fdm>, 'endpointSpec' | 'throttle'> {
22
21
  endpoint: string;
23
22
  }
24
- interface OpenAIResponsesParams<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> extends Omit<OpenAIResponsesEngine.Options<fdm, vdm>, 'endpointSpec' | 'throttle'> {
23
+ interface OpenAIResponsesParams<in out fdm extends Function.Decl.Map.Proto> extends Omit<OpenAIResponsesEngine.Options<fdm>, 'endpointSpec' | 'throttle'> {
25
24
  endpoint: string;
26
25
  }
27
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"adaptor.js","sourceRoot":"","sources":["../src/adaptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adaptor.js","sourceRoot":"","sources":["../src/adaptor.ts"],"names":[],"mappings":"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"}
package/build/assets.d.ts CHANGED
@@ -1,9 +1,7 @@
1
1
  declare const _default: {
2
- readonly verbatim: {
2
+ readonly Xml: {
3
3
  readonly instruction: string;
4
- readonly declarations: string;
5
4
  readonly quotation: string;
6
- readonly response: string;
7
5
  readonly system: string;
8
6
  };
9
7
  };
package/build/assets.js CHANGED
@@ -1,12 +1,10 @@
1
1
  import { loadtext } from '@zimtsui/node-loaders';
2
2
  import { fileURLToPath } from 'node:url';
3
3
  export default {
4
- verbatim: {
5
- instruction: loadtext(fileURLToPath(import.meta.resolve('../assets/verbatim/instruction.md'))),
6
- declarations: loadtext(fileURLToPath(import.meta.resolve('../assets/verbatim/declarations.handlebars'))),
7
- quotation: loadtext(fileURLToPath(import.meta.resolve('../assets/verbatim/quotation.handlebars'))),
8
- response: loadtext(fileURLToPath(import.meta.resolve('../assets/verbatim/response.handlebars'))),
9
- system: loadtext(fileURLToPath(import.meta.resolve('../assets/verbatim/system.handlebars'))),
4
+ Xml: {
5
+ instruction: loadtext(fileURLToPath(import.meta.resolve('../assets/xml/instruction.md'))),
6
+ quotation: loadtext(fileURLToPath(import.meta.resolve('../assets/xml/quotation.handlebars'))),
7
+ system: loadtext(fileURLToPath(import.meta.resolve('../assets/xml/system.handlebars'))),
10
8
  },
11
9
  };
12
10
  //# sourceMappingURL=assets.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,eAAe;IACX,QAAQ,EAAE;QACN,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC,CAAC;QAC9F,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC,CAAC;QACxG,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC,CAAC;QAClG,QAAQ,EAAE,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC,CAAC;QAChG,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,sCAAsC,CAAC,CAAC,CAAC;KAC/F;CACK,CAAC"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,eAAe;IACX,GAAG,EAAE;QACD,WAAW,EAAE,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC;QACzF,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC,CAAC;QAC7F,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC,CAAC;KAC1F;CACK,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { Function } from '../function.ts';
2
- import { Verbatim } from '../verbatim.ts';
3
2
  declare const NOMINAL: unique symbol;
4
3
  export declare namespace RoleMessage {
5
4
  class Developer {
@@ -22,32 +21,25 @@ export declare namespace RoleMessage {
22
21
  }
23
22
  }
24
23
  }
25
- class Ai<out fdu extends Function.Decl.Proto, out vdu extends Verbatim.Decl.Proto> {
24
+ class Ai<out fdu extends Function.Decl.Proto> {
26
25
  protected parts: unknown[];
27
26
  protected [NOMINAL]: never;
28
27
  constructor(parts: unknown[]);
29
28
  getParts(): unknown[];
30
- allChat(): boolean;
31
- getTextParts(): RoleMessage.Ai.Part.Text<vdu>[];
32
- getChat(): string;
29
+ allText(): boolean;
30
+ getTextParts(): RoleMessage.Ai.Part.Text[];
33
31
  getText(): string;
34
32
  getFunctionCalls(): Function.Call.Of<fdu>[];
35
- getVerbatimRequests(): Verbatim.Request.Of<vdu>[];
36
33
  getOnlyFunctionCall(): Function.Call.Of<fdu>;
37
- getOnlyVerbatimRequest(): Verbatim.Request.Of<vdu>;
38
34
  }
39
35
  namespace Ai {
40
- type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = RoleMessage.Ai<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
36
+ type From<fdm extends Function.Decl.Map.Proto> = RoleMessage.Ai<Function.Decl.From<fdm>>;
41
37
  namespace Part {
42
- class Text<out vdu extends Verbatim.Decl.Proto> {
38
+ class Text {
43
39
  text: string;
44
- vreqs: Verbatim.Request.Of<vdu>[];
45
40
  protected [NOMINAL]: never;
46
- static paragraph(text: string): Text<never>;
47
- constructor(text: string, vreqs: Verbatim.Request.Of<vdu>[]);
48
- }
49
- namespace Text {
50
- type From<vdm extends Verbatim.Decl.Map.Proto> = Text<Verbatim.Decl.From<vdm>>;
41
+ static paragraph(text: string): Text;
42
+ constructor(text: string);
51
43
  }
52
44
  }
53
45
  }
@@ -56,15 +56,12 @@ export var RoleMessage;
56
56
  getParts() {
57
57
  return this.parts;
58
58
  }
59
- allChat() {
60
- return this.parts.every(part => part instanceof RoleMessage.Ai.Part.Text && !part.vreqs.length);
59
+ allText() {
60
+ return this.parts.every(part => part instanceof RoleMessage.Ai.Part.Text);
61
61
  }
62
62
  getTextParts() {
63
63
  return this.parts.filter(part => part instanceof RoleMessage.Ai.Part.Text);
64
64
  }
65
- getChat() {
66
- return this.getTextParts().filter(part => !part.vreqs.length).map(part => part.text).join('');
67
- }
68
65
  getText() {
69
66
  return this.getTextParts().map(part => part.text).join('');
70
67
  }
@@ -77,9 +74,6 @@ export var RoleMessage;
77
74
  }
78
75
  return fcalls;
79
76
  }
80
- getVerbatimRequests() {
81
- return this.getTextParts().flatMap(part => part.vreqs);
82
- }
83
77
  getOnlyFunctionCall() {
84
78
  const fcalls = this.getFunctionCalls();
85
79
  if (fcalls.length === 1) { }
@@ -87,13 +81,6 @@ export var RoleMessage;
87
81
  throw new Error();
88
82
  return fcalls[0];
89
83
  }
90
- getOnlyVerbatimRequest() {
91
- const vreqs = this.getVerbatimRequests();
92
- if (vreqs.length === 1) { }
93
- else
94
- throw new Error();
95
- return vreqs[0];
96
- }
97
84
  }
98
85
  RoleMessage.Ai = Ai;
99
86
  (function (Ai) {
@@ -101,13 +88,11 @@ export var RoleMessage;
101
88
  (function (Part) {
102
89
  class Text {
103
90
  text;
104
- vreqs;
105
91
  static paragraph(text) {
106
- return new RoleMessage.Ai.Part.Text(text.trimEnd() + '\n\n', []);
92
+ return new RoleMessage.Ai.Part.Text(text.trimEnd() + '\n\n');
107
93
  }
108
- constructor(text, vreqs) {
94
+ constructor(text) {
109
95
  this.text = text;
110
- this.vreqs = vreqs;
111
96
  }
112
97
  }
113
98
  Part.Text = Text;
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/engine/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/engine/message.ts"],"names":[],"mappings":"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"}
@@ -2,10 +2,9 @@ import { Function } from '../function.ts';
2
2
  import { type InferenceContext } from '../inference-context.ts';
3
3
  import { Session } from './session.ts';
4
4
  import { RoleMessage } from './message.ts';
5
- import { Verbatim } from '../verbatim.ts';
6
- export interface Middleware<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> {
7
- (wfctx: InferenceContext, session: Session<fdu, vdu>, next: () => Promise<RoleMessage.Ai<fdu, vdu>>): Promise<RoleMessage.Ai<fdu, vdu>>;
5
+ export interface Middleware<in out fdu extends Function.Decl.Proto> {
6
+ (wfctx: InferenceContext, session: Session<fdu>, next: () => Promise<RoleMessage.Ai<fdu>>): Promise<RoleMessage.Ai<fdu>>;
8
7
  }
9
8
  export declare namespace Middleware {
10
- type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Middleware<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
9
+ type From<fdm extends Function.Decl.Map.Proto> = Middleware<Function.Decl.From<fdm>>;
11
10
  }
@@ -1,9 +1,8 @@
1
1
  import { Function } from '../function.ts';
2
- import { Verbatim } from '../verbatim.ts';
3
2
  import { RoleMessage } from './message.ts';
4
- export declare class PartsValidator<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> {
5
- validate(message: RoleMessage.Ai<fdu, vdu>): void;
3
+ export declare class PartsValidator<in out fdu extends Function.Decl.Proto> {
4
+ validate(message: RoleMessage.Ai<fdu>): void;
6
5
  }
7
6
  export declare namespace PartsValidator {
8
- type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = PartsValidator<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
7
+ type From<fdm extends Function.Decl.Map.Proto> = PartsValidator<Function.Decl.From<fdm>>;
9
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parts-validator.js","sourceRoot":"","sources":["../../src/engine/parts-validator.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C,MAAM,OAAO,cAAc;IAKhB,QAAQ,CACX,OAAiC;QAEjC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC/E,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IAC3E,CAAC;CAEJ"}
1
+ {"version":3,"file":"parts-validator.js","sourceRoot":"","sources":["../../src/engine/parts-validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAI/C,MAAM,OAAO,cAAc;IAIhB,QAAQ,CACX,OAA4B;QAE5B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,WAAW,CAAC,gBAAgB,CAAC,CAAC;QAC/E,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAAE,MAAM,IAAI,WAAW,CAAC,WAAW,CAAC,CAAC;IAC3E,CAAC;CAEJ"}
@@ -2,12 +2,11 @@ import { Function } from '../function.ts';
2
2
  import { type InferenceContext } from '../inference-context.ts';
3
3
  import { Session } from './session.ts';
4
4
  import { RoleMessage } from './message.ts';
5
- import { Verbatim } from '../verbatim.ts';
6
- export declare class Recoverable<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> extends SyntaxError {
7
- protected response: RoleMessage.Ai<fdu, vdu>;
8
- protected rejection: RoleMessage.User<never>;
9
- constructor(response: RoleMessage.Ai<fdu, vdu>, rejection: RoleMessage.User<never>, ...rest: ConstructorParameters<typeof SyntaxError>);
10
- resume(): RoleMessage.Ai<fdu, vdu>;
11
- recover(): RoleMessage.User<never>;
12
- static recover<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto>(wfctx: InferenceContext, session: Session<fdu, vdu>, next: () => Promise<RoleMessage.Ai<fdu, vdu>>): Promise<RoleMessage.Ai<fdu, vdu>>;
5
+ export declare class Recoverable<in out fdu extends Function.Decl.Proto> extends SyntaxError {
6
+ protected response: RoleMessage.Ai<fdu>;
7
+ protected rejection: RoleMessage.User<fdu>;
8
+ constructor(response: RoleMessage.Ai<fdu>, rejection: RoleMessage.User<fdu>, ...rest: ConstructorParameters<typeof SyntaxError>);
9
+ resume(): RoleMessage.Ai<fdu>;
10
+ recover(): RoleMessage.User<fdu>;
11
+ static recover<fdu extends Function.Decl.Proto>(wfctx: InferenceContext, session: Session<fdu>, next: () => Promise<RoleMessage.Ai<fdu>>): Promise<RoleMessage.Ai<fdu>>;
13
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"recoverable.js","sourceRoot":"","sources":["../../src/engine/recoverable.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,WAGX,SAAQ,WAAW;IAEH;IACA;IAFd,YACc,QAAkC,EAClC,SAAkC,EAC5C,GAAG,IAA+C;QAElD,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAJL,aAAQ,GAAR,QAAQ,CAA0B;QAClC,cAAS,GAAT,SAAS,CAAyB;IAIhD,CAAC;IACM,MAAM;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACM,OAAO;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,OAAO,CAIvB,KAAuB,EACvB,OAA0B,EAC1B,IAA6C;QAE7C,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC,CAAA,CAAC;;gBAAM,MAAM,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,CAA0B,CAAC;YAC/C,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;CACJ"}
1
+ {"version":3,"file":"recoverable.js","sourceRoot":"","sources":["../../src/engine/recoverable.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,WAEX,SAAQ,WAAW;IAEH;IACA;IAFd,YACc,QAA6B,EAC7B,SAAgC,EAC1C,GAAG,IAA+C;QAElD,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;QAJL,aAAQ,GAAR,QAAQ,CAAqB;QAC7B,cAAS,GAAT,SAAS,CAAuB;IAI9C,CAAC;IACM,MAAM;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IACM,OAAO;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,OAAO,CAGvB,KAAuB,EACvB,OAAqB,EACrB,IAAwC;QAExC,IAAI,CAAC;YACD,OAAO,MAAM,IAAI,EAAE,CAAC;QACxB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC,CAAA,CAAC;;gBAAM,MAAM,CAAC,CAAC;YAC9C,MAAM,WAAW,GAAG,CAAqB,CAAC;YAC1C,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,MAAM,CAAC,CAAC;QACZ,CAAC;IACL,CAAC;CACJ"}
@@ -1,14 +1,13 @@
1
1
  import { Function } from '../function.ts';
2
- import { Verbatim } from '../verbatim.ts';
3
2
  import { RoleMessage } from './message.ts';
4
- export interface Session<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> {
5
- chatMessages: Session.ChatMessage<fdu, vdu>[];
3
+ export interface Session<in out fdu extends Function.Decl.Proto> {
4
+ chatMessages: Session.ChatMessage<fdu>[];
6
5
  developerMessage?: RoleMessage.Developer;
7
6
  }
8
7
  export declare namespace Session {
9
- type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Session<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
10
- type ChatMessage<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto> = RoleMessage.User<fdu> | RoleMessage.Ai<fdu, vdu>;
8
+ type From<fdm extends Function.Decl.Map.Proto> = Session<Function.Decl.From<fdm>>;
9
+ type ChatMessage<fdu extends Function.Decl.Proto> = RoleMessage.User<fdu> | RoleMessage.Ai<fdu>;
11
10
  namespace ChatMessage {
12
- type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = ChatMessage<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
11
+ type From<fdm extends Function.Decl.Map.Proto> = ChatMessage<Function.Decl.From<fdm>>;
13
12
  }
14
13
  }
@@ -0,0 +1,14 @@
1
+ import { ToolChoice } from '../tool-choice.ts';
2
+ import { Function } from '../function.ts';
3
+ import { RoleMessage } from './message.ts';
4
+ export declare class ToolChoiceValidator<in out fdu extends Function.Decl.Proto> {
5
+ protected toolChoice: ToolChoice;
6
+ constructor(options: ToolChoiceValidator.Options);
7
+ validate(aiMessage: RoleMessage.Ai<fdu>): RoleMessage.User<fdu> | void;
8
+ }
9
+ export declare namespace ToolChoiceValidator {
10
+ type From<fdm extends Function.Decl.Map.Proto> = ToolChoiceValidator<Function.Decl.From<fdm>>;
11
+ interface Options {
12
+ toolChoice: ToolChoice;
13
+ }
14
+ }
@@ -0,0 +1,44 @@
1
+ import { ToolChoice } from "../tool-choice.js";
2
+ import { Function } from "../function.js";
3
+ import { RoleMessage } from "./message.js";
4
+ import * as XmlCodec from "../xml.js";
5
+ export class ToolChoiceValidator {
6
+ toolChoice;
7
+ constructor(options) {
8
+ this.toolChoice = options.toolChoice;
9
+ }
10
+ validate(aiMessage) {
11
+ const fcalls = aiMessage.getFunctionCalls();
12
+ const fress = fcalls.map(fcall => Function.Response.Failed.of({
13
+ id: fcall.id,
14
+ name: fcall.name,
15
+ error: XmlCodec.System.encode('Cancelled by system.'),
16
+ }));
17
+ if (this.toolChoice === ToolChoice.REQUIRED) {
18
+ if (fcalls.length) { }
19
+ else
20
+ return new RoleMessage.User([
21
+ RoleMessage.User.Part.Text.paragraph(XmlCodec.System.encode(`Error: Function call required, but not found.`)),
22
+ ]);
23
+ }
24
+ else if (this.toolChoice === ToolChoice.ANYONE) {
25
+ if (!fcalls.length)
26
+ return new RoleMessage.User([
27
+ RoleMessage.User.Part.Text.paragraph(XmlCodec.System.encode(`Error: Function call required, but not found.`)),
28
+ ]);
29
+ if (fcalls.length > 1)
30
+ return new RoleMessage.User([
31
+ ...fress,
32
+ RoleMessage.User.Part.Text.paragraph(XmlCodec.System.encode(`Error: Only 1 function call allowed, but multiple found.`)),
33
+ ]);
34
+ }
35
+ else if (this.toolChoice === ToolChoice.NONE) {
36
+ if (fcalls.length)
37
+ return new RoleMessage.User([
38
+ ...fress,
39
+ RoleMessage.User.Part.Text.paragraph(XmlCodec.System.encode(`Error: No function call allowed.`)),
40
+ ]);
41
+ }
42
+ }
43
+ }
44
+ //# sourceMappingURL=tool-choice-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-choice-validator.js","sourceRoot":"","sources":["../../src/engine/tool-choice-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AAGtC,MAAM,OAAO,mBAAmB;IAGlB,UAAU,CAAa;IACjC,YAAmB,OAAoC;QACnD,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACzC,CAAC;IAEM,QAAQ,CACX,SAA8B;QAE9B,MAAM,MAAM,GAAG,SAAS,CAAC,gBAAgB,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CACpB,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACjC,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC;SACZ,CAAC,CACjD,CAAC;QAEF,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA,CAAC;;gBACjB,OAAO,IAAI,WAAW,CAAC,IAAI,CAAM;oBAC7B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAC1E;iBACJ,CAAC,CAAC;QAEX,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YAC/C,IAAI,CAAC,MAAM,CAAC,MAAM;gBACd,OAAO,IAAI,WAAW,CAAC,IAAI,CAAQ;oBAC/B,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,+CAA+C,CAAC,CAC1E;iBACJ,CAAC,CAAC;YACP,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;gBACjB,OAAO,IAAI,WAAW,CAAC,IAAI,CAAM;oBAC7B,GAAG,KAAK;oBACR,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,0DAA0D,CAAC,CACrF;iBACJ,CAAC,CAAC;QAEX,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,EAAE,CAAC;YAC7C,IAAI,MAAM,CAAC,MAAM;gBACb,OAAO,IAAI,WAAW,CAAC,IAAI,CAAM;oBAC7B,GAAG,KAAK;oBACR,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAChC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAC7D;iBACJ,CAAC,CAAC;QACX,CAAC;IACL,CAAC;CACJ"}
@@ -2,7 +2,6 @@ import { Function } from '../function.ts';
2
2
  import { type InferenceContext } from '../inference-context.ts';
3
3
  import { Session } from './session.ts';
4
4
  import { RoleMessage } from './message.ts';
5
- import { Verbatim } from '../verbatim.ts';
6
- export interface Transport<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
7
- fetch(wfctx: InferenceContext, session: Session.From<fdm, vdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm, vdm>>;
5
+ export interface Transport<in out fdm extends Function.Decl.Map.Proto> {
6
+ fetch(wfctx: InferenceContext, session: Session.From<fdm>, signal?: AbortSignal): Promise<RoleMessage.Ai.From<fdm>>;
8
7
  }
package/build/engine.d.ts CHANGED
@@ -5,13 +5,12 @@ import { Dispatcher } from 'undici';
5
5
  import { type InferenceContext } from './inference-context.ts';
6
6
  import * as SessionModule from './engine/session.ts';
7
7
  import * as MessageModule from './engine/message.ts';
8
- import { Verbatim } from './verbatim.ts';
9
8
  import { PartsValidator } from './engine/parts-validator.ts';
10
9
  import { Recoverable } from './engine/recoverable.ts';
11
10
  import { Middleware } from './engine/middleware.ts';
12
- import * as StructuringValidatorModule from './engine/structuring-validator.ts';
11
+ import * as ToolChoiceValidatorModule from './engine/tool-choice-validator.ts';
13
12
  import * as EngineTransportModule from './engine/transport.ts';
14
- import { StructuringChoice } from './structuring-choice.ts';
13
+ import { ToolChoice } from './tool-choice.ts';
15
14
  export interface Pricing {
16
15
  inputPrice: number;
17
16
  cachePrice: number;
@@ -30,68 +29,66 @@ export interface InferenceOptions {
30
29
  timeout?: number;
31
30
  retry: number;
32
31
  }
33
- export type Engine<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Engine.Instance<fdm, vdm>;
32
+ export type Engine<fdm extends Function.Decl.Map.Proto> = Engine.Instance<fdm>;
34
33
  export declare namespace Engine {
35
- abstract class Instance<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
34
+ abstract class Instance<in out fdm extends Function.Decl.Map.Proto> {
36
35
  protected providerSpecs: ProviderSpecs;
37
36
  protected inferenceOptions: InferenceOptions;
38
37
  name: string;
39
38
  pricing: Pricing;
40
39
  fdm: fdm;
41
- vdm: vdm;
42
40
  protected throttle: Throttle;
43
- protected structuringChoice: StructuringChoice;
44
- protected structuringValidator: Engine.StructuringValidator.From<fdm, vdm>;
45
- protected partsValidator: PartsValidator.From<fdm, vdm>;
46
- protected abstract transport: Engine.Transport<fdm, vdm>;
47
- constructor(options: Engine.Options<fdm, vdm>);
41
+ protected toolChoice: ToolChoice;
42
+ protected toolChoiceValidator: Engine.ToolChoiceValidator.From<fdm>;
43
+ protected partsValidator: PartsValidator.From<fdm>;
44
+ protected abstract transport: Engine.Transport<fdm>;
45
+ constructor(options: Engine.Options<fdm>);
48
46
  /**
49
47
  * @throws {@link InferenceTimeout} 推理超时
50
48
  * @throws {@link SyntaxError} 模型抽风
51
49
  * @throws {@link Recoverable} 模型抽风但可恢复
52
50
  * @throws {@link TypeError} 网络故障
53
51
  */
54
- protected infer(wfctx: InferenceContext, session: Session.From<fdm, vdm>): Promise<RoleMessage.Ai.From<fdm, vdm>>;
52
+ protected infer(wfctx: InferenceContext, session: Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
55
53
  /**
56
54
  * @throws {@link InferenceTimeout} 推理超时
57
55
  * @throws {@link SyntaxError} 模型抽风
58
56
  * @throws {@link TypeError} 网络故障
59
57
  */
60
- stateless(wfctx: InferenceContext, session: Session.From<fdm, vdm>): Promise<RoleMessage.Ai.From<fdm, vdm>>;
58
+ stateless(wfctx: InferenceContext, session: Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
61
59
  /**
62
60
  * @throws {@link InferenceTimeout} 推理超时
63
61
  * @throws {@link SyntaxError} 模型抽风
64
62
  * @throws {@link TypeError} 网络故障
65
63
  * @param session mutable
66
64
  */
67
- stateful(wfctx: InferenceContext, session: Session.From<fdm, vdm>): Promise<RoleMessage.Ai.From<fdm, vdm>>;
68
- abstract clone(): Engine<fdm, vdm>;
69
- protected middlewaresStateless: Middleware.From<fdm, vdm>[];
70
- useStateless(middleware: Middleware.From<fdm, vdm>): Engine<fdm, vdm>;
71
- protected middlewaresStateful: Middleware.From<fdm, vdm>[];
72
- useStateful(middleware: Middleware.From<fdm, vdm>): Engine<fdm, vdm>;
73
- protected compose(middlewares: Middleware.From<fdm, vdm>[]): Middleware.From<fdm, vdm>;
65
+ stateful(wfctx: InferenceContext, session: Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
66
+ abstract clone(): Engine<fdm>;
67
+ protected middlewaresStateless: Middleware.From<fdm>[];
68
+ useStateless(middleware: Middleware.From<fdm>): Engine<fdm>;
69
+ protected middlewaresStateful: Middleware.From<fdm>[];
70
+ useStateful(middleware: Middleware.From<fdm>): Engine<fdm>;
71
+ protected compose(middlewares: Middleware.From<fdm>[]): Middleware.From<fdm>;
74
72
  /**
75
73
  * @param session mutable
76
74
  */
77
- agentloop(wfctx: InferenceContext, session: Session.From<fdm, vdm>, fnm: Function.Map<fdm>, vhm: Verbatim.Handler.Map<vdm>, limit?: number): AsyncGenerator<string, string, void>;
75
+ agentloop(wfctx: InferenceContext, session: Session.From<fdm>, fnm: Function.Map<fdm>, limit?: number): AsyncGenerator<string, string, void>;
78
76
  }
79
77
  class FunctionCallLimitExceeded extends Error {
80
78
  }
81
- interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
79
+ interface Options<in out fdm extends Function.Decl.Map.Proto> {
82
80
  throttle: Throttle;
83
81
  endpointSpec: EndpointSpec;
84
82
  functionDeclarationMap: fdm;
85
- verbatimDeclarationMap: vdm;
86
- structuringChoice?: StructuringChoice;
83
+ toolChoice?: ToolChoice;
87
84
  providerRetry?: number;
88
85
  inferenceRetry?: number;
89
86
  }
90
87
  interface Create {
91
- <fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto>(options: Engine.Options<fdm, vdm>): Engine<fdm, vdm>;
88
+ <fdm extends Function.Decl.Map.Proto>(options: Engine.Options<fdm>): Engine<fdm>;
92
89
  }
93
90
  export import Transport = EngineTransportModule.Transport;
94
- export import StructuringValidator = StructuringValidatorModule.StructuringValidator;
91
+ export import ToolChoiceValidator = ToolChoiceValidatorModule.ToolChoiceValidator;
95
92
  export import Session = SessionModule.Session;
96
93
  export import RoleMessage = MessageModule.RoleMessage;
97
94
  }
package/build/engine.js CHANGED
@@ -5,8 +5,8 @@ import { loggers } from "./telemetry.js";
5
5
  import * as MessageModule from "./engine/message.js";
6
6
  import { PartsValidator } from "./engine/parts-validator.js";
7
7
  import { Recoverable } from "./engine/recoverable.js";
8
- import * as StructuringValidatorModule from "./engine/structuring-validator.js";
9
- import { StructuringChoice } from "./structuring-choice.js";
8
+ import * as ToolChoiceValidatorModule from "./engine/tool-choice-validator.js";
9
+ import { ToolChoice } from "./tool-choice.js";
10
10
  export var Engine;
11
11
  (function (Engine) {
12
12
  class Instance {
@@ -15,10 +15,9 @@ export var Engine;
15
15
  name;
16
16
  pricing;
17
17
  fdm;
18
- vdm;
19
18
  throttle;
20
- structuringChoice;
21
- structuringValidator;
19
+ toolChoice;
20
+ toolChoiceValidator;
22
21
  partsValidator;
23
22
  constructor(options) {
24
23
  const proxyUrl = options.endpointSpec.proxy || env.https_proxy || env.HTTPS_PROXY;
@@ -52,11 +51,10 @@ export var Engine;
52
51
  cachePrice: options.endpointSpec.cachePrice ?? options.endpointSpec.inputPrice ?? 0,
53
52
  };
54
53
  this.fdm = options.functionDeclarationMap;
55
- this.vdm = options.verbatimDeclarationMap;
56
- this.structuringChoice = options.structuringChoice ?? StructuringChoice.AUTO;
54
+ this.toolChoice = options.toolChoice ?? ToolChoice.AUTO;
57
55
  this.throttle = options.throttle;
58
56
  this.partsValidator = new PartsValidator();
59
- this.structuringValidator = new Engine.StructuringValidator({ structuringChoice: this.structuringChoice });
57
+ this.toolChoiceValidator = new Engine.ToolChoiceValidator({ toolChoice: this.toolChoice });
60
58
  }
61
59
  /**
62
60
  * @throws {@link InferenceTimeout} 推理超时
@@ -75,7 +73,7 @@ export var Engine;
75
73
  try {
76
74
  const aiMessage = await this.transport.fetch(wfctx, session, signal);
77
75
  this.partsValidator.validate(aiMessage);
78
- const rejection = this.structuringValidator.validate(aiMessage);
76
+ const rejection = this.toolChoiceValidator.validate(aiMessage);
79
77
  if (rejection)
80
78
  throw new Recoverable(aiMessage, rejection);
81
79
  return aiMessage;
@@ -192,21 +190,17 @@ export var Engine;
192
190
  /**
193
191
  * @param session mutable
194
192
  */
195
- async *agentloop(wfctx, session, fnm, vhm, limit = Number.POSITIVE_INFINITY) {
193
+ async *agentloop(wfctx, session, fnm, limit = Number.POSITIVE_INFINITY) {
196
194
  for (let i = 0; i < limit; i++) {
197
195
  const response = await this.stateful(wfctx, session);
198
- if (response.allChat())
199
- return response.getChat();
196
+ if (response.allText())
197
+ return response.getText();
200
198
  const pfress = [];
201
199
  const pvress = [];
202
200
  for (const part of response.getParts()) {
203
201
  if (part instanceof Engine.RoleMessage.Ai.Part.Text) {
204
202
  const textPart = part;
205
203
  yield textPart.text;
206
- for (const vreq of textPart.vreqs) {
207
- const vh = vhm[vreq.name];
208
- pvress.push((async () => new Engine.RoleMessage.User.Part.Text(await vh.call(vhm, vreq.args)))());
209
- }
210
204
  }
211
205
  else if (part instanceof Function.Call) {
212
206
  const fcall = part;
@@ -216,7 +210,7 @@ export var Engine;
216
210
  return Function.Response.Successful.of({
217
211
  id: fcall.id,
218
212
  name: fcall.name,
219
- text: await f.call(fnm, fcall.args),
213
+ text: await f.call(fnm, fcall.args, fcall),
220
214
  });
221
215
  }
222
216
  catch (e) {
@@ -245,7 +239,7 @@ export var Engine;
245
239
  class FunctionCallLimitExceeded extends Error {
246
240
  }
247
241
  Engine.FunctionCallLimitExceeded = FunctionCallLimitExceeded;
248
- Engine.StructuringValidator = StructuringValidatorModule.StructuringValidator;
242
+ Engine.ToolChoiceValidator = ToolChoiceValidatorModule.ToolChoiceValidator;
249
243
  Engine.RoleMessage = MessageModule.RoleMessage;
250
244
  })(Engine || (Engine = {}));
251
245
  export class InferenceTimeout extends Error {