@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.
- package/DEVELOPMENT.md +0 -6
- package/README.md +26 -36
- package/assets/verbatim/instruction.md +27 -25
- package/assets/verbatim/quotation.handlebars +1 -1
- package/assets/verbatim/system.handlebars +1 -0
- package/build/adaptor.d.ts +5 -23
- package/build/adaptor.js +14 -25
- package/build/adaptor.js.map +1 -1
- package/build/api-types/anthropic/billing.d.ts +3 -3
- package/build/api-types/anthropic/billing.js +6 -6
- package/build/api-types/anthropic/billing.js.map +1 -1
- package/build/api-types/anthropic/tool-codec.d.ts +3 -3
- package/build/api-types/anthropic/tool-codec.js +15 -11
- package/build/api-types/anthropic/tool-codec.js.map +1 -1
- package/build/api-types/google/billing.d.ts +3 -3
- package/build/api-types/google/billing.js +7 -7
- package/build/api-types/google/billing.js.map +1 -1
- package/build/api-types/google/tool-codec.d.ts +3 -3
- package/build/api-types/google/tool-codec.js +16 -34
- package/build/api-types/google/tool-codec.js.map +1 -1
- package/build/api-types/openai-chatcompletions/billing.d.ts +5 -5
- package/build/api-types/openai-chatcompletions/billing.js +7 -7
- package/build/api-types/openai-chatcompletions/billing.js.map +1 -1
- package/build/api-types/openai-chatcompletions/tool-codec.d.ts +5 -5
- package/build/api-types/openai-chatcompletions/tool-codec.js +17 -13
- package/build/api-types/openai-chatcompletions/tool-codec.js.map +1 -1
- package/build/api-types/openai-responses/billing.d.ts +3 -3
- package/build/api-types/openai-responses/billing.js +6 -6
- package/build/api-types/openai-responses/billing.js.map +1 -1
- package/build/api-types/openai-responses/tool-codec.d.ts +3 -3
- package/build/api-types/openai-responses/tool-codec.js +16 -12
- package/build/api-types/openai-responses/tool-codec.js.map +1 -1
- package/build/assets.d.ts +1 -1
- package/build/assets.js +6 -5
- package/build/assets.js.map +1 -1
- package/build/compatible-engine/session.d.ts +4 -16
- package/build/compatible-engine/session.js +8 -15
- package/build/compatible-engine/session.js.map +1 -1
- package/build/compatible-engine/validation.d.ts +7 -7
- package/build/compatible-engine/validation.js +33 -34
- package/build/compatible-engine/validation.js.map +1 -1
- package/build/compatible-engine.d/anthropic/message-codec.d.ts +4 -3
- package/build/compatible-engine.d/anthropic/message-codec.js +16 -22
- package/build/compatible-engine.d/anthropic/message-codec.js.map +1 -1
- package/build/compatible-engine.d/anthropic/transport.d.ts +10 -3
- package/build/compatible-engine.d/anthropic/transport.js +105 -101
- package/build/compatible-engine.d/anthropic/transport.js.map +1 -1
- package/build/compatible-engine.d/anthropic.d.ts +2 -0
- package/build/compatible-engine.d/anthropic.js +9 -1
- package/build/compatible-engine.d/anthropic.js.map +1 -1
- package/build/compatible-engine.d/google/message-codec.d.ts +4 -3
- package/build/compatible-engine.d/google/message-codec.js +16 -22
- package/build/compatible-engine.d/google/message-codec.js.map +1 -1
- package/build/compatible-engine.d/google/transport.d.ts +10 -3
- package/build/compatible-engine.d/google/transport.js +32 -24
- package/build/compatible-engine.d/google/transport.js.map +1 -1
- package/build/compatible-engine.d/google.d.ts +2 -0
- package/build/compatible-engine.d/google.js +23 -2
- package/build/compatible-engine.d/google.js.map +1 -1
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +6 -5
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +17 -24
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +1 -1
- package/build/compatible-engine.d/openai-chatcompletions/transport.d.ts +33 -3
- package/build/compatible-engine.d/openai-chatcompletions/transport.js +182 -6
- package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +1 -1
- package/build/compatible-engine.d/openai-chatcompletions.d.ts +10 -2
- package/build/compatible-engine.d/openai-chatcompletions.js +35 -0
- package/build/compatible-engine.d/openai-chatcompletions.js.map +1 -1
- package/build/compatible-engine.d/openai-responses/message-codec.d.ts +4 -6
- package/build/compatible-engine.d/openai-responses/message-codec.js +70 -74
- package/build/compatible-engine.d/openai-responses/message-codec.js.map +1 -1
- package/build/compatible-engine.d/openai-responses/transport.d.ts +14 -8
- package/build/compatible-engine.d/openai-responses/transport.js +64 -64
- package/build/compatible-engine.d/openai-responses/transport.js.map +1 -1
- package/build/compatible-engine.d/openai-responses.d.ts +2 -0
- package/build/compatible-engine.d/openai-responses.js +10 -2
- package/build/compatible-engine.d/openai-responses.js.map +1 -1
- package/build/compatible-engine.d.ts +2 -1
- package/build/compatible-engine.js +3 -3
- package/build/compatible-engine.js.map +1 -1
- package/build/config.d.ts +17 -19
- package/build/config.js +2 -4
- package/build/config.js.map +1 -1
- package/build/endpoint-spec.d.ts +15 -15
- package/build/endpoint-spec.js +2 -2
- package/build/endpoint-spec.js.map +1 -1
- package/build/engine/session.d.ts +31 -0
- package/build/engine/session.js +19 -0
- package/build/engine/session.js.map +1 -1
- package/build/engine/validation.d.ts +1 -7
- package/build/engine.d.ts +37 -20
- package/build/engine.js +154 -87
- package/build/engine.js.map +1 -1
- package/build/function.d.ts +1 -1
- package/build/native-engines.d/google/message-codec.d.ts +6 -3
- package/build/native-engines.d/google/message-codec.js +23 -27
- package/build/native-engines.d/google/message-codec.js.map +1 -1
- package/build/native-engines.d/google/transport.d.ts +13 -3
- package/build/native-engines.d/google/transport.js +41 -27
- package/build/native-engines.d/google/transport.js.map +1 -1
- package/build/native-engines.d/google/validation.d.ts +5 -6
- package/build/native-engines.d/google/validation.js +3 -6
- package/build/native-engines.d/google/validation.js.map +1 -1
- package/build/native-engines.d/google.d.ts +2 -2
- package/build/native-engines.d/google.js +22 -4
- package/build/native-engines.d/google.js.map +1 -1
- package/build/native-engines.d/openai-responses/choice-codec.d.ts +1 -1
- package/build/native-engines.d/openai-responses/choice-codec.js +12 -12
- package/build/native-engines.d/openai-responses/choice-codec.js.map +1 -1
- package/build/native-engines.d/openai-responses/message-codec.d.ts +5 -3
- package/build/native-engines.d/openai-responses/message-codec.js +59 -48
- package/build/native-engines.d/openai-responses/message-codec.js.map +1 -1
- package/build/native-engines.d/openai-responses/transport.d.ts +14 -6
- package/build/native-engines.d/openai-responses/transport.js +56 -54
- package/build/native-engines.d/openai-responses/transport.js.map +1 -1
- package/build/native-engines.d/openai-responses/validation.d.ts +7 -7
- package/build/native-engines.d/openai-responses/validation.js +31 -32
- package/build/native-engines.d/openai-responses/validation.js.map +1 -1
- package/build/native-engines.d/openai-responses.d.ts +2 -2
- package/build/native-engines.d/openai-responses.js +9 -4
- package/build/native-engines.d/openai-responses.js.map +1 -1
- package/build/repetition.d.ts +2 -1
- package/build/repetition.js +7 -42
- package/build/repetition.js.map +1 -1
- package/build/telemetry.d.ts +1 -0
- package/build/telemetry.js +1 -0
- package/build/telemetry.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/verbatim/codec/declarations.d.ts +0 -1
- package/build/verbatim/codec/declarations.js +1 -2
- package/build/verbatim/codec/declarations.js.map +1 -1
- package/build/verbatim/codec/helpers.d.ts +2 -0
- package/build/verbatim/codec/{escape.js → helpers.js} +5 -1
- package/build/verbatim/codec/helpers.js.map +1 -0
- package/build/verbatim/codec/quotation.d.ts +1 -2
- package/build/verbatim/codec/quotation.js +3 -4
- package/build/verbatim/codec/quotation.js.map +1 -1
- package/build/verbatim/codec/response.d.ts +0 -1
- package/build/verbatim/codec/response.js +1 -2
- package/build/verbatim/codec/response.js.map +1 -1
- package/build/verbatim/codec/{meta.d.ts → system.d.ts} +0 -1
- package/build/verbatim/codec/system.js +7 -0
- package/build/verbatim/codec/system.js.map +1 -0
- package/build/verbatim/codec.d.ts +1 -1
- package/build/verbatim/codec.js +1 -1
- package/build/verbatim/codec.js.map +1 -1
- package/package.json +8 -9
- package/assets/verbatim/meta.handlebars +0 -1
- package/build/compatible-engine.d/aliyun/transport.d.ts +0 -12
- package/build/compatible-engine.d/aliyun/transport.js +0 -7
- package/build/compatible-engine.d/aliyun/transport.js.map +0 -1
- package/build/compatible-engine.d/aliyun.d.ts +0 -21
- package/build/compatible-engine.d/aliyun.js +0 -38
- package/build/compatible-engine.d/aliyun.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.d.ts +0 -31
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js +0 -88
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/monolith.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.d.ts +0 -34
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js +0 -190
- package/build/compatible-engine.d/openai-chatcompletions/transport.d/stream.js.map +0 -1
- package/build/verbatim/codec/escape.d.ts +0 -1
- package/build/verbatim/codec/escape.js.map +0 -1
- package/build/verbatim/codec/meta.js +0 -8
- package/build/verbatim/codec/meta.js.map +0 -1
|
@@ -1,91 +1,91 @@
|
|
|
1
|
-
import
|
|
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
|
|
4
|
+
import * as Undici from 'undici';
|
|
6
5
|
export class Transport {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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.
|
|
32
|
+
const tools = this.toolCodec.encodeFunctionDeclarationMap(this.fdm);
|
|
15
33
|
return {
|
|
16
|
-
model: this.
|
|
34
|
+
model: this.inferenceParams.model,
|
|
17
35
|
include: ['reasoning.encrypted_content'],
|
|
18
36
|
store: false,
|
|
19
|
-
|
|
20
|
-
|
|
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.
|
|
23
|
-
parallel_tool_calls: tools.length ? this.
|
|
24
|
-
...this.
|
|
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.
|
|
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
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
if (
|
|
55
|
-
throw new
|
|
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
|
|
78
|
-
|
|
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
|
|
72
|
+
throw new SyntaxError('Abnormal response status', { cause: response });
|
|
82
73
|
if (response.usage) { }
|
|
83
74
|
else
|
|
84
75
|
throw new Error();
|
|
85
|
-
|
|
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.
|
|
88
|
-
return this.
|
|
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":"
|
|
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
|
-
|
|
25
|
+
inferenceParams: this.inferenceParams,
|
|
24
26
|
providerSpec: this.providerSpec,
|
|
25
27
|
fdm: this.fdm,
|
|
26
28
|
throttle: this.throttle,
|
|
27
|
-
choice: this.
|
|
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,
|
|
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
|
|
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
|
-
|
|
8
|
+
structuringChoice;
|
|
9
9
|
structuringValidator;
|
|
10
10
|
partsValidator;
|
|
11
11
|
constructor(options) {
|
|
12
12
|
super(options);
|
|
13
|
-
this.
|
|
14
|
-
this.structuringValidator = new CompatibleEngine.StructuringValidator({
|
|
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,
|
|
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 '
|
|
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:
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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 '
|
|
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
|
-
|
|
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
|
package/build/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,
|
|
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"}
|
package/build/endpoint-spec.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { type Static } from "
|
|
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:
|
|
5
|
-
baseUrl:
|
|
6
|
-
proxy:
|
|
7
|
-
apiKey:
|
|
8
|
-
model:
|
|
9
|
-
name:
|
|
10
|
-
apiType:
|
|
11
|
-
inputPrice:
|
|
12
|
-
outputPrice:
|
|
13
|
-
cachePrice:
|
|
14
|
-
parallelToolCall:
|
|
15
|
-
additionalOptions:
|
|
16
|
-
rpm:
|
|
17
|
-
timeout:
|
|
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
|
}
|
package/build/endpoint-spec.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Type } from "
|
|
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,
|
|
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 {};
|
package/build/engine/session.js
CHANGED
|
@@ -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
|
|
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
|
|
38
|
-
protected abstract partsValidator: Engine.PartsValidator
|
|
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
|
-
|
|
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
|
|
45
|
-
* @throws {@link
|
|
46
|
-
* @throws {@link CustomRetry} 自定义重试
|
|
50
|
+
* @throws {@link SyntaxError} 模型抽风
|
|
51
|
+
* @throws {@link TypeError} 网络故障
|
|
47
52
|
*/
|
|
48
|
-
stateless(wfctx: InferenceContext, session: session
|
|
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
|
|
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>
|
|
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
|
-
|
|
64
|
-
|
|
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
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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 {
|