@modelprofile.com/flexharness 8.2.0 → 8.4.0
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/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.flexharness.d.ts +11 -0
- package/dist_ts/classes.flexharness.js +91 -13
- package/dist_ts/errors.d.ts +4 -1
- package/dist_ts/errors.js +20 -1
- package/dist_ts/interfaces.d.ts +42 -1
- package/dist_ts/interfaces.js +1 -1
- package/dist_ts/plugins.d.ts +4 -1
- package/dist_ts/plugins.js +3 -1
- package/dist_ts/utils.json.js +11 -2
- package/dist_ts/utils.validation.js +23 -15
- package/dist_ts_compaction/plugins.d.ts +5 -2
- package/dist_ts_compaction/plugins.js +5 -3
- package/dist_ts_compaction/smartagent.compaction.d.ts +8 -1
- package/dist_ts_compaction/smartagent.compaction.js +52 -10
- package/package.json +3 -3
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.flexharness.ts +99 -11
- package/ts/errors.ts +22 -1
- package/ts/interfaces.ts +45 -0
- package/ts/plugins.ts +9 -0
- package/ts/utils.json.ts +11 -1
- package/ts/utils.validation.ts +22 -16
- package/ts_compaction/plugins.ts +8 -2
- package/ts_compaction/smartagent.compaction.ts +56 -9
package/dist_ts/errors.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IFlexErrorInfo } from './interfaces.js';
|
|
1
|
+
import type { IFlexErrorInfo, TFlexModelLimit } from './interfaces.js';
|
|
2
2
|
export declare class FlexHarnessError extends Error {
|
|
3
3
|
readonly code: string;
|
|
4
4
|
constructor(code: string, message: string, options?: ErrorOptions);
|
|
@@ -33,6 +33,7 @@ export declare class FlexHarnessCallbackOverflowError extends FlexHarnessError {
|
|
|
33
33
|
constructor(message: string);
|
|
34
34
|
}
|
|
35
35
|
export declare class FlexHarnessExternalError extends FlexHarnessError {
|
|
36
|
+
readonly limit: TFlexModelLimit | undefined;
|
|
36
37
|
constructor(info: IFlexErrorInfo);
|
|
37
38
|
}
|
|
38
39
|
export declare class FlexHarnessPermissionRejectedError extends FlexHarnessError {
|
|
@@ -60,4 +61,6 @@ export declare class FlexHarnessRunError extends AggregateError {
|
|
|
60
61
|
constructor(errors: unknown[]);
|
|
61
62
|
}
|
|
62
63
|
export declare function errorToInfo(error: unknown): IFlexErrorInfo;
|
|
64
|
+
/** The public projection of a model limit error, which names the limit and its reset time. */
|
|
65
|
+
export declare function modelLimitErrorInfo(error: unknown): IFlexErrorInfo | undefined;
|
|
63
66
|
export declare function errorMessage(error: unknown): string;
|
package/dist_ts/errors.js
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
const modelLimitErrorCodes = {
|
|
3
|
+
usage_limit: 'FLEX_USAGE_LIMIT',
|
|
4
|
+
rate_limit: 'FLEX_RATE_LIMIT',
|
|
5
|
+
};
|
|
1
6
|
export class FlexHarnessError extends Error {
|
|
2
7
|
code;
|
|
3
8
|
constructor(code, message, options) {
|
|
@@ -65,9 +70,11 @@ export class FlexHarnessCallbackOverflowError extends FlexHarnessError {
|
|
|
65
70
|
}
|
|
66
71
|
}
|
|
67
72
|
export class FlexHarnessExternalError extends FlexHarnessError {
|
|
73
|
+
limit;
|
|
68
74
|
constructor(info) {
|
|
69
75
|
super(info.code ?? 'FLEX_EXTERNAL_ERROR', info.message);
|
|
70
76
|
this.name = info.name;
|
|
77
|
+
this.limit = info.limit;
|
|
71
78
|
}
|
|
72
79
|
}
|
|
73
80
|
export class FlexHarnessPermissionRejectedError extends FlexHarnessError {
|
|
@@ -123,6 +130,7 @@ export function errorToInfo(error) {
|
|
|
123
130
|
name: error.name,
|
|
124
131
|
message: error.message,
|
|
125
132
|
code: error.code,
|
|
133
|
+
...(error instanceof FlexHarnessExternalError && error.limit ? { limit: error.limit } : {}),
|
|
126
134
|
};
|
|
127
135
|
}
|
|
128
136
|
if (error instanceof Error) {
|
|
@@ -137,7 +145,18 @@ export function errorToInfo(error) {
|
|
|
137
145
|
message: String(error),
|
|
138
146
|
};
|
|
139
147
|
}
|
|
148
|
+
/** The public projection of a model limit error, which names the limit and its reset time. */
|
|
149
|
+
export function modelLimitErrorInfo(error) {
|
|
150
|
+
if (!plugins.isModelLimitError(error))
|
|
151
|
+
return undefined;
|
|
152
|
+
return {
|
|
153
|
+
name: 'FlexHarnessExternalError',
|
|
154
|
+
message: error.message,
|
|
155
|
+
code: modelLimitErrorCodes[error.limit.kind],
|
|
156
|
+
limit: error.limit,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
140
159
|
export function errorMessage(error) {
|
|
141
160
|
return error instanceof Error ? error.message : String(error);
|
|
142
161
|
}
|
|
143
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
162
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvZXJyb3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sY0FBYyxDQUFDO0FBR3hDLE1BQU0sb0JBQW9CLEdBQTRDO0lBQ3BFLFdBQVcsRUFBRSxrQkFBa0I7SUFDL0IsVUFBVSxFQUFFLGlCQUFpQjtDQUM5QixDQUFDO0FBRUYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLEtBQUs7SUFDekIsSUFBSSxDQUFTO0lBRTdCLFlBQVksSUFBWSxFQUFFLE9BQWUsRUFBRSxPQUFzQjtRQUMvRCxLQUFLLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxJQUFJLEdBQUcsa0JBQWtCLENBQUM7UUFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGdCQUFnQjtJQUM5RCxZQUFZLE9BQWUsRUFBRSxPQUFzQjtRQUNqRCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxJQUFJLEdBQUcsNEJBQTRCLENBQUM7SUFDM0MsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGdCQUFnQjtJQUMxRDtRQUNFLEtBQUssQ0FBQyxhQUFhLEVBQUUsMEJBQTBCLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsSUFBSSxHQUFHLHdCQUF3QixDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxnQkFBZ0I7SUFDNUQsWUFBWSxRQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsUUFBUSxLQUFLLEVBQUUsa0JBQWtCLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsSUFBSSxHQUFHLDBCQUEwQixDQUFDO0lBQ3pDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxnQkFBZ0I7SUFDL0QsWUFBWSxTQUFpQixFQUFFLE1BQU0sR0FBRywyQkFBMkI7UUFDakUsS0FBSyxDQUFDLG1CQUFtQixFQUFFLFlBQVksU0FBUyxLQUFLLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLElBQUksR0FBRyw2QkFBNkIsQ0FBQztJQUM1QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sdUNBQXdDLFNBQVEsZ0JBQWdCO0lBQzNELFdBQVcsQ0FBUztJQUNwQixpQkFBaUIsQ0FBUztJQUUxQyxZQUFZLFdBQW1CLEVBQUUsaUJBQXlCO1FBQ3hELEtBQUssQ0FDSCxnQ0FBZ0MsRUFDaEMsbUJBQW1CLFdBQVcscUJBQXFCLGlCQUFpQixFQUFFLENBQ3ZFLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLHlDQUF5QyxDQUFDO1FBQ3RELElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQztJQUM3QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsZ0JBQWdCO0lBQ3ZFLFlBQVksU0FBaUI7UUFDM0IsS0FBSyxDQUNILDRCQUE0QixFQUM1QixZQUFZLFNBQVMsMkNBQTJDLENBQ2pFLENBQUM7UUFDRixJQUFJLENBQUMsSUFBSSxHQUFHLHFDQUFxQyxDQUFDO0lBQ3BELENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxnQkFBZ0I7SUFDN0QsWUFBWSxPQUFlO1FBQ3pCLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsSUFBSSxHQUFHLDJCQUEyQixDQUFDO0lBQzFDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxnQkFBZ0I7SUFDekQsWUFBWSxPQUFPLEdBQUcsc0JBQXNCLEVBQUUsT0FBc0I7UUFDbEUsS0FBSyxDQUFDLGNBQWMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsZ0JBQWdCO0lBQ3BFLFlBQVksT0FBZTtRQUN6QixLQUFLLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxrQ0FBa0MsQ0FBQztJQUNqRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsZ0JBQWdCO0lBQzVDLEtBQUssQ0FBOEI7SUFFbkQsWUFBWSxJQUFvQjtRQUM5QixLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxxQkFBcUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUMxQixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sa0NBQW1DLFNBQVEsZ0JBQWdCO0lBQ3RFLFlBQVksWUFBb0IsRUFBRSxPQUFzQjtRQUN0RCxLQUFLLENBQUMsMEJBQTBCLEVBQUUsZUFBZSxZQUFZLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pGLElBQUksQ0FBQyxJQUFJLEdBQUcsb0NBQW9DLENBQUM7SUFDbkQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLCtCQUFnQyxTQUFRLGdCQUFnQjtJQUNuRSxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLHVCQUF1QixFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLEdBQUcsaUNBQWlDLENBQUM7SUFDaEQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLDZCQUE4QixTQUFRLGdCQUFnQjtJQUNqRCxVQUFVLENBQVM7SUFDbkIsZ0JBQWdCLENBQVM7SUFDekIsY0FBYyxDQUFTO0lBRXZDLFlBQVksVUFBa0IsRUFBRSxnQkFBd0IsRUFBRSxjQUFzQjtRQUM5RSxLQUFLLENBQ0gscUJBQXFCLEVBQ3JCLHNDQUFzQyxVQUFVLHdCQUF3QixnQkFBZ0IsV0FBVyxjQUFjLEdBQUcsQ0FDckgsQ0FBQztRQUNGLElBQUksQ0FBQyxJQUFJLEdBQUcsK0JBQStCLENBQUM7UUFDNUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGdCQUFnQixDQUFDO1FBQ3pDLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO0lBQ3ZDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTywyQkFBNEIsU0FBUSxnQkFBZ0I7SUFDL0QsWUFBWSxPQUFlLEVBQUUsT0FBc0I7UUFDakQsS0FBSyxDQUFDLG1CQUFtQixFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsSUFBSSxHQUFHLDZCQUE2QixDQUFDO0lBQzVDLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxvQ0FBcUMsU0FBUSxnQkFBZ0I7SUFDeEQsSUFBSSxDQUFTO0lBQ2IsU0FBUyxDQUErQztJQUV4RSxZQUNFLElBQVksRUFDWixTQUF1RCxFQUN2RCxPQUFxQjtRQUVyQixLQUFLLENBQ0gsNkJBQTZCLEVBQzdCLFNBQVMsU0FBUyxRQUFRLElBQUksMERBQTBELEVBQ3hGLE9BQU8sQ0FDUixDQUFDO1FBQ0YsSUFBSSxDQUFDLElBQUksR0FBRyxzQ0FBc0MsQ0FBQztRQUNuRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUM3QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsY0FBYztJQUNyQyxJQUFJLEdBQUcsaUJBQWlCLENBQUM7SUFFekMsWUFBWSxNQUFpQjtRQUMzQixLQUFLLENBQUMsTUFBTSxFQUFFLHdEQUF3RCxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLElBQUksR0FBRyxxQkFBcUIsQ0FBQztJQUNwQyxDQUFDO0NBQ0Y7QUFFRCxNQUFNLFVBQVUsV0FBVyxDQUFDLEtBQWM7SUFDeEMsSUFBSSxLQUFLLFlBQVksZ0JBQWdCLEVBQUUsQ0FBQztRQUN0QyxPQUFPO1lBQ0wsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1lBQ2hCLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztZQUN0QixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsR0FBRyxDQUFDLEtBQUssWUFBWSx3QkFBd0IsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUM1RixDQUFDO0lBQ0osQ0FBQztJQUNELElBQUksS0FBSyxZQUFZLEtBQUssRUFBRSxDQUFDO1FBQzNCLE9BQU87WUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7WUFDaEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1lBQ3RCLEdBQUcsQ0FBQyxNQUFNLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ25GLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTztRQUNMLElBQUksRUFBRSxPQUFPO1FBQ2IsT0FBTyxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUM7S0FDdkIsQ0FBQztBQUNKLENBQUM7QUFFRCw4RkFBOEY7QUFDOUYsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEtBQWM7SUFDaEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUM7UUFBRSxPQUFPLFNBQVMsQ0FBQztJQUN4RCxPQUFPO1FBQ0wsSUFBSSxFQUFFLDBCQUEwQjtRQUNoQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87UUFDdEIsSUFBSSxFQUFFLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQzVDLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSztLQUNuQixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBYztJQUN6QyxPQUFPLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNoRSxDQUFDIn0=
|
package/dist_ts/interfaces.d.ts
CHANGED
|
@@ -14,6 +14,15 @@ export type TFlexAgentProviderOptions = TFlexAgentSessionOptions['providerOption
|
|
|
14
14
|
export type TFlexAgentCacheSetting = TFlexAgentSessionOptions['cache'];
|
|
15
15
|
export type TFlexAgentToolCallUpdateEvent = Parameters<NonNullable<TFlexAgentSessionOptions['onToolCallUpdate']>>[0];
|
|
16
16
|
export type TFlexAgentToolCallFinishEvent = Parameters<NonNullable<TFlexAgentSessionOptions['onToolCallFinish']>>[0];
|
|
17
|
+
/** A usage or rate limit a model provider reported; `resetsAt` is in epoch milliseconds. */
|
|
18
|
+
export type TFlexModelLimit = plugins.IModelLimitInfo;
|
|
19
|
+
export type TFlexRetryReason = plugins.TAgentRetryReason;
|
|
20
|
+
/**
|
|
21
|
+
* The usage outcome of one model call: `reported` with the provider's `usage` and
|
|
22
|
+
* `responseModelId`, or `unreported` with a `reason` (`aborted`, `failed` or `missing`).
|
|
23
|
+
* Every call carries `provider` and `requestedModelId`; key usage caps on those two.
|
|
24
|
+
*/
|
|
25
|
+
export type TFlexModelCallUsage = plugins.TAgentModelCallUsage;
|
|
17
26
|
export interface IFlexTextPromptPart {
|
|
18
27
|
type: 'text';
|
|
19
28
|
text: string;
|
|
@@ -92,8 +101,15 @@ export interface IFlexMessage {
|
|
|
92
101
|
completedAt?: string;
|
|
93
102
|
parts: TFlexMessagePart[];
|
|
94
103
|
model?: IFlexModelIdentity;
|
|
104
|
+
/**
|
|
105
|
+
* On a terminal assistant message: the usage the provider reported for the run's model calls.
|
|
106
|
+
* For a failed or cancelled run it is a lower bound when a `model.usage` event of the run was
|
|
107
|
+
* `unreported`.
|
|
108
|
+
*/
|
|
95
109
|
usage?: IFlexUsage;
|
|
96
110
|
error?: string;
|
|
111
|
+
/** The model limit that failed this run, next to its error. */
|
|
112
|
+
limit?: TFlexModelLimit;
|
|
97
113
|
}
|
|
98
114
|
export interface IFlexSessionActivity {
|
|
99
115
|
runId?: string;
|
|
@@ -101,6 +117,8 @@ export interface IFlexSessionActivity {
|
|
|
101
117
|
startedAt?: string;
|
|
102
118
|
completedAt?: string;
|
|
103
119
|
error?: string;
|
|
120
|
+
/** The model limit that failed the last run, next to its error. */
|
|
121
|
+
limit?: TFlexModelLimit;
|
|
104
122
|
}
|
|
105
123
|
export interface IFlexSession {
|
|
106
124
|
scopeId: string;
|
|
@@ -349,6 +367,7 @@ export interface IFlexTerminalProjection {
|
|
|
349
367
|
userMessage: IFlexMessage;
|
|
350
368
|
assistantMessage: IFlexMessage;
|
|
351
369
|
model?: IFlexModelIdentity;
|
|
370
|
+
/** The usage the provider reported for the run's model calls, whatever the status. */
|
|
352
371
|
usage?: IFlexUsage;
|
|
353
372
|
finishReason?: string;
|
|
354
373
|
steps?: number;
|
|
@@ -917,6 +936,26 @@ export interface IFlexRunFinishedEvent extends IFlexEventBase {
|
|
|
917
936
|
readonly message: IFlexMessage;
|
|
918
937
|
readonly error?: IFlexErrorInfo;
|
|
919
938
|
}
|
|
939
|
+
/** The run waits `delayMs` before retrying a rate-limited or unavailable model call. */
|
|
940
|
+
export interface IFlexRunRetryingEvent extends IFlexEventBase {
|
|
941
|
+
readonly type: 'run.retrying';
|
|
942
|
+
readonly runId: string;
|
|
943
|
+
readonly attempt: number;
|
|
944
|
+
readonly maxAttempts: number;
|
|
945
|
+
readonly delayMs: number;
|
|
946
|
+
readonly reason: TFlexRetryReason;
|
|
947
|
+
}
|
|
948
|
+
/**
|
|
949
|
+
* The usage outcome of one model call of a session, emitted once per call whatever the run's
|
|
950
|
+
* outcome. `source: 'generation'` is a model step of the run `runId`. `source: 'compaction'` is a
|
|
951
|
+
* model call of a context compaction the context compactor reported; `runId` names the run whose
|
|
952
|
+
* context overflow caused it and is absent for `compactSession()` and event retention.
|
|
953
|
+
*/
|
|
954
|
+
export type TFlexModelUsageEvent = IFlexEventBase & {
|
|
955
|
+
readonly type: 'model.usage';
|
|
956
|
+
readonly runId?: string;
|
|
957
|
+
readonly source: 'generation' | 'compaction';
|
|
958
|
+
} & Readonly<TFlexModelCallUsage>;
|
|
920
959
|
export interface IFlexPromptQueueEvent extends IFlexEventBase {
|
|
921
960
|
readonly type: 'prompt.queued' | 'prompt.started' | 'prompt.running' | 'prompt.finished';
|
|
922
961
|
readonly queueId: string;
|
|
@@ -932,7 +971,9 @@ export interface IFlexErrorInfo {
|
|
|
932
971
|
name: string;
|
|
933
972
|
message: string;
|
|
934
973
|
code?: string;
|
|
974
|
+
/** Set when a model usage or rate limit caused the error. */
|
|
975
|
+
limit?: TFlexModelLimit;
|
|
935
976
|
}
|
|
936
|
-
export type TFlexHarnessEvent = IFlexSessionCreatedEvent | IFlexSessionUpdatedEvent | IFlexSessionDeletedEvent | IFlexRunStartedEvent | IFlexMessageChangedEvent | TFlexPartEvent | IFlexPermissionRequestedEvent | IFlexPermissionResolvedEvent | IFlexRunFinishedEvent | IFlexPromptQueueEvent | IFlexSessionHistoryChangedEvent;
|
|
977
|
+
export type TFlexHarnessEvent = IFlexSessionCreatedEvent | IFlexSessionUpdatedEvent | IFlexSessionDeletedEvent | IFlexRunStartedEvent | IFlexMessageChangedEvent | TFlexPartEvent | IFlexPermissionRequestedEvent | IFlexPermissionResolvedEvent | IFlexRunFinishedEvent | IFlexRunRetryingEvent | TFlexModelUsageEvent | IFlexPromptQueueEvent | IFlexSessionHistoryChangedEvent;
|
|
937
978
|
export type TFlexHarnessEventListener = (event: TFlexHarnessEvent) => void;
|
|
938
979
|
export {};
|
package/dist_ts/interfaces.js
CHANGED
|
@@ -27,4 +27,4 @@ export const FLEX_REVERSION_MAX_AFFECTED_WORKSPACES = 64;
|
|
|
27
27
|
export const FLEX_REVERSION_WORKSPACE_ID_MAX_BYTES = 512;
|
|
28
28
|
export const FLEX_REVERSION_WORKSPACE_LABEL_MAX_BYTES = 2048;
|
|
29
29
|
export const FLEX_REVERSION_REASON_CODE_MAX_BYTES = 128;
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2ludGVyZmFjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBbWxCQSxNQUFNLENBQUMsTUFBTSxzQ0FBc0MsR0FBRyxDQUFVLENBQUM7QUFDakUsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsR0FBRyxDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLDBDQUEwQyxHQUFHLElBQUksQ0FBQztBQStCL0QsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMxRCxZQUFZLEVBQUUsQ0FBQyxHQUFHLElBQUk7SUFDdEIsa0JBQWtCLEVBQUUsR0FBRyxHQUFHLElBQUk7SUFDOUIsbUJBQW1CLEVBQUUsQ0FBQyxHQUFHLElBQUk7SUFDN0IsY0FBYyxFQUFFLEdBQUc7SUFDbkIsUUFBUSxFQUFFLEdBQUc7SUFDYixhQUFhLEVBQUUsSUFBSTtJQUNuQixnQkFBZ0IsRUFBRSxJQUFJLEdBQUcsSUFBSTtDQUM5QixDQUFDLENBQUM7QUErTEgsTUFBTSxDQUFDLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUN6RCxpQkFBaUIsRUFBRSxHQUFHO0lBQ3RCLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLGlCQUFpQixFQUFFLElBQUk7SUFDdkIsMkJBQTJCLEVBQUUsSUFBSTtDQUNsQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBQ3pELGlCQUFpQixFQUFFLElBQUk7SUFDdkIsV0FBVyxFQUFFLElBQUk7SUFDakIsaUJBQWlCLEVBQUUsTUFBTTtJQUN6QiwyQkFBMkIsRUFBRSxNQUFNO0NBQ3BDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGtDQUFrQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDN0QsTUFBTSxDQUFDLE1BQU0sc0NBQXNDLEdBQUcsRUFBRSxDQUFDO0FBQ3pELE1BQU0sQ0FBQyxNQUFNLHFDQUFxQyxHQUFHLEdBQUcsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSx3Q0FBd0MsR0FBRyxJQUFJLENBQUM7QUFDN0QsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsR0FBRyxDQUFDIn0=
|
package/dist_ts/plugins.d.ts
CHANGED
|
@@ -5,4 +5,7 @@ import * as path from 'node:path';
|
|
|
5
5
|
export { AsyncLocalStorage, crypto, fs, path };
|
|
6
6
|
import { AgentEventStoreConflictError, AgentSession, buildModelMessages, ToolJobStoreConflictError, createAgentEvent, filterModelVisibleAgentEvents, getAgentGenerationTransactions, modelMessagesToAgentEvents, tool, validateAgentEventArchiveV2, validateAgentEventSnapshotV2, z } from '@modelprofile.com/flexharness-agent';
|
|
7
7
|
export { AgentEventStoreConflictError, AgentSession, buildModelMessages, ToolJobStoreConflictError, createAgentEvent, filterModelVisibleAgentEvents, getAgentGenerationTransactions, modelMessagesToAgentEvents, tool, validateAgentEventArchiveV2, validateAgentEventSnapshotV2, z, };
|
|
8
|
-
export type { IAgentEventArchiveV2, IAgentContextCompactionOptions, IAgentEventSnapshotV2, IAgentEventStoreV2, IAgentGenerateResult, IAgentGenerationHandle, IAgentGenerationLease, IAgentRunResult, IAgentSession, IAgentSessionOptions, IAgentToolCallUpdateEvent, IAgentRuntimeEventPayload, IGenerationBegunEvent, IGenerationExecutionCompletedEvent, IGenerationExecutionStartedEvent, IGenerationOutcomeEvent, IToolExecutionContext, IToolExecutionIntentEvent, IToolJobSnapshot, IToolJobState, IToolJobStore, TAgentContextBuilder, TAgentContextCompactor, TAgentEvent, TAgentGenerationOutcome, TAgentToolCallFinishEvent, TAgentToolExecutionReconciliationOptions, } from '@modelprofile.com/flexharness-agent';
|
|
8
|
+
export type { IAgentEventArchiveV2, IAgentContextCompactionOptions, IAgentEventSnapshotV2, IAgentEventStoreV2, IAgentGenerateResult, IAgentGenerationHandle, IAgentGenerationLease, IAgentRetryEvent, IAgentRunResult, IAgentSession, IAgentSessionOptions, IAgentToolCallUpdateEvent, IAgentRuntimeEventPayload, IGenerationBegunEvent, IGenerationExecutionCompletedEvent, IGenerationExecutionStartedEvent, IGenerationOutcomeEvent, IToolExecutionContext, IToolExecutionIntentEvent, IToolJobSnapshot, IToolJobState, IToolJobStore, TAgentContextBuilder, TAgentContextCompactor, TAgentEvent, TAgentGenerationOutcome, TAgentModelCallUsage, TAgentModelCallUsageEvent, TAgentRetryReason, TAgentToolCallFinishEvent, TAgentToolExecutionReconciliationOptions, } from '@modelprofile.com/flexharness-agent';
|
|
9
|
+
import { isModelLimitError, isModelLimitInfo } from '@modelprofile.com/flexharness-models';
|
|
10
|
+
export { isModelLimitError, isModelLimitInfo };
|
|
11
|
+
export type { IModelLimitInfo } from '@modelprofile.com/flexharness-models';
|
package/dist_ts/plugins.js
CHANGED
|
@@ -7,4 +7,6 @@ export { AsyncLocalStorage, crypto, fs, path };
|
|
|
7
7
|
// @push.rocks scope
|
|
8
8
|
import { AgentEventStoreConflictError, AgentSession, buildModelMessages, ToolJobStoreConflictError, createAgentEvent, filterModelVisibleAgentEvents, getAgentGenerationTransactions, modelMessagesToAgentEvents, tool, validateAgentEventArchiveV2, validateAgentEventSnapshotV2, z, } from '@modelprofile.com/flexharness-agent';
|
|
9
9
|
export { AgentEventStoreConflictError, AgentSession, buildModelMessages, ToolJobStoreConflictError, createAgentEvent, filterModelVisibleAgentEvents, getAgentGenerationTransactions, modelMessagesToAgentEvents, tool, validateAgentEventArchiveV2, validateAgentEventSnapshotV2, z, };
|
|
10
|
-
|
|
10
|
+
import { isModelLimitError, isModelLimitInfo } from '@modelprofile.com/flexharness-models';
|
|
11
|
+
export { isModelLimitError, isModelLimitInfo };
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkMsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFFbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUM7QUFFL0Msb0JBQW9CO0FBQ3BCLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsZ0JBQWdCLEVBQ2hCLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsMEJBQTBCLEVBQzFCLElBQUksRUFDSiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLENBQUMsR0FDRixNQUFNLHFDQUFxQyxDQUFDO0FBRTdDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQix5QkFBeUIsRUFDekIsZ0JBQWdCLEVBQ2hCLDZCQUE2QixFQUM3Qiw4QkFBOEIsRUFDOUIsMEJBQTBCLEVBQzFCLElBQUksRUFDSiwyQkFBMkIsRUFDM0IsNEJBQTRCLEVBQzVCLENBQUMsR0FDRixDQUFDO0FBbUNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTNGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDIn0=
|