@modelprofile.com/flexharness-agent 6.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_agent/index.d.ts +17 -0
- package/dist_ts_agent/index.js +14 -0
- package/dist_ts_agent/plugins.d.ts +16 -0
- package/dist_ts_agent/plugins.js +18 -0
- package/dist_ts_agent/smartagent.classes.agent.d.ts +2 -0
- package/dist_ts_agent/smartagent.classes.agent.js +95 -0
- package/dist_ts_agent/smartagent.classes.session.d.ts +90 -0
- package/dist_ts_agent/smartagent.classes.session.js +2139 -0
- package/dist_ts_agent/smartagent.classes.toolregistry.d.ts +12 -0
- package/dist_ts_agent/smartagent.classes.toolregistry.js +23 -0
- package/dist_ts_agent/smartagent.context.d.ts +3 -0
- package/dist_ts_agent/smartagent.context.js +247 -0
- package/dist_ts_agent/smartagent.events.d.ts +160 -0
- package/dist_ts_agent/smartagent.events.js +136 -0
- package/dist_ts_agent/smartagent.interfaces.d.ts +275 -0
- package/dist_ts_agent/smartagent.interfaces.js +24 -0
- package/dist_ts_agent/smartagent.persistence.d.ts +88 -0
- package/dist_ts_agent/smartagent.persistence.js +677 -0
- package/dist_ts_agent/smartagent.transactions.d.ts +15 -0
- package/dist_ts_agent/smartagent.transactions.js +141 -0
- package/dist_ts_agent/tool.adapter.d.ts +29 -0
- package/dist_ts_agent/tool.adapter.js +60 -0
- package/dist_ts_agent/tool.contracts.d.ts +126 -0
- package/dist_ts_agent/tool.contracts.js +2 -0
- package/dist_ts_agent/tool.persistence.d.ts +23 -0
- package/dist_ts_agent/tool.persistence.js +35 -0
- package/license.md +21 -0
- package/package.json +31 -0
- package/readme.md +37 -0
- package/ts_agent/index.ts +119 -0
- package/ts_agent/plugins.ts +62 -0
- package/ts_agent/readme.md +37 -0
- package/ts_agent/smartagent.classes.agent.ts +104 -0
- package/ts_agent/smartagent.classes.session.ts +2588 -0
- package/ts_agent/smartagent.classes.toolregistry.ts +26 -0
- package/ts_agent/smartagent.context.ts +280 -0
- package/ts_agent/smartagent.events.ts +347 -0
- package/ts_agent/smartagent.interfaces.ts +365 -0
- package/ts_agent/smartagent.persistence.ts +827 -0
- package/ts_agent/smartagent.transactions.ts +193 -0
- package/ts_agent/tool.adapter.ts +85 -0
- package/ts_agent/tool.contracts.ts +149 -0
- package/ts_agent/tool.persistence.ts +64 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { runAgent } from './smartagent.classes.agent.js';
|
|
2
|
+
export { AgentSession } from './smartagent.classes.session.js';
|
|
3
|
+
export { buildModelMessages } from './smartagent.context.js';
|
|
4
|
+
export { filterModelVisibleAgentEvents, getAgentGenerationTransactions, getOpenAgentGenerationTransactions, getUncertainToolExecutionIntents, isTransactionalGeneration, } from './smartagent.transactions.js';
|
|
5
|
+
export { createAgentEvent, createAgentEventId, modelMessagesToAgentEvents, } from './smartagent.events.js';
|
|
6
|
+
export { ToolRegistry } from './smartagent.classes.toolregistry.js';
|
|
7
|
+
export { AgentGenerationLeaseCleanupError, ContextOverflowError, } from './smartagent.interfaces.js';
|
|
8
|
+
export { AgentEventStoreConflictError, FileAgentEventStore, InMemoryAgentEventStore, isAgentEventStoreV2, validateAgentEventArchiveV2, validateAgentEventSnapshotV2, } from './smartagent.persistence.js';
|
|
9
|
+
export type { IAgentCacheOptions, IAgentContextOverflowInvocationOptions, IAgentContextBuildOptions, IAgentContextCompactionOptions, IAgentCompactOptions, IAgentEventRetentionOptions, IAgentBeginGenerationOptions, IAgentGenerateOptions, IAgentGenerateResult, IAgentGenerationHandle, IAgentGenerationLease, IAgentGenerationPreparationContext, IAgentRunOptions, IAgentRunResult, IAgentSession, IAgentSessionAbortOptions, IAgentSessionChange, IAgentSessionOptions, IAgentScheduleGenerateOptions, IAgentToolCallRecord, IAgentToolCallStartEvent, IAgentToolCallUpdateEvent, ProviderOptions, TAgentCacheRetention, TAgentCacheSetting, TAgentPrompt, TAgentContextBuilder, TAgentContextCompactor, TAgentGenerationPrepare, TAgentSessionChangeListener, TAgentToolCallFinishEvent, TAgentToolExecutionReconciliationOptions, } from './smartagent.interfaces.js';
|
|
10
|
+
export type { IAgentEventArchive, IAgentEventArchiveV2, IAgentEventSnapshot, IAgentEventSnapshotV2, IAgentEventStore, IAgentEventStoreV2, IFileAgentEventStoreOptions, TAgentEventArchive, TAgentEventSnapshot, TAgentEventStore, } from './smartagent.persistence.js';
|
|
11
|
+
export type { IAgentEventBase, IAgentRuntimeEventPayload, IArchivedAgentGenerationTransaction, IAssistantMessageEvent, IContextCompactionEvent, IGenerationBegunEvent, IGenerationExecutionCompletedEvent, IGenerationExecutionStartedEvent, IGenerationOutcomeEvent, IModelMessageEvent, IModelMessagesToEventsOptions, IModelMessageEventIdentityCoordinates, IRuntimeEvent, ISystemMessageEvent, IToolCallEvent, IToolExecutionIntentEvent, IToolExecutionReconciliationEvent, IToolResultEvent, IUserMessageEvent, TAgentAssistantMessage, TAgentConversationEvent, TAgentControlEvent, TAgentEvent, TAgentEventInput, TAgentSystemMessage, TAgentGenerationOutcome, TAgentToolCallPart, TAgentToolMessage, TAgentToolResultOutput, TAgentToolResultPart, TAgentUserMessage, TModelMessageEmittedEventKind, TModelMessageEventIdentityFactory, TToolExecutionReconciliation, } from './smartagent.events.js';
|
|
12
|
+
export type { IAgentGenerationTransaction, TAgentGenerationTransactionState, } from './smartagent.transactions.js';
|
|
13
|
+
export * from './tool.contracts.js';
|
|
14
|
+
export * from './tool.persistence.js';
|
|
15
|
+
export * from './tool.adapter.js';
|
|
16
|
+
export { tool, jsonSchema, stepCountIs } from 'ai';
|
|
17
|
+
export { z } from 'zod';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export { runAgent } from './smartagent.classes.agent.js';
|
|
2
|
+
export { AgentSession } from './smartagent.classes.session.js';
|
|
3
|
+
export { buildModelMessages } from './smartagent.context.js';
|
|
4
|
+
export { filterModelVisibleAgentEvents, getAgentGenerationTransactions, getOpenAgentGenerationTransactions, getUncertainToolExecutionIntents, isTransactionalGeneration, } from './smartagent.transactions.js';
|
|
5
|
+
export { createAgentEvent, createAgentEventId, modelMessagesToAgentEvents, } from './smartagent.events.js';
|
|
6
|
+
export { ToolRegistry } from './smartagent.classes.toolregistry.js';
|
|
7
|
+
export { AgentGenerationLeaseCleanupError, ContextOverflowError, } from './smartagent.interfaces.js';
|
|
8
|
+
export { AgentEventStoreConflictError, FileAgentEventStore, InMemoryAgentEventStore, isAgentEventStoreV2, validateAgentEventArchiveV2, validateAgentEventSnapshotV2, } from './smartagent.persistence.js';
|
|
9
|
+
export * from './tool.contracts.js';
|
|
10
|
+
export * from './tool.persistence.js';
|
|
11
|
+
export * from './tool.adapter.js';
|
|
12
|
+
export { tool, jsonSchema, stepCountIs } from 'ai';
|
|
13
|
+
export { z } from 'zod';
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90c19hZ2VudC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsOEJBQThCLEVBQzlCLGtDQUFrQyxFQUNsQyxnQ0FBZ0MsRUFDaEMseUJBQXlCLEdBQzFCLE1BQU0sOEJBQThCLENBQUM7QUFDdEMsT0FBTyxFQUNMLGdCQUFnQixFQUNoQixrQkFBa0IsRUFDbEIsMEJBQTBCLEdBQzNCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3BFLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMsb0JBQW9CLEdBQ3JCLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUNMLDRCQUE0QixFQUM1QixtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFDM0IsNEJBQTRCLEdBQzdCLE1BQU0sNkJBQTZCLENBQUM7QUF1RnJDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxNQUFNLElBQUksQ0FBQztBQUNuRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDIn0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
+
import * as crypto from 'node:crypto';
|
|
3
|
+
import * as fs from 'node:fs/promises';
|
|
4
|
+
import * as path from 'node:path';
|
|
5
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
6
|
+
import * as v8 from 'node:v8';
|
|
7
|
+
export { AsyncLocalStorage, crypto, fs, isDeepStrictEqual, path, v8 };
|
|
8
|
+
import { streamText, generateText, stepCountIs, wrapLanguageModel } from 'ai';
|
|
9
|
+
export { streamText, generateText, stepCountIs, wrapLanguageModel };
|
|
10
|
+
export type { AssistantModelMessage, ModelMessage, StepResult, SystemModelMessage, ToolSet, ToolModelMessage, ToolExecutionOptions, StreamTextResult, UserModelMessage, } from 'ai';
|
|
11
|
+
import { applySmartAiCacheProviderOptions, createSmartAiCachingMiddleware, jsonSchema, resolveSmartAiCacheProvider, tool } from '@modelprofile.com/flexharness-models';
|
|
12
|
+
export { applySmartAiCacheProviderOptions, createSmartAiCachingMiddleware, resolveSmartAiCacheProvider, tool, jsonSchema, };
|
|
13
|
+
export type { ISmartAiCacheOptions, TSmartAiLanguageModel, TSmartAiCacheRetention, TSmartAiCacheSetting, TSmartAiProviderOptions as ProviderOptions, } from '@modelprofile.com/flexharness-models';
|
|
14
|
+
export type { IToolExecutionContext, IToolJobState, } from './tool.contracts.js';
|
|
15
|
+
import { z } from 'zod';
|
|
16
|
+
export { z };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// node native
|
|
2
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
3
|
+
import * as crypto from 'node:crypto';
|
|
4
|
+
import * as fs from 'node:fs/promises';
|
|
5
|
+
import * as path from 'node:path';
|
|
6
|
+
import { isDeepStrictEqual } from 'node:util';
|
|
7
|
+
import * as v8 from 'node:v8';
|
|
8
|
+
export { AsyncLocalStorage, crypto, fs, isDeepStrictEqual, path, v8 };
|
|
9
|
+
// ai-sdk core
|
|
10
|
+
import { streamText, generateText, stepCountIs, wrapLanguageModel } from 'ai';
|
|
11
|
+
export { streamText, generateText, stepCountIs, wrapLanguageModel };
|
|
12
|
+
// model contracts and AI SDK
|
|
13
|
+
import { applySmartAiCacheProviderOptions, createSmartAiCachingMiddleware, jsonSchema, resolveSmartAiCacheProvider, tool, } from '@modelprofile.com/flexharness-models';
|
|
14
|
+
export { applySmartAiCacheProviderOptions, createSmartAiCachingMiddleware, resolveSmartAiCacheProvider, tool, jsonSchema, };
|
|
15
|
+
// zod
|
|
16
|
+
import { z } from 'zod';
|
|
17
|
+
export { z };
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzX2FnZW50L3BsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYztBQUNkLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxNQUFNLE1BQU0sYUFBYSxDQUFDO0FBQ3RDLE9BQU8sS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDdkMsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUM7QUFDbEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQzlDLE9BQU8sS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTlCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUV0RSxjQUFjO0FBQ2QsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sSUFBSSxDQUFDO0FBRTlFLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0FBY3BFLDZCQUE2QjtBQUM3QixPQUFPLEVBQ0wsZ0NBQWdDLEVBQ2hDLDhCQUE4QixFQUM5QixVQUFVLEVBQ1YsMkJBQTJCLEVBQzNCLElBQUksR0FDTCxNQUFNLHNDQUFzQyxDQUFDO0FBRTlDLE9BQU8sRUFDTCxnQ0FBZ0MsRUFDaEMsOEJBQThCLEVBQzlCLDJCQUEyQixFQUMzQixJQUFJLEVBQ0osVUFBVSxHQUNYLENBQUM7QUFnQkYsTUFBTTtBQUNOLE9BQU8sRUFBRSxDQUFDLEVBQUUsTUFBTSxLQUFLLENBQUM7QUFFeEIsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDIn0=
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { AgentSession } from './smartagent.classes.session.js';
|
|
2
|
+
const mergeToolCalls = (target, source) => {
|
|
3
|
+
const indexes = new Map(target.map((record, index) => [record.toolCallId, index]));
|
|
4
|
+
for (const record of source) {
|
|
5
|
+
const existingIndex = indexes.get(record.toolCallId);
|
|
6
|
+
if (existingIndex === undefined) {
|
|
7
|
+
target.push({ ...record });
|
|
8
|
+
indexes.set(record.toolCallId, target.length - 1);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
target[existingIndex] = { ...target[existingIndex], ...record };
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
export async function runAgent(options) {
|
|
16
|
+
const session = await AgentSession.create({
|
|
17
|
+
model: options.model,
|
|
18
|
+
system: options.system,
|
|
19
|
+
tools: options.tools,
|
|
20
|
+
providerOptions: options.providerOptions,
|
|
21
|
+
sessionId: options.sessionId,
|
|
22
|
+
eventStore: options.eventStore,
|
|
23
|
+
cache: options.cache,
|
|
24
|
+
maxSteps: options.maxSteps,
|
|
25
|
+
messages: options.messages,
|
|
26
|
+
events: options.events,
|
|
27
|
+
executionContext: options.executionContext,
|
|
28
|
+
contextBuilder: options.contextBuilder,
|
|
29
|
+
contextCompactor: options.contextCompactor,
|
|
30
|
+
eventRetention: options.eventRetention,
|
|
31
|
+
changeListenerTimeoutMs: options.changeListenerTimeoutMs,
|
|
32
|
+
maxPendingSessionChanges: options.maxPendingSessionChanges,
|
|
33
|
+
generationLeaseCleanupTimeoutMs: options.generationLeaseCleanupTimeoutMs,
|
|
34
|
+
maxArchivedTransactionTombstones: options.maxArchivedTransactionTombstones,
|
|
35
|
+
onToken: options.onToken,
|
|
36
|
+
onReasoningStart: options.onReasoningStart,
|
|
37
|
+
onReasoningDelta: options.onReasoningDelta,
|
|
38
|
+
onReasoningEnd: options.onReasoningEnd,
|
|
39
|
+
onToolCallStart: options.onToolCallStart,
|
|
40
|
+
onToolCallUpdate: options.onToolCallUpdate,
|
|
41
|
+
onToolCallFinish: options.onToolCallFinish,
|
|
42
|
+
onToolCall: options.onToolCall,
|
|
43
|
+
onToolResult: options.onToolResult,
|
|
44
|
+
onContextOverflow: options.onContextOverflow,
|
|
45
|
+
maxContextOverflowRetries: options.maxContextOverflowRetries,
|
|
46
|
+
});
|
|
47
|
+
let totalSteps = 0;
|
|
48
|
+
let totalInput = 0;
|
|
49
|
+
let totalOutput = 0;
|
|
50
|
+
let totalCacheRead = 0;
|
|
51
|
+
let totalCacheWrite = 0;
|
|
52
|
+
let validationRetries = 0;
|
|
53
|
+
const toolCalls = [];
|
|
54
|
+
try {
|
|
55
|
+
await session.pushUserMessage(options.prompt);
|
|
56
|
+
while (true) {
|
|
57
|
+
const generationResult = await session.generate({
|
|
58
|
+
maxSteps: options.maxSteps,
|
|
59
|
+
abort: options.abort,
|
|
60
|
+
});
|
|
61
|
+
totalSteps += generationResult.steps;
|
|
62
|
+
totalInput += generationResult.usage.inputTokens;
|
|
63
|
+
totalOutput += generationResult.usage.outputTokens;
|
|
64
|
+
totalCacheRead += generationResult.usage.cacheReadTokens;
|
|
65
|
+
totalCacheWrite += generationResult.usage.cacheWriteTokens;
|
|
66
|
+
mergeToolCalls(toolCalls, generationResult.toolCalls);
|
|
67
|
+
const runResult = {
|
|
68
|
+
text: generationResult.text,
|
|
69
|
+
messages: session.getModelMessages(),
|
|
70
|
+
steps: totalSteps,
|
|
71
|
+
finishReason: generationResult.finishReason,
|
|
72
|
+
usage: {
|
|
73
|
+
inputTokens: totalInput,
|
|
74
|
+
outputTokens: totalOutput,
|
|
75
|
+
totalTokens: totalInput + totalOutput,
|
|
76
|
+
cacheReadTokens: totalCacheRead,
|
|
77
|
+
cacheWriteTokens: totalCacheWrite,
|
|
78
|
+
},
|
|
79
|
+
toolCalls,
|
|
80
|
+
};
|
|
81
|
+
const validationPrompt = await options.validateCompletion?.(runResult);
|
|
82
|
+
if (typeof validationPrompt !== 'string')
|
|
83
|
+
return runResult;
|
|
84
|
+
if (validationRetries >= (options.maxValidationRetries ?? 0)) {
|
|
85
|
+
throw new Error(`Agent completion validation failed: ${validationPrompt}`);
|
|
86
|
+
}
|
|
87
|
+
validationRetries++;
|
|
88
|
+
await session.pushUserMessage(validationPrompt);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
await session.close();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhZ2VudC5jbGFzc2VzLmFnZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfYWdlbnQvc21hcnRhZ2VudC5jbGFzc2VzLmFnZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU8vRCxNQUFNLGNBQWMsR0FBRyxDQUNyQixNQUE4QixFQUM5QixNQUF1QyxFQUNqQyxFQUFFO0lBQ1IsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkYsS0FBSyxNQUFNLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUM1QixNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNyRCxJQUFJLGFBQWEsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BELENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUNsRSxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxLQUFLLFVBQVUsUUFBUSxDQUFDLE9BQXlCO0lBQ3RELE1BQU0sT0FBTyxHQUFHLE1BQU0sWUFBWSxDQUFDLE1BQU0sQ0FBQztRQUN4QyxLQUFL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
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import { type IToolExecutionIntentEvent, type TAgentEvent, type TAgentGenerationOutcome } from './smartagent.events.js';
|
|
3
|
+
import { type IAgentGenerateOptions, type IAgentGenerateResult, type IAgentGenerationHandle, type IAgentCompactOptions, type IAgentBeginGenerationOptions, type IAgentSession, type IAgentSessionAbortOptions, type IAgentSessionOptions, type IAgentScheduleGenerateOptions, type TAgentSessionChangeListener, type TAgentPrompt, type TAgentToolExecutionReconciliationOptions } from './smartagent.interfaces.js';
|
|
4
|
+
import type { TAgentEventArchive } from './smartagent.persistence.js';
|
|
5
|
+
export declare class AgentSession implements IAgentSession {
|
|
6
|
+
private readonly options;
|
|
7
|
+
private readonly events;
|
|
8
|
+
private readonly eventIds;
|
|
9
|
+
private readonly generationHandles;
|
|
10
|
+
private readonly unresolvedLeaseCleanups;
|
|
11
|
+
private sequence;
|
|
12
|
+
private persistenceRevision;
|
|
13
|
+
private persistenceQueue;
|
|
14
|
+
private persistenceError;
|
|
15
|
+
private readonly notificationDispatches;
|
|
16
|
+
private readonly listeners;
|
|
17
|
+
private readonly scheduledGenerations;
|
|
18
|
+
private readonly generationCallbackContext;
|
|
19
|
+
private retentionPromise;
|
|
20
|
+
private maintenanceError;
|
|
21
|
+
private generationQueue;
|
|
22
|
+
private currentGenerationAbortController;
|
|
23
|
+
private readonly sessionAbortController;
|
|
24
|
+
private jobUnsubscribe;
|
|
25
|
+
private closed;
|
|
26
|
+
private closeFinalizationReached;
|
|
27
|
+
private closeCleanupCompletedState;
|
|
28
|
+
get closeCleanupCompleted(): boolean;
|
|
29
|
+
private refreshCloseCleanupCompleted;
|
|
30
|
+
static create(options: IAgentSessionOptions): Promise<AgentSession>;
|
|
31
|
+
constructor(options: IAgentSessionOptions);
|
|
32
|
+
private attachJobSubscription;
|
|
33
|
+
private restoreEvent;
|
|
34
|
+
private queuePersistence;
|
|
35
|
+
private flushPersistence;
|
|
36
|
+
private reportListenerError;
|
|
37
|
+
private queueNotification;
|
|
38
|
+
private enqueueListenerChange;
|
|
39
|
+
private deliverListenerChanges;
|
|
40
|
+
private commitEvents;
|
|
41
|
+
private commitEvent;
|
|
42
|
+
pushEvent(event: TAgentEvent): Promise<void>;
|
|
43
|
+
pushUserMessage(content: TAgentPrompt): Promise<void>;
|
|
44
|
+
pushRuntimeEvent(event: import('./smartagent.events.js').IAgentRuntimeEventPayload): Promise<void>;
|
|
45
|
+
private transaction;
|
|
46
|
+
private archivedTransaction;
|
|
47
|
+
private verifyGenerationClaim;
|
|
48
|
+
private interruptRestoredTransactions;
|
|
49
|
+
private transactionalStoreCapabilityError;
|
|
50
|
+
beginGeneration(content: TAgentPrompt, options?: IAgentBeginGenerationOptions): Promise<IAgentGenerationHandle>;
|
|
51
|
+
private appendGenerationOutcome;
|
|
52
|
+
private transactionOutcomeErrorReason;
|
|
53
|
+
finalizeGeneration(transaction: IAgentGenerationHandle, outcome: TAgentGenerationOutcome): Promise<void>;
|
|
54
|
+
listUncertainToolExecutions(): IToolExecutionIntentEvent[];
|
|
55
|
+
reconcileToolExecution(intentId: string, reconciliation: TAgentToolExecutionReconciliationOptions): Promise<void>;
|
|
56
|
+
getEvents(): readonly TAgentEvent[];
|
|
57
|
+
getModelMessages(): plugins.ModelMessage[];
|
|
58
|
+
private buildContext;
|
|
59
|
+
subscribe(listener: TAgentSessionChangeListener): () => void;
|
|
60
|
+
scheduleGenerate(options: IAgentScheduleGenerateOptions): Promise<IAgentGenerateResult>;
|
|
61
|
+
private startScheduledGeneration;
|
|
62
|
+
private settleScheduledGeneration;
|
|
63
|
+
cancelScheduledGeneration(key: string, reason?: unknown): boolean;
|
|
64
|
+
private performCompaction;
|
|
65
|
+
private queueExclusive;
|
|
66
|
+
compact(options?: IAgentCompactOptions): Promise<void>;
|
|
67
|
+
archiveCompactedEvents(compactionEventId?: string): Promise<TAgentEventArchive | undefined>;
|
|
68
|
+
private archiveCompactedEventsLocked;
|
|
69
|
+
private runEventRetentionLocked;
|
|
70
|
+
private scheduleEventRetention;
|
|
71
|
+
private eventsByIds;
|
|
72
|
+
private currentGenerationEvent;
|
|
73
|
+
private reconcileToolResult;
|
|
74
|
+
private commitResponseMessages;
|
|
75
|
+
private wrapToolsForGeneration;
|
|
76
|
+
private trackToolExecutionIterable;
|
|
77
|
+
private ownGenerationLeaseCleanup;
|
|
78
|
+
private cleanupGenerationLease;
|
|
79
|
+
generate(options?: IAgentGenerateOptions): Promise<IAgentGenerateResult>;
|
|
80
|
+
private resolveEffectiveGenerationRuntime;
|
|
81
|
+
private generateLocked;
|
|
82
|
+
abortCurrentGeneration(reason?: unknown): void;
|
|
83
|
+
abortSession(reason?: unknown, options?: IAgentSessionAbortOptions): Promise<void>;
|
|
84
|
+
getBackgroundExecution(executionId: string): Promise<plugins.IToolJobState>;
|
|
85
|
+
abortBackgroundExecution(executionId: string): Promise<void>;
|
|
86
|
+
close(): Promise<void>;
|
|
87
|
+
private invokeGenerationCallback;
|
|
88
|
+
private adoptGenerationCallbackResult;
|
|
89
|
+
private wrapGenerationCallbackIterable;
|
|
90
|
+
}
|