@memberjunction/ai-agents 5.38.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/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 +12 -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 +29 -1
- package/dist/agent-types/loop-agent-type.js.map +1 -1
- package/dist/artifact-tools/DataSnapshotToolLibrary.js +2 -2
- 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 +53 -1
- package/dist/base-agent.d.ts.map +1 -1
- package/dist/base-agent.js +209 -9
- 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
|
@@ -86,6 +86,19 @@ export declare class ArtifactToolManager {
|
|
|
86
86
|
ToManifestString(opts?: {
|
|
87
87
|
supportedMimeTypes?: ReadonlyArray<string> | null;
|
|
88
88
|
}): string;
|
|
89
|
+
/**
|
|
90
|
+
* Distinct artifact tool names available across all input artifacts. Used to register
|
|
91
|
+
* artifact tools into a pipeline's tool registry (one invocable per name; the target
|
|
92
|
+
* artifact is selected at call time via an `artifactId` param).
|
|
93
|
+
*/
|
|
94
|
+
GetAvailableToolNames(): string[];
|
|
95
|
+
/**
|
|
96
|
+
* Compact, agent-facing description of an artifact's content structure for the manifest.
|
|
97
|
+
* For JSON: whether it's an array (+ length + item fields) or an object (+ keys) — so the agent
|
|
98
|
+
* paths against the REAL shape rather than guessing a `content` wrapper. For text: line count +
|
|
99
|
+
* a short start preview. Returns null for binary / empty content.
|
|
100
|
+
*/
|
|
101
|
+
private describeContentShape;
|
|
89
102
|
/** Markdown tool documentation grouped by artifact type */
|
|
90
103
|
GetToolDocumentation(): string;
|
|
91
104
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArtifactToolManager.d.ts","sourceRoot":"","sources":["../src/ArtifactToolManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmD,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAQnJ,YAAY,EAAE,aAAa,EAAE,CAAC;AAE9B;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mFAAmF;IACnF,UAAU,EAAE,MAAM,CAAC;IACnB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAyED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,MAAM,EAAE,kBAAkB,CAAC;IAC3B,0CAA0C;IAC1C,SAAS,EAAE,IAAI,CAAC;IAChB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;GASG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAAyC;IAC1D,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,cAAc,CAAK;IAI3B,2DAA2D;IAC3D,UAAU,CAAC,cAAc,EAAE,aAAa,EAAE,GAAG,IAAI;IAkBjD,0DAA0D;IAC1D,gBAAgB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM;IAajD,sBAAsB;IACtB,KAAK,IAAI,IAAI;IAMb,0CAA0C;IAC1C,YAAY,IAAI,OAAO;IAIvB;;;;;;;;;OASG;IACG,4BAA4B,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IA6BhE;;;;OAIG;YACW,mBAAmB;IAkBjC,oFAAoF;YACtE,cAAc;IAsB5B;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,IAAI,CAAC,EAAE;QAAE,kBAAkB,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;KAAE,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"ArtifactToolManager.d.ts","sourceRoot":"","sources":["../src/ArtifactToolManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -223,6 +223,12 @@ export class ArtifactToolManager {
|
|
|
223
223
|
: '';
|
|
224
224
|
const mimeNote = entry.mimeType ? ` [${entry.mimeType}]` : '';
|
|
225
225
|
lines.push(`**${entry.alphaId}** — ${entry.typeName}: "${entry.name}"${mimeNote}${sizeSuffix}`);
|
|
226
|
+
// Surface the content SHAPE so the agent paths correctly (e.g. knows it's a top-level JSON
|
|
227
|
+
// array, not a `content`-wrapped object) instead of guessing and failing on the first tool call.
|
|
228
|
+
const shape = this.describeContentShape(entry.content);
|
|
229
|
+
if (shape) {
|
|
230
|
+
lines.push(` > Shape: ${shape}`);
|
|
231
|
+
}
|
|
226
232
|
// Modality-mismatch warning: when the driver can't process the
|
|
227
233
|
// artifact's media type, tell the agent explicitly so it doesn't
|
|
228
234
|
// hallucinate a description from few-shot examples or pretend the
|
|
@@ -239,10 +245,63 @@ export class ArtifactToolManager {
|
|
|
239
245
|
}
|
|
240
246
|
}
|
|
241
247
|
lines.push('');
|
|
242
|
-
lines.push('
|
|
248
|
+
lines.push('These artifacts are ALREADY available to you server-side. Read them directly with the');
|
|
249
|
+
lines.push('artifact tools below (e.g. `get_full`), or use one as a pipeline source (e.g. `get_full`');
|
|
250
|
+
lines.push('then `where`/`select`/`distinct`). NEVER ask the user to paste, provide, upload, or "send"');
|
|
251
|
+
lines.push('an artifact\'s content, and do NOT request a data snapshot to obtain it — you already have it.');
|
|
243
252
|
lines.push('IMPORTANT: Always use the single-letter artifact ID (A, B, C, etc.) as the `artifactId` value — NOT the artifact name.');
|
|
244
253
|
return lines.join('\n');
|
|
245
254
|
}
|
|
255
|
+
/**
|
|
256
|
+
* Distinct artifact tool names available across all input artifacts. Used to register
|
|
257
|
+
* artifact tools into a pipeline's tool registry (one invocable per name; the target
|
|
258
|
+
* artifact is selected at call time via an `artifactId` param).
|
|
259
|
+
*/
|
|
260
|
+
GetAvailableToolNames() {
|
|
261
|
+
const names = new Set();
|
|
262
|
+
for (const entry of this.artifacts.values()) {
|
|
263
|
+
for (const tool of entry.library.GetToolList()) {
|
|
264
|
+
names.add(tool.name);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return [...names];
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Compact, agent-facing description of an artifact's content structure for the manifest.
|
|
271
|
+
* For JSON: whether it's an array (+ length + item fields) or an object (+ keys) — so the agent
|
|
272
|
+
* paths against the REAL shape rather than guessing a `content` wrapper. For text: line count +
|
|
273
|
+
* a short start preview. Returns null for binary / empty content.
|
|
274
|
+
*/
|
|
275
|
+
describeContentShape(content) {
|
|
276
|
+
if (Buffer.isBuffer(content)) {
|
|
277
|
+
return null;
|
|
278
|
+
}
|
|
279
|
+
const s = content.trim();
|
|
280
|
+
if (s.length === 0) {
|
|
281
|
+
return null;
|
|
282
|
+
}
|
|
283
|
+
if ((s.startsWith('{') || s.startsWith('[')) && s.length < 2_000_000) {
|
|
284
|
+
try {
|
|
285
|
+
const parsed = JSON.parse(s);
|
|
286
|
+
if (Array.isArray(parsed)) {
|
|
287
|
+
const firstObj = parsed.find((x) => x !== null && typeof x === 'object' && !Array.isArray(x));
|
|
288
|
+
const keys = firstObj ? Object.keys(firstObj).slice(0, 12).join(', ') : '';
|
|
289
|
+
return (`JSON array of ${parsed.length} item(s)${keys ? `; item fields: ${keys}` : ''}. ` +
|
|
290
|
+
`The artifact IS this array. Easiest: read it with get_full and pipe through the operators ` +
|
|
291
|
+
`(get_full → where → select → distinct). There is no "content" wrapper to path into.`);
|
|
292
|
+
}
|
|
293
|
+
if (parsed !== null && typeof parsed === 'object') {
|
|
294
|
+
return `JSON object; keys: ${Object.keys(parsed).slice(0, 20).join(', ')}.`;
|
|
295
|
+
}
|
|
296
|
+
return `JSON ${typeof parsed} value.`;
|
|
297
|
+
}
|
|
298
|
+
catch {
|
|
299
|
+
/* not valid JSON — fall through to text preview */
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
const preview = s.replace(/\s+/g, ' ').slice(0, 120);
|
|
303
|
+
return `text, ${s.split('\n').length} line(s); starts: "${preview}${s.length > 120 ? '…' : ''}"`;
|
|
304
|
+
}
|
|
246
305
|
/** Markdown tool documentation grouped by artifact type */
|
|
247
306
|
GetToolDocumentation() {
|
|
248
307
|
if (this.artifacts.size === 0)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArtifactToolManager.js","sourceRoot":"","sources":["../src/ArtifactToolManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,uBAAuB,EAA8E,MAAM,8BAA8B,CAAC;AACnJ,OAAO,EAAE,uBAAuB,EAAE,MAAM,0CAA0C,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AA+BnE;;;;;;;;;GASG;AACH,MAAM,4BAA6B,SAAQ,uBAAuB;IAChE,YAA6B,KAAgC;QAC3D,KAAK,EAAE,CAAC;QADmB,UAAK,GAAL,KAAK,CAA2B;IAE7D,CAAC;IAED,2EAA2E;IAC3E,6EAA6E;IAC7E,wCAAwC;IACxB,WAAW;QACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,MAAM,GAA6B,EAAE,CAAC;QAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,WAAW,EAAE,EAAE,CAAC;gBACrC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAClC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEe,KAAK,CAAC,UAAU,CAC9B,QAAgB,EAChB,KAA8B,EAC9B,eAAgC;QAEhC,sEAAsE;QACtE,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC7B,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;gBACvD,OAAO,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;QACD,OAAO;YACL,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,IAAI;YACV,YAAY,EAAE,SAAS,QAAQ,gEAAgE;SAChG,CAAC;IACJ,CAAC;IAED,6EAA6E;IAC7E,8BAA8B;IACpB,mBAAmB;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IACS,KAAK,CAAC,kBAAkB;QAChC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,wEAAwE,EAAE,CAAC;IAChI,CAAC;CACF;AAkBD;;;;;;;;;GASG;AACH,MAAM,OAAO,mBAAmB;IAAhC;QACU,cAAS,GAA+B,IAAI,GAAG,EAAE,CAAC;QAClD,gBAAW,GAAuB,EAAE,CAAC;QACrC,mBAAc,GAAG,CAAC,CAAC;IAigB7B,CAAC;IA/fC,oBAAoB;IAEpB,2DAA2D;IAC3D,UAAU,CAAC,cAA+B;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,KAAK,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;YACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE;gBAC1B,OAAO;gBACP,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC;gBAC1E,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,YAAY,EAAE,QAAQ,CAAC,YAAY;gBACnC,cAAc,EAAE,QAAQ,CAAC,cAAc;aACxC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,gBAAgB,CAAC,QAAuB;QACtC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE;YAC1B,OAAO;YACP,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC;SAC3E,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,sBAAsB;IACtB,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;QACtB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,0CAA0C;IAC1C,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;IACjC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,4BAA4B;QAChC,MAAM,UAAU,GAAsB,EAAE,CAAC;QACzC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAAE,SAAS;YAC9B,qEAAqE;YACrE,2EAA2E;YAC3E,oEAAoE;YACpE,kEAAkE;YAClE,+CAA+C;YAC/C,MAAM,aAAa,GAA2B,KAAK,CAAC,cAAc;gBAChE,CAAC,CAAC,WAAW;gBACb,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,WAAW,CAAC,CAAC;YACxC,IAAI,aAAa,KAAK,WAAW;gBAAE,SAAS;YAC5C,MAAM,aAAa,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;gBACrD,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC5B,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;YAClB,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAChD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,QAAQ,EAAE,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACjG,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,QAAQ,EAAE,KAAK,CAAC,QAAQ;gBACxB,aAAa,EAAE,MAAM;gBACrB,SAAS,EAAE,aAAa,CAAC,MAAM;gBAC/B,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD,CAAC,CAAC;QACL,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,mBAAmB,CAAC,QAAgB,EAAE,MAAc,EAAE,UAA2B;QAC7F,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QAEpC,uCAAuC;QACvC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAC5D,OAAO,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAChF,CAAC;QAED,8DAA8D;QAC9D,IAAI,IAAI,KAAK,iBAAiB,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAED,2DAA2D;QAC3D,2DAA2D;QAC3D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,oFAAoF;IAC5E,KAAK,CAAC,cAAc,CAAC,MAAc;QACzC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;YACjE,MAAM,MAAM,GAAG,MAAO,QAAoO,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;YACjT,IAAI,CAAC;gBACH,MAAM,KAAK,GAAa,EAAE,CAAC;gBAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC1C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACrC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC1E,CAAC;gBACD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC5B,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,2BAA2B;IAE3B;;;;;;;;;;;;OAYG;IACH,gBAAgB,CAAC,IAA4D;QAC3E,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEzC,MAAM,KAAK,GAAa,CAAC,0BAA0B,CAAC,CAAC;QACrD,MAAM,cAAc,GAAG,IAAI,EAAE,kBAAkB,IAAI,IAAI,CAAC;QACxD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;gBAC/C,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;gBACrD,CAAC,CAAC,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC;oBAC7D,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;oBACrD,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YAC9D,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,OAAO,QAAQ,KAAK,CAAC,QAAQ,MAAM,KAAK,CAAC,IAAI,IAAI,QAAQ,GAAG,UAAU,EAAE,CAAC,CAAC;YAEhG,+DAA+D;YAC/D,iEAAiE;YACjE,kEAAkE;YAClE,6DAA6D;YAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;YAC9E,IAAI,QAAQ,EAAE,CAAC;gBACb,KAAK,CAAC,IAAI,CAAC,WAAW,QAAQ,EAAE,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBACrB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,GAAG,mBAAmB,CAAC,uCAAuC;oBACtG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,CAAC,uCAAuC,CAAC,GAAG,gBAAgB;oBAC3G,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;gBACrB,KAAK,CAAC,IAAI,CAAC,eAAe,UAAU,EAAE,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,wHAAwH,CAAC,CAAC;QACrI,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED,2DAA2D;IAC3D,oBAAoB;QAClB,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAEzC,sCAAsC;QACtC,MAAM,aAAa,GAAG,IAAI,GAAG,EAAmC,CAAC;QACjE,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC;YAChD,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEjC,QAAQ,CAAC,IAAI,CAAC,MAAM,QAAQ,iBAAiB,CAAC,CAAC;YAC/C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAE,IAAI,CAAC,WAAW,CAAC,UAAsC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACtG,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,gBAAgB,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACtG,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACK,uBAAuB,CAC7B,QAA4B,EAC5B,cAA4C;QAE5C,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,eAAe,GAAG,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/G,IAAI,CAAC,eAAe;YAAE,OAAO,IAAI,CAAC;QAElC,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,oCAAoC,QAAQ,YAAY;gBAC7D,2FAA2F;gBAC3F,mDAAmD,QAAQ,qDAAqD,CAAC;QACrH,CAAC;QACD,MAAM,SAAS,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAChD,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;gBAAE,OAAO,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,OAAO,KAAK,KAAK,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QACH,IAAI,SAAS;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,oCAAoC,QAAQ,aAAa,KAAK,KAAK;YACxE,2FAA2F;YAC3F,mDAAmD,QAAQ,qDAAqD,CAAC;IACrH,CAAC;IAED;;;;OAIG;aACqB,4CAAuC,GAAG,KAAK,AAAR,CAAS;IAExE;;;;OAIG;IACH,4CAA4C;IAC5C,UAAU;QACR,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;QAClC,OAAO,GAAG,KAAK,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,eAAe,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;aAChG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;aACrB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACnB,CAAC;IAED,yBAAyB;IAEzB;;;;;;;;OAQG;IACH,KAAK,CAAC,qBAAqB,CAAC,IAAsB;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,wDAAwD;QACxD,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,+DAA+D;YAC/D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC1I,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACxC,wEAAwE;YACxE,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,MAAM,GAAqB;gBAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE;oBACN,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,IAAI;oBACV,YAAY,EAAE,wBAAwB,IAAI,CAAC,UAAU,uDAAuD;iBAC7G;gBACD,SAAS,EAAE,IAAI,IAAI,EAAE;gBACrB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACnC,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,yEAAyE;QACzE,0EAA0E;QAC1E,wEAAwE;QACxE,qEAAqE;QACrE,IAAI,MAA0B,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAChF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC7D,MAAM,GAAG;gBACP,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,IAAI;gBACV,YAAY,EAAE,SAAS,IAAI,CAAC,IAAI,iBAAiB,KAAK,CAAC,OAAO,WAAW,GAAG,uGAAuG;aACpL,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAqB;YAC/B,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM;YACN,SAAS,EAAE,IAAI,IAAI,EAAE;YACrB,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACnC,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,gBAAgB,CAAC,KAAyB;QAC9C,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,wBAAwB;IAExB,+BAA+B;IAC/B,MAAM;QACJ,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACzD,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC;YACH,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM;SACrC,CAAC;IACJ,CAAC;IAED,yBAAyB;IAEzB;;;OAGG;IACH,MAAM,CAAC,wBAAwB,CAAC,aAAqB,EAAE,OAAqC;QAC1F,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,IAAI,MAAM,CAAC;QACzD,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;YACpC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,6BAA6B,EAAE,CAAC;QAC7E,CAAC;QACD,OAAO;YACL,iBAAiB,EAAE,IAAI;YACvB,MAAM,EAAE,kBAAkB,GAAG,cAAc,GAAG,UAAU,GAAG,aAAa,GAAG,mDAAmD;SAC/H,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,kBAAkB,CAAC,WAAmB,EAAE,kBAA0B,EAAE;QACzE,IAAI,MAA+B,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QACnC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAI,KAAiC,CAAC,MAAM,CAAC,CAAC;YACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,eAAe,EAAE,CAAC;gBAC3D,SAAS;YACX,CAAC;YAED,MAAM,GAAG,GAAG,KAAgC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrB,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;YACvB,CAAC;YACD,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAA4B,CAAC;YAC5D,QAAQ,CAAC,eAAe,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;YACxC,QAAQ,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC;YACvC,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;YAC7C,QAAQ,GAAG,IAAI,CAAC;QAClB,CAAC;QAED,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;IACzD,CAAC;IAED,kBAAkB;IAElB,gEAAgE;IACxD,WAAW;QACjB,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACpC,IAAI,KAAK,GAAG,EAAE,EAAE,CAAC;YACf,OAAO,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM;QAChD,CAAC;QACD,kBAAkB;QAClB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACjC,OAAO,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,cAAc,CAAC,QAAgB,EAAE,gBAAyB;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACjD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,4BAA4B,CAAC,KAAK,CAAC,CAAC;QACrE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;QACxC,qEAAqE;QACrE,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,gBAAgB,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;OAKG;IACK,mBAAmB,CAAC,QAAgB;QAC1C,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM;YAAE,OAAO,EAAE,CAAC;QAE7C,MAAM,KAAK,GAA8B,EAAE,CAAC;QAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,IAAI,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAChD,OAAO,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACxB,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAC;YAC3C,IAAI,SAAS,EAAE,CAAC;gBACd,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA0B,uBAAuB,EAAE,SAAS,CAAC,CAAC;gBACvH,IAAI,GAAG;oBAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,GAAG,OAAO,CAAC,QAAQ;gBACxB,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,OAAQ,CAAC,QAAS,CAAC,CAAC;gBACxE,CAAC,CAAC,SAAS,CAAC;QAChB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACK,kBAAkB,CAAC,QAAgB,EAAE,gBAAyB;QACpE,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA0B,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;YACnI,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;QAChC,CAAC;QAED,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACrC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACzD,OAAO,IAAI,uBAAuB,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,IAAI,eAAe,EAAE,CAAC;QAC/B,CAAC;QACD,0EAA0E;QAC1E,oFAAoF;QACpF,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA0B,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;YAC9H,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACvF,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA0B,uBAAuB,EAAE,kBAAkB,CAAC,CAAC;YAChI,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;QACD,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACnF,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,CAA0B,uBAAuB,EAAE,iBAAiB,CAAC,CAAC;YAC/H,IAAI,GAAG;gBAAE,OAAO,GAAG,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,eAAe,EAAE,CAAC;IAC/B,CAAC"}
|
|
1
|
+
{"version":3,"file":"ArtifactToolManager.js","sourceRoot":"","sources":["../src/ArtifactToolManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { BaseSingleton, IShutdownable } from '@memberjunction/global';
|
|
2
|
+
import { DatabaseProviderBase, UserInfo } from '@memberjunction/core';
|
|
3
|
+
/**
|
|
4
|
+
* Tuning for the agent-run watchdog. All durations are in their named units. Defaults are
|
|
5
|
+
* deliberately conservative: the stale threshold is many heartbeat intervals wide, so a
|
|
6
|
+
* momentarily-slow-but-alive process is never mistaken for a dead one.
|
|
7
|
+
*/
|
|
8
|
+
export interface AgentRunWatchdogConfig {
|
|
9
|
+
/** How often the owning process stamps a liveness heartbeat for its in-flight runs. */
|
|
10
|
+
heartbeatIntervalMs: number;
|
|
11
|
+
/** How often this process re-scans for orphaned runs (mid-life, without waiting for a restart). */
|
|
12
|
+
sweepIntervalMs: number;
|
|
13
|
+
/** A Running run whose heartbeat is older than this (or NULL with an older StartedAt) is force-failed. */
|
|
14
|
+
staleThresholdMinutes: number;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Process-wide watchdog that guarantees no `AIAgentRun` is left stuck in `Status='Running'`
|
|
18
|
+
* after the owning process dies (restart, crash, OOM) or its terminal-state write fails.
|
|
19
|
+
*
|
|
20
|
+
* Three cooperating mechanisms, all anchored to the **database clock** so they remain correct
|
|
21
|
+
* across multiple MJAPI instances behind a load balancer (no instance trusts its own clock):
|
|
22
|
+
*
|
|
23
|
+
* 1. **Heartbeat** — while a run is in flight, the owning process stamps `LastHeartbeatAt`
|
|
24
|
+
* every {@link AgentRunWatchdogConfig.heartbeatIntervalMs} via {@link SP_HEARTBEAT}.
|
|
25
|
+
* 2. **Sweep** — {@link SweepOrphanedRuns} force-fails any `Running` run whose heartbeat has
|
|
26
|
+
* gone stale, via {@link SP_SWEEP} (one atomic, set-based `UPDATE … WHERE Status='Running'
|
|
27
|
+
* AND <stale>` inside the proc — so concurrent sweeps from multiple instances are harmless
|
|
28
|
+
* and a run another instance is still heart-beating can't be caught mid-sweep). Run once on
|
|
29
|
+
* boot (closes restart-orphans) and on a timer (closes mid-life orphans).
|
|
30
|
+
* 3. **Graceful shutdown** — on SIGTERM/SIGINT (via {@link ShutdownRegistry}) this process marks
|
|
31
|
+
* the runs *it* owns `Cancelled` via {@link SP_CANCEL}, closing the deploy case instantly.
|
|
32
|
+
*
|
|
33
|
+
* Every proc filters `Status='Running'` only — `Paused` and `AwaitingFeedback` are
|
|
34
|
+
* legitimately-not-progressing states and are never touched. The watchdog accesses the DB only
|
|
35
|
+
* through these stored procedures (writes) and the base view (reads) — never the base table —
|
|
36
|
+
* so it works as the regular runtime DB user, not just the elevated CodeGen user. Proc calls are
|
|
37
|
+
* built through the provider's {@link Dialect.ProcedureCallSyntax}, so they run on SQL Server and
|
|
38
|
+
* PostgreSQL unchanged.
|
|
39
|
+
*/
|
|
40
|
+
export declare class AgentRunWatchdog extends BaseSingleton<AgentRunWatchdog> implements IShutdownable {
|
|
41
|
+
private _config;
|
|
42
|
+
private _trackedRuns;
|
|
43
|
+
private _provider;
|
|
44
|
+
private _contextUser;
|
|
45
|
+
private _heartbeatTimer;
|
|
46
|
+
private _sweepTimer;
|
|
47
|
+
private _registered;
|
|
48
|
+
protected constructor();
|
|
49
|
+
static get Instance(): AgentRunWatchdog;
|
|
50
|
+
readonly ShutdownName = "AgentRunWatchdog";
|
|
51
|
+
/** Overrides the default tuning. Safe to call before or after runs start tracking. */
|
|
52
|
+
Configure(config: Partial<AgentRunWatchdogConfig>): void;
|
|
53
|
+
/**
|
|
54
|
+
* Begin guarding a run. The owning agent calls this immediately after the run row is saved
|
|
55
|
+
* (so it has a stable ID). Idempotent per run ID. Capturing the provider/user lets the
|
|
56
|
+
* central heartbeat + shutdown statements run without each run re-supplying them.
|
|
57
|
+
*/
|
|
58
|
+
Track(runID: string, provider: DatabaseProviderBase, contextUser: UserInfo): void;
|
|
59
|
+
/** Stop guarding a run. Optional — the periodic prune drops terminal runs automatically — but
|
|
60
|
+
* callers may invoke it for prompt cleanup right after writing a terminal state. */
|
|
61
|
+
Untrack(runID: string): void;
|
|
62
|
+
/** Number of runs this process is currently guarding (primarily for tests/diagnostics). */
|
|
63
|
+
get TrackedCount(): number;
|
|
64
|
+
/**
|
|
65
|
+
* IShutdownable: on graceful shutdown, mark every run this process still owns as `Cancelled`
|
|
66
|
+
* (via {@link SP_CANCEL}) so it doesn't linger as a phantom `Running` row until the next sweep.
|
|
67
|
+
* Idempotent and never throws — a failed cancel just falls through to the staleness sweep later.
|
|
68
|
+
*/
|
|
69
|
+
Shutdown(): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
* Force-fail any `Running` agent run whose liveness heartbeat has gone stale (or that never
|
|
72
|
+
* beat and was started long ago), via the dedicated {@link SP_SWEEP} proc. The proc does the
|
|
73
|
+
* whole thing as one atomic, set-based `UPDATE` and returns the count, so it's safe to run on
|
|
74
|
+
* every boot and on a timer, on every instance: the predicate is staleness-based (never "fail
|
|
75
|
+
* all Running") and re-evaluated at write time, so it cannot touch a run a healthy instance is
|
|
76
|
+
* still heart-beating. Returns the number of rows failed.
|
|
77
|
+
*/
|
|
78
|
+
static SweepOrphanedRuns(provider: DatabaseProviderBase, contextUser: UserInfo, config?: Partial<AgentRunWatchdogConfig>): Promise<number>;
|
|
79
|
+
/** Start the heartbeat + sweep timers and register for graceful shutdown, exactly once. */
|
|
80
|
+
private ensureStarted;
|
|
81
|
+
private stopTimers;
|
|
82
|
+
/** Stamp LastHeartbeatAt for every run this process is guarding, via {@link SP_HEARTBEAT}.
|
|
83
|
+
* Never throws (runs on a timer); a per-run failure is logged and the rest still beat. */
|
|
84
|
+
private heartbeat;
|
|
85
|
+
/** Periodic tick: force-fail orphans, then prune any terminal runs out of the tracked set. */
|
|
86
|
+
private periodicSweep;
|
|
87
|
+
/**
|
|
88
|
+
* Drop any tracked run that is no longer `Running` so the in-memory set can't grow unbounded
|
|
89
|
+
* over a long-lived process. A single SELECT (against the base VIEW — the runtime user has no
|
|
90
|
+
* table access) of the still-running subset; the rest are pruned.
|
|
91
|
+
*/
|
|
92
|
+
private pruneTerminalRuns;
|
|
93
|
+
/** Validated, lowercased UUIDs this process is guarding (for per-run proc calls). */
|
|
94
|
+
private trackedIds;
|
|
95
|
+
/**
|
|
96
|
+
* Build a single batched SQL string of one proc call per id, newline-separated, so a set of
|
|
97
|
+
* per-run writes goes to the DB as one round-trip instead of N. Each id is already a validated
|
|
98
|
+
* UUID and is quoted as a string literal before interpolation. Runs unchanged on SQL Server and
|
|
99
|
+
* PostgreSQL because the call form comes from {@link Dialect.ProcedureCallSyntax}.
|
|
100
|
+
*/
|
|
101
|
+
private static buildProcBatch;
|
|
102
|
+
/** Comma-joined, quoted, validated UUID list for an `ID IN (...)` clause, or '' if none. */
|
|
103
|
+
private trackedIdList;
|
|
104
|
+
/** Schema that owns the AIAgentRun objects (for qualifying proc calls), or null if unresolved. */
|
|
105
|
+
private static schemaOf;
|
|
106
|
+
/** Fully-qualified, dialect-quoted base VIEW for AIAgentRun reads, or null if unresolved. */
|
|
107
|
+
private static viewOf;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=agent-run-watchdog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-run-watchdog.d.ts","sourceRoot":"","sources":["../src/agent-run-watchdog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAoB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACxF,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAuB,MAAM,sBAAsB,CAAC;AAM3F;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACnC,uFAAuF;IACvF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mGAAmG;IACnG,eAAe,EAAE,MAAM,CAAC;IACxB,0GAA0G;IAC1G,qBAAqB,EAAE,MAAM,CAAC;CACjC;AAsBD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,gBAAiB,SAAQ,aAAa,CAAC,gBAAgB,CAAE,YAAW,aAAa;IAC1F,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,WAAW,CAA+C;IAClE,OAAO,CAAC,WAAW,CAAS;IAE5B,SAAS;IAIT,WAAkB,QAAQ,IAAI,gBAAgB,CAE7C;IAED,SAAgB,YAAY,sBAAsB;IAElD,sFAAsF;IAC/E,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI;IAI/D;;;;OAIG;IACI,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,oBAAoB,EAAE,WAAW,EAAE,QAAQ,GAAG,IAAI;IAUxF;yFACqF;IAC9E,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMnC,2FAA2F;IAC3F,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED;;;;OAIG;IACU,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBtC;;;;;;;OAOG;WACiB,iBAAiB,CACjC,QAAQ,EAAE,oBAAoB,EAC9B,WAAW,EAAE,QAAQ,EACrB,MAAM,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACzC,OAAO,CAAC,MAAM,CAAC;IA0BlB,2FAA2F;IAC3F,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,UAAU;IAWlB;+FAC2F;YAC7E,SAAS;IAsBvB,8FAA8F;YAChF,aAAa;IAQ3B;;;;OAIG;YACW,iBAAiB;IAiC/B,qFAAqF;IACrF,OAAO,CAAC,UAAU;IAIlB;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,cAAc;IAI7B,4FAA4F;IAC5F,OAAO,CAAC,aAAa;IAIrB,kGAAkG;IAClG,OAAO,CAAC,MAAM,CAAC,QAAQ;IAKvB,6FAA6F;IAC7F,OAAO,CAAC,MAAM,CAAC,MAAM;CAQxB"}
|
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import { BaseSingleton, ShutdownRegistry } from '@memberjunction/global';
|
|
2
|
+
import { LogError, LogStatus } from '@memberjunction/core';
|
|
3
|
+
const DEFAULT_CONFIG = {
|
|
4
|
+
heartbeatIntervalMs: 30_000,
|
|
5
|
+
sweepIntervalMs: 5 * 60_000,
|
|
6
|
+
staleThresholdMinutes: 5,
|
|
7
|
+
};
|
|
8
|
+
/** Matches a canonical UUID. Tracked IDs come from provider-generated PKs, but we validate
|
|
9
|
+
* before ever interpolating into SQL so a proc argument can never become an injection vector. */
|
|
10
|
+
const UUID_RE = /^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/;
|
|
11
|
+
/** The one MJ entity whose runs this watchdog guards. */
|
|
12
|
+
const AGENT_RUN_ENTITY = 'MJ: AI Agent Runs';
|
|
13
|
+
/** Dedicated maintenance stored procedures (see the watchdog sprocs migration). The runtime DB
|
|
14
|
+
* user has EXECUTE on these + SELECT on the base view, but no direct table access — so all of
|
|
15
|
+
* the watchdog's writes go through these procs and its reads go through the view. */
|
|
16
|
+
const SP_HEARTBEAT = 'spStampAIAgentRunHeartbeat';
|
|
17
|
+
const SP_SWEEP = 'spSweepStaleAIAgentRuns';
|
|
18
|
+
const SP_CANCEL = 'spCancelAIAgentRun';
|
|
19
|
+
/**
|
|
20
|
+
* Process-wide watchdog that guarantees no `AIAgentRun` is left stuck in `Status='Running'`
|
|
21
|
+
* after the owning process dies (restart, crash, OOM) or its terminal-state write fails.
|
|
22
|
+
*
|
|
23
|
+
* Three cooperating mechanisms, all anchored to the **database clock** so they remain correct
|
|
24
|
+
* across multiple MJAPI instances behind a load balancer (no instance trusts its own clock):
|
|
25
|
+
*
|
|
26
|
+
* 1. **Heartbeat** — while a run is in flight, the owning process stamps `LastHeartbeatAt`
|
|
27
|
+
* every {@link AgentRunWatchdogConfig.heartbeatIntervalMs} via {@link SP_HEARTBEAT}.
|
|
28
|
+
* 2. **Sweep** — {@link SweepOrphanedRuns} force-fails any `Running` run whose heartbeat has
|
|
29
|
+
* gone stale, via {@link SP_SWEEP} (one atomic, set-based `UPDATE … WHERE Status='Running'
|
|
30
|
+
* AND <stale>` inside the proc — so concurrent sweeps from multiple instances are harmless
|
|
31
|
+
* and a run another instance is still heart-beating can't be caught mid-sweep). Run once on
|
|
32
|
+
* boot (closes restart-orphans) and on a timer (closes mid-life orphans).
|
|
33
|
+
* 3. **Graceful shutdown** — on SIGTERM/SIGINT (via {@link ShutdownRegistry}) this process marks
|
|
34
|
+
* the runs *it* owns `Cancelled` via {@link SP_CANCEL}, closing the deploy case instantly.
|
|
35
|
+
*
|
|
36
|
+
* Every proc filters `Status='Running'` only — `Paused` and `AwaitingFeedback` are
|
|
37
|
+
* legitimately-not-progressing states and are never touched. The watchdog accesses the DB only
|
|
38
|
+
* through these stored procedures (writes) and the base view (reads) — never the base table —
|
|
39
|
+
* so it works as the regular runtime DB user, not just the elevated CodeGen user. Proc calls are
|
|
40
|
+
* built through the provider's {@link Dialect.ProcedureCallSyntax}, so they run on SQL Server and
|
|
41
|
+
* PostgreSQL unchanged.
|
|
42
|
+
*/
|
|
43
|
+
export class AgentRunWatchdog extends BaseSingleton {
|
|
44
|
+
constructor() {
|
|
45
|
+
super();
|
|
46
|
+
this._config = DEFAULT_CONFIG;
|
|
47
|
+
this._trackedRuns = new Set();
|
|
48
|
+
this._provider = null;
|
|
49
|
+
this._contextUser = null;
|
|
50
|
+
this._heartbeatTimer = null;
|
|
51
|
+
this._sweepTimer = null;
|
|
52
|
+
this._registered = false;
|
|
53
|
+
this.ShutdownName = 'AgentRunWatchdog';
|
|
54
|
+
}
|
|
55
|
+
static get Instance() {
|
|
56
|
+
return super.getInstance();
|
|
57
|
+
}
|
|
58
|
+
/** Overrides the default tuning. Safe to call before or after runs start tracking. */
|
|
59
|
+
Configure(config) {
|
|
60
|
+
this._config = { ...this._config, ...config };
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Begin guarding a run. The owning agent calls this immediately after the run row is saved
|
|
64
|
+
* (so it has a stable ID). Idempotent per run ID. Capturing the provider/user lets the
|
|
65
|
+
* central heartbeat + shutdown statements run without each run re-supplying them.
|
|
66
|
+
*/
|
|
67
|
+
Track(runID, provider, contextUser) {
|
|
68
|
+
if (!runID || !UUID_RE.test(runID)) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
this._provider = provider;
|
|
72
|
+
this._contextUser = contextUser;
|
|
73
|
+
this._trackedRuns.add(runID.toLowerCase());
|
|
74
|
+
this.ensureStarted();
|
|
75
|
+
}
|
|
76
|
+
/** Stop guarding a run. Optional — the periodic prune drops terminal runs automatically — but
|
|
77
|
+
* callers may invoke it for prompt cleanup right after writing a terminal state. */
|
|
78
|
+
Untrack(runID) {
|
|
79
|
+
if (runID) {
|
|
80
|
+
this._trackedRuns.delete(runID.toLowerCase());
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/** Number of runs this process is currently guarding (primarily for tests/diagnostics). */
|
|
84
|
+
get TrackedCount() {
|
|
85
|
+
return this._trackedRuns.size;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* IShutdownable: on graceful shutdown, mark every run this process still owns as `Cancelled`
|
|
89
|
+
* (via {@link SP_CANCEL}) so it doesn't linger as a phantom `Running` row until the next sweep.
|
|
90
|
+
* Idempotent and never throws — a failed cancel just falls through to the staleness sweep later.
|
|
91
|
+
*/
|
|
92
|
+
async Shutdown() {
|
|
93
|
+
this.stopTimers();
|
|
94
|
+
const ids = this.trackedIds();
|
|
95
|
+
this._trackedRuns.clear();
|
|
96
|
+
if (!ids.length || !this._provider) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const schema = AgentRunWatchdog.schemaOf(this._provider);
|
|
100
|
+
if (!schema) {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
const d = this._provider.Dialect;
|
|
104
|
+
// One batched round-trip (one EXEC per id, newline-separated) rather than a call per run.
|
|
105
|
+
const sql = AgentRunWatchdog.buildProcBatch(d, schema, SP_CANCEL, ids);
|
|
106
|
+
try {
|
|
107
|
+
await this._provider.ExecuteSQL(sql, undefined, { isMutation: true, description: 'AgentRunWatchdog graceful-shutdown cancel' }, this._contextUser ?? undefined);
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
LogError(`AgentRunWatchdog.Shutdown failed to cancel runs [${ids.join(', ')}]: ${err instanceof Error ? err.message : String(err)}`);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Force-fail any `Running` agent run whose liveness heartbeat has gone stale (or that never
|
|
115
|
+
* beat and was started long ago), via the dedicated {@link SP_SWEEP} proc. The proc does the
|
|
116
|
+
* whole thing as one atomic, set-based `UPDATE` and returns the count, so it's safe to run on
|
|
117
|
+
* every boot and on a timer, on every instance: the predicate is staleness-based (never "fail
|
|
118
|
+
* all Running") and re-evaluated at write time, so it cannot touch a run a healthy instance is
|
|
119
|
+
* still heart-beating. Returns the number of rows failed.
|
|
120
|
+
*/
|
|
121
|
+
static async SweepOrphanedRuns(provider, contextUser, config) {
|
|
122
|
+
const threshold = config?.staleThresholdMinutes ?? DEFAULT_CONFIG.staleThresholdMinutes;
|
|
123
|
+
const schema = AgentRunWatchdog.schemaOf(provider);
|
|
124
|
+
if (!schema) {
|
|
125
|
+
LogError('AgentRunWatchdog.SweepOrphanedRuns: could not resolve the AIAgentRun schema from metadata; skipping sweep');
|
|
126
|
+
return 0;
|
|
127
|
+
}
|
|
128
|
+
const d = provider.Dialect;
|
|
129
|
+
try {
|
|
130
|
+
// The proc runs the atomic UPDATE on the DB clock and returns RunsFailed.
|
|
131
|
+
const sql = d.ProcedureCallSyntax(schema, SP_SWEEP, [String(Math.trunc(threshold))]) + ';';
|
|
132
|
+
const rows = await provider.ExecuteSQL(sql, undefined, { isMutation: true, description: 'AgentRunWatchdog stale-run sweep' }, contextUser);
|
|
133
|
+
const failCount = (Array.isArray(rows) && rows[0] && typeof rows[0].RunsFailed === 'number') ? rows[0].RunsFailed : 0;
|
|
134
|
+
if (failCount > 0) {
|
|
135
|
+
LogStatus(`[AgentRunWatchdog] Swept ${failCount} orphaned agent run(s) -> Failed (no heartbeat for >${threshold}m)`);
|
|
136
|
+
}
|
|
137
|
+
return failCount;
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
LogError(`AgentRunWatchdog.SweepOrphanedRuns failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
141
|
+
return 0;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
// ----- internals -------------------------------------------------------------------------
|
|
145
|
+
/** Start the heartbeat + sweep timers and register for graceful shutdown, exactly once. */
|
|
146
|
+
ensureStarted() {
|
|
147
|
+
if (!this._registered) {
|
|
148
|
+
ShutdownRegistry.Instance.Register(this);
|
|
149
|
+
this._registered = true;
|
|
150
|
+
}
|
|
151
|
+
if (!this._heartbeatTimer) {
|
|
152
|
+
this._heartbeatTimer = setInterval(() => void this.heartbeat(), this._config.heartbeatIntervalMs);
|
|
153
|
+
// Don't keep the event loop alive solely for the watchdog.
|
|
154
|
+
this._heartbeatTimer.unref?.();
|
|
155
|
+
}
|
|
156
|
+
if (!this._sweepTimer) {
|
|
157
|
+
// The periodic sweep is an always-on in-process timer rather than an MJ Scheduled Job
|
|
158
|
+
// (MJ: Scheduled Jobs / SchedulingEngine) on purpose. This is a reliability floor for
|
|
159
|
+
// orphaned runs, and ScheduledJobsService is gated by `scheduledJobs.enabled` in config
|
|
160
|
+
// — moving the sweep there would silently disable it in any deployment that runs with
|
|
161
|
+
// scheduled jobs off, exactly where the safety net still needs to work. A Scheduled Job
|
|
162
|
+
// could be added on top later as an observability/audit layer (it would call the same
|
|
163
|
+
// idempotent SweepOrphanedRuns), but it must not be the only thing that runs it.
|
|
164
|
+
this._sweepTimer = setInterval(() => void this.periodicSweep(), this._config.sweepIntervalMs);
|
|
165
|
+
this._sweepTimer.unref?.();
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
stopTimers() {
|
|
169
|
+
if (this._heartbeatTimer) {
|
|
170
|
+
clearInterval(this._heartbeatTimer);
|
|
171
|
+
this._heartbeatTimer = null;
|
|
172
|
+
}
|
|
173
|
+
if (this._sweepTimer) {
|
|
174
|
+
clearInterval(this._sweepTimer);
|
|
175
|
+
this._sweepTimer = null;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
/** Stamp LastHeartbeatAt for every run this process is guarding, via {@link SP_HEARTBEAT}.
|
|
179
|
+
* Never throws (runs on a timer); a per-run failure is logged and the rest still beat. */
|
|
180
|
+
async heartbeat() {
|
|
181
|
+
if (!this._provider) {
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
const ids = this.trackedIds();
|
|
185
|
+
if (!ids.length) {
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
const schema = AgentRunWatchdog.schemaOf(this._provider);
|
|
189
|
+
if (!schema) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
const d = this._provider.Dialect;
|
|
193
|
+
// One batched round-trip (one EXEC per id, newline-separated) rather than a call per run.
|
|
194
|
+
const sql = AgentRunWatchdog.buildProcBatch(d, schema, SP_HEARTBEAT, ids);
|
|
195
|
+
try {
|
|
196
|
+
await this._provider.ExecuteSQL(sql, undefined, { isMutation: true, ignoreLogging: true, description: 'AgentRunWatchdog heartbeat' }, this._contextUser ?? undefined);
|
|
197
|
+
}
|
|
198
|
+
catch (err) {
|
|
199
|
+
LogError(`AgentRunWatchdog heartbeat failed for runs [${ids.join(', ')}]: ${err instanceof Error ? err.message : String(err)}`);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/** Periodic tick: force-fail orphans, then prune any terminal runs out of the tracked set. */
|
|
203
|
+
async periodicSweep() {
|
|
204
|
+
if (!this._provider || !this._contextUser) {
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
await AgentRunWatchdog.SweepOrphanedRuns(this._provider, this._contextUser, this._config);
|
|
208
|
+
await this.pruneTerminalRuns();
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* Drop any tracked run that is no longer `Running` so the in-memory set can't grow unbounded
|
|
212
|
+
* over a long-lived process. A single SELECT (against the base VIEW — the runtime user has no
|
|
213
|
+
* table access) of the still-running subset; the rest are pruned.
|
|
214
|
+
*/
|
|
215
|
+
async pruneTerminalRuns() {
|
|
216
|
+
const ids = this.trackedIdList();
|
|
217
|
+
if (!ids || !this._provider) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
const view = AgentRunWatchdog.viewOf(this._provider);
|
|
221
|
+
if (!view) {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
const d = this._provider.Dialect;
|
|
225
|
+
try {
|
|
226
|
+
const rows = await this._provider.ExecuteSQL(`SELECT ${d.QuoteIdentifier('ID')} FROM ${view} ` +
|
|
227
|
+
`WHERE ${d.QuoteIdentifier('Status')} = 'Running' AND ${d.QuoteIdentifier('ID')} IN (${ids});`, undefined, { ignoreLogging: true, description: 'AgentRunWatchdog tracked-set prune' }, this._contextUser ?? undefined);
|
|
228
|
+
const stillRunning = new Set();
|
|
229
|
+
if (Array.isArray(rows)) {
|
|
230
|
+
for (const row of rows) {
|
|
231
|
+
if (typeof row?.ID === 'string') {
|
|
232
|
+
stillRunning.add(row.ID.toLowerCase());
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
for (const tracked of Array.from(this._trackedRuns)) {
|
|
237
|
+
if (!stillRunning.has(tracked)) {
|
|
238
|
+
this._trackedRuns.delete(tracked);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
catch (err) {
|
|
243
|
+
LogError(`AgentRunWatchdog prune failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
/** Validated, lowercased UUIDs this process is guarding (for per-run proc calls). */
|
|
247
|
+
trackedIds() {
|
|
248
|
+
return Array.from(this._trackedRuns).filter(id => UUID_RE.test(id));
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Build a single batched SQL string of one proc call per id, newline-separated, so a set of
|
|
252
|
+
* per-run writes goes to the DB as one round-trip instead of N. Each id is already a validated
|
|
253
|
+
* UUID and is quoted as a string literal before interpolation. Runs unchanged on SQL Server and
|
|
254
|
+
* PostgreSQL because the call form comes from {@link Dialect.ProcedureCallSyntax}.
|
|
255
|
+
*/
|
|
256
|
+
static buildProcBatch(d, schema, proc, ids) {
|
|
257
|
+
return ids.map(id => d.ProcedureCallSyntax(schema, proc, [d.QuoteStringLiteral(id)]) + ';').join('\n');
|
|
258
|
+
}
|
|
259
|
+
/** Comma-joined, quoted, validated UUID list for an `ID IN (...)` clause, or '' if none. */
|
|
260
|
+
trackedIdList() {
|
|
261
|
+
return this.trackedIds().map(id => `'${id}'`).join(',');
|
|
262
|
+
}
|
|
263
|
+
/** Schema that owns the AIAgentRun objects (for qualifying proc calls), or null if unresolved. */
|
|
264
|
+
static schemaOf(provider) {
|
|
265
|
+
const entity = provider.EntityByName(AGENT_RUN_ENTITY);
|
|
266
|
+
return entity?.SchemaName || null;
|
|
267
|
+
}
|
|
268
|
+
/** Fully-qualified, dialect-quoted base VIEW for AIAgentRun reads, or null if unresolved. */
|
|
269
|
+
static viewOf(provider) {
|
|
270
|
+
const entity = provider.EntityByName(AGENT_RUN_ENTITY);
|
|
271
|
+
if (!entity || !entity.BaseView) {
|
|
272
|
+
return null;
|
|
273
|
+
}
|
|
274
|
+
const d = provider.Dialect;
|
|
275
|
+
return entity.SchemaName ? d.QuoteSchema(entity.SchemaName, entity.BaseView) : d.QuoteIdentifier(entity.BaseView);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=agent-run-watchdog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-run-watchdog.js","sourceRoot":"","sources":["../src/agent-run-watchdog.ts"],"names":[],"mappings":"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"}
|
|
@@ -79,6 +79,12 @@ export interface ResponseTypeInclusionRules {
|
|
|
79
79
|
* @default true
|
|
80
80
|
*/
|
|
81
81
|
artifactToolCalls?: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Include the pipeline field in the response interface.
|
|
84
|
+
* Auto-aligns with includePipelineDocs unless explicitly set.
|
|
85
|
+
* @default true
|
|
86
|
+
*/
|
|
87
|
+
pipeline?: boolean;
|
|
82
88
|
}
|
|
83
89
|
/**
|
|
84
90
|
* Default values for ResponseTypeInclusionRules.
|
|
@@ -237,6 +243,13 @@ export interface LoopAgentTypePromptParams {
|
|
|
237
243
|
* @default true
|
|
238
244
|
*/
|
|
239
245
|
includeArtifactToolsDocs?: boolean;
|
|
246
|
+
/**
|
|
247
|
+
* Include tool-pipeline documentation in the prompt (the `_PIPELINE_TOOLS` block).
|
|
248
|
+
* Only emitted when at least one pipeline source — an Action or artifact tool — is available.
|
|
249
|
+
* Disable for agents that should never compose pipelines.
|
|
250
|
+
* @default true
|
|
251
|
+
*/
|
|
252
|
+
includePipelineDocs?: boolean;
|
|
240
253
|
/**
|
|
241
254
|
* Maximum number of sub-agents to include in prompt details.
|
|
242
255
|
* -1 = include all (default)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loop-agent-prompt-params.d.ts","sourceRoot":"","sources":["../../src/agent-types/loop-agent-prompt-params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,0BAA0B;IACvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"loop-agent-prompt-params.d.ts","sourceRoot":"","sources":["../../src/agent-types/loop-agent-prompt-params.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,0BAA0B;IACvC;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,eAAO,MAAM,qCAAqC,EAAE,QAAQ,CAAC,0BAA0B,CAStF,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,MAAM,WAAW,yBAAyB;IAGtC;;;;;;;;;OASG;IACH,6BAA6B,CAAC,EAAE,0BAA0B,CAAC;IAE3D;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;;;;OAMG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAE7B;;;;;;;OAOG;IACH,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;;;;OAMG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAElC;;;;;OAKG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAI9B;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAE9B;;;;;;;OAOG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;GAGG;AACH,eAAO,MAAM,gCAAgC,EAAE,QAAQ,CAAC,yBAAyB,CAgBhF,CAAC"}
|