@zimtsui/brainswitch 0.0.41 → 0.0.42

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 (77) hide show
  1. package/build/adaptor.d.ts +4 -2
  2. package/build/adaptor.js +9 -3
  3. package/build/adaptor.js.map +1 -1
  4. package/build/agentloop.d.ts +1 -1
  5. package/build/agentloop.js +2 -2
  6. package/build/agentloop.js.map +1 -1
  7. package/build/api-types/anthropic.d.ts +18 -22
  8. package/build/api-types/anthropic.js +81 -79
  9. package/build/api-types/anthropic.js.map +1 -1
  10. package/build/api-types/google.d.ts +13 -18
  11. package/build/api-types/google.js +23 -31
  12. package/build/api-types/google.js.map +1 -1
  13. package/build/api-types/openai-chat-completions.d.ts +17 -19
  14. package/build/api-types/openai-chat-completions.js +101 -96
  15. package/build/api-types/openai-chat-completions.js.map +1 -1
  16. package/build/api-types/openai-responses.d.ts +13 -13
  17. package/build/api-types/openai-responses.js +59 -56
  18. package/build/api-types/openai-responses.js.map +1 -1
  19. package/build/compatible-engine.d.ts +19 -24
  20. package/build/compatible-engine.js +54 -56
  21. package/build/compatible-engine.js.map +1 -1
  22. package/build/compatible-engines.d/aliyun.d.ts +38 -55
  23. package/build/compatible-engines.d/aliyun.js +91 -143
  24. package/build/compatible-engines.d/aliyun.js.map +1 -1
  25. package/build/compatible-engines.d/anthropic.d.ts +35 -60
  26. package/build/compatible-engines.d/anthropic.js +230 -296
  27. package/build/compatible-engines.d/anthropic.js.map +1 -1
  28. package/build/compatible-engines.d/google.d.ts +38 -59
  29. package/build/compatible-engines.d/google.js +165 -237
  30. package/build/compatible-engines.d/google.js.map +1 -1
  31. package/build/compatible-engines.d/openai-chatcompletions.d/monolith.d.ts +7 -14
  32. package/build/compatible-engines.d/openai-chatcompletions.d/monolith.js +64 -71
  33. package/build/compatible-engines.d/openai-chatcompletions.d/monolith.js.map +1 -1
  34. package/build/compatible-engines.d/openai-chatcompletions.d/stream.d.ts +10 -16
  35. package/build/compatible-engines.d/openai-chatcompletions.d/stream.js +169 -184
  36. package/build/compatible-engines.d/openai-chatcompletions.d/stream.js.map +1 -1
  37. package/build/compatible-engines.d/openai-chatcompletions.d.ts +12 -18
  38. package/build/compatible-engines.d/openai-chatcompletions.js +64 -67
  39. package/build/compatible-engines.d/openai-chatcompletions.js.map +1 -1
  40. package/build/compatible-engines.d/openai-responses.d.ts +46 -68
  41. package/build/compatible-engines.d/openai-responses.js +218 -281
  42. package/build/compatible-engines.d/openai-responses.js.map +1 -1
  43. package/build/engine.d.ts +10 -24
  44. package/build/engine.js +25 -38
  45. package/build/engine.js.map +1 -1
  46. package/build/exports.d.ts +1 -0
  47. package/build/exports.js +1 -0
  48. package/build/exports.js.map +1 -1
  49. package/build/inference-context.d.ts +1 -10
  50. package/build/inference-context.js +0 -2
  51. package/build/inference-context.js.map +1 -1
  52. package/build/native-engines.d/google/agentloop.d.ts +1 -1
  53. package/build/native-engines.d/google/agentloop.js +2 -2
  54. package/build/native-engines.d/google/agentloop.js.map +1 -1
  55. package/build/native-engines.d/google/engine.d.ts +56 -73
  56. package/build/native-engines.d/google/engine.js +262 -309
  57. package/build/native-engines.d/google/engine.js.map +1 -1
  58. package/build/native-engines.d/google/exports.d.ts +3 -2
  59. package/build/native-engines.d/google/exports.js +3 -2
  60. package/build/native-engines.d/google/exports.js.map +1 -1
  61. package/build/native-engines.d/openai-responses/agentloop.d.ts +1 -1
  62. package/build/native-engines.d/openai-responses/agentloop.js +2 -2
  63. package/build/native-engines.d/openai-responses/agentloop.js.map +1 -1
  64. package/build/native-engines.d/openai-responses/engine.d.ts +59 -78
  65. package/build/native-engines.d/openai-responses/engine.js +281 -334
  66. package/build/native-engines.d/openai-responses/engine.js.map +1 -1
  67. package/build/native-engines.d/openai-responses/exports.d.ts +4 -2
  68. package/build/native-engines.d/openai-responses/exports.js +4 -2
  69. package/build/native-engines.d/openai-responses/exports.js.map +1 -1
  70. package/build/telemetry.d.ts +6 -0
  71. package/build/telemetry.js +3 -0
  72. package/build/telemetry.js.map +1 -0
  73. package/build/throttle.d.ts +1 -1
  74. package/build/throttle.js +6 -6
  75. package/build/throttle.js.map +1 -1
  76. package/build/tsconfig.tsbuildinfo +1 -1
  77. package/package.json +2 -2
@@ -5,104 +5,109 @@ import { Ajv } from 'ajv';
5
5
  const ajv = new Ajv();
6
6
  export var OpenAIChatCompletionsEngine;
7
7
  (function (OpenAIChatCompletionsEngine) {
8
- let Base;
9
- (function (Base) {
10
- class Instance {
11
- instance;
12
- parallel;
13
- constructor(instance, options) {
14
- this.instance = instance;
15
- this.parallel = options.parallelToolCall ?? false;
16
- }
17
- convertFromFunctionCall(fc) {
18
- if (fc.id) { }
19
- else
20
- throw new Error();
21
- return {
22
- id: fc.id,
23
- type: 'function',
24
- function: {
25
- name: fc.name,
26
- arguments: JSON.stringify(fc.args),
27
- },
28
- };
29
- }
30
- convertToFunctionCall(apifc) {
31
- const fditem = this.instance.fdm[apifc.function.name];
32
- if (fditem) { }
33
- else
34
- throw new ResponseInvalid('Unknown function call', { cause: apifc });
35
- const args = (() => {
36
- try {
37
- return JSON.parse(apifc.function.arguments);
38
- }
39
- catch (e) {
40
- return new ResponseInvalid('Invalid JSON of function call', { cause: apifc });
41
- }
42
- })();
43
- if (ajv.validate(fditem.paraschema, args)) { }
44
- else
45
- throw new ResponseInvalid('Invalid function arguments', { cause: apifc });
46
- return Function.Call.create({
47
- id: apifc.id,
48
- name: apifc.function.name,
49
- args,
50
- });
51
- }
52
- convertFromFunctionResponse(fr) {
53
- if (fr.id) { }
54
- else
55
- throw new Error();
56
- return {
57
- role: 'tool',
58
- tool_call_id: fr.id,
59
- content: fr.text,
60
- };
61
- }
62
- convertFromFunctionDeclarationEntry(fdentry) {
63
- return {
64
- type: 'function',
65
- function: {
66
- name: fdentry[0],
67
- description: fdentry[1].description,
68
- strict: true,
69
- parameters: fdentry[1].paraschema,
70
- },
71
- };
72
- }
73
- convertFromToolChoice(toolChoice) {
74
- if (toolChoice === Function.ToolChoice.NONE)
75
- return 'none';
76
- else if (toolChoice === Function.ToolChoice.REQUIRED)
77
- return 'required';
78
- else if (toolChoice === Function.ToolChoice.AUTO)
79
- return 'auto';
80
- else {
81
- if (toolChoice.length === 1) { }
82
- else
83
- throw new Error();
84
- return { type: 'function', function: { name: toolChoice[0] } };
85
- }
86
- }
87
- calcCost(usage) {
88
- const cacheHitTokenCount = usage.prompt_tokens_details?.cached_tokens ?? 0;
89
- const cacheMissTokenCount = usage.prompt_tokens - cacheHitTokenCount;
90
- return this.instance.inputPrice * cacheMissTokenCount / 1e6 +
91
- this.instance.cachedPrice * cacheHitTokenCount / 1e6 +
92
- this.instance.outputPrice * usage.completion_tokens / 1e6;
93
- }
94
- extractContent(completionContent) {
95
- return completionContent;
8
+ let OwnProps;
9
+ (function (OwnProps) {
10
+ function init(options) {
11
+ return {
12
+ parallelToolCall: options.parallelToolCall ?? false,
13
+ };
14
+ }
15
+ OwnProps.init = init;
16
+ })(OwnProps = OpenAIChatCompletionsEngine.OwnProps || (OpenAIChatCompletionsEngine.OwnProps = {}));
17
+ function convertFromFunctionCall(fc) {
18
+ if (fc.id) { }
19
+ else
20
+ throw new Error();
21
+ return {
22
+ id: fc.id,
23
+ type: 'function',
24
+ function: {
25
+ name: fc.name,
26
+ arguments: JSON.stringify(fc.args),
27
+ },
28
+ };
29
+ }
30
+ OpenAIChatCompletionsEngine.convertFromFunctionCall = convertFromFunctionCall;
31
+ function convertToFunctionCall(apifc) {
32
+ const fditem = this.fdm[apifc.function.name];
33
+ if (fditem) { }
34
+ else
35
+ throw new ResponseInvalid('Unknown function call', { cause: apifc });
36
+ const args = (() => {
37
+ try {
38
+ return JSON.parse(apifc.function.arguments);
96
39
  }
97
- handleFinishReason(completion, finishReason) {
98
- if (finishReason === 'length')
99
- throw new ResponseInvalid('Token limit exceeded.', { cause: completion });
100
- if (['stop', 'tool_calls'].includes(finishReason)) { }
101
- else
102
- throw new ResponseInvalid('Abnormal finish reason', { cause: finishReason });
40
+ catch (e) {
41
+ return new ResponseInvalid('Invalid JSON of function call', { cause: apifc });
103
42
  }
43
+ })();
44
+ if (ajv.validate(fditem.paraschema, args)) { }
45
+ else
46
+ throw new ResponseInvalid('Invalid function arguments', { cause: apifc });
47
+ return Function.Call.create({
48
+ id: apifc.id,
49
+ name: apifc.function.name,
50
+ args,
51
+ });
52
+ }
53
+ OpenAIChatCompletionsEngine.convertToFunctionCall = convertToFunctionCall;
54
+ function convertFromFunctionResponse(fr) {
55
+ if (fr.id) { }
56
+ else
57
+ throw new Error();
58
+ return {
59
+ role: 'tool',
60
+ tool_call_id: fr.id,
61
+ content: fr.text,
62
+ };
63
+ }
64
+ OpenAIChatCompletionsEngine.convertFromFunctionResponse = convertFromFunctionResponse;
65
+ function convertFromFunctionDeclarationEntry(fdentry) {
66
+ return {
67
+ type: 'function',
68
+ function: {
69
+ name: fdentry[0],
70
+ description: fdentry[1].description,
71
+ strict: true,
72
+ parameters: fdentry[1].paraschema,
73
+ },
74
+ };
75
+ }
76
+ OpenAIChatCompletionsEngine.convertFromFunctionDeclarationEntry = convertFromFunctionDeclarationEntry;
77
+ function convertFromToolChoice(toolChoice) {
78
+ if (toolChoice === Function.ToolChoice.NONE)
79
+ return 'none';
80
+ else if (toolChoice === Function.ToolChoice.REQUIRED)
81
+ return 'required';
82
+ else if (toolChoice === Function.ToolChoice.AUTO)
83
+ return 'auto';
84
+ else {
85
+ if (toolChoice.length === 1) { }
86
+ else
87
+ throw new Error();
88
+ return { type: 'function', function: { name: toolChoice[0] } };
104
89
  }
105
- Base.Instance = Instance;
106
- })(Base = OpenAIChatCompletionsEngine.Base || (OpenAIChatCompletionsEngine.Base = {}));
90
+ }
91
+ OpenAIChatCompletionsEngine.convertFromToolChoice = convertFromToolChoice;
92
+ function calcCost(usage) {
93
+ const cacheHitTokenCount = usage.prompt_tokens_details?.cached_tokens ?? 0;
94
+ const cacheMissTokenCount = usage.prompt_tokens - cacheHitTokenCount;
95
+ return this.inputPrice * cacheMissTokenCount / 1e6 +
96
+ this.cachePrice * cacheHitTokenCount / 1e6 +
97
+ this.outputPrice * usage.completion_tokens / 1e6;
98
+ }
99
+ OpenAIChatCompletionsEngine.calcCost = calcCost;
100
+ function extractContent(completionContent) {
101
+ return completionContent;
102
+ }
103
+ OpenAIChatCompletionsEngine.extractContent = extractContent;
104
+ function handleFinishReason(completion, finishReason) {
105
+ if (finishReason === 'length')
106
+ throw new ResponseInvalid('Token limit exceeded.', { cause: completion });
107
+ if (['stop', 'tool_calls'].includes(finishReason)) { }
108
+ else
109
+ throw new ResponseInvalid('Abnormal finish reason', { cause: finishReason });
110
+ }
111
+ OpenAIChatCompletionsEngine.handleFinishReason = handleFinishReason;
107
112
  })(OpenAIChatCompletionsEngine || (OpenAIChatCompletionsEngine = {}));
108
113
  //# sourceMappingURL=openai-chat-completions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai-chat-completions.js","sourceRoot":"","sources":["../../src/api-types/openai-chat-completions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-chat-completions.js","sourceRoot":"","sources":["../../src/api-types/openai-chat-completions.ts"],"names":[],"mappings":"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"}
@@ -2,22 +2,22 @@ import OpenAI from 'openai';
2
2
  import { Function } from '../function.ts';
3
3
  import { type Engine } from '../engine.ts';
4
4
  export declare namespace OpenAIResponsesEngine {
5
- interface Base<in out fdm extends Function.Declaration.Map> {
5
+ interface Options<in out fdm extends Function.Declaration.Map> extends Engine.Options<fdm> {
6
+ }
7
+ interface OwnProps {
8
+ parallelToolCall: boolean;
9
+ }
10
+ namespace OwnProps {
11
+ function init<fdm extends Function.Declaration.Map>(options: Options<fdm>): OwnProps;
12
+ }
13
+ interface Underhood<in out fdm extends Function.Declaration.Map> extends Engine.Underhood<fdm>, OwnProps {
6
14
  convertFromFunctionResponse(fr: Function.Response.Distributive<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseInputItem.FunctionCallOutput;
7
15
  calcCost(usage: OpenAI.Responses.ResponseUsage): number;
8
16
  convertFromFunctionDeclarationEntry(fdentry: Function.Declaration.Entry.From<fdm>): OpenAI.Responses.FunctionTool;
9
17
  convertToFunctionCall(apifc: OpenAI.Responses.ResponseFunctionToolCall): Function.Call.Distributive<Function.Declaration.From<fdm>>;
10
18
  }
11
- interface Instance<in out fdm extends Function.Declaration.Map> extends Engine.Instance<fdm>, OpenAIResponsesEngine.Base<fdm> {
12
- }
13
- namespace Base {
14
- class Instance<fdm extends Function.Declaration.Map> {
15
- protected instance: OpenAIResponsesEngine.Instance<fdm>;
16
- constructor(instance: OpenAIResponsesEngine.Instance<fdm>);
17
- convertFromFunctionResponse(fr: Function.Response.Distributive<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseInputItem.FunctionCallOutput;
18
- calcCost(usage: OpenAI.Responses.ResponseUsage): number;
19
- convertFromFunctionDeclarationEntry(fdentry: Function.Declaration.Entry.From<fdm>): OpenAI.Responses.FunctionTool;
20
- convertToFunctionCall(apifc: OpenAI.Responses.ResponseFunctionToolCall): Function.Call.Distributive<Function.Declaration.From<fdm>>;
21
- }
22
- }
19
+ function convertFromFunctionResponse<fdm extends Function.Declaration.Map>(fr: Function.Response.Distributive<Function.Declaration.From<fdm>>): OpenAI.Responses.ResponseInputItem.FunctionCallOutput;
20
+ function calcCost<fdm extends Function.Declaration.Map>(this: Engine.Underhood<fdm>, usage: OpenAI.Responses.ResponseUsage): number;
21
+ function convertFromFunctionDeclarationEntry<fdm extends Function.Declaration.Map>(fdentry: Function.Declaration.Entry.From<fdm>): OpenAI.Responses.FunctionTool;
22
+ function convertToFunctionCall<fdm extends Function.Declaration.Map>(this: Engine.Underhood<fdm>, apifc: OpenAI.Responses.ResponseFunctionToolCall): Function.Call.Distributive<Function.Declaration.From<fdm>>;
23
23
  }
@@ -6,63 +6,66 @@ import {} from "../engine.js";
6
6
  const ajv = new Ajv();
7
7
  export var OpenAIResponsesEngine;
8
8
  (function (OpenAIResponsesEngine) {
9
- let Base;
10
- (function (Base) {
11
- class Instance {
12
- instance;
13
- constructor(instance) {
14
- this.instance = instance;
15
- }
16
- convertFromFunctionResponse(fr) {
17
- if (fr.id) { }
18
- else
19
- throw new Error();
20
- return {
21
- type: 'function_call_output',
22
- call_id: fr.id,
23
- output: fr.text,
24
- };
25
- }
26
- calcCost(usage) {
27
- const cacheHitTokenCount = usage.input_tokens_details.cached_tokens;
28
- const cacheMissTokenCount = usage.input_tokens - cacheHitTokenCount;
29
- return this.instance.inputPrice * cacheMissTokenCount / 1e6 +
30
- this.instance.cachedPrice * cacheHitTokenCount / 1e6 +
31
- this.instance.outputPrice * usage.output_tokens / 1e6;
32
- }
33
- convertFromFunctionDeclarationEntry(fdentry) {
34
- return {
35
- name: fdentry[0],
36
- description: fdentry[1].description,
37
- parameters: fdentry[1].paraschema,
38
- strict: true,
39
- type: 'function',
40
- };
9
+ let OwnProps;
10
+ (function (OwnProps) {
11
+ function init(options) {
12
+ return {
13
+ parallelToolCall: options.parallelToolCall ?? false,
14
+ };
15
+ }
16
+ OwnProps.init = init;
17
+ })(OwnProps = OpenAIResponsesEngine.OwnProps || (OpenAIResponsesEngine.OwnProps = {}));
18
+ function convertFromFunctionResponse(fr) {
19
+ if (fr.id) { }
20
+ else
21
+ throw new Error();
22
+ return {
23
+ type: 'function_call_output',
24
+ call_id: fr.id,
25
+ output: fr.text,
26
+ };
27
+ }
28
+ OpenAIResponsesEngine.convertFromFunctionResponse = convertFromFunctionResponse;
29
+ function calcCost(usage) {
30
+ const cacheHitTokenCount = usage.input_tokens_details.cached_tokens;
31
+ const cacheMissTokenCount = usage.input_tokens - cacheHitTokenCount;
32
+ return this.inputPrice * cacheMissTokenCount / 1e6 +
33
+ this.cachePrice * cacheHitTokenCount / 1e6 +
34
+ this.outputPrice * usage.output_tokens / 1e6;
35
+ }
36
+ OpenAIResponsesEngine.calcCost = calcCost;
37
+ function convertFromFunctionDeclarationEntry(fdentry) {
38
+ return {
39
+ name: fdentry[0],
40
+ description: fdentry[1].description,
41
+ parameters: fdentry[1].paraschema,
42
+ strict: true,
43
+ type: 'function',
44
+ };
45
+ }
46
+ OpenAIResponsesEngine.convertFromFunctionDeclarationEntry = convertFromFunctionDeclarationEntry;
47
+ function convertToFunctionCall(apifc) {
48
+ const fditem = this.fdm[apifc.name];
49
+ if (fditem) { }
50
+ else
51
+ throw new ResponseInvalid('Unknown function call', { cause: apifc });
52
+ const args = (() => {
53
+ try {
54
+ return JSON.parse(apifc.arguments);
41
55
  }
42
- convertToFunctionCall(apifc) {
43
- const fditem = this.instance.fdm[apifc.name];
44
- if (fditem) { }
45
- else
46
- throw new ResponseInvalid('Unknown function call', { cause: apifc });
47
- const args = (() => {
48
- try {
49
- return JSON.parse(apifc.arguments);
50
- }
51
- catch (e) {
52
- return new ResponseInvalid('Invalid JSON of function call', { cause: apifc });
53
- }
54
- })();
55
- if (ajv.validate(fditem.paraschema, args)) { }
56
- else
57
- throw new ResponseInvalid('Function call not conforming to schema', { cause: apifc });
58
- return Function.Call.create({
59
- id: apifc.call_id,
60
- name: apifc.name,
61
- args,
62
- });
56
+ catch (e) {
57
+ return new ResponseInvalid('Invalid JSON of function call', { cause: apifc });
63
58
  }
64
- }
65
- Base.Instance = Instance;
66
- })(Base = OpenAIResponsesEngine.Base || (OpenAIResponsesEngine.Base = {}));
59
+ })();
60
+ if (ajv.validate(fditem.paraschema, args)) { }
61
+ else
62
+ throw new ResponseInvalid('Function call not conforming to schema', { cause: apifc });
63
+ return Function.Call.create({
64
+ id: apifc.call_id,
65
+ name: apifc.name,
66
+ args,
67
+ });
68
+ }
69
+ OpenAIResponsesEngine.convertToFunctionCall = convertToFunctionCall;
67
70
  })(OpenAIResponsesEngine || (OpenAIResponsesEngine = {}));
68
71
  //# sourceMappingURL=openai-responses.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../../src/api-types/openai-responses.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai-responses.js","sourceRoot":"","sources":["../../src/api-types/openai-responses.ts"],"names":[],"mappings":"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"}
@@ -4,16 +4,16 @@ import { type InferenceContext } from './inference-context.ts';
4
4
  import { type Engine } from './engine.ts';
5
5
  export interface CompatibleEngine<in out fdm extends Function.Declaration.Map> extends Engine {
6
6
  /**
7
- * @throws {@link UserAbortion} 用户中止
7
+ * @throws {@link USER_ABORTION} 用户中止
8
8
  * @throws {@link InferenceTimeout} 推理超时
9
9
  * @throws {@link ResponseInvalid} 模型抽风
10
10
  * @throws {TypeError} 网络故障
11
11
  */
12
- stateless(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
12
+ stateless(wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
13
13
  /**
14
14
  * @param session mutable
15
15
  */
16
- stateful(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
16
+ stateful(wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
17
17
  appendUserMessage(session: Session<Function.Declaration.From<fdm>>, message: RoleMessage.User<Function.Declaration.From<fdm>>): Session<Function.Declaration.From<fdm>>;
18
18
  /**
19
19
  * @param session mutable
@@ -21,36 +21,31 @@ export interface CompatibleEngine<in out fdm extends Function.Declaration.Map> e
21
21
  pushUserMessage(session: Session<Function.Declaration.From<fdm>>, message: RoleMessage.User<Function.Declaration.From<fdm>>): Session<Function.Declaration.From<fdm>>;
22
22
  }
23
23
  export declare namespace CompatibleEngine {
24
- interface Options<in out fdm extends Function.Declaration.Map> extends Engine.Options<fdm>, CompatibleEngine.Options.Tools<fdm> {
24
+ interface Options<in out fdm extends Function.Declaration.Map> extends Engine.Options<fdm>, Options.Tools<fdm> {
25
25
  }
26
26
  namespace Options {
27
27
  interface Tools<in out fdm extends Function.Declaration.Map> extends Engine.Options.Tools<fdm> {
28
28
  toolChoice?: Function.ToolChoice<fdm>;
29
29
  }
30
30
  }
31
- interface Base<in out fdm extends Function.Declaration.Map> {
31
+ interface OwnProps<in out fdm extends Function.Declaration.Map> {
32
32
  toolChoice: Function.ToolChoice<fdm>;
33
- stateless(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
34
- stateful(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
33
+ }
34
+ namespace OwnProps {
35
+ function init<fdm extends Function.Declaration.Map>(options: CompatibleEngine.Options<fdm>): OwnProps<fdm>;
36
+ }
37
+ interface Underhood<in out fdm extends Function.Declaration.Map> extends Engine.Underhood<fdm>, CompatibleEngine<fdm>, OwnProps<fdm> {
38
+ parallelToolCall: boolean;
39
+ fetch(wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, signal?: AbortSignal): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
40
+ stateless(wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
41
+ stateful(wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
35
42
  appendUserMessage(session: Session<Function.Declaration.From<fdm>>, message: RoleMessage.User<Function.Declaration.From<fdm>>): Session<Function.Declaration.From<fdm>>;
36
43
  pushUserMessage(session: Session<Function.Declaration.From<fdm>>, message: RoleMessage.User<Function.Declaration.From<fdm>>): Session<Function.Declaration.From<fdm>>;
37
44
  validateToolCallsByToolChoice(toolCalls: Function.Call.Distributive<Function.Declaration.From<fdm>>[]): void;
38
45
  }
39
- interface Instance<in out fdm extends Function.Declaration.Map> extends Engine.Instance<fdm>, CompatibleEngine.Base<fdm>, CompatibleEngine<fdm> {
40
- parallel: boolean;
41
- fetch(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>, signal?: AbortSignal): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
42
- }
43
- namespace Base {
44
- class Instance<in out fdm extends Function.Declaration.Map> implements CompatibleEngine.Base<fdm> {
45
- protected instance: CompatibleEngine.Instance<fdm>;
46
- toolChoice: Function.ToolChoice<fdm>;
47
- constructor(instance: CompatibleEngine.Instance<fdm>, options: CompatibleEngine.Options<fdm>);
48
- stateless(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
49
- stateful(ctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
50
- appendUserMessage(session: Session<Function.Declaration.From<fdm>>, message: RoleMessage.User<Function.Declaration.From<fdm>>): Session<Function.Declaration.From<fdm>>;
51
- pushUserMessage(session: Session<Function.Declaration.From<fdm>>, message: RoleMessage.User<Function.Declaration.From<fdm>>): Session<Function.Declaration.From<fdm>>;
52
- validateToolCallsByToolChoice(toolCalls: Function.Call.Distributive<Function.Declaration.From<fdm>>[]): void;
53
- }
54
- }
55
- function validateToolCallsByToolChoice<fdm extends Function.Declaration.Map>(toolCalls: Function.Call.Distributive<Function.Declaration.From<fdm>>[], toolChoice: Function.ToolChoice<fdm>): void;
46
+ function stateless<fdm extends Function.Declaration.Map>(this: CompatibleEngine.Underhood<fdm>, wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
47
+ function stateful<fdm extends Function.Declaration.Map>(this: CompatibleEngine.Underhood<fdm>, wfctx: InferenceContext, session: Session<Function.Declaration.From<fdm>>): Promise<RoleMessage.Ai<Function.Declaration.From<fdm>>>;
48
+ function appendUserMessage<fdm extends Function.Declaration.Map>(this: CompatibleEngine.Underhood<fdm>, session: Session<Function.Declaration.From<fdm>>, message: RoleMessage.User<Function.Declaration.From<fdm>>): Session<Function.Declaration.From<fdm>>;
49
+ function pushUserMessage<fdm extends Function.Declaration.Map>(this: CompatibleEngine.Underhood<fdm>, session: Session<Function.Declaration.From<fdm>>, message: RoleMessage.User<Function.Declaration.From<fdm>>): Session<Function.Declaration.From<fdm>>;
50
+ function validateToolCallsByToolChoice<fdm extends Function.Declaration.Map>(this: CompatibleEngine.Underhood<fdm>, toolCalls: Function.Call.Distributive<Function.Declaration.From<fdm>>[]): void;
56
51
  }
@@ -1,67 +1,65 @@
1
1
  import { RoleMessage } from "./session.js";
2
2
  import { Function } from "./function.js";
3
3
  import {} from "./inference-context.js";
4
- import { UserAbortion, InferenceTimeout, ResponseInvalid } from "./engine.js";
4
+ import { USER_ABORTION, InferenceTimeout, ResponseInvalid } from "./engine.js";
5
5
  export var CompatibleEngine;
6
6
  (function (CompatibleEngine) {
7
- let Base;
8
- (function (Base) {
9
- class Instance {
10
- instance;
11
- toolChoice;
12
- constructor(instance, options) {
13
- this.instance = instance;
14
- this.toolChoice = options.toolChoice ?? Function.ToolChoice.AUTO;
15
- }
16
- async stateless(ctx, session) {
17
- for (let retry = 0;; retry++) {
18
- const signalTimeout = this.instance.timeout ? AbortSignal.timeout(this.instance.timeout) : undefined;
19
- const signal = ctx.signal && signalTimeout ? AbortSignal.any([
20
- ctx.signal,
21
- signalTimeout,
22
- ]) : ctx.signal || signalTimeout;
23
- try {
24
- return await this.instance.fetch(ctx, session, signal);
25
- }
26
- catch (e) {
27
- if (ctx.signal?.aborted)
28
- throw new UserAbortion(); // 用户中止
29
- else if (signalTimeout?.aborted)
30
- e = new InferenceTimeout(undefined, { cause: e }); // 推理超时
31
- else if (e instanceof ResponseInvalid) { } // 模型抽风
32
- else if (e instanceof TypeError) { } // 网络故障
33
- else
34
- throw e;
35
- if (retry < 3)
36
- ctx.logger.message?.warn(e);
37
- else
38
- throw e;
39
- }
40
- }
41
- }
42
- async stateful(ctx, session) {
43
- const response = await this.stateless(ctx, session);
44
- session.chatMessages.push(response);
45
- return response;
46
- }
47
- appendUserMessage(session, message) {
48
- return {
49
- ...session,
50
- chatMessages: [...session.chatMessages, message],
51
- };
52
- }
53
- pushUserMessage(session, message) {
54
- session.chatMessages.push(message);
55
- return session;
7
+ let OwnProps;
8
+ (function (OwnProps) {
9
+ function init(options) {
10
+ return {
11
+ toolChoice: options.toolChoice ?? Function.ToolChoice.AUTO,
12
+ };
13
+ }
14
+ OwnProps.init = init;
15
+ })(OwnProps = CompatibleEngine.OwnProps || (CompatibleEngine.OwnProps = {}));
16
+ async function stateless(wfctx, session) {
17
+ for (let retry = 0;; retry++) {
18
+ const signalTimeout = this.timeout ? AbortSignal.timeout(this.timeout) : undefined;
19
+ const signal = wfctx.signal && signalTimeout ? AbortSignal.any([
20
+ wfctx.signal,
21
+ signalTimeout,
22
+ ]) : wfctx.signal || signalTimeout;
23
+ try {
24
+ return await this.fetch(wfctx, session, signal);
56
25
  }
57
- validateToolCallsByToolChoice(toolCalls) {
58
- return CompatibleEngine.validateToolCallsByToolChoice(toolCalls, this.toolChoice);
26
+ catch (e) {
27
+ if (wfctx.signal?.aborted)
28
+ throw USER_ABORTION; // 用户中止
29
+ else if (signalTimeout?.aborted)
30
+ e = new InferenceTimeout(undefined, { cause: e }); // 推理超时
31
+ else if (e instanceof ResponseInvalid) { } // 模型抽风
32
+ else if (e instanceof TypeError) { } // 网络故障
33
+ else
34
+ throw e;
35
+ if (retry < 3)
36
+ this.logger.message?.warn(e);
37
+ else
38
+ throw e;
59
39
  }
60
40
  }
61
- Base.Instance = Instance;
62
- })(Base = CompatibleEngine.Base || (CompatibleEngine.Base = {}));
63
- function validateToolCallsByToolChoice(toolCalls, toolChoice) {
64
- Function.Call.validate(toolCalls, toolChoice, new ResponseInvalid('Invalid function call', { cause: toolCalls }));
41
+ }
42
+ CompatibleEngine.stateless = stateless;
43
+ async function stateful(wfctx, session) {
44
+ const response = await this.stateless(wfctx, session);
45
+ session.chatMessages.push(response);
46
+ return response;
47
+ }
48
+ CompatibleEngine.stateful = stateful;
49
+ function appendUserMessage(session, message) {
50
+ return {
51
+ ...session,
52
+ chatMessages: [...session.chatMessages, message],
53
+ };
54
+ }
55
+ CompatibleEngine.appendUserMessage = appendUserMessage;
56
+ function pushUserMessage(session, message) {
57
+ session.chatMessages.push(message);
58
+ return session;
59
+ }
60
+ CompatibleEngine.pushUserMessage = pushUserMessage;
61
+ function validateToolCallsByToolChoice(toolCalls) {
62
+ Function.Call.validate(toolCalls, this.toolChoice, new ResponseInvalid('Invalid function call', { cause: toolCalls }));
65
63
  }
66
64
  CompatibleEngine.validateToolCallsByToolChoice = validateToolCallsByToolChoice;
67
65
  })(CompatibleEngine || (CompatibleEngine = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"compatible-engine.js","sourceRoot":"","sources":["../src/compatible-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compatible-engine.js","sourceRoot":"","sources":["../src/compatible-engine.ts"],"names":[],"mappings":"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"}