@zimtsui/typechat 0.0.98 → 0.0.100
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 +3 -8
- package/README.md +5 -177
- package/assets/verbatim/instruction.md +10 -6
- package/assets/verbatim/response.handlebars +1 -1
- package/build/adaptor.d.ts +9 -9
- package/build/adaptor.js +15 -17
- package/build/adaptor.js.map +1 -1
- package/build/endpoint-spec.d.ts +1 -1
- package/build/endpoint-spec.js +1 -1
- package/build/engine/message.d.ts +75 -0
- package/build/engine/message.js +165 -0
- package/build/engine/message.js.map +1 -0
- package/build/engine/middleware.d.ts +11 -0
- package/build/engine/middleware.js +1 -0
- package/build/engine/middleware.js.map +1 -0
- package/build/engine/parts-validator.d.ts +9 -0
- package/build/engine/parts-validator.js +11 -0
- package/build/engine/parts-validator.js.map +1 -0
- package/build/engine/recoverable.d.ts +13 -0
- package/build/engine/recoverable.js +29 -0
- package/build/engine/recoverable.js.map +1 -0
- package/build/engine/session.d.ts +8 -32
- package/build/engine/session.js +0 -19
- package/build/engine/session.js.map +1 -1
- package/build/engine/structuring-validator.d.ts +15 -0
- package/build/engine/structuring-validator.js +64 -0
- package/build/engine/structuring-validator.js.map +1 -0
- package/build/engine/transport.d.ts +6 -3
- package/build/engine.d.ts +40 -39
- package/build/engine.js +100 -64
- package/build/engine.js.map +1 -1
- package/build/engines/anthropic/billing.js.map +1 -0
- package/build/engines/anthropic/message-codec.d.ts +22 -0
- package/build/engines/anthropic/message-codec.js +79 -0
- package/build/engines/anthropic/message-codec.js.map +1 -0
- package/build/engines/anthropic/message.d.ts +22 -0
- package/build/engines/anthropic/message.js +25 -0
- package/build/engines/anthropic/message.js.map +1 -0
- package/build/{compatible-engine.d/anthropic/choice-codec.d.ts → engines/anthropic/structuring-choice-codec.d.ts} +2 -2
- package/build/engines/anthropic/structuring-choice-codec.js +23 -0
- package/build/engines/anthropic/structuring-choice-codec.js.map +1 -0
- package/build/{api-types → engines}/anthropic/tool-codec.d.ts +5 -4
- package/build/{api-types → engines}/anthropic/tool-codec.js +16 -14
- package/build/engines/anthropic/tool-codec.js.map +1 -0
- package/build/engines/anthropic/transport.d.ts +37 -0
- package/build/{compatible-engine.d → engines}/anthropic/transport.js +8 -12
- package/build/engines/anthropic/transport.js.map +1 -0
- package/build/engines/anthropic.d.ts +22 -0
- package/build/engines/anthropic.js +46 -0
- package/build/engines/anthropic.js.map +1 -0
- package/build/engines/google/billing.js.map +1 -0
- package/build/engines/google/message-codec.d.ts +24 -0
- package/build/engines/google/message-codec.js +113 -0
- package/build/engines/google/message-codec.js.map +1 -0
- package/build/engines/google/message.d.ts +37 -0
- package/build/engines/google/message.js +58 -0
- package/build/engines/google/message.js.map +1 -0
- package/build/engines/google/restful-request.js.map +1 -0
- package/build/{compatible-engine.d/google/choice-codec.d.ts → engines/google/structuring-choice-codec.d.ts} +2 -2
- package/build/engines/google/structuring-choice-codec.js +23 -0
- package/build/engines/google/structuring-choice-codec.js.map +1 -0
- package/build/{api-types → engines}/google/tool-codec.d.ts +5 -4
- package/build/{api-types → engines}/google/tool-codec.js +15 -13
- package/build/engines/google/tool-codec.js.map +1 -0
- package/build/{native-engines.d → engines}/google/transport.d.ts +13 -14
- package/build/{native-engines.d → engines}/google/transport.js +18 -13
- package/build/engines/google/transport.js.map +1 -0
- package/build/engines/google.d.ts +41 -0
- package/build/engines/google.js +151 -0
- package/build/engines/google.js.map +1 -0
- package/build/engines/openai-chatcompletions/billing.js.map +1 -0
- package/build/engines/openai-chatcompletions/message-codec.d.ts +22 -0
- package/build/engines/openai-chatcompletions/message-codec.js +80 -0
- package/build/engines/openai-chatcompletions/message-codec.js.map +1 -0
- package/build/{compatible-engine.d/openai-chatcompletions/choice-codec.d.ts → engines/openai-chatcompletions/structuring-choice-codec.d.ts} +2 -2
- package/build/engines/openai-chatcompletions/structuring-choice-codec.js +22 -0
- package/build/engines/openai-chatcompletions/structuring-choice-codec.js.map +1 -0
- package/build/engines/openai-chatcompletions/tool-codec.d.ts +17 -0
- package/build/{api-types → engines}/openai-chatcompletions/tool-codec.js +19 -17
- package/build/engines/openai-chatcompletions/tool-codec.js.map +1 -0
- package/build/{compatible-engine.d → engines}/openai-chatcompletions/transport.d.ts +13 -15
- package/build/{compatible-engine.d → engines}/openai-chatcompletions/transport.js +8 -18
- package/build/engines/openai-chatcompletions/transport.js.map +1 -0
- package/build/engines/openai-chatcompletions.d.ts +22 -0
- package/build/engines/openai-chatcompletions.js +48 -0
- package/build/engines/openai-chatcompletions.js.map +1 -0
- package/build/engines/openai-responses/billing.js.map +1 -0
- package/build/engines/openai-responses/message-codec.d.ts +24 -0
- package/build/{compatible-engine.d → engines}/openai-responses/message-codec.js +55 -51
- package/build/engines/openai-responses/message-codec.js.map +1 -0
- package/build/engines/openai-responses/message.d.ts +25 -0
- package/build/engines/openai-responses/message.js +43 -0
- package/build/engines/openai-responses/message.js.map +1 -0
- package/build/engines/openai-responses/structuring-choice-codec.d.ts +3 -0
- package/build/engines/openai-responses/structuring-choice-codec.js +22 -0
- package/build/engines/openai-responses/structuring-choice-codec.js.map +1 -0
- package/build/engines/openai-responses/structuring-validator.d.ts +12 -0
- package/build/engines/openai-responses/structuring-validator.js +64 -0
- package/build/engines/openai-responses/structuring-validator.js.map +1 -0
- package/build/engines/openai-responses/tool-codec.d.ts +17 -0
- package/build/{api-types → engines}/openai-responses/tool-codec.js +19 -17
- package/build/engines/openai-responses/tool-codec.js.map +1 -0
- package/build/{native-engines.d → engines}/openai-responses/tool.d.ts +1 -3
- package/build/{native-engines.d → engines}/openai-responses/tool.js +3 -3
- package/build/engines/openai-responses/tool.js.map +1 -0
- package/build/{compatible-engine.d → engines}/openai-responses/transport.d.ts +16 -12
- package/build/{native-engines.d → engines}/openai-responses/transport.js +11 -9
- package/build/engines/openai-responses/transport.js.map +1 -0
- package/build/engines/openai-responses.d.ts +41 -0
- package/build/engines/openai-responses.js +134 -0
- package/build/engines/openai-responses.js.map +1 -0
- package/build/exports.d.ts +5 -5
- package/build/exports.js +5 -5
- package/build/exports.js.map +1 -1
- package/build/function.d.ts +7 -7
- package/build/function.js +19 -19
- package/build/function.js.map +1 -1
- package/build/repetition.d.ts +2 -2
- package/build/repetition.js +21 -20
- package/build/repetition.js.map +1 -1
- package/build/structuring-choice.d.ts +15 -0
- package/build/structuring-choice.js +18 -0
- package/build/structuring-choice.js.map +1 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/verbatim/codec/declarations.js +0 -2
- package/build/verbatim/codec/declarations.js.map +1 -1
- package/build/verbatim/codec/quotation.js +0 -3
- package/build/verbatim/codec/quotation.js.map +1 -1
- package/build/verbatim/codec/request.js +4 -4
- package/build/verbatim/codec/request.js.map +1 -1
- package/build/verbatim/codec/response.js +0 -3
- package/build/verbatim/codec/response.js.map +1 -1
- package/package.json +2 -4
- package/build/api-types/anthropic/billing.js.map +0 -1
- package/build/api-types/anthropic/tool-codec.js.map +0 -1
- package/build/api-types/google/billing.js.map +0 -1
- package/build/api-types/google/restful-request.js.map +0 -1
- package/build/api-types/google/tool-codec.js.map +0 -1
- package/build/api-types/openai-chatcompletions/billing.js.map +0 -1
- package/build/api-types/openai-chatcompletions/tool-codec.d.ts +0 -16
- package/build/api-types/openai-chatcompletions/tool-codec.js.map +0 -1
- package/build/api-types/openai-responses/billing.js.map +0 -1
- package/build/api-types/openai-responses/tool-codec.d.ts +0 -16
- package/build/api-types/openai-responses/tool-codec.js.map +0 -1
- package/build/compatible-engine/session.d.ts +0 -56
- package/build/compatible-engine/session.js +0 -85
- package/build/compatible-engine/session.js.map +0 -1
- package/build/compatible-engine/structuring.d.ts +0 -36
- package/build/compatible-engine/structuring.js +0 -34
- package/build/compatible-engine/structuring.js.map +0 -1
- package/build/compatible-engine/validation.d.ts +0 -28
- package/build/compatible-engine/validation.js +0 -104
- package/build/compatible-engine/validation.js.map +0 -1
- package/build/compatible-engine.d/agentloop.d.ts +0 -12
- package/build/compatible-engine.d/agentloop.js +0 -52
- package/build/compatible-engine.d/agentloop.js.map +0 -1
- package/build/compatible-engine.d/anthropic/choice-codec.js +0 -27
- package/build/compatible-engine.d/anthropic/choice-codec.js.map +0 -1
- package/build/compatible-engine.d/anthropic/message-codec.d.ts +0 -34
- package/build/compatible-engine.d/anthropic/message-codec.js +0 -85
- package/build/compatible-engine.d/anthropic/message-codec.js.map +0 -1
- package/build/compatible-engine.d/anthropic/transport.d.ts +0 -38
- package/build/compatible-engine.d/anthropic/transport.js.map +0 -1
- package/build/compatible-engine.d/anthropic.d.ts +0 -25
- package/build/compatible-engine.d/anthropic.js +0 -47
- package/build/compatible-engine.d/anthropic.js.map +0 -1
- package/build/compatible-engine.d/google/choice-codec.js +0 -27
- package/build/compatible-engine.d/google/choice-codec.js.map +0 -1
- package/build/compatible-engine.d/google/message-codec.d.ts +0 -34
- package/build/compatible-engine.d/google/message-codec.js +0 -95
- package/build/compatible-engine.d/google/message-codec.js.map +0 -1
- package/build/compatible-engine.d/google/transport.d.ts +0 -35
- package/build/compatible-engine.d/google/transport.js +0 -97
- package/build/compatible-engine.d/google/transport.js.map +0 -1
- package/build/compatible-engine.d/google.d.ts +0 -25
- package/build/compatible-engine.d/google.js +0 -64
- package/build/compatible-engine.d/google.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js +0 -31
- package/build/compatible-engine.d/openai-chatcompletions/choice-codec.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.d.ts +0 -22
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js +0 -68
- package/build/compatible-engine.d/openai-chatcompletions/message-codec.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions/transport.js.map +0 -1
- package/build/compatible-engine.d/openai-chatcompletions.d.ts +0 -25
- package/build/compatible-engine.d/openai-chatcompletions.js +0 -49
- package/build/compatible-engine.d/openai-chatcompletions.js.map +0 -1
- package/build/compatible-engine.d/openai-responses/choice-codec.d.ts +0 -5
- package/build/compatible-engine.d/openai-responses/choice-codec.js +0 -30
- package/build/compatible-engine.d/openai-responses/choice-codec.js.map +0 -1
- package/build/compatible-engine.d/openai-responses/message-codec.d.ts +0 -36
- package/build/compatible-engine.d/openai-responses/message-codec.js.map +0 -1
- package/build/compatible-engine.d/openai-responses/transport.js +0 -91
- package/build/compatible-engine.d/openai-responses/transport.js.map +0 -1
- package/build/compatible-engine.d/openai-responses.d.ts +0 -25
- package/build/compatible-engine.d/openai-responses.js +0 -47
- package/build/compatible-engine.d/openai-responses.js.map +0 -1
- package/build/compatible-engine.d.ts +0 -27
- package/build/compatible-engine.js +0 -34
- package/build/compatible-engine.js.map +0 -1
- package/build/engine/validation.d.ts +0 -6
- package/build/engine/validation.js +0 -1
- package/build/engine/validation.js.map +0 -1
- package/build/native-engines.d/google/message-codec.d.ts +0 -26
- package/build/native-engines.d/google/message-codec.js +0 -70
- package/build/native-engines.d/google/message-codec.js.map +0 -1
- package/build/native-engines.d/google/session.d.ts +0 -58
- package/build/native-engines.d/google/session.js +0 -101
- package/build/native-engines.d/google/session.js.map +0 -1
- package/build/native-engines.d/google/transport.js.map +0 -1
- package/build/native-engines.d/google/validation.d.ts +0 -28
- package/build/native-engines.d/google/validation.js +0 -26
- package/build/native-engines.d/google/validation.js.map +0 -1
- package/build/native-engines.d/google.d/agentloop.d.ts +0 -12
- package/build/native-engines.d/google.d/agentloop.js +0 -57
- package/build/native-engines.d/google.d/agentloop.js.map +0 -1
- package/build/native-engines.d/google.d/exports.d.ts +0 -2
- package/build/native-engines.d/google.d/exports.js +0 -3
- package/build/native-engines.d/google.d/exports.js.map +0 -1
- package/build/native-engines.d/google.d.ts +0 -44
- package/build/native-engines.d/google.js +0 -100
- package/build/native-engines.d/google.js.map +0 -1
- package/build/native-engines.d/openai-responses/choice-codec.d.ts +0 -5
- package/build/native-engines.d/openai-responses/choice-codec.js +0 -30
- package/build/native-engines.d/openai-responses/choice-codec.js.map +0 -1
- package/build/native-engines.d/openai-responses/message-codec.d.ts +0 -25
- package/build/native-engines.d/openai-responses/message-codec.js +0 -99
- package/build/native-engines.d/openai-responses/message-codec.js.map +0 -1
- package/build/native-engines.d/openai-responses/session.d.ts +0 -61
- package/build/native-engines.d/openai-responses/session.js +0 -86
- package/build/native-engines.d/openai-responses/session.js.map +0 -1
- package/build/native-engines.d/openai-responses/structuring.d.ts +0 -19
- package/build/native-engines.d/openai-responses/structuring.js +0 -19
- package/build/native-engines.d/openai-responses/structuring.js.map +0 -1
- package/build/native-engines.d/openai-responses/tool.js.map +0 -1
- package/build/native-engines.d/openai-responses/transport.d.ts +0 -40
- package/build/native-engines.d/openai-responses/transport.js.map +0 -1
- package/build/native-engines.d/openai-responses/validation.d.ts +0 -28
- package/build/native-engines.d/openai-responses/validation.js +0 -101
- package/build/native-engines.d/openai-responses/validation.js.map +0 -1
- package/build/native-engines.d/openai-responses.d/agentloop.d.ts +0 -12
- package/build/native-engines.d/openai-responses.d/agentloop.js +0 -61
- package/build/native-engines.d/openai-responses.d/agentloop.js.map +0 -1
- package/build/native-engines.d/openai-responses.d/exports.d.ts +0 -2
- package/build/native-engines.d/openai-responses.d/exports.js +0 -3
- package/build/native-engines.d/openai-responses.d/exports.js.map +0 -1
- package/build/native-engines.d/openai-responses.d.ts +0 -46
- package/build/native-engines.d/openai-responses.js +0 -82
- package/build/native-engines.d/openai-responses.js.map +0 -1
- /package/build/{api-types → engines}/anthropic/billing.d.ts +0 -0
- /package/build/{api-types → engines}/anthropic/billing.js +0 -0
- /package/build/{api-types → engines}/google/billing.d.ts +0 -0
- /package/build/{api-types → engines}/google/billing.js +0 -0
- /package/build/{api-types → engines}/google/restful-request.d.ts +0 -0
- /package/build/{api-types → engines}/google/restful-request.js +0 -0
- /package/build/{api-types → engines}/openai-chatcompletions/billing.d.ts +0 -0
- /package/build/{api-types → engines}/openai-chatcompletions/billing.js +0 -0
- /package/build/{api-types → engines}/openai-responses/billing.d.ts +0 -0
- /package/build/{api-types → engines}/openai-responses/billing.js +0 -0
package/build/engine.js
CHANGED
|
@@ -1,17 +1,25 @@
|
|
|
1
|
+
import { Function } from "./function.js";
|
|
1
2
|
import { Agent, ProxyAgent } from 'undici';
|
|
2
3
|
import { env } from 'node:process';
|
|
3
4
|
import { loggers } from "./telemetry.js";
|
|
4
|
-
import * as
|
|
5
|
+
import * as MessageModule from "./engine/message.js";
|
|
6
|
+
import { PartsValidator } from "./engine/parts-validator.js";
|
|
7
|
+
import { Recoverable } from "./engine/recoverable.js";
|
|
8
|
+
import * as StructuringValidatorModule from "./engine/structuring-validator.js";
|
|
9
|
+
import { StructuringChoice } from "./structuring-choice.js";
|
|
5
10
|
export var Engine;
|
|
6
11
|
(function (Engine) {
|
|
7
12
|
class Instance {
|
|
8
|
-
|
|
9
|
-
|
|
13
|
+
providerSpecs;
|
|
14
|
+
inferenceOptions;
|
|
10
15
|
name;
|
|
11
16
|
pricing;
|
|
12
17
|
fdm;
|
|
13
18
|
vdm;
|
|
14
19
|
throttle;
|
|
20
|
+
structuringChoice;
|
|
21
|
+
structuringValidator;
|
|
22
|
+
partsValidator;
|
|
15
23
|
constructor(options) {
|
|
16
24
|
const proxyUrl = options.endpointSpec.proxy || env.https_proxy || env.HTTPS_PROXY;
|
|
17
25
|
const dispatcher = proxyUrl
|
|
@@ -24,14 +32,14 @@ export var Engine;
|
|
|
24
32
|
headersTimeout: 10000,
|
|
25
33
|
bodyTimeout: 0,
|
|
26
34
|
});
|
|
27
|
-
this.
|
|
35
|
+
this.providerSpecs = {
|
|
28
36
|
baseUrl: options.endpointSpec.baseUrl,
|
|
29
37
|
apiKey: options.endpointSpec.apiKey,
|
|
30
38
|
dispatcher,
|
|
31
39
|
retry: options.providerRetry ?? 2,
|
|
32
40
|
};
|
|
33
41
|
this.name = options.endpointSpec.name;
|
|
34
|
-
this.
|
|
42
|
+
this.inferenceOptions = {
|
|
35
43
|
model: options.endpointSpec.model,
|
|
36
44
|
additionalOptions: options.endpointSpec.additionalOptions,
|
|
37
45
|
timeout: options.endpointSpec.timeout,
|
|
@@ -45,15 +53,19 @@ export var Engine;
|
|
|
45
53
|
};
|
|
46
54
|
this.fdm = options.functionDeclarationMap;
|
|
47
55
|
this.vdm = options.verbatimDeclarationMap;
|
|
56
|
+
this.structuringChoice = options.structuringChoice ?? StructuringChoice.AUTO;
|
|
48
57
|
this.throttle = options.throttle;
|
|
58
|
+
this.partsValidator = new PartsValidator();
|
|
59
|
+
this.structuringValidator = new Engine.StructuringValidator({ structuringChoice: this.structuringChoice });
|
|
49
60
|
}
|
|
50
61
|
/**
|
|
62
|
+
* @throws {@link InferenceTimeout} 推理超时
|
|
51
63
|
* @throws {@link SyntaxError} 模型抽风
|
|
52
64
|
* @throws {@link Recoverable} 模型抽风但可恢复
|
|
53
65
|
* @throws {@link TypeError} 网络故障
|
|
54
66
|
*/
|
|
55
67
|
async infer(wfctx, session) {
|
|
56
|
-
const signalTimeout = this.
|
|
68
|
+
const signalTimeout = this.inferenceOptions.timeout ? AbortSignal.timeout(this.inferenceOptions.timeout) : null;
|
|
57
69
|
const signals = [];
|
|
58
70
|
if (signalTimeout)
|
|
59
71
|
signals.push(signalTimeout);
|
|
@@ -81,29 +93,28 @@ export var Engine;
|
|
|
81
93
|
* @throws {@link TypeError} 网络故障
|
|
82
94
|
*/
|
|
83
95
|
async stateless(wfctx, session) {
|
|
84
|
-
const middleware = this.compose(this.
|
|
96
|
+
const middleware = this.compose(this.middlewaresStateless);
|
|
85
97
|
for (let retryProvider = 0, retryInference = 0;;)
|
|
86
98
|
try {
|
|
87
|
-
|
|
88
|
-
return await middleware(wfctx, session, next);
|
|
99
|
+
return await middleware(wfctx, session, () => this.infer(wfctx, session));
|
|
89
100
|
}
|
|
90
101
|
catch (e) {
|
|
91
102
|
if (e instanceof InferenceTimeout) { // 推理超时
|
|
92
|
-
if (retryInference < this.
|
|
103
|
+
if (retryInference < this.inferenceOptions.retry) { }
|
|
93
104
|
else
|
|
94
105
|
throw e;
|
|
95
106
|
loggers.message.warn(e);
|
|
96
107
|
retryInference++;
|
|
97
108
|
}
|
|
98
109
|
else if (e instanceof SyntaxError) { // 模型抽风
|
|
99
|
-
if (retryInference < this.
|
|
110
|
+
if (retryInference < this.inferenceOptions.retry) { }
|
|
100
111
|
else
|
|
101
112
|
throw e;
|
|
102
113
|
loggers.message.warn(e);
|
|
103
114
|
retryInference++;
|
|
104
115
|
}
|
|
105
116
|
else if (e instanceof TypeError) { // 网络故障
|
|
106
|
-
if (retryProvider < this.
|
|
117
|
+
if (retryProvider < this.providerSpecs.retry) { }
|
|
107
118
|
else
|
|
108
119
|
throw e;
|
|
109
120
|
loggers.message.warn(e);
|
|
@@ -120,35 +131,33 @@ export var Engine;
|
|
|
120
131
|
* @param session mutable
|
|
121
132
|
*/
|
|
122
133
|
async stateful(wfctx, session) {
|
|
123
|
-
const middleware = this.compose(this.
|
|
124
|
-
const statefulMiddleware = this.compose(this.statefulMiddlewares);
|
|
134
|
+
const middleware = this.compose(this.middlewaresStateful);
|
|
125
135
|
for (let retryProvider = 0, retryInference = 0;;)
|
|
126
136
|
try {
|
|
127
|
-
const next = () =>
|
|
128
|
-
|
|
129
|
-
const aiMessage = await middleware(wfctx, session, next);
|
|
137
|
+
const next = async () => {
|
|
138
|
+
const aiMessage = await this.infer(wfctx, session);
|
|
130
139
|
session.chatMessages.push(aiMessage);
|
|
131
140
|
return aiMessage;
|
|
132
141
|
};
|
|
133
|
-
return await
|
|
142
|
+
return await middleware(wfctx, session, next);
|
|
134
143
|
}
|
|
135
144
|
catch (e) {
|
|
136
145
|
if (e instanceof InferenceTimeout) { // 推理超时
|
|
137
|
-
if (retryInference < this.
|
|
146
|
+
if (retryInference < this.inferenceOptions.retry) { }
|
|
138
147
|
else
|
|
139
148
|
throw e;
|
|
140
149
|
loggers.message.warn(e);
|
|
141
150
|
retryInference++;
|
|
142
151
|
}
|
|
143
152
|
else if (e instanceof SyntaxError) { // 模型抽风
|
|
144
|
-
if (retryInference < this.
|
|
153
|
+
if (retryInference < this.inferenceOptions.retry) { }
|
|
145
154
|
else
|
|
146
155
|
throw e;
|
|
147
156
|
loggers.message.warn(e);
|
|
148
157
|
retryInference++;
|
|
149
158
|
}
|
|
150
159
|
else if (e instanceof TypeError) { // 网络故障
|
|
151
|
-
if (retryProvider < this.
|
|
160
|
+
if (retryProvider < this.providerSpecs.retry) { }
|
|
152
161
|
else
|
|
153
162
|
throw e;
|
|
154
163
|
loggers.message.warn(e);
|
|
@@ -158,59 +167,86 @@ export var Engine;
|
|
|
158
167
|
throw e;
|
|
159
168
|
}
|
|
160
169
|
}
|
|
161
|
-
|
|
162
|
-
|
|
170
|
+
middlewaresStateless = [];
|
|
171
|
+
useStateless(middleware) {
|
|
163
172
|
const engine = this.clone();
|
|
164
|
-
engine.
|
|
173
|
+
engine.middlewaresStateless.push(middleware);
|
|
165
174
|
return engine;
|
|
166
175
|
}
|
|
167
|
-
|
|
168
|
-
|
|
176
|
+
middlewaresStateful = [];
|
|
177
|
+
useStateful(middleware) {
|
|
169
178
|
const engine = this.clone();
|
|
170
|
-
engine.
|
|
179
|
+
engine.middlewaresStateful.push(middleware);
|
|
171
180
|
return engine;
|
|
172
181
|
}
|
|
173
|
-
compose(middlewares
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
+
compose(middlewares) {
|
|
183
|
+
let composed = (wfctx, session, next) => next();
|
|
184
|
+
for (const middleware of middlewares.slice().reverse()) {
|
|
185
|
+
const nextMiddleware = composed;
|
|
186
|
+
composed = (wfctx, session, next) => middleware(wfctx, session, () => nextMiddleware(wfctx, session, next));
|
|
187
|
+
}
|
|
188
|
+
return composed;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* @param session mutable
|
|
192
|
+
*/
|
|
193
|
+
async *agentloop(wfctx, session, fnm, vhm, limit = Number.POSITIVE_INFINITY) {
|
|
194
|
+
for (let i = 0; i < limit; i++) {
|
|
195
|
+
const response = await this.stateful(wfctx, session);
|
|
196
|
+
if (response.allChat())
|
|
197
|
+
return response.getChat();
|
|
198
|
+
const pfress = [];
|
|
199
|
+
const pvress = [];
|
|
200
|
+
for (const part of response.getParts()) {
|
|
201
|
+
if (part instanceof Engine.RoleMessage.Ai.Part.Text) {
|
|
202
|
+
const textPart = part;
|
|
203
|
+
yield textPart.text;
|
|
204
|
+
for (const vreq of textPart.vreqs) {
|
|
205
|
+
const vh = vhm[vreq.name];
|
|
206
|
+
pvress.push((async () => new Engine.RoleMessage.User.Part.Text(await vh.call(vhm, vreq.args)))());
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
else if (part instanceof Function.Call) {
|
|
210
|
+
const fcall = part;
|
|
211
|
+
const f = fnm[fcall.name];
|
|
212
|
+
pfress.push((async () => {
|
|
213
|
+
try {
|
|
214
|
+
return Function.Response.Successful.of({
|
|
215
|
+
id: fcall.id,
|
|
216
|
+
name: fcall.name,
|
|
217
|
+
text: await f.call(fnm, fcall.args),
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
catch (e) {
|
|
221
|
+
if (e instanceof Function.Error) { }
|
|
222
|
+
else
|
|
223
|
+
throw e;
|
|
224
|
+
return Function.Response.Failed.of({
|
|
225
|
+
id: fcall.id,
|
|
226
|
+
name: fcall.name,
|
|
227
|
+
error: e.message,
|
|
228
|
+
});
|
|
229
|
+
}
|
|
230
|
+
})());
|
|
231
|
+
}
|
|
232
|
+
else
|
|
233
|
+
throw new Error();
|
|
234
|
+
}
|
|
235
|
+
const fress = await Promise.all(pfress);
|
|
236
|
+
const vress = await Promise.all(pvress);
|
|
237
|
+
session.chatMessages.push(new Engine.RoleMessage.User([...fress, ...vress]));
|
|
238
|
+
}
|
|
239
|
+
throw new Engine.FunctionCallLimitExceeded('Function call limit exceeded.');
|
|
182
240
|
}
|
|
183
241
|
}
|
|
184
242
|
Engine.Instance = Instance;
|
|
185
|
-
|
|
243
|
+
class FunctionCallLimitExceeded extends Error {
|
|
244
|
+
}
|
|
245
|
+
Engine.FunctionCallLimitExceeded = FunctionCallLimitExceeded;
|
|
246
|
+
Engine.StructuringValidator = StructuringValidatorModule.StructuringValidator;
|
|
247
|
+
Engine.RoleMessage = MessageModule.RoleMessage;
|
|
186
248
|
})(Engine || (Engine = {}));
|
|
187
249
|
export class InferenceTimeout extends Error {
|
|
188
250
|
}
|
|
189
|
-
export
|
|
190
|
-
response;
|
|
191
|
-
rejection;
|
|
192
|
-
constructor(response, rejection, ...rest) {
|
|
193
|
-
super(...rest);
|
|
194
|
-
this.response = response;
|
|
195
|
-
this.rejection = rejection;
|
|
196
|
-
}
|
|
197
|
-
resume() {
|
|
198
|
-
return this.response;
|
|
199
|
-
}
|
|
200
|
-
recover() {
|
|
201
|
-
return this.rejection;
|
|
202
|
-
}
|
|
203
|
-
static async recover(wfctx, session, next) {
|
|
204
|
-
try {
|
|
205
|
-
return await next();
|
|
206
|
-
}
|
|
207
|
-
catch (e) {
|
|
208
|
-
if (e instanceof Recoverable) { }
|
|
209
|
-
else
|
|
210
|
-
throw e;
|
|
211
|
-
session.chatMessages.push(e.resume(), e.recover());
|
|
212
|
-
throw e;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
251
|
+
export { Recoverable };
|
|
216
252
|
//# sourceMappingURL=engine.js.map
|
package/build/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../src/engines/anthropic/billing.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,OAAO;IACN,OAAO,CAAU;IAC3B,YAAmB,OAAwB;QACvC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACnC,CAAC;IAEM,MAAM,CAAC,KAAsB;QAChC,MAAM,kBAAkB,GAAG,KAAK,CAAC,uBAAuB,IAAI,CAAC,CAAC;QAC9D,MAAM,mBAAmB,GAAG,KAAK,CAAC,YAAY,GAAG,kBAAkB,CAAC;QACpE,OAAO,CACH,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,mBAAmB,GAAG,GAAG;YACnD,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,kBAAkB,GAAG,GAAG;YAClD,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,KAAK,CAAC,aAAa,GAAG,GAAG,CACvD,CAAC;IACN,CAAC;CACJ"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Engine } from '../../engine.ts';
|
|
2
|
+
import { RoleMessage } from './message.ts';
|
|
3
|
+
import { Function } from '../../function.ts';
|
|
4
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
5
|
+
import type { ToolCodec } from './tool-codec.ts';
|
|
6
|
+
import type { Verbatim } from '../../verbatim.ts';
|
|
7
|
+
export declare class MessageCodec<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
8
|
+
protected toolCodec: ToolCodec<fdm>;
|
|
9
|
+
protected vdm: vdm;
|
|
10
|
+
constructor(options: MessageCodec.Options<fdm, vdm>);
|
|
11
|
+
encodeUserMessage(userMessage: Engine.RoleMessage.User.From<fdm>): Anthropic.ContentBlockParam[];
|
|
12
|
+
encodeAiMessage(aiMessage: Engine.RoleMessage.Ai.From<fdm, vdm>): Anthropic.ContentBlockParam[];
|
|
13
|
+
encodeDeveloperMessage(developerMessage: Engine.RoleMessage.Developer): Anthropic.TextBlockParam[];
|
|
14
|
+
encodeChatMessage(chatMessage: Engine.Session.ChatMessage.From<fdm, vdm>): Anthropic.MessageParam;
|
|
15
|
+
decodeAiMessage(raw: Anthropic.ContentBlock[]): RoleMessage.Ai.From<fdm, vdm>;
|
|
16
|
+
}
|
|
17
|
+
export declare namespace MessageCodec {
|
|
18
|
+
interface Options<in out fdm extends Function.Decl.Map.Proto, in out vdm extends Verbatim.Decl.Map.Proto> {
|
|
19
|
+
toolCodec: ToolCodec<fdm>;
|
|
20
|
+
vdm: vdm;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Engine } from "../../engine.js";
|
|
2
|
+
import { RoleMessage } from "./message.js";
|
|
3
|
+
import { Function } from "../../function.js";
|
|
4
|
+
import * as VerbatimCodec from "../../verbatim/codec.js";
|
|
5
|
+
export class MessageCodec {
|
|
6
|
+
toolCodec;
|
|
7
|
+
vdm;
|
|
8
|
+
constructor(options) {
|
|
9
|
+
this.toolCodec = options.toolCodec;
|
|
10
|
+
this.vdm = options.vdm;
|
|
11
|
+
}
|
|
12
|
+
encodeUserMessage(userMessage) {
|
|
13
|
+
const blocks = [];
|
|
14
|
+
for (const part of userMessage.getParts())
|
|
15
|
+
if (part instanceof Engine.RoleMessage.User.Part.Text)
|
|
16
|
+
blocks.push({
|
|
17
|
+
type: 'text',
|
|
18
|
+
text: part.text,
|
|
19
|
+
});
|
|
20
|
+
else if (part instanceof Function.Response) {
|
|
21
|
+
const fres = part;
|
|
22
|
+
blocks.push(this.toolCodec.encodeFunctionResponse(fres));
|
|
23
|
+
}
|
|
24
|
+
else
|
|
25
|
+
throw new Error('Unknown user message part type', { cause: part });
|
|
26
|
+
return blocks;
|
|
27
|
+
}
|
|
28
|
+
encodeAiMessage(aiMessage) {
|
|
29
|
+
if (aiMessage instanceof RoleMessage.Ai) {
|
|
30
|
+
const nativeAiMessage = aiMessage;
|
|
31
|
+
return nativeAiMessage.getRaw();
|
|
32
|
+
}
|
|
33
|
+
const blocks = [];
|
|
34
|
+
for (const part of aiMessage.getParts())
|
|
35
|
+
if (part instanceof Engine.RoleMessage.Ai.Part.Text)
|
|
36
|
+
blocks.push({
|
|
37
|
+
type: 'text',
|
|
38
|
+
text: part.text,
|
|
39
|
+
});
|
|
40
|
+
else if (part instanceof Function.Call) {
|
|
41
|
+
const fcall = part;
|
|
42
|
+
blocks.push(this.toolCodec.encodeFunctionCall(fcall));
|
|
43
|
+
}
|
|
44
|
+
else
|
|
45
|
+
throw new Error('Unknown AI message part type', { cause: part });
|
|
46
|
+
return blocks;
|
|
47
|
+
}
|
|
48
|
+
encodeDeveloperMessage(developerMessage) {
|
|
49
|
+
return developerMessage.getOnlyTextParts().map(part => ({ type: 'text', text: part.text }));
|
|
50
|
+
}
|
|
51
|
+
encodeChatMessage(chatMessage) {
|
|
52
|
+
if (chatMessage instanceof Engine.RoleMessage.User) {
|
|
53
|
+
const userMessage = chatMessage;
|
|
54
|
+
return { role: 'user', content: this.encodeUserMessage(userMessage) };
|
|
55
|
+
}
|
|
56
|
+
else if (chatMessage instanceof Engine.RoleMessage.Ai) {
|
|
57
|
+
const aiMessage = chatMessage;
|
|
58
|
+
return { role: 'assistant', content: this.encodeAiMessage(aiMessage) };
|
|
59
|
+
}
|
|
60
|
+
else
|
|
61
|
+
throw new Error('Unsupported chat message type.');
|
|
62
|
+
}
|
|
63
|
+
decodeAiMessage(raw) {
|
|
64
|
+
const parts = [];
|
|
65
|
+
for (const item of raw) {
|
|
66
|
+
if (item.type === 'text') {
|
|
67
|
+
const vreqs = VerbatimCodec.Request.decode(item.text, this.vdm);
|
|
68
|
+
parts.push(new RoleMessage.Ai.Part.Text(item.text, vreqs));
|
|
69
|
+
}
|
|
70
|
+
else if (item.type === 'tool_use')
|
|
71
|
+
parts.push(this.toolCodec.decodeFunctionCall(item));
|
|
72
|
+
else if (item.type === 'thinking') { }
|
|
73
|
+
else
|
|
74
|
+
throw new Error();
|
|
75
|
+
}
|
|
76
|
+
return new RoleMessage.Ai(parts, raw);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=message-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-codec.js","sourceRoot":"","sources":["../../../src/engines/anthropic/message-codec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Engine } from '../../engine.ts';
|
|
2
|
+
import { Function } from '../../function.ts';
|
|
3
|
+
import type { Verbatim } from '../../verbatim.ts';
|
|
4
|
+
import Anthropic from '@anthropic-ai/sdk';
|
|
5
|
+
declare const NOMINAL: unique symbol;
|
|
6
|
+
export declare namespace RoleMessage {
|
|
7
|
+
class Ai<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> extends Engine.RoleMessage.Ai<fdu, vdu> {
|
|
8
|
+
protected raw: Anthropic.ContentBlock[];
|
|
9
|
+
protected [NOMINAL]: never;
|
|
10
|
+
constructor(parts: unknown[], raw: Anthropic.ContentBlock[]);
|
|
11
|
+
getRaw(): Anthropic.ContentBlock[];
|
|
12
|
+
}
|
|
13
|
+
namespace Ai {
|
|
14
|
+
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Ai<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
15
|
+
namespace Part {
|
|
16
|
+
export import Text = Engine.RoleMessage.Ai.Part.Text;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export import User = Engine.RoleMessage.User;
|
|
20
|
+
export import Developer = Engine.RoleMessage.Developer;
|
|
21
|
+
}
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Engine } from "../../engine.js";
|
|
2
|
+
const NOMINAL = Symbol();
|
|
3
|
+
export var RoleMessage;
|
|
4
|
+
(function (RoleMessage) {
|
|
5
|
+
class Ai extends Engine.RoleMessage.Ai {
|
|
6
|
+
raw;
|
|
7
|
+
constructor(parts, raw) {
|
|
8
|
+
super(parts);
|
|
9
|
+
this.raw = raw;
|
|
10
|
+
}
|
|
11
|
+
getRaw() {
|
|
12
|
+
return this.raw;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
RoleMessage.Ai = Ai;
|
|
16
|
+
(function (Ai) {
|
|
17
|
+
let Part;
|
|
18
|
+
(function (Part) {
|
|
19
|
+
Part.Text = Engine.RoleMessage.Ai.Part.Text;
|
|
20
|
+
})(Part = Ai.Part || (Ai.Part = {}));
|
|
21
|
+
})(Ai = RoleMessage.Ai || (RoleMessage.Ai = {}));
|
|
22
|
+
RoleMessage.User = Engine.RoleMessage.User;
|
|
23
|
+
RoleMessage.Developer = Engine.RoleMessage.Developer;
|
|
24
|
+
})(RoleMessage || (RoleMessage = {}));
|
|
25
|
+
//# sourceMappingURL=message.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message.js","sourceRoot":"","sources":["../../../src/engines/anthropic/message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAKzC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;AAGzB,MAAM,KAAW,WAAW,CA+B3B;AA/BD,WAAiB,WAAW;IACxB,MAAa,EAGX,SAAQ,MAAM,CAAC,WAAW,CAAC,EAAY;QAKvB;QAFd,YACI,KAAgB,EACN,GAA6B;YAEvC,KAAK,CAAC,KAAK,CAAC,CAAC;YAFH,QAAG,GAAH,GAAG,CAA0B;QAG3C,CAAC;QAEM,MAAM;YACT,OAAO,IAAI,CAAC,GAAG,CAAC;QACpB,CAAC;KACJ;IAhBY,cAAE,KAgBd,CAAA;IACD,WAAiB,EAAE;QAMf,IAAiB,IAAI,CAEpB;QAFD,WAAiB,IAAI;YACH,SAAI,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;QACzD,CAAC,EAFgB,IAAI,GAAJ,OAAI,KAAJ,OAAI,QAEpB;IACL,CAAC,EATgB,EAAE,GAAF,cAAE,KAAF,cAAE,QASlB;IAEa,gBAAI,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;IAC/B,qBAAS,GAAG,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;AAC3D,CAAC,EA/BgB,WAAW,KAAX,WAAW,QA+B3B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { StructuringChoice } from '../../structuring-choice.ts';
|
|
2
2
|
import type { Function } from '../../function.ts';
|
|
3
3
|
import type { Verbatim } from '../../verbatim.ts';
|
|
4
4
|
import Anthropic from '@anthropic-ai/sdk';
|
|
5
|
-
export declare function encode<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto>(
|
|
5
|
+
export declare function encode<fdu extends Function.Decl.Proto, vdu extends Verbatim.Decl.Proto>(structuringChoice: StructuringChoice, parallelToolCall?: boolean): Anthropic.ToolChoice;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { StructuringChoice } from "../../structuring-choice.js";
|
|
2
|
+
export function encode(structuringChoice, parallelToolCall) {
|
|
3
|
+
const disable_parallel_tool_use = typeof parallelToolCall === 'boolean' ? !parallelToolCall : undefined;
|
|
4
|
+
if (structuringChoice === StructuringChoice.NONE)
|
|
5
|
+
return { type: 'none' };
|
|
6
|
+
else if (structuringChoice === StructuringChoice.REQUIRED)
|
|
7
|
+
return { type: 'auto', disable_parallel_tool_use };
|
|
8
|
+
else if (structuringChoice === StructuringChoice.ANYONE)
|
|
9
|
+
return { type: 'auto', disable_parallel_tool_use };
|
|
10
|
+
else if (structuringChoice === StructuringChoice.AUTO)
|
|
11
|
+
return { type: 'auto', disable_parallel_tool_use };
|
|
12
|
+
else if (structuringChoice === StructuringChoice.TCall.REQUIRED)
|
|
13
|
+
return { type: 'any', disable_parallel_tool_use };
|
|
14
|
+
else if (structuringChoice === StructuringChoice.TCall.ANYONE)
|
|
15
|
+
return { type: 'any', disable_parallel_tool_use };
|
|
16
|
+
else if (structuringChoice === StructuringChoice.VRequest.REQUIRED)
|
|
17
|
+
return { type: 'none' };
|
|
18
|
+
else if (structuringChoice === StructuringChoice.VRequest.ANYONE)
|
|
19
|
+
return { type: 'none' };
|
|
20
|
+
else
|
|
21
|
+
throw new Error('Invalid structuring choice');
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=structuring-choice-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structuring-choice-codec.js","sourceRoot":"","sources":["../../../src/engines/anthropic/structuring-choice-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAMhE,MAAM,UAAU,MAAM,CAIlB,iBAAoC,EACpC,gBAA0B;IAE1B,MAAM,yBAAyB,GAAwB,OAAO,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7H,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACrE,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;SACzG,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;SACvG,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,IAAI;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAC;SAErG,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,KAAK,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;SAC9G,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC;SAE5G,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;SACvF,IAAI,iBAAiB,KAAK,iBAAiB,CAAC,QAAQ,CAAC,MAAM;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;QAErF,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;AACvD,CAAC"}
|
|
@@ -2,12 +2,13 @@ import { Function } from '../../function.ts';
|
|
|
2
2
|
import Anthropic from '@anthropic-ai/sdk';
|
|
3
3
|
export declare class ToolCodec<in out fdm extends Function.Decl.Map.Proto> {
|
|
4
4
|
protected fdm: fdm;
|
|
5
|
+
protected apiFds: Anthropic.Tool[];
|
|
5
6
|
constructor(options: ToolCodec.Options<fdm>);
|
|
6
|
-
encodeFunctionCall(
|
|
7
|
+
encodeFunctionCall(fcall: Function.Call.From<fdm>): Anthropic.ToolUseBlock;
|
|
7
8
|
decodeFunctionCall(apifc: Anthropic.ToolUseBlock): Function.Call.From<fdm>;
|
|
8
|
-
encodeFunctionResponse(
|
|
9
|
-
protected encodeFunctionDeclarationEntry(fdentry: Function.Decl.Entry.
|
|
10
|
-
encodeFunctionDeclarationMap(
|
|
9
|
+
encodeFunctionResponse(fres: Function.Response.From<fdm>): Anthropic.ToolResultBlockParam;
|
|
10
|
+
protected static encodeFunctionDeclarationEntry<fdu extends Function.Decl.Proto>(fdentry: Function.Decl.Entry.Of<fdu>): Anthropic.Tool;
|
|
11
|
+
encodeFunctionDeclarationMap(): Anthropic.Tool[];
|
|
11
12
|
}
|
|
12
13
|
export declare namespace ToolCodec {
|
|
13
14
|
interface Options<in out fdm extends Function.Decl.Map.Proto> {
|
|
@@ -2,11 +2,14 @@ import { Function } from "../../function.js";
|
|
|
2
2
|
import { Parse, ParseError } from 'typebox/schema';
|
|
3
3
|
export class ToolCodec {
|
|
4
4
|
fdm;
|
|
5
|
+
apiFds;
|
|
5
6
|
constructor(options) {
|
|
6
7
|
this.fdm = options.fdm;
|
|
8
|
+
const fdentries = Object.entries(this.fdm);
|
|
9
|
+
this.apiFds = fdentries.map(fdentry => ToolCodec.encodeFunctionDeclarationEntry(fdentry));
|
|
7
10
|
}
|
|
8
|
-
encodeFunctionCall(
|
|
9
|
-
throw new Error('Anthropic
|
|
11
|
+
encodeFunctionCall(fcall) {
|
|
12
|
+
throw new Error('Anthropic engine requires native function calls.');
|
|
10
13
|
}
|
|
11
14
|
decodeFunctionCall(apifc) {
|
|
12
15
|
const fditem = this.fdm[apifc.name];
|
|
@@ -28,35 +31,34 @@ export class ToolCodec {
|
|
|
28
31
|
args: apifc.input,
|
|
29
32
|
});
|
|
30
33
|
}
|
|
31
|
-
encodeFunctionResponse(
|
|
32
|
-
if (
|
|
34
|
+
encodeFunctionResponse(fres) {
|
|
35
|
+
if (fres.id) { }
|
|
33
36
|
else
|
|
34
37
|
throw new Error();
|
|
35
|
-
if (
|
|
38
|
+
if (fres instanceof Function.Response.Successful)
|
|
36
39
|
return {
|
|
37
40
|
type: 'tool_result',
|
|
38
|
-
tool_use_id:
|
|
39
|
-
content:
|
|
41
|
+
tool_use_id: fres.id,
|
|
42
|
+
content: fres.text,
|
|
40
43
|
};
|
|
41
|
-
else if (
|
|
44
|
+
else if (fres instanceof Function.Response.Failed)
|
|
42
45
|
return {
|
|
43
46
|
type: 'tool_result',
|
|
44
|
-
tool_use_id:
|
|
45
|
-
content:
|
|
47
|
+
tool_use_id: fres.id,
|
|
48
|
+
content: fres.error,
|
|
46
49
|
};
|
|
47
50
|
else
|
|
48
51
|
throw new Error();
|
|
49
52
|
}
|
|
50
|
-
encodeFunctionDeclarationEntry(fdentry) {
|
|
53
|
+
static encodeFunctionDeclarationEntry(fdentry) {
|
|
51
54
|
return {
|
|
52
55
|
name: fdentry[0],
|
|
53
56
|
description: fdentry[1].description,
|
|
54
57
|
input_schema: fdentry[1].parameters,
|
|
55
58
|
};
|
|
56
59
|
}
|
|
57
|
-
encodeFunctionDeclarationMap(
|
|
58
|
-
|
|
59
|
-
return fdentries.map(fdentry => this.encodeFunctionDeclarationEntry(fdentry));
|
|
60
|
+
encodeFunctionDeclarationMap() {
|
|
61
|
+
return this.apiFds.slice();
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
64
|
//# sourceMappingURL=tool-codec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-codec.js","sourceRoot":"","sources":["../../../src/engines/anthropic/tool-codec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAGnD,MAAM,OAAO,SAAS;IACR,GAAG,CAAM;IACT,MAAM,CAAmB;IACnC,YAAmB,OAA+B;QAC9C,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAC;QAC9E,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,8BAA8B,CAAC,OAAO,CAAC,CAAC,CAAC;IAC9F,CAAC;IAEM,kBAAkB,CACrB,KAA8B;QAE9B,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACxE,CAAC;IAEM,kBAAkB,CACrB,KAA6B;QAE7B,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,MAAM,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,WAAW,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACrF,IAAI,CAAC;YACD,KAAK,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACT,IAAI,CAAC,YAAY,UAAU;gBACvB,MAAM,IAAI,WAAW,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;;gBAC1E,MAAM,CAAC,CAAC;QACjB,CAAC;QACD,OAAO,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,IAAI,EAAE,KAAK,CAAC,KAAK;SACe,CAAC,CAAC;IAC1C,CAAC;IAEM,sBAAsB,CACzB,IAAiC;QAEjC,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QACvC,IAAI,IAAI,YAAY,QAAQ,CAAC,QAAQ,CAAC,UAAU;YAC5C,OAAO;gBACH,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,IAAI,CAAC,EAAE;gBACpB,OAAO,EAAE,IAAI,CAAC,IAAI;aACrB,CAAC;aACD,IAAI,IAAI,YAAY,QAAQ,CAAC,QAAQ,CAAC,MAAM;YAC7C,OAAO;gBACH,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,IAAI,CAAC,EAAE;gBACpB,OAAO,EAAE,IAAI,CAAC,KAAK;aACtB,CAAC;;YACD,MAAM,IAAI,KAAK,EAAE,CAAC;IAC3B,CAAC;IAES,MAAM,CAAC,8BAA8B,CAC3C,OAAoC;QAEpC,OAAO;YACH,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;YAChB,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW;YACnC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,UAAmD;SAC/E,CAAC;IACN,CAAC;IAEM,4BAA4B;QAC/B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;CACJ"}
|