@agent-inspect/langchain 1.7.0 → 1.8.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/index.cjs +144 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +144 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -111,6 +111,71 @@ function safePreview(value, maxChars) {
|
|
|
111
111
|
}
|
|
112
112
|
}
|
|
113
113
|
var MAX_METADATA_KEYS = 40;
|
|
114
|
+
var LANGGRAPH_ALIASES = [
|
|
115
|
+
{ out: "graphId", aliases: ["graphId", "graph_id", "langgraph_graph_id"] },
|
|
116
|
+
{ out: "graphName", aliases: ["graphName", "graph_name", "langgraph_graph_name"] },
|
|
117
|
+
{ out: "nodeId", aliases: ["nodeId", "node_id", "langgraph_node_id"] },
|
|
118
|
+
{ out: "nodeName", aliases: ["nodeName", "node_name", "langgraph_node"] },
|
|
119
|
+
{ out: "subgraphId", aliases: ["subgraphId", "subgraph_id", "langgraph_subgraph_id"] },
|
|
120
|
+
{ out: "subgraphName", aliases: ["subgraphName", "subgraph_name", "langgraph_subgraph"] },
|
|
121
|
+
{ out: "taskId", aliases: ["taskId", "task_id", "langgraph_task_id"] },
|
|
122
|
+
{ out: "taskName", aliases: ["taskName", "task_name", "langgraph_task"] },
|
|
123
|
+
{ out: "branch", aliases: ["branch", "branchName", "branch_name", "langgraph_branch"] },
|
|
124
|
+
{ out: "branchPath", aliases: ["branchPath", "branch_path", "langgraph_path"] },
|
|
125
|
+
{ out: "checkpointId", aliases: ["checkpointId", "checkpoint_id", "langgraph_checkpoint_id"] },
|
|
126
|
+
{
|
|
127
|
+
out: "checkpointNamespace",
|
|
128
|
+
aliases: ["checkpointNamespace", "checkpoint_ns", "langgraph_checkpoint_ns"]
|
|
129
|
+
},
|
|
130
|
+
{ out: "threadId", aliases: ["threadId", "thread_id", "langgraph_thread_id"] },
|
|
131
|
+
{ out: "sessionId", aliases: ["sessionId", "session_id", "langgraph_session_id"] },
|
|
132
|
+
{ out: "retryAttempt", aliases: ["retryAttempt", "retry_attempt", "attempt"] },
|
|
133
|
+
{ out: "handoffFrom", aliases: ["handoffFrom", "handoff_from", "langgraph_handoff_from"] },
|
|
134
|
+
{ out: "handoffTo", aliases: ["handoffTo", "handoff_to", "langgraph_handoff_to"] }
|
|
135
|
+
];
|
|
136
|
+
var LANGGRAPH_SUMMARY_ALIASES = [
|
|
137
|
+
{ out: "checkpointSummary", aliases: ["checkpoint", "langgraph_checkpoint"] },
|
|
138
|
+
{ out: "branchSummary", aliases: ["branches", "langgraph_branches", "langgraph_triggers"] },
|
|
139
|
+
{ out: "taskSummary", aliases: ["tasks", "langgraph_tasks"] }
|
|
140
|
+
];
|
|
141
|
+
function boundedValue(value) {
|
|
142
|
+
if (value === null) return null;
|
|
143
|
+
if (typeof value === "string") return value.length <= 200 ? value : `${value.slice(0, 200)}\u2026`;
|
|
144
|
+
if (typeof value === "number" || typeof value === "boolean") return value;
|
|
145
|
+
if (typeof value === "bigint") return value.toString();
|
|
146
|
+
if (Array.isArray(value)) {
|
|
147
|
+
const items = value.slice(0, 10).map((item) => {
|
|
148
|
+
if (item === null) return null;
|
|
149
|
+
if (typeof item === "string" || typeof item === "number" || typeof item === "boolean") {
|
|
150
|
+
return item;
|
|
151
|
+
}
|
|
152
|
+
if (typeof item === "bigint") return item.toString();
|
|
153
|
+
return summarizeValue(item);
|
|
154
|
+
});
|
|
155
|
+
return {
|
|
156
|
+
type: "array",
|
|
157
|
+
itemCount: value.length,
|
|
158
|
+
items,
|
|
159
|
+
truncated: value.length > items.length ? true : void 0
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
return summarizeValue(value);
|
|
163
|
+
}
|
|
164
|
+
function summarizeValue(value) {
|
|
165
|
+
if (Array.isArray(value)) return { type: "array", itemCount: value.length };
|
|
166
|
+
if (isRecord(value)) return { type: "object", keyCount: Object.keys(value).length };
|
|
167
|
+
return { type: typeof value };
|
|
168
|
+
}
|
|
169
|
+
function getAliasValue(sources, aliases) {
|
|
170
|
+
for (const source of sources) {
|
|
171
|
+
for (const alias of aliases) {
|
|
172
|
+
if (Object.prototype.hasOwnProperty.call(source, alias)) {
|
|
173
|
+
return source[alias];
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return void 0;
|
|
178
|
+
}
|
|
114
179
|
function toPlainMetadata(value) {
|
|
115
180
|
try {
|
|
116
181
|
if (!isRecord(value)) return {};
|
|
@@ -147,6 +212,32 @@ function toPlainMetadata(value) {
|
|
|
147
212
|
return {};
|
|
148
213
|
}
|
|
149
214
|
}
|
|
215
|
+
function extractLangGraphMetadata(value) {
|
|
216
|
+
try {
|
|
217
|
+
if (!isRecord(value)) return void 0;
|
|
218
|
+
const sources = [value];
|
|
219
|
+
for (const key of ["langgraph", "configurable"]) {
|
|
220
|
+
const nested = value[key];
|
|
221
|
+
if (isRecord(nested)) sources.push(nested);
|
|
222
|
+
}
|
|
223
|
+
const config = value.config;
|
|
224
|
+
if (isRecord(config) && isRecord(config.configurable)) {
|
|
225
|
+
sources.push(config.configurable);
|
|
226
|
+
}
|
|
227
|
+
const out = {};
|
|
228
|
+
for (const { out: outKey, aliases } of LANGGRAPH_ALIASES) {
|
|
229
|
+
const raw = getAliasValue(sources, aliases);
|
|
230
|
+
if (raw !== void 0) out[outKey] = boundedValue(raw);
|
|
231
|
+
}
|
|
232
|
+
for (const { out: outKey, aliases } of LANGGRAPH_SUMMARY_ALIASES) {
|
|
233
|
+
const raw = getAliasValue(sources, aliases);
|
|
234
|
+
if (raw !== void 0) out[outKey] = summarizeValue(raw);
|
|
235
|
+
}
|
|
236
|
+
return Object.keys(out).length > 0 ? out : void 0;
|
|
237
|
+
} catch {
|
|
238
|
+
return void 0;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
150
241
|
|
|
151
242
|
// packages/langchain/src/streaming-metadata.ts
|
|
152
243
|
function createLlmStreamState() {
|
|
@@ -286,6 +377,11 @@ var LangChainTracePersistence = class {
|
|
|
286
377
|
const stepId = agentInspect.createStepId();
|
|
287
378
|
this.#lcToStepId.set(params.lcRunId, stepId);
|
|
288
379
|
const parentId = this.resolveParentId(params.lcParentRunId);
|
|
380
|
+
const metadata = toStepMetadata(params.attributes);
|
|
381
|
+
if (params.lcParentRunId && !parentId) {
|
|
382
|
+
metadata.parentMapping = "unresolved";
|
|
383
|
+
metadata.unresolvedParentRunId = params.lcParentRunId;
|
|
384
|
+
}
|
|
289
385
|
const event = {
|
|
290
386
|
schemaVersion: "0.1",
|
|
291
387
|
event: "step_started",
|
|
@@ -296,7 +392,7 @@ var LangChainTracePersistence = class {
|
|
|
296
392
|
name: params.name,
|
|
297
393
|
type: kindToStepType(params.kind),
|
|
298
394
|
startTime: params.startTime,
|
|
299
|
-
metadata
|
|
395
|
+
metadata
|
|
300
396
|
};
|
|
301
397
|
await this.#write(event);
|
|
302
398
|
} catch (err) {
|
|
@@ -310,6 +406,11 @@ var LangChainTracePersistence = class {
|
|
|
310
406
|
stepId = agentInspect.createStepId();
|
|
311
407
|
this.#lcToStepId.set(params.lcRunId, stepId);
|
|
312
408
|
const parentId = this.resolveParentId(params.lcParentRunId);
|
|
409
|
+
const metadata = toStepMetadata(params.completionAttributes);
|
|
410
|
+
if (params.lcParentRunId && !parentId) {
|
|
411
|
+
metadata.parentMapping = "unresolved";
|
|
412
|
+
metadata.unresolvedParentRunId = params.lcParentRunId;
|
|
413
|
+
}
|
|
313
414
|
const startTime = params.endTime - (params.durationMs ?? 0);
|
|
314
415
|
const started = {
|
|
315
416
|
schemaVersion: "0.1",
|
|
@@ -323,7 +424,7 @@ var LangChainTracePersistence = class {
|
|
|
323
424
|
params.completionAttributes.kind ?? "LLM"
|
|
324
425
|
),
|
|
325
426
|
startTime,
|
|
326
|
-
metadata
|
|
427
|
+
metadata
|
|
327
428
|
};
|
|
328
429
|
await this.#write(started);
|
|
329
430
|
}
|
|
@@ -362,6 +463,11 @@ var LangChainTracePersistence = class {
|
|
|
362
463
|
const stepId = agentInspect.createStepId();
|
|
363
464
|
this.#lcToStepId.set(params.lcRunId, stepId);
|
|
364
465
|
const parentId = this.resolveParentId(params.lcParentRunId);
|
|
466
|
+
const metadata = toStepMetadata(params.attributes);
|
|
467
|
+
if (params.lcParentRunId && !parentId) {
|
|
468
|
+
metadata.parentMapping = "unresolved";
|
|
469
|
+
metadata.unresolvedParentRunId = params.lcParentRunId;
|
|
470
|
+
}
|
|
365
471
|
const started = {
|
|
366
472
|
schemaVersion: "0.1",
|
|
367
473
|
event: "step_started",
|
|
@@ -372,7 +478,7 @@ var LangChainTracePersistence = class {
|
|
|
372
478
|
name: params.name,
|
|
373
479
|
type: kindToStepType(params.kind),
|
|
374
480
|
startTime: params.timestamp,
|
|
375
|
-
metadata
|
|
481
|
+
metadata
|
|
376
482
|
};
|
|
377
483
|
await this.#write(started);
|
|
378
484
|
const completed = {
|
|
@@ -443,6 +549,9 @@ var LangChainTracePersistence = class {
|
|
|
443
549
|
};
|
|
444
550
|
|
|
445
551
|
// packages/langchain/src/agent-inspect-callback.ts
|
|
552
|
+
function isRecord2(v) {
|
|
553
|
+
return typeof v === "object" && v !== null && !Array.isArray(v);
|
|
554
|
+
}
|
|
446
555
|
function serializedLabel(s) {
|
|
447
556
|
if (typeof s.name === "string" && s.name.trim()) return s.name;
|
|
448
557
|
if (Array.isArray(s.id) && s.id.length > 0) return s.id[s.id.length - 1];
|
|
@@ -576,6 +685,15 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
576
685
|
#rememberStart(lcRunId, kind) {
|
|
577
686
|
this.#starts.set(lcRunId, { ts: Date.now(), kind });
|
|
578
687
|
}
|
|
688
|
+
#rememberStartMetadata(lcRunId, attrs) {
|
|
689
|
+
const start = this.#starts.get(lcRunId);
|
|
690
|
+
if (!start || !isRecord2(attrs.langGraph)) return;
|
|
691
|
+
this.#starts.set(lcRunId, { ...start, langGraph: { ...attrs.langGraph } });
|
|
692
|
+
}
|
|
693
|
+
#attachStartMetadata(attrs, lcRunId) {
|
|
694
|
+
const langGraph = this.#starts.get(lcRunId)?.langGraph;
|
|
695
|
+
if (langGraph && !attrs.langGraph) attrs.langGraph = { ...langGraph };
|
|
696
|
+
}
|
|
579
697
|
#clearStart(lcRunId) {
|
|
580
698
|
this.#starts.delete(lcRunId);
|
|
581
699
|
}
|
|
@@ -594,6 +712,8 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
594
712
|
#mergeMetadata(attrs, metadata) {
|
|
595
713
|
if (this.#opts.capture === "none" || !metadata) return;
|
|
596
714
|
attrs.metadata = this.#redactor.redactRecord(toPlainMetadata(metadata));
|
|
715
|
+
const langGraph = extractLangGraphMetadata(metadata);
|
|
716
|
+
if (langGraph) attrs.langGraph = this.#redactor.redactRecord(langGraph);
|
|
597
717
|
}
|
|
598
718
|
#applyPreview(attrs, previews) {
|
|
599
719
|
if (this.#opts.capture !== "preview") return;
|
|
@@ -657,6 +777,7 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
657
777
|
};
|
|
658
778
|
this.#mergeMetadata(attrs, metadata);
|
|
659
779
|
this.#applyPreview(attrs, previews);
|
|
780
|
+
this.#rememberStartMetadata(runId, attrs);
|
|
660
781
|
const ts = Date.now();
|
|
661
782
|
this.#pushEvent({
|
|
662
783
|
eventId: `${runId}:CHAIN:start`,
|
|
@@ -675,12 +796,13 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
675
796
|
async handleChainEnd(outputs, runId, parentRunId, tags, _kwargs) {
|
|
676
797
|
this.#ensureRoot(runId, parentRunId);
|
|
677
798
|
const durationMs = this.#durationFor(runId);
|
|
678
|
-
this.#clearStart(runId);
|
|
679
799
|
const previews = {};
|
|
680
800
|
if (this.#opts.capture === "preview") previews.outputPreview = outputs;
|
|
681
801
|
const attrs = {
|
|
682
802
|
...this.#baseAttrs(runId, parentRunId, tags, void 0)
|
|
683
803
|
};
|
|
804
|
+
this.#attachStartMetadata(attrs, runId);
|
|
805
|
+
this.#clearStart(runId);
|
|
684
806
|
this.#applyPreview(attrs, previews);
|
|
685
807
|
const ts = Date.now();
|
|
686
808
|
this.#pushEvent({
|
|
@@ -701,13 +823,14 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
701
823
|
async handleChainError(err, runId, parentRunId, tags, _kwargs) {
|
|
702
824
|
this.#ensureRoot(runId, parentRunId);
|
|
703
825
|
const durationMs = this.#durationFor(runId);
|
|
704
|
-
this.#clearStart(runId);
|
|
705
826
|
const { errorName, errorMessage } = errorShape(err);
|
|
706
827
|
const attrs = {
|
|
707
828
|
...this.#baseAttrs(runId, parentRunId, tags, void 0),
|
|
708
829
|
errorName,
|
|
709
830
|
errorMessage
|
|
710
831
|
};
|
|
832
|
+
this.#attachStartMetadata(attrs, runId);
|
|
833
|
+
this.#clearStart(runId);
|
|
711
834
|
const ts = Date.now();
|
|
712
835
|
this.#pushEvent({
|
|
713
836
|
eventId: `${runId}:CHAIN:error`,
|
|
@@ -739,6 +862,7 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
739
862
|
this.#mergeMetadata(attrs, metadata);
|
|
740
863
|
this.#mergeCorrelation(attrs);
|
|
741
864
|
this.#applyPreview(attrs, previews);
|
|
865
|
+
this.#rememberStartMetadata(runId, attrs);
|
|
742
866
|
const ts = Date.now();
|
|
743
867
|
const stepName = `llm:${model ?? "llm"}`;
|
|
744
868
|
this.#pushEvent({
|
|
@@ -768,6 +892,7 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
768
892
|
this.#mergeMetadata(attrs, metadata);
|
|
769
893
|
this.#mergeCorrelation(attrs);
|
|
770
894
|
this.#applyPreview(attrs, previews);
|
|
895
|
+
this.#rememberStartMetadata(runId, attrs);
|
|
771
896
|
const ts = Date.now();
|
|
772
897
|
const stepName = `llm:${model ?? "llm"}`;
|
|
773
898
|
this.#pushEvent({
|
|
@@ -802,7 +927,6 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
802
927
|
async handleLLMEnd(output, runId, parentRunId, tags, _extraParams) {
|
|
803
928
|
this.#ensureRoot(runId, parentRunId);
|
|
804
929
|
const durationMs = this.#durationFor(runId);
|
|
805
|
-
this.#clearStart(runId);
|
|
806
930
|
const tokens = extractTokenUsage(output);
|
|
807
931
|
const model = extractModelName(output);
|
|
808
932
|
const previews = {};
|
|
@@ -812,6 +936,8 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
812
936
|
};
|
|
813
937
|
if (model && this.#opts.capture !== "none") attrs.model = model;
|
|
814
938
|
if (tokens && this.#opts.capture !== "none") attrs.tokens = tokens;
|
|
939
|
+
this.#attachStartMetadata(attrs, runId);
|
|
940
|
+
this.#clearStart(runId);
|
|
815
941
|
this.#attachStreamMetadata(attrs, runId);
|
|
816
942
|
this.#mergeCorrelation(attrs);
|
|
817
943
|
this.#applyPreview(attrs, previews);
|
|
@@ -840,13 +966,14 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
840
966
|
async handleLLMError(err, runId, parentRunId, tags, _extraParams) {
|
|
841
967
|
this.#ensureRoot(runId, parentRunId);
|
|
842
968
|
const durationMs = this.#durationFor(runId);
|
|
843
|
-
this.#clearStart(runId);
|
|
844
969
|
const { errorName, errorMessage } = errorShape(err);
|
|
845
970
|
const attrs = {
|
|
846
971
|
...this.#baseAttrs(runId, parentRunId, tags, void 0),
|
|
847
972
|
errorName,
|
|
848
973
|
errorMessage
|
|
849
974
|
};
|
|
975
|
+
this.#attachStartMetadata(attrs, runId);
|
|
976
|
+
this.#clearStart(runId);
|
|
850
977
|
this.#attachStreamMetadata(attrs, runId);
|
|
851
978
|
this.#mergeCorrelation(attrs);
|
|
852
979
|
const ts = Date.now();
|
|
@@ -883,6 +1010,7 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
883
1010
|
};
|
|
884
1011
|
this.#mergeMetadata(attrs, metadata);
|
|
885
1012
|
this.#applyPreview(attrs, previews);
|
|
1013
|
+
this.#rememberStartMetadata(runId, attrs);
|
|
886
1014
|
const ts = Date.now();
|
|
887
1015
|
const stepName = `tool:${toolName}`;
|
|
888
1016
|
this.#pushEvent({
|
|
@@ -902,12 +1030,13 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
902
1030
|
async handleToolEnd(output, runId, parentRunId, tags) {
|
|
903
1031
|
this.#ensureRoot(runId, parentRunId);
|
|
904
1032
|
const durationMs = this.#durationFor(runId);
|
|
905
|
-
this.#clearStart(runId);
|
|
906
1033
|
const previews = {};
|
|
907
1034
|
if (this.#opts.capture === "preview") previews.outputPreview = output;
|
|
908
1035
|
const attrs = {
|
|
909
1036
|
...this.#baseAttrs(runId, parentRunId, tags, void 0)
|
|
910
1037
|
};
|
|
1038
|
+
this.#attachStartMetadata(attrs, runId);
|
|
1039
|
+
this.#clearStart(runId);
|
|
911
1040
|
this.#applyPreview(attrs, previews);
|
|
912
1041
|
const ts = Date.now();
|
|
913
1042
|
this.#pushEvent({
|
|
@@ -928,13 +1057,14 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
928
1057
|
async handleToolError(err, runId, parentRunId, tags) {
|
|
929
1058
|
this.#ensureRoot(runId, parentRunId);
|
|
930
1059
|
const durationMs = this.#durationFor(runId);
|
|
931
|
-
this.#clearStart(runId);
|
|
932
1060
|
const { errorName, errorMessage } = errorShape(err);
|
|
933
1061
|
const attrs = {
|
|
934
1062
|
...this.#baseAttrs(runId, parentRunId, tags, void 0),
|
|
935
1063
|
errorName,
|
|
936
1064
|
errorMessage
|
|
937
1065
|
};
|
|
1066
|
+
this.#attachStartMetadata(attrs, runId);
|
|
1067
|
+
this.#clearStart(runId);
|
|
938
1068
|
const ts = Date.now();
|
|
939
1069
|
this.#pushEvent({
|
|
940
1070
|
eventId: `${runId}:TOOL:error`,
|
|
@@ -960,6 +1090,7 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
960
1090
|
retriever: rname
|
|
961
1091
|
};
|
|
962
1092
|
this.#mergeMetadata(attrs, metadata);
|
|
1093
|
+
this.#rememberStartMetadata(runId, attrs);
|
|
963
1094
|
const ts = Date.now();
|
|
964
1095
|
const stepName = `retriever:${rname}`;
|
|
965
1096
|
this.#pushEvent({
|
|
@@ -979,7 +1110,6 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
979
1110
|
async handleRetrieverEnd(documents, runId, parentRunId, tags) {
|
|
980
1111
|
this.#ensureRoot(runId, parentRunId);
|
|
981
1112
|
const durationMs = this.#durationFor(runId);
|
|
982
|
-
this.#clearStart(runId);
|
|
983
1113
|
const previews = {};
|
|
984
1114
|
if (this.#opts.capture === "preview" && documents.length > 0) {
|
|
985
1115
|
previews.documentPreview = documents.slice(0, 3);
|
|
@@ -988,6 +1118,8 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
988
1118
|
...this.#baseAttrs(runId, parentRunId, tags, void 0),
|
|
989
1119
|
documentCount: documents.length
|
|
990
1120
|
};
|
|
1121
|
+
this.#attachStartMetadata(attrs, runId);
|
|
1122
|
+
this.#clearStart(runId);
|
|
991
1123
|
this.#applyPreview(attrs, previews);
|
|
992
1124
|
const ts = Date.now();
|
|
993
1125
|
this.#pushEvent({
|
|
@@ -1008,13 +1140,14 @@ var AgentInspectCallback = class extends base.BaseCallbackHandler {
|
|
|
1008
1140
|
async handleRetrieverError(err, runId, parentRunId, tags) {
|
|
1009
1141
|
this.#ensureRoot(runId, parentRunId);
|
|
1010
1142
|
const durationMs = this.#durationFor(runId);
|
|
1011
|
-
this.#clearStart(runId);
|
|
1012
1143
|
const { errorName, errorMessage } = errorShape(err);
|
|
1013
1144
|
const attrs = {
|
|
1014
1145
|
...this.#baseAttrs(runId, parentRunId, tags, void 0),
|
|
1015
1146
|
errorName,
|
|
1016
1147
|
errorMessage
|
|
1017
1148
|
};
|
|
1149
|
+
this.#attachStartMetadata(attrs, runId);
|
|
1150
|
+
this.#clearStart(runId);
|
|
1018
1151
|
const ts = Date.now();
|
|
1019
1152
|
this.#pushEvent({
|
|
1020
1153
|
eventId: `${runId}:RETRIEVER:error`,
|