@mcp-abap-adt/llm-agent-server 16.2.0 → 18.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/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/smart-agent/build-dag-coordinator-deps.d.ts +34 -0
- package/dist/smart-agent/build-dag-coordinator-deps.d.ts.map +1 -0
- package/dist/smart-agent/build-dag-coordinator-deps.js +107 -0
- package/dist/smart-agent/build-dag-coordinator-deps.js.map +1 -0
- package/dist/smart-agent/build-stepper-root.d.ts +97 -0
- package/dist/smart-agent/build-stepper-root.d.ts.map +1 -0
- package/dist/smart-agent/build-stepper-root.js +242 -0
- package/dist/smart-agent/build-stepper-root.js.map +1 -0
- package/dist/smart-agent/config.d.ts +207 -3
- package/dist/smart-agent/config.d.ts.map +1 -1
- package/dist/smart-agent/config.js +465 -39
- package/dist/smart-agent/config.js.map +1 -1
- package/dist/smart-agent/jsonl-knowledge-backend.d.ts +19 -0
- package/dist/smart-agent/jsonl-knowledge-backend.d.ts.map +1 -0
- package/dist/smart-agent/jsonl-knowledge-backend.js +46 -0
- package/dist/smart-agent/jsonl-knowledge-backend.js.map +1 -0
- package/dist/smart-agent/session-identity-resolver.d.ts +17 -0
- package/dist/smart-agent/session-identity-resolver.d.ts.map +1 -0
- package/dist/smart-agent/session-identity-resolver.js +37 -0
- package/dist/smart-agent/session-identity-resolver.js.map +1 -0
- package/dist/smart-agent/session-meta-store.d.ts +53 -0
- package/dist/smart-agent/session-meta-store.d.ts.map +1 -0
- package/dist/smart-agent/session-meta-store.js +36 -0
- package/dist/smart-agent/session-meta-store.js.map +1 -0
- package/dist/smart-agent/smart-server.d.ts +288 -4
- package/dist/smart-agent/smart-server.d.ts.map +1 -1
- package/dist/smart-agent/smart-server.js +1325 -111
- package/dist/smart-agent/smart-server.js.map +1 -1
- package/dist/smart-agent/stepper-coordinator-handler.d.ts +36 -0
- package/dist/smart-agent/stepper-coordinator-handler.d.ts.map +1 -0
- package/dist/smart-agent/stepper-coordinator-handler.js +214 -0
- package/dist/smart-agent/stepper-coordinator-handler.js.map +1 -0
- package/package.json +26 -26
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* SmartServer — embeddable OpenAI-compatible HTTP server backed by SmartAgent.
|
|
3
3
|
*/
|
|
4
|
-
import type { EmbedderFactory, IClientAdapter, IEmbedder, ILlmApiAdapter, IMcpClient, IModelResolver, IRequestLogger, ISkillManager } from '@mcp-abap-adt/llm-agent';
|
|
5
|
-
import type
|
|
4
|
+
import type { EmbedderFactory, IClientAdapter, IEmbedder, IKnowledgeRagHandle, ILlm, ILlmApiAdapter, ILogger, IMcpClient, IModelResolver, IRagRegistry, IRequestLogger, ISkillManager } from '@mcp-abap-adt/llm-agent';
|
|
5
|
+
import { type IRag } from '@mcp-abap-adt/llm-agent';
|
|
6
|
+
import type { IPluginLoader, SessionAgentParts, SessionGraph, SmartAgent } from '@mcp-abap-adt/llm-agent-libs';
|
|
7
|
+
import { SessionRegistry } from '@mcp-abap-adt/llm-agent-libs';
|
|
6
8
|
import type { PipelineConfig } from './pipeline.js';
|
|
9
|
+
import { resolveSessionIdentity } from './session-identity-resolver.js';
|
|
7
10
|
export interface SmartServerLlmConfig {
|
|
8
11
|
/** Provider id for the flat schema. Required when no pipeline.llm.main is set. */
|
|
9
12
|
provider?: 'deepseek' | 'openai' | 'anthropic' | 'sap-ai-sdk' | 'ollama';
|
|
@@ -105,9 +108,9 @@ export interface SmartServerCircuitBreakerConfig {
|
|
|
105
108
|
export interface SmartServerConfig {
|
|
106
109
|
port?: number;
|
|
107
110
|
host?: string;
|
|
108
|
-
llm
|
|
111
|
+
llm?: SmartServerLlmConfig | Record<string, SmartServerLlmConfig>;
|
|
109
112
|
rag?: SmartServerRagConfig;
|
|
110
|
-
mcp?: SmartServerMcpConfig;
|
|
113
|
+
mcp?: SmartServerMcpConfig | SmartServerMcpConfig[];
|
|
111
114
|
agent?: SmartServerAgentConfig;
|
|
112
115
|
prompts?: SmartServerPromptsConfig;
|
|
113
116
|
mode?: SmartServerMode;
|
|
@@ -163,6 +166,15 @@ export interface SmartServerConfig {
|
|
|
163
166
|
* `SmartServer.start()` once the parent LLMs are built.
|
|
164
167
|
*/
|
|
165
168
|
coordinatorYaml?: import('./config.js').YamlCoordinator;
|
|
169
|
+
/**
|
|
170
|
+
* Per-session lifecycle tuning. Defaults: idleTtlMs=7_200_000 (2h),
|
|
171
|
+
* maxSessions=1000, cookieName='sid'.
|
|
172
|
+
*/
|
|
173
|
+
session?: {
|
|
174
|
+
idleTtlMs?: number;
|
|
175
|
+
maxSessions?: number;
|
|
176
|
+
cookieName?: string;
|
|
177
|
+
};
|
|
166
178
|
}
|
|
167
179
|
/**
|
|
168
180
|
* A nested sub-agent declared via the top-level `subagents:` YAML block.
|
|
@@ -185,10 +197,266 @@ export interface SmartServerHandle {
|
|
|
185
197
|
close(): Promise<void>;
|
|
186
198
|
requestLogger: IRequestLogger;
|
|
187
199
|
}
|
|
200
|
+
import type { ISessionMetaStore, SessionMetaRow } from './session-meta-store.js';
|
|
188
201
|
export { generateConfigTemplate, loadYamlConfig, type ResolveConfigArgs, resolveCoordinatorActivation, resolveCoordinatorDispatch, resolveCoordinatorPlanning, resolveEnvVars, resolveSmartServerConfig, resolveToolSelectionStrategy, YAML_TEMPLATE, type YamlConfig, } from './config.js';
|
|
202
|
+
/**
|
|
203
|
+
* GLOBAL per-worker heavy clients — built once, injected by reference per
|
|
204
|
+
* session. In addition to LLM/embedder clients, the worker's OWN declared
|
|
205
|
+
* `toolsRag`/`historyRag`/`mcpClients` (if any) are cached here too — the
|
|
206
|
+
* per-session re-wire MUST prefer the worker's own resources over the
|
|
207
|
+
* parent's injected ones, so we build them once and reuse by reference.
|
|
208
|
+
*/
|
|
209
|
+
export interface WorkerLlmSet {
|
|
210
|
+
mainLlm: ILlm;
|
|
211
|
+
classifierLlm: ILlm;
|
|
212
|
+
helperLlm?: ILlm;
|
|
213
|
+
embedder?: IEmbedder;
|
|
214
|
+
/** Worker's OWN tools RAG, built from `subCfg.rag` if declared. */
|
|
215
|
+
toolsRag?: IRag;
|
|
216
|
+
/** Worker's OWN history RAG (mirrors flat-rag block, separate instance). */
|
|
217
|
+
historyRag?: IRag;
|
|
218
|
+
/**
|
|
219
|
+
* Worker's OWN MCP clients (from `subCfg.mcpClients` DI or built once from
|
|
220
|
+
* `subCfg.mcp`). Undefined means the worker did not declare any — caller
|
|
221
|
+
* may fall back to the parent's injected clients.
|
|
222
|
+
*/
|
|
223
|
+
mcpClients?: IMcpClient[];
|
|
224
|
+
/**
|
|
225
|
+
* Shutdown function returned by the builder's `SmartAgentHandle.close()`
|
|
226
|
+
* for this worker (Fix #21). Disconnects MCP clients (and any other
|
|
227
|
+
* builder-owned resources) registered to this worker. Captured by
|
|
228
|
+
* `backfillWorkerCacheFromHandle` so `_drainWorkerCache()` can call it on
|
|
229
|
+
* config-reload (PUT /v1/config + hot-reload) and on server shutdown —
|
|
230
|
+
* without this, the per-worker handle is discarded by `buildSubAgent` and
|
|
231
|
+
* lazy rebuilds (Fix #18) accumulate MCP connections with no close path.
|
|
232
|
+
*/
|
|
233
|
+
close?: () => Promise<void>;
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Drain every cached worker's `close` (if any), then clear the cache map.
|
|
237
|
+
* Used by config-reload (PUT /v1/config + hot-reload — Fix #14/18/21) and by
|
|
238
|
+
* server `close()` to release per-worker MCP connections that were attached
|
|
239
|
+
* to the discarded `SmartAgentHandle`s.
|
|
240
|
+
*
|
|
241
|
+
* IMPORTANT — in-flight caveat: this aborts any request that is mid-call on
|
|
242
|
+
* a worker's MCP client. That is acceptable for an admin action (config
|
|
243
|
+
* reload, server shutdown) where the alternative is leaking connections.
|
|
244
|
+
* Server `close()` calls this AFTER `lifecycle.disposeAll()` so per-session
|
|
245
|
+
* graphs that reference worker clients are torn down first.
|
|
246
|
+
*
|
|
247
|
+
* Uses `Promise.allSettled` so one failing close cannot block the others.
|
|
248
|
+
*/
|
|
249
|
+
export declare function drainWorkerCache(cache: Map<string, WorkerLlmSet>): Promise<void>;
|
|
250
|
+
/**
|
|
251
|
+
* Build-once-per-worker resolver. The first time a worker name is seen, it
|
|
252
|
+
* constructs the worker's main/classifier/(optional helper) LLM + embedder and
|
|
253
|
+
* caches the set; every later call (e.g. each per-session worker re-wire)
|
|
254
|
+
* returns the SAME set by reference — never reconstructing LLM clients
|
|
255
|
+
* (locked invariant: LLM/embedder clients are global, built once).
|
|
256
|
+
*
|
|
257
|
+
* Accepts optional `makeToolsRag`/`makeHistoryRag`/`makeMcpClients` factories;
|
|
258
|
+
* when provided, the resolver builds them ONCE on the first miss and caches
|
|
259
|
+
* them on the returned set. Subsequent calls return the cached resources by
|
|
260
|
+
* reference — never re-vectorizing or re-connecting MCP.
|
|
261
|
+
*/
|
|
262
|
+
export declare function resolveWorkerLlmSet(input: {
|
|
263
|
+
name: string;
|
|
264
|
+
cache: Map<string, WorkerLlmSet>;
|
|
265
|
+
makeMain: () => Promise<ILlm>;
|
|
266
|
+
makeClassifier: () => Promise<ILlm>;
|
|
267
|
+
makeHelper?: () => Promise<ILlm>;
|
|
268
|
+
makeEmbedder?: () => Promise<IEmbedder>;
|
|
269
|
+
makeToolsRag?: () => Promise<IRag>;
|
|
270
|
+
makeHistoryRag?: () => Promise<IRag>;
|
|
271
|
+
makeMcpClients?: () => Promise<IMcpClient[]>;
|
|
272
|
+
}): Promise<WorkerLlmSet>;
|
|
273
|
+
/**
|
|
274
|
+
* Backfill the per-worker cache entry from the BUILT handle (review HIGH #7).
|
|
275
|
+
*
|
|
276
|
+
* The primary `buildSubAgent` populates `cached.mcpClients`/`toolsRag`/
|
|
277
|
+
* `historyRag` only when the worker config provided DI factories. Workers
|
|
278
|
+
* configured with `subCfg.mcp: ...` (regular config that triggers the
|
|
279
|
+
* builder's own auto-connect) or with `subCfg.rag: ...` whose RAG is owned
|
|
280
|
+
* by the builder leave those slots empty — so per-session re-wires would
|
|
281
|
+
* fall back to the PARENT's MCP/RAG, losing the worker's own connection.
|
|
282
|
+
*
|
|
283
|
+
* After the builder finishes, this helper captures what the handle actually
|
|
284
|
+
* holds and stores it BY REFERENCE on the cache entry. Subsequent per-session
|
|
285
|
+
* re-wires read the same slots and find the worker's own resources.
|
|
286
|
+
*
|
|
287
|
+
* Pure helper, mutates `entry` in place. No-op when the corresponding slot
|
|
288
|
+
* is already populated (DI path wins) or when the handle has no resource for
|
|
289
|
+
* that slot (worker simply didn't declare one).
|
|
290
|
+
*/
|
|
291
|
+
export declare function backfillWorkerCacheFromHandle(entry: WorkerLlmSet, handle: {
|
|
292
|
+
mcpClients?: IMcpClient[];
|
|
293
|
+
ragRegistry: {
|
|
294
|
+
get(name: string): IRag | undefined;
|
|
295
|
+
};
|
|
296
|
+
close?: () => Promise<void>;
|
|
297
|
+
}): Promise<void>;
|
|
298
|
+
/**
|
|
299
|
+
* Share the parent RAG registry with subagents (per-session worker re-wire).
|
|
300
|
+
* Session/user/global collections written at the top level become visible to
|
|
301
|
+
* workers; the per-call scope filter (`rag-query.ts`) isolates by
|
|
302
|
+
* `ctx.sessionId` / `ctx.options.userId`. A worker's own declared store is
|
|
303
|
+
* registered INTO this same registry under its namespace. When the parent
|
|
304
|
+
* registry is undefined (no top-level registry yet — e.g. unit test seam),
|
|
305
|
+
* return undefined so the builder allocates its own SimpleRagRegistry.
|
|
306
|
+
*/
|
|
307
|
+
export declare function resolveSubAgentRagRegistry(input: {
|
|
308
|
+
parentRagRegistry: IRagRegistry | undefined;
|
|
309
|
+
}): IRagRegistry | undefined;
|
|
310
|
+
/**
|
|
311
|
+
* Options for `buildSessionLifecycle`. Composes the SessionGraphFactory + the
|
|
312
|
+
* SessionRegistry; exposes a thin facade so `_handle` stays unit-testable.
|
|
313
|
+
*/
|
|
314
|
+
export interface SessionLifecycleOptions {
|
|
315
|
+
idleTtlMs: number;
|
|
316
|
+
maxSessions: number;
|
|
317
|
+
cookieName: string;
|
|
318
|
+
mcpClients: IMcpClient[];
|
|
319
|
+
toolsRag: IRag | undefined;
|
|
320
|
+
ragRegistry: IRagRegistry;
|
|
321
|
+
buildAgent: (parts: SessionAgentParts) => Promise<SmartAgent | undefined>;
|
|
322
|
+
/** Optional logger forwarded to SessionGraphFactory for cleanup-failure surfacing. */
|
|
323
|
+
logger?: ILogger;
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* Composes the cookie identity resolver + SessionGraphFactory + SessionRegistry
|
|
327
|
+
* into one lifecycle object the server's `_handle` consumes. The default MCP
|
|
328
|
+
* factory returns the shared GLOBAL clients by reference (one upstream
|
|
329
|
+
* connection); a creds-aware build swaps it out (out of scope here).
|
|
330
|
+
*/
|
|
331
|
+
export declare function buildSessionLifecycle(opts: SessionLifecycleOptions): {
|
|
332
|
+
resolve: (cookieHeader: string | undefined, isHttps: boolean) => ReturnType<typeof resolveSessionIdentity>;
|
|
333
|
+
acquire: (sessionId: string) => Promise<ReturnType<SessionRegistry['acquire']> extends Promise<infer G> ? G : never>;
|
|
334
|
+
release: (sessionId: string, graph?: SessionGraph) => void;
|
|
335
|
+
evictIdle: () => Promise<void>;
|
|
336
|
+
disposeAll: () => Promise<void>;
|
|
337
|
+
invalidateAll: () => Promise<void>;
|
|
338
|
+
registry: SessionRegistry;
|
|
339
|
+
};
|
|
340
|
+
export type SessionLifecycle = ReturnType<typeof buildSessionLifecycle>;
|
|
341
|
+
/** Response shape for GET /v1/sessions */
|
|
342
|
+
export interface SessionListBody {
|
|
343
|
+
sessions: SessionMetaRow[];
|
|
344
|
+
}
|
|
345
|
+
/** Response shape for POST /v1/sessions/:id/resume */
|
|
346
|
+
export interface SessionResumeBody {
|
|
347
|
+
ok: boolean;
|
|
348
|
+
session?: SessionMetaRow;
|
|
349
|
+
error?: string;
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* Seed session-scope guidance entries into a BRAND-NEW session's knowledge-RAG
|
|
353
|
+
* (deployment-supplied tool-usage guidance the planner/executor read in "Known
|
|
354
|
+
* facts"). Idempotent: rehydrates via init() and writes ONLY when the session is
|
|
355
|
+
* empty (`fingerprint() === 'n=0'`), so resumes never duplicate. Entries are
|
|
356
|
+
* config DATA — the runtime stays MCP-agnostic (no tool knowledge in agent code).
|
|
357
|
+
*/
|
|
358
|
+
export declare function seedSessionKnowledge(kr: IKnowledgeRagHandle & {
|
|
359
|
+
init?(): Promise<void>;
|
|
360
|
+
fingerprint?(): string;
|
|
361
|
+
}, seeds: ReadonlyArray<{
|
|
362
|
+
content: string;
|
|
363
|
+
artifactType: string;
|
|
364
|
+
}>, nowIso: string): Promise<void>;
|
|
365
|
+
/**
|
|
366
|
+
* Record that a request for `sessionId` STARTED — create the meta row on first
|
|
367
|
+
* sight, else touch it and mark in-progress. Called from the live request path
|
|
368
|
+
* (`_withSession`) so GET /v1/sessions, resume and delete actually see sessions
|
|
369
|
+
* produced by normal chat/stream traffic (review Finding 3). `userIdentity` is
|
|
370
|
+
* the sessionId itself in the default no-auth build — matching how the
|
|
371
|
+
* /v1/sessions endpoints resolve identity (`resolved.identity.sessionId`).
|
|
372
|
+
*/
|
|
373
|
+
export declare function recordSessionStart(store: ISessionMetaStore, sessionId: string, nowIso: string): Promise<void>;
|
|
374
|
+
/**
|
|
375
|
+
* Record that a request for `sessionId` FINISHED — touch + mark idle (so it can
|
|
376
|
+
* be resumed). No-op if the row was deleted mid-flight.
|
|
377
|
+
*/
|
|
378
|
+
export declare function recordSessionEnd(store: ISessionMetaStore, sessionId: string, nowIso: string): Promise<void>;
|
|
379
|
+
/**
|
|
380
|
+
* List all sessions for a given user identity.
|
|
381
|
+
* Extracted for unit-testability (mirrors the /v1/usage handler pattern).
|
|
382
|
+
*/
|
|
383
|
+
export declare function handleListSessions(store: ISessionMetaStore, identity: string): Promise<SessionListBody>;
|
|
384
|
+
/**
|
|
385
|
+
* Resume (claim) a session by ID for a user identity.
|
|
386
|
+
* Sets the session status to 'idle' so it can be re-entered.
|
|
387
|
+
*/
|
|
388
|
+
export declare function handleResumeSession(store: ISessionMetaStore, identity: string, id: string): Promise<SessionResumeBody>;
|
|
389
|
+
/**
|
|
390
|
+
* Delete a session by ID for a user identity, and evict its RAG state.
|
|
391
|
+
*/
|
|
392
|
+
export declare function handleDeleteSession(store: ISessionMetaStore, identity: string, id: string, evictFn: (sessionId: string) => Promise<void>): Promise<{
|
|
393
|
+
ok: boolean;
|
|
394
|
+
error?: string;
|
|
395
|
+
}>;
|
|
396
|
+
export declare function connectMcpClientsFromConfig(mcpCfg: SmartServerMcpConfig | SmartServerMcpConfig[] | undefined | null): Promise<IMcpClient[]>;
|
|
397
|
+
export declare function buildMcpBridge(clients: IMcpClient[]): (name: string, args: unknown, signal?: AbortSignal) => Promise<string>;
|
|
398
|
+
/**
|
|
399
|
+
* Returns `true` ONLY when the raw coordinator config has an explicit `mode`
|
|
400
|
+
* string — the opt-in gate for the 18.0 Stepper runtime.
|
|
401
|
+
*
|
|
402
|
+
* IMPORTANT: Do NOT call `parseStepperCoordinatorConfig` to decide — that
|
|
403
|
+
* function defaults `mode` to `'planned-react'`, which would silently route
|
|
404
|
+
* every 17.0 legacy config onto the Stepper path. Gate on the RAW field
|
|
405
|
+
* presence only; parse is done INSIDE the Stepper branch after this check.
|
|
406
|
+
*/
|
|
407
|
+
export declare function usesStepper(coordCfg: Record<string, unknown> | undefined): boolean;
|
|
189
408
|
export declare class SmartServer {
|
|
190
409
|
private readonly cfg;
|
|
191
410
|
private readonly noop;
|
|
411
|
+
/**
|
|
412
|
+
* GLOBAL per-worker LLM/embedder cache. Populated lazily by `buildSubAgent`
|
|
413
|
+
* the first time each worker name is seen; subsequent per-session re-wires
|
|
414
|
+
* pull from this cache by reference (never reconstructing LLM clients).
|
|
415
|
+
*/
|
|
416
|
+
private readonly _workerLlmCache;
|
|
417
|
+
/** Lifecycle handle wired in `start()`; consumed by `_handle`. */
|
|
418
|
+
private _lifecycle?;
|
|
419
|
+
/** Hoisted globals used by `buildSessionAgent` to re-wire fresh per-session workers. */
|
|
420
|
+
private _mainLlm?;
|
|
421
|
+
private _classifierLlm?;
|
|
422
|
+
private _helperLlm?;
|
|
423
|
+
private _fileLogger?;
|
|
424
|
+
private _mergedEmbedderFactories?;
|
|
425
|
+
/**
|
|
426
|
+
* Captured DAG coordinator template — `deps` are stateless or LLM-bound and
|
|
427
|
+
* are reused across sessions; only `workers` + `stateOracle` are re-wired per
|
|
428
|
+
* session (review HIGH #1).
|
|
429
|
+
*/
|
|
430
|
+
private _dagCoordinatorTemplate?;
|
|
431
|
+
/**
|
|
432
|
+
* 18.0 Stepper coordinator handler — stateless, session context comes through
|
|
433
|
+
* `ctx.sessionId` at execute time. Built once in `start()` when
|
|
434
|
+
* `coordinator.mode` is present in the raw config; reused across sessions.
|
|
435
|
+
*/
|
|
436
|
+
private _stepperCoordinatorHandler?;
|
|
437
|
+
/**
|
|
438
|
+
* MCP clients connected for the Stepper path from the YAML `mcp:` config
|
|
439
|
+
* block. These are connected ONCE in `start()` (lazily resolved by
|
|
440
|
+
* `connectMcpClientsFromConfig`) and reused across every Stepper request.
|
|
441
|
+
*
|
|
442
|
+
* Populated only when `this.cfg.mcp` / `pipeline.mcp` is set AND no
|
|
443
|
+
* DI/plugin clients exist (DI precedence: `this.cfg.mcpClients` > plugin >
|
|
444
|
+
* yaml). Disposed via the server's `closeFns` on shutdown.
|
|
445
|
+
*/
|
|
446
|
+
private _stepperMcpClients?;
|
|
447
|
+
/**
|
|
448
|
+
* The ONE shared knowledge backend for the Stepper path (set during build).
|
|
449
|
+
* Held so DELETE /v1/sessions/:id can evict a session's entries from it —
|
|
450
|
+
* critical for the long-lived in-memory backend, which would otherwise retain
|
|
451
|
+
* knowledge after a delete and rehydrate it on a same-id re-entry.
|
|
452
|
+
*/
|
|
453
|
+
private _stepperKnowledgeBackend?;
|
|
454
|
+
/**
|
|
455
|
+
* Session meta-store for /v1/sessions endpoints (Task 17).
|
|
456
|
+
* Defaults to InMemorySessionMetaStore; a durable store can be injected via
|
|
457
|
+
* `cfg.sessionMetaStore` in a future extension.
|
|
458
|
+
*/
|
|
459
|
+
private readonly _sessionMetaStore;
|
|
192
460
|
constructor(config: SmartServerConfig);
|
|
193
461
|
start(): Promise<SmartServerHandle>;
|
|
194
462
|
/**
|
|
@@ -208,6 +476,22 @@ export declare class SmartServer {
|
|
|
208
476
|
* always undefined here.
|
|
209
477
|
*/
|
|
210
478
|
private buildSubAgent;
|
|
479
|
+
/**
|
|
480
|
+
* Builds a per-session SmartAgent from injected globals (review HIGH #1 +
|
|
481
|
+
* MEDIUM #3). Re-wires the SubAgent registry + DAG coordinator deps FRESH per
|
|
482
|
+
* session, sharing this session's logger + the global ragRegistry/toolsRag/
|
|
483
|
+
* mcpClients + the CACHED per-worker LLM/embedder (this._workerLlmCache). It
|
|
484
|
+
* NEVER reuses the primary build()'s global `registry`/DAG-deps and NEVER
|
|
485
|
+
* constructs new LLM clients.
|
|
486
|
+
*/
|
|
487
|
+
private buildSessionAgent;
|
|
488
|
+
/**
|
|
489
|
+
* Resolve identity (mint cookie when needed), acquire the per-session graph,
|
|
490
|
+
* run `fn` pinned, and release in `finally`. Order in `finally`:
|
|
491
|
+
* 1. drop the per-traceId logger delta (server-owned free, review HIGH #2)
|
|
492
|
+
* 2. release the refcount pin
|
|
493
|
+
*/
|
|
494
|
+
private _withSession;
|
|
211
495
|
private _handle;
|
|
212
496
|
private _handleAdapterRequest;
|
|
213
497
|
private _handleChat;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-server.d.ts","sourceRoot":"","sources":["../../src/smart-agent/smart-server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,SAAS,EACT,cAAc,
|
|
1
|
+
{"version":3,"file":"smart-server.d.ts","sourceRoot":"","sources":["../../src/smart-agent/smart-server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,SAAS,EACT,mBAAmB,EACnB,IAAI,EACJ,cAAc,EACd,OAAO,EACP,UAAU,EAEV,cAAc,EACd,YAAY,EACZ,cAAc,EACd,aAAa,EAQd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAGL,KAAK,IAAI,EAIV,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAEV,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,UAAU,EAEX,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAgBL,eAAe,EAMhB,MAAM,8BAA8B,CAAC;AAOtC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAKpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAMxE,MAAM,WAAW,oBAAoB;IACnC,kFAAkF;IAClF,QAAQ,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,WAAW,GAAG,YAAY,GAAG,QAAQ,CAAC;IACzE,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;IAC5D;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,uFAAuF;IACvF,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,QAAQ,CAAC,EAAE,eAAe,GAAG,mBAAmB,CAAC;CAClD;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,sBAAsB;IACrC,2BAA2B,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;IACtD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wDAAwD;IACxD,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,6FAA6F;IAC7F,eAAe,CAAC,EAAE,WAAW,GAAG,eAAe,GAAG,UAAU,CAAC;IAC7D,gEAAgE;IAChE,aAAa,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzD;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,0EAA0E;IAC1E,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,YAAY,CAAC;IACzC,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,+BAA+B;IAC9C,gEAAgE;IAChE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IAClE,GAAG,CAAC,EAAE,oBAAoB,CAAC;IAC3B,GAAG,CAAC,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,CAAC;IACpD,KAAK,CAAC,EAAE,sBAAsB,CAAC;IAC/B,OAAO,CAAC,EAAE,wBAAwB,CAAC;IACnC,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,+BAA+B,CAAC;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+CAA+C;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sGAAsG;IACtG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mFAAmF;IACnF,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,yFAAyF;IACzF,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACpD;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,sFAAsF;IACtF,YAAY,CAAC,EAAE,aAAa,CAAC;IAC7B,iFAAiF;IACjF,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;IAC1B,4EAA4E;IAC5E,cAAc,CAAC,EAAE,cAAc,EAAE,CAAC;IAClC,mEAAmE;IACnE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gGAAgG;IAChG,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAC/B,kEAAkE;IAClE,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,0GAA0G;IAC1G,aAAa,CAAC,EAAE,cAAc,CAAC;IAC/B;;;;OAIG;IACH,eAAe,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC9C;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,aAAa,EAAE,eAAe,CAAC;IACxD;;;OAGG;IACH,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,aAAa,EAAE,cAAc,CAAC;CAC/B;AAqFD,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,KAAK,iBAAiB,EACtB,4BAA4B,EAC5B,0BAA0B,EAC1B,0BAA0B,EAC1B,cAAc,EACd,wBAAwB,EACxB,4BAA4B,EAC5B,aAAa,EACb,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AAMrB;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,IAAI,CAAC;IACd,aAAa,EAAE,IAAI,CAAC;IACpB,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,IAAI,CAAC;IAChB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,IAAI,CAAC;IAClB;;;;OAIG;IACH,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;IAC1B;;;;;;;;OAQG;IACH,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAC/B,OAAO,CAAC,IAAI,CAAC,CAef;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,cAAc,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACpC,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;CAC9C,GAAG,OAAO,CAAC,YAAY,CAAC,CAyBxB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,6BAA6B,CACjD,KAAK,EAAE,YAAY,EACnB,MAAM,EAAE;IACN,UAAU,CAAC,EAAE,UAAU,EAAE,CAAC;IAC1B,WAAW,EAAE;QAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;KAAE,CAAC;IACrD,KAAK,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B,GACA,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,iBAAiB,EAAE,YAAY,GAAG,SAAS,CAAC;CAC7C,GAAG,YAAY,GAAG,SAAS,CAE3B;AAED;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,EAAE,CAAC;IACzB,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;IAC3B,WAAW,EAAE,YAAY,CAAC;IAC1B,UAAU,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IAC1E,sFAAsF;IACtF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG;IACpE,OAAO,EAAE,CACP,YAAY,EAAE,MAAM,GAAG,SAAS,EAChC,OAAO,EAAE,OAAO,KACb,UAAU,CAAC,OAAO,sBAAsB,CAAC,CAAC;IAC/C,OAAO,EAAE,CACP,SAAS,EAAE,MAAM,KACd,OAAO,CACV,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAC5E,CAAC;IACF,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC;IAC3D,SAAS,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,QAAQ,EAAE,eAAe,CAAC;CAC3B,CA4BA;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAMxE,0CAA0C;AAC1C,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,sDAAsD;AACtD,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,mBAAmB,GAAG;IACxB,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,WAAW,CAAC,IAAI,MAAM,CAAC;CACxB,EACD,KAAK,EAAE,aAAa,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,EAC/D,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAG1B;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,iBAAiB,CAAC,CAQ5B;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,iBAAiB,EACxB,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAC5C,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAQ1C;AAuCD,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,oBAAoB,GAAG,oBAAoB,EAAE,GAAG,SAAS,GAAG,IAAI,GACvE,OAAO,CAAC,UAAU,EAAE,CAAC,CAuBvB;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE,UAAU,EAAE,GACpB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,MAAM,CAAC,CAoBxE;AAMD;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC5C,OAAO,CAWT;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,kEAAkE;IAClE,OAAO,CAAC,UAAU,CAAC,CAAmB;IACtC,wFAAwF;IACxF,OAAO,CAAC,QAAQ,CAAC,CAAO;IACxB,OAAO,CAAC,cAAc,CAAC,CAAO;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAO;IAC1B,OAAO,CAAC,WAAW,CAAC,CAAU;IAC9B,OAAO,CAAC,wBAAwB,CAAC,CAAkC;IACnE;;;;OAIG;IACH,OAAO,CAAC,uBAAuB,CAAC,CAG9B;IACF;;;;OAIG;IACH,OAAO,CAAC,0BAA0B,CAAC,CAA4B;IAC/D;;;;;;;;OAQG;IACH,OAAO,CAAC,kBAAkB,CAAC,CAAe;IAC1C;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB,CAAC,CAAmB;IACpD;;;;OAIG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CACD;gBAErB,MAAM,EAAE,iBAAiB;IAI/B,KAAK,IAAI,OAAO,CAAC,iBAAiB,CAAC;IA84BzC;;;;;;;;;;;;;;;OAeG;YACW,aAAa;IAqM3B;;;;;;;OAOG;YACW,iBAAiB;IAoH/B;;;;;OAKG;YACW,YAAY;YAwDZ,OAAO;YAgSP,qBAAqB;YAgFrB,WAAW;IA8ZzB,kEAAkE;IAClE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAQxC;YAEW,mBAAmB;CAiLlC"}
|