@memberjunction/ai-agents 5.37.0 → 5.39.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 +47 -0
- package/dist/AgentDataPreloader.d.ts +8 -17
- package/dist/AgentDataPreloader.d.ts.map +1 -1
- package/dist/AgentDataPreloader.js +53 -8
- package/dist/AgentDataPreloader.js.map +1 -1
- package/dist/AgentRunner.d.ts +19 -23
- package/dist/AgentRunner.d.ts.map +1 -1
- package/dist/AgentRunner.js +73 -167
- package/dist/AgentRunner.js.map +1 -1
- package/dist/ArtifactToolManager.d.ts +13 -0
- package/dist/ArtifactToolManager.d.ts.map +1 -1
- package/dist/ArtifactToolManager.js +60 -1
- package/dist/ArtifactToolManager.js.map +1 -1
- package/dist/agent-run-watchdog.d.ts +109 -0
- package/dist/agent-run-watchdog.d.ts.map +1 -0
- package/dist/agent-run-watchdog.js +278 -0
- package/dist/agent-run-watchdog.js.map +1 -0
- package/dist/agent-types/loop-agent-prompt-params.d.ts +13 -0
- package/dist/agent-types/loop-agent-prompt-params.d.ts.map +1 -1
- package/dist/agent-types/loop-agent-prompt-params.js +3 -1
- package/dist/agent-types/loop-agent-prompt-params.js.map +1 -1
- package/dist/agent-types/loop-agent-response-type.d.ts +21 -3
- package/dist/agent-types/loop-agent-response-type.d.ts.map +1 -1
- package/dist/agent-types/loop-agent-response-type.js.map +1 -1
- package/dist/agent-types/loop-agent-type.d.ts.map +1 -1
- package/dist/agent-types/loop-agent-type.js +51 -13
- package/dist/agent-types/loop-agent-type.js.map +1 -1
- package/dist/artifact-tools/DataSnapshotToolLibrary.d.ts +4 -0
- package/dist/artifact-tools/DataSnapshotToolLibrary.d.ts.map +1 -1
- package/dist/artifact-tools/DataSnapshotToolLibrary.js +507 -12
- package/dist/artifact-tools/DataSnapshotToolLibrary.js.map +1 -1
- package/dist/artifact-tools/JSONToolLibrary.d.ts.map +1 -1
- package/dist/artifact-tools/JSONToolLibrary.js +7 -1
- package/dist/artifact-tools/JSONToolLibrary.js.map +1 -1
- package/dist/base-agent.d.ts +331 -80
- package/dist/base-agent.d.ts.map +1 -1
- package/dist/base-agent.js +843 -155
- package/dist/base-agent.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/pipeline/coerce.d.ts +43 -0
- package/dist/pipeline/coerce.d.ts.map +1 -0
- package/dist/pipeline/coerce.js +92 -0
- package/dist/pipeline/coerce.js.map +1 -0
- package/dist/pipeline/index.d.ts +20 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +20 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/jsonpath-eval.d.ts +29 -0
- package/dist/pipeline/jsonpath-eval.d.ts.map +1 -0
- package/dist/pipeline/jsonpath-eval.js +144 -0
- package/dist/pipeline/jsonpath-eval.js.map +1 -0
- package/dist/pipeline/operators.d.ts +15 -0
- package/dist/pipeline/operators.d.ts.map +1 -0
- package/dist/pipeline/operators.js +332 -0
- package/dist/pipeline/operators.js.map +1 -0
- package/dist/pipeline/path.d.ts +16 -0
- package/dist/pipeline/path.d.ts.map +1 -0
- package/dist/pipeline/path.js +34 -0
- package/dist/pipeline/path.js.map +1 -0
- package/dist/pipeline/pipeline-docs.d.ts +6 -0
- package/dist/pipeline/pipeline-docs.d.ts.map +1 -0
- package/dist/pipeline/pipeline-docs.js +137 -0
- package/dist/pipeline/pipeline-docs.js.map +1 -0
- package/dist/pipeline/pipeline-executor.d.ts +72 -0
- package/dist/pipeline/pipeline-executor.d.ts.map +1 -0
- package/dist/pipeline/pipeline-executor.js +326 -0
- package/dist/pipeline/pipeline-executor.js.map +1 -0
- package/dist/pipeline/pipeline-registry.d.ts +24 -0
- package/dist/pipeline/pipeline-registry.d.ts.map +1 -0
- package/dist/pipeline/pipeline-registry.js +28 -0
- package/dist/pipeline/pipeline-registry.js.map +1 -0
- package/dist/pipeline/pipeline.types.d.ts +89 -0
- package/dist/pipeline/pipeline.types.d.ts.map +1 -0
- package/dist/pipeline/pipeline.types.js +13 -0
- package/dist/pipeline/pipeline.types.js.map +1 -0
- package/dist/pipeline/predicate.d.ts +23 -0
- package/dist/pipeline/predicate.d.ts.map +1 -0
- package/dist/pipeline/predicate.js +306 -0
- package/dist/pipeline/predicate.js.map +1 -0
- package/dist/pipeline/providers/action-provider.d.ts +21 -0
- package/dist/pipeline/providers/action-provider.d.ts.map +1 -0
- package/dist/pipeline/providers/action-provider.js +24 -0
- package/dist/pipeline/providers/action-provider.js.map +1 -0
- package/dist/pipeline/providers/artifact-tool-provider.d.ts +20 -0
- package/dist/pipeline/providers/artifact-tool-provider.d.ts.map +1 -0
- package/dist/pipeline/providers/artifact-tool-provider.js +27 -0
- package/dist/pipeline/providers/artifact-tool-provider.js.map +1 -0
- package/dist/pipeline/providers/serialize.d.ts +23 -0
- package/dist/pipeline/providers/serialize.d.ts.map +1 -0
- package/dist/pipeline/providers/serialize.js +99 -0
- package/dist/pipeline/providers/serialize.js.map +1 -0
- package/dist/pipeline/template.d.ts +18 -0
- package/dist/pipeline/template.d.ts.map +1 -0
- package/dist/pipeline/template.js +47 -0
- package/dist/pipeline/template.js.map +1 -0
- package/package.json +19 -17
package/README.md
CHANGED
|
@@ -326,6 +326,53 @@ const result = await runner.ExecuteAgent({
|
|
|
326
326
|
});
|
|
327
327
|
```
|
|
328
328
|
|
|
329
|
+
## Latency Optimizations & Concurrent Sub-Agent Execution
|
|
330
|
+
|
|
331
|
+
To drastically reduce execution latency, the framework includes the following optimizations:
|
|
332
|
+
|
|
333
|
+
### 1. In-Memory Query Embedding Caching
|
|
334
|
+
In-memory caching is integrated into `AIEngine.EmbedText` to bypass redundant local ONNX embedding inference, eliminating CPU-bound event-loop blockages.
|
|
335
|
+
* **Eviction**: Backed by `MJLruCache` from `@memberjunction/global` — a bounded LRU keeps hot queries warm across bursts (default capacity 5000 entries).
|
|
336
|
+
* **Cache keys**: `${modelID}|sha256(text)` so a large text doesn't pin its full string in the cache map.
|
|
337
|
+
* **Promise dedup**: Concurrent callers for the same `(model, text)` share a single in-flight inference promise — only one ONNX run happens even under fan-out load.
|
|
338
|
+
* **Control**: Callers can supply options `{ bypassCache: true }` (re-calculates but caches the new result) or `{ noCache: true }` (bypasses and does not store the result).
|
|
339
|
+
* **Empty input**: Empty/whitespace text short-circuits to `null` without invoking the embedding provider.
|
|
340
|
+
* **Negative result eviction**: Failed or empty-vector responses are evicted so subsequent calls retry rather than returning a stale failure.
|
|
341
|
+
* **Reset**: The cache can be manually cleared by calling `AIEngine.Instance.ClearEmbeddingCache()`.
|
|
342
|
+
|
|
343
|
+
### 2. Parallel Data Source Preloading
|
|
344
|
+
`AgentDataPreloader.PreloadAgentData` resolves agent data sources concurrently with a bounded concurrency cap (default 10 in-flight at once) so a long list of sources can't saturate the DB connection pool.
|
|
345
|
+
|
|
346
|
+
### 3. Non-blocking Observability DB Logging
|
|
347
|
+
Observability writes (`AIAgentRunStep` records) are completely non-blocking:
|
|
348
|
+
* Step creation and finalization `.Save()` operations are queued immediately into `_pendingSaves` promises.
|
|
349
|
+
* Sequenced queueing via `_stepSavePromises` chains saves on the *same* step ID to prevent database write races (e.g. executing a step `UPDATE` before its initial `INSERT` completes).
|
|
350
|
+
* All pending logging writes are drained with `Promise.allSettled` inside `finalizeAgentRun()` and the queues are cleared, so a reused agent instance doesn't leak settled promises. Save failures (rejected promises OR `Save()===false`) are logged via `LogError` and a summary is folded into `agentRun.ErrorMessage` for visibility.
|
|
351
|
+
|
|
352
|
+
### 4. Concurrent Sub-Agent Execution
|
|
353
|
+
Loop agents can request multiple sub-agents to run in parallel by returning a `subAgents` array in their `nextStep` decision:
|
|
354
|
+
* **Bounded fan-out**: Sub-agents dispatch with a configurable concurrency cap (default 5) so a misbehaving LLM can't spawn unbounded parallel runs.
|
|
355
|
+
* **Deterministic transcript**: Delegation messages and progress events are pushed *synchronously* in the source order of the `subAgents` array — completion order doesn't reorder the conversation.
|
|
356
|
+
* **Payload isolation**: Each child sub-agent receives a deep-cloned copy of its input payload, so in-flight mutations by one sibling can't be observed by another.
|
|
357
|
+
* **State Merging**: Aggregates all media/file outputs and sequentially merges child/related sub-agent payloads back into the parent state via the `PayloadManager` to avoid race conditions.
|
|
358
|
+
* **Per-sibling audit trail**: Each parallel sub-agent's `AIAgentRunStep` records *its own* contribution as `PayloadAtEnd` rather than the cumulative merged state, so forensic logs distinguish each sibling.
|
|
359
|
+
* **Termination semantics**: Matches the single sub-agent path — if any dispatched child requested `terminateAfter: true`, the parent terminates regardless of whether that child succeeded. The parent's step is reported as `Failed` when any child failed, `Success` when terminating cleanly, and `Retry` otherwise.
|
|
360
|
+
* **Context Preservation**: Appends an aggregated delegation and completion log to the parent conversation context once all parallel steps complete.
|
|
361
|
+
|
|
362
|
+
#### Loop Response Schema
|
|
363
|
+
```json
|
|
364
|
+
{
|
|
365
|
+
"taskComplete": false,
|
|
366
|
+
"nextStep": {
|
|
367
|
+
"type": "Sub-Agent",
|
|
368
|
+
"subAgents": [
|
|
369
|
+
{ "name": "DbAgent", "message": "Search the database", "terminateAfter": false },
|
|
370
|
+
{ "name": "WebAgent", "message": "Gather details from web search", "terminateAfter": false }
|
|
371
|
+
]
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
```
|
|
375
|
+
|
|
329
376
|
## Documentation
|
|
330
377
|
|
|
331
378
|
Detailed guides are available in the [`docs/`](./docs/) directory:
|
|
@@ -35,23 +35,6 @@ export interface PreloadedDataResult {
|
|
|
35
35
|
/** Sources that failed to load, with error details */
|
|
36
36
|
failedSources: FailedDataSource[];
|
|
37
37
|
}
|
|
38
|
-
/**
|
|
39
|
-
* Singleton service for preloading agent data sources.
|
|
40
|
-
*
|
|
41
|
-
* This class handles loading data from RunView or RunQuery sources as configured
|
|
42
|
-
* in AIAgentDataSource metadata. Supports three cache policies:
|
|
43
|
-
* - None: No caching, data is loaded fresh every time
|
|
44
|
-
* - PerRun: Data is cached for the duration of a single agent run
|
|
45
|
-
* - PerAgent: Data is cached globally with a TTL, shared across all runs
|
|
46
|
-
*
|
|
47
|
-
* @class AgentDataPreloader
|
|
48
|
-
* @example
|
|
49
|
-
* ```typescript
|
|
50
|
-
* const preloader = AgentDataPreloader.Instance;
|
|
51
|
-
* const data = await preloader.PreloadAgentData(agentId, contextUser);
|
|
52
|
-
* // data = { ALL_ENTITIES: [...], MODEL_LIST: [...] }
|
|
53
|
-
* ```
|
|
54
|
-
*/
|
|
55
38
|
export declare class AgentDataPreloader extends BaseSingleton<AgentDataPreloader> {
|
|
56
39
|
/**
|
|
57
40
|
* Per-agent cache (global, TTL-based)
|
|
@@ -105,6 +88,14 @@ export declare class AgentDataPreloader extends BaseSingleton<AgentDataPreloader
|
|
|
105
88
|
* Can be called to force refresh of global cached data.
|
|
106
89
|
*/
|
|
107
90
|
clearAgentCache(): void;
|
|
91
|
+
/**
|
|
92
|
+
* Resolves all data sources with bounded concurrency, preserving input order
|
|
93
|
+
* in the returned result array. Each item is wrapped so the caller can
|
|
94
|
+
* distinguish success from failure without try/catch noise.
|
|
95
|
+
*
|
|
96
|
+
* @private
|
|
97
|
+
*/
|
|
98
|
+
private resolveDataSources;
|
|
108
99
|
/**
|
|
109
100
|
* Loads AIAgentDataSource entities for a specific agent.
|
|
110
101
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentDataPreloader.d.ts","sourceRoot":"","sources":["../src/AgentDataPreloader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAqE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,EAAc,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAKnE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,gDAAgD;IAChD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,sDAAsD;IACtD,aAAa,EAAE,gBAAgB,EAAE,CAAC;CACrC;
|
|
1
|
+
{"version":3,"file":"AgentDataPreloader.d.ts","sourceRoot":"","sources":["../src/AgentDataPreloader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAqE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACnH,OAAO,EAAc,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAKnE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,gDAAgD;IAChD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,sDAAsD;IACtD,aAAa,EAAE,gBAAgB,EAAE,CAAC;CACrC;AAkCD,qBAAa,kBAAmB,SAAQ,aAAa,CAAC,kBAAkB,CAAC;IACrE;;OAEG;IACH,OAAO,CAAC,cAAc,CAAsC;IAE5D;;OAEG;IACH,OAAO,CAAC,YAAY,CAAgD;;IAMpE;;OAEG;IACH,WAAkB,QAAQ,IAAI,kBAAkB,CAE/C;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACU,gBAAgB,CACzB,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,QAAQ,EACrB,KAAK,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC;IAqF/B;;;;;OAKG;IACI,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IASzC;;;OAGG;IACI,eAAe,IAAI,IAAI;IAS9B;;;;;;OAMG;YACW,kBAAkB;IAwChC;;;;OAIG;YACW,uBAAuB;IAiBrC;;;;;OAKG;YACW,iBAAiB;IAiC/B;;;;OAIG;YACW,cAAc;IAmC5B;;;;OAIG;YACW,eAAe;IAiC7B;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IAsCrB;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAmCjB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;CAG9B"}
|
|
@@ -31,6 +31,11 @@ import _ from 'lodash';
|
|
|
31
31
|
* // data = { ALL_ENTITIES: [...], MODEL_LIST: [...] }
|
|
32
32
|
* ```
|
|
33
33
|
*/
|
|
34
|
+
/**
|
|
35
|
+
* Maximum number of data sources to resolve concurrently for a single agent.
|
|
36
|
+
* Prevents a runaway agent with many data sources from saturating the DB pool.
|
|
37
|
+
*/
|
|
38
|
+
const PRELOAD_CONCURRENCY_LIMIT = 10;
|
|
34
39
|
export class AgentDataPreloader extends BaseSingleton {
|
|
35
40
|
constructor() {
|
|
36
41
|
super();
|
|
@@ -99,12 +104,12 @@ export class AgentDataPreloader extends BaseSingleton {
|
|
|
99
104
|
loadedSources: [],
|
|
100
105
|
failedSources: []
|
|
101
106
|
};
|
|
102
|
-
// Execute data sources in
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
const path =
|
|
107
|
+
// Execute data sources in parallel with a bounded concurrency cap so a
|
|
108
|
+
// long list of sources can't saturate the DB connection pool.
|
|
109
|
+
const preloadedResults = await this.resolveDataSources(dataSources, contextUser, runId);
|
|
110
|
+
for (const item of preloadedResults) {
|
|
111
|
+
if (item.success) {
|
|
112
|
+
const { source, sourceData, path } = item;
|
|
108
113
|
// Set data in the appropriate destination
|
|
109
114
|
switch (source.DestinationType) {
|
|
110
115
|
case 'Data':
|
|
@@ -132,7 +137,9 @@ export class AgentDataPreloader extends BaseSingleton {
|
|
|
132
137
|
isVerboseEnabled: IsVerboseLoggingEnabled
|
|
133
138
|
});
|
|
134
139
|
}
|
|
135
|
-
|
|
140
|
+
else if (item.success === false) {
|
|
141
|
+
const source = item.source;
|
|
142
|
+
const error = item.error;
|
|
136
143
|
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
137
144
|
result.failedSources.push({
|
|
138
145
|
name: source.Name,
|
|
@@ -140,7 +147,6 @@ export class AgentDataPreloader extends BaseSingleton {
|
|
|
140
147
|
errorMessage
|
|
141
148
|
});
|
|
142
149
|
LogError(`Failed to preload data source '${source.Name}' for agent ${agentId}: ${errorMessage}`, undefined, error);
|
|
143
|
-
// Continue loading other sources even if one fails
|
|
144
150
|
}
|
|
145
151
|
}
|
|
146
152
|
return result;
|
|
@@ -178,6 +184,45 @@ export class AgentDataPreloader extends BaseSingleton {
|
|
|
178
184
|
isVerboseEnabled: IsVerboseLoggingEnabled
|
|
179
185
|
});
|
|
180
186
|
}
|
|
187
|
+
/**
|
|
188
|
+
* Resolves all data sources with bounded concurrency, preserving input order
|
|
189
|
+
* in the returned result array. Each item is wrapped so the caller can
|
|
190
|
+
* distinguish success from failure without try/catch noise.
|
|
191
|
+
*
|
|
192
|
+
* @private
|
|
193
|
+
*/
|
|
194
|
+
async resolveDataSources(dataSources, contextUser, runId) {
|
|
195
|
+
if (dataSources.length === 0)
|
|
196
|
+
return [];
|
|
197
|
+
const limit = Math.max(1, Math.min(PRELOAD_CONCURRENCY_LIMIT, dataSources.length));
|
|
198
|
+
const results = new Array(dataSources.length);
|
|
199
|
+
let cursor = 0;
|
|
200
|
+
const runners = [];
|
|
201
|
+
for (let i = 0; i < limit; i++) {
|
|
202
|
+
runners.push((async () => {
|
|
203
|
+
while (true) {
|
|
204
|
+
const idx = cursor++;
|
|
205
|
+
if (idx >= dataSources.length)
|
|
206
|
+
return;
|
|
207
|
+
const source = dataSources[idx];
|
|
208
|
+
try {
|
|
209
|
+
const sourceData = await this.executeDataSource(source, contextUser, runId);
|
|
210
|
+
results[idx] = {
|
|
211
|
+
success: true,
|
|
212
|
+
source,
|
|
213
|
+
sourceData,
|
|
214
|
+
path: source.DestinationPath || source.Name
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
catch (error) {
|
|
218
|
+
results[idx] = { success: false, source, error };
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
})());
|
|
222
|
+
}
|
|
223
|
+
await Promise.all(runners);
|
|
224
|
+
return results;
|
|
225
|
+
}
|
|
181
226
|
/**
|
|
182
227
|
* Loads AIAgentDataSource entities for a specific agent.
|
|
183
228
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentDataPreloader.js","sourceRoot":"","sources":["../src/AgentDataPreloader.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AgentDataPreloader.js","sourceRoot":"","sources":["../src/AgentDataPreloader.ts"],"names":[],"mappings":"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"}
|
package/dist/AgentRunner.d.ts
CHANGED
|
@@ -234,10 +234,8 @@ export declare class AgentRunner {
|
|
|
234
234
|
private GenerateConversationName;
|
|
235
235
|
/**
|
|
236
236
|
* Saves media outputs to AIAgentRunMedia table for permanent storage.
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
* Only media with `persist !== false` is saved. Media items with `persist: false`
|
|
240
|
-
* are typically intercepted binary content that was never used in the final output.
|
|
237
|
+
* Creates a record for each media output promoted during agent execution.
|
|
238
|
+
* All items in the array are saved.
|
|
241
239
|
*
|
|
242
240
|
* @param agentRunId - The ID of the agent run
|
|
243
241
|
* @param mediaOutputs - Array of media outputs to save
|
|
@@ -258,28 +256,26 @@ export declare class AgentRunner {
|
|
|
258
256
|
*/
|
|
259
257
|
SaveAgentRunMedia(agentRunId: string, mediaOutputs: MediaOutput[] | undefined, contextUser: UserInfo, provider?: IMetadataProvider): Promise<string[]>;
|
|
260
258
|
/**
|
|
261
|
-
* Creates
|
|
262
|
-
*
|
|
259
|
+
* Creates `MJ: Artifact` + `MJ: Artifact Version` + `MJ: Conversation Detail Artifact`
|
|
260
|
+
* junction records for agent-produced media outputs (images, audio, video).
|
|
263
261
|
*
|
|
264
|
-
*
|
|
265
|
-
*
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
* @returns Array of created attachment IDs
|
|
269
|
-
* @since 3.1.0
|
|
262
|
+
* Replaces the deprecated `CreateConversationMediaAttachments` path which wrote to
|
|
263
|
+
* the `MJ: Conversation Detail Attachments` table (then auto-paired to an artifact
|
|
264
|
+
* via the server-side hook). Writing artifacts directly removes the deprecated-entity
|
|
265
|
+
* dependency and the redundant dual-write.
|
|
270
266
|
*
|
|
271
|
-
* @
|
|
272
|
-
*
|
|
273
|
-
*
|
|
274
|
-
*
|
|
275
|
-
*
|
|
276
|
-
*
|
|
277
|
-
*
|
|
278
|
-
*
|
|
279
|
-
*
|
|
280
|
-
*
|
|
267
|
+
* Reuses {@link createArtifactWithVersion} — the same helper that `ProcessFileArtifacts`
|
|
268
|
+
* uses — so artifact creation logic (MIME resolution, transaction wrapping, junction
|
|
269
|
+
* linking) lives in exactly one place.
|
|
270
|
+
*
|
|
271
|
+
* @param conversationDetailId - The conversation detail to link artifacts to
|
|
272
|
+
* @param mediaOutputs - Media outputs to persist as artifacts
|
|
273
|
+
* @param contextUser - User context for DB operations
|
|
274
|
+
* @param provider - Optional metadata provider for multi-provider support
|
|
275
|
+
*
|
|
276
|
+
* @since 5.38.0
|
|
281
277
|
*/
|
|
282
|
-
|
|
278
|
+
CreateMediaArtifacts(conversationDetailId: string, mediaOutputs: MediaOutput[], contextUser: UserInfo, provider?: IMetadataProvider): Promise<void>;
|
|
283
279
|
/**
|
|
284
280
|
* Creates MJ: Artifact records for file outputs collected during agent execution.
|
|
285
281
|
* Reads directly from `ExecuteAgentResult.fileOutputs` — no DB query needed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentRunner.d.ts","sourceRoot":"","sources":["../src/AgentRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAA0F,QAAQ,EAAE,iBAAiB,EAAsC,MAAM,sBAAsB,CAAC;AAG/L,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,aAAa,EAAiB,MAAM,8BAA8B,CAAC;AAwBjI;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;gBAElC,QAAQ,CAAC,EAAE,iBAAiB;IAKxC;;;;;;;;;;;;;;OAcG;IACU,QAAQ,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAgDtG;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACU,sBAAsB,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAChD,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAC7B,OAAO,EAAE;QACL,6FAA6F;QAC7F,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,gGAAgG;QAChG,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,yGAAyG;QACzG,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,2EAA2E;QAC3E,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,+EAA+E;QAC/E,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,4EAA4E;QAC5E,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,iGAAiG;QACjG,SAAS,CAAC,EAAE,MAAM,CAAC;KACtB,GACF,OAAO,CAAC;QACP,iCAAiC;QACjC,WAAW,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC;QACnC,gDAAgD;QAChD,cAAc,EAAE,MAAM,CAAC;QACvB,sDAAsD;QACtD,mBAAmB,EAAE,MAAM,CAAC;QAC5B,4FAA4F;QAC5F,qBAAqB,CAAC,EAAE,MAAM,CAAC;QAC/B,sCAAsC;QACtC,YAAY,CAAC,EAAE;YACX,UAAU,EAAE,MAAM,CAAC;YACnB,SAAS,EAAE,MAAM,CAAC;YAClB,aAAa,EAAE,MAAM,CAAC;SACzB,CAAC;KACL,CAAC;
|
|
1
|
+
{"version":3,"file":"AgentRunner.d.ts","sourceRoot":"","sources":["../src/AgentRunner.ts"],"names":[],"mappings":"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"}
|
package/dist/AgentRunner.js
CHANGED
|
@@ -14,7 +14,7 @@ import { LogError, LogStatusEx, IsVerboseLoggingEnabled, LogStatus, Metadata, Ru
|
|
|
14
14
|
import { MJGlobal, UUIDsEqual } from '@memberjunction/global';
|
|
15
15
|
import { AIEngine } from '@memberjunction/aiengine';
|
|
16
16
|
import { BaseAgent } from './base-agent.js';
|
|
17
|
-
import { ArtifactMetadataEngine, ExtractBase64FromDataUrl } from '@memberjunction/core-entities';
|
|
17
|
+
import { ArtifactMetadataEngine, ExtractBase64FromDataUrl, DecideInlineStorage } from '@memberjunction/core-entities';
|
|
18
18
|
import { FileStorageEngine } from '@memberjunction/storage';
|
|
19
19
|
/**
|
|
20
20
|
* AgentRunner provides a thin wrapper for executing AI agents.
|
|
@@ -362,16 +362,22 @@ export class AgentRunner {
|
|
|
362
362
|
await this.ProcessFileArtifacts(agentResult.fileOutputs, agentResponseDetailId, contextUser, agentResult.resolvedStorageAccountId, md, params.agent.AcceptUnregisteredFiles);
|
|
363
363
|
}
|
|
364
364
|
})();
|
|
365
|
-
// Step 7: Save media outputs to AIAgentRunMedia and create
|
|
365
|
+
// Step 7: Save media outputs to AIAgentRunMedia (audit) and create artifacts (display)
|
|
366
366
|
const saveMediaPromise = (async () => {
|
|
367
367
|
if (agentResult.mediaOutputs && agentResult.mediaOutputs.length > 0) {
|
|
368
|
-
const mediaToSave = agentResult.mediaOutputs
|
|
369
|
-
LogStatus(`Processing ${mediaToSave.length}
|
|
370
|
-
// Save to AIAgentRunMedia for permanent storage
|
|
368
|
+
const mediaToSave = agentResult.mediaOutputs;
|
|
369
|
+
LogStatus(`Processing ${mediaToSave.length} media output(s)`);
|
|
370
|
+
// Save to AIAgentRunMedia for permanent audit/lineage storage
|
|
371
371
|
const ids = await this.SaveAgentRunMedia(agentResult.agentRun.ID, mediaToSave, contextUser, md);
|
|
372
|
-
// Create
|
|
373
|
-
|
|
374
|
-
|
|
372
|
+
// Create Artifact + ArtifactVersion + ConversationDetailArtifact for each
|
|
373
|
+
// media output so the chat UI renders them as artifact cards. This replaces
|
|
374
|
+
// the old CreateConversationMediaAttachments path which wrote to the deprecated
|
|
375
|
+
// ConversationDetailAttachment table (the server hook then auto-paired to an
|
|
376
|
+
// artifact). Writing artifacts directly removes the deprecated-entity dependency
|
|
377
|
+
// and the redundant dual-write. Uses the same createArtifactWithVersion helper
|
|
378
|
+
// that ProcessFileArtifacts uses, keeping artifact creation logic in one place.
|
|
379
|
+
if (agentResponseDetailId) {
|
|
380
|
+
await this.CreateMediaArtifacts(agentResponseDetailId, mediaToSave, contextUser, md);
|
|
375
381
|
}
|
|
376
382
|
return ids;
|
|
377
383
|
}
|
|
@@ -736,10 +742,8 @@ export class AgentRunner {
|
|
|
736
742
|
}
|
|
737
743
|
/**
|
|
738
744
|
* Saves media outputs to AIAgentRunMedia table for permanent storage.
|
|
739
|
-
*
|
|
740
|
-
*
|
|
741
|
-
* Only media with `persist !== false` is saved. Media items with `persist: false`
|
|
742
|
-
* are typically intercepted binary content that was never used in the final output.
|
|
745
|
+
* Creates a record for each media output promoted during agent execution.
|
|
746
|
+
* All items in the array are saved.
|
|
743
747
|
*
|
|
744
748
|
* @param agentRunId - The ID of the agent run
|
|
745
749
|
* @param mediaOutputs - Array of media outputs to save
|
|
@@ -762,16 +766,7 @@ export class AgentRunner {
|
|
|
762
766
|
if (!mediaOutputs || mediaOutputs.length === 0) {
|
|
763
767
|
return [];
|
|
764
768
|
}
|
|
765
|
-
|
|
766
|
-
// persist=false means intercepted but unused binary content (e.g., images not used in response)
|
|
767
|
-
const mediaToSave = mediaOutputs.filter(m => m.persist !== false);
|
|
768
|
-
if (mediaToSave.length === 0) {
|
|
769
|
-
LogStatus(`All ${mediaOutputs.length} media outputs have persist=false, skipping save`);
|
|
770
|
-
return [];
|
|
771
|
-
}
|
|
772
|
-
if (mediaToSave.length < mediaOutputs.length) {
|
|
773
|
-
LogStatus(`Filtering: ${mediaToSave.length} of ${mediaOutputs.length} media outputs will be persisted`);
|
|
774
|
-
}
|
|
769
|
+
const mediaToSave = mediaOutputs;
|
|
775
770
|
const savedIds = [];
|
|
776
771
|
const md = provider || this._provider;
|
|
777
772
|
try {
|
|
@@ -843,102 +838,71 @@ export class AgentRunner {
|
|
|
843
838
|
return savedIds;
|
|
844
839
|
}
|
|
845
840
|
}
|
|
841
|
+
// ── Media artifact creation ─────────────────────────────────────────────────
|
|
846
842
|
/**
|
|
847
|
-
* Creates
|
|
848
|
-
*
|
|
843
|
+
* Creates `MJ: Artifact` + `MJ: Artifact Version` + `MJ: Conversation Detail Artifact`
|
|
844
|
+
* junction records for agent-produced media outputs (images, audio, video).
|
|
849
845
|
*
|
|
850
|
-
*
|
|
851
|
-
*
|
|
852
|
-
*
|
|
853
|
-
*
|
|
854
|
-
* @returns Array of created attachment IDs
|
|
855
|
-
* @since 3.1.0
|
|
846
|
+
* Replaces the deprecated `CreateConversationMediaAttachments` path which wrote to
|
|
847
|
+
* the `MJ: Conversation Detail Attachments` table (then auto-paired to an artifact
|
|
848
|
+
* via the server-side hook). Writing artifacts directly removes the deprecated-entity
|
|
849
|
+
* dependency and the redundant dual-write.
|
|
856
850
|
*
|
|
857
|
-
* @
|
|
858
|
-
*
|
|
859
|
-
*
|
|
860
|
-
*
|
|
861
|
-
*
|
|
862
|
-
*
|
|
863
|
-
*
|
|
864
|
-
*
|
|
865
|
-
*
|
|
866
|
-
*
|
|
851
|
+
* Reuses {@link createArtifactWithVersion} — the same helper that `ProcessFileArtifacts`
|
|
852
|
+
* uses — so artifact creation logic (MIME resolution, transaction wrapping, junction
|
|
853
|
+
* linking) lives in exactly one place.
|
|
854
|
+
*
|
|
855
|
+
* @param conversationDetailId - The conversation detail to link artifacts to
|
|
856
|
+
* @param mediaOutputs - Media outputs to persist as artifacts
|
|
857
|
+
* @param contextUser - User context for DB operations
|
|
858
|
+
* @param provider - Optional metadata provider for multi-provider support
|
|
859
|
+
*
|
|
860
|
+
* @since 5.38.0
|
|
867
861
|
*/
|
|
868
|
-
async
|
|
862
|
+
async CreateMediaArtifacts(conversationDetailId, mediaOutputs, contextUser, provider) {
|
|
869
863
|
if (!mediaOutputs || mediaOutputs.length === 0) {
|
|
870
|
-
return
|
|
864
|
+
return;
|
|
871
865
|
}
|
|
872
|
-
|
|
866
|
+
await ArtifactMetadataEngine.Instance.Config(false, contextUser);
|
|
873
867
|
const md = provider || this._provider;
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
const
|
|
877
|
-
|
|
878
|
-
const
|
|
879
|
-
const
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
if (mediaOutput.data) {
|
|
904
|
-
attachment.InlineData = mediaOutput.data;
|
|
905
|
-
// Estimate file size from base64 length (base64 is ~33% larger than binary)
|
|
906
|
-
attachment.FileSizeBytes = Math.ceil(mediaOutput.data.length * 0.75);
|
|
907
|
-
}
|
|
908
|
-
// Set dimensions if available
|
|
909
|
-
if (mediaOutput.width) {
|
|
910
|
-
attachment.Width = mediaOutput.width;
|
|
911
|
-
}
|
|
912
|
-
if (mediaOutput.height) {
|
|
913
|
-
attachment.Height = mediaOutput.height;
|
|
914
|
-
}
|
|
915
|
-
if (mediaOutput.durationSeconds) {
|
|
916
|
-
attachment.DurationSeconds = Math.ceil(mediaOutput.durationSeconds);
|
|
917
|
-
}
|
|
918
|
-
// Set description if available
|
|
919
|
-
if (mediaOutput.description) {
|
|
920
|
-
attachment.Description = mediaOutput.description;
|
|
921
|
-
}
|
|
922
|
-
const saved = await attachment.Save();
|
|
923
|
-
if (saved) {
|
|
924
|
-
attachmentIds.push(attachment.ID);
|
|
925
|
-
LogStatus(`Created ConversationDetailAttachment: ${attachment.ID} (${mediaOutput.modality})`);
|
|
926
|
-
}
|
|
927
|
-
else {
|
|
928
|
-
LogError(`Failed to create attachment: ${attachment.LatestResult?.Message}`);
|
|
868
|
+
let successCount = 0;
|
|
869
|
+
for (let i = 0; i < mediaOutputs.length; i++) {
|
|
870
|
+
const media = mediaOutputs[i];
|
|
871
|
+
try {
|
|
872
|
+
const extension = this.getMimeTypeExtension(media.mimeType);
|
|
873
|
+
const fileName = media.label || `${media.modality.toLowerCase()}_${i + 1}.${extension}`;
|
|
874
|
+
const estimatedSizeBytes = media.data
|
|
875
|
+
? Math.ceil(media.data.length * 0.75)
|
|
876
|
+
: undefined;
|
|
877
|
+
await this.createArtifactWithVersion({
|
|
878
|
+
mimeType: media.mimeType,
|
|
879
|
+
fileName,
|
|
880
|
+
sizeBytes: estimatedSizeBytes,
|
|
881
|
+
conversationDetailId,
|
|
882
|
+
contextUser,
|
|
883
|
+
provider: md,
|
|
884
|
+
acceptUnregisteredFiles: true,
|
|
885
|
+
label: `media ${media.modality}`,
|
|
886
|
+
setVersionFields: (version) => {
|
|
887
|
+
// DecideInlineStorage applies consistent text-vs-binary storage
|
|
888
|
+
// decisions across all artifact creation paths. For media (images,
|
|
889
|
+
// audio, video), it wraps the base64 in a data URL; for text-y
|
|
890
|
+
// MIMEs it decodes to UTF-8. Same helper the server hook and
|
|
891
|
+
// ConversationAttachmentService use.
|
|
892
|
+
if (media.data) {
|
|
893
|
+
const stored = DecideInlineStorage(media.mimeType, media.data);
|
|
894
|
+
version.ContentMode = stored.contentMode;
|
|
895
|
+
version.Content = stored.content;
|
|
896
|
+
}
|
|
929
897
|
}
|
|
930
|
-
}
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
898
|
+
});
|
|
899
|
+
successCount++;
|
|
900
|
+
}
|
|
901
|
+
catch (error) {
|
|
902
|
+
LogError(`Error creating media artifact ${i} (${media.modality}): ${error.message}`);
|
|
934
903
|
}
|
|
935
|
-
LogStatus(`Created ${attachmentIds.length} conversation attachments for detail ${conversationDetailId}`);
|
|
936
|
-
return attachmentIds;
|
|
937
|
-
}
|
|
938
|
-
catch (error) {
|
|
939
|
-
LogError(`Error in CreateConversationMediaAttachments: ${error.message}`);
|
|
940
|
-
return attachmentIds;
|
|
941
904
|
}
|
|
905
|
+
LogStatus(`Created ${successCount} of ${mediaOutputs.length} media artifact(s) for detail ${conversationDetailId}`);
|
|
942
906
|
}
|
|
943
907
|
// ── File artifact processing ───────────────────────────────────────────────
|
|
944
908
|
/**
|
|
@@ -1241,69 +1205,11 @@ export class AgentRunner {
|
|
|
1241
1205
|
}
|
|
1242
1206
|
}
|
|
1243
1207
|
}
|
|
1244
|
-
// Back-compat path: gather ConversationDetailAttachment rows authored
|
|
1245
|
-
// BEFORE storage unification — those have ArtifactVersionID = NULL
|
|
1246
|
-
// and aren't represented in the junction query above. New uploads
|
|
1247
|
-
// (server hook created the artifact pair) come through the junction
|
|
1248
|
-
// path with ArtifactVersionID set; we skip them here to avoid
|
|
1249
|
-
// double-counting.
|
|
1250
|
-
//
|
|
1251
|
-
// Resolution is via the Artifact Type registry (wildcard-aware), not
|
|
1252
|
-
// a hardcoded MIME prefix list — same source of truth as the upload
|
|
1253
|
-
// gate in MJConversationDetailAttachmentEntityServer.
|
|
1254
|
-
await ArtifactMetadataEngine.Instance.Config(false, contextUser);
|
|
1255
|
-
const attachments = await rv.RunView({
|
|
1256
|
-
EntityName: 'MJ: Conversation Detail Attachments',
|
|
1257
|
-
ExtraFilter: `ConversationDetailID IN ('${detailIds.join("','")}') AND ArtifactVersionID IS NULL`,
|
|
1258
|
-
Fields: ['ID', 'MimeType', 'FileID', 'FileName', 'InlineData', 'ArtifactVersionID'],
|
|
1259
|
-
ResultType: 'simple',
|
|
1260
|
-
}, contextUser);
|
|
1261
|
-
if (attachments.Success && attachments.Results.length > 0) {
|
|
1262
|
-
for (const att of attachments.Results) {
|
|
1263
|
-
const mime = att.MimeType ?? '';
|
|
1264
|
-
const ext = att.FileName?.includes('.') ? att.FileName.split('.').pop() : undefined;
|
|
1265
|
-
const artifactType = ArtifactMetadataEngine.Instance.GetArtifactTypeByMimeType(mime, ext);
|
|
1266
|
-
if (!artifactType)
|
|
1267
|
-
continue; // Unsupported MIME — agent has no tools for it.
|
|
1268
|
-
let content = '';
|
|
1269
|
-
if (att.FileID) {
|
|
1270
|
-
const downloaded = await this.downloadArtifactFileContent(att.FileID, contextUser);
|
|
1271
|
-
if (downloaded) {
|
|
1272
|
-
content = downloaded;
|
|
1273
|
-
}
|
|
1274
|
-
else {
|
|
1275
|
-
LogError(`[AgentRunner] Failed to download attachment file "${att.FileName}" (FileID: ${att.FileID})`);
|
|
1276
|
-
continue;
|
|
1277
|
-
}
|
|
1278
|
-
}
|
|
1279
|
-
else if (att.InlineData) {
|
|
1280
|
-
// InlineData is base64-encoded — decode for binary files, keep as string for text
|
|
1281
|
-
if (mime.startsWith('text/') || mime === 'application/json') {
|
|
1282
|
-
content = Buffer.from(att.InlineData, 'base64').toString('utf-8');
|
|
1283
|
-
}
|
|
1284
|
-
else {
|
|
1285
|
-
content = Buffer.from(att.InlineData, 'base64');
|
|
1286
|
-
}
|
|
1287
|
-
}
|
|
1288
|
-
else {
|
|
1289
|
-
continue; // No content available
|
|
1290
|
-
}
|
|
1291
|
-
inputArtifacts.push({
|
|
1292
|
-
name: att.FileName || 'Uploaded File',
|
|
1293
|
-
typeName: artifactType.Name,
|
|
1294
|
-
content,
|
|
1295
|
-
mimeType: mime || undefined,
|
|
1296
|
-
...(artifactType.ToolLibraryClass ? { toolLibraryClass: artifactType.ToolLibraryClass } : {}),
|
|
1297
|
-
deliveryMode: artifactType.DefaultDeliveryMode,
|
|
1298
|
-
forceToolsOnly: false,
|
|
1299
|
-
});
|
|
1300
|
-
}
|
|
1301
|
-
}
|
|
1302
1208
|
if (inputArtifacts.length > 0) {
|
|
1303
1209
|
LogStatus(`[AgentRunner] Gathered ${inputArtifacts.length} input artifact(s) for conversation ${conversationId}: ${inputArtifacts.map(a => `${a.typeName}:"${a.name}" (${a.mimeType || 'no mime'})`).join(', ')}`);
|
|
1304
1210
|
}
|
|
1305
1211
|
else {
|
|
1306
|
-
LogStatus(`[AgentRunner] No input artifacts found for conversation ${conversationId} (${junctions.Results.length} artifact junction(s)
|
|
1212
|
+
LogStatus(`[AgentRunner] No input artifacts found for conversation ${conversationId} (${junctions.Results.length} artifact junction(s) checked)`);
|
|
1307
1213
|
}
|
|
1308
1214
|
return inputArtifacts;
|
|
1309
1215
|
}
|