agent-inspect 6.31.30 → 6.31.32
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 +12 -0
- package/README.md +1 -1
- package/docs/CLI.md +3 -1
- package/docs/TRACE-CONTRACTS.md +2 -0
- package/package.json +2 -2
- package/packages/cli/dist/{chunk-4GTOJ3G2.mjs → chunk-PEGM6T2X.mjs} +82 -9
- package/packages/cli/dist/chunk-PEGM6T2X.mjs.map +1 -0
- package/packages/cli/dist/index.cjs +185 -33
- package/packages/cli/dist/index.cjs.map +1 -1
- package/packages/cli/dist/index.mjs +109 -30
- package/packages/cli/dist/index.mjs.map +1 -1
- package/packages/cli/dist/{src-BF74ZVDF.mjs → src-CWUJTMRD.mjs} +3 -3
- package/packages/cli/dist/{src-BF74ZVDF.mjs.map → src-CWUJTMRD.mjs.map} +1 -1
- package/packages/core/dist/advanced.cjs +4 -0
- package/packages/core/dist/advanced.cjs.map +1 -1
- package/packages/core/dist/advanced.d.cts +2 -2
- package/packages/core/dist/advanced.d.ts +2 -2
- package/packages/core/dist/advanced.mjs +9 -9
- package/packages/core/dist/checks.cjs +76 -7
- package/packages/core/dist/checks.cjs.map +1 -1
- package/packages/core/dist/checks.d.cts +2 -2
- package/packages/core/dist/checks.d.ts +2 -2
- package/packages/core/dist/checks.mjs +3 -3
- package/packages/core/dist/{chunk-BYNAJPNH.mjs → chunk-6G67ZN72.mjs} +79 -10
- package/packages/core/dist/chunk-6G67ZN72.mjs.map +1 -0
- package/packages/core/dist/{chunk-76QIWWJ5.mjs → chunk-6S666BF4.mjs} +3 -3
- package/packages/core/dist/{chunk-76QIWWJ5.mjs.map → chunk-6S666BF4.mjs.map} +1 -1
- package/packages/core/dist/{chunk-QMO3ITYF.mjs → chunk-FBPDF7HO.mjs} +3 -3
- package/packages/core/dist/{chunk-QMO3ITYF.mjs.map → chunk-FBPDF7HO.mjs.map} +1 -1
- package/packages/core/dist/{chunk-XM27TZLD.mjs → chunk-RB6WANSW.mjs} +6 -2
- package/packages/core/dist/chunk-RB6WANSW.mjs.map +1 -0
- package/packages/core/dist/{chunk-JTJN4KBJ.mjs → chunk-VIEJJ5JB.mjs} +4 -4
- package/packages/core/dist/{chunk-JTJN4KBJ.mjs.map → chunk-VIEJJ5JB.mjs.map} +1 -1
- package/packages/core/dist/exporters.cjs +89 -22
- package/packages/core/dist/exporters.cjs.map +1 -1
- package/packages/core/dist/exporters.mjs +88 -25
- package/packages/core/dist/exporters.mjs.map +1 -1
- package/packages/core/dist/{index-DACU4Dy1.d.cts → index-Ceyw5x7b.d.cts} +4 -2
- package/packages/core/dist/{index-b4tIGrzq.d.ts → index-K5Cinf1r.d.ts} +4 -2
- package/packages/core/dist/index.cjs +4 -0
- package/packages/core/dist/index.cjs.map +1 -1
- package/packages/core/dist/index.mjs +4 -4
- package/packages/core/dist/writers.cjs +4 -0
- package/packages/core/dist/writers.cjs.map +1 -1
- package/packages/core/dist/writers.mjs +1 -1
- package/packages/cli/dist/chunk-4GTOJ3G2.mjs.map +0 -1
- package/packages/core/dist/chunk-BYNAJPNH.mjs.map +0 -1
- package/packages/core/dist/chunk-XM27TZLD.mjs.map +0 -1
|
@@ -192,6 +192,10 @@ var HIGH_CONFIDENCE_CREDENTIAL_PATTERNS = [
|
|
|
192
192
|
/\b[a-z0-9_.-]+=[^;\s]+(?:;\s*[a-z0-9_.-]+=[^;\s]+)+/i,
|
|
193
193
|
/\beyJ[a-zA-Z0-9_-]{8,}\.[a-zA-Z0-9_-]{8,}\.[a-zA-Z0-9_-]{8,}\b/,
|
|
194
194
|
/\b(?:sk-(?:proj-)?[a-zA-Z0-9_-]{16,}|sk-ant-[a-zA-Z0-9_-]{16,}|AIza[0-9A-Za-z_-]{20,})\b/,
|
|
195
|
+
// Stripe secret / restricted keys use underscores (not sk-). Keep in sync with
|
|
196
|
+
// packages/redact/src/index.ts + packages/core/src/checks DEFAULT_SECRET_PATTERNS (#520).
|
|
197
|
+
/\b(?:sk|rk)_(?:live|test)_[A-Za-z0-9]{16,}\b/,
|
|
198
|
+
/\bxox[abposr]-[A-Za-z0-9-]{10,}\b/,
|
|
195
199
|
/\b(?:ghp|gho|ghu|ghs|ghr)_[A-Za-z0-9_]{20,}\b/,
|
|
196
200
|
/\b(?:AKIA|ASIA)[A-Z0-9]{16}\b/,
|
|
197
201
|
/-----BEGIN [A-Z ]*PRIVATE KEY-----[\s\S]*-----END [A-Z ]*PRIVATE KEY-----/,
|
|
@@ -831,6 +835,16 @@ function stepIdOf(event) {
|
|
|
831
835
|
const value = event.attributes?.stepId;
|
|
832
836
|
return typeof value === "string" && value.trim() !== "" ? value : void 0;
|
|
833
837
|
}
|
|
838
|
+
function attemptIdOf(event) {
|
|
839
|
+
const direct = event.attributes?.attemptId;
|
|
840
|
+
if (typeof direct === "string" && direct.trim() !== "") return direct;
|
|
841
|
+
const meta = event.attributes?.metadata;
|
|
842
|
+
if (meta && typeof meta === "object" && !Array.isArray(meta)) {
|
|
843
|
+
const nested = meta.attemptId;
|
|
844
|
+
if (typeof nested === "string" && nested.trim() !== "") return nested;
|
|
845
|
+
}
|
|
846
|
+
return void 0;
|
|
847
|
+
}
|
|
834
848
|
function lifecycleKey(event) {
|
|
835
849
|
if (event.kind === "RUN") return `run:${event.runId}`;
|
|
836
850
|
const stepId = stepIdOf(event);
|
|
@@ -840,6 +854,9 @@ function lifecycleKey(event) {
|
|
|
840
854
|
function isTerminal(status) {
|
|
841
855
|
return status === "ok" || status === "error";
|
|
842
856
|
}
|
|
857
|
+
function eventTime(event) {
|
|
858
|
+
return typeof event.timestamp === "number" ? event.timestamp : 0;
|
|
859
|
+
}
|
|
843
860
|
function cloneNode(node) {
|
|
844
861
|
return {
|
|
845
862
|
event: {
|
|
@@ -850,37 +867,87 @@ function cloneNode(node) {
|
|
|
850
867
|
depth: node.depth
|
|
851
868
|
};
|
|
852
869
|
}
|
|
870
|
+
function joinOnePair(start, terminal) {
|
|
871
|
+
const childMap = /* @__PURE__ */ new Map();
|
|
872
|
+
if (start) {
|
|
873
|
+
for (const child of start.children) {
|
|
874
|
+
childMap.set(child.event.eventId, child);
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
for (const child of terminal.children) {
|
|
878
|
+
childMap.set(child.event.eventId, child);
|
|
879
|
+
}
|
|
880
|
+
return {
|
|
881
|
+
event: {
|
|
882
|
+
...terminal.event,
|
|
883
|
+
name: start?.event.name ?? terminal.event.name,
|
|
884
|
+
kind: start?.event.kind ?? terminal.event.kind,
|
|
885
|
+
...start && attemptIdOf(terminal.event) === void 0 && attemptIdOf(start.event) ? {
|
|
886
|
+
attributes: {
|
|
887
|
+
...terminal.event.attributes,
|
|
888
|
+
attemptId: attemptIdOf(start.event)
|
|
889
|
+
}
|
|
890
|
+
} : {}
|
|
891
|
+
},
|
|
892
|
+
children: presentSiblingNodes([...childMap.values()]),
|
|
893
|
+
depth: terminal.depth
|
|
894
|
+
};
|
|
895
|
+
}
|
|
853
896
|
function joinSiblingGroup(group) {
|
|
854
897
|
if (group.length <= 1) return group;
|
|
855
|
-
const terminals = group.filter((n) => isTerminal(n.event.status));
|
|
856
|
-
const runnings = group.filter((n) => n.event.status === "running");
|
|
898
|
+
const terminals = group.filter((n) => isTerminal(n.event.status)).sort((a, b) => eventTime(a.event) - eventTime(b.event));
|
|
899
|
+
const runnings = group.filter((n) => n.event.status === "running").sort((a, b) => eventTime(a.event) - eventTime(b.event));
|
|
900
|
+
const others = group.filter(
|
|
901
|
+
(n) => !isTerminal(n.event.status) && n.event.status !== "running"
|
|
902
|
+
);
|
|
857
903
|
const terminalStatuses = new Set(terminals.map((n) => n.event.status));
|
|
858
904
|
if (terminalStatuses.size > 1) {
|
|
859
905
|
return group;
|
|
860
906
|
}
|
|
861
|
-
if (terminals.length
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
907
|
+
if (terminals.length > 1 && terminals.every((t) => attemptIdOf(t.event) === void 0) && runnings.every((r) => attemptIdOf(r.event) === void 0)) {
|
|
908
|
+
return group;
|
|
909
|
+
}
|
|
910
|
+
const usedRunning = /* @__PURE__ */ new Set();
|
|
911
|
+
const out = [];
|
|
912
|
+
for (const terminal of terminals) {
|
|
913
|
+
const terminalAttempt = attemptIdOf(terminal.event);
|
|
914
|
+
const terminalTs = eventTime(terminal.event);
|
|
915
|
+
const candidate = runnings.find((r) => {
|
|
916
|
+
if (usedRunning.has(r.event.eventId)) return false;
|
|
917
|
+
if (eventTime(r.event) > terminalTs) return false;
|
|
918
|
+
const runningAttempt = attemptIdOf(r.event);
|
|
919
|
+
if (terminalAttempt !== void 0) {
|
|
920
|
+
return runningAttempt === terminalAttempt;
|
|
868
921
|
}
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
{
|
|
872
|
-
event: {
|
|
873
|
-
...terminal.event,
|
|
874
|
-
name: start?.event.name ?? terminal.event.name,
|
|
875
|
-
kind: start?.event.kind ?? terminal.event.kind,
|
|
876
|
-
...start?.event.timestamp !== void 0 && terminal.event.durationMs === void 0 ? {} : {}
|
|
877
|
-
},
|
|
878
|
-
children: presentSiblingNodes([...childMap.values()]),
|
|
879
|
-
depth: terminal.depth
|
|
922
|
+
if (runningAttempt !== void 0) {
|
|
923
|
+
return true;
|
|
880
924
|
}
|
|
881
|
-
|
|
925
|
+
return true;
|
|
926
|
+
});
|
|
927
|
+
if (candidate) {
|
|
928
|
+
usedRunning.add(candidate.event.eventId);
|
|
929
|
+
out.push(joinOnePair(candidate, terminal));
|
|
930
|
+
} else {
|
|
931
|
+
out.push({
|
|
932
|
+
...terminal,
|
|
933
|
+
children: presentSiblingNodes(terminal.children)
|
|
934
|
+
});
|
|
935
|
+
}
|
|
936
|
+
}
|
|
937
|
+
for (const running of runnings) {
|
|
938
|
+
if (usedRunning.has(running.event.eventId)) continue;
|
|
939
|
+
out.push({
|
|
940
|
+
...running,
|
|
941
|
+
children: presentSiblingNodes(running.children)
|
|
942
|
+
});
|
|
943
|
+
}
|
|
944
|
+
for (const other of others) {
|
|
945
|
+
out.push({
|
|
946
|
+
...other,
|
|
947
|
+
children: presentSiblingNodes(other.children)
|
|
948
|
+
});
|
|
882
949
|
}
|
|
883
|
-
return
|
|
950
|
+
return out;
|
|
884
951
|
}
|
|
885
952
|
function presentSiblingNodes(nodes) {
|
|
886
953
|
const prepared = nodes.map((n) => ({
|