@agentium/harness 4.1.0 → 4.6.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.
Files changed (49) hide show
  1. package/CONVERSATIONAL-RUNS.md +173 -0
  2. package/README.md +13 -5
  3. package/dist/definition.d.cts +39 -0
  4. package/dist/{driver-Cr2BGG4h.cjs → driver-Bh_wLWCP.cjs} +285 -15
  5. package/dist/{driver-BvzvqvpB.js → driver-reTLBJ_o.js} +280 -16
  6. package/dist/drivers.d.cts +14 -0
  7. package/dist/drivers.d.ts.map +1 -1
  8. package/dist/index.cjs +103 -46
  9. package/dist/index.d.cts +19 -0
  10. package/dist/index.d.ts +4 -1
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +103 -48
  13. package/dist/input-tool.d.cts +7 -0
  14. package/dist/input-tool.d.ts +7 -0
  15. package/dist/input-tool.d.ts.map +1 -0
  16. package/dist/mcp-resources.d.cts +42 -0
  17. package/dist/policies.d.cts +31 -0
  18. package/dist/policies.d.ts +2 -0
  19. package/dist/policies.d.ts.map +1 -1
  20. package/dist/presets.d.cts +41 -0
  21. package/dist/runtime/context-policy.d.cts +21 -0
  22. package/dist/runtime/context-policy.d.ts +1 -0
  23. package/dist/runtime/context-policy.d.ts.map +1 -1
  24. package/dist/runtime/context.d.cts +15 -0
  25. package/dist/runtime/controller.d.cts +51 -0
  26. package/dist/runtime/driver.d.cts +157 -0
  27. package/dist/runtime/driver.d.ts +14 -3
  28. package/dist/runtime/driver.d.ts.map +1 -1
  29. package/dist/runtime/events.d.cts +116 -0
  30. package/dist/runtime/events.d.ts +35 -2
  31. package/dist/runtime/events.d.ts.map +1 -1
  32. package/dist/runtime/index.d.cts +9 -0
  33. package/dist/runtime/input.d.cts +46 -0
  34. package/dist/runtime/input.d.ts +46 -0
  35. package/dist/runtime/input.d.ts.map +1 -0
  36. package/dist/runtime/middleware.d.cts +10 -0
  37. package/dist/runtime/resolve.d.cts +20 -0
  38. package/dist/runtime/runtime-registry.d.cts +35 -0
  39. package/dist/runtime/session-bindings.d.cts +60 -0
  40. package/dist/runtime/types.d.cts +176 -0
  41. package/dist/testing.cjs +1 -1
  42. package/dist/testing.d.cts +7 -0
  43. package/dist/testing.js +1 -1
  44. package/dist/watch/definition.d.cts +11 -0
  45. package/dist/watch/gmail.d.cts +104 -0
  46. package/dist/watch/quiet-hours.d.cts +10 -0
  47. package/dist/watch/runtime.d.cts +42 -0
  48. package/dist/watch/types.d.cts +147 -0
  49. package/package.json +21 -10
@@ -0,0 +1,21 @@
1
+ import type { ChatMessage, RunContext } from "@agentium/core";
2
+ import type { HarnessContextEntry } from "./types.cjs";
3
+ export interface ContextProjection {
4
+ messages: ChatMessage[];
5
+ provenance: readonly {
6
+ sourceId: string;
7
+ included: boolean;
8
+ reason?: string;
9
+ }[];
10
+ }
11
+ export interface ContextPolicy {
12
+ id: string;
13
+ grouping?: import("@agentium/core").ConversationGrouping;
14
+ project: (input: {
15
+ history: readonly ChatMessage[];
16
+ entries: readonly HarnessContextEntry[];
17
+ }, ctx: RunContext) => Promise<ContextProjection>;
18
+ }
19
+ /** Request projections never mutate the canonical history. */
20
+ export declare function projectHarnessContext(policy: ContextPolicy | undefined, history: readonly ChatMessage[], ctx: RunContext, entries?: readonly HarnessContextEntry[]): Promise<ContextProjection>;
21
+ //# sourceMappingURL=context-policy.d.ts.map
@@ -10,6 +10,7 @@ export interface ContextProjection {
10
10
  }
11
11
  export interface ContextPolicy {
12
12
  id: string;
13
+ grouping?: import("@agentium/core").ConversationGrouping;
13
14
  project: (input: {
14
15
  history: readonly ChatMessage[];
15
16
  entries: readonly HarnessContextEntry[];
@@ -1 +1 @@
1
- {"version":3,"file":"context-policy.d.ts","sourceRoot":"","sources":["../../src/runtime/context-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,UAAU,EAAE,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACjF;AACD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,CACP,KAAK,EAAE;QAAE,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;QAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAA;KAAE,EACnF,GAAG,EAAE,UAAU,KACZ,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACjC;AACD,8DAA8D;AAC9D,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,SAAS,mBAAmB,EAAO,GAC3C,OAAO,CAAC,iBAAiB,CAAC,CAiB5B"}
1
+ {"version":3,"file":"context-policy.d.ts","sourceRoot":"","sources":["../../src/runtime/context-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEtD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,UAAU,EAAE,SAAS;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACjF;AACD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,OAAO,gBAAgB,EAAE,oBAAoB,CAAC;IACzD,OAAO,EAAE,CACP,KAAK,EAAE;QAAE,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;QAAC,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAA;KAAE,EACnF,GAAG,EAAE,UAAU,KACZ,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACjC;AACD,8DAA8D;AAC9D,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,aAAa,GAAG,SAAS,EACjC,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,GAAG,EAAE,UAAU,EACf,OAAO,GAAE,SAAS,mBAAmB,EAAO,GAC3C,OAAO,CAAC,iBAAiB,CAAC,CAiB5B"}
@@ -0,0 +1,15 @@
1
+ import type { ChatMessage } from "@agentium/core";
2
+ import { RunContext } from "@agentium/core";
3
+ import type { HarnessContextBudget, HarnessContextSource } from "./types.cjs";
4
+ export interface HarnessContextDiagnostic {
5
+ sourceId: string;
6
+ entryId?: string;
7
+ code: "expired" | "invalid" | "truncated" | "budget" | "deadline" | "failed" | "trust_downgraded";
8
+ message: string;
9
+ }
10
+ /** All limits apply across every source. Tokens are centrally estimated, never accepted from the source. */
11
+ export declare function fetchHarnessContext(sources: readonly HarnessContextSource[], query: string, ctx: RunContext, configured?: Partial<HarnessContextBudget>): Promise<{
12
+ messages: ChatMessage[];
13
+ diagnostics: HarnessContextDiagnostic[];
14
+ }>;
15
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1,51 @@
1
+ import type { ModelConfig, ModelResponse, RunContext, ToolDefinition } from "@agentium/core";
2
+ import type { ContextPolicy } from "./context-policy.cjs";
3
+ export interface StepOverrides {
4
+ activeToolIds?: readonly string[];
5
+ modelRole?: string;
6
+ options?: ModelConfig;
7
+ contextPolicy?: ContextPolicy;
8
+ stop?: {
9
+ reason: string;
10
+ };
11
+ }
12
+ export interface StepController {
13
+ id: string;
14
+ prepareRun?: (ctx: RunContext) => Promise<StepOverrides | undefined>;
15
+ prepareStep?: (step: {
16
+ index: number;
17
+ tools: readonly ToolDefinition[];
18
+ }, ctx: RunContext) => Promise<StepOverrides | undefined>;
19
+ }
20
+ export type CompletionDecision = {
21
+ action: "accept";
22
+ reason: string;
23
+ evidence?: readonly string[];
24
+ } | {
25
+ action: "revise";
26
+ reason: string;
27
+ instruction: string;
28
+ evidence?: readonly string[];
29
+ } | {
30
+ action: "await_input" | "stop";
31
+ reason: string;
32
+ evidence?: readonly string[];
33
+ };
34
+ export interface CompletionPolicy {
35
+ id: string;
36
+ evaluate: (response: {
37
+ text: string;
38
+ structured?: unknown;
39
+ revision: number;
40
+ }, ctx: RunContext) => Promise<CompletionDecision>;
41
+ }
42
+ export interface ModelRoleBinding {
43
+ provider: import("@agentium/core").ModelProvider;
44
+ /** Explicit allowlist of ModelConfig keys supported by this binding. */
45
+ options?: readonly (keyof ModelConfig)[];
46
+ }
47
+ export interface ModelInvocation {
48
+ response: ModelResponse;
49
+ modelRole: string;
50
+ }
51
+ //# sourceMappingURL=controller.d.ts.map
@@ -0,0 +1,157 @@
1
+ import type { ApprovalManager, ChatMessage, ExecutionPolicy, ExecutionServices, InputReply, InputRequest, InputRequestOptions, MessageContent, ModelConfig, ModelResponse, RunMode, TokenUsage, ToolDef } from "@agentium/core";
2
+ import { EventBus, RunContext } from "@agentium/core";
3
+ import type { ContextPolicy } from "./context-policy.cjs";
4
+ import type { CompletionPolicy, ModelRoleBinding, StepController } from "./controller.cjs";
5
+ import { type HarnessEvent, type HarnessEventPayload, type HarnessReason, type HarnessResult, type HarnessStatus } from "./events.cjs";
6
+ import { type HarnessIdentity, HarnessResourcePool, type HarnessSessionStore, type ScopedResource } from "./session-bindings.cjs";
7
+ import type { HarnessDefinition } from "./types.cjs";
8
+ export type HarnessSendMode = "follow_up" | "steer" | "replace";
9
+ export declare class HarnessUnsupportedError extends Error {
10
+ readonly operation: string;
11
+ readonly code = "unsupported";
12
+ constructor(operation: string);
13
+ }
14
+ export declare class HarnessBudgetError extends Error {
15
+ readonly code = "budget_exhausted";
16
+ constructor(message: string);
17
+ }
18
+ export interface HarnessGrants {
19
+ toolIds: readonly string[];
20
+ requiredToolIds?: readonly string[];
21
+ modelRoles: readonly string[];
22
+ }
23
+ export interface HarnessBudgets {
24
+ maxModelCalls?: number;
25
+ maxToolCalls?: number;
26
+ maxTokens?: number;
27
+ maxRevisions?: number;
28
+ }
29
+ export interface HarnessRunRequest {
30
+ input: MessageContent;
31
+ identity: HarnessIdentity;
32
+ sessionId: string;
33
+ runId: string;
34
+ attemptId: string;
35
+ parentRunId?: string;
36
+ rootRunId: string;
37
+ signal: AbortSignal;
38
+ deadline?: number;
39
+ grants: HarnessGrants;
40
+ runMode: RunMode;
41
+ }
42
+ export interface HarnessDriverOutput {
43
+ status?: HarnessStatus;
44
+ text: string;
45
+ structured?: unknown;
46
+ reason?: HarnessReason;
47
+ usage?: TokenUsage;
48
+ history?: readonly ChatMessage[];
49
+ artifacts?: readonly {
50
+ id: string;
51
+ mimeType?: string;
52
+ }[];
53
+ }
54
+ export interface ExecutionDriver {
55
+ id: string;
56
+ version: number;
57
+ capabilities: {
58
+ controls: readonly HarnessSendMode[];
59
+ durable: boolean;
60
+ policyCoverage: "local" | "remote" | "none";
61
+ /** True only when each model/tool operation uses provided execution services. */
62
+ controlledExecution: boolean;
63
+ };
64
+ start: (request: HarnessRunRequest, services: HarnessExecutionServices) => Promise<HarnessDriverOutput>;
65
+ }
66
+ export interface HarnessExecutionServices extends ExecutionServices {
67
+ readonly definitionId?: string;
68
+ /** Agent-specific declarative options interpreted only by the configured Agent driver. */
69
+ readonly agentConfiguration?: {
70
+ defaults: import("./types.cjs").HarnessDefaults;
71
+ limits: NonNullable<import("./types.cjs").HarnessManifest["limits"]>;
72
+ projectRoot: string;
73
+ };
74
+ /** Independent, tool-free policy call using an explicitly granted host role and shared budgets.
75
+ * Skips task controllers, context projection and middleware to avoid policy recursion.
76
+ */
77
+ controlModel(role: string, messages: readonly ChatMessage[], options?: Pick<ModelConfig, "maxTokens" | "temperature">): Promise<ModelResponse>;
78
+ append(messages: readonly ChatMessage[]): void;
79
+ emit(payload: Exclude<HarnessEventPayload, {
80
+ type: "run.terminal" | "run.started";
81
+ }>): void;
82
+ requestInput(request: InputRequestOptions): Promise<InputReply>;
83
+ takeInput(context?: RunContext): {
84
+ id: string;
85
+ input: MessageContent;
86
+ mode: HarnessSendMode;
87
+ } | undefined;
88
+ resource<T>(id: string, scope: "host" | "session" | "run", initialize: () => Promise<ScopedResource<T>>): Promise<T>;
89
+ putArtifact(value: unknown): string;
90
+ getArtifact(id: string): unknown;
91
+ }
92
+ export type HarnessRunState = "running" | "awaiting_input" | "cancelling" | "finished";
93
+ export interface RunHandle {
94
+ readonly runId: string;
95
+ /** Live state; waiting never resolves result(). */
96
+ readonly state: HarnessRunState;
97
+ readonly pendingInput: InputRequest | undefined;
98
+ reply(requestId: string, input: MessageContent): Promise<void>;
99
+ events(options?: {
100
+ after?: number;
101
+ }): AsyncGenerator<HarnessEvent>;
102
+ result(): Promise<HarnessResult>;
103
+ cancel(reason?: string): void;
104
+ send(input: MessageContent, options: {
105
+ mode: HarnessSendMode;
106
+ }): Promise<void>;
107
+ }
108
+ export interface HarnessRuntimeConfig {
109
+ /** Optional observer bus for the runtime and its direct model/controller calls.
110
+ * Keep Agent instrumentation on its own bus to avoid counting the same call twice. */
111
+ telemetry?: EventBus;
112
+ driver?: ExecutionDriver;
113
+ definition?: HarnessDefinition;
114
+ projectRoot?: string;
115
+ requirements?: readonly string[];
116
+ tools?: readonly ToolDef[];
117
+ models?: Readonly<Record<string, ModelRoleBinding>>;
118
+ grants: HarnessGrants;
119
+ budgets?: HarnessBudgets;
120
+ executionPolicy?: ExecutionPolicy;
121
+ approvalManager?: ApprovalManager;
122
+ controller?: StepController;
123
+ contextPolicy?: ContextPolicy;
124
+ completionPolicy?: CompletionPolicy;
125
+ /** Explicit opt-in to new tool effects in completion revisions. */
126
+ allowRevisionEffects?: boolean;
127
+ sessionStore?: HarnessSessionStore;
128
+ resources?: HarnessResourcePool;
129
+ eventCapacity?: number;
130
+ /** Active wall time, excluding a pending user question. */
131
+ activeTimeoutMs?: number;
132
+ /** Maximum wait per question. Omit to wait until reply, cancellation or deadline. */
133
+ inputTimeoutMs?: number;
134
+ }
135
+ export interface HarnessStartOptions {
136
+ identity: HarnessIdentity;
137
+ sessionId: string;
138
+ parentRunId?: string;
139
+ rootRunId?: string;
140
+ signal?: AbortSignal;
141
+ deadline?: number;
142
+ grants?: HarnessGrants;
143
+ runMode?: RunMode;
144
+ }
145
+ /** Local lifecycle owner. Custom driver code is trusted; services enforce all intercepted effects. */
146
+ export declare class HarnessRuntime {
147
+ readonly sessions: HarnessSessionStore;
148
+ readonly resources: HarnessResourcePool;
149
+ private config;
150
+ private artifacts;
151
+ getArtifact(identity: HarnessIdentity, sessionId: string, id: string): unknown;
152
+ constructor(config: HarnessRuntimeConfig);
153
+ run(input: MessageContent, options: HarnessStartOptions): Promise<HarnessResult>;
154
+ stream(input: MessageContent, options: HarnessStartOptions): AsyncGenerator<HarnessEvent>;
155
+ start(input: MessageContent, options: HarnessStartOptions): RunHandle;
156
+ }
157
+ //# sourceMappingURL=driver.d.ts.map
@@ -1,5 +1,5 @@
1
- import type { ApprovalManager, ChatMessage, ExecutionPolicy, ExecutionServices, MessageContent, ModelConfig, ModelResponse, RunMode, TokenUsage, ToolDef } from "@agentium/core";
2
- import { EventBus } from "@agentium/core";
1
+ import type { ApprovalManager, ChatMessage, ExecutionPolicy, ExecutionServices, InputReply, InputRequest, InputRequestOptions, MessageContent, ModelConfig, ModelResponse, RunMode, TokenUsage, ToolDef } from "@agentium/core";
2
+ import { EventBus, RunContext } from "@agentium/core";
3
3
  import type { ContextPolicy } from "./context-policy.js";
4
4
  import type { CompletionPolicy, ModelRoleBinding, StepController } from "./controller.js";
5
5
  import { type HarnessEvent, type HarnessEventPayload, type HarnessReason, type HarnessResult, type HarnessStatus } from "./events.js";
@@ -79,7 +79,9 @@ export interface HarnessExecutionServices extends ExecutionServices {
79
79
  emit(payload: Exclude<HarnessEventPayload, {
80
80
  type: "run.terminal" | "run.started";
81
81
  }>): void;
82
- takeInput(): {
82
+ requestInput(request: InputRequestOptions): Promise<InputReply>;
83
+ takeInput(context?: RunContext): {
84
+ id: string;
83
85
  input: MessageContent;
84
86
  mode: HarnessSendMode;
85
87
  } | undefined;
@@ -87,8 +89,13 @@ export interface HarnessExecutionServices extends ExecutionServices {
87
89
  putArtifact(value: unknown): string;
88
90
  getArtifact(id: string): unknown;
89
91
  }
92
+ export type HarnessRunState = "running" | "awaiting_input" | "cancelling" | "finished";
90
93
  export interface RunHandle {
91
94
  readonly runId: string;
95
+ /** Live state; waiting never resolves result(). */
96
+ readonly state: HarnessRunState;
97
+ readonly pendingInput: InputRequest | undefined;
98
+ reply(requestId: string, input: MessageContent): Promise<void>;
92
99
  events(options?: {
93
100
  after?: number;
94
101
  }): AsyncGenerator<HarnessEvent>;
@@ -120,6 +127,10 @@ export interface HarnessRuntimeConfig {
120
127
  sessionStore?: HarnessSessionStore;
121
128
  resources?: HarnessResourcePool;
122
129
  eventCapacity?: number;
130
+ /** Active wall time, excluding a pending user question. */
131
+ activeTimeoutMs?: number;
132
+ /** Maximum wait per question. Omit to wait until reply, cancellation or deadline. */
133
+ inputTimeoutMs?: number;
123
134
  }
124
135
  export interface HarnessStartOptions {
125
136
  identity: HarnessIdentity;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/runtime/driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/runtime/driver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ import type { InputRequest, PublicMessageEvent, TokenUsage } from "@agentium/core";
2
+ /** Terminal result status. awaiting_input is legacy-only; new live waits use RunHandle.state. */
3
+ export type HarnessStatus = "completed" | "failed" | "cancelled" | "stopped" | "awaiting_input";
4
+ export interface HarnessReason {
5
+ code: string;
6
+ message: string;
7
+ }
8
+ export interface HarnessResult {
9
+ status: HarnessStatus;
10
+ text: string;
11
+ structured?: unknown;
12
+ artifacts?: readonly {
13
+ id: string;
14
+ mimeType?: string;
15
+ }[];
16
+ reason?: HarnessReason;
17
+ usage: TokenUsage;
18
+ runId: string;
19
+ sessionId: string;
20
+ finalCursor: number;
21
+ cleanupDiagnostics?: readonly string[];
22
+ }
23
+ export type HarnessEventPayload = PublicMessageEvent | {
24
+ type: "compaction.started";
25
+ compactionId: string;
26
+ policyId: string;
27
+ beforeTokens: number;
28
+ } | {
29
+ type: "compaction.completed";
30
+ compactionId: string;
31
+ policyId: string;
32
+ afterTokens: number;
33
+ } | {
34
+ type: "compaction.failed";
35
+ compactionId: string;
36
+ policyId: string;
37
+ reason: string;
38
+ } | {
39
+ type: "run.started";
40
+ driverId: string;
41
+ } | {
42
+ type: "text.delta";
43
+ text: string;
44
+ } | {
45
+ type: "input.requested";
46
+ request: InputRequest;
47
+ } | {
48
+ type: "input.resolved";
49
+ requestId: string;
50
+ } | {
51
+ type: "run.resumed";
52
+ requestId: string;
53
+ } | {
54
+ type: "input.received";
55
+ inputId: string;
56
+ mode: "steer" | "follow_up";
57
+ } | {
58
+ type: "input.applied";
59
+ inputId: string;
60
+ mode: "steer" | "follow_up";
61
+ } | {
62
+ type: "model.complete";
63
+ providerId: string;
64
+ modelId: string;
65
+ usage: TokenUsage;
66
+ } | {
67
+ type: "tool.complete";
68
+ toolName: string;
69
+ toolCallId: string;
70
+ denied: boolean;
71
+ } | {
72
+ type: "control";
73
+ operation: "cancel" | "follow_up" | "steer" | "replace";
74
+ reason?: string;
75
+ } | {
76
+ type: "completion";
77
+ action: string;
78
+ reason: string;
79
+ } | {
80
+ type: "run.terminal";
81
+ result: HarnessResult;
82
+ };
83
+ export interface HarnessEvent {
84
+ schemaVersion: 1;
85
+ eventId: string;
86
+ sequence: number;
87
+ timestamp: number;
88
+ sessionId: string;
89
+ runId: string;
90
+ attemptId: string;
91
+ parentRunId?: string;
92
+ rootRunId: string;
93
+ payload: HarnessEventPayload;
94
+ }
95
+ export declare class HarnessEventGapError extends Error {
96
+ readonly earliestCursor: number;
97
+ readonly code = "event_gap";
98
+ constructor(earliestCursor: number);
99
+ }
100
+ /** Bounded in-process history; no durability, network delivery, or audio backpressure promise. */
101
+ export declare class InMemoryHarnessEventStore {
102
+ private identity;
103
+ readonly capacity: number;
104
+ readonly durable = false;
105
+ private history;
106
+ private sequence;
107
+ private finished;
108
+ private listeners;
109
+ constructor(identity: Omit<HarnessEvent, "schemaVersion" | "eventId" | "sequence" | "timestamp" | "payload">, capacity?: number);
110
+ get cursor(): number;
111
+ append(payload: HarnessEventPayload): HarnessEvent;
112
+ events(options?: {
113
+ after?: number;
114
+ }): AsyncGenerator<HarnessEvent>;
115
+ }
116
+ //# sourceMappingURL=events.d.ts.map
@@ -1,4 +1,5 @@
1
- import type { TokenUsage } from "@agentium/core";
1
+ import type { InputRequest, PublicMessageEvent, TokenUsage } from "@agentium/core";
2
+ /** Terminal result status. awaiting_input is legacy-only; new live waits use RunHandle.state. */
2
3
  export type HarnessStatus = "completed" | "failed" | "cancelled" | "stopped" | "awaiting_input";
3
4
  export interface HarnessReason {
4
5
  code: string;
@@ -19,12 +20,44 @@ export interface HarnessResult {
19
20
  finalCursor: number;
20
21
  cleanupDiagnostics?: readonly string[];
21
22
  }
22
- export type HarnessEventPayload = {
23
+ export type HarnessEventPayload = PublicMessageEvent | {
24
+ type: "compaction.started";
25
+ compactionId: string;
26
+ policyId: string;
27
+ beforeTokens: number;
28
+ } | {
29
+ type: "compaction.completed";
30
+ compactionId: string;
31
+ policyId: string;
32
+ afterTokens: number;
33
+ } | {
34
+ type: "compaction.failed";
35
+ compactionId: string;
36
+ policyId: string;
37
+ reason: string;
38
+ } | {
23
39
  type: "run.started";
24
40
  driverId: string;
25
41
  } | {
26
42
  type: "text.delta";
27
43
  text: string;
44
+ } | {
45
+ type: "input.requested";
46
+ request: InputRequest;
47
+ } | {
48
+ type: "input.resolved";
49
+ requestId: string;
50
+ } | {
51
+ type: "run.resumed";
52
+ requestId: string;
53
+ } | {
54
+ type: "input.received";
55
+ inputId: string;
56
+ mode: "steer" | "follow_up";
57
+ } | {
58
+ type: "input.applied";
59
+ inputId: string;
60
+ mode: "steer" | "follow_up";
28
61
  } | {
29
62
  type: "model.complete";
30
63
  providerId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/runtime/events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/runtime/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEnF,iGAAiG;AACjG,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,gBAAgB,CAAC;AAChG,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,SAAS;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACzD,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACxC;AACD,MAAM,MAAM,mBAAmB,GAC3B,kBAAkB,GAClB;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GAC5F;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrF;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,GAAG,WAAW,CAAA;CAAE,GACvE;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAChF;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,SAAS,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7F;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,CAAC;AACpD,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,CAAC,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,mBAAmB,CAAC;CAC9B;AACD,qBAAa,oBAAqB,SAAQ,KAAK;IAEjC,QAAQ,CAAC,cAAc,EAAE,MAAM;IAD3C,QAAQ,CAAC,IAAI,eAAe;gBACP,cAAc,EAAE,MAAM;CAG5C;AACD,kGAAkG;AAClG,qBAAa,yBAAyB;IAOlC,OAAO,CAAC,QAAQ;IAChB,QAAQ,CAAC,QAAQ;IAPnB,QAAQ,CAAC,OAAO,SAAS;IACzB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAyB;gBAEhC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,eAAe,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,SAAS,CAAC,EAC/F,QAAQ,SAAM;IAIzB,IAAI,MAAM,IAAI,MAAM,CAEnB;IACD,MAAM,CAAC,OAAO,EAAE,mBAAmB,GAAG,YAAY;IAgBlD,MAAM,CAAC,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,cAAc,CAAC,YAAY,CAAC;CA2DvE"}
@@ -0,0 +1,9 @@
1
+ export * from "./context-policy.cjs";
2
+ export * from "./controller.cjs";
3
+ export * from "./driver.cjs";
4
+ export * from "./events.cjs";
5
+ export * from "./resolve.cjs";
6
+ export * from "./runtime-registry.cjs";
7
+ export * from "./session-bindings.cjs";
8
+ export * from "./types.cjs";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,46 @@
1
+ import type { InputReply, InputRequest, InputRequestOptions, MessageContent } from "@agentium/core";
2
+ export type HarnessInputErrorCode = "invalid_input" | "input_pending" | "input_not_pending" | "input_mismatch" | "input_already_resolved" | "run_finished";
3
+ export declare class HarnessInputError extends Error {
4
+ readonly code: HarnessInputErrorCode;
5
+ constructor(code: HarnessInputErrorCode, message: string);
6
+ }
7
+ export declare function validateRunInput(input: MessageContent): MessageContent;
8
+ export declare function validateTimeout(value: number | undefined): void;
9
+ /** Owns live promises only; this is not a restart checkpoint. */
10
+ export declare class LiveInput {
11
+ private runId;
12
+ private signal;
13
+ private timeouts;
14
+ private emit;
15
+ private expire;
16
+ private pending?;
17
+ private resolved;
18
+ private timer?;
19
+ private activeTimer?;
20
+ private activeSince;
21
+ private activeRemaining;
22
+ private closed;
23
+ private onAbort;
24
+ constructor(runId: string, signal: AbortSignal, timeouts: {
25
+ activeTimeoutMs?: number;
26
+ inputTimeoutMs?: number;
27
+ }, emit: (event: {
28
+ type: "input.requested";
29
+ request: InputRequest;
30
+ } | {
31
+ type: "input.resolved";
32
+ requestId: string;
33
+ } | {
34
+ type: "run.resumed";
35
+ requestId: string;
36
+ }) => void, expire: (code: "input_timeout" | "active_timeout") => void);
37
+ get request(): InputRequest | undefined;
38
+ assertActive(): void;
39
+ assertNotWaiting(): void;
40
+ requestInput(options: InputRequestOptions): Promise<InputReply>;
41
+ reply(requestId: string, input: MessageContent): void;
42
+ close(): void;
43
+ private resumeClock;
44
+ private clearTimers;
45
+ }
46
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1,46 @@
1
+ import type { InputReply, InputRequest, InputRequestOptions, MessageContent } from "@agentium/core";
2
+ export type HarnessInputErrorCode = "invalid_input" | "input_pending" | "input_not_pending" | "input_mismatch" | "input_already_resolved" | "run_finished";
3
+ export declare class HarnessInputError extends Error {
4
+ readonly code: HarnessInputErrorCode;
5
+ constructor(code: HarnessInputErrorCode, message: string);
6
+ }
7
+ export declare function validateRunInput(input: MessageContent): MessageContent;
8
+ export declare function validateTimeout(value: number | undefined): void;
9
+ /** Owns live promises only; this is not a restart checkpoint. */
10
+ export declare class LiveInput {
11
+ private runId;
12
+ private signal;
13
+ private timeouts;
14
+ private emit;
15
+ private expire;
16
+ private pending?;
17
+ private resolved;
18
+ private timer?;
19
+ private activeTimer?;
20
+ private activeSince;
21
+ private activeRemaining;
22
+ private closed;
23
+ private onAbort;
24
+ constructor(runId: string, signal: AbortSignal, timeouts: {
25
+ activeTimeoutMs?: number;
26
+ inputTimeoutMs?: number;
27
+ }, emit: (event: {
28
+ type: "input.requested";
29
+ request: InputRequest;
30
+ } | {
31
+ type: "input.resolved";
32
+ requestId: string;
33
+ } | {
34
+ type: "run.resumed";
35
+ requestId: string;
36
+ }) => void, expire: (code: "input_timeout" | "active_timeout") => void);
37
+ get request(): InputRequest | undefined;
38
+ assertActive(): void;
39
+ assertNotWaiting(): void;
40
+ requestInput(options: InputRequestOptions): Promise<InputReply>;
41
+ reply(requestId: string, input: MessageContent): void;
42
+ close(): void;
43
+ private resumeClock;
44
+ private clearTimers;
45
+ }
46
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/runtime/input.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGpG,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,eAAe,GACf,mBAAmB,GACnB,gBAAgB,GAChB,wBAAwB,GACxB,cAAc,CAAC;AAEnB,qBAAa,iBAAkB,SAAQ,KAAK;IAExC,QAAQ,CAAC,IAAI,EAAE,qBAAqB;gBAA3B,IAAI,EAAE,qBAAqB,EACpC,OAAO,EAAE,MAAM;CAKlB;AAgCD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,CAKtE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAG/D;AAED,iEAAiE;AACjE,qBAAa,SAAS;IAgBlB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,IAAI;IAMZ,OAAO,CAAC,MAAM;IAxBhB,OAAO,CAAC,OAAO,CAAC,CAAoG;IACpH,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,KAAK,CAAC,CAAgC;IAC9C,OAAO,CAAC,WAAW,CAAC,CAAgC;IACpD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAKb;gBAGQ,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,MAAM,CAAA;KAAE,EAC/D,IAAI,EAAE,CACZ,KAAK,EACD;QAAE,IAAI,EAAE,iBAAiB,CAAC;QAAC,OAAO,EAAE,YAAY,CAAA;KAAE,GAClD;QAAE,IAAI,EAAE,gBAAgB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAC7C;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,KAC3C,IAAI,EACD,MAAM,EAAE,CAAC,IAAI,EAAE,eAAe,GAAG,gBAAgB,KAAK,IAAI;IAOpE,IAAI,OAAO,IAAI,YAAY,GAAG,SAAS,CAEtC;IAED,YAAY,IAAI,IAAI;IAIpB,gBAAgB,IAAI,IAAI;IAMxB,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;IAwB/D,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI;IAmBrD,KAAK,IAAI,IAAI;IASb,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,WAAW;CAIpB"}
@@ -0,0 +1,10 @@
1
+ import type { RunContext } from "@agentium/core";
2
+ export { validateConversationTransform as validateHarnessMessages } from "@agentium/core";
3
+ import type { ChatMessage, ModelResponse, ToolCallResult } from "@agentium/core";
4
+ import type { HarnessMiddleware } from "./types.cjs";
5
+ /** Stable topological sort; declaration order breaks ties between ready nodes. */
6
+ export declare function sortHarnessMiddleware(middleware: readonly HarnessMiddleware[]): HarnessMiddleware[];
7
+ export declare function runBeforeModel(middleware: readonly HarnessMiddleware[], messages: readonly ChatMessage[], ctx: RunContext): Promise<ChatMessage[]>;
8
+ export declare function runAfterModel(middleware: readonly HarnessMiddleware[], response: ModelResponse, ctx: RunContext): Promise<void>;
9
+ export declare function runAfterTool(middleware: readonly HarnessMiddleware[], result: ToolCallResult, ctx: RunContext): Promise<void>;
10
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1,20 @@
1
+ import type { RunContext } from "@agentium/core";
2
+ import { type HarnessRuntimeRegistry } from "./runtime-registry.cjs";
3
+ import type { AbilityFactory, BoundHarness, HarnessDefinition, HarnessDefinitionInput, HarnessDescription, HarnessDiagnostic, HarnessExtension, HarnessManifest, ResolvedHarness } from "./types.cjs";
4
+ export declare class HarnessValidationError extends Error {
5
+ readonly diagnostics: readonly HarnessDiagnostic[];
6
+ constructor(path: string, message: string, code?: string);
7
+ }
8
+ export declare function validateHarnessManifest(input: unknown): HarnessManifest;
9
+ export declare function loadHarnessManifest(input: unknown, factories: readonly AbilityFactory[], runtimeRegistry?: HarnessRuntimeRegistry): HarnessDefinition;
10
+ export declare function createHarnessDefinition(input: HarnessDefinitionInput): HarnessDefinition;
11
+ export declare function extendHarnessDefinition(base: HarnessDefinition, extension: HarnessExtension): HarnessDefinition;
12
+ export declare function describeHarnessDefinition(input: HarnessDefinition): HarnessDescription;
13
+ export declare function resolveHarness(input: HarnessDefinition, options: {
14
+ projectRoot: string;
15
+ requirements?: readonly string[];
16
+ }): ResolvedHarness;
17
+ export declare function exportHarnessManifest(input: HarnessDefinition): HarnessManifest;
18
+ export declare function hashHarnessManifest(input: HarnessManifest): string;
19
+ export declare function bindHarness(resolved: ResolvedHarness, ctx: RunContext): Promise<BoundHarness>;
20
+ //# sourceMappingURL=resolve.d.ts.map