@zimtsui/typechat 0.0.119 → 0.0.120
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/build/adaptor.js +5 -5
- package/build/adaptor.js.map +1 -1
- package/build/engine/exceptions.d.ts +20 -0
- package/build/engine/exceptions.js +38 -0
- package/build/engine/exceptions.js.map +1 -0
- package/build/engine/parts-validator.js +3 -2
- package/build/engine/parts-validator.js.map +1 -1
- package/build/engine.d.ts +15 -16
- package/build/engine.js +21 -23
- package/build/engine.js.map +1 -1
- package/build/engines/anthropic/tool-codec.js +3 -2
- package/build/engines/anthropic/tool-codec.js.map +1 -1
- package/build/engines/anthropic/transport.js +84 -76
- package/build/engines/anthropic/transport.js.map +1 -1
- package/build/engines/anthropic.d.ts +3 -5
- package/build/engines/anthropic.js +3 -2
- package/build/engines/anthropic.js.map +1 -1
- package/build/engines/google/message-codec.js +2 -2
- package/build/engines/google/message-codec.js.map +1 -1
- package/build/engines/google/tool-codec.js +3 -2
- package/build/engines/google/tool-codec.js.map +1 -1
- package/build/engines/google/transport.js +8 -6
- package/build/engines/google/transport.js.map +1 -1
- package/build/engines/google.d.ts +6 -5
- package/build/engines/google.js +17 -5
- package/build/engines/google.js.map +1 -1
- package/build/engines/openai-chatcompletions/message-codec.d.ts +2 -1
- package/build/engines/openai-chatcompletions/message-codec.js +5 -2
- package/build/engines/openai-chatcompletions/message-codec.js.map +1 -1
- package/build/engines/openai-chatcompletions/message.d.ts +19 -0
- package/build/engines/openai-chatcompletions/message.js +20 -0
- package/build/engines/openai-chatcompletions/message.js.map +1 -0
- package/build/engines/openai-chatcompletions/tool-codec.js +4 -3
- package/build/engines/openai-chatcompletions/tool-codec.js.map +1 -1
- package/build/engines/openai-chatcompletions/transport.js +36 -38
- package/build/engines/openai-chatcompletions/transport.js.map +1 -1
- package/build/engines/openai-chatcompletions.d.ts +7 -6
- package/build/engines/openai-chatcompletions.js +9 -4
- package/build/engines/openai-chatcompletions.js.map +1 -1
- package/build/engines/openai-compatible/message-codec.js +1 -1
- package/build/engines/openai-compatible/message-codec.js.map +1 -1
- package/build/engines/openai-compatible/transport.js +20 -13
- package/build/engines/openai-compatible/transport.js.map +1 -1
- package/build/engines/openai-compatible.d.ts +4 -18
- package/build/engines/openai-compatible.js +4 -32
- package/build/engines/openai-compatible.js.map +1 -1
- package/build/engines/openai-responses/message-codec.js +1 -1
- package/build/engines/openai-responses/message-codec.js.map +1 -1
- package/build/engines/openai-responses/tool-codec.js +4 -3
- package/build/engines/openai-responses/tool-codec.js.map +1 -1
- package/build/engines/openai-responses/transport.d.ts +1 -2
- package/build/engines/openai-responses/transport.js +21 -13
- package/build/engines/openai-responses/transport.js.map +1 -1
- package/build/engines/openai-responses.d.ts +5 -10
- package/build/engines/openai-responses.js +16 -18
- package/build/engines/openai-responses.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/build/engine/recoverable.d.ts +0 -12
- package/build/engine/recoverable.js +0 -29
- package/build/engine/recoverable.js.map +0 -1
package/build/adaptor.js
CHANGED
|
@@ -32,15 +32,15 @@ export class Adaptor {
|
|
|
32
32
|
throttle,
|
|
33
33
|
};
|
|
34
34
|
if (endpointSpec.apiType === 'openai-responses')
|
|
35
|
-
return OpenAIResponsesEngine.
|
|
35
|
+
return OpenAIResponsesEngine.createEngine(options);
|
|
36
36
|
else if (endpointSpec.apiType === 'google')
|
|
37
|
-
return GoogleEngine.
|
|
37
|
+
return GoogleEngine.createEngine(options);
|
|
38
38
|
else if (endpointSpec.apiType === 'anthropic')
|
|
39
|
-
return AnthropicEngine.
|
|
39
|
+
return AnthropicEngine.createEngine(options);
|
|
40
40
|
else if (endpointSpec.apiType === 'openai-chatcompletions')
|
|
41
|
-
return OpenAIChatCompletionsEngine.
|
|
41
|
+
return OpenAIChatCompletionsEngine.createEngine(options);
|
|
42
42
|
else if (endpointSpec.apiType === 'openai-compatible')
|
|
43
|
-
return OpenAICompatibleEngine.
|
|
43
|
+
return OpenAICompatibleEngine.createEngine(options);
|
|
44
44
|
else
|
|
45
45
|
throw new Error();
|
|
46
46
|
}
|
package/build/adaptor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaptor.js","sourceRoot":"","sources":["../src/adaptor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,2BAA2B,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAIxE,MAAM,OAAO,OAAO;IAMa;IALtB,MAAM,CAAC,MAAM,CAAC,MAAc;QAC/B,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC;IAES,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAClD,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QACvC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAE,CAAC,GAAG,IAAI,MAAM,CAAC,iBAAiB,CAAC;YAC/E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAEM,UAAU,CAEf,cAAmC;QACjC,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACpE,IAAI,YAAY,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,QAAQ,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QACxC,MAAM,OAAO,GAAwB;YACjC,GAAG,cAAc;YACjB,YAAY;YACZ,QAAQ;SACX,CAAC;QACF,IAAI,YAAY,CAAC,OAAO,KAAK,kBAAkB;YAC3C,OAAO,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"adaptor.js","sourceRoot":"","sources":["../src/adaptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Function } from '../function.ts';
|
|
2
|
+
import { type InferenceContext } from '../inference-context.ts';
|
|
3
|
+
import { Session } from './session.ts';
|
|
4
|
+
import { RoleMessage } from './message.ts';
|
|
5
|
+
export declare class InferenceTimeout extends Error {
|
|
6
|
+
}
|
|
7
|
+
export declare class ConnectionError extends Error {
|
|
8
|
+
}
|
|
9
|
+
export declare class InferenceError extends Error {
|
|
10
|
+
}
|
|
11
|
+
export declare namespace InferenceError {
|
|
12
|
+
class Recoverable<in out fdu extends Function.Decl.Proto> extends InferenceError {
|
|
13
|
+
protected response: RoleMessage.Ai<fdu>;
|
|
14
|
+
protected rejection: RoleMessage.User<fdu>;
|
|
15
|
+
constructor(response: RoleMessage.Ai<fdu>, rejection: RoleMessage.User<fdu>, ...rest: ConstructorParameters<typeof InferenceError>);
|
|
16
|
+
resume(): RoleMessage.Ai<fdu>;
|
|
17
|
+
recover(): RoleMessage.User<fdu>;
|
|
18
|
+
static recover<fdu extends Function.Decl.Proto, aim extends RoleMessage.Ai<fdu>>(wfctx: InferenceContext, session: Session<fdu>, next: () => Promise<aim>): Promise<aim>;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export class InferenceTimeout extends Error {
|
|
2
|
+
}
|
|
3
|
+
export class ConnectionError extends Error {
|
|
4
|
+
}
|
|
5
|
+
export class InferenceError extends Error {
|
|
6
|
+
}
|
|
7
|
+
(function (InferenceError) {
|
|
8
|
+
class Recoverable extends InferenceError {
|
|
9
|
+
response;
|
|
10
|
+
rejection;
|
|
11
|
+
constructor(response, rejection, ...rest) {
|
|
12
|
+
super(...rest);
|
|
13
|
+
this.response = response;
|
|
14
|
+
this.rejection = rejection;
|
|
15
|
+
}
|
|
16
|
+
resume() {
|
|
17
|
+
return this.response;
|
|
18
|
+
}
|
|
19
|
+
recover() {
|
|
20
|
+
return this.rejection;
|
|
21
|
+
}
|
|
22
|
+
static async recover(wfctx, session, next) {
|
|
23
|
+
try {
|
|
24
|
+
return await next();
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
if (e instanceof Recoverable) { }
|
|
28
|
+
else
|
|
29
|
+
throw e;
|
|
30
|
+
const recoverable = e;
|
|
31
|
+
session.chatMessages.push(recoverable.resume(), recoverable.recover());
|
|
32
|
+
throw e;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
InferenceError.Recoverable = Recoverable;
|
|
37
|
+
})(InferenceError || (InferenceError = {}));
|
|
38
|
+
//# sourceMappingURL=exceptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/engine/exceptions.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,gBAAiB,SAAQ,KAAK;CAAG;AAC9C,MAAM,OAAO,eAAgB,SAAQ,KAAK;CAAG;AAE7C,MAAM,OAAO,cAAe,SAAQ,KAAK;CAAG;AAC5C,WAAiB,cAAc;IAC3B,MAAa,WAEX,SAAQ,cAAc;QAEN;QACA;QAFd,YACc,QAA6B,EAC7B,SAAgC,EAC1C,GAAG,IAAkD;YAErD,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;YAJL,aAAQ,GAAR,QAAQ,CAAqB;YAC7B,cAAS,GAAT,SAAS,CAAuB;QAI9C,CAAC;QACM,MAAM;YACT,OAAO,IAAI,CAAC,QAAQ,CAAC;QACzB,CAAC;QACM,OAAO;YACV,OAAO,IAAI,CAAC,SAAS,CAAC;QAC1B,CAAC;QAEM,MAAM,CAAC,KAAK,CAAC,OAAO,CAIvB,KAAuB,EACvB,OAAqB,EACrB,IAAwB;YAExB,IAAI,CAAC;gBACD,OAAO,MAAM,IAAI,EAAE,CAAC;YACxB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACT,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC,CAAA,CAAC;;oBAAM,MAAM,CAAC,CAAC;gBAC9C,MAAM,WAAW,GAAG,CAAqB,CAAC;gBAC1C,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;gBACvE,MAAM,CAAC,CAAC;YACZ,CAAC;QACL,CAAC;KACJ;IAlCY,0BAAW,cAkCvB,CAAA;AACL,CAAC,EApCgB,cAAc,KAAd,cAAc,QAoC9B"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { isRepeating } from "../repetition.js";
|
|
2
|
+
import * as Exceptions from "./exceptions.js";
|
|
2
3
|
export class PartsValidator {
|
|
3
4
|
validate(message) {
|
|
4
5
|
if (message.getParts().length) { }
|
|
5
6
|
else
|
|
6
|
-
throw new
|
|
7
|
+
throw new Exceptions.InferenceError('Empty message.');
|
|
7
8
|
if (isRepeating(message.getText()))
|
|
8
|
-
throw new
|
|
9
|
+
throw new Exceptions.InferenceError('Repeating');
|
|
9
10
|
}
|
|
10
11
|
}
|
|
11
12
|
//# sourceMappingURL=parts-validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parts-validator.js","sourceRoot":"","sources":["../../src/engine/parts-validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"parts-validator.js","sourceRoot":"","sources":["../../src/engine/parts-validator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAC;AAG9C,MAAM,OAAO,cAAc;IAIhB,QAAQ,CACX,OAA4B;QAE5B,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,UAAU,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;QAC7F,IAAI,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAAE,MAAM,IAAI,UAAU,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;IACzF,CAAC;CAEJ"}
|
package/build/engine.d.ts
CHANGED
|
@@ -6,8 +6,8 @@ import { type InferenceContext } from './inference-context.ts';
|
|
|
6
6
|
import * as SessionModule from './engine/session.ts';
|
|
7
7
|
import * as MessageModule from './engine/message.ts';
|
|
8
8
|
import { PartsValidator } from './engine/parts-validator.ts';
|
|
9
|
-
import
|
|
10
|
-
import
|
|
9
|
+
import * as ExceptionsModule from './engine/exceptions.ts';
|
|
10
|
+
import * as MiddlewareModule from './engine/middleware.ts';
|
|
11
11
|
import * as ToolChoiceValidatorModule from './engine/tool-choice-validator.ts';
|
|
12
12
|
import * as TransportModule from './engine/transport.ts';
|
|
13
13
|
import { ToolChoice } from './tool-choice.ts';
|
|
@@ -45,22 +45,22 @@ export declare namespace Engine {
|
|
|
45
45
|
protected abstract transport: Engine.Transport<fdm>;
|
|
46
46
|
constructor(options: Engine.Options<fdm>);
|
|
47
47
|
/**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
* @throws {@link Exceptions.InferenceTimeout} 推理超时
|
|
49
|
+
* @throws {@link Exceptions.InferenceError} 模型抽风
|
|
50
|
+
* @throws {@link Exceptions.Recoverable} 模型抽风但可恢复
|
|
51
|
+
* @throws {@link Exceptions.ConnectionError} 网络故障
|
|
52
|
+
*/
|
|
53
53
|
protected infer(wfctx: InferenceContext, session: Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
|
|
54
54
|
/**
|
|
55
|
-
* @throws {@link InferenceTimeout} 推理超时
|
|
56
|
-
* @throws {@link
|
|
57
|
-
* @throws {@link
|
|
55
|
+
* @throws {@link Exceptions.InferenceTimeout} 推理超时
|
|
56
|
+
* @throws {@link Exceptions.InferenceError} 模型抽风
|
|
57
|
+
* @throws {@link Exceptions.ConnectionError} 网络故障
|
|
58
58
|
*/
|
|
59
59
|
stateless(wfctx: InferenceContext, session: Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
|
|
60
60
|
/**
|
|
61
|
-
* @throws {@link InferenceTimeout} 推理超时
|
|
62
|
-
* @throws {@link
|
|
63
|
-
* @throws {@link
|
|
61
|
+
* @throws {@link Exceptions.InferenceTimeout} 推理超时
|
|
62
|
+
* @throws {@link Exceptions.InferenceError} 模型抽风
|
|
63
|
+
* @throws {@link Exceptions.ConnectionError} 网络故障
|
|
64
64
|
* @param session mutable
|
|
65
65
|
*/
|
|
66
66
|
stateful(wfctx: InferenceContext, session: Session.From<fdm>): Promise<RoleMessage.Ai.From<fdm>>;
|
|
@@ -92,10 +92,9 @@ export declare namespace Engine {
|
|
|
92
92
|
export import ToolChoiceValidator = ToolChoiceValidatorModule.ToolChoiceValidator;
|
|
93
93
|
export import Session = SessionModule.Session;
|
|
94
94
|
export import RoleMessage = MessageModule.RoleMessage;
|
|
95
|
+
export import Exceptions = ExceptionsModule;
|
|
96
|
+
export import Middleware = MiddlewareModule.Middleware;
|
|
95
97
|
}
|
|
96
|
-
export declare class InferenceTimeout extends Error {
|
|
97
|
-
}
|
|
98
|
-
export { Recoverable, Middleware };
|
|
99
98
|
declare global {
|
|
100
99
|
export namespace NodeJS {
|
|
101
100
|
interface ProcessEnv {
|
package/build/engine.js
CHANGED
|
@@ -4,7 +4,7 @@ import { env } from 'node:process';
|
|
|
4
4
|
import { loggers } from "./telemetry.js";
|
|
5
5
|
import * as MessageModule from "./engine/message.js";
|
|
6
6
|
import { PartsValidator } from "./engine/parts-validator.js";
|
|
7
|
-
import
|
|
7
|
+
import * as ExceptionsModule from "./engine/exceptions.js";
|
|
8
8
|
import * as ToolChoiceValidatorModule from "./engine/tool-choice-validator.js";
|
|
9
9
|
import { ToolChoice } from "./tool-choice.js";
|
|
10
10
|
import { Media } from "./media.js";
|
|
@@ -60,11 +60,11 @@ export var Engine;
|
|
|
60
60
|
this.toolChoiceValidator = new Engine.ToolChoiceValidator({ toolChoice: this.toolChoice });
|
|
61
61
|
}
|
|
62
62
|
/**
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
63
|
+
* @throws {@link Exceptions.InferenceTimeout} 推理超时
|
|
64
|
+
* @throws {@link Exceptions.InferenceError} 模型抽风
|
|
65
|
+
* @throws {@link Exceptions.Recoverable} 模型抽风但可恢复
|
|
66
|
+
* @throws {@link Exceptions.ConnectionError} 网络故障
|
|
67
|
+
*/
|
|
68
68
|
async infer(wfctx, session) {
|
|
69
69
|
const signalTimeout = this.inferenceOptions.timeout ? AbortSignal.timeout(this.inferenceOptions.timeout) : null;
|
|
70
70
|
const signals = [];
|
|
@@ -78,12 +78,12 @@ export var Engine;
|
|
|
78
78
|
this.partsValidator.validate(aiMessage);
|
|
79
79
|
const rejection = this.toolChoiceValidator.validate(aiMessage);
|
|
80
80
|
if (rejection)
|
|
81
|
-
throw new Recoverable(aiMessage, rejection);
|
|
81
|
+
throw new Engine.Exceptions.InferenceError.Recoverable(aiMessage, rejection);
|
|
82
82
|
return aiMessage;
|
|
83
83
|
}
|
|
84
84
|
catch (e) {
|
|
85
85
|
if (signalTimeout?.aborted)
|
|
86
|
-
throw new InferenceTimeout(undefined, { cause: e });
|
|
86
|
+
throw new Engine.Exceptions.InferenceTimeout(undefined, { cause: e });
|
|
87
87
|
else if (wfctx.signal?.aborted)
|
|
88
88
|
throw wfctx.signal.reason;
|
|
89
89
|
else
|
|
@@ -91,9 +91,9 @@ export var Engine;
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
/**
|
|
94
|
-
* @throws {@link InferenceTimeout} 推理超时
|
|
95
|
-
* @throws {@link
|
|
96
|
-
* @throws {@link
|
|
94
|
+
* @throws {@link Exceptions.InferenceTimeout} 推理超时
|
|
95
|
+
* @throws {@link Exceptions.InferenceError} 模型抽风
|
|
96
|
+
* @throws {@link Exceptions.ConnectionError} 网络故障
|
|
97
97
|
*/
|
|
98
98
|
async stateless(wfctx, session) {
|
|
99
99
|
const middleware = this.compose(this.middlewaresStateless);
|
|
@@ -102,21 +102,21 @@ export var Engine;
|
|
|
102
102
|
return await middleware(wfctx, session, () => this.infer(wfctx, session));
|
|
103
103
|
}
|
|
104
104
|
catch (e) {
|
|
105
|
-
if (e instanceof InferenceTimeout) {
|
|
105
|
+
if (e instanceof Engine.Exceptions.InferenceTimeout) {
|
|
106
106
|
if (retryInference < this.inferenceOptions.retry) { }
|
|
107
107
|
else
|
|
108
108
|
throw e;
|
|
109
109
|
loggers.message.warn(e);
|
|
110
110
|
retryInference++;
|
|
111
111
|
}
|
|
112
|
-
else if (e instanceof
|
|
112
|
+
else if (e instanceof Engine.Exceptions.InferenceError) {
|
|
113
113
|
if (retryInference < this.inferenceOptions.retry) { }
|
|
114
114
|
else
|
|
115
115
|
throw e;
|
|
116
116
|
loggers.message.warn(e);
|
|
117
117
|
retryInference++;
|
|
118
118
|
}
|
|
119
|
-
else if (e instanceof
|
|
119
|
+
else if (e instanceof Engine.Exceptions.ConnectionError) {
|
|
120
120
|
if (retryProvider < this.providerSpecs.retry) { }
|
|
121
121
|
else
|
|
122
122
|
throw e;
|
|
@@ -128,9 +128,9 @@ export var Engine;
|
|
|
128
128
|
}
|
|
129
129
|
}
|
|
130
130
|
/**
|
|
131
|
-
* @throws {@link InferenceTimeout} 推理超时
|
|
132
|
-
* @throws {@link
|
|
133
|
-
* @throws {@link
|
|
131
|
+
* @throws {@link Exceptions.InferenceTimeout} 推理超时
|
|
132
|
+
* @throws {@link Exceptions.InferenceError} 模型抽风
|
|
133
|
+
* @throws {@link Exceptions.ConnectionError} 网络故障
|
|
134
134
|
* @param session mutable
|
|
135
135
|
*/
|
|
136
136
|
async stateful(wfctx, session) {
|
|
@@ -145,21 +145,21 @@ export var Engine;
|
|
|
145
145
|
return await middleware(wfctx, session, next);
|
|
146
146
|
}
|
|
147
147
|
catch (e) {
|
|
148
|
-
if (e instanceof InferenceTimeout) {
|
|
148
|
+
if (e instanceof Engine.Exceptions.InferenceTimeout) {
|
|
149
149
|
if (retryInference < this.inferenceOptions.retry) { }
|
|
150
150
|
else
|
|
151
151
|
throw e;
|
|
152
152
|
loggers.message.warn(e);
|
|
153
153
|
retryInference++;
|
|
154
154
|
}
|
|
155
|
-
else if (e instanceof
|
|
155
|
+
else if (e instanceof Engine.Exceptions.InferenceError) {
|
|
156
156
|
if (retryInference < this.inferenceOptions.retry) { }
|
|
157
157
|
else
|
|
158
158
|
throw e;
|
|
159
159
|
loggers.message.warn(e);
|
|
160
160
|
retryInference++;
|
|
161
161
|
}
|
|
162
|
-
else if (e instanceof
|
|
162
|
+
else if (e instanceof Engine.Exceptions.ConnectionError) {
|
|
163
163
|
if (retryProvider < this.providerSpecs.retry) { }
|
|
164
164
|
else
|
|
165
165
|
throw e;
|
|
@@ -264,8 +264,6 @@ export var Engine;
|
|
|
264
264
|
Engine.FunctionCallLimitExceeded = FunctionCallLimitExceeded;
|
|
265
265
|
Engine.ToolChoiceValidator = ToolChoiceValidatorModule.ToolChoiceValidator;
|
|
266
266
|
Engine.RoleMessage = MessageModule.RoleMessage;
|
|
267
|
+
Engine.Exceptions = ExceptionsModule;
|
|
267
268
|
})(Engine || (Engine = {}));
|
|
268
|
-
export class InferenceTimeout extends Error {
|
|
269
|
-
}
|
|
270
|
-
export { Recoverable };
|
|
271
269
|
//# 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":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAc,MAAM,QAAQ,CAAC;AACvD,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,OAAO,KAAK,aAAa,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Function } from "../../function.js";
|
|
2
2
|
import { Parse, ParseError } from 'typebox/schema';
|
|
3
|
+
import { Engine } from "../../engine.js";
|
|
3
4
|
export class ToolCodec {
|
|
4
5
|
fdm;
|
|
5
6
|
apiFds;
|
|
@@ -15,13 +16,13 @@ export class ToolCodec {
|
|
|
15
16
|
const fditem = this.fdm[apifc.name];
|
|
16
17
|
if (fditem) { }
|
|
17
18
|
else
|
|
18
|
-
throw new
|
|
19
|
+
throw new Engine.Exceptions.InferenceError('Unknown function call', { cause: apifc });
|
|
19
20
|
try {
|
|
20
21
|
Parse(fditem.parameters, apifc.input);
|
|
21
22
|
}
|
|
22
23
|
catch (e) {
|
|
23
24
|
if (e instanceof ParseError)
|
|
24
|
-
throw new
|
|
25
|
+
throw new Engine.Exceptions.InferenceError('Invalid arguments of function call.', { cause: e });
|
|
25
26
|
else
|
|
26
27
|
throw e;
|
|
27
28
|
}
|
|
@@ -1 +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;
|
|
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;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,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,EAA2B;QAE3B,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,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1G,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,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,qCAAqC,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;;gBAC/F,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,EAA+B;QAE/B,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,KAAK,EAAE,CAAC;QACrC,IAAI,EAAE,YAAY,QAAQ,CAAC,QAAQ,CAAC,UAAU;YAC1C,OAAO;gBACH,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,EAAE,CAAC,EAAE;gBAClB,OAAO,EAAE,EAAE,CAAC,IAAI;aACnB,CAAC;aACD,IAAI,EAAE,YAAY,QAAQ,CAAC,QAAQ,CAAC,MAAM;YAC3C,OAAO;gBACH,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,EAAE,CAAC,EAAE;gBAClB,OAAO,EAAE,EAAE,CAAC,KAAK;aACpB,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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Engine } from "../../engine.js";
|
|
1
2
|
import Anthropic from '@anthropic-ai/sdk';
|
|
2
3
|
import { loggers } from "../../telemetry.js";
|
|
3
4
|
import * as ToolChoiceCodec from "./tool-choice-codec.js";
|
|
@@ -46,101 +47,108 @@ export class Transport {
|
|
|
46
47
|
await this.throttle.requests(wfctx);
|
|
47
48
|
const params = this.makeParams(session);
|
|
48
49
|
loggers.message.debug(params);
|
|
49
|
-
const stream = this.client.messages.stream(params, {
|
|
50
|
-
signal,
|
|
51
|
-
fetchOptions: { dispatcher: this.providerSpec.dispatcher },
|
|
52
|
-
});
|
|
53
50
|
let response = null;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (event.type === 'message_delta') {
|
|
64
|
-
response.stop_sequence = event.delta.stop_sequence ?? response.stop_sequence;
|
|
65
|
-
response.stop_reason = event.delta.stop_reason ?? response.stop_reason;
|
|
66
|
-
response.usage.input_tokens = event.usage.input_tokens ?? response.usage.input_tokens;
|
|
67
|
-
response.usage.output_tokens = event.usage.output_tokens;
|
|
68
|
-
response.usage.cache_read_input_tokens = event.usage.cache_read_input_tokens ?? response.usage.cache_read_input_tokens;
|
|
69
|
-
response.usage.cache_creation_input_tokens = event.usage.cache_creation_input_tokens ?? response.usage.cache_creation_input_tokens;
|
|
70
|
-
response.usage.server_tool_use = event.usage.server_tool_use ?? response.usage.server_tool_use;
|
|
71
|
-
}
|
|
72
|
-
else if (event.type === 'message_stop') {
|
|
51
|
+
try {
|
|
52
|
+
const stream = this.client.messages.stream(params, {
|
|
53
|
+
signal,
|
|
54
|
+
fetchOptions: { dispatcher: this.providerSpec.dispatcher },
|
|
55
|
+
});
|
|
56
|
+
for await (const event of stream) {
|
|
57
|
+
loggers.stream.trace(event);
|
|
58
|
+
if (event.type === 'message_start') {
|
|
59
|
+
response = structuredClone(event.message);
|
|
73
60
|
}
|
|
74
|
-
else
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
contentBlock.text += event.delta.text;
|
|
61
|
+
else {
|
|
62
|
+
if (response) { }
|
|
63
|
+
else
|
|
64
|
+
throw new Error();
|
|
65
|
+
if (event.type === 'message_delta') {
|
|
66
|
+
response.stop_sequence = event.delta.stop_sequence ?? response.stop_sequence;
|
|
67
|
+
response.stop_reason = event.delta.stop_reason ?? response.stop_reason;
|
|
68
|
+
response.usage.input_tokens = event.usage.input_tokens ?? response.usage.input_tokens;
|
|
69
|
+
response.usage.output_tokens = event.usage.output_tokens;
|
|
70
|
+
response.usage.cache_read_input_tokens = event.usage.cache_read_input_tokens ?? response.usage.cache_read_input_tokens;
|
|
71
|
+
response.usage.cache_creation_input_tokens = event.usage.cache_creation_input_tokens ?? response.usage.cache_creation_input_tokens;
|
|
72
|
+
response.usage.server_tool_use = event.usage.server_tool_use ?? response.usage.server_tool_use;
|
|
87
73
|
}
|
|
88
|
-
else if (event.
|
|
89
|
-
if (contentBlock?.type === 'thinking') { }
|
|
90
|
-
else
|
|
91
|
-
throw new Error();
|
|
92
|
-
contentBlock.thinking += event.delta.thinking;
|
|
74
|
+
else if (event.type === 'message_stop') {
|
|
93
75
|
}
|
|
94
|
-
else if (event.
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
76
|
+
else if (event.type === 'content_block_start') {
|
|
77
|
+
const contentBlock = structuredClone(event.content_block);
|
|
78
|
+
response.content.push(contentBlock);
|
|
79
|
+
if (contentBlock.type === 'tool_use')
|
|
80
|
+
contentBlock.input = '';
|
|
99
81
|
}
|
|
100
|
-
else if (event.
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
82
|
+
else if (event.type === 'content_block_delta') {
|
|
83
|
+
const contentBlock = response.content[event.index];
|
|
84
|
+
if (event.delta.type === 'text_delta') {
|
|
85
|
+
if (contentBlock?.type === 'text') { }
|
|
86
|
+
else
|
|
87
|
+
throw new Error();
|
|
88
|
+
contentBlock.text += event.delta.text;
|
|
89
|
+
}
|
|
90
|
+
else if (event.delta.type === 'thinking_delta') {
|
|
91
|
+
if (contentBlock?.type === 'thinking') { }
|
|
92
|
+
else
|
|
93
|
+
throw new Error();
|
|
94
|
+
contentBlock.thinking += event.delta.thinking;
|
|
95
|
+
}
|
|
96
|
+
else if (event.delta.type === 'signature_delta') {
|
|
97
|
+
if (contentBlock?.type === 'thinking') { }
|
|
98
|
+
else
|
|
99
|
+
throw new Error();
|
|
100
|
+
contentBlock.signature += event.delta.signature;
|
|
101
|
+
}
|
|
102
|
+
else if (event.delta.type === 'input_json_delta') {
|
|
103
|
+
if (contentBlock?.type === 'tool_use') { }
|
|
104
|
+
else
|
|
105
|
+
throw new Error();
|
|
106
|
+
if (typeof contentBlock.input === 'string') { }
|
|
107
|
+
else
|
|
108
|
+
throw new Error();
|
|
109
|
+
contentBlock.input += event.delta.partial_json;
|
|
110
|
+
}
|
|
105
111
|
else
|
|
106
|
-
throw new Error();
|
|
107
|
-
contentBlock.input += event.delta.partial_json;
|
|
112
|
+
throw new Error('Unknown type of content block delta', { cause: event.delta });
|
|
108
113
|
}
|
|
109
|
-
else
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
throw new SyntaxError('Invalid JSON of tool use input', { cause: contentBlock.input });
|
|
114
|
+
else if (event.type === 'content_block_stop') {
|
|
115
|
+
const contentBlock = response.content[event.index];
|
|
116
|
+
if (contentBlock?.type === 'text')
|
|
117
|
+
loggers.inference.info(contentBlock.text);
|
|
118
|
+
else if (contentBlock?.type === 'thinking')
|
|
119
|
+
loggers.inference.debug(contentBlock.thinking);
|
|
120
|
+
if (contentBlock?.type === 'tool_use') {
|
|
121
|
+
if (typeof contentBlock.input === 'string') { }
|
|
122
|
+
else
|
|
123
|
+
throw new Error();
|
|
124
|
+
try {
|
|
125
|
+
contentBlock.input = JSON.parse(contentBlock.input);
|
|
126
|
+
}
|
|
127
|
+
catch (e) {
|
|
128
|
+
throw new Engine.Exceptions.InferenceError('Invalid JSON of tool use input', { cause: contentBlock.input });
|
|
129
|
+
}
|
|
130
|
+
loggers.message.info(contentBlock);
|
|
127
131
|
}
|
|
128
|
-
loggers.message.info(contentBlock);
|
|
129
132
|
}
|
|
133
|
+
else
|
|
134
|
+
throw new Error('Unknown stream event', { cause: event });
|
|
130
135
|
}
|
|
131
|
-
else
|
|
132
|
-
throw new Error('Unknown stream event', { cause: event });
|
|
133
136
|
}
|
|
134
137
|
}
|
|
138
|
+
catch (e) {
|
|
139
|
+
if (e instanceof Anthropic.APIConnectionError)
|
|
140
|
+
throw new Engine.Exceptions.ConnectionError(undefined, { cause: e });
|
|
141
|
+
throw e;
|
|
142
|
+
}
|
|
135
143
|
if (response) { }
|
|
136
144
|
else
|
|
137
145
|
throw new Error();
|
|
138
146
|
loggers.message.debug(response);
|
|
139
147
|
if (response.stop_reason === 'max_tokens')
|
|
140
|
-
throw new
|
|
148
|
+
throw new Engine.Exceptions.InferenceError('Token limit exceeded.', { cause: response });
|
|
141
149
|
if (response.stop_reason === 'end_turn' || response.stop_reason === 'tool_use') { }
|
|
142
150
|
else
|
|
143
|
-
throw new
|
|
151
|
+
throw new Engine.Exceptions.InferenceError('Abnormal stop reason', { cause: response });
|
|
144
152
|
loggers.message.info(response.usage);
|
|
145
153
|
wfctx.cost?.(this.billing.charge(response.usage));
|
|
146
154
|
return this.messageCodec.decodeAiMessage(response.content);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/engines/anthropic/transport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transport.js","sourceRoot":"","sources":["../../../src/engines/anthropic/transport.ts"],"names":[],"mappings":"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"}
|