@modelprofile.com/flexharness 10.24.0 → 11.0.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 +2 -2
- package/dist_ts/classes.codesandbox.js +1 -1
- package/dist_ts/classes.flexharness.admission.d.ts +17 -0
- package/dist_ts/classes.flexharness.admission.js +263 -0
- package/dist_ts/classes.flexharness.callbacks.d.ts +38 -0
- package/dist_ts/classes.flexharness.callbacks.js +313 -0
- package/dist_ts/classes.flexharness.compaction.d.ts +25 -0
- package/dist_ts/classes.flexharness.compaction.js +87 -0
- package/dist_ts/classes.flexharness.configurations.d.ts +11 -0
- package/dist_ts/classes.flexharness.configurations.js +137 -0
- package/dist_ts/classes.flexharness.core.d.ts +143 -0
- package/dist_ts/classes.flexharness.core.js +1538 -0
- package/dist_ts/classes.flexharness.d.ts +2 -437
- package/dist_ts/classes.flexharness.deletion.d.ts +31 -0
- package/dist_ts/classes.flexharness.deletion.js +396 -0
- package/dist_ts/classes.flexharness.imports.d.ts +24 -0
- package/dist_ts/classes.flexharness.imports.js +345 -0
- package/dist_ts/classes.flexharness.js +119 -9776
- package/dist_ts/classes.flexharness.lifecycle.d.ts +47 -0
- package/dist_ts/classes.flexharness.lifecycle.js +625 -0
- package/dist_ts/classes.flexharness.permissions.d.ts +19 -0
- package/dist_ts/classes.flexharness.permissions.js +450 -0
- package/dist_ts/classes.flexharness.projects.d.ts +55 -0
- package/dist_ts/classes.flexharness.projects.js +575 -0
- package/dist_ts/classes.flexharness.prompts.d.ts +44 -0
- package/dist_ts/classes.flexharness.prompts.js +659 -0
- package/dist_ts/classes.flexharness.providers.d.ts +18 -0
- package/dist_ts/classes.flexharness.providers.js +267 -0
- package/dist_ts/classes.flexharness.results.d.ts +26 -0
- package/dist_ts/classes.flexharness.results.js +89 -0
- package/dist_ts/classes.flexharness.reversions.d.ts +52 -0
- package/dist_ts/classes.flexharness.reversions.js +1306 -0
- package/dist_ts/classes.flexharness.runs.d.ts +63 -0
- package/dist_ts/classes.flexharness.runs.js +1058 -0
- package/dist_ts/classes.flexharness.sessions.d.ts +20 -0
- package/dist_ts/classes.flexharness.sessions.js +381 -0
- package/dist_ts/classes.flexharness.slashcommands.d.ts +40 -0
- package/dist_ts/classes.flexharness.slashcommands.js +458 -0
- package/dist_ts/classes.flexharness.subagents.d.ts +31 -0
- package/dist_ts/classes.flexharness.subagents.js +690 -0
- package/dist_ts/classes.flexharness.tooldispatch.d.ts +53 -0
- package/dist_ts/classes.flexharness.tooldispatch.js +418 -0
- package/dist_ts/classes.stores.js +1 -1
- package/dist_ts/classes.toolcatalog.js +1 -1
- package/dist_ts/errors.js +1 -1
- package/dist_ts/functions.toolpermissions.js +1 -1
- package/dist_ts/interfaces.d.ts +3 -3
- package/dist_ts/interfaces.flexharness.d.ts +455 -0
- package/dist_ts/interfaces.flexharness.js +2 -0
- package/dist_ts/utils.flexharness.d.ts +19 -0
- package/dist_ts/utils.flexharness.js +83 -0
- package/dist_ts/utils.harnessoptions.js +1 -1
- package/dist_ts/utils.json.js +1 -1
- package/dist_ts/utils.schemadeclarations.js +1 -1
- package/dist_ts/utils.sessionimport.js +1 -1
- package/dist_ts/utils.sessionmetrics.d.ts +1 -1
- package/dist_ts_chat/classes.chatsession.js +1 -1
- package/dist_ts_chat_harness/classes.transcript.js +1 -1
- package/dist_ts_chat_harness/functions.intents.js +1 -1
- package/dist_ts_chat_harness/functions.mapping.d.ts +1 -1
- package/dist_ts_chat_harness/functions.mapping.js +1 -1
- package/dist_ts_chat_harness_server/classes.chathub.d.ts +18 -7
- package/dist_ts_chat_harness_server/classes.chathub.js +65 -62
- package/dist_ts_chat_harness_server/classes.chatsubscription.d.ts +5 -3
- package/dist_ts_chat_harness_server/classes.chatsubscription.js +4 -4
- package/dist_ts_chat_harness_server/classes.scopedirectory.d.ts +17 -0
- package/dist_ts_chat_harness_server/classes.scopedirectory.js +49 -0
- package/dist_ts_chat_harness_server/classes.sessionlists.d.ts +3 -5
- package/dist_ts_chat_harness_server/classes.sessionlists.js +11 -12
- package/dist_ts_chat_harness_server/classes.turngate.d.ts +8 -2
- package/dist_ts_chat_harness_server/classes.turngate.js +22 -21
- package/dist_ts_chat_harness_server/functions.errorprojector.js +1 -1
- package/dist_ts_chat_harness_server/index.d.ts +3 -2
- package/dist_ts_chat_harness_server/index.js +3 -2
- package/dist_ts_chat_harness_server/interfaces.d.ts +35 -2
- package/dist_ts_chat_harness_server/plugins.d.ts +1 -1
- package/dist_ts_chat_harness_typedsocket/classes.clienttransport.d.ts +28 -3
- package/dist_ts_chat_harness_typedsocket/classes.clienttransport.js +71 -15
- package/dist_ts_chat_harness_typedsocket/classes.serverbinding.d.ts +5 -3
- package/dist_ts_chat_harness_typedsocket/classes.serverbinding.js +79 -16
- package/dist_ts_chat_harness_typedsocket/index.d.ts +2 -2
- package/dist_ts_chat_harness_typedsocket/index.js +1 -1
- package/dist_ts_chat_harness_typedsocket/interfaces.requests.d.ts +20 -11
- package/dist_ts_chat_web/flexchat-input.js +1 -1
- package/dist_ts_chat_web/flexchat-message.js +1 -1
- package/dist_ts_chat_web/flexchat-window.js +1 -1
- package/dist_ts_compaction/smartagent.compaction.js +1 -1
- package/dist_ts_kvm/ocr.js +1 -1
- package/dist_ts_ocr/classes.imageocr.js +1 -1
- package/dist_ts_ocr/ocr.mistral.js +1 -1
- package/dist_ts_stores_nosqldb/classes.nosqldbstores.js +1 -1
- package/dist_ts_tools/tool.browser.js +1 -1
- package/dist_ts_tools/tool.filesystem.js +1 -1
- package/dist_ts_tools/tool.shell.js +1 -1
- package/dist_ts_tools_node/tool.context.js +1 -1
- package/dist_ts_typedrequest/catalog.d.ts +2 -2
- package/dist_ts_typedrequest/catalog.js +1 -1
- package/package.json +3 -3
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.flexharness.admission.ts +331 -0
- package/ts/classes.flexharness.callbacks.ts +352 -0
- package/ts/classes.flexharness.compaction.ts +167 -0
- package/ts/classes.flexharness.configurations.ts +167 -0
- package/ts/classes.flexharness.core.ts +1830 -0
- package/ts/classes.flexharness.deletion.ts +616 -0
- package/ts/classes.flexharness.imports.ts +414 -0
- package/ts/classes.flexharness.lifecycle.ts +786 -0
- package/ts/classes.flexharness.permissions.ts +535 -0
- package/ts/classes.flexharness.projects.ts +1006 -0
- package/ts/classes.flexharness.prompts.ts +857 -0
- package/ts/classes.flexharness.providers.ts +322 -0
- package/ts/classes.flexharness.results.ts +98 -0
- package/ts/classes.flexharness.reversions.ts +1684 -0
- package/ts/classes.flexharness.runs.ts +1204 -0
- package/ts/classes.flexharness.sessions.ts +483 -0
- package/ts/classes.flexharness.slashcommands.ts +705 -0
- package/ts/classes.flexharness.subagents.ts +860 -0
- package/ts/classes.flexharness.tooldispatch.ts +475 -0
- package/ts/classes.flexharness.ts +147 -12567
- package/ts/interfaces.flexharness.ts +517 -0
- package/ts/utils.flexharness.ts +121 -0
- package/ts_chat_harness_server/classes.chathub.ts +68 -61
- package/ts_chat_harness_server/classes.chatsubscription.ts +7 -5
- package/ts_chat_harness_server/classes.scopedirectory.ts +67 -0
- package/ts_chat_harness_server/classes.sessionlists.ts +11 -19
- package/ts_chat_harness_server/classes.turngate.ts +28 -21
- package/ts_chat_harness_server/index.ts +4 -5
- package/ts_chat_harness_server/interfaces.ts +35 -2
- package/ts_chat_harness_server/plugins.ts +0 -3
- package/ts_chat_harness_server/readme.md +6 -4
- package/ts_chat_harness_typedsocket/classes.clienttransport.ts +92 -23
- package/ts_chat_harness_typedsocket/classes.serverbinding.ts +88 -16
- package/ts_chat_harness_typedsocket/index.ts +4 -2
- package/ts_chat_harness_typedsocket/interfaces.requests.ts +15 -11
- package/ts_chat_harness_typedsocket/readme.md +7 -3
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@modelprofile.com/flexharness',
|
|
6
|
-
version: '
|
|
6
|
+
version: '11.0.0',
|
|
7
7
|
description: 'The FlexHarness toolbox source repository and shared dependency catalog.'
|
|
8
8
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSwrQkFBK0I7SUFDckMsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLDBFQUEwRTtDQUN4RixDQUFBIn0=
|
|
@@ -540,4 +540,4 @@ class CodeRun {
|
|
|
540
540
|
}
|
|
541
541
|
}
|
|
542
542
|
}
|
|
543
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb2Rlc2FuZGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2NsYXNzZXMuY29kZXNhbmRib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBeUJ6RCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUM7QUFDakMsbUdBQW1HO0FBQ25HLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQztBQUkxQixNQUFNLGFBQWEsR0FBRywrQ0FBK0MsQ0FBQztBQUN0RSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFFN0I7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrRmYsQ0FBQztBQUVGLElBQUksYUFBOEQsQ0FBQztBQUVuRTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDVztJQUFyQyxZQUFxQyxNQUFrQztRQUFsQyxXQUFNLEdBQU4sTUFBTSxDQUE0QjtJQUFHLENBQUM7SUFFM0UsaURBQWlEO0lBQzFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSTtRQUN0QixhQUFhLEtBQUssT0FBTyxDQUFDLHVCQUF1QixFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBYyxFQUFFLEVBQUU7WUFDM0UsYUFBYSxHQUFHLFNBQVMsQ0FBQztZQUMxQixNQUFNLElBQUksMEJBQTBCLENBQ2xDLDhEQUE4RDtrQkFDMUQsbURBQW1ELEVBQ3ZELEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUNqQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksZUFBZSxDQUFDLE1BQU0sYUFBYSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVN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
|
|
543
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5jb2Rlc2FuZGJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2NsYXNzZXMuY29kZXNhbmRib3gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBeUJ6RCxNQUFNLFdBQVcsR0FBRyxZQUFZLENBQUM7QUFDakMsbUdBQW1HO0FBQ25HLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQztBQUkxQixNQUFNLGFBQWEsR0FBRywrQ0FBK0MsQ0FBQztBQUN0RSxNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUM7QUFFN0I7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrRmYsQ0FBQztBQUVGLElBQUksYUFBOEQsQ0FBQztBQUVuRTs7OztHQUlHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDVyxNQUFNO0lBQTNDLFlBQXFDLE1BQWtDO3NCQUFsQyxNQUFNO0lBQStCLENBQUM7SUFFM0UsaURBQWlEO0lBQzFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSTtRQUN0QixhQUFhLEtBQUssT0FBTyxDQUFDLHVCQUF1QixFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBYyxFQUFFLEVBQUU7WUFDM0UsYUFBYSxHQUFHLFNBQVMsQ0FBQztZQUMxQixNQUFNLElBQUksMEJBQTBCLENBQ2xDLDhEQUE4RDtrQkFDMUQsbURBQW1ELEVBQ3ZELEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUNqQixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLElBQUksZUFBZSxDQUFDLE1BQU0sYUFBYSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVNLEdBQUcsQ0FD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
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { IFlexSession, IFlexSubagentDefinition } from './interfaces.js';
|
|
2
|
+
import type { IStoredSessionState, IStorageState, IActiveRun, IDelegatedRunAdmissionSeed, IDelegatedRunAdmissionOwner, IQueuedPrompt } from './interfaces.flexharness.js';
|
|
3
|
+
import type { FlexHarnessCore } from './classes.flexharness.core.js';
|
|
4
|
+
/** Admission of delegated runs through the delegated run admission provider. */
|
|
5
|
+
export declare class FlexHarnessDelegatedRunAdmission<TScope> {
|
|
6
|
+
private readonly core;
|
|
7
|
+
constructor(core: FlexHarnessCore<TScope>);
|
|
8
|
+
assertDelegatedRunAdmissionOwnership(seed: IDelegatedRunAdmissionSeed, state: IStorageState, childStored: IStoredSessionState, scopeId: string): void;
|
|
9
|
+
acquireDelegatedRunAdmission(queued: IQueuedPrompt, run: IActiveRun): Promise<void>;
|
|
10
|
+
private normalizeDelegatedRunAdmissionLease;
|
|
11
|
+
private requestDelegatedRunAdmissionClose;
|
|
12
|
+
private startDelegatedRunAdmissionCloseAttempt;
|
|
13
|
+
closeRunDelegatedRunAdmission(run: IActiveRun, awaitSettlement?: boolean): Promise<void>;
|
|
14
|
+
createDelegatedRunAdmissionSeed(run: IActiveRun, child: IStoredSessionState, definition: Readonly<IFlexSubagentDefinition>, toolCallId: string): IDelegatedRunAdmissionSeed;
|
|
15
|
+
delegatedRunAdmissionOwnersForGeneration(state: IStorageState, session: Readonly<Pick<IFlexSession, 'sessionId' | 'sessionGenerationId' | 'sessionGenerationSequence'>>): IDelegatedRunAdmissionOwner[];
|
|
16
|
+
settleDelegatedRunAdmissionOwners(owners: readonly IDelegatedRunAdmissionOwner[]): Promise<Error[]>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { FlexHarnessAbortError, FlexHarnessValidationError } from './errors.js';
|
|
2
|
+
import { requireSessionGeneration } from './utils.flexharness.js';
|
|
3
|
+
/** Admission of delegated runs through the delegated run admission provider. */
|
|
4
|
+
export class FlexHarnessDelegatedRunAdmission {
|
|
5
|
+
core;
|
|
6
|
+
constructor(core) {
|
|
7
|
+
this.core = core;
|
|
8
|
+
}
|
|
9
|
+
assertDelegatedRunAdmissionOwnership(seed, state, childStored, scopeId) {
|
|
10
|
+
const child = childStored.session;
|
|
11
|
+
const parentRun = seed.parentRun;
|
|
12
|
+
const parent = seed.parentStored.session;
|
|
13
|
+
const parentPartId = parentRun.toolPartIds.get(seed.parentToolCallId);
|
|
14
|
+
const parentPart = parentRun.callbackParts.find((part) => part.type === 'tool'
|
|
15
|
+
&& part.partId === parentPartId
|
|
16
|
+
&& part.toolCallId === seed.parentToolCallId);
|
|
17
|
+
if (seed.state !== state
|
|
18
|
+
|| seed.storageKey !== state.storageKey
|
|
19
|
+
|| seed.scopeId !== scopeId
|
|
20
|
+
|| seed.childStored !== childStored
|
|
21
|
+
|| childStored.storageKey !== seed.storageKey
|
|
22
|
+
|| state.sessions.get(seed.sessionId) !== childStored
|
|
23
|
+
|| state.tombstones.has(seed.sessionId)
|
|
24
|
+
|| state.initializingSessions.has(seed.sessionId)
|
|
25
|
+
|| child.sessionId !== seed.sessionId
|
|
26
|
+
|| child.sessionGenerationId !== seed.sessionGenerationId
|
|
27
|
+
|| child.sessionGenerationSequence !== seed.sessionGenerationSequence
|
|
28
|
+
|| child.parentSessionId !== seed.parentSessionId
|
|
29
|
+
|| child.parentRunId !== seed.originParentRunId
|
|
30
|
+
|| child.parentToolCallId !== seed.originParentToolCallId
|
|
31
|
+
|| child.agent !== seed.agent
|
|
32
|
+
|| child.depth !== seed.depth
|
|
33
|
+
|| seed.parentStored !== parentRun.stored
|
|
34
|
+
|| seed.parentStored.storageKey !== seed.storageKey
|
|
35
|
+
|| parentRun.state !== state
|
|
36
|
+
|| parentRun.scopeId !== seed.scopeId
|
|
37
|
+
|| parentRun.scope !== seed.scope
|
|
38
|
+
|| parentRun.sessionId !== seed.parentSessionId
|
|
39
|
+
|| parentRun.queueId !== seed.parentQueueId
|
|
40
|
+
|| parentRun.runId !== seed.parentRunId
|
|
41
|
+
|| state.sessions.get(seed.parentSessionId) !== seed.parentStored
|
|
42
|
+
|| state.tombstones.has(seed.parentSessionId)
|
|
43
|
+
|| parent.sessionId !== seed.parentSessionId
|
|
44
|
+
|| parent.sessionGenerationId !== seed.parentSessionGenerationId
|
|
45
|
+
|| parent.sessionGenerationSequence !== seed.parentSessionGenerationSequence
|
|
46
|
+
|| state.activeRuns.get(seed.parentSessionId) !== parentRun
|
|
47
|
+
|| parentRun.callbacksClosed
|
|
48
|
+
|| parentRun.controller.signal.aborted
|
|
49
|
+
|| parentPart?.status !== 'running') {
|
|
50
|
+
throw this.core.trustInternalError(new FlexHarnessAbortError('The delegated prompt lost its exact parent or child ownership.'));
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async acquireDelegatedRunAdmission(queued, run) {
|
|
54
|
+
const seed = queued.delegationSeed;
|
|
55
|
+
const provider = this.core.delegatedRunAdmissionProvider;
|
|
56
|
+
if (!seed || !provider)
|
|
57
|
+
return;
|
|
58
|
+
const context = Object.freeze({
|
|
59
|
+
scopeId: seed.scopeId,
|
|
60
|
+
scope: seed.scope,
|
|
61
|
+
storageKey: seed.storageKey,
|
|
62
|
+
sessionId: seed.sessionId,
|
|
63
|
+
sessionGenerationId: seed.sessionGenerationId,
|
|
64
|
+
sessionGenerationSequence: seed.sessionGenerationSequence,
|
|
65
|
+
queueId: queued.queueId,
|
|
66
|
+
runId: run.runId,
|
|
67
|
+
parentSessionId: seed.parentSessionId,
|
|
68
|
+
parentSessionGenerationId: seed.parentSessionGenerationId,
|
|
69
|
+
parentSessionGenerationSequence: seed.parentSessionGenerationSequence,
|
|
70
|
+
parentQueueId: seed.parentQueueId,
|
|
71
|
+
parentRunId: seed.parentRunId,
|
|
72
|
+
parentToolCallId: seed.parentToolCallId,
|
|
73
|
+
originParentRunId: seed.originParentRunId,
|
|
74
|
+
originParentToolCallId: seed.originParentToolCallId,
|
|
75
|
+
agent: seed.agent,
|
|
76
|
+
depth: seed.depth,
|
|
77
|
+
signal: run.controller.signal,
|
|
78
|
+
});
|
|
79
|
+
const owner = {
|
|
80
|
+
storageState: run.state,
|
|
81
|
+
run,
|
|
82
|
+
context,
|
|
83
|
+
status: 'acquiring',
|
|
84
|
+
acquisitionSettled: false,
|
|
85
|
+
acquisitionDetached: false,
|
|
86
|
+
closeAttemptSequence: 0,
|
|
87
|
+
};
|
|
88
|
+
run.state.delegatedRunAdmissionOwners.add(owner);
|
|
89
|
+
run.delegatedRunAdmissionOwner = owner;
|
|
90
|
+
const acquisition = Promise.resolve()
|
|
91
|
+
.then(() => provider.acquireDelegatedRunAdmission(context))
|
|
92
|
+
.then((lease) => this.normalizeDelegatedRunAdmissionLease(lease))
|
|
93
|
+
.then((lease) => {
|
|
94
|
+
owner.lease = lease;
|
|
95
|
+
owner.acquisitionSettled = true;
|
|
96
|
+
if (owner.status === 'acquiring')
|
|
97
|
+
owner.status = 'acquired';
|
|
98
|
+
if (owner.status === 'close-requested') {
|
|
99
|
+
void this.startDelegatedRunAdmissionCloseAttempt(owner).catch(() => undefined);
|
|
100
|
+
}
|
|
101
|
+
}, (error) => {
|
|
102
|
+
owner.acquisitionError = this.core.projectExternalError(run, error, 'delegatedRunAdmissionProvider');
|
|
103
|
+
owner.acquisitionSettled = true;
|
|
104
|
+
owner.status = 'closed';
|
|
105
|
+
run.state.delegatedRunAdmissionOwners.delete(owner);
|
|
106
|
+
});
|
|
107
|
+
owner.acquisitionCompletion = acquisition;
|
|
108
|
+
let resolveAbort;
|
|
109
|
+
const abort = new Promise((resolve) => {
|
|
110
|
+
resolveAbort = () => resolve('aborted');
|
|
111
|
+
});
|
|
112
|
+
run.controller.signal.addEventListener('abort', resolveAbort, { once: true });
|
|
113
|
+
if (run.controller.signal.aborted)
|
|
114
|
+
resolveAbort();
|
|
115
|
+
try {
|
|
116
|
+
const outcome = await Promise.race([
|
|
117
|
+
acquisition.then(() => 'settled'),
|
|
118
|
+
abort,
|
|
119
|
+
]);
|
|
120
|
+
if (outcome === 'aborted') {
|
|
121
|
+
owner.acquisitionDetached = true;
|
|
122
|
+
throw run.controller.signal.reason ?? this.core.trustInternalError(new FlexHarnessAbortError());
|
|
123
|
+
}
|
|
124
|
+
if (run.controller.signal.aborted) {
|
|
125
|
+
throw run.controller.signal.reason ?? this.core.trustInternalError(new FlexHarnessAbortError());
|
|
126
|
+
}
|
|
127
|
+
if (owner.acquisitionError)
|
|
128
|
+
throw owner.acquisitionError;
|
|
129
|
+
if (owner.status !== 'acquired' || !owner.lease) {
|
|
130
|
+
throw this.core.trustInternalError(new FlexHarnessAbortError('The delegated run admission was retired during acquisition.'));
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
finally {
|
|
134
|
+
run.controller.signal.removeEventListener('abort', resolveAbort);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
normalizeDelegatedRunAdmissionLease(value) {
|
|
138
|
+
if (!value || (typeof value !== 'object' && typeof value !== 'function')) {
|
|
139
|
+
throw new FlexHarnessValidationError('Delegated run admission provider returned an invalid lease.');
|
|
140
|
+
}
|
|
141
|
+
const close = value.close;
|
|
142
|
+
if (typeof close !== 'function') {
|
|
143
|
+
throw new FlexHarnessValidationError('Delegated run admission provider returned an invalid lease.');
|
|
144
|
+
}
|
|
145
|
+
return Object.freeze({ close: () => close.call(value) });
|
|
146
|
+
}
|
|
147
|
+
requestDelegatedRunAdmissionClose(owner) {
|
|
148
|
+
const priorAttemptSequence = owner.closeAttemptSequence;
|
|
149
|
+
const joinedAttempt = owner.closeAttempt;
|
|
150
|
+
if (owner.status === 'closed')
|
|
151
|
+
return Promise.resolve();
|
|
152
|
+
if (owner.status !== 'retrying')
|
|
153
|
+
owner.status = 'close-requested';
|
|
154
|
+
return (async () => {
|
|
155
|
+
await owner.acquisitionCompletion;
|
|
156
|
+
if (owner.status === 'closed')
|
|
157
|
+
return;
|
|
158
|
+
if (joinedAttempt) {
|
|
159
|
+
await joinedAttempt;
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
if (owner.closeAttempt) {
|
|
163
|
+
await owner.closeAttempt;
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
if (owner.closeFailure && owner.closeFailure.sequence > priorAttemptSequence) {
|
|
167
|
+
throw owner.closeFailure.error;
|
|
168
|
+
}
|
|
169
|
+
await this.startDelegatedRunAdmissionCloseAttempt(owner);
|
|
170
|
+
})();
|
|
171
|
+
}
|
|
172
|
+
startDelegatedRunAdmissionCloseAttempt(owner) {
|
|
173
|
+
if (owner.closeAttempt)
|
|
174
|
+
return owner.closeAttempt;
|
|
175
|
+
if (!owner.lease) {
|
|
176
|
+
throw new Error('Acquired delegated run admission has no lease.');
|
|
177
|
+
}
|
|
178
|
+
owner.status = 'retrying';
|
|
179
|
+
owner.closeFailure = undefined;
|
|
180
|
+
const sequence = ++owner.closeAttemptSequence;
|
|
181
|
+
let attempt;
|
|
182
|
+
attempt = Promise.resolve()
|
|
183
|
+
.then(() => owner.lease.close())
|
|
184
|
+
.then(() => {
|
|
185
|
+
owner.status = 'closed';
|
|
186
|
+
delete owner.lease;
|
|
187
|
+
owner.storageState.delegatedRunAdmissionOwners.delete(owner);
|
|
188
|
+
}, (error) => {
|
|
189
|
+
const projected = this.core.projectExternalError(owner.run, error, 'delegatedRunAdmissionProvider');
|
|
190
|
+
owner.closeFailure = { sequence, error: projected };
|
|
191
|
+
owner.status = 'close-requested';
|
|
192
|
+
throw projected;
|
|
193
|
+
})
|
|
194
|
+
.finally(() => {
|
|
195
|
+
if (owner.closeAttempt === attempt)
|
|
196
|
+
owner.closeAttempt = undefined;
|
|
197
|
+
});
|
|
198
|
+
owner.closeAttempt = attempt;
|
|
199
|
+
return attempt;
|
|
200
|
+
}
|
|
201
|
+
async closeRunDelegatedRunAdmission(run, awaitSettlement = true) {
|
|
202
|
+
const owner = run.delegatedRunAdmissionOwner;
|
|
203
|
+
if (!owner)
|
|
204
|
+
return;
|
|
205
|
+
if (!run.delegatedRunAdmissionClose) {
|
|
206
|
+
run.delegatedRunAdmissionClose = this.requestDelegatedRunAdmissionClose(owner);
|
|
207
|
+
void run.delegatedRunAdmissionClose.catch(() => undefined);
|
|
208
|
+
}
|
|
209
|
+
if (awaitSettlement)
|
|
210
|
+
await run.delegatedRunAdmissionClose;
|
|
211
|
+
}
|
|
212
|
+
createDelegatedRunAdmissionSeed(run, child, definition, toolCallId) {
|
|
213
|
+
const childGeneration = requireSessionGeneration(child.session);
|
|
214
|
+
const parentGeneration = requireSessionGeneration(run.stored.session);
|
|
215
|
+
if (!child.session.parentRunId || !child.session.parentToolCallId) {
|
|
216
|
+
throw new FlexHarnessValidationError('Subagent session origin metadata is missing.');
|
|
217
|
+
}
|
|
218
|
+
const seed = Object.freeze({
|
|
219
|
+
state: run.state,
|
|
220
|
+
childStored: child,
|
|
221
|
+
parentRun: run,
|
|
222
|
+
parentStored: run.stored,
|
|
223
|
+
scopeId: run.scopeId,
|
|
224
|
+
scope: run.scope,
|
|
225
|
+
storageKey: run.state.storageKey,
|
|
226
|
+
sessionId: child.session.sessionId,
|
|
227
|
+
...childGeneration,
|
|
228
|
+
originParentRunId: child.session.parentRunId,
|
|
229
|
+
originParentToolCallId: child.session.parentToolCallId,
|
|
230
|
+
parentSessionId: run.sessionId,
|
|
231
|
+
parentSessionGenerationId: parentGeneration.sessionGenerationId,
|
|
232
|
+
parentSessionGenerationSequence: parentGeneration.sessionGenerationSequence,
|
|
233
|
+
parentQueueId: run.queueId,
|
|
234
|
+
parentRunId: run.runId,
|
|
235
|
+
parentToolCallId: toolCallId,
|
|
236
|
+
...(run.stored.session.configurationRef === undefined
|
|
237
|
+
? {}
|
|
238
|
+
: { configurationRef: run.stored.session.configurationRef }),
|
|
239
|
+
agent: definition.name,
|
|
240
|
+
depth: (run.stored.session.depth ?? 0) + 1,
|
|
241
|
+
});
|
|
242
|
+
this.assertDelegatedRunAdmissionOwnership(seed, run.state, child, run.scopeId);
|
|
243
|
+
return seed;
|
|
244
|
+
}
|
|
245
|
+
delegatedRunAdmissionOwnersForGeneration(state, session) {
|
|
246
|
+
return [...state.delegatedRunAdmissionOwners].filter((owner) => owner.storageState === state
|
|
247
|
+
&& owner.context.sessionId === session.sessionId
|
|
248
|
+
&& owner.context.sessionGenerationId === session.sessionGenerationId
|
|
249
|
+
&& owner.context.sessionGenerationSequence === session.sessionGenerationSequence);
|
|
250
|
+
}
|
|
251
|
+
async settleDelegatedRunAdmissionOwners(owners) {
|
|
252
|
+
const results = await Promise.allSettled(owners.map((owner) => this.requestDelegatedRunAdmissionClose(owner)));
|
|
253
|
+
return results.flatMap((result, index) => {
|
|
254
|
+
if (result.status === 'fulfilled')
|
|
255
|
+
return [];
|
|
256
|
+
const error = result.reason instanceof Error
|
|
257
|
+
? result.reason
|
|
258
|
+
: this.core.projectExternalError(owners[index].run, result.reason, 'delegatedRunAdmissionProvider');
|
|
259
|
+
return [error];
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5mbGV4aGFybmVzcy5hZG1pc3Npb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLmZsZXhoYXJuZXNzLmFkbWlzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFlaEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHbEUsZ0ZBQWdGO0FBQ2hGLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDZCxJQUFJO0lBQWpDLFlBQTZCLElBQTZCO29CQUE3QixJQUFJO0lBQTRCLENBQUM7SUFFdkQsb0NBQW9DLENBQ3pDLElBQWdDLEVBQ2hDLEtBQW9CLEVBQ3BCLFdBQWdDLEVBQ2hDLE9BQWU7UUFFZixNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDakMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFDekMsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdEUsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQWdDLEVBQUUsQ0FDckYsSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNO2VBQ2pCLElBQUksQ0FBQyxNQUFNLEtBQUssWUFBWTtlQUM1QixJQUFJLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hELElBQ0UsSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLO2VBQ2pCLElBQUksQ0FBQyxVQUFVLEtBQUssS0FBSyxDQUFDLFVBQVU7ZUFDcEMsSUFBSSxDQUFDLE9BQU8sS0FBSyxPQUFPO2VB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
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import { type TFlexAgentToolCallUpdateEvent, type TFlexAgentToolCallFinishEvent } from './interfaces.js';
|
|
3
|
+
import { type ISessionMetricsOperation } from './utils.sessionmetrics.js';
|
|
4
|
+
import type { IStoredSessionState, IStorageState, IActiveRun } from './interfaces.flexharness.js';
|
|
5
|
+
import type { FlexHarnessCore } from './classes.flexharness.core.js';
|
|
6
|
+
/** The model stream callbacks of a run: text, reasoning, tool, retry and usage events. */
|
|
7
|
+
export declare class FlexHarnessRunCallbacks<TScope> {
|
|
8
|
+
private readonly core;
|
|
9
|
+
constructor(core: FlexHarnessCore<TScope>);
|
|
10
|
+
onTextDelta(state: IStorageState, sessionId: string, delta: string): void;
|
|
11
|
+
onReasoningStart(state: IStorageState, sessionId: string, id: string): void;
|
|
12
|
+
onReasoningDelta(state: IStorageState, sessionId: string, id: string, delta: string): void;
|
|
13
|
+
onReasoningEnd(state: IStorageState, sessionId: string, id: string, text: string): void;
|
|
14
|
+
private textAppendAccounting;
|
|
15
|
+
onToolStart(state: IStorageState, sessionId: string, event: {
|
|
16
|
+
toolCallId: string;
|
|
17
|
+
toolName: string;
|
|
18
|
+
input: unknown;
|
|
19
|
+
parentToolCallId?: string;
|
|
20
|
+
}): void;
|
|
21
|
+
onToolFinish(state: IStorageState, sessionId: string, event: TFlexAgentToolCallFinishEvent): void;
|
|
22
|
+
onToolUpdate(state: IStorageState, sessionId: string, event: TFlexAgentToolCallUpdateEvent): void;
|
|
23
|
+
onRetry(state: IStorageState, sessionId: string, retry: plugins.IAgentRetryEvent): void;
|
|
24
|
+
/**
|
|
25
|
+
* Emits the usage of every model call and adds reported usage to its run. A run executes a
|
|
26
|
+
* transactional generation, and `AgentSession.generate()` settles a transactional generation only
|
|
27
|
+
* after it has reported each of its model calls, also when it is aborted. `executeRun()` awaits
|
|
28
|
+
* that settlement before it builds the terminal, so the run is still active for each of its
|
|
29
|
+
* events: they all reach `run.usage` and precede its `run.finished`. The events bypass the
|
|
30
|
+
* callback limits and a failed callback: their number is bounded by the run's model calls, and
|
|
31
|
+
* the usage of a run that exhausted its callback budget or failed in a callback must not be lost.
|
|
32
|
+
*/
|
|
33
|
+
onModelCallUsage(state: IStorageState, stored: IStoredSessionState, event: plugins.TAgentModelCallUsageEvent): void;
|
|
34
|
+
settleMetricsOperation(state: IStorageState, stored: IStoredSessionState, operation: ISessionMetricsOperation): Promise<void>;
|
|
35
|
+
private callbackRun;
|
|
36
|
+
reserveCallbackCapacity(run: IActiveRun, eventCount: number, outputBytes: number, partCount: number): boolean;
|
|
37
|
+
private failCallback;
|
|
38
|
+
}
|