@gt-fe/eap-sdk 0.1.13 → 0.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/README.md +140 -70
- package/dist/materialization/index.d.ts +0 -1
- package/dist/materialization/index.d.ts.map +1 -1
- package/dist/materialization/index.js +0 -1
- package/dist/materialization/index.js.map +1 -1
- package/dist/materialization/prepare-agent-runtime.d.ts +6 -0
- package/dist/materialization/prepare-agent-runtime.d.ts.map +1 -1
- package/dist/materialization/prepare-agent-runtime.js +11 -17
- package/dist/materialization/prepare-agent-runtime.js.map +1 -1
- package/dist/materialization/types.d.ts +0 -2
- package/dist/materialization/types.d.ts.map +1 -1
- package/dist/packaging/package-agent-project.d.ts.map +1 -1
- package/dist/packaging/package-agent-project.js +2 -4
- package/dist/packaging/package-agent-project.js.map +1 -1
- package/dist/platform/client.d.ts.map +1 -1
- package/dist/platform/client.js +13 -2
- package/dist/platform/client.js.map +1 -1
- package/dist/platform/types.d.ts +2 -0
- package/dist/platform/types.d.ts.map +1 -1
- package/dist/schema/agent/manifest.d.ts +1029 -98
- package/dist/schema/agent/manifest.d.ts.map +1 -1
- package/dist/schema/graph.d.ts +1538 -252
- package/dist/schema/graph.d.ts.map +1 -1
- package/dist/schema/graph.js +30 -5
- package/dist/schema/graph.js.map +1 -1
- package/dist/schema/lockfile.d.ts +30 -30
- package/dist/service/create-agent.d.ts +8 -0
- package/dist/service/create-agent.d.ts.map +1 -0
- package/dist/service/create-agent.js +407 -0
- package/dist/service/create-agent.js.map +1 -0
- package/dist/service/events.d.ts +12 -45
- package/dist/service/events.d.ts.map +1 -1
- package/dist/service/events.js +45 -1
- package/dist/service/events.js.map +1 -1
- package/dist/service/index.d.ts +5 -2
- package/dist/service/index.d.ts.map +1 -1
- package/dist/service/index.js +4 -1
- package/dist/service/index.js.map +1 -1
- package/dist/service/messages.d.ts +13 -0
- package/dist/service/messages.d.ts.map +1 -0
- package/dist/service/messages.js +24 -0
- package/dist/service/messages.js.map +1 -0
- package/dist/service/resources.d.ts +86 -0
- package/dist/service/resources.d.ts.map +1 -0
- package/dist/service/resources.js +26 -0
- package/dist/service/resources.js.map +1 -0
- package/dist/service/runtime-adapter.d.ts.map +1 -1
- package/dist/service/runtime-adapter.js +26 -2
- package/dist/service/runtime-adapter.js.map +1 -1
- package/dist/service/sessions.d.ts +33 -0
- package/dist/service/sessions.d.ts.map +1 -0
- package/dist/service/sessions.js +67 -0
- package/dist/service/sessions.js.map +1 -0
- package/dist/service/types.d.ts +121 -32
- package/dist/service/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/dist/materialization/sync-author-resources.d.ts +0 -21
- package/dist/materialization/sync-author-resources.d.ts.map +0 -1
- package/dist/materialization/sync-author-resources.js +0 -98
- package/dist/materialization/sync-author-resources.js.map +0 -1
- package/dist/service/create-agent-service.d.ts +0 -12
- package/dist/service/create-agent-service.d.ts.map +0 -1
- package/dist/service/create-agent-service.js +0 -283
- package/dist/service/create-agent-service.js.map +0 -1
- package/dist/service/http-server.d.ts +0 -4
- package/dist/service/http-server.d.ts.map +0 -1
- package/dist/service/http-server.js +0 -89
- package/dist/service/http-server.js.map +0 -1
|
@@ -0,0 +1,407 @@
|
|
|
1
|
+
import { lstatSync, readFileSync, readdirSync } from 'node:fs';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
import { resolveAgentRuntimeRoot } from '../materialization/index.js';
|
|
4
|
+
import { sha256, writeFileAtomically } from '../resources/resource-files.js';
|
|
5
|
+
import { toSha256Hex } from '../digest.js';
|
|
6
|
+
import { AgentManifestSchema, DependenciesLockSchema, GraphSchema } from '../schema/index.js';
|
|
7
|
+
import { validateGraph } from '../validation/index.js';
|
|
8
|
+
import { createRuntimeForPrepared } from './runtime-adapter.js';
|
|
9
|
+
import { createEventManager } from './events.js';
|
|
10
|
+
import { createMessageManager } from './messages.js';
|
|
11
|
+
import { createSessionManager } from './sessions.js';
|
|
12
|
+
import { createUnavailableResourceManager } from './resources.js';
|
|
13
|
+
/**
|
|
14
|
+
* Creates an Agent API from an already materialized Runtime directory.
|
|
15
|
+
* Runtime preparation is explicit and is shared by development and build.
|
|
16
|
+
*/
|
|
17
|
+
export async function createAgent(options = {}) {
|
|
18
|
+
const runtimeRoot = resolveAgentRuntimeRoot({ runtimeRoot: options.runtimeRoot });
|
|
19
|
+
const target = resolveMaterializedAgentTarget({
|
|
20
|
+
runtimeRoot,
|
|
21
|
+
agentCode: options.agentCode,
|
|
22
|
+
version: options.version,
|
|
23
|
+
});
|
|
24
|
+
const prepared = preparedRuntime(target);
|
|
25
|
+
const embeddedConfig = options.embeddedConfig;
|
|
26
|
+
validateEmbeddedConfig(options.deploymentContext ?? 'server', embeddedConfig, options.runtimeFactory);
|
|
27
|
+
const environment = resolveAgentRuntimeEnvironment(runtimeRoot, options.deploymentContext ?? 'server', options.sessionPersistence ?? false, options.sessionDirectory, {
|
|
28
|
+
...(embeddedConfig?.platform?.portalEndpoint ? { EAP_PLATFORM_ENDPOINT: embeddedConfig.platform.portalEndpoint } : {}),
|
|
29
|
+
...(embeddedConfig?.platform?.foundationEndpoint ? { FOUNDATION_SERVICE_URL: embeddedConfig.platform.foundationEndpoint } : {}),
|
|
30
|
+
...options.environment,
|
|
31
|
+
...embeddedConfig?.runtime?.environment,
|
|
32
|
+
});
|
|
33
|
+
const runtimeFactory = options.runtimeFactory ?? createRuntimeForPrepared;
|
|
34
|
+
const credentials = embeddedConfig?.credentials;
|
|
35
|
+
const runtime = await createRuntime(target, prepared, runtimeFactory, environment, credentials?.provider, credentials?.developmentToken);
|
|
36
|
+
return new RuntimeAgent(target, prepared, runtime, runtimeFactory, environment, embeddedConfig);
|
|
37
|
+
}
|
|
38
|
+
class RuntimeAgent {
|
|
39
|
+
target;
|
|
40
|
+
prepared;
|
|
41
|
+
runtimeFactory;
|
|
42
|
+
environment;
|
|
43
|
+
graph;
|
|
44
|
+
config;
|
|
45
|
+
resources;
|
|
46
|
+
sessions;
|
|
47
|
+
messages;
|
|
48
|
+
events;
|
|
49
|
+
credentials;
|
|
50
|
+
currentRuntime;
|
|
51
|
+
disposed = false;
|
|
52
|
+
reloadQueue = Promise.resolve({ status: 'effective', revision: 'initial' });
|
|
53
|
+
configRevision = 'initial';
|
|
54
|
+
pendingConfig = {};
|
|
55
|
+
graphPending = false;
|
|
56
|
+
eventManager = createEventManager();
|
|
57
|
+
developmentToken;
|
|
58
|
+
constructor(target, prepared, runtime, runtimeFactory, environment, embeddedConfig) {
|
|
59
|
+
this.target = target;
|
|
60
|
+
this.prepared = prepared;
|
|
61
|
+
this.runtimeFactory = runtimeFactory;
|
|
62
|
+
this.environment = environment;
|
|
63
|
+
this.currentRuntime = runtime;
|
|
64
|
+
this.graph = new MaterializedGraphApi(this, target.graphPath, target.manifestPath);
|
|
65
|
+
this.config = new RuntimeConfigApi(this);
|
|
66
|
+
this.resources = embeddedConfig?.resources?.manager ?? createUnavailableResourceManager();
|
|
67
|
+
this.sessions = createSessionManager(() => this.currentRuntime, target.agentCode);
|
|
68
|
+
this.messages = createMessageManager(() => this.currentRuntime);
|
|
69
|
+
this.events = this.eventManager;
|
|
70
|
+
this.credentials = embeddedConfig?.credentials.provider;
|
|
71
|
+
this.developmentToken = embeddedConfig?.credentials.developmentToken;
|
|
72
|
+
}
|
|
73
|
+
get runtime() {
|
|
74
|
+
return this.currentRuntime;
|
|
75
|
+
}
|
|
76
|
+
async invoke(input, options = {}) {
|
|
77
|
+
const runtime = this.currentRuntime;
|
|
78
|
+
const { onEvent, onEventError, ...request } = options;
|
|
79
|
+
const authenticatedRequest = await this.withRequestCredential(request);
|
|
80
|
+
const result = await runtime.agentRuntime.execute({
|
|
81
|
+
...authenticatedRequest,
|
|
82
|
+
input,
|
|
83
|
+
agentCode: this.target.agentCode,
|
|
84
|
+
});
|
|
85
|
+
return result;
|
|
86
|
+
}
|
|
87
|
+
stream(input, options = {}) {
|
|
88
|
+
const runtime = this.currentRuntime;
|
|
89
|
+
const { onEvent, onEventError, ...request } = options;
|
|
90
|
+
return this.withEvents(runtime, input, request, onEvent, onEventError);
|
|
91
|
+
}
|
|
92
|
+
async *withEvents(runtime, input, request, onEvent, onEventError) {
|
|
93
|
+
const authenticatedRequest = await this.withRequestCredential(request);
|
|
94
|
+
const events = runtime.agentRuntime.stream({ ...authenticatedRequest, input, agentCode: this.target.agentCode });
|
|
95
|
+
for await (const event of events) {
|
|
96
|
+
this.eventManager.emit(event);
|
|
97
|
+
if (onEvent)
|
|
98
|
+
await invokeEventCallback(onEvent, onEventError, event);
|
|
99
|
+
yield event;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
async withRequestCredential(request) {
|
|
103
|
+
if (!this.credentials || !request.executionContext)
|
|
104
|
+
return request;
|
|
105
|
+
const credential = await this.credentials.getToken({
|
|
106
|
+
audience: 'runtime',
|
|
107
|
+
agentCode: this.target.agentCode,
|
|
108
|
+
requestId: request.executionContext.correlationId,
|
|
109
|
+
});
|
|
110
|
+
if (!credential.value.trim())
|
|
111
|
+
throw new Error('AgentCredentialProvider returned an empty runtime token');
|
|
112
|
+
return {
|
|
113
|
+
...request,
|
|
114
|
+
executionContext: { ...request.executionContext, delegationToken: credential.value },
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
getConversation(sessionId) {
|
|
118
|
+
return this.currentRuntime.agentRuntime.getConversation(sessionId);
|
|
119
|
+
}
|
|
120
|
+
listConversations(options) {
|
|
121
|
+
return this.currentRuntime.agentRuntime.listConversations(options);
|
|
122
|
+
}
|
|
123
|
+
listLlmTurns(sessionId) {
|
|
124
|
+
return this.currentRuntime.agentRuntime.listLlmTurns(sessionId);
|
|
125
|
+
}
|
|
126
|
+
getLlmTurn(sessionId, turnId) {
|
|
127
|
+
return this.currentRuntime.agentRuntime.getLlmTurn(sessionId, turnId);
|
|
128
|
+
}
|
|
129
|
+
reload() {
|
|
130
|
+
const nextReload = this.reloadQueue.then(async () => {
|
|
131
|
+
if (this.disposed)
|
|
132
|
+
throw new Error('Agent is already disposed');
|
|
133
|
+
const nextTarget = resolveMaterializedAgentTarget({
|
|
134
|
+
runtimeRoot: this.prepared.runtimeRoot,
|
|
135
|
+
agentCode: this.target.agentCode,
|
|
136
|
+
version: this.target.version,
|
|
137
|
+
});
|
|
138
|
+
let nextRuntime;
|
|
139
|
+
try {
|
|
140
|
+
nextRuntime = await createRuntime(this.target, preparedRuntime(nextTarget), this.runtimeFactory, this.environment, this.credentials, this.developmentToken);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
return {
|
|
144
|
+
status: 'failed',
|
|
145
|
+
revision: this.configRevision,
|
|
146
|
+
error: { code: 'runtime_unavailable', message: error instanceof Error ? error.message : String(error) },
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
const previousRuntime = this.currentRuntime;
|
|
150
|
+
this.currentRuntime = nextRuntime;
|
|
151
|
+
previousRuntime.dispose?.();
|
|
152
|
+
this.graphPending = false;
|
|
153
|
+
return { status: 'effective', revision: this.configRevision };
|
|
154
|
+
});
|
|
155
|
+
this.reloadQueue = nextReload.catch((error) => ({
|
|
156
|
+
status: 'failed',
|
|
157
|
+
revision: this.configRevision,
|
|
158
|
+
error: { code: 'runtime_unavailable', message: error instanceof Error ? error.message : String(error) },
|
|
159
|
+
}));
|
|
160
|
+
return nextReload;
|
|
161
|
+
}
|
|
162
|
+
dispose() {
|
|
163
|
+
if (this.disposed)
|
|
164
|
+
return;
|
|
165
|
+
this.disposed = true;
|
|
166
|
+
this.currentRuntime.dispose?.();
|
|
167
|
+
}
|
|
168
|
+
async replaceGraph(graph) {
|
|
169
|
+
const graphPath = this.target.graphPath;
|
|
170
|
+
const snapshotPath = resolve(this.prepared.agentDir, 'snapshot.json');
|
|
171
|
+
const oldGraph = readFileSync(graphPath);
|
|
172
|
+
const oldSnapshot = readFileSync(snapshotPath);
|
|
173
|
+
const serialized = `${JSON.stringify(graph, null, 2)}\n`;
|
|
174
|
+
const nextSnapshot = updateGraphSnapshot(oldSnapshot, Buffer.from(serialized, 'utf8'));
|
|
175
|
+
writeFileAtomically(graphPath, serialized);
|
|
176
|
+
try {
|
|
177
|
+
writeFileAtomically(snapshotPath, nextSnapshot);
|
|
178
|
+
this.configRevision = nextRevision(this.configRevision);
|
|
179
|
+
this.graphPending = true;
|
|
180
|
+
}
|
|
181
|
+
catch (error) {
|
|
182
|
+
writeFileAtomically(graphPath, oldGraph);
|
|
183
|
+
writeFileAtomically(snapshotPath, oldSnapshot);
|
|
184
|
+
throw error;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
getConfig() {
|
|
188
|
+
return {
|
|
189
|
+
revision: this.configRevision,
|
|
190
|
+
pending: this.graphPending || Object.keys(this.pendingConfig).length > 0,
|
|
191
|
+
environment: { ...this.environment, ...(this.pendingConfig.environment ?? {}) },
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
async writeConfig(patch) {
|
|
195
|
+
this.pendingConfig = {
|
|
196
|
+
...this.pendingConfig,
|
|
197
|
+
...patch,
|
|
198
|
+
...(patch.environment ? { environment: { ...(this.pendingConfig.environment ?? {}), ...patch.environment } } : {}),
|
|
199
|
+
};
|
|
200
|
+
this.configRevision = nextRevision(this.configRevision);
|
|
201
|
+
return { revision: this.configRevision, status: 'pending', requiresReload: true };
|
|
202
|
+
}
|
|
203
|
+
async applyConfig() {
|
|
204
|
+
Object.assign(this.environment, this.pendingConfig.environment ?? {});
|
|
205
|
+
const result = await this.reload();
|
|
206
|
+
if (result.status === 'effective') {
|
|
207
|
+
this.pendingConfig = {};
|
|
208
|
+
this.graphPending = false;
|
|
209
|
+
}
|
|
210
|
+
return result;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
class MaterializedGraphApi {
|
|
214
|
+
agent;
|
|
215
|
+
graphPath;
|
|
216
|
+
manifestPath;
|
|
217
|
+
constructor(agent, graphPath, manifestPath) {
|
|
218
|
+
this.agent = agent;
|
|
219
|
+
this.graphPath = graphPath;
|
|
220
|
+
this.manifestPath = manifestPath;
|
|
221
|
+
}
|
|
222
|
+
read() {
|
|
223
|
+
return parseRuntimeGraph(readJson(this.graphPath, 'Runtime Graph'), this.graphPath, this.manifestPath);
|
|
224
|
+
}
|
|
225
|
+
async replace(graph) {
|
|
226
|
+
const parsed = parseRuntimeGraph(graph, this.graphPath, this.manifestPath);
|
|
227
|
+
await this.agent.replaceGraph(parsed);
|
|
228
|
+
return { revision: this.agent.getConfig().revision, status: 'pending', requiresReload: true };
|
|
229
|
+
}
|
|
230
|
+
async update(updater) {
|
|
231
|
+
const current = this.read();
|
|
232
|
+
const updated = await updater(current);
|
|
233
|
+
const next = updated ?? current;
|
|
234
|
+
return this.replace(next);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
class RuntimeConfigApi {
|
|
238
|
+
agent;
|
|
239
|
+
constructor(agent) {
|
|
240
|
+
this.agent = agent;
|
|
241
|
+
}
|
|
242
|
+
read() { return this.agent.getConfig(); }
|
|
243
|
+
write(patch) { return this.agent.writeConfig(patch); }
|
|
244
|
+
apply() { return this.agent.applyConfig(); }
|
|
245
|
+
}
|
|
246
|
+
async function invokeEventCallback(callback, mode, event) {
|
|
247
|
+
try {
|
|
248
|
+
await callback(event);
|
|
249
|
+
}
|
|
250
|
+
catch (error) {
|
|
251
|
+
if (mode === 'throw')
|
|
252
|
+
throw error;
|
|
253
|
+
// Event callbacks are observers; by default they cannot change Runtime results.
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
function validateEmbeddedConfig(deploymentContext, config, runtimeFactory) {
|
|
257
|
+
if (deploymentContext !== 'server')
|
|
258
|
+
return;
|
|
259
|
+
if (runtimeFactory)
|
|
260
|
+
return;
|
|
261
|
+
if (!config) {
|
|
262
|
+
throw new Error('Server Agent requires embeddedConfig.credentials.provider or an authenticated runtime adapter');
|
|
263
|
+
}
|
|
264
|
+
if (config.credentials.provider)
|
|
265
|
+
return;
|
|
266
|
+
if (config.credentials.developmentToken) {
|
|
267
|
+
throw new Error('developmentToken cannot be used with server deployment; configure credentials.provider');
|
|
268
|
+
}
|
|
269
|
+
throw new Error('Server Agent requires embeddedConfig.credentials.provider or an authenticated runtime adapter');
|
|
270
|
+
}
|
|
271
|
+
function nextRevision(current) {
|
|
272
|
+
if (current === 'initial')
|
|
273
|
+
return '1';
|
|
274
|
+
const numeric = Number(current);
|
|
275
|
+
return Number.isInteger(numeric) ? String(numeric + 1) : `${current}.next`;
|
|
276
|
+
}
|
|
277
|
+
async function createRuntime(target, prepared, runtimeFactory, environment, provider, developmentToken) {
|
|
278
|
+
const runtimeEnvironment = { ...environment };
|
|
279
|
+
if (provider) {
|
|
280
|
+
const credential = await provider.getToken({ audience: 'runtime', agentCode: target.agentCode });
|
|
281
|
+
if (!credential.value.trim())
|
|
282
|
+
throw new Error('AgentCredentialProvider returned an empty runtime token');
|
|
283
|
+
runtimeEnvironment.EAP_DELEGATION_TOKEN = credential.value;
|
|
284
|
+
}
|
|
285
|
+
else if (developmentToken?.trim()) {
|
|
286
|
+
runtimeEnvironment.EAP_DELEGATION_TOKEN = developmentToken;
|
|
287
|
+
}
|
|
288
|
+
return runtimeFactory(prepared, runtimeEnvironment);
|
|
289
|
+
}
|
|
290
|
+
function parseRuntimeGraph(value, graphPath, manifestPath) {
|
|
291
|
+
const manifest = AgentManifestSchema.parse(readJson(manifestPath, 'Runtime Agent manifest'));
|
|
292
|
+
const validation = validateGraph(value, graphPath, manifest);
|
|
293
|
+
const errors = validation.issues.filter((issue) => issue.severity === 'error');
|
|
294
|
+
if (errors.length > 0 || !validation.graph) {
|
|
295
|
+
throw new Error(`Runtime Graph is invalid: ${errors.map((issue) => issue.message).join('; ')}`);
|
|
296
|
+
}
|
|
297
|
+
return validation.graph;
|
|
298
|
+
}
|
|
299
|
+
function updateGraphSnapshot(snapshotData, graphData) {
|
|
300
|
+
const snapshot = JSON.parse(snapshotData.toString('utf8'));
|
|
301
|
+
const graphArtifact = snapshot.artifacts.find((artifact) => artifact.path === 'graph.json');
|
|
302
|
+
if (!graphArtifact)
|
|
303
|
+
throw new Error('Runtime snapshot is missing graph.json');
|
|
304
|
+
graphArtifact.sha256 = toSha256Hex(sha256(graphData));
|
|
305
|
+
return `${JSON.stringify(snapshot, null, 2)}\n`;
|
|
306
|
+
}
|
|
307
|
+
function preparedRuntime(target) {
|
|
308
|
+
return {
|
|
309
|
+
projectRoot: target.root,
|
|
310
|
+
runtimeRoot: target.root,
|
|
311
|
+
agentDir: resolve(target.root, 'agents', target.agentCode, target.version),
|
|
312
|
+
agentCode: target.agentCode,
|
|
313
|
+
version: target.version,
|
|
314
|
+
resources: [],
|
|
315
|
+
};
|
|
316
|
+
}
|
|
317
|
+
export function resolveAgentRuntimeEnvironment(runtimeRoot, deploymentContext, sessionPersistence, sessionDirectory, environment) {
|
|
318
|
+
const runtimeDirectory = resolve(runtimeRoot);
|
|
319
|
+
const resolvedEnvironment = {
|
|
320
|
+
...environment,
|
|
321
|
+
EAP_PREINSTALL_ROOT: runtimeDirectory,
|
|
322
|
+
EAP_DEPLOYMENT_CONTEXT: deploymentContext,
|
|
323
|
+
EAP_RUNTIME_STORAGE_PROFILE: sessionPersistence ? 'dev' : 'test',
|
|
324
|
+
EAP_LLM_TURN_DIR: resolve(runtimeDirectory, '..', 'llm-turns'),
|
|
325
|
+
};
|
|
326
|
+
if (sessionPersistence) {
|
|
327
|
+
const directory = resolve(sessionDirectory ?? resolve(runtimeDirectory, '..', 'sessions'));
|
|
328
|
+
resolvedEnvironment.EAP_SESSION_DIR = directory;
|
|
329
|
+
resolvedEnvironment.EAP_MESSAGE_DIR = resolve(directory, 'messages');
|
|
330
|
+
}
|
|
331
|
+
return resolvedEnvironment;
|
|
332
|
+
}
|
|
333
|
+
function resolveMaterializedAgentTarget(options) {
|
|
334
|
+
const runtimeRoot = assertRegularDirectory(resolve(options.runtimeRoot), 'Runtime root');
|
|
335
|
+
const agentsRoot = assertRegularDirectory(resolve(runtimeRoot, 'agents'), 'Runtime agents directory');
|
|
336
|
+
const agentCode = options.agentCode ?? selectOnlyDirectory(agentsRoot, 'Agent code');
|
|
337
|
+
assertDirectorySegment(agentCode, 'Agent code');
|
|
338
|
+
const agentRoot = assertRegularDirectory(resolve(agentsRoot, agentCode), `Agent directory ${agentCode}`);
|
|
339
|
+
const version = options.version ?? selectOnlyDirectory(agentRoot, 'Agent version');
|
|
340
|
+
assertDirectorySegment(version, 'Agent version');
|
|
341
|
+
const agentDir = assertRegularDirectory(resolve(agentRoot, version), `Agent version directory ${agentCode}@${version}`);
|
|
342
|
+
const manifestPath = assertRegularFile(resolve(agentDir, 'agent.manifest.json'), 'Runtime Agent manifest');
|
|
343
|
+
const graphPath = assertRegularFile(resolve(agentDir, 'graph.json'), 'Runtime Graph');
|
|
344
|
+
assertRegularFile(resolve(agentDir, 'dependencies.lock'), 'Runtime dependencies lock');
|
|
345
|
+
assertRegularFile(resolve(agentDir, 'snapshot.json'), 'Runtime snapshot');
|
|
346
|
+
assertRegularFile(resolve(agentDir, '.ready'), 'Runtime readiness marker');
|
|
347
|
+
const manifest = AgentManifestSchema.parse(readJson(manifestPath, 'Runtime Agent manifest'));
|
|
348
|
+
if (manifest.code !== agentCode || manifest.version !== version) {
|
|
349
|
+
throw new Error(`Runtime Agent identity does not match ${agentCode}@${version}`);
|
|
350
|
+
}
|
|
351
|
+
GraphSchema.parse(readJson(graphPath, 'Runtime Graph'));
|
|
352
|
+
const dependencies = DependenciesLockSchema.parse(readJson(resolve(agentDir, 'dependencies.lock'), 'Runtime dependencies lock'));
|
|
353
|
+
if (dependencies.agentCode && dependencies.agentCode !== agentCode) {
|
|
354
|
+
throw new Error(`Runtime dependencies.lock Agent identity does not match ${agentCode}`);
|
|
355
|
+
}
|
|
356
|
+
if (dependencies.agentVersion && dependencies.agentVersion !== version) {
|
|
357
|
+
throw new Error(`Runtime dependencies.lock version does not match ${version}`);
|
|
358
|
+
}
|
|
359
|
+
return { root: runtimeRoot, agentCode, version, manifestPath, graphPath };
|
|
360
|
+
}
|
|
361
|
+
function selectOnlyDirectory(parent, label) {
|
|
362
|
+
const directories = readdirSync(parent, { withFileTypes: true })
|
|
363
|
+
.filter((entry) => entry.isDirectory())
|
|
364
|
+
.map((entry) => entry.name)
|
|
365
|
+
.sort((left, right) => left.localeCompare(right));
|
|
366
|
+
if (directories.length !== 1)
|
|
367
|
+
throw new Error(`Runtime requires exactly one ${label}; found ${directories.length}`);
|
|
368
|
+
return directories[0];
|
|
369
|
+
}
|
|
370
|
+
function assertRegularDirectory(path, label) {
|
|
371
|
+
let stat;
|
|
372
|
+
try {
|
|
373
|
+
stat = lstatSync(path);
|
|
374
|
+
}
|
|
375
|
+
catch {
|
|
376
|
+
throw new Error(`${label} is missing: ${path}`);
|
|
377
|
+
}
|
|
378
|
+
if (!stat.isDirectory() || stat.isSymbolicLink())
|
|
379
|
+
throw new Error(`${label} must be a regular directory: ${path}`);
|
|
380
|
+
return path;
|
|
381
|
+
}
|
|
382
|
+
function assertRegularFile(path, label) {
|
|
383
|
+
let stat;
|
|
384
|
+
try {
|
|
385
|
+
stat = lstatSync(path);
|
|
386
|
+
}
|
|
387
|
+
catch {
|
|
388
|
+
throw new Error(`${label} is missing: ${path}`);
|
|
389
|
+
}
|
|
390
|
+
if (!stat.isFile() || stat.isSymbolicLink())
|
|
391
|
+
throw new Error(`${label} must be a regular file: ${path}`);
|
|
392
|
+
return path;
|
|
393
|
+
}
|
|
394
|
+
function assertDirectorySegment(value, label) {
|
|
395
|
+
if (!value || value === '.' || value === '..' || /[\\/]/.test(value))
|
|
396
|
+
throw new Error(`${label} is not valid: ${value}`);
|
|
397
|
+
}
|
|
398
|
+
function readJson(path, label) {
|
|
399
|
+
try {
|
|
400
|
+
return JSON.parse(readFileSync(path, 'utf8'));
|
|
401
|
+
}
|
|
402
|
+
catch (error) {
|
|
403
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
404
|
+
throw new Error(`${label} is not valid JSON: ${path} (${reason})`);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
//# sourceMappingURL=create-agent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-agent.js","sourceRoot":"","sources":["../../src/service/create-agent.ts"],"names":[],"mappings":"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"}
|
package/dist/service/events.d.ts
CHANGED
|
@@ -1,49 +1,16 @@
|
|
|
1
|
-
import type { SSEEvent
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
*/
|
|
7
|
-
export interface AgentServiceEventPayload extends Record<string, unknown> {
|
|
8
|
-
correlationId?: string;
|
|
1
|
+
import type { SSEEvent } from '@gt-fe/eap-runtime';
|
|
2
|
+
export type { SSEEvent } from '@gt-fe/eap-runtime';
|
|
3
|
+
export type Unsubscribe = () => void;
|
|
4
|
+
export type EventFilter = string | readonly string[] | {
|
|
5
|
+
types?: readonly string[];
|
|
9
6
|
taskId?: string;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
toolName?: string;
|
|
15
|
-
arguments?: Record<string, unknown>;
|
|
16
|
-
content?: unknown;
|
|
17
|
-
thought?: string;
|
|
18
|
-
message?: string;
|
|
19
|
-
success?: boolean;
|
|
20
|
-
status?: string;
|
|
21
|
-
progress?: number;
|
|
22
|
-
error?: string;
|
|
23
|
-
executionTime?: number;
|
|
24
|
-
willRetry?: boolean;
|
|
25
|
-
duration?: number;
|
|
26
|
-
durationMs?: number;
|
|
27
|
-
nodeId?: string;
|
|
28
|
-
/** Runtime currently emits this graph node field in event payloads. */
|
|
29
|
-
node?: string;
|
|
30
|
-
graphId?: string;
|
|
31
|
-
iterationCount?: number;
|
|
32
|
-
choice?: string;
|
|
33
|
-
state?: unknown;
|
|
34
|
-
data?: unknown;
|
|
35
|
-
model?: string;
|
|
36
|
-
inputTokens?: number;
|
|
37
|
-
outputTokens?: number;
|
|
38
|
-
total?: unknown;
|
|
39
|
-
tokenUsage?: unknown;
|
|
40
|
-
question?: string;
|
|
41
|
-
options?: string[];
|
|
7
|
+
correlationId?: string;
|
|
8
|
+
} | ((event: SSEEvent) => boolean);
|
|
9
|
+
export interface AgentEventManager {
|
|
10
|
+
subscribe(filter: EventFilter | undefined, handler: (event: SSEEvent) => void): Unsubscribe;
|
|
42
11
|
}
|
|
43
|
-
export
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
data: TData;
|
|
12
|
+
export declare function createEventManager(): AgentEventManager & {
|
|
13
|
+
emit(event: SSEEvent): void;
|
|
14
|
+
clear(): void;
|
|
47
15
|
};
|
|
48
|
-
export type AgentToolStreamEvent = AgentServiceStreamEvent<'tool.called', ToolCalledPayload> | AgentServiceStreamEvent<'tool.result', ToolResultPayload> | AgentServiceStreamEvent<'tool.progress', ToolProgressPayload> | AgentServiceStreamEvent<'tool.error', ToolErrorPayload>;
|
|
49
16
|
//# sourceMappingURL=events.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/service/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/service/events.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,YAAY,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAErC,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,SAAS,MAAM,EAAE,GACjB;IACA,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GACC,CAAC,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,CAAC;AAEnC,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,IAAI,GAAG,WAAW,CAAC;CAC7F;AAOD,wBAAgB,kBAAkB,IAAI,iBAAiB,GAAG;IAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAAC,KAAK,IAAI,IAAI,CAAA;CAAE,CAsBvG"}
|
package/dist/service/events.js
CHANGED
|
@@ -1,2 +1,46 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export function createEventManager() {
|
|
2
|
+
const subscriptions = new Set();
|
|
3
|
+
return {
|
|
4
|
+
subscribe(filter, handler) {
|
|
5
|
+
const subscription = { filter, handler };
|
|
6
|
+
subscriptions.add(subscription);
|
|
7
|
+
return () => subscriptions.delete(subscription);
|
|
8
|
+
},
|
|
9
|
+
emit(event) {
|
|
10
|
+
for (const { filter, handler } of [...subscriptions]) {
|
|
11
|
+
if (!matchesFilter(event, filter))
|
|
12
|
+
continue;
|
|
13
|
+
try {
|
|
14
|
+
handler(event);
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
// Event listeners are observers and must not interrupt Runtime execution.
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
clear() {
|
|
22
|
+
subscriptions.clear();
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function matchesFilter(event, filter) {
|
|
27
|
+
if (!filter)
|
|
28
|
+
return true;
|
|
29
|
+
if (typeof filter === 'function')
|
|
30
|
+
return filter(event);
|
|
31
|
+
if (typeof filter === 'string')
|
|
32
|
+
return event.type === filter;
|
|
33
|
+
if (Array.isArray(filter))
|
|
34
|
+
return filter.includes(event.type);
|
|
35
|
+
if (typeof filter !== 'object')
|
|
36
|
+
return false;
|
|
37
|
+
const criteria = filter;
|
|
38
|
+
if (criteria.types && !criteria.types.includes(event.type))
|
|
39
|
+
return false;
|
|
40
|
+
if (criteria.taskId && criteria.taskId !== event.taskId)
|
|
41
|
+
return false;
|
|
42
|
+
if (criteria.correlationId && criteria.correlationId !== event.correlationId)
|
|
43
|
+
return false;
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
2
46
|
//# sourceMappingURL=events.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/service/events.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/service/events.ts"],"names":[],"mappings":"AAyBA,MAAM,UAAU,kBAAkB;IAChC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAgB,CAAC;IAC9C,OAAO;QACL,SAAS,CAAC,MAAM,EAAE,OAAO;YACvB,MAAM,YAAY,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YACzC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YAChC,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,CAAC,KAAK;YACR,KAAK,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC;gBACrD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC;oBAAE,SAAS;gBAC5C,IAAI,CAAC;oBACH,OAAO,CAAC,KAAK,CAAC,CAAC;gBACjB,CAAC;gBAAC,MAAM,CAAC;oBACP,0EAA0E;gBAC5E,CAAC;YACH,CAAC;QACH,CAAC;QACD,KAAK;YACH,aAAa,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAe,EAAE,MAA+B;IACrE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,OAAO,MAAM,KAAK,UAAU;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvD,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;IAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;QAAE,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC9D,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC7C,MAAM,QAAQ,GAAG,MAA2F,CAAC;IAC7G,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACzE,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACtE,IAAI,QAAQ,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,KAAK,KAAK,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IAC3F,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/service/index.d.ts
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
export * from './types.js';
|
|
2
2
|
export * from './events.js';
|
|
3
|
-
export * from './
|
|
4
|
-
export
|
|
3
|
+
export * from './resources.js';
|
|
4
|
+
export * from './sessions.js';
|
|
5
|
+
export * from './messages.js';
|
|
6
|
+
export * from './create-agent.js';
|
|
7
|
+
export type { ConversationDetail, GraphMessage, LlmTurnIndexEntry, LlmTurnRecord, MessageService, MessageRecord, SSEEvent, SessionRecord, SessionService, } from '@gt-fe/eap-runtime';
|
|
5
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,YAAY,EACV,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,aAAa,EACb,QAAQ,EACR,aAAa,EACb,cAAc,GACf,MAAM,oBAAoB,CAAC"}
|
package/dist/service/index.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export * from './types.js';
|
|
2
2
|
export * from './events.js';
|
|
3
|
-
export * from './
|
|
3
|
+
export * from './resources.js';
|
|
4
|
+
export * from './sessions.js';
|
|
5
|
+
export * from './messages.js';
|
|
6
|
+
export * from './create-agent.js';
|
|
4
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/service/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { DevRuntime, MessageRecord } from '@gt-fe/eap-runtime';
|
|
2
|
+
import type { Page } from './sessions.js';
|
|
3
|
+
export interface MessageListQuery {
|
|
4
|
+
limit?: number;
|
|
5
|
+
offset?: number;
|
|
6
|
+
}
|
|
7
|
+
export type MessageView = MessageRecord;
|
|
8
|
+
export interface AgentMessageManager {
|
|
9
|
+
list(sessionId: string, query?: MessageListQuery): Promise<Page<MessageView>>;
|
|
10
|
+
listByTask(taskId: string, query?: MessageListQuery): Promise<Page<MessageView>>;
|
|
11
|
+
}
|
|
12
|
+
export declare function createMessageManager(getRuntime: () => DevRuntime): AgentMessageManager;
|
|
13
|
+
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/service/messages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,CAAC;AAExC,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAC9E,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;CAClF;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,UAAU,GAAG,mBAAmB,CAatF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export function createMessageManager(getRuntime) {
|
|
2
|
+
return {
|
|
3
|
+
async list(sessionId, query = {}) {
|
|
4
|
+
const { limit, offset } = normalizePagination(query);
|
|
5
|
+
const items = await getRuntime().messageService.getMessages(sessionId, { limit, offset });
|
|
6
|
+
return { items, limit, offset };
|
|
7
|
+
},
|
|
8
|
+
async listByTask(taskId, query = {}) {
|
|
9
|
+
const { limit, offset } = normalizePagination(query);
|
|
10
|
+
const all = await getRuntime().messageService.getMessagesByTask(taskId);
|
|
11
|
+
return { items: all.slice(offset, offset + limit), limit, offset, total: all.length };
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function normalizePagination(query) {
|
|
16
|
+
const limit = query.limit ?? 100;
|
|
17
|
+
const offset = query.offset ?? 0;
|
|
18
|
+
if (!Number.isInteger(limit) || limit < 1 || limit > 500)
|
|
19
|
+
throw new RangeError('Message limit must be an integer between 1 and 500');
|
|
20
|
+
if (!Number.isInteger(offset) || offset < 0)
|
|
21
|
+
throw new RangeError('Message offset must be a non-negative integer');
|
|
22
|
+
return { limit, offset };
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=messages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/service/messages.ts"],"names":[],"mappings":"AAeA,MAAM,UAAU,oBAAoB,CAAC,UAA4B;IAC/D,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,GAAG,EAAE;YAC9B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,MAAM,UAAU,EAAE,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1F,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAClC,CAAC;QACD,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,GAAG,EAAE;YACjC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,GAAG,GAAG,MAAM,UAAU,EAAE,CAAC,cAAc,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;YACxE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC;QACxF,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAuB;IAClD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC;IACjC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,GAAG,GAAG;QAAE,MAAM,IAAI,UAAU,CAAC,oDAAoD,CAAC,CAAC;IACrI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,UAAU,CAAC,+CAA+C,CAAC,CAAC;IACnH,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC"}
|