@workbench-ai/agent-driver 0.0.44 → 0.0.46

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.d.ts CHANGED
@@ -6,6 +6,7 @@ export * from "./conformance.js";
6
6
  export * from "./global-skills.js";
7
7
  export * from "./internal-utils.js";
8
8
  export * from "./json-rpc.js";
9
+ export * from "./local-traces.js";
9
10
  export * from "./managed-runtime.js";
10
11
  export * from "./model-config.js";
11
12
  export * from "./normalized-activity.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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alB"}
package/dist/index.js CHANGED
@@ -5,6 +5,7 @@ export * from "./conformance.js";
5
5
  export * from "./global-skills.js";
6
6
  export * from "./internal-utils.js";
7
7
  export * from "./json-rpc.js";
8
+ export * from "./local-traces.js";
8
9
  export * from "./managed-runtime.js";
9
10
  export * from "./model-config.js";
10
11
  export * from "./normalized-activity.js";
@@ -0,0 +1,126 @@
1
+ import type { JsonObject, JsonValue } from "./types.js";
2
+ export type LocalTraceTimelineEntryType = "user" | "assistant" | "tool" | "system" | "error";
3
+ export interface LocalTraceDiscoveryContext {
4
+ env?: NodeJS.ProcessEnv;
5
+ traceId?: string;
6
+ workspaceRoot?: string;
7
+ since?: Date;
8
+ limit?: number;
9
+ }
10
+ export interface LocalTraceReadContext {
11
+ env?: NodeJS.ProcessEnv;
12
+ maxTextChars?: number;
13
+ maxToolOutputChars?: number;
14
+ }
15
+ export interface LocalTraceRef {
16
+ provider: string;
17
+ traceId: string;
18
+ sourcePath: string;
19
+ profileRoot?: string;
20
+ indexPath?: string;
21
+ sessionId?: string;
22
+ title?: string;
23
+ workspaceRoot?: string;
24
+ startedAt?: string;
25
+ endedAt?: string;
26
+ updatedAt?: string;
27
+ }
28
+ export interface LocalTraceTimelineTool {
29
+ id?: string;
30
+ name?: string;
31
+ status?: "started" | "completed";
32
+ input?: JsonValue;
33
+ output?: JsonValue;
34
+ error?: string;
35
+ command?: string;
36
+ cwd?: string;
37
+ exitCode?: number;
38
+ files?: string[];
39
+ }
40
+ export interface AgentReadableTraceTimelineEntry {
41
+ index: number;
42
+ type: LocalTraceTimelineEntryType;
43
+ at?: string;
44
+ text?: string;
45
+ phase?: string;
46
+ tool?: LocalTraceTimelineTool;
47
+ raw?: {
48
+ type?: string;
49
+ source?: string;
50
+ };
51
+ }
52
+ export interface AgentReadableTraceArtifacts {
53
+ tools: string[];
54
+ commands: string[];
55
+ files: string[];
56
+ urls: string[];
57
+ errors: string[];
58
+ }
59
+ export interface AgentReadableTraceDigest {
60
+ version: 1;
61
+ provider: string;
62
+ traceId: string;
63
+ source: {
64
+ kind: "local";
65
+ path: string;
66
+ profileRoot?: string;
67
+ indexPath?: string;
68
+ };
69
+ sessionId?: string;
70
+ title?: string;
71
+ workspaceRoot?: string;
72
+ startedAt?: string;
73
+ endedAt?: string;
74
+ updatedAt?: string;
75
+ goal?: string;
76
+ timeline: AgentReadableTraceTimelineEntry[];
77
+ artifacts: AgentReadableTraceArtifacts;
78
+ counts: {
79
+ timelineEntries: number;
80
+ userMessages: number;
81
+ assistantMessages: number;
82
+ toolEvents: number;
83
+ errors: number;
84
+ };
85
+ }
86
+ export interface LocalTraceAdapter {
87
+ readonly id: string;
88
+ readonly displayName: string;
89
+ discoverLocalTraces(context?: LocalTraceDiscoveryContext): Promise<LocalTraceRef[]>;
90
+ readLocalTraceDigest(ref: LocalTraceRef, context?: LocalTraceReadContext): Promise<AgentReadableTraceDigest>;
91
+ }
92
+ export declare function readLocalTraceJsonLines(filePath: string): Promise<JsonObject[]>;
93
+ export declare function traceJsonObject(value: JsonValue | undefined): JsonObject | null;
94
+ export declare function traceJsonArray(value: JsonValue | undefined): JsonValue[];
95
+ export declare function traceString(value: JsonValue | undefined): string | null;
96
+ export declare function traceNumber(value: JsonValue | undefined): number | null;
97
+ export declare function normalizeTraceText(value: string | null | undefined): string | null;
98
+ export declare function truncateTraceText(value: string | null | undefined, maxChars?: number): string | null;
99
+ export interface TraceJsonTruncationOptions {
100
+ maxTextChars?: number;
101
+ maxDepth?: number;
102
+ maxArrayItems?: number;
103
+ maxObjectEntries?: number;
104
+ }
105
+ export declare function truncateTraceJsonValue(value: JsonValue, options?: TraceJsonTruncationOptions): JsonValue;
106
+ export declare function sortLocalTraceRefs(refs: readonly LocalTraceRef[]): LocalTraceRef[];
107
+ export declare function localTraceHomeDir(env?: NodeJS.ProcessEnv): string;
108
+ export declare function expandLocalTraceHomePath(value: string, env?: NodeJS.ProcessEnv): string;
109
+ export declare function localTraceRefIsAtOrAfter(ref: LocalTraceRef, since: Date): boolean;
110
+ export declare function localTraceRefMatchesWorkspace(ref: LocalTraceRef, workspaceRoot: string | undefined): boolean;
111
+ export declare function appendUnique(values: string[], value: string | null | undefined): void;
112
+ export declare function createEmptyTraceArtifacts(): AgentReadableTraceArtifacts;
113
+ export declare function collectTraceToolArtifacts(artifacts: AgentReadableTraceArtifacts, tool: LocalTraceTimelineTool): void;
114
+ export declare function mergeLocalTraceTimelineTool(existing: LocalTraceTimelineTool, next: LocalTraceTimelineTool): LocalTraceTimelineTool;
115
+ export declare function mergeLocalTraceRawType(existing: string | undefined, next: string): string;
116
+ export declare function collectTraceJsonArtifacts(artifacts: AgentReadableTraceArtifacts, value: JsonValue | undefined): void;
117
+ export declare function collectTraceUrls(artifacts: AgentReadableTraceArtifacts, value: string): void;
118
+ export declare function buildAgentReadableTraceDigest(args: {
119
+ provider: string;
120
+ ref: LocalTraceRef;
121
+ goal?: string;
122
+ timeline: AgentReadableTraceTimelineEntry[];
123
+ artifacts: AgentReadableTraceArtifacts;
124
+ }): AgentReadableTraceDigest;
125
+ export declare function localTraceShortHash(value: string): string;
126
+ //# sourceMappingURL=local-traces.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-traces.d.ts","sourceRoot":"","sources":["../src/local-traces.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,275 @@
1
+ import { createHash } from "node:crypto";
2
+ import { promises as fs } from "node:fs";
3
+ import os from "node:os";
4
+ import path from "node:path";
5
+ export async function readLocalTraceJsonLines(filePath) {
6
+ const text = await fs.readFile(filePath, "utf8");
7
+ const records = [];
8
+ for (const line of text.split(/\r?\n/u)) {
9
+ const trimmed = line.trim();
10
+ if (!trimmed) {
11
+ continue;
12
+ }
13
+ try {
14
+ const parsed = JSON.parse(trimmed);
15
+ const record = traceJsonObject(parsed);
16
+ if (record) {
17
+ records.push(record);
18
+ }
19
+ }
20
+ catch {
21
+ // Ignore malformed tail records from sessions that may still be active.
22
+ }
23
+ }
24
+ return records;
25
+ }
26
+ export function traceJsonObject(value) {
27
+ return value && typeof value === "object" && !Array.isArray(value)
28
+ ? value
29
+ : null;
30
+ }
31
+ export function traceJsonArray(value) {
32
+ return Array.isArray(value) ? value : [];
33
+ }
34
+ export function traceString(value) {
35
+ return typeof value === "string" && value.trim().length > 0
36
+ ? value
37
+ : null;
38
+ }
39
+ export function traceNumber(value) {
40
+ return typeof value === "number" && Number.isFinite(value) ? value : null;
41
+ }
42
+ export function normalizeTraceText(value) {
43
+ if (!value) {
44
+ return null;
45
+ }
46
+ const normalized = value.replace(/\r\n/gu, "\n").trim();
47
+ return normalized.length > 0 ? normalized : null;
48
+ }
49
+ export function truncateTraceText(value, maxChars = 4_000) {
50
+ const normalized = normalizeTraceText(value);
51
+ if (!normalized) {
52
+ return null;
53
+ }
54
+ if (normalized.length <= maxChars) {
55
+ return normalized;
56
+ }
57
+ return `${normalized.slice(0, Math.max(1, maxChars - 32)).trimEnd()}\n...[truncated]`;
58
+ }
59
+ export function truncateTraceJsonValue(value, options = {}) {
60
+ const limits = {
61
+ maxTextChars: options.maxTextChars ?? 4_000,
62
+ maxDepth: options.maxDepth ?? 6,
63
+ maxArrayItems: options.maxArrayItems ?? 50,
64
+ maxObjectEntries: options.maxObjectEntries ?? 50,
65
+ };
66
+ return truncateTraceJsonValueInner(value, limits, 0);
67
+ }
68
+ function truncateTraceJsonValueInner(value, limits, depth) {
69
+ if (typeof value === "string") {
70
+ return truncateTraceText(value, limits.maxTextChars) ?? "";
71
+ }
72
+ if (value == null || typeof value !== "object") {
73
+ return value;
74
+ }
75
+ if (depth >= limits.maxDepth) {
76
+ return "[truncated nested JSON]";
77
+ }
78
+ if (Array.isArray(value)) {
79
+ const result = value
80
+ .slice(0, limits.maxArrayItems)
81
+ .map((entry) => truncateTraceJsonValueInner(entry, limits, depth + 1));
82
+ if (value.length > limits.maxArrayItems) {
83
+ result.push(`...[${value.length - limits.maxArrayItems} more item(s) truncated]`);
84
+ }
85
+ return result;
86
+ }
87
+ const result = {};
88
+ const entries = Object.entries(value);
89
+ for (const [key, entry] of entries.slice(0, limits.maxObjectEntries)) {
90
+ result[key] = truncateTraceJsonValueInner(entry, limits, depth + 1);
91
+ }
92
+ if (entries.length > limits.maxObjectEntries) {
93
+ result.__truncated = `${entries.length - limits.maxObjectEntries} more field(s) truncated`;
94
+ }
95
+ return result;
96
+ }
97
+ export function sortLocalTraceRefs(refs) {
98
+ return [...refs].sort((left, right) => {
99
+ const leftTime = Date.parse(left.updatedAt ?? left.endedAt ?? left.startedAt ?? "");
100
+ const rightTime = Date.parse(right.updatedAt ?? right.endedAt ?? right.startedAt ?? "");
101
+ const leftValue = Number.isFinite(leftTime) ? leftTime : 0;
102
+ const rightValue = Number.isFinite(rightTime) ? rightTime : 0;
103
+ return rightValue - leftValue || left.traceId.localeCompare(right.traceId);
104
+ });
105
+ }
106
+ export function localTraceHomeDir(env = process.env) {
107
+ return env.HOME?.trim() || os.homedir();
108
+ }
109
+ export function expandLocalTraceHomePath(value, env = process.env) {
110
+ if (value === "~") {
111
+ return localTraceHomeDir(env);
112
+ }
113
+ if (value.startsWith("~/")) {
114
+ return path.join(localTraceHomeDir(env), value.slice(2));
115
+ }
116
+ return value;
117
+ }
118
+ export function localTraceRefIsAtOrAfter(ref, since) {
119
+ const value = Date.parse(ref.updatedAt ?? ref.endedAt ?? ref.startedAt ?? "");
120
+ return Number.isFinite(value) && value >= since.getTime();
121
+ }
122
+ export function localTraceRefMatchesWorkspace(ref, workspaceRoot) {
123
+ if (!workspaceRoot) {
124
+ return true;
125
+ }
126
+ if (!ref.workspaceRoot) {
127
+ return false;
128
+ }
129
+ const requested = path.resolve(workspaceRoot);
130
+ const candidate = path.resolve(ref.workspaceRoot);
131
+ const relative = path.relative(requested, candidate);
132
+ return relative === "" || (!relative.startsWith("..") && !path.isAbsolute(relative));
133
+ }
134
+ export function appendUnique(values, value) {
135
+ const normalized = normalizeTraceText(value);
136
+ if (!normalized || values.includes(normalized)) {
137
+ return;
138
+ }
139
+ values.push(normalized);
140
+ }
141
+ export function createEmptyTraceArtifacts() {
142
+ return {
143
+ tools: [],
144
+ commands: [],
145
+ files: [],
146
+ urls: [],
147
+ errors: [],
148
+ };
149
+ }
150
+ export function collectTraceToolArtifacts(artifacts, tool) {
151
+ appendUnique(artifacts.tools, tool.name);
152
+ appendUnique(artifacts.commands, tool.command);
153
+ appendUnique(artifacts.files, tool.cwd);
154
+ appendUnique(artifacts.errors, tool.error);
155
+ for (const file of tool.files ?? []) {
156
+ appendUnique(artifacts.files, file);
157
+ }
158
+ collectTraceJsonArtifacts(artifacts, tool.input);
159
+ collectTraceJsonArtifacts(artifacts, tool.output);
160
+ }
161
+ export function mergeLocalTraceTimelineTool(existing, next) {
162
+ const merged = { ...existing };
163
+ if (next.status) {
164
+ merged.status = next.status;
165
+ }
166
+ if (next.id) {
167
+ merged.id = next.id;
168
+ }
169
+ if (next.name) {
170
+ merged.name = next.name;
171
+ }
172
+ if (next.input !== undefined) {
173
+ merged.input = next.input;
174
+ }
175
+ if (next.output !== undefined) {
176
+ merged.output = next.output;
177
+ }
178
+ if (next.error) {
179
+ merged.error = next.error;
180
+ }
181
+ if (next.command) {
182
+ merged.command = next.command;
183
+ }
184
+ if (next.cwd) {
185
+ merged.cwd = next.cwd;
186
+ }
187
+ if (typeof next.exitCode === "number") {
188
+ merged.exitCode = next.exitCode;
189
+ }
190
+ if (next.files?.length) {
191
+ const files = [...(merged.files ?? [])];
192
+ for (const file of next.files) {
193
+ appendUnique(files, file);
194
+ }
195
+ merged.files = files;
196
+ }
197
+ return merged;
198
+ }
199
+ export function mergeLocalTraceRawType(existing, next) {
200
+ if (!existing || existing === next) {
201
+ return next;
202
+ }
203
+ if (existing.split("+").includes(next)) {
204
+ return existing;
205
+ }
206
+ return `${existing}+${next}`;
207
+ }
208
+ export function collectTraceJsonArtifacts(artifacts, value) {
209
+ if (value == null) {
210
+ return;
211
+ }
212
+ if (typeof value === "string") {
213
+ collectTraceUrls(artifacts, value);
214
+ return;
215
+ }
216
+ if (Array.isArray(value)) {
217
+ for (const entry of value) {
218
+ collectTraceJsonArtifacts(artifacts, entry);
219
+ }
220
+ return;
221
+ }
222
+ if (typeof value !== "object") {
223
+ return;
224
+ }
225
+ for (const [key, entry] of Object.entries(value)) {
226
+ if (typeof entry === "string") {
227
+ if (/^(?:path|file|filename|cwd|workdir)$/iu.test(key)) {
228
+ appendUnique(artifacts.files, entry);
229
+ }
230
+ if (/^(?:url|uri)$/iu.test(key)) {
231
+ appendUnique(artifacts.urls, entry);
232
+ }
233
+ collectTraceUrls(artifacts, entry);
234
+ continue;
235
+ }
236
+ collectTraceJsonArtifacts(artifacts, entry);
237
+ }
238
+ }
239
+ export function collectTraceUrls(artifacts, value) {
240
+ for (const match of value.matchAll(/https?:\/\/[^\s)"']+/gu)) {
241
+ appendUnique(artifacts.urls, match[0]);
242
+ }
243
+ }
244
+ export function buildAgentReadableTraceDigest(args) {
245
+ return {
246
+ version: 1,
247
+ provider: args.provider,
248
+ traceId: args.ref.traceId,
249
+ source: {
250
+ kind: "local",
251
+ path: args.ref.sourcePath,
252
+ ...(args.ref.profileRoot ? { profileRoot: args.ref.profileRoot } : {}),
253
+ ...(args.ref.indexPath ? { indexPath: args.ref.indexPath } : {}),
254
+ },
255
+ ...(args.ref.sessionId ? { sessionId: args.ref.sessionId } : {}),
256
+ ...(args.ref.title ? { title: args.ref.title } : {}),
257
+ ...(args.ref.workspaceRoot ? { workspaceRoot: args.ref.workspaceRoot } : {}),
258
+ ...(args.ref.startedAt ? { startedAt: args.ref.startedAt } : {}),
259
+ ...(args.ref.endedAt ? { endedAt: args.ref.endedAt } : {}),
260
+ ...(args.ref.updatedAt ? { updatedAt: args.ref.updatedAt } : {}),
261
+ ...(args.goal ? { goal: args.goal } : {}),
262
+ timeline: args.timeline,
263
+ artifacts: args.artifacts,
264
+ counts: {
265
+ timelineEntries: args.timeline.length,
266
+ userMessages: args.timeline.filter((entry) => entry.type === "user").length,
267
+ assistantMessages: args.timeline.filter((entry) => entry.type === "assistant").length,
268
+ toolEvents: args.timeline.filter((entry) => entry.type === "tool").length,
269
+ errors: args.timeline.filter((entry) => entry.type === "error").length,
270
+ },
271
+ };
272
+ }
273
+ export function localTraceShortHash(value) {
274
+ return createHash("sha256").update(value).digest("hex").slice(0, 12);
275
+ }
package/package.json CHANGED
@@ -1,12 +1,7 @@
1
1
  {
2
2
  "name": "@workbench-ai/agent-driver",
3
- "version": "0.0.44",
3
+ "version": "0.0.46",
4
4
  "type": "module",
5
- "repository": {
6
- "type": "git",
7
- "url": "git+https://github.com/workbench-ai/workbench-monorepo.git",
8
- "directory": "products/agent-drivers/packages/core"
9
- },
10
5
  "publishConfig": {
11
6
  "registry": "https://registry.npmjs.org/",
12
7
  "access": "public"