@modelprofile.com/flexharness 3.0.1 → 3.2.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/changelog.md +18 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.flexharness.d.ts +24 -2
- package/dist_ts/classes.flexharness.js +447 -78
- package/dist_ts/errors.d.ts +3 -0
- package/dist_ts/errors.js +7 -1
- package/dist_ts/interfaces.d.ts +38 -3
- package/package.json +1 -1
- package/readme.hints.md +8 -0
- package/readme.md +33 -7
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.flexharness.ts +552 -76
- package/ts/errors.ts +7 -0
- package/ts/interfaces.ts +51 -3
package/ts/errors.ts
CHANGED
|
@@ -38,6 +38,13 @@ export class FlexHarnessSessionBusyError extends FlexHarnessError {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
+
export class FlexHarnessQueueFullError extends FlexHarnessError {
|
|
42
|
+
constructor(message: string) {
|
|
43
|
+
super('FLEX_QUEUE_FULL', message);
|
|
44
|
+
this.name = 'FlexHarnessQueueFullError';
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
|
|
41
48
|
export class FlexHarnessAbortError extends FlexHarnessError {
|
|
42
49
|
constructor(message = 'The run was aborted.', options?: ErrorOptions) {
|
|
43
50
|
super('FLEX_ABORTED', message, options);
|
package/ts/interfaces.ts
CHANGED
|
@@ -157,6 +157,29 @@ export interface IFlexPromptOptions {
|
|
|
157
157
|
maxSteps?: number;
|
|
158
158
|
}
|
|
159
159
|
|
|
160
|
+
export type TFlexPromptQueueStatus =
|
|
161
|
+
| 'queued'
|
|
162
|
+
| 'starting'
|
|
163
|
+
| 'scheduled'
|
|
164
|
+
| 'running'
|
|
165
|
+
| 'completed'
|
|
166
|
+
| 'failed'
|
|
167
|
+
| 'cancelled';
|
|
168
|
+
|
|
169
|
+
export interface IFlexPromptQueueEntry {
|
|
170
|
+
queueId: string;
|
|
171
|
+
queueSequence: number;
|
|
172
|
+
scopeId: string;
|
|
173
|
+
sessionId: string;
|
|
174
|
+
status: TFlexPromptQueueStatus;
|
|
175
|
+
queuedAt: string;
|
|
176
|
+
runId?: string;
|
|
177
|
+
scheduleKey?: string;
|
|
178
|
+
startedAt?: string;
|
|
179
|
+
finishedAt?: string;
|
|
180
|
+
error?: IFlexErrorInfo;
|
|
181
|
+
}
|
|
182
|
+
|
|
160
183
|
export interface IFlexPromptResult {
|
|
161
184
|
runId: string;
|
|
162
185
|
sessionId: string;
|
|
@@ -168,11 +191,15 @@ export interface IFlexPromptResult {
|
|
|
168
191
|
steps: number;
|
|
169
192
|
}
|
|
170
193
|
|
|
171
|
-
export interface
|
|
172
|
-
|
|
194
|
+
export interface IFlexPromptQueueAdmission {
|
|
195
|
+
queueId: string;
|
|
173
196
|
completion: Promise<IFlexPromptResult>;
|
|
174
197
|
}
|
|
175
198
|
|
|
199
|
+
export interface IFlexPromptAdmission extends IFlexPromptQueueAdmission {
|
|
200
|
+
runId: string;
|
|
201
|
+
}
|
|
202
|
+
|
|
176
203
|
export interface IFlexSchedulePromptOptions extends IFlexPromptOptions {
|
|
177
204
|
debounceMs?: number;
|
|
178
205
|
}
|
|
@@ -366,6 +393,14 @@ export interface IFlexCallbackLimits {
|
|
|
366
393
|
maxParts?: number;
|
|
367
394
|
}
|
|
368
395
|
|
|
396
|
+
export interface IFlexPromptQueueLimits {
|
|
397
|
+
maxOutstandingPromptsPerSession?: number;
|
|
398
|
+
maxOutstandingBytesPerSession?: number;
|
|
399
|
+
maxPendingAdmissions?: number;
|
|
400
|
+
maxPendingAdmissionBytes?: number;
|
|
401
|
+
maxTerminalEntriesPerSession?: number;
|
|
402
|
+
}
|
|
403
|
+
|
|
369
404
|
export type TFlexExternalErrorSource =
|
|
370
405
|
| 'modelResolver'
|
|
371
406
|
| 'toolProvider'
|
|
@@ -426,6 +461,7 @@ export interface IFlexHarnessOptions<TScope> {
|
|
|
426
461
|
agentSessionPolicy?: IFlexAgentSessionPolicy;
|
|
427
462
|
toolOutputLimits?: IFlexJsonLimits;
|
|
428
463
|
callbackLimits?: IFlexCallbackLimits;
|
|
464
|
+
promptQueueLimits?: IFlexPromptQueueLimits;
|
|
429
465
|
externalErrorProjector?: TFlexExternalErrorProjector;
|
|
430
466
|
}
|
|
431
467
|
|
|
@@ -506,7 +542,11 @@ export interface IFlexPartChangedEvent extends IFlexEventBase {
|
|
|
506
542
|
readonly type: 'part.started' | 'part.delta' | 'part.completed';
|
|
507
543
|
readonly runId: string;
|
|
508
544
|
readonly messageId: string;
|
|
545
|
+
/** Zero-based position in the session's authoritative message sequence. */
|
|
546
|
+
readonly messageIndex: number;
|
|
509
547
|
readonly partId: string;
|
|
548
|
+
/** Zero-based position in the message's authoritative part sequence. */
|
|
549
|
+
readonly partIndex: number;
|
|
510
550
|
readonly part: TFlexMessagePart;
|
|
511
551
|
readonly delta?: string;
|
|
512
552
|
}
|
|
@@ -533,6 +573,13 @@ export interface IFlexRunFinishedEvent extends IFlexEventBase {
|
|
|
533
573
|
readonly error?: IFlexErrorInfo;
|
|
534
574
|
}
|
|
535
575
|
|
|
576
|
+
export interface IFlexPromptQueueEvent extends IFlexEventBase {
|
|
577
|
+
readonly type: 'prompt.queued' | 'prompt.started' | 'prompt.running' | 'prompt.finished';
|
|
578
|
+
readonly queueId: string;
|
|
579
|
+
readonly runId?: string;
|
|
580
|
+
readonly entry: IFlexPromptQueueEntry;
|
|
581
|
+
}
|
|
582
|
+
|
|
536
583
|
export interface IFlexErrorInfo {
|
|
537
584
|
name: string;
|
|
538
585
|
message: string;
|
|
@@ -548,6 +595,7 @@ export type TFlexHarnessEvent =
|
|
|
548
595
|
| IFlexPartChangedEvent
|
|
549
596
|
| IFlexPermissionRequestedEvent
|
|
550
597
|
| IFlexPermissionResolvedEvent
|
|
551
|
-
| IFlexRunFinishedEvent
|
|
598
|
+
| IFlexRunFinishedEvent
|
|
599
|
+
| IFlexPromptQueueEvent;
|
|
552
600
|
|
|
553
601
|
export type TFlexHarnessEventListener = (event: TFlexHarnessEvent) => void;
|