@earendil-works/pi-agent-core 0.82.1 → 0.84.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 (140) hide show
  1. package/README.md +9 -3
  2. package/dist/agent.d.ts +3 -1
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +6 -0
  5. package/dist/agent.js.map +1 -1
  6. package/dist/harness/agent-harness.d.ts +452 -85
  7. package/dist/harness/agent-harness.d.ts.map +1 -1
  8. package/dist/harness/agent-harness.js +204 -917
  9. package/dist/harness/agent-harness.js.map +1 -1
  10. package/dist/harness/compaction/branch-summarization.d.ts +13 -6
  11. package/dist/harness/compaction/branch-summarization.d.ts.map +1 -1
  12. package/dist/harness/compaction/branch-summarization.js +11 -15
  13. package/dist/harness/compaction/branch-summarization.js.map +1 -1
  14. package/dist/harness/compaction/compaction.d.ts +14 -17
  15. package/dist/harness/compaction/compaction.d.ts.map +1 -1
  16. package/dist/harness/compaction/compaction.js +23 -36
  17. package/dist/harness/compaction/compaction.js.map +1 -1
  18. package/dist/harness/env/nodejs.d.ts +1 -0
  19. package/dist/harness/env/nodejs.d.ts.map +1 -1
  20. package/dist/harness/env/nodejs.js +23 -7
  21. package/dist/harness/env/nodejs.js.map +1 -1
  22. package/dist/harness/messages.d.ts +3 -3
  23. package/dist/harness/messages.d.ts.map +1 -1
  24. package/dist/harness/messages.js +3 -3
  25. package/dist/harness/messages.js.map +1 -1
  26. package/dist/harness/prompt-templates.d.ts.map +1 -1
  27. package/dist/harness/prompt-templates.js +4 -9
  28. package/dist/harness/prompt-templates.js.map +1 -1
  29. package/dist/harness/reducer.d.ts +100 -0
  30. package/dist/harness/reducer.d.ts.map +1 -0
  31. package/dist/harness/reducer.js +415 -0
  32. package/dist/harness/reducer.js.map +1 -0
  33. package/dist/harness/result.d.ts +40 -0
  34. package/dist/harness/result.d.ts.map +1 -0
  35. package/dist/harness/result.js +41 -0
  36. package/dist/harness/result.js.map +1 -0
  37. package/dist/harness/session/context.d.ts +22 -0
  38. package/dist/harness/session/context.d.ts.map +1 -0
  39. package/dist/harness/session/context.js +67 -0
  40. package/dist/harness/session/context.js.map +1 -0
  41. package/dist/harness/session/index.d.ts +7 -0
  42. package/dist/harness/session/index.d.ts.map +1 -0
  43. package/dist/harness/session/index.js +6 -0
  44. package/dist/harness/session/index.js.map +1 -0
  45. package/dist/harness/session/jsonl/codec.d.ts +8 -0
  46. package/dist/harness/session/jsonl/codec.d.ts.map +1 -0
  47. package/dist/harness/session/jsonl/codec.js +190 -0
  48. package/dist/harness/session/jsonl/codec.js.map +1 -0
  49. package/dist/harness/session/jsonl/errors.d.ts +5 -0
  50. package/dist/harness/session/jsonl/errors.d.ts.map +1 -0
  51. package/dist/harness/session/jsonl/errors.js +11 -0
  52. package/dist/harness/session/jsonl/errors.js.map +1 -0
  53. package/dist/harness/session/jsonl/repo.d.ts +23 -0
  54. package/dist/harness/session/jsonl/repo.d.ts.map +1 -0
  55. package/dist/harness/session/jsonl/repo.js +132 -0
  56. package/dist/harness/session/jsonl/repo.js.map +1 -0
  57. package/dist/harness/session/jsonl/storage.d.ts +43 -0
  58. package/dist/harness/session/jsonl/storage.d.ts.map +1 -0
  59. package/dist/harness/session/jsonl/storage.js +208 -0
  60. package/dist/harness/session/jsonl/storage.js.map +1 -0
  61. package/dist/harness/session/jsonl/types.d.ts +38 -0
  62. package/dist/harness/session/jsonl/types.d.ts.map +1 -0
  63. package/dist/harness/session/jsonl/types.js +2 -0
  64. package/dist/harness/session/jsonl/types.js.map +1 -0
  65. package/dist/harness/session/jsonl.d.ts +3 -0
  66. package/dist/harness/session/jsonl.d.ts.map +1 -0
  67. package/dist/harness/session/jsonl.js +2 -0
  68. package/dist/harness/session/jsonl.js.map +1 -0
  69. package/dist/harness/session/memory.d.ts +44 -0
  70. package/dist/harness/session/memory.d.ts.map +1 -0
  71. package/dist/harness/session/memory.js +141 -0
  72. package/dist/harness/session/memory.js.map +1 -0
  73. package/dist/harness/session/search.d.ts +19 -0
  74. package/dist/harness/session/search.d.ts.map +1 -0
  75. package/dist/harness/session/search.js +42 -0
  76. package/dist/harness/session/search.js.map +1 -0
  77. package/dist/harness/session/session.d.ts +43 -42
  78. package/dist/harness/session/session.d.ts.map +1 -1
  79. package/dist/harness/session/session.js +187 -228
  80. package/dist/harness/session/session.js.map +1 -1
  81. package/dist/harness/session/state.d.ts +65 -0
  82. package/dist/harness/session/state.d.ts.map +1 -0
  83. package/dist/harness/session/state.js +319 -0
  84. package/dist/harness/session/state.js.map +1 -0
  85. package/dist/harness/session/testing/conformance.d.ts +4 -0
  86. package/dist/harness/session/testing/conformance.d.ts.map +1 -0
  87. package/dist/harness/session/testing/conformance.js +743 -0
  88. package/dist/harness/session/testing/conformance.js.map +1 -0
  89. package/dist/harness/session/testing/index.d.ts +3 -0
  90. package/dist/harness/session/testing/index.d.ts.map +1 -0
  91. package/dist/harness/session/testing/index.js +2 -0
  92. package/dist/harness/session/testing/index.js.map +1 -0
  93. package/dist/harness/session/testing/types.d.ts +14 -0
  94. package/dist/harness/session/testing/types.d.ts.map +1 -0
  95. package/dist/harness/session/testing/types.js +2 -0
  96. package/dist/harness/session/testing/types.js.map +1 -0
  97. package/dist/harness/session/types.d.ts +333 -0
  98. package/dist/harness/session/types.d.ts.map +1 -0
  99. package/dist/harness/session/types.js +10 -0
  100. package/dist/harness/session/types.js.map +1 -0
  101. package/dist/harness/skills.d.ts.map +1 -1
  102. package/dist/harness/skills.js +21 -19
  103. package/dist/harness/skills.js.map +1 -1
  104. package/dist/harness/telemetry.d.ts +1221 -0
  105. package/dist/harness/telemetry.d.ts.map +1 -0
  106. package/dist/harness/telemetry.js +508 -0
  107. package/dist/harness/telemetry.js.map +1 -0
  108. package/dist/harness/types.d.ts +6 -459
  109. package/dist/harness/types.d.ts.map +1 -1
  110. package/dist/harness/types.js +0 -19
  111. package/dist/harness/types.js.map +1 -1
  112. package/dist/index.d.ts +10 -9
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +7 -8
  115. package/dist/index.js.map +1 -1
  116. package/dist/proxy.d.ts +1 -1
  117. package/dist/proxy.d.ts.map +1 -1
  118. package/dist/proxy.js +2 -1
  119. package/dist/proxy.js.map +1 -1
  120. package/package.json +10 -3
  121. package/dist/harness/session/jsonl-repo.d.ts +0 -26
  122. package/dist/harness/session/jsonl-repo.d.ts.map +0 -1
  123. package/dist/harness/session/jsonl-repo.js +0 -103
  124. package/dist/harness/session/jsonl-repo.js.map +0 -1
  125. package/dist/harness/session/jsonl-storage.d.ts +0 -42
  126. package/dist/harness/session/jsonl-storage.d.ts.map +0 -1
  127. package/dist/harness/session/jsonl-storage.js +0 -293
  128. package/dist/harness/session/jsonl-storage.js.map +0 -1
  129. package/dist/harness/session/memory-repo.d.ts +0 -18
  130. package/dist/harness/session/memory-repo.d.ts.map +0 -1
  131. package/dist/harness/session/memory-repo.js +0 -42
  132. package/dist/harness/session/memory-repo.js.map +0 -1
  133. package/dist/harness/session/memory-storage.d.ts +0 -33
  134. package/dist/harness/session/memory-storage.d.ts.map +0 -1
  135. package/dist/harness/session/memory-storage.js +0 -168
  136. package/dist/harness/session/memory-storage.js.map +0 -1
  137. package/dist/harness/session/repo-utils.d.ts +0 -11
  138. package/dist/harness/session/repo-utils.d.ts.map +0 -1
  139. package/dist/harness/session/repo-utils.js +0 -39
  140. package/dist/harness/session/repo-utils.js.map +0 -1
@@ -1,94 +1,461 @@
1
- import { type AssistantMessage, type ImageContent, type Model, type Models } from "@earendil-works/pi-ai";
2
- import type { AgentMessage, QueueMode, ThinkingLevel } from "../types.ts";
3
- import type { AbortResult, AgentHarnessEvent, AgentHarnessEventResultMap, AgentHarnessOptions, AgentHarnessOwnEvent, AgentHarnessResources, AgentHarnessStreamOptions, AgentHarnessTool, CompactResult, NavigateTreeResult, PromptTemplate, Skill } from "./types.ts";
4
- export declare class AgentHarness<TContext extends object | undefined = undefined, TSkill extends Skill = Skill, TPromptTemplate extends PromptTemplate = PromptTemplate, TTool extends AgentHarnessTool<TContext> = AgentHarnessTool<TContext>> {
5
- private session;
6
- readonly models: Models;
7
- private phase;
8
- private runAbortController?;
9
- private runPromise?;
10
- private pendingSessionWrites;
1
+ import type { Api, AssistantMessage, DeferredHandle, ImageContent, Message, Model, Models, RetryPolicy, SimpleStreamOptions, Usage } from "@earendil-works/pi-ai";
2
+ import type { AgentMessage, AgentTool, QueueMode, ThinkingLevel } from "../types.ts";
3
+ import type { CompactionSettings } from "./compaction/compaction.ts";
4
+ import { type Result as ResultValue } from "./result.ts";
5
+ import type { BranchSummaryEntry, CompactionEntry, Entry, JsonValue, ProvisionedEntry, Session, SessionTree } from "./session/index.ts";
6
+ import type { TelemetryContext } from "./telemetry.ts";
7
+ import type { AgentHarnessResources, PromptTemplate, Skill } from "./types.ts";
8
+ declare const LaneBusy_base: import("./result.ts").TaggedErrorFactory<"LaneBusy">;
9
+ export declare class LaneBusy extends LaneBusy_base<{
10
+ lane: string;
11
+ operationId: string;
12
+ operationKind: "run" | "compaction" | "navigation";
13
+ message: string;
14
+ }> {
15
+ }
16
+ declare const MissingIdentities_base: import("./result.ts").TaggedErrorFactory<"MissingIdentities">;
17
+ export declare class MissingIdentities extends MissingIdentities_base<{
18
+ lane: string;
19
+ tools: string[];
20
+ models: string[];
21
+ message: string;
22
+ }> {
23
+ }
24
+ declare const NoActiveRun_base: import("./result.ts").TaggedErrorFactory<"NoActiveRun">;
25
+ export declare class NoActiveRun extends NoActiveRun_base<{
26
+ lane: string;
27
+ message: string;
28
+ }> {
29
+ }
30
+ declare const NoActiveOperation_base: import("./result.ts").TaggedErrorFactory<"NoActiveOperation">;
31
+ export declare class NoActiveOperation extends NoActiveOperation_base<{
32
+ lane: string;
33
+ message: string;
34
+ }> {
35
+ }
36
+ declare const NothingToResume_base: import("./result.ts").TaggedErrorFactory<"NothingToResume">;
37
+ export declare class NothingToResume extends NothingToResume_base<{
38
+ lane: string;
39
+ message: string;
40
+ }> {
41
+ }
42
+ declare const InvalidMessage_base: import("./result.ts").TaggedErrorFactory<"InvalidMessage">;
43
+ export declare class InvalidMessage extends InvalidMessage_base<{
44
+ lane: string;
45
+ reason: string;
46
+ message: string;
47
+ }> {
48
+ }
49
+ declare const UnknownSkill_base: import("./result.ts").TaggedErrorFactory<"UnknownSkill">;
50
+ export declare class UnknownSkill extends UnknownSkill_base<{
51
+ name: string;
52
+ message: string;
53
+ }> {
54
+ }
55
+ declare const UnknownTemplate_base: import("./result.ts").TaggedErrorFactory<"UnknownTemplate">;
56
+ export declare class UnknownTemplate extends UnknownTemplate_base<{
57
+ name: string;
58
+ message: string;
59
+ }> {
60
+ }
61
+ declare const UnknownTarget_base: import("./result.ts").TaggedErrorFactory<"UnknownTarget">;
62
+ export declare class UnknownTarget extends UnknownTarget_base<{
63
+ targetId: string;
64
+ message: string;
65
+ }> {
66
+ }
67
+ declare const UnknownQueueItem_base: import("./result.ts").TaggedErrorFactory<"UnknownQueueItem">;
68
+ export declare class UnknownQueueItem extends UnknownQueueItem_base<{
69
+ lane: string;
70
+ entryId: string;
71
+ message: string;
72
+ }> {
73
+ }
74
+ declare const LaneExists_base: import("./result.ts").TaggedErrorFactory<"LaneExists">;
75
+ export declare class LaneExists extends LaneExists_base<{
76
+ lane: string;
77
+ message: string;
78
+ }> {
79
+ }
80
+ declare const InvalidLane_base: import("./result.ts").TaggedErrorFactory<"InvalidLane">;
81
+ export declare class InvalidLane extends InvalidLane_base<{
82
+ lane: string;
83
+ reason: string;
84
+ message: string;
85
+ }> {
86
+ }
87
+ declare const NothingToCompact_base: import("./result.ts").TaggedErrorFactory<"NothingToCompact">;
88
+ export declare class NothingToCompact extends NothingToCompact_base<{
89
+ lane: string;
90
+ message: string;
91
+ }> {
92
+ }
93
+ declare const Closed_base: import("./result.ts").TaggedErrorFactory<"Closed">;
94
+ export declare class Closed extends Closed_base<{
95
+ message: string;
96
+ }> {
97
+ }
98
+ export declare class HarnessFault extends Error {
99
+ readonly cause: unknown;
100
+ constructor(message: string, cause: unknown);
101
+ }
102
+ export declare class HarnessClosed extends Error {
103
+ constructor();
104
+ }
105
+ export declare class HarnessNotImplemented extends Error {
106
+ readonly operation: string;
107
+ constructor(operation: string);
108
+ }
109
+ export interface OperationError {
110
+ code: string;
111
+ message: string;
112
+ }
113
+ export type RunOutcome = {
114
+ kind: "completed";
115
+ leafId: string;
116
+ finalEntryId: string;
117
+ finalMessage: AssistantMessage;
118
+ } | {
119
+ kind: "aborted";
120
+ leafId: string;
121
+ finalEntryId: string;
122
+ finalMessage: AssistantMessage;
123
+ } | {
124
+ kind: "failed";
125
+ leafId: string;
126
+ error: OperationError;
127
+ finalEntryId?: string;
128
+ finalMessage?: AssistantMessage;
129
+ } | {
130
+ kind: "suspended";
131
+ leafId: string;
132
+ finalEntryId: string;
133
+ deferred: DeferredHandle;
134
+ };
135
+ export type CompactionOutcome = {
136
+ kind: "completed";
137
+ leafId: string;
138
+ entry: CompactionEntry;
139
+ } | {
140
+ kind: "declined" | "aborted";
141
+ leafId: string;
142
+ } | {
143
+ kind: "failed";
144
+ leafId: string;
145
+ error: OperationError;
146
+ };
147
+ export type NavigationOutcome = {
148
+ kind: "completed";
149
+ newLeafId: string | null;
150
+ summaryEntry?: BranchSummaryEntry;
151
+ } | {
152
+ kind: "declined" | "aborted";
153
+ leafId: string | null;
154
+ } | {
155
+ kind: "failed";
156
+ leafId: string | null;
157
+ error: OperationError;
158
+ };
159
+ export type RunRejected = LaneBusy | InvalidMessage | UnknownSkill | UnknownTemplate | Closed;
160
+ export type CompactionRejected = LaneBusy | NothingToCompact | Closed;
161
+ export type NavigationRejected = LaneBusy | UnknownTarget | Closed;
162
+ export type ResumeRejected = LaneBusy | NothingToResume | MissingIdentities | Closed;
163
+ export type QueueRejected = NoActiveRun | InvalidMessage | Closed;
164
+ export type CancelQueuedRejected = UnknownQueueItem | Closed;
165
+ export type AbortRejected = NoActiveOperation | Closed;
166
+ export type RunResult = ResultValue<{
167
+ runId: string;
168
+ } & RunOutcome, RunRejected>;
169
+ export type CompactionResult = ResultValue<{
170
+ runId: string;
171
+ } & CompactionOutcome, CompactionRejected>;
172
+ export type NavigationResult = ResultValue<{
173
+ runId: string;
174
+ } & NavigationOutcome, NavigationRejected>;
175
+ export type QueueResult = ResultValue<{
176
+ entryId: string;
177
+ }, QueueRejected>;
178
+ export type CancelQueuedResult = ResultValue<{
179
+ outcome: "cancelled" | "already_consumed" | "already_cleared";
180
+ }, CancelQueuedRejected>;
181
+ export type RecordUsageResult = ResultValue<void, Closed>;
182
+ export type AbortResult = ResultValue<{
183
+ runId: string;
184
+ steer: AgentMessage[];
185
+ followUp: AgentMessage[];
186
+ }, AbortRejected>;
187
+ export type ResumeOutcome = ({
188
+ operation: "run";
189
+ runId: string;
190
+ } & RunOutcome) | ({
191
+ operation: "compaction";
192
+ runId: string;
193
+ } & CompactionOutcome) | ({
194
+ operation: "navigation";
195
+ runId: string;
196
+ } & NavigationOutcome);
197
+ export type ResumeResult = ResultValue<ResumeOutcome, ResumeRejected>;
198
+ export type CreateLaneResult = ResultValue<AgentLane, LaneExists | InvalidLane | UnknownTarget | Closed>;
199
+ export interface NavigateOptions {
200
+ summarize?: boolean;
201
+ customInstructions?: string;
202
+ label?: string;
203
+ }
204
+ export interface SuspendedOperation {
205
+ lane: string;
206
+ kind: "run" | "compaction" | "navigation";
207
+ id: string;
208
+ startedAt: number;
209
+ reason: "crash" | "deferred";
210
+ prompt?: AgentMessage[];
211
+ deferred?: DeferredHandle;
212
+ aborting?: {
213
+ steer: AgentMessage[];
214
+ followUp: AgentMessage[];
215
+ };
216
+ missing: {
217
+ tools: string[];
218
+ models: string[];
219
+ };
220
+ }
221
+ export interface LaneInfo {
222
+ name: string;
223
+ leafId: string | null;
224
+ operation: null | {
225
+ id: string;
226
+ kind: "run" | "compaction" | "navigation";
227
+ status: "running" | "suspended" | "aborting";
228
+ };
229
+ }
230
+ export interface QueuedItem {
231
+ entryId: string;
232
+ message: AgentMessage;
233
+ }
234
+ export interface LaneSnapshot {
235
+ lane: string;
236
+ transcript: Entry[];
237
+ leafId: string | null;
238
+ operation: LaneInfo["operation"];
239
+ queues: {
240
+ steer: QueuedItem[];
241
+ followUp: QueuedItem[];
242
+ nextRun: QueuedItem[];
243
+ };
244
+ pendingWrites: {
245
+ id: string;
246
+ entry: ProvisionedEntry;
247
+ }[];
248
+ faulted: boolean;
249
+ }
250
+ export interface SessionSnapshot {
251
+ lanes: (LaneInfo & {
252
+ suspended?: SuspendedOperation;
253
+ })[];
254
+ faulted: boolean;
255
+ }
256
+ export type ActionInfo = {
257
+ kind: "append_entry";
258
+ entryType: Entry["type"];
259
+ entryId: string;
260
+ } | {
261
+ kind: "append_record";
262
+ recordType: string;
263
+ } | {
264
+ kind: "move_lane";
265
+ to: string | null;
266
+ } | {
267
+ kind: "set_fact";
268
+ fact: "name" | "label";
269
+ } | {
270
+ kind: "try_finish_run";
271
+ outcome: "completed" | "failed";
272
+ } | {
273
+ kind: "finish_operation";
274
+ outcome: "completed" | "declined" | "failed" | "aborted";
275
+ } | {
276
+ kind: "commit_follow_up";
277
+ } | {
278
+ kind: "consume_queue_item";
279
+ queue: "steer" | "followUp";
280
+ entryId: string;
281
+ } | {
282
+ kind: "apply_pending_write";
283
+ entryId: string;
284
+ } | {
285
+ kind: "stream_assistant";
286
+ step: "assistant" | "compaction" | "branch_summary";
287
+ attempt: number;
288
+ } | {
289
+ kind: "execute_tool";
290
+ toolCallId: string;
291
+ toolName: string;
292
+ } | {
293
+ kind: "fetch_deferred" | "cancel_deferred";
294
+ provider: string;
295
+ id: string;
296
+ } | {
297
+ kind: "hook";
298
+ name: HookName;
299
+ } | {
300
+ kind: "sleep";
301
+ delayMs: number;
302
+ };
303
+ export type HookName = "before_run" | "before_resume" | "before_run_end" | "transform_context" | "before_request" | "before_payload" | "after_response" | "before_tool" | "after_tool" | "before_compaction" | "before_navigation";
304
+ export interface Hooks {
305
+ on(name: HookName, handler: (event: unknown) => unknown | Promise<unknown>, options?: {
306
+ id?: string;
307
+ }): () => void;
308
+ }
309
+ export interface Events {
310
+ on(type: string, listener: (event: unknown) => void | Promise<void>): () => void;
311
+ }
312
+ export type HarnessTool = AgentTool & {
313
+ replay?: "never" | "safe";
314
+ };
315
+ export type Resources = AgentHarnessResources<Skill, PromptTemplate>;
316
+ export type StreamOptions = SimpleStreamOptions;
317
+ export type StreamOptionsPatch = Partial<SimpleStreamOptions>;
318
+ export type EntryProjector = (entry: Entry) => AgentMessage[] | Promise<AgentMessage[]>;
319
+ export interface AgentHarnessOptions {
320
+ session: Session;
321
+ models: Models;
322
+ model: Model<Api>;
323
+ thinkingLevel?: ThinkingLevel;
324
+ activeToolNames?: string[];
325
+ tools?: HarnessTool[];
326
+ toolContext?: object | (() => object | Promise<object>);
327
+ systemPrompt?: string | (() => string | Promise<string>);
328
+ resources?: Resources;
329
+ streamOptions?: StreamOptions;
330
+ retry?: RetryPolicy;
331
+ compaction?: CompactionSettings;
332
+ steeringMode?: QueueMode;
333
+ followUpMode?: QueueMode;
334
+ toolExecution?: "sequential" | "parallel";
335
+ drive?: "automatic" | "manual";
336
+ toProviderMessages?: (messages: AgentMessage[]) => Message[] | Promise<Message[]>;
337
+ entryProjectors?: Record<string, EntryProjector>;
338
+ context?: TelemetryContext;
339
+ }
340
+ export interface WatchHandle<TSnapshot> {
341
+ snapshot: TSnapshot;
342
+ start(listener: (event: unknown) => void): void;
343
+ unsubscribe(): void;
344
+ }
345
+ export interface AgentLane {
346
+ readonly name: string;
347
+ getLeafId(): Promise<string | null>;
348
+ prompt(text: string, images?: ImageContent[]): Promise<RunResult>;
349
+ prompt(message: AgentMessage | AgentMessage[]): Promise<RunResult>;
350
+ skill(name: string, additionalInstructions?: string): Promise<RunResult>;
351
+ promptFromTemplate(name: string, args?: string[]): Promise<RunResult>;
352
+ compact(options?: {
353
+ customInstructions?: string;
354
+ }): Promise<CompactionResult>;
355
+ navigateTree(targetId: string | null, options?: NavigateOptions): Promise<NavigationResult>;
356
+ resume(): Promise<ResumeResult>;
357
+ abort(): Promise<AbortResult>;
358
+ steer(text: string, images?: ImageContent[]): Promise<QueueResult>;
359
+ steer(message: AgentMessage): Promise<QueueResult>;
360
+ followUp(text: string, images?: ImageContent[]): Promise<QueueResult>;
361
+ followUp(message: AgentMessage): Promise<QueueResult>;
362
+ nextRun(text: string, images?: ImageContent[]): Promise<QueueResult>;
363
+ nextRun(message: AgentMessage): Promise<QueueResult>;
364
+ cancelQueued(entryId: string): Promise<CancelQueuedResult>;
365
+ recordUsage(usage: Usage, options?: {
366
+ entryId?: string;
367
+ details?: JsonValue;
368
+ }): Promise<RecordUsageResult>;
369
+ waitForIdle(): Promise<void>;
370
+ runWhenIdle(callback: () => void | Promise<void>): Promise<void>;
371
+ peekAction(): Promise<ActionInfo | undefined>;
372
+ executeAction(): Promise<ActionInfo | undefined>;
373
+ runToCompletion(): Promise<void>;
374
+ getModel(): Promise<Model<Api>>;
375
+ setModel(model: Model<Api>): Promise<void>;
376
+ getThinkingLevel(): Promise<ThinkingLevel>;
377
+ setThinkingLevel(level: ThinkingLevel): Promise<void>;
378
+ getActiveTools(): Promise<string[]>;
379
+ setActiveTools(names: string[]): Promise<void>;
380
+ readonly session: SessionTree;
381
+ watch(): Promise<WatchHandle<LaneSnapshot>>;
382
+ }
383
+ export declare class AgentHarness implements AgentLane {
384
+ readonly name = "main";
385
+ readonly session: SessionTree;
386
+ readonly hooks: Hooks;
387
+ readonly events: Events;
388
+ private readonly durableSession;
11
389
  private model;
12
390
  private thinkingLevel;
13
- private systemPrompt;
14
- private toolContext;
15
- private streamOptions;
16
- private retry;
17
- private resources;
18
- private tools;
19
391
  private activeToolNames;
20
- private steerQueue;
21
- private steeringQueueMode;
22
- private followUpQueue;
23
- private followUpQueueMode;
24
- private nextTurnQueue;
25
- private handlers;
26
- constructor(options: AgentHarnessOptions<TContext, TSkill, TPromptTemplate, TTool>);
27
- private getHandlers;
28
- private emitOwn;
29
- private emitAny;
30
- private emitHook;
31
- private retryCallbacks;
32
- private emitBeforeProviderRequest;
33
- private emitBeforeProviderPayload;
34
- private emitQueueUpdate;
35
- private startRunPromise;
36
- private resolveToolContext;
37
- private bindToolContext;
38
- private createTurnState;
39
- private createContext;
40
- private createStreamFn;
41
- private drainQueuedMessages;
42
- private createLoopConfig;
43
- private validateUniqueNames;
44
- private validateToolNames;
45
- private flushPendingSessionWrites;
46
- private handleAgentEvent;
47
- private emitRunFailure;
48
- private executeTurn;
49
- prompt(text: string, options?: {
50
- images?: ImageContent[];
51
- }): Promise<AssistantMessage>;
52
- skill(name: string, additionalInstructions?: string): Promise<AssistantMessage>;
53
- promptFromTemplate(name: string, args?: string[]): Promise<AssistantMessage>;
54
- steer(text: string, options?: {
55
- images?: ImageContent[];
56
- }): Promise<void>;
57
- followUp(text: string, options?: {
58
- images?: ImageContent[];
59
- }): Promise<void>;
60
- nextTurn(text: string, options?: {
61
- images?: ImageContent[];
62
- }): Promise<void>;
63
- appendMessage(message: AgentMessage): Promise<void>;
64
- compact(customInstructions?: string): Promise<CompactResult>;
65
- navigateTree(targetId: string, options?: {
66
- summarize?: boolean;
392
+ private tools;
393
+ private resources;
394
+ private streamOptions;
395
+ private retryPolicy;
396
+ private compactionSettings;
397
+ private steeringMode;
398
+ private followUpMode;
399
+ private closed;
400
+ private constructor();
401
+ static create(options: AgentHarnessOptions): Promise<{
402
+ harness: AgentHarness;
403
+ suspended: SuspendedOperation[];
404
+ }>;
405
+ private unavailable;
406
+ getLeafId(): Promise<string | null>;
407
+ prompt(_text: string, _images?: ImageContent[]): Promise<RunResult>;
408
+ prompt(_message: AgentMessage | AgentMessage[]): Promise<RunResult>;
409
+ skill(_name: string, _additionalInstructions?: string): Promise<RunResult>;
410
+ promptFromTemplate(_name: string, _args?: string[]): Promise<RunResult>;
411
+ compact(_options?: {
67
412
  customInstructions?: string;
68
- replaceInstructions?: boolean;
69
- label?: string;
70
- }): Promise<NavigateTreeResult>;
71
- getModel(): Model<any>;
72
- setModel(model: Model<any>): Promise<void>;
73
- getThinkingLevel(): ThinkingLevel;
413
+ }): Promise<CompactionResult>;
414
+ navigateTree(_targetId: string | null, _options?: NavigateOptions): Promise<NavigationResult>;
415
+ resume(): Promise<ResumeResult>;
416
+ abort(): Promise<AbortResult>;
417
+ steer(_text: string, _images?: ImageContent[]): Promise<QueueResult>;
418
+ steer(_message: AgentMessage): Promise<QueueResult>;
419
+ followUp(_text: string, _images?: ImageContent[]): Promise<QueueResult>;
420
+ followUp(_message: AgentMessage): Promise<QueueResult>;
421
+ nextRun(_text: string, _images?: ImageContent[]): Promise<QueueResult>;
422
+ nextRun(_message: AgentMessage): Promise<QueueResult>;
423
+ cancelQueued(_entryId: string): Promise<CancelQueuedResult>;
424
+ recordUsage(_usage: Usage, _options?: {
425
+ entryId?: string;
426
+ details?: JsonValue;
427
+ }): Promise<RecordUsageResult>;
428
+ waitForIdle(): Promise<void>;
429
+ runWhenIdle(_callback: () => void | Promise<void>): Promise<void>;
430
+ peekAction(): Promise<ActionInfo | undefined>;
431
+ executeAction(): Promise<ActionInfo | undefined>;
432
+ runToCompletion(): Promise<void>;
433
+ getModel(): Promise<Model<Api>>;
434
+ setModel(model: Model<Api>): Promise<void>;
435
+ getThinkingLevel(): Promise<ThinkingLevel>;
74
436
  setThinkingLevel(level: ThinkingLevel): Promise<void>;
75
- getTools(): TTool[];
76
- setTools(tools: TTool[], activeToolNames?: string[]): Promise<void>;
77
- getActiveTools(): TTool[];
78
- setActiveTools(toolNames: string[]): Promise<void>;
79
- getSteeringMode(): QueueMode;
437
+ getActiveTools(): Promise<string[]>;
438
+ setActiveTools(names: string[]): Promise<void>;
439
+ watch(): Promise<WatchHandle<LaneSnapshot>>;
440
+ lane(_name: string): Promise<AgentLane | undefined>;
441
+ createLane(_name: string, _at: string | null): Promise<CreateLaneResult>;
442
+ lanes(): Promise<LaneInfo[]>;
443
+ getTools(): Promise<HarnessTool[]>;
444
+ setTools(tools: HarnessTool[], activeNames?: string[]): Promise<void>;
445
+ getResources(): Promise<Resources>;
446
+ setResources(resources: Resources): Promise<void>;
447
+ getStreamOptions(): Promise<StreamOptions>;
448
+ setStreamOptions(options: StreamOptions): Promise<void>;
449
+ getRetryPolicy(): Promise<RetryPolicy>;
450
+ setRetryPolicy(policy: RetryPolicy): Promise<void>;
451
+ getCompactionSettings(): Promise<CompactionSettings>;
452
+ setCompactionSettings(settings: CompactionSettings): Promise<void>;
453
+ getSteeringMode(): Promise<QueueMode>;
80
454
  setSteeringMode(mode: QueueMode): Promise<void>;
81
- getFollowUpMode(): QueueMode;
455
+ getFollowUpMode(): Promise<QueueMode>;
82
456
  setFollowUpMode(mode: QueueMode): Promise<void>;
83
- getResources(): AgentHarnessResources<TSkill, TPromptTemplate>;
84
- setResources(resources: AgentHarnessResources<TSkill, TPromptTemplate>): Promise<void>;
85
- getStreamOptions(): AgentHarnessStreamOptions;
86
- setStreamOptions(streamOptions: AgentHarnessStreamOptions): Promise<void>;
87
- abort(): Promise<AbortResult>;
88
- waitForIdle(): Promise<void>;
89
- subscribe(listener: (event: AgentHarnessEvent<TSkill, TPromptTemplate>, signal?: AbortSignal) => Promise<void> | void): () => void;
90
- on<TType extends keyof AgentHarnessEventResultMap>(type: TType, handler: (event: Extract<AgentHarnessOwnEvent, {
91
- type: TType;
92
- }>) => Promise<AgentHarnessEventResultMap[TType]> | AgentHarnessEventResultMap[TType]): () => void;
457
+ watchSession(): Promise<WatchHandle<SessionSnapshot>>;
458
+ close(): Promise<void>;
93
459
  }
460
+ export {};
94
461
  //# sourceMappingURL=agent-harness.d.ts.map