@harness-kernel/core 0.2.1 → 0.4.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-7e8HD-35.d.ts} +20 -15
- 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-QEVKKJ7N.js → chunk-BLLQSHQI.js} +391 -151
- package/dist/chunk-BLLQSHQI.js.map +1 -0
- package/dist/{chunk-ZU6ADDET.js → chunk-IWHCNKHK.js} +1 -1
- package/dist/chunk-IWHCNKHK.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/{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 +25 -18
- package/dist/index.js +20 -7
- 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/sandbox.d.ts +12 -2
- package/dist/runner/sandbox.js +1 -1
- package/dist/runner/storage.d.ts +181 -4
- package/dist/{runner-B41JEovO.d.ts → runner-BYG9ARAV.d.ts} +11 -6
- package/dist/runner.d.ts +9 -8
- package/dist/runner.js +12 -6
- package/package.json +2 -2
- 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/chunk-QEVKKJ7N.js.map +0 -1
- package/dist/chunk-ZU6ADDET.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
package/dist/index.js
CHANGED
|
@@ -4,21 +4,23 @@ import {
|
|
|
4
4
|
HarnessSessionPhase,
|
|
5
5
|
HarnessSessionStoreImpl,
|
|
6
6
|
createHarnessSession,
|
|
7
|
-
createHarnessSessionStore
|
|
8
|
-
|
|
9
|
-
} from "./chunk-QEVKKJ7N.js";
|
|
7
|
+
createHarnessSessionStore
|
|
8
|
+
} from "./chunk-BLLQSHQI.js";
|
|
10
9
|
import {
|
|
11
10
|
HarnessModelProviderRegistry,
|
|
12
11
|
modelProviderId,
|
|
13
12
|
parseModelRef
|
|
14
13
|
} from "./chunk-Q73WH5D7.js";
|
|
15
|
-
import
|
|
14
|
+
import {
|
|
15
|
+
normalizeHarnessError,
|
|
16
|
+
sanitizeHarnessError
|
|
17
|
+
} from "./chunk-2NQ3JL7K.js";
|
|
16
18
|
import {
|
|
17
19
|
HarnessSandbox,
|
|
18
20
|
HarnessSandboxSession,
|
|
19
21
|
NoopSandbox,
|
|
20
22
|
NoopSandboxSession
|
|
21
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-IWHCNKHK.js";
|
|
22
24
|
import {
|
|
23
25
|
HarnessRunStorage,
|
|
24
26
|
HarnessRunStore,
|
|
@@ -32,6 +34,10 @@ import {
|
|
|
32
34
|
import {
|
|
33
35
|
defineAgent
|
|
34
36
|
} from "./chunk-RRWJUHJG.js";
|
|
37
|
+
import {
|
|
38
|
+
createToolErrorPayload,
|
|
39
|
+
createToolErrorResult
|
|
40
|
+
} from "./chunk-NCSQEUQC.js";
|
|
35
41
|
import {
|
|
36
42
|
ContextReadyEvent,
|
|
37
43
|
ErrorEvent,
|
|
@@ -41,7 +47,9 @@ import {
|
|
|
41
47
|
ModeChangedEvent,
|
|
42
48
|
ModelAfterEvent,
|
|
43
49
|
ModelBeforeEvent,
|
|
50
|
+
RunAbortedEvent,
|
|
44
51
|
RunEndEvent,
|
|
52
|
+
RunFailedEvent,
|
|
45
53
|
RunStartEvent,
|
|
46
54
|
SnapshotCreatedEvent,
|
|
47
55
|
SnapshotDeletedEvent,
|
|
@@ -54,7 +62,7 @@ import {
|
|
|
54
62
|
TurnEndEvent,
|
|
55
63
|
TurnStartEvent,
|
|
56
64
|
runtimeEventClasses
|
|
57
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-3QOAFCCZ.js";
|
|
58
66
|
import {
|
|
59
67
|
ArraySchema,
|
|
60
68
|
BooleanSchema,
|
|
@@ -93,7 +101,7 @@ import {
|
|
|
93
101
|
systemRole,
|
|
94
102
|
toolRole,
|
|
95
103
|
userRole
|
|
96
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-TCHZYK5Y.js";
|
|
97
105
|
export {
|
|
98
106
|
AgentSessionRunner,
|
|
99
107
|
ArraySchema,
|
|
@@ -140,7 +148,9 @@ export {
|
|
|
140
148
|
OptionalSchema,
|
|
141
149
|
RecordSchema,
|
|
142
150
|
RoleTargets,
|
|
151
|
+
RunAbortedEvent,
|
|
143
152
|
RunEndEvent,
|
|
153
|
+
RunFailedEvent,
|
|
144
154
|
RunStartEvent,
|
|
145
155
|
Schema,
|
|
146
156
|
SchemaError,
|
|
@@ -163,13 +173,16 @@ export {
|
|
|
163
173
|
createHarnessSession,
|
|
164
174
|
createHarnessSessionStore,
|
|
165
175
|
createToolErrorPayload,
|
|
176
|
+
createToolErrorResult,
|
|
166
177
|
defineAgent,
|
|
167
178
|
formatSchemaPath,
|
|
168
179
|
modelProviderId,
|
|
180
|
+
normalizeHarnessError,
|
|
169
181
|
normalizeSchema,
|
|
170
182
|
parseModelRef,
|
|
171
183
|
runtimeEventClasses,
|
|
172
184
|
s,
|
|
185
|
+
sanitizeHarnessError,
|
|
173
186
|
schemaIssuesFromError,
|
|
174
187
|
systemRole,
|
|
175
188
|
toolRole,
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { e as HarnessErrorShape } from './errors-hpkW3tfR.js';
|
|
2
|
+
|
|
3
|
+
interface ToolCallMetric {
|
|
4
|
+
name: string;
|
|
5
|
+
count: number;
|
|
6
|
+
errorCount: number;
|
|
7
|
+
totalDurationMs: number;
|
|
8
|
+
}
|
|
9
|
+
interface RunMetrics {
|
|
10
|
+
startedAt: string;
|
|
11
|
+
completedAt?: string;
|
|
12
|
+
durationMs: number;
|
|
13
|
+
turnCount: number;
|
|
14
|
+
messageCount: number;
|
|
15
|
+
eventCount: number;
|
|
16
|
+
toolCallCount: number;
|
|
17
|
+
finalMode?: string;
|
|
18
|
+
tools: Record<string, ToolCallMetric>;
|
|
19
|
+
errors: HarnessErrorShape[];
|
|
20
|
+
usage?: unknown;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export type { RunMetrics as R, ToolCallMetric as T };
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { h as AgentMessage, v as AgentToolDefinition, w as AgentToolResult, M as ContextSnapshot,
|
|
1
|
+
import { f as HarnessEvent, g as HarnessEventClass, h as HarnessEventEmitOptions, k as HarnessEventRecord, J as JsonObject, c as HarnessErrorPolicy } from './errors-hpkW3tfR.js';
|
|
2
|
+
import { h as AgentMessage, v as AgentToolDefinition, w as AgentToolResult, M as ContextSnapshot, a2 as HarnessModeSelector, a0 as HarnessMode, s as AgentSharedStateDefinition, ah as ToolApprovalRequest, af as ToolApprovalDecision, q as AgentRuntimeLogger } from './context-Bz9C_rL9.js';
|
|
3
3
|
import { b as HarnessRoleDefinition, c as HarnessRoleSelector } from './role-BN6KhQxx.js';
|
|
4
4
|
import { HarnessSandbox } from './runner/sandbox.js';
|
|
5
|
-
import {
|
|
6
|
-
import { H as HarnessHook } from './hook-
|
|
5
|
+
import { HarnessSessionStorage, HarnessRunStorage } from './runner/storage.js';
|
|
6
|
+
import { H as HarnessHook } from './hook-DD7uuzE3.js';
|
|
7
|
+
import { R as RunMetrics } from './metrics-DMN8bfY6.js';
|
|
7
8
|
|
|
8
9
|
interface ModelProviderRunInput {
|
|
9
10
|
runId: string;
|
|
@@ -114,6 +115,7 @@ interface AgentSessionRunnerOptions {
|
|
|
114
115
|
resources?: JsonObject;
|
|
115
116
|
approveTool?(request: ToolApprovalRequest): boolean | ToolApprovalDecision | Promise<boolean | ToolApprovalDecision>;
|
|
116
117
|
logger?: AgentRuntimeLogger;
|
|
118
|
+
errorPolicy?: HarnessErrorPolicy;
|
|
117
119
|
}
|
|
118
120
|
interface AgentRunResult {
|
|
119
121
|
runId: string;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { T as ToolApprovalHandle } from '../approval-
|
|
2
|
-
export {
|
|
3
|
-
import '../model-provider-
|
|
4
|
-
import '../
|
|
1
|
+
export { T as ToolApprovalHandle } from '../approval-7e8HD-35.js';
|
|
2
|
+
export { af as ToolApprovalDecision, ag as ToolApprovalMode, ah as ToolApprovalRequest } from '../context-Bz9C_rL9.js';
|
|
3
|
+
import '../model-provider-DGkLQJWP.js';
|
|
4
|
+
import '../errors-hpkW3tfR.js';
|
|
5
5
|
import '../role-BN6KhQxx.js';
|
|
6
6
|
import './sandbox.js';
|
|
7
|
-
import '
|
|
8
|
-
import '../
|
|
9
|
-
import '../
|
|
7
|
+
import './storage.js';
|
|
8
|
+
import '../metrics-DMN8bfY6.js';
|
|
9
|
+
import '../hook-DD7uuzE3.js';
|
package/dist/runner/event.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { C as ContextReadyEvent, E as ErrorEvent, M as MessageDeltaEvent, a as MessageEndEvent, b as MessageStartEvent, c as ModeChangedEvent, d as ModelAfterEvent, e as ModelBeforeEvent, R as
|
|
1
|
+
export { f as HarnessEvent, g as HarnessEventClass, h as HarnessEventEmitOptions, j as HarnessEventQuery, k as HarnessEventRecord, l as HarnessEventSource } from '../errors-hpkW3tfR.js';
|
|
2
|
+
export { C as ContextReadyEvent, E as ErrorEvent, M as MessageDeltaEvent, a as MessageEndEvent, b as MessageStartEvent, c as ModeChangedEvent, d as ModelAfterEvent, e as ModelBeforeEvent, R as RunAbortedEvent, f as RunEndEvent, g as RunFailedEvent, h as RunStartEvent, S as SnapshotCreatedEvent, i as SnapshotDeletedEvent, j as SnapshotRestoredEvent, T as ToolApprovalRequestedEvent, k as ToolApprovalResolvedEvent, l as ToolEndEvent, m as ToolStartEvent, n as TranscriptCursorChangedEvent, o as TurnEndEvent, p as TurnStartEvent } from '../event-DMBY-R6h.js';
|
|
3
|
+
import '../metrics-DMN8bfY6.js';
|
|
3
4
|
import '../schema.js';
|
package/dist/runner/event.js
CHANGED
|
@@ -7,7 +7,9 @@ import {
|
|
|
7
7
|
ModeChangedEvent,
|
|
8
8
|
ModelAfterEvent,
|
|
9
9
|
ModelBeforeEvent,
|
|
10
|
+
RunAbortedEvent,
|
|
10
11
|
RunEndEvent,
|
|
12
|
+
RunFailedEvent,
|
|
11
13
|
RunStartEvent,
|
|
12
14
|
SnapshotCreatedEvent,
|
|
13
15
|
SnapshotDeletedEvent,
|
|
@@ -19,11 +21,11 @@ import {
|
|
|
19
21
|
TranscriptCursorChangedEvent,
|
|
20
22
|
TurnEndEvent,
|
|
21
23
|
TurnStartEvent
|
|
22
|
-
} from "../chunk-
|
|
24
|
+
} from "../chunk-3QOAFCCZ.js";
|
|
23
25
|
import "../chunk-OBKS4AJR.js";
|
|
24
26
|
import {
|
|
25
27
|
HarnessEvent
|
|
26
|
-
} from "../chunk-
|
|
28
|
+
} from "../chunk-TCHZYK5Y.js";
|
|
27
29
|
export {
|
|
28
30
|
ContextReadyEvent,
|
|
29
31
|
ErrorEvent,
|
|
@@ -34,7 +36,9 @@ export {
|
|
|
34
36
|
ModeChangedEvent,
|
|
35
37
|
ModelAfterEvent,
|
|
36
38
|
ModelBeforeEvent,
|
|
39
|
+
RunAbortedEvent,
|
|
37
40
|
RunEndEvent,
|
|
41
|
+
RunFailedEvent,
|
|
38
42
|
RunStartEvent,
|
|
39
43
|
SnapshotCreatedEvent,
|
|
40
44
|
SnapshotDeletedEvent,
|
package/dist/runner/logging.d.ts
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export {
|
|
3
|
-
export {
|
|
1
|
+
import { X as HarnessLogSink, $ as HarnessLoggingLevel, W as HarnessLogRecord, V as HarnessLogLevel } from '../context-Bz9C_rL9.js';
|
|
2
|
+
export { Q as HarnessLog, R as HarnessLogCategory, S as HarnessLogClass, T as HarnessLogContext, U as HarnessLogError, Y as HarnessLogSource, Z as HarnessLogSourceKind, _ as HarnessLoggingConfig, a4 as HarnessRedactionConfig } from '../context-Bz9C_rL9.js';
|
|
3
|
+
export { H as HarnessErrorCategory, a as HarnessErrorCode, b as HarnessErrorContext, c as HarnessErrorPolicy, d as HarnessErrorSeverity, e as HarnessErrorShape, m as HarnessRetryPolicy } from '../errors-hpkW3tfR.js';
|
|
4
|
+
export { n as normalizeHarnessError, s as sanitizeHarnessError } from '../errors-DHHy8V3O.js';
|
|
5
|
+
export { ToolErrorCode, ToolErrorPayload, ToolInvalidField, createToolErrorPayload, createToolErrorResult } from '../agent/tool.js';
|
|
6
|
+
import '../role-BN6KhQxx.js';
|
|
7
|
+
import './sandbox.js';
|
|
4
8
|
|
|
5
9
|
interface ConsoleLogSinkOptions {
|
|
6
10
|
format?: "pretty" | "json";
|
package/dist/runner/logging.js
CHANGED
|
@@ -3,13 +3,23 @@ import {
|
|
|
3
3
|
HarnessLog,
|
|
4
4
|
HarnessLogSink,
|
|
5
5
|
MemoryLogSink,
|
|
6
|
+
normalizeHarnessError,
|
|
7
|
+
sanitizeHarnessError,
|
|
6
8
|
shouldWriteLog
|
|
7
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-2NQ3JL7K.js";
|
|
10
|
+
import {
|
|
11
|
+
createToolErrorPayload,
|
|
12
|
+
createToolErrorResult
|
|
13
|
+
} from "../chunk-NCSQEUQC.js";
|
|
8
14
|
export {
|
|
9
15
|
ConsoleLogSink,
|
|
10
16
|
HarnessLog,
|
|
11
17
|
HarnessLogSink,
|
|
12
18
|
MemoryLogSink,
|
|
19
|
+
createToolErrorPayload,
|
|
20
|
+
createToolErrorResult,
|
|
21
|
+
normalizeHarnessError,
|
|
22
|
+
sanitizeHarnessError,
|
|
13
23
|
shouldWriteLog
|
|
14
24
|
};
|
|
15
25
|
//# sourceMappingURL=logging.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { H as HarnessModelProvider, d as HarnessModelProviderRegistry, M as ModelInfo, e as ModelProviderInfo, f as ModelProviderPreparedContext, g as ModelProviderRunInput, h as ModelProviderRunResult, R as ResolvedModelProvider, m as modelProviderId, p as parseModelRef } from '../model-provider-
|
|
2
|
-
import '../
|
|
3
|
-
import '../context-
|
|
1
|
+
export { H as HarnessModelProvider, d as HarnessModelProviderRegistry, M as ModelInfo, e as ModelProviderInfo, f as ModelProviderPreparedContext, g as ModelProviderRunInput, h as ModelProviderRunResult, R as ResolvedModelProvider, m as modelProviderId, p as parseModelRef } from '../model-provider-DGkLQJWP.js';
|
|
2
|
+
import '../errors-hpkW3tfR.js';
|
|
3
|
+
import '../context-Bz9C_rL9.js';
|
|
4
4
|
import '../role-BN6KhQxx.js';
|
|
5
|
-
import '../types-BPmsw-mF.js';
|
|
6
5
|
import './sandbox.js';
|
|
7
|
-
import '
|
|
8
|
-
import '../
|
|
6
|
+
import './storage.js';
|
|
7
|
+
import '../metrics-DMN8bfY6.js';
|
|
8
|
+
import '../hook-DD7uuzE3.js';
|
package/dist/runner/sandbox.d.ts
CHANGED
|
@@ -21,16 +21,26 @@ interface SandboxExecResult {
|
|
|
21
21
|
durationMs: number;
|
|
22
22
|
timedOut?: boolean;
|
|
23
23
|
}
|
|
24
|
+
type SandboxCloseReason = "close" | "delete";
|
|
25
|
+
interface SandboxCloseInput {
|
|
26
|
+
reason: SandboxCloseReason;
|
|
27
|
+
}
|
|
28
|
+
interface SandboxDestroyInput {
|
|
29
|
+
sessionId: string;
|
|
30
|
+
agentKey?: string;
|
|
31
|
+
workDir?: string;
|
|
32
|
+
}
|
|
24
33
|
declare abstract class HarnessSandbox {
|
|
25
34
|
abstract readonly id: string;
|
|
26
35
|
label?: string;
|
|
27
36
|
abstract open(input: HarnessSandboxOpenInput): Promise<HarnessSandboxSession> | HarnessSandboxSession;
|
|
37
|
+
destroy?(input: SandboxDestroyInput): Promise<void> | void;
|
|
28
38
|
}
|
|
29
39
|
declare abstract class HarnessSandboxSession {
|
|
30
40
|
abstract readonly id: string;
|
|
31
41
|
abstract readonly workDir: string;
|
|
32
42
|
abstract exec(input: SandboxExecInput): Promise<SandboxExecResult>;
|
|
33
|
-
close?(): Promise<void
|
|
43
|
+
close?(input?: SandboxCloseInput): Promise<void> | void;
|
|
34
44
|
}
|
|
35
45
|
declare class NoopSandbox extends HarnessSandbox {
|
|
36
46
|
readonly id = "noop";
|
|
@@ -44,4 +54,4 @@ declare class NoopSandboxSession extends HarnessSandboxSession {
|
|
|
44
54
|
exec(input: SandboxExecInput): Promise<SandboxExecResult>;
|
|
45
55
|
}
|
|
46
56
|
|
|
47
|
-
export { HarnessSandbox, type HarnessSandboxOpenInput, HarnessSandboxSession, NoopSandbox, NoopSandboxSession, type SandboxExecInput, type SandboxExecResult };
|
|
57
|
+
export { HarnessSandbox, type HarnessSandboxOpenInput, HarnessSandboxSession, NoopSandbox, NoopSandboxSession, type SandboxCloseInput, type SandboxCloseReason, type SandboxDestroyInput, type SandboxExecInput, type SandboxExecResult };
|
package/dist/runner/sandbox.js
CHANGED
package/dist/runner/storage.d.ts
CHANGED
|
@@ -1,6 +1,183 @@
|
|
|
1
|
-
|
|
2
|
-
import '../
|
|
3
|
-
import '../
|
|
1
|
+
import { k as HarnessEventRecord, E as EventCursor } from '../errors-hpkW3tfR.js';
|
|
2
|
+
import { h as AgentMessage, a5 as HarnessSnapshot, ao as TranscriptCursor, an as TranscriptBranch, M as ContextSnapshot } from '../context-Bz9C_rL9.js';
|
|
3
|
+
import { R as RunMetrics } from '../metrics-DMN8bfY6.js';
|
|
4
4
|
import '../role-BN6KhQxx.js';
|
|
5
|
-
import '../types-BPmsw-mF.js';
|
|
6
5
|
import './sandbox.js';
|
|
6
|
+
|
|
7
|
+
interface RunCursorState {
|
|
8
|
+
transcriptCursor: TranscriptCursor;
|
|
9
|
+
eventCursor: EventCursor;
|
|
10
|
+
branches?: TranscriptBranch[];
|
|
11
|
+
}
|
|
12
|
+
interface OpenRunStoreInput {
|
|
13
|
+
runId: string;
|
|
14
|
+
sessionId: string;
|
|
15
|
+
agentKey: string;
|
|
16
|
+
outputDir?: string;
|
|
17
|
+
}
|
|
18
|
+
interface HarnessSessionSummary {
|
|
19
|
+
sessionId: string;
|
|
20
|
+
agentKey: string;
|
|
21
|
+
createdAt: string;
|
|
22
|
+
lastActiveAt: string;
|
|
23
|
+
mode: string;
|
|
24
|
+
latestRunId?: string;
|
|
25
|
+
metadata?: Record<string, unknown>;
|
|
26
|
+
}
|
|
27
|
+
interface SessionListQuery {
|
|
28
|
+
agentKey?: string;
|
|
29
|
+
active?: boolean;
|
|
30
|
+
limit?: number;
|
|
31
|
+
cursor?: string;
|
|
32
|
+
}
|
|
33
|
+
interface SessionListResult {
|
|
34
|
+
items: HarnessSessionSummary[];
|
|
35
|
+
nextCursor?: string;
|
|
36
|
+
}
|
|
37
|
+
interface StoredRunSummary {
|
|
38
|
+
runId: string;
|
|
39
|
+
sessionId: string;
|
|
40
|
+
agentKey: string;
|
|
41
|
+
createdAt: string;
|
|
42
|
+
mode: string;
|
|
43
|
+
outputDir?: string;
|
|
44
|
+
metadata?: Record<string, unknown>;
|
|
45
|
+
}
|
|
46
|
+
interface CreateStoredSessionInput {
|
|
47
|
+
sessionId: string;
|
|
48
|
+
agentKey: string;
|
|
49
|
+
createdAt?: string;
|
|
50
|
+
lastActiveAt?: string;
|
|
51
|
+
mode: string;
|
|
52
|
+
latestRunId?: string;
|
|
53
|
+
metadata?: Record<string, unknown>;
|
|
54
|
+
}
|
|
55
|
+
interface TouchStoredSessionInput {
|
|
56
|
+
sessionId: string;
|
|
57
|
+
lastActiveAt?: string;
|
|
58
|
+
mode?: string;
|
|
59
|
+
latestRunId?: string;
|
|
60
|
+
metadata?: Record<string, unknown>;
|
|
61
|
+
}
|
|
62
|
+
interface CreateStoredRunInput {
|
|
63
|
+
runId: string;
|
|
64
|
+
sessionId: string;
|
|
65
|
+
agentKey: string;
|
|
66
|
+
createdAt?: string;
|
|
67
|
+
mode: string;
|
|
68
|
+
outputDir?: string;
|
|
69
|
+
metadata?: Record<string, unknown>;
|
|
70
|
+
}
|
|
71
|
+
declare abstract class HarnessRunStorage {
|
|
72
|
+
abstract readonly id: string;
|
|
73
|
+
label?: string;
|
|
74
|
+
abstract openRun(input: OpenRunStoreInput): Promise<HarnessRunStore> | HarnessRunStore;
|
|
75
|
+
}
|
|
76
|
+
declare abstract class HarnessSessionStorage {
|
|
77
|
+
abstract readonly id: string;
|
|
78
|
+
label?: string;
|
|
79
|
+
init?(): Promise<void> | void;
|
|
80
|
+
abstract createSession(input: CreateStoredSessionInput): Promise<HarnessSessionSummary> | HarnessSessionSummary;
|
|
81
|
+
abstract getSession(sessionId: string): Promise<HarnessSessionSummary | undefined> | HarnessSessionSummary | undefined;
|
|
82
|
+
abstract listSessions(query?: SessionListQuery): Promise<SessionListResult> | SessionListResult;
|
|
83
|
+
abstract touchSession(input: TouchStoredSessionInput): Promise<void> | void;
|
|
84
|
+
abstract deleteSession(sessionId: string): Promise<boolean> | boolean;
|
|
85
|
+
abstract createRun(input: CreateStoredRunInput): Promise<StoredRunSummary> | StoredRunSummary;
|
|
86
|
+
abstract getLatestRun(sessionId: string): Promise<StoredRunSummary | undefined> | StoredRunSummary | undefined;
|
|
87
|
+
abstract listRuns(sessionId: string): Promise<StoredRunSummary[]> | StoredRunSummary[];
|
|
88
|
+
abstract openRun(input: OpenRunStoreInput): Promise<HarnessRunStore> | HarnessRunStore;
|
|
89
|
+
}
|
|
90
|
+
declare abstract class HarnessRunStore {
|
|
91
|
+
abstract readonly runId: string;
|
|
92
|
+
readonly outputDir?: string;
|
|
93
|
+
readonly runDir?: string;
|
|
94
|
+
abstract init(): Promise<void> | void;
|
|
95
|
+
abstract recordEvent(event: HarnessEventRecord): Promise<void> | void;
|
|
96
|
+
abstract loadEvents(): Promise<HarnessEventRecord[]> | HarnessEventRecord[];
|
|
97
|
+
abstract saveTranscript(messages: AgentMessage[]): Promise<void> | void;
|
|
98
|
+
abstract loadTranscript(): Promise<AgentMessage[]> | AgentMessage[];
|
|
99
|
+
abstract saveMetrics(metrics: RunMetrics): Promise<void> | void;
|
|
100
|
+
abstract saveSnapshot(snapshot: HarnessSnapshot): Promise<void> | void;
|
|
101
|
+
abstract loadSnapshots(): Promise<HarnessSnapshot[]> | HarnessSnapshot[];
|
|
102
|
+
abstract deleteSnapshot(id: string): Promise<void> | void;
|
|
103
|
+
abstract saveCursors(cursors: RunCursorState): Promise<void> | void;
|
|
104
|
+
abstract loadCursors(): Promise<RunCursorState | undefined> | RunCursorState | undefined;
|
|
105
|
+
abstract saveContextSnapshot(snapshot: ContextSnapshot): Promise<void> | void;
|
|
106
|
+
abstract loadContextSnapshots(): Promise<ContextSnapshot[]> | ContextSnapshot[];
|
|
107
|
+
close?(): Promise<void>;
|
|
108
|
+
}
|
|
109
|
+
declare class NoopRunStorage extends HarnessRunStorage {
|
|
110
|
+
readonly id = "noop";
|
|
111
|
+
label: string;
|
|
112
|
+
openRun(input: OpenRunStoreInput): HarnessRunStore;
|
|
113
|
+
}
|
|
114
|
+
declare class NoopRunStore extends HarnessRunStore {
|
|
115
|
+
readonly runId: string;
|
|
116
|
+
readonly outputDir: undefined;
|
|
117
|
+
readonly runDir: undefined;
|
|
118
|
+
constructor(runId: string);
|
|
119
|
+
init(): void;
|
|
120
|
+
recordEvent(_event: HarnessEventRecord): void;
|
|
121
|
+
loadEvents(): HarnessEventRecord[];
|
|
122
|
+
saveTranscript(_messages: AgentMessage[]): void;
|
|
123
|
+
loadTranscript(): AgentMessage[];
|
|
124
|
+
saveMetrics(_metrics: RunMetrics): void;
|
|
125
|
+
saveSnapshot(_snapshot: HarnessSnapshot): void;
|
|
126
|
+
loadSnapshots(): HarnessSnapshot[];
|
|
127
|
+
deleteSnapshot(_id: string): void;
|
|
128
|
+
saveCursors(_cursors: RunCursorState): void;
|
|
129
|
+
loadCursors(): RunCursorState | undefined;
|
|
130
|
+
saveContextSnapshot(_snapshot: ContextSnapshot): void;
|
|
131
|
+
loadContextSnapshots(): ContextSnapshot[];
|
|
132
|
+
}
|
|
133
|
+
interface MemoryRunState {
|
|
134
|
+
events: HarnessEventRecord[];
|
|
135
|
+
transcript: AgentMessage[];
|
|
136
|
+
metrics?: RunMetrics;
|
|
137
|
+
snapshots: Map<string, HarnessSnapshot>;
|
|
138
|
+
cursors?: RunCursorState;
|
|
139
|
+
contextSnapshots: Map<string, ContextSnapshot>;
|
|
140
|
+
}
|
|
141
|
+
declare class MemoryRunStorage extends HarnessRunStorage {
|
|
142
|
+
readonly id = "memory";
|
|
143
|
+
label: string;
|
|
144
|
+
private readonly runs;
|
|
145
|
+
openRun(input: OpenRunStoreInput): HarnessRunStore;
|
|
146
|
+
}
|
|
147
|
+
declare class MemorySessionStorage extends HarnessSessionStorage {
|
|
148
|
+
readonly id = "memory-session";
|
|
149
|
+
label: string;
|
|
150
|
+
private readonly sessions;
|
|
151
|
+
private readonly runStates;
|
|
152
|
+
createSession(input: CreateStoredSessionInput): HarnessSessionSummary;
|
|
153
|
+
getSession(sessionId: string): HarnessSessionSummary | undefined;
|
|
154
|
+
listSessions(query?: SessionListQuery): SessionListResult;
|
|
155
|
+
touchSession(input: TouchStoredSessionInput): void;
|
|
156
|
+
deleteSession(sessionId: string): boolean;
|
|
157
|
+
createRun(input: CreateStoredRunInput): StoredRunSummary;
|
|
158
|
+
getLatestRun(sessionId: string): StoredRunSummary | undefined;
|
|
159
|
+
listRuns(sessionId: string): StoredRunSummary[];
|
|
160
|
+
openRun(input: OpenRunStoreInput): HarnessRunStore;
|
|
161
|
+
}
|
|
162
|
+
declare class MemoryRunStore extends HarnessRunStore {
|
|
163
|
+
readonly runId: string;
|
|
164
|
+
private readonly state;
|
|
165
|
+
readonly outputDir: undefined;
|
|
166
|
+
readonly runDir: undefined;
|
|
167
|
+
constructor(runId: string, state: MemoryRunState);
|
|
168
|
+
init(): void;
|
|
169
|
+
recordEvent(event: HarnessEventRecord): void;
|
|
170
|
+
loadEvents(): HarnessEventRecord[];
|
|
171
|
+
saveTranscript(messages: AgentMessage[]): void;
|
|
172
|
+
loadTranscript(): AgentMessage[];
|
|
173
|
+
saveMetrics(metrics: RunMetrics): void;
|
|
174
|
+
saveSnapshot(snapshot: HarnessSnapshot): void;
|
|
175
|
+
loadSnapshots(): HarnessSnapshot[];
|
|
176
|
+
deleteSnapshot(id: string): void;
|
|
177
|
+
saveCursors(cursors: RunCursorState): void;
|
|
178
|
+
loadCursors(): RunCursorState | undefined;
|
|
179
|
+
saveContextSnapshot(snapshot: ContextSnapshot): void;
|
|
180
|
+
loadContextSnapshots(): ContextSnapshot[];
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
export { type CreateStoredRunInput, type CreateStoredSessionInput, HarnessRunStorage, HarnessRunStore, HarnessSessionStorage, type HarnessSessionSummary, MemoryRunStorage, MemoryRunStore, MemorySessionStorage, NoopRunStorage, NoopRunStore, type OpenRunStoreInput, type RunCursorState, type SessionListQuery, type SessionListResult, type StoredRunSummary, type TouchStoredSessionInput };
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { A as AgentDefinition } from './model-provider-
|
|
5
|
-
import {
|
|
1
|
+
import { j as HarnessEventQuery, k as HarnessEventRecord, f as HarnessEvent, g as HarnessEventClass } from './errors-hpkW3tfR.js';
|
|
2
|
+
import { ad as HarnessTranscriptSession, a8 as HarnessSnapshotSession, a2 as HarnessModeSelector, r as AgentSharedState, M as ContextSnapshot } from './context-Bz9C_rL9.js';
|
|
3
|
+
import { e as HarnessSession, b as HarnessAppConfig, o as HarnessUserInput, S as SendOptions, p as SendResult, q as StreamOptions, d as HarnessRunStream, i as HarnessSessionStatus, a as HarnessAgentManifest, T as ToolApprovalHandle, g as HarnessSessionListener, f as HarnessSessionEventListener, W as WaitForEventOptions, j as HarnessSessionStore, l as HarnessSessionStoreListener } from './approval-7e8HD-35.js';
|
|
4
|
+
import { A as AgentDefinition } from './model-provider-DGkLQJWP.js';
|
|
5
|
+
import { SandboxCloseInput } from './runner/sandbox.js';
|
|
6
|
+
import { HarnessSessionSummary, SessionListQuery, SessionListResult } from './runner/storage.js';
|
|
7
|
+
import './errors-DHHy8V3O.js';
|
|
6
8
|
|
|
7
9
|
interface CreateHarnessSessionInternalOptions {
|
|
8
10
|
sessionId?: string;
|
|
@@ -50,7 +52,7 @@ declare class HarnessSessionImpl implements HarnessSession {
|
|
|
50
52
|
on(listener: HarnessSessionListener): () => void;
|
|
51
53
|
onEvent<TPayload, TEvent extends HarnessEvent<TPayload>>(eventClass: HarnessEventClass<TPayload, TEvent>, listener: HarnessSessionEventListener<TEvent>): () => void;
|
|
52
54
|
waitForEvent<TPayload, TEvent extends HarnessEvent<TPayload>>(eventClass: HarnessEventClass<TPayload, TEvent>, options?: WaitForEventOptions): Promise<TEvent>;
|
|
53
|
-
close(): Promise<void>;
|
|
55
|
+
close(input?: SandboxCloseInput): Promise<void>;
|
|
54
56
|
hydrate(): Promise<void>;
|
|
55
57
|
private notify;
|
|
56
58
|
private notifyStatus;
|
|
@@ -59,6 +61,7 @@ declare class HarnessSessionImpl implements HarnessSession {
|
|
|
59
61
|
private resolveModeSelector;
|
|
60
62
|
private requestToolApproval;
|
|
61
63
|
private cancelActiveRun;
|
|
64
|
+
private closeAfterFatal;
|
|
62
65
|
}
|
|
63
66
|
declare function createHarnessSession(config: HarnessAppConfig, options?: CreateHarnessSessionInternalOptions): Promise<HarnessSession>;
|
|
64
67
|
|
|
@@ -67,6 +70,7 @@ declare class HarnessSessionStoreImpl implements HarnessSessionStore {
|
|
|
67
70
|
private readonly sessions;
|
|
68
71
|
private readonly unsubscriptions;
|
|
69
72
|
private readonly latestRunIds;
|
|
73
|
+
private readonly sessionSandboxes;
|
|
70
74
|
private readonly listeners;
|
|
71
75
|
private readonly storage;
|
|
72
76
|
private closed;
|
|
@@ -88,6 +92,7 @@ declare class HarnessSessionStoreImpl implements HarnessSessionStore {
|
|
|
88
92
|
getAgentManifest(sessionId: string): HarnessAgentManifest | undefined;
|
|
89
93
|
on(listener: HarnessSessionStoreListener): () => void;
|
|
90
94
|
private notify;
|
|
95
|
+
private closeTrackedSession;
|
|
91
96
|
}
|
|
92
97
|
declare function createHarnessSessionStore(config: HarnessAppConfig): Promise<HarnessSessionStore>;
|
|
93
98
|
|
package/dist/runner.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
export { c as createHarnessSession, b as createHarnessSessionStore } from './runner-
|
|
2
|
-
export { a as HarnessAgentManifest, b as HarnessAppConfig,
|
|
3
|
-
export { E as EventCursor } from './
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
|
|
1
|
+
export { c as createHarnessSession, b as createHarnessSessionStore } from './runner-BYG9ARAV.js';
|
|
2
|
+
export { a as HarnessAgentManifest, b as HarnessAppConfig, d as HarnessRunStream, e as HarnessSession, f as HarnessSessionEventListener, g as HarnessSessionListener, h as HarnessSessionPhase, i as HarnessSessionStatus, j as HarnessSessionStore, k as HarnessSessionStoreEvent, l as HarnessSessionStoreListener, n as HarnessStreamEvent, o as HarnessUserInput, S as SendOptions, p as SendResult, q as StreamOptions, W as WaitForEventOptions } from './approval-7e8HD-35.js';
|
|
3
|
+
export { E as EventCursor, H as HarnessErrorCategory, a as HarnessErrorCode, b as HarnessErrorContext, c as HarnessErrorPolicy, d as HarnessErrorSeverity, e as HarnessErrorShape, m as HarnessRetryPolicy } from './errors-hpkW3tfR.js';
|
|
4
|
+
export { a5 as HarnessSnapshot, a6 as HarnessSnapshotCreator, a7 as HarnessSnapshotInput, a8 as HarnessSnapshotSession, a9 as HarnessSnapshotSummary, ad as HarnessTranscriptSession, an as TranscriptBranch, ao as TranscriptCursor, ap as TranscriptQuery, aq as TranscriptSeekTarget } from './context-Bz9C_rL9.js';
|
|
5
|
+
export { HarnessSessionSummary, SessionListQuery, SessionListResult } from './runner/storage.js';
|
|
6
|
+
export { n as normalizeHarnessError, s as sanitizeHarnessError } from './errors-DHHy8V3O.js';
|
|
7
|
+
import './model-provider-DGkLQJWP.js';
|
|
7
8
|
import './role-BN6KhQxx.js';
|
|
8
9
|
import './runner/sandbox.js';
|
|
9
|
-
import './hook-
|
|
10
|
-
import './
|
|
10
|
+
import './hook-DD7uuzE3.js';
|
|
11
|
+
import './metrics-DMN8bfY6.js';
|
package/dist/runner.js
CHANGED
|
@@ -2,17 +2,23 @@ import {
|
|
|
2
2
|
HarnessSessionPhase,
|
|
3
3
|
createHarnessSession,
|
|
4
4
|
createHarnessSessionStore
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-BLLQSHQI.js";
|
|
6
6
|
import "./chunk-Q73WH5D7.js";
|
|
7
|
-
import
|
|
8
|
-
|
|
7
|
+
import {
|
|
8
|
+
normalizeHarnessError,
|
|
9
|
+
sanitizeHarnessError
|
|
10
|
+
} from "./chunk-2NQ3JL7K.js";
|
|
11
|
+
import "./chunk-IWHCNKHK.js";
|
|
9
12
|
import "./chunk-ONYDIU4X.js";
|
|
10
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-NCSQEUQC.js";
|
|
14
|
+
import "./chunk-3QOAFCCZ.js";
|
|
11
15
|
import "./chunk-OBKS4AJR.js";
|
|
12
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-TCHZYK5Y.js";
|
|
13
17
|
export {
|
|
14
18
|
HarnessSessionPhase,
|
|
15
19
|
createHarnessSession,
|
|
16
|
-
createHarnessSessionStore
|
|
20
|
+
createHarnessSessionStore,
|
|
21
|
+
normalizeHarnessError,
|
|
22
|
+
sanitizeHarnessError
|
|
17
23
|
};
|
|
18
24
|
//# sourceMappingURL=runner.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@harness-kernel/core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Pure runtime contracts and session kernel for Harness Kernel.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"scripts": {
|
|
104
104
|
"build": "tsup",
|
|
105
105
|
"typecheck": "tsc --noEmit",
|
|
106
|
-
"test": "tsx src/schema/schema.test.ts && tsx src/runtime/events-schema.test.ts && tsx src/engine/provider-registry.test.ts && tsx src/session/model-resolution.test.ts && tsx src/session/tool-approval.test.ts && tsx src/session/session-store.test.ts && tsx src/boundaries.test.ts"
|
|
106
|
+
"test": "tsx src/schema/schema.test.ts && tsx src/runtime/errors.test.ts && tsx src/runtime/events-schema.test.ts && tsx src/logging/normalize.test.ts && tsx src/engine/provider-registry.test.ts && tsx src/session/model-resolution.test.ts && tsx src/session/tool-approval.test.ts && tsx src/session/session-store.test.ts && tsx src/session/queue.test.ts && tsx src/session/error-policy.test.ts && tsx src/boundaries.test.ts"
|
|
107
107
|
},
|
|
108
108
|
"devDependencies": {
|
|
109
109
|
"zod": "^4.4.3"
|
|
@@ -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":[]}
|