@zimtsui/typechat 0.0.90 → 0.0.91
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/assets/verbatim/meta.handlebars +1 -0
- package/build/assets.d.ts +1 -0
- package/build/assets.js +1 -0
- package/build/assets.js.map +1 -1
- package/build/compatible-engine/validation.d.ts +4 -4
- package/build/compatible-engine/validation.js +45 -31
- package/build/compatible-engine/validation.js.map +1 -1
- package/build/engine/validation.d.ts +4 -6
- package/build/engine.d.ts +8 -4
- package/build/engine.js +47 -11
- package/build/engine.js.map +1 -1
- package/build/native-engines.d/google/validation.d.ts +4 -3
- package/build/native-engines.d/google/validation.js +8 -3
- package/build/native-engines.d/google/validation.js.map +1 -1
- package/build/native-engines.d/openai-responses/validation.d.ts +3 -3
- package/build/native-engines.d/openai-responses/validation.js +41 -26
- package/build/native-engines.d/openai-responses/validation.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/verbatim/codec/meta.d.ts +2 -0
- package/build/verbatim/codec/meta.js +8 -0
- package/build/verbatim/codec/meta.js.map +1 -0
- package/build/verbatim/codec.d.ts +1 -0
- package/build/verbatim/codec.js +1 -0
- package/build/verbatim/codec.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<verbatim:meta>{{this.text}}</verbatim:meta>
|
package/build/assets.d.ts
CHANGED
package/build/assets.js
CHANGED
|
@@ -5,6 +5,7 @@ export default {
|
|
|
5
5
|
declarations: loadtext(import.meta.resolve('../assets/verbatim/declarations.handlebars')),
|
|
6
6
|
quotation: loadtext(import.meta.resolve('../assets/verbatim/quotation.handlebars')),
|
|
7
7
|
response: loadtext(import.meta.resolve('../assets/verbatim/response.handlebars')),
|
|
8
|
+
meta: loadtext(import.meta.resolve('../assets/verbatim/meta.handlebars')),
|
|
8
9
|
},
|
|
9
10
|
};
|
|
10
11
|
//# sourceMappingURL=assets.js.map
|
package/build/assets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,eAAe;IACX,QAAQ,EAAE;QACN,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAC/E,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;QACzF,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;QACnF,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"assets.js","sourceRoot":"","sources":["../src/assets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAGjD,eAAe;IACX,QAAQ,EAAE;QACN,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;QAC/E,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,4CAA4C,CAAC,CAAC;QACzF,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,yCAAyC,CAAC,CAAC;QACnF,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,wCAAwC,CAAC,CAAC;QACjF,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAC;KAC5E;CACK,CAAC"}
|
|
@@ -3,12 +3,12 @@ import { Function } from '../function.ts';
|
|
|
3
3
|
import { Verbatim } from '../verbatim.ts';
|
|
4
4
|
import { RoleMessage } from './session.ts';
|
|
5
5
|
import type { Engine } from '../engine.ts';
|
|
6
|
-
export declare class Validator<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> implements Engine.Validator<fdu
|
|
6
|
+
export declare class Validator<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> implements Engine.Validator<RoleMessage.User<fdu>, RoleMessage.Ai<fdu, vdu>> {
|
|
7
7
|
protected ctx: Validator.Context<fdu, vdu>;
|
|
8
8
|
constructor(ctx: Validator.Context<fdu, vdu>);
|
|
9
|
-
|
|
10
|
-
validateStructuring(fcs: Function.Call.Of<fdu>[], vrs: Verbatim.Request.Of<vdu>[]): void;
|
|
11
|
-
|
|
9
|
+
validateMessageStructuring(aiMessage: RoleMessage.Ai<fdu, vdu>): RoleMessage.User<fdu> | void;
|
|
10
|
+
validateStructuring(fcs: Function.Call.Of<fdu>[], vrs: Verbatim.Request.Of<vdu>[]): RoleMessage.User<fdu> | void;
|
|
11
|
+
validateMessageParts(message: RoleMessage.Ai<fdu, vdu>): void;
|
|
12
12
|
}
|
|
13
13
|
export declare namespace Validator {
|
|
14
14
|
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Validator<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
@@ -1,78 +1,92 @@
|
|
|
1
1
|
import { Structuring } from "./structuring.js";
|
|
2
|
+
import { RoleMessage } from "./session.js";
|
|
2
3
|
import { ResponseInvalid } from "../engine.js";
|
|
4
|
+
import * as VerbatimCodec from "../verbatim/codec.js";
|
|
3
5
|
export class Validator {
|
|
4
6
|
ctx;
|
|
5
7
|
constructor(ctx) {
|
|
6
8
|
this.ctx = ctx;
|
|
7
9
|
}
|
|
8
|
-
|
|
9
|
-
const fcs =
|
|
10
|
-
const vrs =
|
|
11
|
-
this.validateStructuring(fcs, vrs);
|
|
10
|
+
validateMessageStructuring(aiMessage) {
|
|
11
|
+
const fcs = aiMessage.getFunctionCalls();
|
|
12
|
+
const vrs = aiMessage.getVerbatimRequests();
|
|
13
|
+
return this.validateStructuring(fcs, vrs);
|
|
12
14
|
}
|
|
13
15
|
validateStructuring(fcs, vrs) {
|
|
14
16
|
if (this.ctx.choice === Structuring.Choice.FCall.REQUIRED) {
|
|
15
|
-
if (fcs.length)
|
|
16
|
-
else
|
|
17
|
+
if (!fcs.length)
|
|
17
18
|
throw new ResponseInvalid('Function call required.');
|
|
18
19
|
}
|
|
19
20
|
else if (this.ctx.choice === Structuring.Choice.FCall.ANYONE) {
|
|
20
|
-
if (fcs.length)
|
|
21
|
-
else
|
|
21
|
+
if (!fcs.length)
|
|
22
22
|
throw new ResponseInvalid('Function call required.');
|
|
23
23
|
if (fcs.length > 1)
|
|
24
24
|
throw new ResponseInvalid('Only one function call allowed.');
|
|
25
25
|
}
|
|
26
26
|
else if (this.ctx.choice instanceof Structuring.Choice.FCall) {
|
|
27
|
-
if (fcs.length)
|
|
28
|
-
else
|
|
27
|
+
if (!fcs.length)
|
|
29
28
|
throw new ResponseInvalid(`Function call of ${this.ctx.choice.name} required.`);
|
|
30
29
|
if (fcs.length > 1)
|
|
31
30
|
throw new ResponseInvalid('Only one function call allowed.');
|
|
32
|
-
if (fcs[0].name
|
|
33
|
-
else
|
|
31
|
+
if (fcs[0].name !== this.ctx.choice.name)
|
|
34
32
|
throw new ResponseInvalid(`Only function call of ${this.ctx.choice.name} allowed.`);
|
|
35
33
|
}
|
|
36
34
|
else if (this.ctx.choice === Structuring.Choice.VRequest.REQUIRED) {
|
|
37
|
-
if (vrs.length)
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
if (!vrs.length)
|
|
36
|
+
return new RoleMessage.User([
|
|
37
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`No valid verbatim request found.`)),
|
|
38
|
+
]);
|
|
40
39
|
}
|
|
41
40
|
else if (this.ctx.choice === Structuring.Choice.VRequest.ANYONE) {
|
|
42
|
-
if (vrs.length)
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
if (!vrs.length)
|
|
42
|
+
return new RoleMessage.User([
|
|
43
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`No valid verbatim request found.`)),
|
|
44
|
+
]);
|
|
45
45
|
if (vrs.length > 1)
|
|
46
|
-
|
|
46
|
+
return new RoleMessage.User([
|
|
47
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`Only 1 verbatim request allowed, but multiple found.`)),
|
|
48
|
+
]);
|
|
47
49
|
}
|
|
48
50
|
else if (this.ctx.choice instanceof Structuring.Choice.VRequest) {
|
|
49
|
-
if (vrs.length)
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
if (!vrs.length)
|
|
52
|
+
return new RoleMessage.User([
|
|
53
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`No valid verbatim request through channel \`${this.ctx.choice.name}\` found.`)),
|
|
54
|
+
]);
|
|
52
55
|
if (vrs.length > 1)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
56
|
+
return new RoleMessage.User([
|
|
57
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`Only 1 verbatim request through channel \`${this.ctx.choice.name}\` allowed.`)),
|
|
58
|
+
]);
|
|
59
|
+
if (vrs[0].name !== this.ctx.choice.name)
|
|
60
|
+
return new RoleMessage.User([
|
|
61
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`Only verbatim request through channel \`${this.ctx.choice.name}\` allowed.`)),
|
|
62
|
+
]);
|
|
57
63
|
}
|
|
58
64
|
else if (this.ctx.choice === Structuring.Choice.REQUIRED) {
|
|
59
65
|
if (fcs.length + vrs.length) { }
|
|
60
66
|
else
|
|
61
|
-
|
|
67
|
+
return new RoleMessage.User([
|
|
68
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`No function call or valid verbatim request found.`)),
|
|
69
|
+
]);
|
|
62
70
|
}
|
|
63
71
|
else if (this.ctx.choice === Structuring.Choice.ANYONE) {
|
|
64
72
|
if (fcs.length + vrs.length) { }
|
|
65
73
|
else
|
|
66
|
-
|
|
74
|
+
return new RoleMessage.User([
|
|
75
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`No function call or valid verbatim request found.`)),
|
|
76
|
+
]);
|
|
67
77
|
if (fcs.length + vrs.length > 1)
|
|
68
|
-
|
|
78
|
+
return new RoleMessage.User([
|
|
79
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`Only 1 function call or verbatim request allowed, but multiple found.`)),
|
|
80
|
+
]);
|
|
69
81
|
}
|
|
70
82
|
else if (this.ctx.choice === Structuring.Choice.NONE) {
|
|
71
83
|
if (fcs.length + vrs.length)
|
|
72
|
-
|
|
84
|
+
return new RoleMessage.User([
|
|
85
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`Neither function call nor verbatim request allowed.`)),
|
|
86
|
+
]);
|
|
73
87
|
}
|
|
74
88
|
}
|
|
75
|
-
|
|
89
|
+
validateMessageParts(message) {
|
|
76
90
|
const parts = message.getParts();
|
|
77
91
|
if (parts.length) { }
|
|
78
92
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/compatible-engine/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/compatible-engine/validation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
validateChoice(message: aim): void;
|
|
5
|
-
validateParts(message: aim): void;
|
|
1
|
+
export interface Validator<out userm, in aim> {
|
|
2
|
+
validateMessageStructuring(aiMessage: aim): userm | void;
|
|
3
|
+
validateMessageParts(aiMessage: aim): void;
|
|
6
4
|
}
|
|
7
5
|
export declare namespace Validator {
|
|
8
|
-
type From<
|
|
6
|
+
type From<userm, aim> = Validator<userm, aim>;
|
|
9
7
|
}
|
package/build/engine.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import { Throttle } from './throttle.ts';
|
|
|
4
4
|
import { ProxyAgent } from 'undici';
|
|
5
5
|
import { type InferenceContext } from './inference-context.ts';
|
|
6
6
|
import * as SessionModule from './engine/session.ts';
|
|
7
|
-
import
|
|
7
|
+
import { Verbatim } from "./verbatim.js";
|
|
8
8
|
import * as ValidationModule from './engine/validation.ts';
|
|
9
9
|
import * as TransportModule from './engine/transport.ts';
|
|
10
10
|
export interface Pricing {
|
|
@@ -35,7 +35,7 @@ export declare namespace Engine {
|
|
|
35
35
|
protected throttle: Throttle;
|
|
36
36
|
protected abstract parallelToolCall: boolean;
|
|
37
37
|
protected retry: number;
|
|
38
|
-
protected abstract validator: Engine.Validator.From<
|
|
38
|
+
protected abstract validator: Engine.Validator.From<userm, aim>;
|
|
39
39
|
protected abstract transport: Engine.Transport<userm, aim, devm, session>;
|
|
40
40
|
constructor(options: Engine.Options<fdm, vdm>);
|
|
41
41
|
protected infer(wfctx: InferenceContext, session: session, signal?: AbortSignal): Promise<aim>;
|
|
@@ -67,14 +67,18 @@ export declare namespace Engine {
|
|
|
67
67
|
export import Validator = ValidationModule.Validator;
|
|
68
68
|
export import Transport = TransportModule.Transport;
|
|
69
69
|
}
|
|
70
|
-
export declare class ResponseInvalid extends Error {
|
|
71
|
-
}
|
|
72
70
|
export declare class InferenceTimeout extends Error {
|
|
73
71
|
}
|
|
74
72
|
export declare class NetworkError extends Error {
|
|
75
73
|
}
|
|
76
74
|
export declare class CustomRetry extends Error {
|
|
77
75
|
}
|
|
76
|
+
export declare class ResponseInvalid extends Error {
|
|
77
|
+
}
|
|
78
|
+
export declare namespace ResponseInvalid {
|
|
79
|
+
class Recoverable extends ResponseInvalid {
|
|
80
|
+
}
|
|
81
|
+
}
|
|
78
82
|
declare global {
|
|
79
83
|
export namespace NodeJS {
|
|
80
84
|
interface ProcessEnv {
|
package/build/engine.js
CHANGED
|
@@ -39,8 +39,7 @@ export var Engine;
|
|
|
39
39
|
}
|
|
40
40
|
async infer(wfctx, session, signal) {
|
|
41
41
|
const aiMessage = await this.transport.fetch(wfctx, session, signal);
|
|
42
|
-
this.validator.
|
|
43
|
-
this.validator.validateChoice(aiMessage);
|
|
42
|
+
this.validator.validateMessageParts(aiMessage);
|
|
44
43
|
return aiMessage;
|
|
45
44
|
}
|
|
46
45
|
/**
|
|
@@ -58,10 +57,13 @@ export var Engine;
|
|
|
58
57
|
]) : wfctx.signal || signalTimeout;
|
|
59
58
|
try {
|
|
60
59
|
const response = await this.infer(wfctx, session, signal);
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
const rejection = this.validator.validateMessageStructuring(response);
|
|
61
|
+
if (rejection)
|
|
62
|
+
throw new ResponseInvalid.Recoverable();
|
|
63
|
+
if (await validate(response)) { }
|
|
63
64
|
else
|
|
64
65
|
throw new CustomRetry(undefined, { cause: response });
|
|
66
|
+
return response;
|
|
65
67
|
}
|
|
66
68
|
catch (e) {
|
|
67
69
|
if (signalTimeout?.aborted)
|
|
@@ -71,7 +73,6 @@ export var Engine;
|
|
|
71
73
|
else if (e instanceof CustomRetry) { } // 自定义重试
|
|
72
74
|
else
|
|
73
75
|
throw e;
|
|
74
|
-
wfctx.cost?.(0); // 心跳
|
|
75
76
|
if (retry < this.retry)
|
|
76
77
|
loggers.message.warn(e);
|
|
77
78
|
else
|
|
@@ -82,20 +83,55 @@ export var Engine;
|
|
|
82
83
|
/**
|
|
83
84
|
* @param session mutable
|
|
84
85
|
*/
|
|
85
|
-
async stateful(wfctx, session, validate) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
86
|
+
async stateful(wfctx, session, validate = () => Promise.resolve(true)) {
|
|
87
|
+
for (let retry = 0;; retry++) {
|
|
88
|
+
const signalTimeout = this.inferenceParams.timeout ? AbortSignal.timeout(this.inferenceParams.timeout) : undefined;
|
|
89
|
+
const signal = wfctx.signal && signalTimeout ? AbortSignal.any([
|
|
90
|
+
wfctx.signal,
|
|
91
|
+
signalTimeout,
|
|
92
|
+
]) : wfctx.signal || signalTimeout;
|
|
93
|
+
try {
|
|
94
|
+
const response = await this.infer(wfctx, session, signal);
|
|
95
|
+
const rejection = this.validator.validateMessageStructuring(response);
|
|
96
|
+
if (rejection) {
|
|
97
|
+
session.chatMessages.push(response, rejection);
|
|
98
|
+
throw new ResponseInvalid.Recoverable();
|
|
99
|
+
}
|
|
100
|
+
if (await validate(response)) { }
|
|
101
|
+
else
|
|
102
|
+
throw new CustomRetry(undefined, { cause: response });
|
|
103
|
+
session.chatMessages.push(response);
|
|
104
|
+
return response;
|
|
105
|
+
}
|
|
106
|
+
catch (e) {
|
|
107
|
+
if (signalTimeout?.aborted)
|
|
108
|
+
e = new InferenceTimeout(undefined, { cause: e }); // 推理超时
|
|
109
|
+
else if (e instanceof ResponseInvalid) { } // 模型抽风
|
|
110
|
+
else if (e instanceof NetworkError) { } // 网络故障
|
|
111
|
+
else if (e instanceof CustomRetry) { } // 自定义重试
|
|
112
|
+
else
|
|
113
|
+
throw e;
|
|
114
|
+
if (retry < this.retry) { }
|
|
115
|
+
else
|
|
116
|
+
throw e;
|
|
117
|
+
loggers.message.warn(e);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
89
120
|
}
|
|
90
121
|
}
|
|
91
122
|
Engine.Instance = Instance;
|
|
92
123
|
})(Engine || (Engine = {}));
|
|
93
|
-
export class ResponseInvalid extends Error {
|
|
94
|
-
}
|
|
95
124
|
export class InferenceTimeout extends Error {
|
|
96
125
|
}
|
|
97
126
|
export class NetworkError extends Error {
|
|
98
127
|
}
|
|
99
128
|
export class CustomRetry extends Error {
|
|
100
129
|
}
|
|
130
|
+
export class ResponseInvalid extends Error {
|
|
131
|
+
}
|
|
132
|
+
(function (ResponseInvalid) {
|
|
133
|
+
class Recoverable extends ResponseInvalid {
|
|
134
|
+
}
|
|
135
|
+
ResponseInvalid.Recoverable = Recoverable;
|
|
136
|
+
})(ResponseInvalid || (ResponseInvalid = {}));
|
|
101
137
|
//# 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":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAEnC,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AA+BzC,MAAM,KAAW,MAAM,
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,12 +4,13 @@ import { Verbatim } from '../../verbatim.ts';
|
|
|
4
4
|
import { RoleMessage } from './session.ts';
|
|
5
5
|
import { Validator as CompatibleValidator } from '../../compatible-engine/validation.ts';
|
|
6
6
|
import { Engine } from '../../engine.ts';
|
|
7
|
-
export declare class Validator<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> implements Engine.Validator<fdu
|
|
7
|
+
export declare class Validator<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> implements Engine.Validator<RoleMessage.User<fdu>, RoleMessage.Ai<fdu, vdu>> {
|
|
8
8
|
protected ctx: Validator.Context<fdu, vdu>;
|
|
9
9
|
protected compatibleValidator: CompatibleValidator<fdu, vdu>;
|
|
10
10
|
constructor(ctx: Validator.Context<fdu, vdu>);
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
validateMessageParts(message: RoleMessage.Ai<fdu, vdu>): void;
|
|
12
|
+
validateStructuring(fcs: Function.Call.Of<fdu>[], vrs: Verbatim.Request.Of<vdu>[]): void | RoleMessage.User<fdu>;
|
|
13
|
+
validateMessageStructuring(message: RoleMessage.Ai<fdu, vdu>): void | RoleMessage.User<fdu>;
|
|
13
14
|
}
|
|
14
15
|
export declare namespace Validator {
|
|
15
16
|
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Validator<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
@@ -7,14 +7,19 @@ export class Validator {
|
|
|
7
7
|
this.ctx = ctx;
|
|
8
8
|
this.compatibleValidator = new CompatibleValidator({ choice: ctx.choice });
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
validateMessageParts(message) {
|
|
11
11
|
const parts = message.getParts();
|
|
12
12
|
if (parts.length) { }
|
|
13
13
|
else
|
|
14
14
|
throw new ResponseInvalid('Empty message.');
|
|
15
15
|
}
|
|
16
|
-
|
|
17
|
-
this.compatibleValidator.validateStructuring(
|
|
16
|
+
validateStructuring(fcs, vrs) {
|
|
17
|
+
return this.compatibleValidator.validateStructuring(fcs, vrs);
|
|
18
|
+
}
|
|
19
|
+
validateMessageStructuring(message) {
|
|
20
|
+
const fcs = message.getFunctionCalls();
|
|
21
|
+
const vrs = message.getVerbatimRequests();
|
|
22
|
+
return this.validateStructuring(fcs, vrs);
|
|
18
23
|
}
|
|
19
24
|
}
|
|
20
25
|
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/native-engines.d/google/validation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,IAAI,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,eAAe,EAAU,MAAM,iBAAiB,CAAC;AAI1D,MAAM,OAAO,SAAS;IAKW;IADnB,mBAAmB,CAAgC;IAC7D,YAA6B,GAAgC;QAAhC,QAAG,GAAH,GAAG,CAA6B;QACzD,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;IAEM,
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/native-engines.d/google/validation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,IAAI,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACzF,OAAO,EAAE,eAAe,EAAU,MAAM,iBAAiB,CAAC;AAI1D,MAAM,OAAO,SAAS;IAKW;IADnB,mBAAmB,CAAgC;IAC7D,YAA6B,GAAgC;QAAhC,QAAG,GAAH,GAAG,CAA6B;QACzD,IAAI,CAAC,mBAAmB,GAAG,IAAI,mBAAmB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;IAC/E,CAAC;IAEM,oBAAoB,CACvB,OAAiC;QAEjC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;QACjC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAA,CAAC;;YAAM,MAAM,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAC1E,CAAC;IAEM,mBAAmB,CACtB,GAA4B,EAC5B,GAA+B;QAE/B,OAAO,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAClE,CAAC;IAEM,0BAA0B,CAC7B,OAAiC;QAEjC,MAAM,GAAG,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9C,CAAC;CACJ"}
|
|
@@ -3,11 +3,11 @@ import { Function } from '../../function.ts';
|
|
|
3
3
|
import { Verbatim } from '../../verbatim.ts';
|
|
4
4
|
import { RoleMessage } from './session.ts';
|
|
5
5
|
import type { Engine } from '../../engine.ts';
|
|
6
|
-
export declare class Validator<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> implements Engine.Validator<fdu
|
|
6
|
+
export declare class Validator<in out fdu extends Function.Decl.Proto, in out vdu extends Verbatim.Decl.Proto> implements Engine.Validator<RoleMessage.User<fdu>, RoleMessage.Ai<fdu, vdu>> {
|
|
7
7
|
protected ctx: Validator.Context<fdu, vdu>;
|
|
8
8
|
constructor(ctx: Validator.Context<fdu, vdu>);
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
validateMessageStructuring(message: RoleMessage.Ai<fdu, vdu>): RoleMessage.User<fdu> | undefined;
|
|
10
|
+
validateMessageParts(message: RoleMessage.Ai<fdu, vdu>): void;
|
|
11
11
|
}
|
|
12
12
|
export declare namespace Validator {
|
|
13
13
|
type From<fdm extends Function.Decl.Map.Proto, vdm extends Verbatim.Decl.Map.Proto> = Validator<Function.Decl.From<fdm>, Verbatim.Decl.From<vdm>>;
|
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
import { Structuring } from "./structuring.js";
|
|
2
2
|
import { Function } from "../../function.js";
|
|
3
|
+
import { RoleMessage } from "./session.js";
|
|
3
4
|
import { ResponseInvalid } from "../../engine.js";
|
|
5
|
+
import * as VerbatimCodec from "../../verbatim/codec.js";
|
|
4
6
|
export class Validator {
|
|
5
7
|
ctx;
|
|
6
8
|
constructor(ctx) {
|
|
7
9
|
this.ctx = ctx;
|
|
8
10
|
}
|
|
9
|
-
|
|
11
|
+
validateMessageStructuring(message) {
|
|
10
12
|
const tcs = message.getToolCalls();
|
|
11
13
|
const vrs = message.getVerbatimRequests();
|
|
12
14
|
if (this.ctx.choice === Structuring.Choice.TCall.REQUIRED) {
|
|
13
|
-
if (tcs.length)
|
|
14
|
-
else
|
|
15
|
+
if (!tcs.length)
|
|
15
16
|
throw new ResponseInvalid('Tool call required.');
|
|
16
17
|
}
|
|
17
18
|
else if (this.ctx.choice === Structuring.Choice.TCall.ANYONE) {
|
|
18
|
-
if (tcs.length)
|
|
19
|
-
else
|
|
19
|
+
if (!tcs.length)
|
|
20
20
|
throw new ResponseInvalid('Tool call required.');
|
|
21
21
|
if (tcs.length > 1)
|
|
22
22
|
throw new ResponseInvalid('Only one tool call allowed.');
|
|
23
23
|
}
|
|
24
24
|
else if (this.ctx.choice instanceof Structuring.Choice.TCall.FCall) {
|
|
25
|
-
if (tcs.length)
|
|
26
|
-
else
|
|
25
|
+
if (!tcs.length)
|
|
27
26
|
throw new ResponseInvalid(`Function call of ${this.ctx.choice.name} required.`);
|
|
28
27
|
if (tcs.length > 1)
|
|
29
28
|
throw new ResponseInvalid('Only one function call allowed.');
|
|
@@ -32,45 +31,61 @@ export class Validator {
|
|
|
32
31
|
throw new ResponseInvalid(`Only function call of ${this.ctx.choice.name} allowed.`);
|
|
33
32
|
}
|
|
34
33
|
else if (this.ctx.choice === Structuring.Choice.VRequest.REQUIRED) {
|
|
35
|
-
if (vrs.length)
|
|
36
|
-
|
|
37
|
-
|
|
34
|
+
if (!vrs.length)
|
|
35
|
+
return new RoleMessage.User([
|
|
36
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`No valid verbatim request found.`)),
|
|
37
|
+
]);
|
|
38
38
|
}
|
|
39
39
|
else if (this.ctx.choice === Structuring.Choice.VRequest.ANYONE) {
|
|
40
|
-
if (vrs.length)
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
if (!vrs.length)
|
|
41
|
+
return new RoleMessage.User([
|
|
42
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`No valid verbatim request found.`)),
|
|
43
|
+
]);
|
|
43
44
|
if (vrs.length > 1)
|
|
44
|
-
|
|
45
|
+
return new RoleMessage.User([
|
|
46
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`Only 1 verbatim request allowed, but multiple found.`)),
|
|
47
|
+
]);
|
|
45
48
|
}
|
|
46
49
|
else if (this.ctx.choice instanceof Structuring.Choice.VRequest) {
|
|
47
|
-
if (vrs.length)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
+
if (!vrs.length)
|
|
51
|
+
return new RoleMessage.User([
|
|
52
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`No valid verbatim request through channel \`${this.ctx.choice.name}\` found.`)),
|
|
53
|
+
]);
|
|
50
54
|
if (vrs.length > 1)
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
+
return new RoleMessage.User([
|
|
56
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`Only 1 verbatim request through channel \`${this.ctx.choice.name}\` allowed.`)),
|
|
57
|
+
]);
|
|
58
|
+
if (vrs[0].name !== this.ctx.choice.name)
|
|
59
|
+
return new RoleMessage.User([
|
|
60
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`Only verbatim request through channel \`${this.ctx.choice.name}\` allowed.`)),
|
|
61
|
+
]);
|
|
55
62
|
}
|
|
56
63
|
else if (this.ctx.choice === Structuring.Choice.REQUIRED) {
|
|
57
64
|
if (tcs.length + vrs.length) { }
|
|
58
65
|
else
|
|
59
|
-
|
|
66
|
+
return new RoleMessage.User([
|
|
67
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`No function call or valid verbatim request found.`)),
|
|
68
|
+
]);
|
|
60
69
|
}
|
|
61
70
|
else if (this.ctx.choice === Structuring.Choice.ANYONE) {
|
|
62
71
|
if (tcs.length + vrs.length) { }
|
|
63
72
|
else
|
|
64
|
-
|
|
73
|
+
return new RoleMessage.User([
|
|
74
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`No function call or valid verbatim request found.`)),
|
|
75
|
+
]);
|
|
65
76
|
if (tcs.length + vrs.length > 1)
|
|
66
|
-
|
|
77
|
+
return new RoleMessage.User([
|
|
78
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`Only 1 function call or verbatim request allowed, but multiple found.`)),
|
|
79
|
+
]);
|
|
67
80
|
}
|
|
68
81
|
else if (this.ctx.choice === Structuring.Choice.NONE) {
|
|
69
82
|
if (tcs.length + vrs.length)
|
|
70
|
-
|
|
83
|
+
return new RoleMessage.User([
|
|
84
|
+
RoleMessage.Part.Text.paragraph(VerbatimCodec.Meta.encode(`Neither function call nor verbatim request allowed.`)),
|
|
85
|
+
]);
|
|
71
86
|
}
|
|
72
87
|
}
|
|
73
|
-
|
|
88
|
+
validateMessageParts(message) {
|
|
74
89
|
const parts = message.getParts();
|
|
75
90
|
if (parts.length) { }
|
|
76
91
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/native-engines.d/openai-responses/validation.ts"],"names":[],"mappings":"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"}
|