agent-inspect 1.8.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/README.md +146 -23
- package/docs/ADAPTER-CONFORMANCE.md +1 -1
- package/docs/ADAPTERS.md +41 -6
- package/docs/API.md +123 -36
- package/docs/CLI.md +75 -11
- package/docs/EXPORTS.md +1 -1
- package/docs/GETTING-STARTED.md +72 -16
- package/docs/KNOWN-ISSUES.md +8 -3
- package/docs/LIMITATIONS.md +6 -6
- package/docs/LOG-TO-TREE-QUICKSTART.md +1 -2
- package/docs/MIGRATION.md +67 -0
- package/docs/SCHEMA.md +29 -12
- package/package.json +2 -2
- package/packages/cli/dist/index.cjs +7604 -7660
- package/packages/cli/dist/index.cjs.map +1 -1
- package/packages/cli/dist/index.mjs +7604 -7660
- package/packages/cli/dist/index.mjs.map +1 -1
- package/packages/core/dist/advanced.cjs +2047 -26
- package/packages/core/dist/advanced.cjs.map +1 -1
- package/packages/core/dist/advanced.d.cts +346 -196
- package/packages/core/dist/advanced.d.ts +346 -196
- package/packages/core/dist/advanced.mjs +628 -5
- package/packages/core/dist/advanced.mjs.map +1 -1
- package/packages/core/dist/checks.d.cts +1 -1
- package/packages/core/dist/checks.d.ts +1 -1
- package/packages/core/dist/chunk-2ZXEMWGK.mjs +549 -0
- package/packages/core/dist/chunk-2ZXEMWGK.mjs.map +1 -0
- package/packages/core/dist/{chunk-57S5D6HR.mjs → chunk-4JVGFNQH.mjs} +50 -6
- package/packages/core/dist/chunk-4JVGFNQH.mjs.map +1 -0
- package/packages/core/dist/{chunk-6QSLZCBJ.mjs → chunk-A4V2H3YU.mjs} +329 -163
- package/packages/core/dist/chunk-A4V2H3YU.mjs.map +1 -0
- package/packages/core/dist/{chunk-74XZ6N7Q.mjs → chunk-IZBJAZGF.mjs} +12 -4
- package/packages/core/dist/chunk-IZBJAZGF.mjs.map +1 -0
- package/packages/core/dist/{chunk-VTIB5MDK.mjs → chunk-NQZPZ2FN.mjs} +15 -10
- package/packages/core/dist/chunk-NQZPZ2FN.mjs.map +1 -0
- package/packages/core/dist/{chunk-TZISEVLQ.mjs → chunk-XUNJMAPD.mjs} +3 -3
- package/packages/core/dist/{chunk-TZISEVLQ.mjs.map → chunk-XUNJMAPD.mjs.map} +1 -1
- package/packages/core/dist/context-CSKnzpXR.d.cts +177 -0
- package/packages/core/dist/context-yv2VSDQF.d.ts +177 -0
- package/packages/core/dist/diff.d.cts +2 -2
- package/packages/core/dist/diff.d.ts +2 -2
- package/packages/core/dist/diff.mjs +473 -3
- package/packages/core/dist/diff.mjs.map +1 -1
- package/packages/core/dist/exporters.cjs +691 -0
- package/packages/core/dist/exporters.cjs.map +1 -1
- package/packages/core/dist/exporters.d.cts +24 -3
- package/packages/core/dist/exporters.d.ts +24 -3
- package/packages/core/dist/exporters.mjs +1113 -3
- package/packages/core/dist/exporters.mjs.map +1 -1
- package/packages/core/dist/index.cjs +1385 -8022
- package/packages/core/dist/index.cjs.map +1 -1
- package/packages/core/dist/index.d.cts +8 -313
- package/packages/core/dist/index.d.ts +8 -313
- package/packages/core/dist/index.mjs +18 -1331
- package/packages/core/dist/index.mjs.map +1 -1
- package/packages/core/dist/{log-config-DanPV3P9.d.cts → log-config-8aE5Kxtr.d.cts} +1 -1
- package/packages/core/dist/{log-config-BPHS4Sds.d.ts → log-config-DVimQJho.d.ts} +1 -1
- package/packages/core/dist/logs.d.cts +2 -2
- package/packages/core/dist/logs.d.ts +2 -2
- package/packages/core/dist/logs.mjs +785 -2
- package/packages/core/dist/logs.mjs.map +1 -1
- package/packages/core/dist/{persisted-inspect-event-Cw7TeYGr.d.ts → persisted-inspect-event-D-WpXeZX.d.ts} +14 -5
- package/packages/core/dist/{persisted-inspect-event-DHPfzUd8.d.cts → persisted-inspect-event-DHcHPUKv.d.cts} +14 -5
- package/packages/core/dist/persisted.cjs +11 -1
- package/packages/core/dist/persisted.cjs.map +1 -1
- package/packages/core/dist/persisted.d.cts +4 -4
- package/packages/core/dist/persisted.d.ts +4 -4
- package/packages/core/dist/persisted.mjs +150 -3
- package/packages/core/dist/persisted.mjs.map +1 -1
- package/packages/core/dist/readers.cjs +27 -10
- package/packages/core/dist/readers.cjs.map +1 -1
- package/packages/core/dist/readers.d.cts +1 -1
- package/packages/core/dist/readers.d.ts +1 -1
- package/packages/core/dist/readers.mjs +1580 -4
- package/packages/core/dist/readers.mjs.map +1 -1
- package/packages/core/dist/{types-Ap9uMdx_.d.ts → types-D-Y1kOU-.d.ts} +2 -2
- package/packages/core/dist/{types-B2-BU5CS.d.cts → types-DgMN3qow.d.cts} +2 -2
- package/packages/core/dist/writers.cjs +49 -3
- package/packages/core/dist/writers.cjs.map +1 -1
- package/packages/core/dist/writers.d.cts +1 -1
- package/packages/core/dist/writers.d.ts +1 -1
- package/packages/core/dist/writers.mjs +341 -4
- package/packages/core/dist/writers.mjs.map +1 -1
- package/packages/core/dist/chunk-57S5D6HR.mjs.map +0 -1
- package/packages/core/dist/chunk-6QSLZCBJ.mjs.map +0 -1
- package/packages/core/dist/chunk-6SZPTECC.mjs +0 -342
- package/packages/core/dist/chunk-6SZPTECC.mjs.map +0 -1
- package/packages/core/dist/chunk-74XZ6N7Q.mjs.map +0 -1
- package/packages/core/dist/chunk-HR7G62IE.mjs +0 -785
- package/packages/core/dist/chunk-HR7G62IE.mjs.map +0 -1
- package/packages/core/dist/chunk-TFLPUZ56.mjs +0 -1571
- package/packages/core/dist/chunk-TFLPUZ56.mjs.map +0 -1
- package/packages/core/dist/chunk-U2BGPESY.mjs +0 -150
- package/packages/core/dist/chunk-U2BGPESY.mjs.map +0 -1
- package/packages/core/dist/chunk-VTIB5MDK.mjs.map +0 -1
- package/packages/core/dist/chunk-Y56BPA3B.mjs +0 -990
- package/packages/core/dist/chunk-Y56BPA3B.mjs.map +0 -1
- package/packages/core/dist/chunk-YWAOOXLR.mjs +0 -475
- package/packages/core/dist/chunk-YWAOOXLR.mjs.map +0 -1
|
@@ -1,156 +1,12 @@
|
|
|
1
1
|
import { source_default } from './chunk-BT7CATSD.mjs';
|
|
2
|
-
import { resolveTraceSafetyOptions, preparePersistedInspectEventForWrite } from './chunk-
|
|
3
|
-
import { extractCorrelationMetadata } from './chunk-S4YWKV4G.mjs';
|
|
4
|
-
import { truncateName, formatDuration, createRunId,
|
|
2
|
+
import { resolveTraceSafetyOptions, preparePersistedInspectEventForWrite, initializeTraceFile, writeTraceEvent, prepareTraceEventForDisk } from './chunk-4JVGFNQH.mjs';
|
|
3
|
+
import { extractCorrelationMetadata, buildRunStartedMetadata } from './chunk-S4YWKV4G.mjs';
|
|
4
|
+
import { truncateName, formatDuration, getDefaultTraceDir, createRunId, formatError, getTraceFilePath, createStepId, warn } from './chunk-NQZPZ2FN.mjs';
|
|
5
5
|
import { AsyncLocalStorage } from 'async_hooks';
|
|
6
|
+
import { readdir, stat } from 'fs/promises';
|
|
7
|
+
import path from 'path';
|
|
6
8
|
|
|
7
|
-
var storage = new AsyncLocalStorage();
|
|
8
|
-
function toPublicContext(ctx) {
|
|
9
|
-
return {
|
|
10
|
-
runId: ctx.runId,
|
|
11
|
-
runName: ctx.runName,
|
|
12
|
-
traceDir: ctx.traceDir,
|
|
13
|
-
silent: ctx.silent,
|
|
14
|
-
metadata: ctx.metadata
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
9
|
function invoke(fn) {
|
|
18
|
-
return new Promise((resolve, reject) => {
|
|
19
|
-
try {
|
|
20
|
-
Promise.resolve(fn()).then(resolve, reject);
|
|
21
|
-
} catch (e) {
|
|
22
|
-
reject(e);
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
function getCurrentContext() {
|
|
27
|
-
try {
|
|
28
|
-
const s = storage.getStore();
|
|
29
|
-
if (!s) return void 0;
|
|
30
|
-
return toPublicContext(s);
|
|
31
|
-
} catch {
|
|
32
|
-
return void 0;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
function getCurrentRunId() {
|
|
36
|
-
try {
|
|
37
|
-
return storage.getStore()?.runId;
|
|
38
|
-
} catch {
|
|
39
|
-
return void 0;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
function getCurrentCorrelationMetadata() {
|
|
43
|
-
try {
|
|
44
|
-
return extractCorrelationMetadata(storage.getStore()?.metadata);
|
|
45
|
-
} catch {
|
|
46
|
-
return void 0;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
function getCurrentRunName() {
|
|
50
|
-
try {
|
|
51
|
-
return storage.getStore()?.runName;
|
|
52
|
-
} catch {
|
|
53
|
-
return void 0;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
function getCurrentStepId() {
|
|
57
|
-
try {
|
|
58
|
-
return storage.getStore()?.currentStepId;
|
|
59
|
-
} catch {
|
|
60
|
-
return void 0;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
function getParentStepId() {
|
|
64
|
-
return getCurrentStepId();
|
|
65
|
-
}
|
|
66
|
-
function getCurrentDepth() {
|
|
67
|
-
try {
|
|
68
|
-
const d = storage.getStore()?.currentDepth;
|
|
69
|
-
return typeof d === "number" && Number.isFinite(d) ? d : 0;
|
|
70
|
-
} catch {
|
|
71
|
-
return 0;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
function hasActiveContext() {
|
|
75
|
-
try {
|
|
76
|
-
return storage.getStore() !== void 0;
|
|
77
|
-
} catch {
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
function getTraceDirFromContext() {
|
|
82
|
-
try {
|
|
83
|
-
return storage.getStore()?.traceDir;
|
|
84
|
-
} catch {
|
|
85
|
-
return void 0;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
function isSilentContext() {
|
|
89
|
-
try {
|
|
90
|
-
const s = storage.getStore();
|
|
91
|
-
return s ? s.silent : false;
|
|
92
|
-
} catch {
|
|
93
|
-
return false;
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
function getTraceSafetyFromContext() {
|
|
97
|
-
try {
|
|
98
|
-
return storage.getStore()?.traceSafety;
|
|
99
|
-
} catch {
|
|
100
|
-
return void 0;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
function runWithContext(context, fn, traceSafety = resolveTraceSafetyOptions()) {
|
|
104
|
-
const runtime = {
|
|
105
|
-
runId: context.runId,
|
|
106
|
-
runName: context.runName,
|
|
107
|
-
traceDir: context.traceDir,
|
|
108
|
-
silent: context.silent,
|
|
109
|
-
metadata: context.metadata,
|
|
110
|
-
traceSafety,
|
|
111
|
-
currentDepth: 0
|
|
112
|
-
};
|
|
113
|
-
return new Promise((resolve, reject) => {
|
|
114
|
-
storage.run(runtime, () => {
|
|
115
|
-
try {
|
|
116
|
-
Promise.resolve(fn()).then(resolve, reject);
|
|
117
|
-
} catch (e) {
|
|
118
|
-
reject(e);
|
|
119
|
-
}
|
|
120
|
-
});
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
function runWithStepContext(stepId, fn) {
|
|
124
|
-
let parent;
|
|
125
|
-
try {
|
|
126
|
-
parent = storage.getStore();
|
|
127
|
-
} catch {
|
|
128
|
-
parent = void 0;
|
|
129
|
-
}
|
|
130
|
-
if (!parent) {
|
|
131
|
-
return invoke(fn);
|
|
132
|
-
}
|
|
133
|
-
const derived = {
|
|
134
|
-
runId: parent.runId,
|
|
135
|
-
runName: parent.runName,
|
|
136
|
-
traceDir: parent.traceDir,
|
|
137
|
-
silent: parent.silent,
|
|
138
|
-
metadata: parent.metadata,
|
|
139
|
-
traceSafety: parent.traceSafety,
|
|
140
|
-
currentStepId: stepId,
|
|
141
|
-
currentDepth: parent.currentDepth + 1
|
|
142
|
-
};
|
|
143
|
-
return new Promise((resolve, reject) => {
|
|
144
|
-
storage.run(derived, () => {
|
|
145
|
-
try {
|
|
146
|
-
Promise.resolve(fn()).then(resolve, reject);
|
|
147
|
-
} catch (e) {
|
|
148
|
-
reject(e);
|
|
149
|
-
}
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
}
|
|
153
|
-
function invoke2(fn) {
|
|
154
10
|
return new Promise((resolve, reject) => {
|
|
155
11
|
try {
|
|
156
12
|
Promise.resolve(fn()).then(resolve, reject);
|
|
@@ -207,7 +63,7 @@ function createInspectorRuntime(options = {}) {
|
|
|
207
63
|
runtimeId,
|
|
208
64
|
enabled,
|
|
209
65
|
runWithContext(context, fn) {
|
|
210
|
-
if (!enabled) return
|
|
66
|
+
if (!enabled) return invoke(fn);
|
|
211
67
|
const store = {
|
|
212
68
|
runtimeId,
|
|
213
69
|
runId: context.runId,
|
|
@@ -220,14 +76,14 @@ function createInspectorRuntime(options = {}) {
|
|
|
220
76
|
};
|
|
221
77
|
return new Promise((resolve, reject) => {
|
|
222
78
|
storage2.run(store, () => {
|
|
223
|
-
|
|
79
|
+
invoke(fn).then(resolve, reject);
|
|
224
80
|
});
|
|
225
81
|
});
|
|
226
82
|
},
|
|
227
83
|
runWithStepContext(stepId, fn) {
|
|
228
|
-
if (!enabled) return
|
|
84
|
+
if (!enabled) return invoke(fn);
|
|
229
85
|
const parent = currentStore();
|
|
230
|
-
if (!parent) return
|
|
86
|
+
if (!parent) return invoke(fn);
|
|
231
87
|
const store = {
|
|
232
88
|
runtimeId,
|
|
233
89
|
runId: parent.runId,
|
|
@@ -241,7 +97,7 @@ function createInspectorRuntime(options = {}) {
|
|
|
241
97
|
};
|
|
242
98
|
return new Promise((resolve, reject) => {
|
|
243
99
|
storage2.run(store, () => {
|
|
244
|
-
|
|
100
|
+
invoke(fn).then(resolve, reject);
|
|
245
101
|
});
|
|
246
102
|
});
|
|
247
103
|
},
|
|
@@ -311,6 +167,7 @@ function createInspectorRuntime(options = {}) {
|
|
|
311
167
|
}
|
|
312
168
|
|
|
313
169
|
// packages/core/src/inspector.ts
|
|
170
|
+
var INSPECTOR_PERSISTED_SCHEMA_VERSION = "1.0";
|
|
314
171
|
function normalizeName(name, fallback) {
|
|
315
172
|
if (typeof name !== "string" || name.trim() === "") return fallback;
|
|
316
173
|
return truncateName(name.trim(), 100);
|
|
@@ -427,7 +284,7 @@ function createInspector(options = {}) {
|
|
|
427
284
|
},
|
|
428
285
|
async () => {
|
|
429
286
|
await write({
|
|
430
|
-
schemaVersion:
|
|
287
|
+
schemaVersion: INSPECTOR_PERSISTED_SCHEMA_VERSION,
|
|
431
288
|
eventId: `${runId}_started`,
|
|
432
289
|
runId,
|
|
433
290
|
kind: "RUN",
|
|
@@ -446,7 +303,7 @@ function createInspector(options = {}) {
|
|
|
446
303
|
const result = await Promise.resolve(fn());
|
|
447
304
|
const endedAt = nowIso();
|
|
448
305
|
await write({
|
|
449
|
-
schemaVersion:
|
|
306
|
+
schemaVersion: INSPECTOR_PERSISTED_SCHEMA_VERSION,
|
|
450
307
|
eventId: `${runId}_completed`,
|
|
451
308
|
runId,
|
|
452
309
|
kind: "RUN",
|
|
@@ -464,7 +321,7 @@ function createInspector(options = {}) {
|
|
|
464
321
|
} catch (error) {
|
|
465
322
|
const endedAt = nowIso();
|
|
466
323
|
await write({
|
|
467
|
-
schemaVersion:
|
|
324
|
+
schemaVersion: INSPECTOR_PERSISTED_SCHEMA_VERSION,
|
|
468
325
|
eventId: `${runId}_completed`,
|
|
469
326
|
runId,
|
|
470
327
|
kind: "RUN",
|
|
@@ -504,7 +361,7 @@ function createInspector(options = {}) {
|
|
|
504
361
|
...stepOptions.metadata !== void 0 ? { metadata: stepOptions.metadata } : {}
|
|
505
362
|
};
|
|
506
363
|
await write({
|
|
507
|
-
schemaVersion:
|
|
364
|
+
schemaVersion: INSPECTOR_PERSISTED_SCHEMA_VERSION,
|
|
508
365
|
eventId: `${stepId}_started`,
|
|
509
366
|
runId: context.runId,
|
|
510
367
|
...parentId !== void 0 ? { parentId } : {},
|
|
@@ -522,7 +379,7 @@ function createInspector(options = {}) {
|
|
|
522
379
|
const result = await Promise.resolve(fn());
|
|
523
380
|
const endedAt = nowIso();
|
|
524
381
|
await write({
|
|
525
|
-
schemaVersion:
|
|
382
|
+
schemaVersion: INSPECTOR_PERSISTED_SCHEMA_VERSION,
|
|
526
383
|
eventId: `${stepId}_completed`,
|
|
527
384
|
runId: context.runId,
|
|
528
385
|
kind: stepTypeToKind(stepType),
|
|
@@ -544,7 +401,7 @@ function createInspector(options = {}) {
|
|
|
544
401
|
} catch (error) {
|
|
545
402
|
const endedAt = nowIso();
|
|
546
403
|
await write({
|
|
547
|
-
schemaVersion:
|
|
404
|
+
schemaVersion: INSPECTOR_PERSISTED_SCHEMA_VERSION,
|
|
548
405
|
eventId: `${stepId}_completed`,
|
|
549
406
|
runId: context.runId,
|
|
550
407
|
kind: stepTypeToKind(stepType),
|
|
@@ -608,6 +465,152 @@ function createInspector(options = {}) {
|
|
|
608
465
|
};
|
|
609
466
|
return inspector;
|
|
610
467
|
}
|
|
468
|
+
var storage = new AsyncLocalStorage();
|
|
469
|
+
function toPublicContext(ctx) {
|
|
470
|
+
return {
|
|
471
|
+
runId: ctx.runId,
|
|
472
|
+
runName: ctx.runName,
|
|
473
|
+
traceDir: ctx.traceDir,
|
|
474
|
+
silent: ctx.silent,
|
|
475
|
+
metadata: ctx.metadata
|
|
476
|
+
};
|
|
477
|
+
}
|
|
478
|
+
function invoke2(fn) {
|
|
479
|
+
return new Promise((resolve, reject) => {
|
|
480
|
+
try {
|
|
481
|
+
Promise.resolve(fn()).then(resolve, reject);
|
|
482
|
+
} catch (e) {
|
|
483
|
+
reject(e);
|
|
484
|
+
}
|
|
485
|
+
});
|
|
486
|
+
}
|
|
487
|
+
function getCurrentContext() {
|
|
488
|
+
try {
|
|
489
|
+
const s = storage.getStore();
|
|
490
|
+
if (!s) return void 0;
|
|
491
|
+
return toPublicContext(s);
|
|
492
|
+
} catch {
|
|
493
|
+
return void 0;
|
|
494
|
+
}
|
|
495
|
+
}
|
|
496
|
+
function getCurrentRunId() {
|
|
497
|
+
try {
|
|
498
|
+
return storage.getStore()?.runId;
|
|
499
|
+
} catch {
|
|
500
|
+
return void 0;
|
|
501
|
+
}
|
|
502
|
+
}
|
|
503
|
+
function getCurrentCorrelationMetadata() {
|
|
504
|
+
try {
|
|
505
|
+
return extractCorrelationMetadata(storage.getStore()?.metadata);
|
|
506
|
+
} catch {
|
|
507
|
+
return void 0;
|
|
508
|
+
}
|
|
509
|
+
}
|
|
510
|
+
function getCurrentRunName() {
|
|
511
|
+
try {
|
|
512
|
+
return storage.getStore()?.runName;
|
|
513
|
+
} catch {
|
|
514
|
+
return void 0;
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
function getCurrentStepId() {
|
|
518
|
+
try {
|
|
519
|
+
return storage.getStore()?.currentStepId;
|
|
520
|
+
} catch {
|
|
521
|
+
return void 0;
|
|
522
|
+
}
|
|
523
|
+
}
|
|
524
|
+
function getParentStepId() {
|
|
525
|
+
return getCurrentStepId();
|
|
526
|
+
}
|
|
527
|
+
function getCurrentDepth() {
|
|
528
|
+
try {
|
|
529
|
+
const d = storage.getStore()?.currentDepth;
|
|
530
|
+
return typeof d === "number" && Number.isFinite(d) ? d : 0;
|
|
531
|
+
} catch {
|
|
532
|
+
return 0;
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
function hasActiveContext() {
|
|
536
|
+
try {
|
|
537
|
+
return storage.getStore() !== void 0;
|
|
538
|
+
} catch {
|
|
539
|
+
return false;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
function getTraceDirFromContext() {
|
|
543
|
+
try {
|
|
544
|
+
return storage.getStore()?.traceDir;
|
|
545
|
+
} catch {
|
|
546
|
+
return void 0;
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
function isSilentContext() {
|
|
550
|
+
try {
|
|
551
|
+
const s = storage.getStore();
|
|
552
|
+
return s ? s.silent : false;
|
|
553
|
+
} catch {
|
|
554
|
+
return false;
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
function getTraceSafetyFromContext() {
|
|
558
|
+
try {
|
|
559
|
+
return storage.getStore()?.traceSafety;
|
|
560
|
+
} catch {
|
|
561
|
+
return void 0;
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
function runWithContext(context, fn, traceSafety = resolveTraceSafetyOptions()) {
|
|
565
|
+
const runtime = {
|
|
566
|
+
runId: context.runId,
|
|
567
|
+
runName: context.runName,
|
|
568
|
+
traceDir: context.traceDir,
|
|
569
|
+
silent: context.silent,
|
|
570
|
+
metadata: context.metadata,
|
|
571
|
+
traceSafety,
|
|
572
|
+
currentDepth: 0
|
|
573
|
+
};
|
|
574
|
+
return new Promise((resolve, reject) => {
|
|
575
|
+
storage.run(runtime, () => {
|
|
576
|
+
try {
|
|
577
|
+
Promise.resolve(fn()).then(resolve, reject);
|
|
578
|
+
} catch (e) {
|
|
579
|
+
reject(e);
|
|
580
|
+
}
|
|
581
|
+
});
|
|
582
|
+
});
|
|
583
|
+
}
|
|
584
|
+
function runWithStepContext(stepId, fn) {
|
|
585
|
+
let parent;
|
|
586
|
+
try {
|
|
587
|
+
parent = storage.getStore();
|
|
588
|
+
} catch {
|
|
589
|
+
parent = void 0;
|
|
590
|
+
}
|
|
591
|
+
if (!parent) {
|
|
592
|
+
return invoke2(fn);
|
|
593
|
+
}
|
|
594
|
+
const derived = {
|
|
595
|
+
runId: parent.runId,
|
|
596
|
+
runName: parent.runName,
|
|
597
|
+
traceDir: parent.traceDir,
|
|
598
|
+
silent: parent.silent,
|
|
599
|
+
metadata: parent.metadata,
|
|
600
|
+
traceSafety: parent.traceSafety,
|
|
601
|
+
currentStepId: stepId,
|
|
602
|
+
currentDepth: parent.currentDepth + 1
|
|
603
|
+
};
|
|
604
|
+
return new Promise((resolve, reject) => {
|
|
605
|
+
storage.run(derived, () => {
|
|
606
|
+
try {
|
|
607
|
+
Promise.resolve(fn()).then(resolve, reject);
|
|
608
|
+
} catch (e) {
|
|
609
|
+
reject(e);
|
|
610
|
+
}
|
|
611
|
+
});
|
|
612
|
+
});
|
|
613
|
+
}
|
|
611
614
|
|
|
612
615
|
// packages/core/src/terminal.ts
|
|
613
616
|
var TERMINAL_INDENT = " ";
|
|
@@ -737,7 +740,170 @@ function printFailedAt(stepName) {
|
|
|
737
740
|
} catch {
|
|
738
741
|
}
|
|
739
742
|
}
|
|
743
|
+
function resolveTraceDir(options = {}) {
|
|
744
|
+
if (typeof options.dir === "string" && options.dir.trim() !== "") {
|
|
745
|
+
return options.dir.trim();
|
|
746
|
+
}
|
|
747
|
+
const envDir = process.env.AGENT_INSPECT_TRACE_DIR;
|
|
748
|
+
if (typeof envDir === "string" && envDir.trim() !== "") {
|
|
749
|
+
return envDir.trim();
|
|
750
|
+
}
|
|
751
|
+
return getDefaultTraceDir();
|
|
752
|
+
}
|
|
753
|
+
var TraceDirectory = class {
|
|
754
|
+
#dir;
|
|
755
|
+
constructor(options = {}) {
|
|
756
|
+
this.#dir = resolveTraceDir(options);
|
|
757
|
+
}
|
|
758
|
+
getPath(filename) {
|
|
759
|
+
return filename ? path.join(this.#dir, filename) : this.#dir;
|
|
760
|
+
}
|
|
761
|
+
async list() {
|
|
762
|
+
try {
|
|
763
|
+
const files = await readdir(this.#dir);
|
|
764
|
+
return files.filter((f) => f.endsWith(".jsonl"));
|
|
765
|
+
} catch (e) {
|
|
766
|
+
if (e && typeof e === "object" && "code" in e && e.code === "ENOENT") {
|
|
767
|
+
return [];
|
|
768
|
+
}
|
|
769
|
+
throw e;
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
async getFileStats(filename) {
|
|
773
|
+
return await stat(this.getPath(filename));
|
|
774
|
+
}
|
|
775
|
+
};
|
|
776
|
+
|
|
777
|
+
// packages/core/src/inspect-run.ts
|
|
778
|
+
function normalizeRunName(name) {
|
|
779
|
+
if (typeof name !== "string" || name.trim() === "") {
|
|
780
|
+
return "unnamed-run";
|
|
781
|
+
}
|
|
782
|
+
return truncateName(name.trim(), 100);
|
|
783
|
+
}
|
|
784
|
+
async function safeInstrumentation(label, op) {
|
|
785
|
+
try {
|
|
786
|
+
await Promise.resolve(op());
|
|
787
|
+
} catch (e) {
|
|
788
|
+
warn(`inspectRun: ${label}`, e);
|
|
789
|
+
}
|
|
790
|
+
}
|
|
791
|
+
async function inspectRun(name, fn, options) {
|
|
792
|
+
if (typeof fn !== "function") {
|
|
793
|
+
throw new TypeError("inspectRun requires `fn` to be a function");
|
|
794
|
+
}
|
|
795
|
+
if (options?.enabled === false) {
|
|
796
|
+
return Promise.resolve(fn());
|
|
797
|
+
}
|
|
798
|
+
const runName = normalizeRunName(name);
|
|
799
|
+
const runId = createRunId();
|
|
800
|
+
const traceDir = resolveTraceDir({ dir: options?.traceDir });
|
|
801
|
+
const traceSafety = resolveTraceSafetyOptions(options);
|
|
802
|
+
const runMetadata = buildRunStartedMetadata(options);
|
|
803
|
+
const context = {
|
|
804
|
+
runId,
|
|
805
|
+
runName,
|
|
806
|
+
traceDir,
|
|
807
|
+
silent: options?.silent ?? false,
|
|
808
|
+
metadata: runMetadata
|
|
809
|
+
};
|
|
810
|
+
return runWithContext(context, async () => {
|
|
811
|
+
const startTime = Date.now();
|
|
812
|
+
let traceFilePath;
|
|
813
|
+
await safeInstrumentation("initializeTraceFile", async () => {
|
|
814
|
+
traceFilePath = await initializeTraceFile(runId, traceDir);
|
|
815
|
+
});
|
|
816
|
+
await safeInstrumentation("writeTraceEvent(run_started)", async () => {
|
|
817
|
+
const started = {
|
|
818
|
+
schemaVersion: "0.1",
|
|
819
|
+
event: "run_started",
|
|
820
|
+
timestamp: startTime,
|
|
821
|
+
runId,
|
|
822
|
+
name: runName,
|
|
823
|
+
startTime,
|
|
824
|
+
...runMetadata !== void 0 ? { metadata: runMetadata } : {}
|
|
825
|
+
};
|
|
826
|
+
await writeTraceEvent(
|
|
827
|
+
prepareTraceEventForDisk(started, traceSafety),
|
|
828
|
+
traceDir
|
|
829
|
+
);
|
|
830
|
+
});
|
|
831
|
+
await safeInstrumentation("printRunStart", () => {
|
|
832
|
+
printRunStart(runId, runName);
|
|
833
|
+
});
|
|
834
|
+
let result;
|
|
835
|
+
try {
|
|
836
|
+
result = await Promise.resolve(fn());
|
|
837
|
+
} catch (userError) {
|
|
838
|
+
const endTime2 = Date.now();
|
|
839
|
+
const durationMs3 = endTime2 - startTime;
|
|
840
|
+
const formatted = formatError(userError);
|
|
841
|
+
const printPath2 = traceFilePath ?? getTraceFilePath(runId, traceDir);
|
|
842
|
+
await safeInstrumentation("writeTraceEvent(run_completed error)", async () => {
|
|
843
|
+
const completed = {
|
|
844
|
+
schemaVersion: "0.1",
|
|
845
|
+
event: "run_completed",
|
|
846
|
+
timestamp: endTime2,
|
|
847
|
+
runId,
|
|
848
|
+
status: "error",
|
|
849
|
+
endTime: endTime2,
|
|
850
|
+
durationMs: durationMs3,
|
|
851
|
+
error: formatted
|
|
852
|
+
};
|
|
853
|
+
await writeTraceEvent(
|
|
854
|
+
prepareTraceEventForDisk(completed, traceSafety),
|
|
855
|
+
traceDir
|
|
856
|
+
);
|
|
857
|
+
});
|
|
858
|
+
await safeInstrumentation("printRunComplete(error)", () => {
|
|
859
|
+
printRunComplete(runName, runId, durationMs3, "error", printPath2);
|
|
860
|
+
});
|
|
861
|
+
throw userError;
|
|
862
|
+
}
|
|
863
|
+
const endTime = Date.now();
|
|
864
|
+
const durationMs2 = endTime - startTime;
|
|
865
|
+
const printPath = traceFilePath ?? getTraceFilePath(runId, traceDir);
|
|
866
|
+
await safeInstrumentation("writeTraceEvent(run_completed success)", async () => {
|
|
867
|
+
const completed = {
|
|
868
|
+
schemaVersion: "0.1",
|
|
869
|
+
event: "run_completed",
|
|
870
|
+
timestamp: endTime,
|
|
871
|
+
runId,
|
|
872
|
+
status: "success",
|
|
873
|
+
endTime,
|
|
874
|
+
durationMs: durationMs2
|
|
875
|
+
};
|
|
876
|
+
await writeTraceEvent(
|
|
877
|
+
prepareTraceEventForDisk(completed, traceSafety),
|
|
878
|
+
traceDir
|
|
879
|
+
);
|
|
880
|
+
});
|
|
881
|
+
await safeInstrumentation("printRunComplete(success)", () => {
|
|
882
|
+
printRunComplete(runName, runId, durationMs2, "success", printPath);
|
|
883
|
+
});
|
|
884
|
+
return result;
|
|
885
|
+
}, traceSafety);
|
|
886
|
+
}
|
|
887
|
+
|
|
888
|
+
// packages/core/src/maybe-inspect-run.ts
|
|
889
|
+
var ENABLED_ENV_VALUES = /* @__PURE__ */ new Set(["1", "true", "yes", "on", "enabled"]);
|
|
890
|
+
function isAgentInspectEnabled(value) {
|
|
891
|
+
if (value === void 0) return false;
|
|
892
|
+
const normalized = value.trim().toLowerCase();
|
|
893
|
+
if (normalized === "") return false;
|
|
894
|
+
return ENABLED_ENV_VALUES.has(normalized);
|
|
895
|
+
}
|
|
896
|
+
async function maybeInspectRun(name, fn, options) {
|
|
897
|
+
if (typeof fn !== "function") {
|
|
898
|
+
throw new TypeError("maybeInspectRun requires `fn` to be a function");
|
|
899
|
+
}
|
|
900
|
+
const enabled = options?.enabled !== void 0 ? options.enabled : isAgentInspectEnabled(process.env.AGENT_INSPECT);
|
|
901
|
+
if (!enabled) {
|
|
902
|
+
return Promise.resolve(fn());
|
|
903
|
+
}
|
|
904
|
+
return inspectRun(name, fn, options);
|
|
905
|
+
}
|
|
740
906
|
|
|
741
|
-
export { MAX_TERMINAL_DEPTH, MAX_TERMINAL_NAME_LENGTH, TERMINAL_INDENT, createInspector, createInspectorRuntime, formatTerminalName, getCurrentContext, getCurrentCorrelationMetadata, getCurrentDepth, getCurrentRunId, getCurrentRunName, getCurrentStepId, getIndent, getParentStepId, getTraceDirFromContext, getTraceSafetyFromContext, hasActiveContext, isSilentContext, printError, printFailedAt, printRunComplete, printRunStart, printStepComplete, printStepStart, renderErrorLine, renderRunSummary, renderStepLine, runWithContext, runWithStepContext };
|
|
742
|
-
//# sourceMappingURL=chunk-
|
|
743
|
-
//# sourceMappingURL=chunk-
|
|
907
|
+
export { MAX_TERMINAL_DEPTH, MAX_TERMINAL_NAME_LENGTH, TERMINAL_INDENT, TraceDirectory, createInspector, createInspectorRuntime, formatTerminalName, getCurrentContext, getCurrentCorrelationMetadata, getCurrentDepth, getCurrentRunId, getCurrentRunName, getCurrentStepId, getIndent, getParentStepId, getTraceDirFromContext, getTraceSafetyFromContext, hasActiveContext, inspectRun, isAgentInspectEnabled, isSilentContext, maybeInspectRun, printError, printFailedAt, printRunComplete, printRunStart, printStepComplete, printStepStart, renderErrorLine, renderRunSummary, renderStepLine, resolveTraceDir, runWithContext, runWithStepContext };
|
|
908
|
+
//# sourceMappingURL=chunk-A4V2H3YU.mjs.map
|
|
909
|
+
//# sourceMappingURL=chunk-A4V2H3YU.mjs.map
|