@harness-kernel/core 0.2.0 → 0.3.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/agent/context.d.ts +2 -3
- package/dist/agent/context.js +1 -1
- package/dist/agent/event.d.ts +3 -2
- package/dist/agent/event.js +6 -2
- package/dist/agent/hook.d.ts +3 -4
- package/dist/agent/hook.js +1 -1
- package/dist/agent/mode.d.ts +2 -3
- package/dist/agent/mode.js +1 -1
- package/dist/agent/role.js +1 -1
- package/dist/agent/session.d.ts +3 -4
- package/dist/agent/session.js +8 -2
- package/dist/agent/tool.d.ts +39 -3
- package/dist/agent/tool.js +8 -2
- package/dist/agent.d.ts +6 -6
- package/dist/{approval-D_G2w-fW.d.ts → approval-Ch0LwJFM.d.ts} +18 -13
- package/dist/chunk-2NQ3JL7K.js +502 -0
- package/dist/chunk-2NQ3JL7K.js.map +1 -0
- package/dist/{chunk-JIJHGB6H.js → chunk-3QOAFCCZ.js} +24 -2
- package/dist/chunk-3QOAFCCZ.js.map +1 -0
- package/dist/chunk-NCSQEUQC.js +37 -0
- package/dist/chunk-NCSQEUQC.js.map +1 -0
- package/dist/{chunk-B4Q6CPYO.js → chunk-TCHZYK5Y.js} +3 -1
- package/dist/{chunk-B4Q6CPYO.js.map → chunk-TCHZYK5Y.js.map} +1 -1
- package/dist/{chunk-37PIMSLG.js → chunk-UKXJIKED.js} +365 -136
- package/dist/chunk-UKXJIKED.js.map +1 -0
- package/dist/{context-BfpLqV11.d.ts → context-Bz9C_rL9.d.ts} +88 -3
- package/dist/errors-DHHy8V3O.d.ts +6 -0
- package/dist/errors-hpkW3tfR.d.ts +112 -0
- package/dist/{event-CKV4EeZ3.d.ts → event-DMBY-R6h.d.ts} +33 -4
- package/dist/{hook-CfBbhUQf.d.ts → hook-DD7uuzE3.d.ts} +2 -2
- package/dist/index.d.ts +21 -15
- package/dist/index.js +19 -6
- package/dist/metrics-DMN8bfY6.d.ts +23 -0
- package/dist/{model-provider-Ch7tzk1x.d.ts → model-provider-DGkLQJWP.d.ts} +6 -4
- package/dist/runner/approval.d.ts +7 -7
- package/dist/runner/event.d.ts +3 -2
- package/dist/runner/event.js +6 -2
- package/dist/runner/logging.d.ts +7 -3
- package/dist/runner/logging.js +11 -1
- package/dist/runner/model-provider.d.ts +6 -6
- package/dist/runner/storage.d.ts +181 -4
- package/dist/{runner-BzEf0lAV.d.ts → runner-CZHeMHKV.d.ts} +8 -5
- package/dist/runner.d.ts +9 -8
- package/dist/runner.js +11 -5
- package/package.json +2 -2
- package/dist/chunk-37PIMSLG.js.map +0 -1
- package/dist/chunk-JIJHGB6H.js.map +0 -1
- package/dist/chunk-Q44U2CMM.js +0 -239
- package/dist/chunk-Q44U2CMM.js.map +0 -1
- package/dist/events-D4xcDi53.d.ts +0 -69
- package/dist/storage-DCZE_hES.d.ts +0 -200
- package/dist/tool-errors-CygY1Nba.d.ts +0 -27
- package/dist/types-BPmsw-mF.d.ts +0 -80
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/runtime/events.ts"],"sourcesContent":["import { HarnessEvent } from \"./types.js\";\nimport { s } from \"../schema/index.js\";\n\nexport class RunStartEvent extends HarnessEvent<{\n agentKey: string;\n modeId: string;\n workDir: string;\n outputDir?: string;\n}> {\n static override type = \"run:start\";\n static override schema = s.object({\n agentKey: s.string().min(1),\n modeId: s.string().min(1),\n workDir: s.string(),\n outputDir: s.string().optional(),\n });\n}\n\nexport class TurnStartEvent extends HarnessEvent<{\n turnId: string;\n input: string;\n}> {\n static override type = \"turn:start\";\n static override schema = s.object({\n turnId: s.string().min(1),\n input: s.string(),\n });\n}\n\nexport class ContextReadyEvent extends HarnessEvent<{\n snapshotId: string;\n providerCount: number;\n contributionCount: number;\n}> {\n static override type = \"context:ready\";\n static override schema = s.object({\n snapshotId: s.string().min(1),\n providerCount: s.number().int().min(0),\n contributionCount: s.number().int().min(0),\n });\n}\n\nexport class ModelBeforeEvent extends HarnessEvent<{\n model: string;\n messageCount: number;\n}> {\n static override type = \"model:before\";\n static override schema = s.object({\n model: s.string().min(1),\n messageCount: s.number().int().min(0),\n });\n}\n\nexport class ModelAfterEvent extends HarnessEvent<{\n model: string;\n content: string;\n usage?: unknown;\n finishReason?: string;\n}> {\n static override type = \"model:after\";\n static override schema = s.object({\n model: s.string().min(1),\n content: s.string(),\n usage: s.unknown().optional(),\n finishReason: s.string().optional(),\n });\n}\n\nexport class ToolStartEvent extends HarnessEvent<{\n id: string;\n name: string;\n args: unknown;\n}> {\n static override type = \"tool:start\";\n static override schema = s.object({\n id: s.string().min(1),\n name: s.string().min(1),\n args: s.unknown(),\n });\n}\n\nexport class ToolEndEvent extends HarnessEvent<{\n id: string;\n name: string;\n durationMs: number;\n result: unknown;\n}> {\n static override type = \"tool:end\";\n static override schema = s.object({\n id: s.string().min(1),\n name: s.string().min(1),\n durationMs: s.number().min(0),\n result: s.unknown(),\n });\n}\n\nexport class TurnEndEvent extends HarnessEvent<{\n turnId: string;\n finalAnswer: string;\n}> {\n static override type = \"turn:end\";\n static override schema = s.object({\n turnId: s.string().min(1),\n finalAnswer: s.string(),\n });\n}\n\nexport class RunEndEvent extends HarnessEvent<{\n metrics: unknown;\n finalAnswer: string;\n}> {\n static override type = \"run:end\";\n static override schema = s.object({\n metrics: s.unknown(),\n finalAnswer: s.string(),\n });\n}\n\nexport class ErrorEvent extends HarnessEvent<{\n message: string;\n recoverable?: boolean;\n details?: unknown;\n}> {\n static override type = \"error\";\n static override schema = s.object({\n message: s.string(),\n recoverable: s.boolean().optional(),\n details: s.unknown().optional(),\n });\n}\n\nexport class MessageStartEvent extends HarnessEvent<{\n role: string;\n}> {\n static override type = \"message:start\";\n static override schema = s.object({\n role: s.string().min(1),\n });\n}\n\nexport class MessageDeltaEvent extends HarnessEvent<{\n role: \"assistant\";\n text: string;\n}> {\n static override type = \"message:delta\";\n static override schema = s.object({\n role: s.literal(\"assistant\"),\n text: s.string(),\n });\n}\n\nexport class MessageEndEvent extends HarnessEvent<{\n message: unknown;\n}> {\n static override type = \"message:end\";\n static override schema = s.object({\n message: s.unknown(),\n });\n}\n\nexport class ToolApprovalRequestedEvent extends HarnessEvent<{\n id: string;\n name: string;\n args: unknown;\n modeId?: string;\n risk?: string;\n permissions?: unknown[];\n}> {\n static override type = \"tool:approval_requested\";\n static override schema = s.object({\n id: s.string().min(1),\n name: s.string().min(1),\n args: s.unknown(),\n modeId: s.string().optional(),\n risk: s.string().optional(),\n permissions: s.array(s.unknown()).optional(),\n });\n}\n\nexport class ToolApprovalResolvedEvent extends HarnessEvent<{\n id: string;\n name: string;\n args: unknown;\n decision: \"approved\" | \"denied\";\n modeId?: string;\n}> {\n static override type = \"tool:approval_resolved\";\n static override schema = s.object({\n id: s.string().min(1),\n name: s.string().min(1),\n args: s.unknown(),\n decision: s.enum([\"approved\", \"denied\"] as const),\n modeId: s.string().optional(),\n });\n}\n\nexport class ModeChangedEvent extends HarnessEvent<{\n previousMode: string;\n mode: string;\n input?: unknown;\n}> {\n static override type = \"mode:changed\";\n static override schema = s.object({\n previousMode: s.string().min(1),\n mode: s.string().min(1),\n input: s.unknown().optional(),\n });\n}\n\nexport class SnapshotCreatedEvent extends HarnessEvent<{\n snapshot: unknown;\n}> {\n static override type = \"snapshot:created\";\n static override schema = s.object({\n snapshot: s.unknown(),\n });\n}\n\nexport class SnapshotRestoredEvent extends HarnessEvent<{\n snapshot: unknown;\n}> {\n static override type = \"snapshot:restored\";\n static override schema = s.object({\n snapshot: s.unknown(),\n });\n}\n\nexport class SnapshotDeletedEvent extends HarnessEvent<{\n snapshot: unknown;\n}> {\n static override type = \"snapshot:deleted\";\n static override schema = s.object({\n snapshot: s.unknown(),\n });\n}\n\nexport class TranscriptCursorChangedEvent extends HarnessEvent<{\n previousCursor: unknown;\n cursor: unknown;\n}> {\n static override type = \"transcript:cursor_changed\";\n static override schema = s.object({\n previousCursor: s.unknown(),\n cursor: s.unknown(),\n });\n}\n\nexport const runtimeEventClasses = [\n RunStartEvent,\n TurnStartEvent,\n ContextReadyEvent,\n ModelBeforeEvent,\n ModelAfterEvent,\n ToolStartEvent,\n ToolEndEvent,\n TurnEndEvent,\n RunEndEvent,\n ErrorEvent,\n MessageStartEvent,\n MessageDeltaEvent,\n MessageEndEvent,\n ToolApprovalRequestedEvent,\n ToolApprovalResolvedEvent,\n ModeChangedEvent,\n SnapshotCreatedEvent,\n SnapshotRestoredEvent,\n SnapshotDeletedEvent,\n TranscriptCursorChangedEvent,\n];\n"],"mappings":"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","names":[]}
|
package/dist/chunk-Q44U2CMM.js
DELETED
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
// src/logging/types.ts
|
|
2
|
-
var HarnessLog = class {
|
|
3
|
-
};
|
|
4
|
-
var HarnessLogSink = class {
|
|
5
|
-
};
|
|
6
|
-
|
|
7
|
-
// src/logging/sinks/shared.ts
|
|
8
|
-
var levelOrder = {
|
|
9
|
-
silent: 0,
|
|
10
|
-
error: 1,
|
|
11
|
-
warn: 2,
|
|
12
|
-
info: 3,
|
|
13
|
-
debug: 4
|
|
14
|
-
};
|
|
15
|
-
function shouldWriteLog(recordLevel, configuredLevel) {
|
|
16
|
-
const level = configuredLevel ?? "silent";
|
|
17
|
-
return level !== "silent" && levelOrder[recordLevel] <= levelOrder[level];
|
|
18
|
-
}
|
|
19
|
-
function consoleMethod(level) {
|
|
20
|
-
if (level === "error") return "error";
|
|
21
|
-
if (level === "warn") return "warn";
|
|
22
|
-
return "log";
|
|
23
|
-
}
|
|
24
|
-
function formatValue(value) {
|
|
25
|
-
if (typeof value === "string") return value;
|
|
26
|
-
if (typeof value === "number" || typeof value === "boolean") return String(value);
|
|
27
|
-
if (value == null) return String(value);
|
|
28
|
-
return JSON.stringify(value);
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
// src/logging/sinks/console.ts
|
|
32
|
-
var ConsoleLogSink = class extends HarnessLogSink {
|
|
33
|
-
format;
|
|
34
|
-
level;
|
|
35
|
-
target;
|
|
36
|
-
constructor(options = {}) {
|
|
37
|
-
super();
|
|
38
|
-
this.format = options.format ?? "pretty";
|
|
39
|
-
this.level = options.level;
|
|
40
|
-
this.target = options.console ?? console;
|
|
41
|
-
}
|
|
42
|
-
write(record) {
|
|
43
|
-
if (this.level && !shouldWriteLog(record.level, this.level)) return;
|
|
44
|
-
const method = consoleMethod(record.level);
|
|
45
|
-
if (this.format === "json") {
|
|
46
|
-
this.target[method](JSON.stringify(record));
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
const fields = Object.entries(record.fields ?? {}).map(([key, value]) => `${key}=${formatValue(value)}`).join(" ");
|
|
50
|
-
const context = [
|
|
51
|
-
record.sessionId ? `session=${record.sessionId}` : void 0,
|
|
52
|
-
record.runId ? `run=${record.runId}` : void 0,
|
|
53
|
-
record.durationMs !== void 0 ? `durationMs=${record.durationMs}` : void 0
|
|
54
|
-
].filter(Boolean).join(" ");
|
|
55
|
-
const suffix = [fields, context].filter(Boolean).join(" ");
|
|
56
|
-
this.target[method](`[${record.level}] ${record.message}${suffix ? ` ${suffix}` : ""}`);
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
// src/logging/sinks/memory.ts
|
|
61
|
-
var MemoryLogSink = class extends HarnessLogSink {
|
|
62
|
-
records = [];
|
|
63
|
-
level;
|
|
64
|
-
constructor(options = {}) {
|
|
65
|
-
super();
|
|
66
|
-
this.level = options.level;
|
|
67
|
-
}
|
|
68
|
-
write(record) {
|
|
69
|
-
if (this.level && !shouldWriteLog(record.level, this.level)) return;
|
|
70
|
-
this.records.push(record);
|
|
71
|
-
}
|
|
72
|
-
clear() {
|
|
73
|
-
this.records.length = 0;
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
// src/logging/redaction.ts
|
|
78
|
-
var defaultRedactKeys = [
|
|
79
|
-
"password",
|
|
80
|
-
"token",
|
|
81
|
-
"apiKey",
|
|
82
|
-
"authorization",
|
|
83
|
-
"secret",
|
|
84
|
-
"cookie",
|
|
85
|
-
"setCookie"
|
|
86
|
-
];
|
|
87
|
-
function normalizeKey(key) {
|
|
88
|
-
return key.replace(/[^a-zA-Z0-9]/g, "").toLowerCase();
|
|
89
|
-
}
|
|
90
|
-
function shouldRedactKey(key, keys) {
|
|
91
|
-
const normalized = normalizeKey(key);
|
|
92
|
-
return keys.some((candidate) => {
|
|
93
|
-
const sensitive = normalizeKey(candidate);
|
|
94
|
-
return normalized === sensitive || normalized.includes(sensitive);
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
function redactError(error) {
|
|
98
|
-
return {
|
|
99
|
-
name: error.name,
|
|
100
|
-
message: error.message,
|
|
101
|
-
stack: error.stack
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
function redactValue(value, config = {}, seen = /* @__PURE__ */ new WeakSet()) {
|
|
105
|
-
const keys = config.keys ?? defaultRedactKeys;
|
|
106
|
-
const replacement = config.replacement ?? "[redacted]";
|
|
107
|
-
if (value instanceof Error) return redactError(value);
|
|
108
|
-
if (value === null || value === void 0) return value;
|
|
109
|
-
if (typeof value !== "object") return value;
|
|
110
|
-
if (seen.has(value)) return "[circular]";
|
|
111
|
-
seen.add(value);
|
|
112
|
-
if (Array.isArray(value)) {
|
|
113
|
-
return value.map((item) => redactValue(item, config, seen));
|
|
114
|
-
}
|
|
115
|
-
const output = {};
|
|
116
|
-
for (const [key, item] of Object.entries(value)) {
|
|
117
|
-
output[key] = shouldRedactKey(key, keys) ? replacement : redactValue(item, config, seen);
|
|
118
|
-
}
|
|
119
|
-
return output;
|
|
120
|
-
}
|
|
121
|
-
function summarizeValue(value, config = {}) {
|
|
122
|
-
const keys = config.keys ?? defaultRedactKeys;
|
|
123
|
-
const replacement = config.replacement ?? "[redacted]";
|
|
124
|
-
const visit = (item, key) => {
|
|
125
|
-
if (key && shouldRedactKey(key, keys)) return replacement;
|
|
126
|
-
if (item instanceof Error) return { name: item.name, message: item.message };
|
|
127
|
-
if (item === null) return "null";
|
|
128
|
-
if (item === void 0) return "undefined";
|
|
129
|
-
if (typeof item === "string") return `string(${item.length})`;
|
|
130
|
-
if (typeof item === "number" || typeof item === "boolean") return item;
|
|
131
|
-
if (typeof item === "bigint") return `${item.toString()}n`;
|
|
132
|
-
if (typeof item === "symbol") return "symbol";
|
|
133
|
-
if (typeof item === "function") return "function";
|
|
134
|
-
if (Array.isArray(item)) return `array(${item.length})`;
|
|
135
|
-
if (typeof item === "object") {
|
|
136
|
-
const objectKeys = Object.keys(item).map((objectKey) => shouldRedactKey(objectKey, keys) ? replacement : objectKey);
|
|
137
|
-
return `object(${objectKeys.slice(0, 8).join(",")}${objectKeys.length > 8 ? ",..." : ""})`;
|
|
138
|
-
}
|
|
139
|
-
return String(item);
|
|
140
|
-
};
|
|
141
|
-
if (value && typeof value === "object" && !Array.isArray(value) && !(value instanceof Error)) {
|
|
142
|
-
const output = {};
|
|
143
|
-
for (const [key, item] of Object.entries(value)) output[key] = visit(item, key);
|
|
144
|
-
return output;
|
|
145
|
-
}
|
|
146
|
-
return visit(value);
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
// src/runtime/id.ts
|
|
150
|
-
var sequence = 0;
|
|
151
|
-
function randomId() {
|
|
152
|
-
const cryptoValue = globalThis.crypto;
|
|
153
|
-
if (cryptoValue?.randomUUID) return cryptoValue.randomUUID();
|
|
154
|
-
sequence += 1;
|
|
155
|
-
return `id_${Date.now().toString(36)}_${sequence.toString(36)}`;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
// src/logging/normalize.ts
|
|
159
|
-
function nowIso() {
|
|
160
|
-
return (/* @__PURE__ */ new Date()).toISOString();
|
|
161
|
-
}
|
|
162
|
-
function plainObject(value) {
|
|
163
|
-
if (!value || typeof value !== "object" || Array.isArray(value) || value instanceof Error) return void 0;
|
|
164
|
-
return value;
|
|
165
|
-
}
|
|
166
|
-
function normalizeHarnessLog(logClass, fields, context = {}, redaction = {}) {
|
|
167
|
-
const log = new logClass();
|
|
168
|
-
const originalFields = log.redact ? log.redact(fields) : fields;
|
|
169
|
-
const originalError = originalFields instanceof Error ? originalFields : originalFields && typeof originalFields === "object" && "error" in originalFields && originalFields.error instanceof Error ? originalFields.error : void 0;
|
|
170
|
-
const redactedFields = redactValue(originalFields, redaction);
|
|
171
|
-
const fieldsObject = plainObject(redactedFields);
|
|
172
|
-
return {
|
|
173
|
-
id: randomId(),
|
|
174
|
-
at: nowIso(),
|
|
175
|
-
level: log.levelFor?.(redactedFields) ?? log.level,
|
|
176
|
-
category: log.category,
|
|
177
|
-
type: logClass.name,
|
|
178
|
-
message: log.message(redactedFields),
|
|
179
|
-
sessionId: context.sessionId,
|
|
180
|
-
runId: context.runId,
|
|
181
|
-
turnId: context.turnId,
|
|
182
|
-
modeId: context.modeId,
|
|
183
|
-
branchId: context.branchId,
|
|
184
|
-
source: context.source ?? { kind: "runtime" },
|
|
185
|
-
correlationId: context.correlationId,
|
|
186
|
-
causationId: context.causationId,
|
|
187
|
-
spanId: context.spanId,
|
|
188
|
-
parentSpanId: context.parentSpanId,
|
|
189
|
-
durationMs: context.durationMs,
|
|
190
|
-
fields: fieldsObject,
|
|
191
|
-
error: originalError ? redactError(originalError) : void 0
|
|
192
|
-
};
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
// src/logging/index.ts
|
|
196
|
-
var AgentDebugLog = class extends HarnessLog {
|
|
197
|
-
level = "debug";
|
|
198
|
-
category = "agent";
|
|
199
|
-
message(fields) {
|
|
200
|
-
return fields.message;
|
|
201
|
-
}
|
|
202
|
-
};
|
|
203
|
-
var AgentInfoLog = class extends HarnessLog {
|
|
204
|
-
level = "info";
|
|
205
|
-
category = "agent";
|
|
206
|
-
message(fields) {
|
|
207
|
-
return fields.message;
|
|
208
|
-
}
|
|
209
|
-
};
|
|
210
|
-
var AgentWarnLog = class extends HarnessLog {
|
|
211
|
-
level = "warn";
|
|
212
|
-
category = "agent";
|
|
213
|
-
message(fields) {
|
|
214
|
-
return fields.message;
|
|
215
|
-
}
|
|
216
|
-
};
|
|
217
|
-
var AgentErrorLog = class extends HarnessLog {
|
|
218
|
-
level = "error";
|
|
219
|
-
category = "agent";
|
|
220
|
-
message(fields) {
|
|
221
|
-
return fields.message;
|
|
222
|
-
}
|
|
223
|
-
};
|
|
224
|
-
|
|
225
|
-
export {
|
|
226
|
-
HarnessLog,
|
|
227
|
-
HarnessLogSink,
|
|
228
|
-
randomId,
|
|
229
|
-
summarizeValue,
|
|
230
|
-
normalizeHarnessLog,
|
|
231
|
-
shouldWriteLog,
|
|
232
|
-
ConsoleLogSink,
|
|
233
|
-
MemoryLogSink,
|
|
234
|
-
AgentDebugLog,
|
|
235
|
-
AgentInfoLog,
|
|
236
|
-
AgentWarnLog,
|
|
237
|
-
AgentErrorLog
|
|
238
|
-
};
|
|
239
|
-
//# sourceMappingURL=chunk-Q44U2CMM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/logging/types.ts","../src/logging/sinks/shared.ts","../src/logging/sinks/console.ts","../src/logging/sinks/memory.ts","../src/logging/redaction.ts","../src/runtime/id.ts","../src/logging/normalize.ts","../src/logging/index.ts"],"sourcesContent":["export type HarnessLogLevel = \"debug\" | \"info\" | \"warn\" | \"error\";\nexport type HarnessLoggingLevel = \"silent\" | HarnessLogLevel;\n\nexport type HarnessLogCategory =\n | \"session\"\n | \"run\"\n | \"turn\"\n | \"context\"\n | \"model\"\n | \"tool\"\n | \"approval\"\n | \"snapshot\"\n | \"transcript\"\n | \"storage\"\n | \"agent\";\n\nexport type HarnessLogSourceKind =\n | \"runtime\"\n | \"model_provider\"\n | \"tool\"\n | \"hook\"\n | \"context_provider\"\n | \"mode\"\n | \"user\"\n | \"custom\";\n\nexport interface HarnessLogSource {\n kind: HarnessLogSourceKind;\n id?: string;\n type?: string;\n name?: string;\n label?: string;\n}\n\nexport interface HarnessLogError {\n name?: string;\n message: string;\n stack?: string;\n}\n\nexport interface HarnessLogRecord {\n id: string;\n at: string;\n level: HarnessLogLevel;\n category: HarnessLogCategory;\n type: string;\n message: string;\n sessionId?: string;\n runId?: string;\n turnId?: string;\n modeId?: string;\n branchId?: string;\n source: HarnessLogSource;\n correlationId?: string;\n causationId?: string;\n spanId?: string;\n parentSpanId?: string;\n durationMs?: number;\n fields?: Record<string, unknown>;\n error?: HarnessLogError;\n}\n\nexport abstract class HarnessLog<TFields = Record<string, unknown>> {\n abstract level: HarnessLogLevel;\n abstract category: HarnessLogCategory;\n abstract message(fields: TFields): string;\n levelFor?(fields: TFields): HarnessLogLevel;\n redact?(fields: TFields): TFields;\n}\n\nexport type HarnessLogClass<TFields = Record<string, unknown>> = new () => HarnessLog<TFields>;\n\nexport abstract class HarnessLogSink {\n abstract write(record: HarnessLogRecord): void | Promise<void>;\n flush?(): void | Promise<void>;\n close?(): void | Promise<void>;\n}\n\nexport interface HarnessLoggingConfig {\n level?: HarnessLoggingLevel;\n sinks?: HarnessLogSink[];\n format?: \"pretty\" | \"json\";\n modelDeltas?: \"none\" | \"summary\" | \"full\" | boolean;\n events?: boolean;\n redact?: {\n keys?: string[];\n replacement?: string;\n };\n}\n\nexport interface HarnessRedactionConfig {\n keys?: string[];\n replacement?: string;\n}\n\nexport interface HarnessLogContext {\n sessionId?: string;\n runId?: string;\n turnId?: string;\n modeId?: string;\n branchId?: string;\n source?: HarnessLogSource;\n correlationId?: string;\n causationId?: string;\n spanId?: string;\n parentSpanId?: string;\n durationMs?: number;\n}\n","import type { HarnessLogLevel, HarnessLoggingLevel } from \"../types.js\";\n\nconst levelOrder: Record<HarnessLoggingLevel, number> = {\n silent: 0,\n error: 1,\n warn: 2,\n info: 3,\n debug: 4,\n};\n\nexport function shouldWriteLog(recordLevel: HarnessLogLevel, configuredLevel: HarnessLoggingLevel | undefined): boolean {\n const level = configuredLevel ?? \"silent\";\n return level !== \"silent\" && levelOrder[recordLevel] <= levelOrder[level];\n}\n\nexport function consoleMethod(level: HarnessLogLevel): \"error\" | \"warn\" | \"log\" {\n if (level === \"error\") return \"error\";\n if (level === \"warn\") return \"warn\";\n return \"log\";\n}\n\nexport function formatValue(value: unknown): string {\n if (typeof value === \"string\") return value;\n if (typeof value === \"number\" || typeof value === \"boolean\") return String(value);\n if (value == null) return String(value);\n return JSON.stringify(value);\n}\n","import { HarnessLogSink, type HarnessLogRecord, type HarnessLoggingLevel } from \"../types.js\";\nimport { consoleMethod, formatValue, shouldWriteLog } from \"./shared.js\";\n\nexport interface ConsoleLogSinkOptions {\n format?: \"pretty\" | \"json\";\n level?: HarnessLoggingLevel;\n console?: Pick<Console, \"log\" | \"warn\" | \"error\">;\n}\n\nexport class ConsoleLogSink extends HarnessLogSink {\n private readonly format: \"pretty\" | \"json\";\n private readonly level?: HarnessLoggingLevel;\n private readonly target: Pick<Console, \"log\" | \"warn\" | \"error\">;\n\n constructor(options: ConsoleLogSinkOptions = {}) {\n super();\n this.format = options.format ?? \"pretty\";\n this.level = options.level;\n this.target = options.console ?? console;\n }\n\n write(record: HarnessLogRecord): void {\n if (this.level && !shouldWriteLog(record.level, this.level)) return;\n const method = consoleMethod(record.level);\n if (this.format === \"json\") {\n this.target[method](JSON.stringify(record));\n return;\n }\n const fields = Object.entries(record.fields ?? {})\n .map(([key, value]) => `${key}=${formatValue(value)}`)\n .join(\" \");\n const context = [\n record.sessionId ? `session=${record.sessionId}` : undefined,\n record.runId ? `run=${record.runId}` : undefined,\n record.durationMs !== undefined ? `durationMs=${record.durationMs}` : undefined,\n ].filter(Boolean).join(\" \");\n const suffix = [fields, context].filter(Boolean).join(\" \");\n this.target[method](`[${record.level}] ${record.message}${suffix ? ` ${suffix}` : \"\"}`);\n }\n}\n","import { HarnessLogSink, type HarnessLogRecord, type HarnessLoggingLevel } from \"../types.js\";\nimport { shouldWriteLog } from \"./shared.js\";\n\nexport interface MemoryLogSinkOptions {\n level?: HarnessLoggingLevel;\n}\n\nexport class MemoryLogSink extends HarnessLogSink {\n readonly records: HarnessLogRecord[] = [];\n private readonly level?: HarnessLoggingLevel;\n\n constructor(options: MemoryLogSinkOptions = {}) {\n super();\n this.level = options.level;\n }\n\n write(record: HarnessLogRecord): void {\n if (this.level && !shouldWriteLog(record.level, this.level)) return;\n this.records.push(record);\n }\n\n clear(): void {\n this.records.length = 0;\n }\n}\n","import type { HarnessRedactionConfig } from \"./types.js\";\n\nexport const defaultRedactKeys = [\n \"password\",\n \"token\",\n \"apiKey\",\n \"authorization\",\n \"secret\",\n \"cookie\",\n \"setCookie\",\n];\n\nfunction normalizeKey(key: string): string {\n return key.replace(/[^a-zA-Z0-9]/g, \"\").toLowerCase();\n}\n\nexport function shouldRedactKey(key: string, keys: string[]): boolean {\n const normalized = normalizeKey(key);\n return keys.some((candidate) => {\n const sensitive = normalizeKey(candidate);\n return normalized === sensitive || normalized.includes(sensitive);\n });\n}\n\nexport function redactError(error: Error): { name?: string; message: string; stack?: string } {\n return {\n name: error.name,\n message: error.message,\n stack: error.stack,\n };\n}\n\nexport function redactValue(\n value: unknown,\n config: HarnessRedactionConfig = {},\n seen = new WeakSet<object>(),\n): unknown {\n const keys = config.keys ?? defaultRedactKeys;\n const replacement = config.replacement ?? \"[redacted]\";\n\n if (value instanceof Error) return redactError(value);\n if (value === null || value === undefined) return value;\n if (typeof value !== \"object\") return value;\n if (seen.has(value)) return \"[circular]\";\n seen.add(value);\n\n if (Array.isArray(value)) {\n return value.map((item) => redactValue(item, config, seen));\n }\n\n const output: Record<string, unknown> = {};\n for (const [key, item] of Object.entries(value as Record<string, unknown>)) {\n output[key] = shouldRedactKey(key, keys) ? replacement : redactValue(item, config, seen);\n }\n return output;\n}\n\nexport function summarizeValue(value: unknown, config: HarnessRedactionConfig = {}): unknown {\n const keys = config.keys ?? defaultRedactKeys;\n const replacement = config.replacement ?? \"[redacted]\";\n\n const visit = (item: unknown, key?: string): unknown => {\n if (key && shouldRedactKey(key, keys)) return replacement;\n if (item instanceof Error) return { name: item.name, message: item.message };\n if (item === null) return \"null\";\n if (item === undefined) return \"undefined\";\n if (typeof item === \"string\") return `string(${item.length})`;\n if (typeof item === \"number\" || typeof item === \"boolean\") return item;\n if (typeof item === \"bigint\") return `${item.toString()}n`;\n if (typeof item === \"symbol\") return \"symbol\";\n if (typeof item === \"function\") return \"function\";\n if (Array.isArray(item)) return `array(${item.length})`;\n if (typeof item === \"object\") {\n const objectKeys = Object.keys(item as Record<string, unknown>)\n .map((objectKey) => shouldRedactKey(objectKey, keys) ? replacement : objectKey);\n return `object(${objectKeys.slice(0, 8).join(\",\")}${objectKeys.length > 8 ? \",...\" : \"\"})`;\n }\n return String(item);\n };\n\n if (value && typeof value === \"object\" && !Array.isArray(value) && !(value instanceof Error)) {\n const output: Record<string, unknown> = {};\n for (const [key, item] of Object.entries(value as Record<string, unknown>)) output[key] = visit(item, key);\n return output;\n }\n return visit(value);\n}\n","let sequence = 0;\n\nexport function randomId(): string {\n const cryptoValue = globalThis.crypto as { randomUUID?: () => string } | undefined;\n if (cryptoValue?.randomUUID) return cryptoValue.randomUUID();\n sequence += 1;\n return `id_${Date.now().toString(36)}_${sequence.toString(36)}`;\n}\n","import { randomId } from \"../runtime/id.js\";\nimport type {\n HarnessLogClass,\n HarnessLogContext,\n HarnessLogRecord,\n HarnessRedactionConfig,\n} from \"./types.js\";\nimport { redactError, redactValue } from \"./redaction.js\";\n\nfunction nowIso(): string {\n return new Date().toISOString();\n}\n\nfunction plainObject(value: unknown): Record<string, unknown> | undefined {\n if (!value || typeof value !== \"object\" || Array.isArray(value) || value instanceof Error) return undefined;\n return value as Record<string, unknown>;\n}\n\nexport function normalizeHarnessLog<TFields>(\n logClass: HarnessLogClass<TFields>,\n fields: TFields,\n context: HarnessLogContext = {},\n redaction: HarnessRedactionConfig = {},\n): HarnessLogRecord {\n const log = new logClass();\n const originalFields = log.redact ? log.redact(fields) : fields;\n const originalError = originalFields instanceof Error\n ? originalFields\n : originalFields && typeof originalFields === \"object\" && \"error\" in originalFields && (originalFields as { error?: unknown }).error instanceof Error\n ? (originalFields as { error: Error }).error\n : undefined;\n const redactedFields = redactValue(originalFields, redaction) as TFields;\n const fieldsObject = plainObject(redactedFields);\n return {\n id: randomId(),\n at: nowIso(),\n level: log.levelFor?.(redactedFields) ?? log.level,\n category: log.category,\n type: logClass.name,\n message: log.message(redactedFields),\n sessionId: context.sessionId,\n runId: context.runId,\n turnId: context.turnId,\n modeId: context.modeId,\n branchId: context.branchId,\n source: context.source ?? { kind: \"runtime\" },\n correlationId: context.correlationId,\n causationId: context.causationId,\n spanId: context.spanId,\n parentSpanId: context.parentSpanId,\n durationMs: context.durationMs,\n fields: fieldsObject,\n error: originalError ? redactError(originalError) : undefined,\n };\n}\n","import { HarnessLog } from \"./types.js\";\n\nexport {\n HarnessLog,\n HarnessLogSink,\n type HarnessLogCategory,\n type HarnessLogClass,\n type HarnessLogContext,\n type HarnessLogError,\n type HarnessLogLevel,\n type HarnessLoggingConfig,\n type HarnessLoggingLevel,\n type HarnessLogRecord,\n type HarnessLogSource,\n type HarnessLogSourceKind,\n type HarnessRedactionConfig,\n} from \"./types.js\";\nexport {\n defaultRedactKeys,\n redactError,\n redactValue,\n shouldRedactKey,\n summarizeValue,\n} from \"./redaction.js\";\nexport { normalizeHarnessLog } from \"./normalize.js\";\nexport {\n ConsoleLogSink,\n MemoryLogSink,\n shouldWriteLog,\n type ConsoleLogSinkOptions,\n type MemoryLogSinkOptions,\n} from \"./sinks.js\";\n\nexport class AgentDebugLog extends HarnessLog<{ message: string }> {\n level = \"debug\" as const;\n category = \"agent\" as const;\n message(fields: { message: string }): string {\n return fields.message;\n }\n}\n\nexport class AgentInfoLog extends HarnessLog<{ message: string }> {\n level = \"info\" as const;\n category = \"agent\" as const;\n message(fields: { message: string }): string {\n return fields.message;\n }\n}\n\nexport class AgentWarnLog extends HarnessLog<{ message: string }> {\n level = \"warn\" as const;\n category = \"agent\" as const;\n message(fields: { message: string }): string {\n return fields.message;\n }\n}\n\nexport class AgentErrorLog extends HarnessLog<{ message: string; error?: unknown }> {\n level = \"error\" as const;\n category = \"agent\" as const;\n message(fields: { message: string }): string {\n return fields.message;\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
type JsonObject = Record<string, unknown>;
|
|
2
|
-
|
|
3
|
-
interface HarnessEventMetadata extends JsonObject {
|
|
4
|
-
label?: string;
|
|
5
|
-
}
|
|
6
|
-
interface HarnessEventSource {
|
|
7
|
-
kind: "runtime" | "model_provider" | "tool" | "hook" | "context_provider" | "mode" | "user" | "custom";
|
|
8
|
-
id?: string;
|
|
9
|
-
name?: string;
|
|
10
|
-
}
|
|
11
|
-
interface HarnessEventRecord<TPayload = unknown> {
|
|
12
|
-
id: string;
|
|
13
|
-
seq: number;
|
|
14
|
-
branchId: string;
|
|
15
|
-
type: string;
|
|
16
|
-
eventClassId: string;
|
|
17
|
-
at: string;
|
|
18
|
-
source: HarnessEventSource;
|
|
19
|
-
payload: TPayload;
|
|
20
|
-
runId: string;
|
|
21
|
-
turnId?: string;
|
|
22
|
-
modeId?: string;
|
|
23
|
-
correlationId?: string;
|
|
24
|
-
causationId?: string;
|
|
25
|
-
hidden: true;
|
|
26
|
-
metadata?: HarnessEventMetadata;
|
|
27
|
-
}
|
|
28
|
-
declare abstract class HarnessEvent<TPayload = unknown> {
|
|
29
|
-
readonly record: HarnessEventRecord<TPayload>;
|
|
30
|
-
static type?: string;
|
|
31
|
-
static schema?: unknown;
|
|
32
|
-
constructor(record: HarnessEventRecord<TPayload>);
|
|
33
|
-
get id(): string;
|
|
34
|
-
get type(): string;
|
|
35
|
-
get payload(): TPayload;
|
|
36
|
-
get at(): string;
|
|
37
|
-
}
|
|
38
|
-
type HarnessEventClass<TPayload = unknown, TEvent extends HarnessEvent<TPayload> = HarnessEvent<TPayload>> = {
|
|
39
|
-
readonly type?: string;
|
|
40
|
-
readonly schema?: unknown;
|
|
41
|
-
new (record: HarnessEventRecord<any>): TEvent;
|
|
42
|
-
};
|
|
43
|
-
interface HarnessEventEmitOptions {
|
|
44
|
-
source?: HarnessEventSource;
|
|
45
|
-
correlationId?: string;
|
|
46
|
-
causationId?: string;
|
|
47
|
-
metadata?: HarnessEventMetadata;
|
|
48
|
-
hiddenTranscript?: boolean;
|
|
49
|
-
skipHooks?: boolean;
|
|
50
|
-
}
|
|
51
|
-
interface HarnessEventQuery<TPayload = unknown> {
|
|
52
|
-
event?: HarnessEventClass<TPayload>;
|
|
53
|
-
type?: string;
|
|
54
|
-
sourceKind?: HarnessEventSource["kind"];
|
|
55
|
-
limit?: number;
|
|
56
|
-
since?: string;
|
|
57
|
-
until?: string;
|
|
58
|
-
includeInactive?: boolean;
|
|
59
|
-
}
|
|
60
|
-
interface EventCursor {
|
|
61
|
-
id: string;
|
|
62
|
-
branchId: string;
|
|
63
|
-
headEventId?: string;
|
|
64
|
-
seq: number;
|
|
65
|
-
updatedAt: string;
|
|
66
|
-
}
|
|
67
|
-
type RunnerEventListener = (event: HarnessEventRecord) => void | Promise<void>;
|
|
68
|
-
|
|
69
|
-
export { type EventCursor as E, HarnessEvent as H, type JsonObject as J, type RunnerEventListener as R, type HarnessEventClass as a, type HarnessEventEmitOptions as b, type HarnessEventMetadata as c, type HarnessEventQuery as d, type HarnessEventRecord as e, type HarnessEventSource as f };
|
|
@@ -1,200 +0,0 @@
|
|
|
1
|
-
import { e as HarnessEventRecord, E as EventCursor } from './events-D4xcDi53.js';
|
|
2
|
-
import { h as AgentMessage, U as HarnessSnapshot, ab as TranscriptCursor, aa as TranscriptBranch, M as ContextSnapshot } from './context-BfpLqV11.js';
|
|
3
|
-
|
|
4
|
-
interface ToolCallMetric {
|
|
5
|
-
name: string;
|
|
6
|
-
count: number;
|
|
7
|
-
errorCount: number;
|
|
8
|
-
totalDurationMs: number;
|
|
9
|
-
}
|
|
10
|
-
interface RunMetrics {
|
|
11
|
-
startedAt: string;
|
|
12
|
-
completedAt?: string;
|
|
13
|
-
durationMs: number;
|
|
14
|
-
turnCount: number;
|
|
15
|
-
messageCount: number;
|
|
16
|
-
eventCount: number;
|
|
17
|
-
toolCallCount: number;
|
|
18
|
-
finalMode?: string;
|
|
19
|
-
tools: Record<string, ToolCallMetric>;
|
|
20
|
-
errors: string[];
|
|
21
|
-
usage?: unknown;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
interface RunCursorState {
|
|
25
|
-
transcriptCursor: TranscriptCursor;
|
|
26
|
-
eventCursor: EventCursor;
|
|
27
|
-
branches?: TranscriptBranch[];
|
|
28
|
-
}
|
|
29
|
-
interface OpenRunStoreInput {
|
|
30
|
-
runId: string;
|
|
31
|
-
sessionId: string;
|
|
32
|
-
agentKey: string;
|
|
33
|
-
outputDir?: string;
|
|
34
|
-
}
|
|
35
|
-
interface HarnessSessionSummary {
|
|
36
|
-
sessionId: string;
|
|
37
|
-
agentKey: string;
|
|
38
|
-
createdAt: string;
|
|
39
|
-
lastActiveAt: string;
|
|
40
|
-
mode: string;
|
|
41
|
-
latestRunId?: string;
|
|
42
|
-
metadata?: Record<string, unknown>;
|
|
43
|
-
}
|
|
44
|
-
interface SessionListQuery {
|
|
45
|
-
agentKey?: string;
|
|
46
|
-
active?: boolean;
|
|
47
|
-
limit?: number;
|
|
48
|
-
cursor?: string;
|
|
49
|
-
}
|
|
50
|
-
interface SessionListResult {
|
|
51
|
-
items: HarnessSessionSummary[];
|
|
52
|
-
nextCursor?: string;
|
|
53
|
-
}
|
|
54
|
-
interface StoredRunSummary {
|
|
55
|
-
runId: string;
|
|
56
|
-
sessionId: string;
|
|
57
|
-
agentKey: string;
|
|
58
|
-
createdAt: string;
|
|
59
|
-
mode: string;
|
|
60
|
-
outputDir?: string;
|
|
61
|
-
metadata?: Record<string, unknown>;
|
|
62
|
-
}
|
|
63
|
-
interface CreateStoredSessionInput {
|
|
64
|
-
sessionId: string;
|
|
65
|
-
agentKey: string;
|
|
66
|
-
createdAt?: string;
|
|
67
|
-
lastActiveAt?: string;
|
|
68
|
-
mode: string;
|
|
69
|
-
latestRunId?: string;
|
|
70
|
-
metadata?: Record<string, unknown>;
|
|
71
|
-
}
|
|
72
|
-
interface TouchStoredSessionInput {
|
|
73
|
-
sessionId: string;
|
|
74
|
-
lastActiveAt?: string;
|
|
75
|
-
mode?: string;
|
|
76
|
-
latestRunId?: string;
|
|
77
|
-
metadata?: Record<string, unknown>;
|
|
78
|
-
}
|
|
79
|
-
interface CreateStoredRunInput {
|
|
80
|
-
runId: string;
|
|
81
|
-
sessionId: string;
|
|
82
|
-
agentKey: string;
|
|
83
|
-
createdAt?: string;
|
|
84
|
-
mode: string;
|
|
85
|
-
outputDir?: string;
|
|
86
|
-
metadata?: Record<string, unknown>;
|
|
87
|
-
}
|
|
88
|
-
declare abstract class HarnessRunStorage {
|
|
89
|
-
abstract readonly id: string;
|
|
90
|
-
label?: string;
|
|
91
|
-
abstract openRun(input: OpenRunStoreInput): Promise<HarnessRunStore> | HarnessRunStore;
|
|
92
|
-
}
|
|
93
|
-
declare abstract class HarnessSessionStorage {
|
|
94
|
-
abstract readonly id: string;
|
|
95
|
-
label?: string;
|
|
96
|
-
init?(): Promise<void> | void;
|
|
97
|
-
abstract createSession(input: CreateStoredSessionInput): Promise<HarnessSessionSummary> | HarnessSessionSummary;
|
|
98
|
-
abstract getSession(sessionId: string): Promise<HarnessSessionSummary | undefined> | HarnessSessionSummary | undefined;
|
|
99
|
-
abstract listSessions(query?: SessionListQuery): Promise<SessionListResult> | SessionListResult;
|
|
100
|
-
abstract touchSession(input: TouchStoredSessionInput): Promise<void> | void;
|
|
101
|
-
abstract deleteSession(sessionId: string): Promise<boolean> | boolean;
|
|
102
|
-
abstract createRun(input: CreateStoredRunInput): Promise<StoredRunSummary> | StoredRunSummary;
|
|
103
|
-
abstract getLatestRun(sessionId: string): Promise<StoredRunSummary | undefined> | StoredRunSummary | undefined;
|
|
104
|
-
abstract listRuns(sessionId: string): Promise<StoredRunSummary[]> | StoredRunSummary[];
|
|
105
|
-
abstract openRun(input: OpenRunStoreInput): Promise<HarnessRunStore> | HarnessRunStore;
|
|
106
|
-
}
|
|
107
|
-
declare abstract class HarnessRunStore {
|
|
108
|
-
abstract readonly runId: string;
|
|
109
|
-
readonly outputDir?: string;
|
|
110
|
-
readonly runDir?: string;
|
|
111
|
-
abstract init(): Promise<void> | void;
|
|
112
|
-
abstract recordEvent(event: HarnessEventRecord): Promise<void> | void;
|
|
113
|
-
abstract loadEvents(): Promise<HarnessEventRecord[]> | HarnessEventRecord[];
|
|
114
|
-
abstract saveTranscript(messages: AgentMessage[]): Promise<void> | void;
|
|
115
|
-
abstract loadTranscript(): Promise<AgentMessage[]> | AgentMessage[];
|
|
116
|
-
abstract saveMetrics(metrics: RunMetrics): Promise<void> | void;
|
|
117
|
-
abstract saveSnapshot(snapshot: HarnessSnapshot): Promise<void> | void;
|
|
118
|
-
abstract loadSnapshots(): Promise<HarnessSnapshot[]> | HarnessSnapshot[];
|
|
119
|
-
abstract deleteSnapshot(id: string): Promise<void> | void;
|
|
120
|
-
abstract saveCursors(cursors: RunCursorState): Promise<void> | void;
|
|
121
|
-
abstract loadCursors(): Promise<RunCursorState | undefined> | RunCursorState | undefined;
|
|
122
|
-
abstract saveContextSnapshot(snapshot: ContextSnapshot): Promise<void> | void;
|
|
123
|
-
abstract loadContextSnapshots(): Promise<ContextSnapshot[]> | ContextSnapshot[];
|
|
124
|
-
close?(): Promise<void>;
|
|
125
|
-
}
|
|
126
|
-
declare class NoopRunStorage extends HarnessRunStorage {
|
|
127
|
-
readonly id = "noop";
|
|
128
|
-
label: string;
|
|
129
|
-
openRun(input: OpenRunStoreInput): HarnessRunStore;
|
|
130
|
-
}
|
|
131
|
-
declare class NoopRunStore extends HarnessRunStore {
|
|
132
|
-
readonly runId: string;
|
|
133
|
-
readonly outputDir: undefined;
|
|
134
|
-
readonly runDir: undefined;
|
|
135
|
-
constructor(runId: string);
|
|
136
|
-
init(): void;
|
|
137
|
-
recordEvent(_event: HarnessEventRecord): void;
|
|
138
|
-
loadEvents(): HarnessEventRecord[];
|
|
139
|
-
saveTranscript(_messages: AgentMessage[]): void;
|
|
140
|
-
loadTranscript(): AgentMessage[];
|
|
141
|
-
saveMetrics(_metrics: RunMetrics): void;
|
|
142
|
-
saveSnapshot(_snapshot: HarnessSnapshot): void;
|
|
143
|
-
loadSnapshots(): HarnessSnapshot[];
|
|
144
|
-
deleteSnapshot(_id: string): void;
|
|
145
|
-
saveCursors(_cursors: RunCursorState): void;
|
|
146
|
-
loadCursors(): RunCursorState | undefined;
|
|
147
|
-
saveContextSnapshot(_snapshot: ContextSnapshot): void;
|
|
148
|
-
loadContextSnapshots(): ContextSnapshot[];
|
|
149
|
-
}
|
|
150
|
-
interface MemoryRunState {
|
|
151
|
-
events: HarnessEventRecord[];
|
|
152
|
-
transcript: AgentMessage[];
|
|
153
|
-
metrics?: RunMetrics;
|
|
154
|
-
snapshots: Map<string, HarnessSnapshot>;
|
|
155
|
-
cursors?: RunCursorState;
|
|
156
|
-
contextSnapshots: Map<string, ContextSnapshot>;
|
|
157
|
-
}
|
|
158
|
-
declare class MemoryRunStorage extends HarnessRunStorage {
|
|
159
|
-
readonly id = "memory";
|
|
160
|
-
label: string;
|
|
161
|
-
private readonly runs;
|
|
162
|
-
openRun(input: OpenRunStoreInput): HarnessRunStore;
|
|
163
|
-
}
|
|
164
|
-
declare class MemorySessionStorage extends HarnessSessionStorage {
|
|
165
|
-
readonly id = "memory-session";
|
|
166
|
-
label: string;
|
|
167
|
-
private readonly sessions;
|
|
168
|
-
private readonly runStates;
|
|
169
|
-
createSession(input: CreateStoredSessionInput): HarnessSessionSummary;
|
|
170
|
-
getSession(sessionId: string): HarnessSessionSummary | undefined;
|
|
171
|
-
listSessions(query?: SessionListQuery): SessionListResult;
|
|
172
|
-
touchSession(input: TouchStoredSessionInput): void;
|
|
173
|
-
deleteSession(sessionId: string): boolean;
|
|
174
|
-
createRun(input: CreateStoredRunInput): StoredRunSummary;
|
|
175
|
-
getLatestRun(sessionId: string): StoredRunSummary | undefined;
|
|
176
|
-
listRuns(sessionId: string): StoredRunSummary[];
|
|
177
|
-
openRun(input: OpenRunStoreInput): HarnessRunStore;
|
|
178
|
-
}
|
|
179
|
-
declare class MemoryRunStore extends HarnessRunStore {
|
|
180
|
-
readonly runId: string;
|
|
181
|
-
private readonly state;
|
|
182
|
-
readonly outputDir: undefined;
|
|
183
|
-
readonly runDir: undefined;
|
|
184
|
-
constructor(runId: string, state: MemoryRunState);
|
|
185
|
-
init(): void;
|
|
186
|
-
recordEvent(event: HarnessEventRecord): void;
|
|
187
|
-
loadEvents(): HarnessEventRecord[];
|
|
188
|
-
saveTranscript(messages: AgentMessage[]): void;
|
|
189
|
-
loadTranscript(): AgentMessage[];
|
|
190
|
-
saveMetrics(metrics: RunMetrics): void;
|
|
191
|
-
saveSnapshot(snapshot: HarnessSnapshot): void;
|
|
192
|
-
loadSnapshots(): HarnessSnapshot[];
|
|
193
|
-
deleteSnapshot(id: string): void;
|
|
194
|
-
saveCursors(cursors: RunCursorState): void;
|
|
195
|
-
loadCursors(): RunCursorState | undefined;
|
|
196
|
-
saveContextSnapshot(snapshot: ContextSnapshot): void;
|
|
197
|
-
loadContextSnapshots(): ContextSnapshot[];
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
export { type CreateStoredRunInput as C, HarnessRunStorage as H, MemoryRunStorage as M, NoopRunStorage as N, type OpenRunStoreInput as O, type RunCursorState as R, type SessionListQuery as S, type ToolCallMetric as T, type CreateStoredSessionInput as a, HarnessRunStore as b, HarnessSessionStorage as c, type HarnessSessionSummary as d, MemoryRunStore as e, MemorySessionStorage as f, NoopRunStore as g, type RunMetrics as h, type SessionListResult as i, type StoredRunSummary as j, type TouchStoredSessionInput as k };
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
type ToolErrorCode = "tool.args.invalid_schema" | "tool.approval.denied" | "sandbox.exec.failed" | "tool.failed";
|
|
2
|
-
interface ToolInvalidField {
|
|
3
|
-
path: string;
|
|
4
|
-
code?: string;
|
|
5
|
-
expected?: string;
|
|
6
|
-
received?: string;
|
|
7
|
-
message: string;
|
|
8
|
-
}
|
|
9
|
-
interface ToolErrorPayload {
|
|
10
|
-
ok: false;
|
|
11
|
-
error: {
|
|
12
|
-
code: ToolErrorCode;
|
|
13
|
-
message: string;
|
|
14
|
-
toolName: string;
|
|
15
|
-
invalidFields?: ToolInvalidField[];
|
|
16
|
-
metadata?: Record<string, unknown>;
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
declare function createToolErrorPayload(input: {
|
|
20
|
-
code: ToolErrorCode;
|
|
21
|
-
message: string;
|
|
22
|
-
toolName: string;
|
|
23
|
-
invalidFields?: ToolInvalidField[];
|
|
24
|
-
metadata?: Record<string, unknown>;
|
|
25
|
-
}): ToolErrorPayload;
|
|
26
|
-
|
|
27
|
-
export { type ToolErrorCode as T, type ToolErrorPayload as a, type ToolInvalidField as b, createToolErrorPayload as c };
|