@earendil-works/pi-durable 1.4.0 → 1.5.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 (221) hide show
  1. package/CHANGELOG.md +186 -0
  2. package/README.md +181 -84
  3. package/dist/codemode/codemode.d.ts +4 -4
  4. package/dist/codemode/codemode.d.ts.map +1 -1
  5. package/dist/codemode/codemode.js +9 -12
  6. package/dist/codemode/codemode.js.map +1 -1
  7. package/dist/codemode/models.js +4 -4
  8. package/dist/codemode/models.js.map +1 -1
  9. package/dist/env/index.d.ts +12 -10
  10. package/dist/env/index.d.ts.map +1 -1
  11. package/dist/env/index.js.map +1 -1
  12. package/dist/env/node-watch.d.ts +3 -3
  13. package/dist/env/node-watch.d.ts.map +1 -1
  14. package/dist/env/node-watch.js +18 -16
  15. package/dist/env/node-watch.js.map +1 -1
  16. package/dist/env/node.d.ts +2 -2
  17. package/dist/env/node.d.ts.map +1 -1
  18. package/dist/env/node.js +1 -1
  19. package/dist/env/node.js.map +1 -1
  20. package/dist/errors.d.ts +18 -2
  21. package/dist/errors.d.ts.map +1 -1
  22. package/dist/errors.js +26 -3
  23. package/dist/errors.js.map +1 -1
  24. package/dist/harness/agent.d.ts.map +1 -1
  25. package/dist/harness/agent.js +10 -2
  26. package/dist/harness/agent.js.map +1 -1
  27. package/dist/harness/compaction.d.ts.map +1 -1
  28. package/dist/harness/compaction.js +19 -2
  29. package/dist/harness/compaction.js.map +1 -1
  30. package/dist/harness/context.d.ts +23 -7
  31. package/dist/harness/context.d.ts.map +1 -1
  32. package/dist/harness/context.js +71 -25
  33. package/dist/harness/context.js.map +1 -1
  34. package/dist/harness/define.d.ts +7 -3
  35. package/dist/harness/define.d.ts.map +1 -1
  36. package/dist/harness/define.js +4 -0
  37. package/dist/harness/define.js.map +1 -1
  38. package/dist/harness/generation.d.ts +38 -5
  39. package/dist/harness/generation.d.ts.map +1 -1
  40. package/dist/harness/generation.js +445 -96
  41. package/dist/harness/generation.js.map +1 -1
  42. package/dist/harness/harness.d.ts +2 -0
  43. package/dist/harness/harness.d.ts.map +1 -1
  44. package/dist/harness/harness.js +87 -62
  45. package/dist/harness/harness.js.map +1 -1
  46. package/dist/harness/inbox.d.ts +5 -1
  47. package/dist/harness/inbox.d.ts.map +1 -1
  48. package/dist/harness/inbox.js +4 -1
  49. package/dist/harness/inbox.js.map +1 -1
  50. package/dist/harness/json.d.ts +20 -4
  51. package/dist/harness/json.d.ts.map +1 -1
  52. package/dist/harness/json.js +23 -5
  53. package/dist/harness/json.js.map +1 -1
  54. package/dist/harness/live.d.ts +122 -16
  55. package/dist/harness/live.d.ts.map +1 -1
  56. package/dist/harness/live.js +93 -12
  57. package/dist/harness/live.js.map +1 -1
  58. package/dist/harness/partial-changes.d.ts +54 -0
  59. package/dist/harness/partial-changes.d.ts.map +1 -0
  60. package/dist/harness/partial-changes.js +162 -0
  61. package/dist/harness/partial-changes.js.map +1 -0
  62. package/dist/harness/registry-reader.d.ts +11 -0
  63. package/dist/harness/registry-reader.d.ts.map +1 -0
  64. package/dist/harness/registry-reader.js +25 -0
  65. package/dist/harness/registry-reader.js.map +1 -0
  66. package/dist/harness/scheduler.d.ts +46 -19
  67. package/dist/harness/scheduler.d.ts.map +1 -1
  68. package/dist/harness/scheduler.js +973 -376
  69. package/dist/harness/scheduler.js.map +1 -1
  70. package/dist/harness/submissions.d.ts +17 -10
  71. package/dist/harness/submissions.d.ts.map +1 -1
  72. package/dist/harness/submissions.js +62 -25
  73. package/dist/harness/submissions.js.map +1 -1
  74. package/dist/harness/task-graph.d.ts +12 -9
  75. package/dist/harness/task-graph.d.ts.map +1 -1
  76. package/dist/harness/task-graph.js +38 -28
  77. package/dist/harness/task-graph.js.map +1 -1
  78. package/dist/harness/telemetry.d.ts +11 -11
  79. package/dist/harness/telemetry.d.ts.map +1 -1
  80. package/dist/harness/telemetry.js +7 -7
  81. package/dist/harness/telemetry.js.map +1 -1
  82. package/dist/harness/tool.d.ts +2 -0
  83. package/dist/harness/tool.d.ts.map +1 -1
  84. package/dist/harness/tool.js +171 -55
  85. package/dist/harness/tool.js.map +1 -1
  86. package/dist/harness/transcript.d.ts +72 -0
  87. package/dist/harness/transcript.d.ts.map +1 -0
  88. package/dist/harness/transcript.js +264 -0
  89. package/dist/harness/transcript.js.map +1 -0
  90. package/dist/harness/types.d.ts +218 -59
  91. package/dist/harness/types.d.ts.map +1 -1
  92. package/dist/harness/types.js.map +1 -1
  93. package/dist/harness/util.d.ts +3 -1
  94. package/dist/harness/util.d.ts.map +1 -1
  95. package/dist/harness/util.js +9 -0
  96. package/dist/harness/util.js.map +1 -1
  97. package/dist/harness/view.d.ts +43 -22
  98. package/dist/harness/view.d.ts.map +1 -1
  99. package/dist/harness/view.js +130 -71
  100. package/dist/harness/view.js.map +1 -1
  101. package/dist/index.d.ts +9 -7
  102. package/dist/index.d.ts.map +1 -1
  103. package/dist/index.js +4 -3
  104. package/dist/index.js.map +1 -1
  105. package/dist/search.d.ts +19 -3
  106. package/dist/search.d.ts.map +1 -1
  107. package/dist/search.js +107 -44
  108. package/dist/search.js.map +1 -1
  109. package/dist/session/cached-storage.d.ts +71 -0
  110. package/dist/session/cached-storage.d.ts.map +1 -0
  111. package/dist/session/cached-storage.js +269 -0
  112. package/dist/session/cached-storage.js.map +1 -0
  113. package/dist/session/conversation-tails.d.ts +33 -0
  114. package/dist/session/conversation-tails.d.ts.map +1 -0
  115. package/dist/session/conversation-tails.js +101 -0
  116. package/dist/session/conversation-tails.js.map +1 -0
  117. package/dist/session/keys.d.ts +68 -0
  118. package/dist/session/keys.d.ts.map +1 -0
  119. package/dist/session/keys.js +161 -0
  120. package/dist/session/keys.js.map +1 -0
  121. package/dist/session/session.d.ts +167 -26
  122. package/dist/session/session.d.ts.map +1 -1
  123. package/dist/session/session.js +1029 -171
  124. package/dist/session/session.js.map +1 -1
  125. package/dist/session/transaction.d.ts +81 -3
  126. package/dist/session/transaction.d.ts.map +1 -1
  127. package/dist/session/transaction.js +224 -37
  128. package/dist/session/transaction.js.map +1 -1
  129. package/dist/session/writer.d.ts +74 -0
  130. package/dist/session/writer.d.ts.map +1 -0
  131. package/dist/session/writer.js +294 -0
  132. package/dist/session/writer.js.map +1 -0
  133. package/dist/storage/indexeddb.d.ts +10 -2
  134. package/dist/storage/indexeddb.d.ts.map +1 -1
  135. package/dist/storage/indexeddb.js +91 -41
  136. package/dist/storage/indexeddb.js.map +1 -1
  137. package/dist/storage/jsonl/storage.d.ts +14 -2
  138. package/dist/storage/jsonl/storage.d.ts.map +1 -1
  139. package/dist/storage/jsonl/storage.js +88 -24
  140. package/dist/storage/jsonl/storage.js.map +1 -1
  141. package/dist/storage/memory.d.ts +7 -2
  142. package/dist/storage/memory.d.ts.map +1 -1
  143. package/dist/storage/memory.js +28 -2
  144. package/dist/storage/memory.js.map +1 -1
  145. package/dist/storage/sqlite/storage.d.ts +14 -2
  146. package/dist/storage/sqlite/storage.d.ts.map +1 -1
  147. package/dist/storage/sqlite/storage.js +110 -36
  148. package/dist/storage/sqlite/storage.js.map +1 -1
  149. package/dist/storage/store/commit.d.ts +33 -0
  150. package/dist/storage/store/commit.d.ts.map +1 -0
  151. package/dist/storage/store/commit.js +286 -0
  152. package/dist/storage/store/commit.js.map +1 -0
  153. package/dist/storage/store/documents.d.ts +43 -0
  154. package/dist/storage/store/documents.d.ts.map +1 -0
  155. package/dist/storage/store/documents.js +102 -0
  156. package/dist/storage/store/documents.js.map +1 -0
  157. package/dist/storage/store/index.d.ts +2 -0
  158. package/dist/storage/store/index.d.ts.map +1 -0
  159. package/dist/storage/store/index.js +2 -0
  160. package/dist/storage/store/index.js.map +1 -0
  161. package/dist/storage/store/queries.d.ts +49 -0
  162. package/dist/storage/store/queries.d.ts.map +1 -0
  163. package/dist/storage/store/queries.js +93 -0
  164. package/dist/storage/store/queries.js.map +1 -0
  165. package/dist/storage/store/storage.d.ts +59 -0
  166. package/dist/storage/store/storage.d.ts.map +1 -0
  167. package/dist/storage/store/storage.js +438 -0
  168. package/dist/storage/store/storage.js.map +1 -0
  169. package/dist/storage/store/tables.d.ts +54 -0
  170. package/dist/storage/store/tables.d.ts.map +1 -0
  171. package/dist/storage/store/tables.js +108 -0
  172. package/dist/storage/store/tables.js.map +1 -0
  173. package/dist/testing/commit-writes.d.ts +5 -0
  174. package/dist/testing/commit-writes.d.ts.map +1 -0
  175. package/dist/testing/commit-writes.js +12 -0
  176. package/dist/testing/commit-writes.js.map +1 -0
  177. package/dist/testing/env-conformance.js +7 -7
  178. package/dist/testing/env-conformance.js.map +1 -1
  179. package/dist/testing/index.d.ts +1 -0
  180. package/dist/testing/index.d.ts.map +1 -1
  181. package/dist/testing/index.js +1 -0
  182. package/dist/testing/index.js.map +1 -1
  183. package/dist/testing/storage-benchmark.d.ts.map +1 -1
  184. package/dist/testing/storage-benchmark.js +18 -17
  185. package/dist/testing/storage-benchmark.js.map +1 -1
  186. package/dist/testing/storage-conformance.d.ts.map +1 -1
  187. package/dist/testing/storage-conformance.js +354 -69
  188. package/dist/testing/storage-conformance.js.map +1 -1
  189. package/dist/tool-search/tool-search.d.ts +6 -12
  190. package/dist/tool-search/tool-search.d.ts.map +1 -1
  191. package/dist/tool-search/tool-search.js +7 -7
  192. package/dist/tool-search/tool-search.js.map +1 -1
  193. package/dist/tools/bash.d.ts +12 -12
  194. package/dist/tools/bash.d.ts.map +1 -1
  195. package/dist/tools/bash.js +16 -15
  196. package/dist/tools/bash.js.map +1 -1
  197. package/dist/tools/edit.d.ts +7 -7
  198. package/dist/tools/edit.d.ts.map +1 -1
  199. package/dist/tools/edit.js +9 -9
  200. package/dist/tools/edit.js.map +1 -1
  201. package/dist/tools/index.d.ts +32 -32
  202. package/dist/tools/read.d.ts +6 -6
  203. package/dist/tools/read.d.ts.map +1 -1
  204. package/dist/tools/read.js +19 -8
  205. package/dist/tools/read.js.map +1 -1
  206. package/dist/tools/write.d.ts +4 -4
  207. package/dist/tools/write.d.ts.map +1 -1
  208. package/dist/tools/write.js +5 -5
  209. package/dist/tools/write.js.map +1 -1
  210. package/dist/types.d.ts +223 -77
  211. package/dist/types.d.ts.map +1 -1
  212. package/dist/types.js.map +1 -1
  213. package/package.json +19 -12
  214. package/dist/harness/events.d.ts +0 -186
  215. package/dist/harness/events.d.ts.map +0 -1
  216. package/dist/harness/events.js +0 -373
  217. package/dist/harness/events.js.map +0 -1
  218. package/dist/session/observation.d.ts +0 -42
  219. package/dist/session/observation.d.ts.map +0 -1
  220. package/dist/session/observation.js +0 -281
  221. package/dist/session/observation.js.map +0 -1
@@ -1,11 +1,12 @@
1
- import type { AttachedReplicatedState, Context, JsonValue } from "@earendil-works/chord";
2
- import type { AssistantMessage, CacheRetention, ClientIdentity, Message, Models, ModelThinkingLevel, Static, Tool, ToolCall, ToolResultMessage, Transport, TSchema, Usage, UserMessage } from "@earendil-works/pi-ai";
1
+ import type { Context, JsonValue, WatchHandle } from "@earendil-works/chord";
2
+ import type { Api, AssistantMessage, CacheRetention, ClientIdentity, Message, Model, Models, ModelThinkingLevel, Tool, ToolCall, ToolResultMessage, Transport, Usage, UserMessage } from "@earendil-works/pi-ai";
3
+ import type { Static } from "@earendil-works/pi-schema";
3
4
  import type { TelemetryContext } from "@earendil-works/pi-telemetry";
4
5
  import type { ExecutionEnv, ShellOutputSkip, ShellOutputWindow } from "../env/index.ts";
5
- import type { ConversationId, ConversationOwnership, ConversationRecord, Cursor, DocumentObserver, DocumentReader, EntryDraft, EntryId, EntryQuery, EntryRecord, JsonObject, Page, ReportInfo, Session, SetTimer, SubmissionId, SubmissionRecord, Task, TaskId, TaskOptions, TaskRecord, TaskState, Tx, WatchHandle } from "../types.ts";
6
+ import type { CommitOptions, ConversationId, ConversationOwnership, ConversationRecord, Cursor, DocumentObserver, DocumentReader, Entry, EntryDraft, EntryId, EntryQuery, EntryRecord, JsonObject, Observation, Observer, Page, Report, Session, SetTimer, SubmissionId, SubmissionRecord, Task, TaskId, TaskOptions, TaskRecord, TaskState, Tx, TypedEntry } from "../types.ts";
6
7
  import type { TaskGraph, TaskGraphWatch } from "./task-graph.ts";
7
8
  import type { UsageState } from "./usage.ts";
8
- import type { ConversationView } from "./view.ts";
9
+ import type { ConversationView, ConversationWindow } from "./view.ts";
9
10
  /** Provider and model ID resolved through pi-ai `Models`. */
10
11
  export type ModelRef = {
11
12
  readonly provider: string;
@@ -20,13 +21,23 @@ export type InputEntry = {
20
21
  readonly kind: string;
21
22
  readonly data?: JsonValue;
22
23
  };
23
- /** Host submission: user input that may start a run, or a passive entry write. */
24
+ /**
25
+ * Host submission: user input that may start a run, a passive entry write, or a continue: a run without a new user
26
+ * message, for an idle conversation whose context the model still owes an answer (it ends in a user message or tool
27
+ * results, for example after a run that ended without an answer).
28
+ */
24
29
  export type SubmissionDraft = {
25
30
  readonly requestId?: string;
26
31
  } & ({
27
32
  readonly type: "input";
28
33
  readonly content: UserInput;
29
34
  readonly whenBusy?: "steer" | "followUp" | "reject";
35
+ /**
36
+ * `reject`: an idle conversation (no run) rejects the input with `ConversationIdle` and writes nothing, so the input
37
+ * never starts a run of its own. With `whenBusy: "steer"` it steers the current run or is refused; a run that
38
+ * answered and waits for its `afterRun` tasks is still busy, and such an input queues and starts the next run.
39
+ */
40
+ readonly whenIdle?: "reject";
30
41
  /** Place the input as this entry; default `pi.user` without data. The kind must not start with `pi.`. */
31
42
  readonly entry?: InputEntry;
32
43
  } | {
@@ -34,6 +45,20 @@ export type SubmissionDraft = {
34
45
  readonly entry: EntryDraft;
35
46
  readonly content?: never;
36
47
  readonly whenBusy?: never;
48
+ readonly whenIdle?: never;
49
+ } | {
50
+ /**
51
+ * Start a run on the context as it is, without a user message. Only when idle: a busy conversation rejects it with
52
+ * `ConversationBusy`, and it never queues. Items kept in `pi.inbox` are placed first and join the run. A context
53
+ * with nothing to answer (empty, or ending in an answer, also a text answer cut off at its output limit) ends the
54
+ * run without a request, `unanswered` with `nothing_to_answer`. A cut-off answer with tool calls is continued:
55
+ * its calls never ran, and the context ends in their error results (`missing_result`).
56
+ */
57
+ readonly type: "continue";
58
+ readonly content?: never;
59
+ readonly entry?: never;
60
+ readonly whenBusy?: never;
61
+ readonly whenIdle?: never;
37
62
  });
38
63
  export type InputSubmissionDraft = Extract<SubmissionDraft, {
39
64
  readonly type: "input";
@@ -77,12 +102,16 @@ export type ConversationAbortOptions = {
77
102
  /** Hook handler map declared by a task definition. */
78
103
  export type HooksOf<K> = K extends Task<infer _I, infer _S, infer _R, infer H> ? H : never;
79
104
  /**
80
- * Invocation-bound conversation operations for tasks and tools. Rejects after the invocation ends; passive entries are
81
- * written with ordinary transaction writes instead.
105
+ * Invocation-bound conversation operations for tasks and tools. Rejects after the invocation ends. `submit` takes any
106
+ * submission, in both forms of `Conversation.submit()`: a subagent's conversation is an ordinary one, so a tool may also
107
+ * continue it, and a task may admit a submission in the same commit as its own writes (`runtime.commit()`); entries
108
+ * the admission appends there carry the task's `byTaskId`. The transaction form also rejects once the invocation is
109
+ * aborted.
82
110
  */
83
111
  export interface ConversationHandle {
84
112
  readonly id: ConversationId;
85
- submit(submission: InputSubmissionDraft, context: Context): Promise<Submission>;
113
+ submit(submission: SubmissionDraft, context: Context): Promise<Submission>;
114
+ submit(tx: Tx, submission: SubmissionDraft): Promise<SubmissionId>;
86
115
  /** `Conversation.abort()`: withdraw queued inputs, abort the ordinary ownership scope, and wait until it is idle. */
87
116
  abort(context: Context, options?: ConversationAbortOptions): Promise<void>;
88
117
  /** Resolve when the conversation's ordinary ownership scope has no live non-background task. */
@@ -93,6 +122,10 @@ export type ToolControl = {
93
122
  readonly addTools?: readonly string[];
94
123
  /** End the run without another model request when every result of the round sets it to `true`; `false` is a no-op. */
95
124
  readonly terminate?: boolean;
125
+ /**
126
+ * Start a new context with this text as its user message, as `reset(handoff)` writes, and continue the run there.
127
+ * The last handoff in call order wins.
128
+ */
96
129
  readonly handoff?: string;
97
130
  };
98
131
  /** Remark about a call for the model and the UI, such as truncation or a spill path; never part of the tool's data. */
@@ -189,7 +222,8 @@ export interface ToolExecutionApi<TDetails extends JsonValue = JsonValue> extend
189
222
  diagnostic(diagnostic: ToolDiagnostic): void;
190
223
  /** Replace running details; the last value becomes the result details when the result omits `details`. */
191
224
  details(value: TDetails, context: Context): Promise<void>;
192
- commit<T>(change: (tx: Tx) => T | Promise<T>, context: Context): Promise<T>;
225
+ /** A commit of this call's task; `options` may defer storing it (`CommitPersistence`). */
226
+ commit<T>(change: (tx: Tx) => T | Promise<T>, context: Context, options?: CommitOptions): Promise<T>;
193
227
  memo<T extends JsonValue>(name: string, context: Context): Promise<T | undefined>;
194
228
  memo<T extends JsonValue>(name: string, candidate: T, context: Context): Promise<T>;
195
229
  /**
@@ -235,11 +269,18 @@ export interface ToolExecutionApi<TDetails extends JsonValue = JsonValue> extend
235
269
  readonly progress?: boolean;
236
270
  }): Promise<NestedToolExecutionResult>;
237
271
  }
272
+ /**
273
+ * The arguments type of a tool with parameter schema `TParameters`: pi-schema's `Static<TParameters>` (the builders'
274
+ * type, TypeBox's for the common TypeBox kinds, else `unknown`), and `any` for `ToolRegistration<any>`.
275
+ */
276
+ export type ToolArgs<TParameters> = IsAny<TParameters> extends true ? any : Static<TParameters>;
277
+ type IsAny<T> = boolean extends (T extends never ? true : false) ? true : false;
238
278
  /**
239
279
  * Executable tool registered in a registry. Only pi-ai `Tool` fields enter the transcript. `args` are typed by
240
- * `parameters`, which the Harness validates them against before `execute()`; `defineTool()` infers both generics.
280
+ * `parameters` (any JSON Schema object; see {@link ToolArgs}), which the Harness validates them against before
281
+ * `execute()`; `defineTool()` infers both generics.
241
282
  */
242
- export type ToolRegistration<TParameters extends TSchema = TSchema, TDetails extends JsonValue = JsonValue> = Tool<TParameters> & {
283
+ export type ToolRegistration<TParameters extends object = object, TDetails extends JsonValue = JsonValue> = Tool<TParameters> & {
243
284
  /** Whether an interrupted execution may rerun on recovery. Default `unsafe`. */
244
285
  readonly replay?: "safe" | "unsafe";
245
286
  /** Default: the settings' `toolExecution`. One sequential call makes its whole round sequential. */
@@ -249,12 +290,12 @@ export type ToolRegistration<TParameters extends TSchema = TSchema, TDetails ext
249
290
  * pure and must not mutate `args`: it runs again when a call is retried before its intent is recorded. Its result is
250
291
  * still validated against `parameters`.
251
292
  */
252
- prepareArguments?(args: unknown): Static<TParameters>;
293
+ prepareArguments?(args: unknown): ToolArgs<TParameters>;
253
294
  /**
254
295
  * Schema of `structuredOutput`, which programs that call the tool receive. Omitted: they receive the result's bounded
255
296
  * output, success or error, as `NestedToolExecutionResult.structuredOutput` describes.
256
297
  */
257
- readonly structuredOutputSchema?: TSchema;
298
+ readonly structuredOutputSchema?: object;
258
299
  /**
259
300
  * Who may call the tool: the model, other tools through `executeTool()`, or both (default). A code mode tool is
260
301
  * `["model"]`, so scripts cannot start scripts; tools behind code mode, such as MCP tools, can be `["tools"]`, so the
@@ -271,7 +312,7 @@ export type ToolRegistration<TParameters extends TSchema = TSchema, TDetails ext
271
312
  readonly maxLines?: number;
272
313
  readonly retain?: "head" | "tail";
273
314
  };
274
- execute(args: Static<TParameters>, api: ToolExecutionApi<TDetails>, context: Context): Promise<ToolExecutionResult<TDetails>>;
315
+ execute(args: ToolArgs<TParameters>, api: ToolExecutionApi<TDetails>, context: Context): Promise<ToolExecutionResult<TDetails>>;
275
316
  };
276
317
  /** Input to system prompt section rendering for one request preparation. */
277
318
  export type PromptInput<Tool extends ToolRegistration = ToolRegistration> = {
@@ -377,6 +418,11 @@ export type AgentState = {
377
418
  instructions?: string;
378
419
  /** Directory within the environment's file system, passed to `HarnessOptions.env`. */
379
420
  cwd?: string;
421
+ /**
422
+ * Tool rounds one run takes at most (`pi.live.run.turns`): the round that reaches it runs its tools, then the run ends
423
+ * `unanswered` with `turn_limit`. An integer, `1` or more; unset, no limit. Task-owned children and forks inherit it.
424
+ */
425
+ maxTurns?: number;
380
426
  };
381
427
  /** A change to `pi.agent`: a given field replaces the stored one, `null` clears it, `undefined` changes nothing. */
382
428
  export type AgentChange = {
@@ -396,6 +442,8 @@ export type AgentChange = {
396
442
  } | null;
397
443
  readonly instructions?: string | null;
398
444
  readonly cwd?: string | null;
445
+ /** `configure()` throws a `RangeError` unless it is an integer `1` or more (or `null`). */
446
+ readonly maxTurns?: number | null;
399
447
  };
400
448
  /** A conversation's agent resolved against a registry snapshot and the settings. */
401
449
  export type Agent<Tool extends ToolRegistration = ToolRegistration> = {
@@ -412,6 +460,11 @@ export type Agent<Tool extends ToolRegistration = ToolRegistration> = {
412
460
  readonly sections: readonly PromptSection<Tool>[];
413
461
  readonly instructions?: string;
414
462
  readonly cwd?: string;
463
+ /**
464
+ * Tool rounds one run takes at most (`pi.live.run.turns`): the round that reaches it runs its tools, then the run ends
465
+ * `unanswered` with `turn_limit`. An integer, `1` or more; unset, no limit. Task-owned children and forks inherit it.
466
+ */
467
+ readonly maxTurns?: number;
415
468
  };
416
469
  /**
417
470
  * Runs inside the creating commit, after the creation hook and the `agent` change. The conversation creation is already
@@ -464,14 +517,21 @@ export type CompactionSettings = Partial<CompactionPolicy> & {
464
517
  readonly modelOverrides?: Readonly<Record<string, Partial<CompactionPolicy>>>;
465
518
  };
466
519
  /**
467
- * How often running progress is committed. Each progress commit is a storage write; a host whose storage is remote can
468
- * commit less often, so live answers and tool output appear in larger steps.
520
+ * How often running progress is committed, and how long it may wait in memory before it is stored. Progress commits are
521
+ * deferred (`CommitPersistence`): watches see each at once, and Storage gets them together, at the run's next phase
522
+ * boundary or after `persistWithinMs`. A host can commit less often, so live answers and tool output appear in larger steps.
469
523
  */
470
524
  export type ProgressPolicy = {
471
525
  /** Minimum pause between commits of the answer being generated. */
472
526
  partialIntervalMs: number;
473
527
  /** Minimum pause between commits of running tool output; large commits also pause in proportion to their size. */
474
528
  outputIntervalMs: number;
529
+ /**
530
+ * How long these commits, and other deferred commits without their own `withinMs`, may stay in memory before they are
531
+ * stored (`CommitPersistence`); a crash loses at most about this much of an answer or of tool output. Default 1,000;
532
+ * `Infinity` stores them only at the next commit that reads or writes their document and at close.
533
+ */
534
+ persistWithinMs: number;
475
535
  };
476
536
  /** Why a compaction runs: `compact()`, a threshold in generation preparation, or a context overflow. */
477
537
  export type CompactionReason = "manual" | "threshold" | "overflow";
@@ -500,25 +560,32 @@ export type HarnessSettings = {
500
560
  */
501
561
  readonly contextRetentionMs?: number;
502
562
  /**
503
- * How long a loaded document that no watch or document state observes stays in memory after its last read or write;
563
+ * How long a loaded document that no watch observes stays in memory after its last read or write;
504
564
  * the next access loads it from Storage. Observed documents always stay. Default ten minutes; `0` drops one right
505
565
  * after use; `Infinity` keeps them. Anything else that is not a number of milliseconds means the default.
506
566
  */
507
567
  readonly documentRetentionMs?: number;
508
568
  /**
509
- * What a run that fails (`model_error`, `no_model`) does with the inputs queued behind it: `keep` leaves them
510
- * queued until the next input or queued write, `continue` starts the next run with them, as an answer would, and
511
- * `withdraw` settles them `unanswered` with reason `run_failed`. Default `keep`.
569
+ * What a run that fails (`model_error`, `no_model`, `interrupted`, `restart_limit`, `nothing_to_answer`,
570
+ * `turn_limit`) does with the inputs queued behind it: `keep` leaves them queued until the next input or queued write, `continue` starts the
571
+ * next run with them, as an answer would, and `withdraw` settles them `unanswered` with reason `run_failed`. Default
572
+ * `keep`.
512
573
  */
513
574
  readonly afterFailedRun?: AfterFailedRun;
514
575
  /**
515
576
  * How many times in a row a task may be cut off by a crash, eviction, or reset (a close does not count) without
516
- * changing its state before it is parked as blocked (`restart_limit`) instead of run again; `Harness.retryTask()`
517
- * runs it again. Default 5; `Infinity` never parks.
577
+ * changing its state before it ends instead of running again: a tool call with an error result, a compaction failed
578
+ * into `pi.live.compactionFailure`, a run with `pi.live.runFailure` reason `restart_limit`, any other task `faulted`
579
+ * with detail `{ reason: "restart_limit" }`. A generation's request or poll the host died during is a failed attempt
580
+ * under `retry` first; the limit bounds it only when charging that attempt keeps being cut off. Default 5;
581
+ * `Infinity` never ends a task for it.
518
582
  */
519
583
  readonly restartLimit?: number;
520
584
  };
521
- /** What a failed run does with the inputs queued behind it (`HarnessSettings.afterFailedRun`). */
585
+ /**
586
+ * What a failed run does with the inputs queued behind it (`HarnessSettings.afterFailedRun`): a run that ends with
587
+ * `model_error`, `no_model`, `interrupted`, `restart_limit`, `nothing_to_answer`, or `turn_limit`.
588
+ */
522
589
  export type AfterFailedRun = "keep" | "continue" | "withdraw";
523
590
  /** Resolved settings: every field over its built-in default, object fields merged. */
524
591
  export type Settings = {
@@ -587,18 +654,27 @@ export type HarnessOptions<Tool extends ToolRegistration = ToolRegistration> = {
587
654
  * Wakes the process for sleeping tasks instead of a `setTimer` timer. Without it, while scheduling runs, a timer that
588
655
  * keeps the process alive resumes sleeping tasks when they are due. With it, the Harness arms no timer for them: it
589
656
  * calls `onWake` after open and whenever `Harness.wake()` changes, and the host arms its own wakeup, such as a
590
- * Durable Object alarm, and calls `resume()` when it fires. Called off the Session line, after the commit that
591
- * changed the value, so a host arms a recovery wakeup before calls that can start work. It may call `wake()` and
592
- * `resume()`, and must not block. A throw is reported, and the value is offered again at the next change.
657
+ * Durable Object alarm, and calls `resume()` when it fires. Called in a microtask the Session line never waits for,
658
+ * after the commit that changed the value was adopted, so a host arms a recovery wakeup before calls that can start
659
+ * work. It may call `wake()` and `resume()`, and must not block. A throw is reported, and the value is offered again
660
+ * at the next change.
593
661
  */
594
662
  readonly onWake?: (wake: Wake) => void;
595
663
  /**
596
664
  * Receives failures that do not fail the calling operation, such as a throwing hook or listener, a task that faulted,
597
- * and the error that fails the Session, once. `info` says what happened: a host can tell a failed Session
598
- * (`session_failed`, often a platform reset) from a faulted task (`task_faulted`) or a parked one (`task_parked`).
599
- * Its own throw or rejection is dropped.
665
+ * and the error that fails the Session, once: one `Report`, the `error` and what happened (`kind` and the fields of
666
+ * its `ReportInfo`). A host can tell a failed Session (`storage_failed`, often a platform reset) from a faulted task
667
+ * (`task_faulted`). Its own throw or rejection is dropped.
668
+ */
669
+ readonly onReport?: (report: Report) => void;
670
+ /**
671
+ * Open for reading only, as a viewer of a session that another process drives, for example a synced copy on a device
672
+ * that only shows it. Open recovers nothing: a `running` task stays as committed. Every commit with writes rejects
673
+ * with `ReadOnlySession` before it reaches Storage, and so does `resume()` and every call that enables scheduling;
674
+ * the Harness stays usable for reads and watches. `wake()` is always inactive, and `onWake` is never called. Reopen
675
+ * without it to write.
600
676
  */
601
- readonly onReport?: (error: unknown, info: ReportInfo) => void;
677
+ readonly readOnly?: boolean;
602
678
  };
603
679
  /**
604
680
  * When a Session next needs a running process (`Harness.wake()`). `active`: some task can run now or is running, or a
@@ -619,7 +695,7 @@ export type TaskInspection = {
619
695
  }
620
696
  /** The next scheduling pass reserves it; `migrates` when its definition is newer and has `migrate`. */
621
697
  | {
622
- readonly kind: "ready";
698
+ readonly kind: "pending";
623
699
  readonly migrates: boolean;
624
700
  }
625
701
  /**
@@ -639,13 +715,10 @@ export type TaskInspection = {
639
715
  | {
640
716
  readonly kind: "completing";
641
717
  }
642
- /**
643
- * Cannot run here: no registered definition can take it (aborting it settles it as `orphaned`), or it is parked by
644
- * the restart limit (`retryTask()` runs it again).
645
- */
718
+ /** Cannot run here: no registered definition can take it (aborting it settles it as `orphaned`). */
646
719
  | {
647
720
  readonly kind: "blocked";
648
- readonly reason: "missing_task" | "task_too_old" | "migration_failed" | "restart_limit";
721
+ readonly reason: "missing_task" | "task_too_old" | "migration_failed";
649
722
  readonly error?: unknown;
650
723
  };
651
724
  };
@@ -675,12 +748,25 @@ export interface Conversation {
675
748
  /** `configure()` in its own commit. */
676
749
  configure(change: AgentChange, context: Context): Promise<void>;
677
750
  /**
678
- * Durably admit user input or a passive entry write. A busy conversation, or one with queued items, queues input and
679
- * writes that affect model context in `pi.inbox`; `whenBusy: "reject"` rejects input with `ConversationBusy` instead
680
- * and writes nothing. A write of only `kind` and `data` (no `model`, `head`, or `edits`) is appended at once,
681
- * even mid-run, as it changes nothing the model sees.
751
+ * Durably admit user input, a passive entry write, or a continue. A busy conversation, or one with queued items,
752
+ * queues input and writes that affect model context in `pi.inbox`; `whenBusy: "reject"` rejects input with
753
+ * `ConversationBusy` instead and writes nothing. An idle conversation rejects `whenIdle: "reject"` input with
754
+ * `ConversationIdle` and writes nothing. A write of only `kind` and `data` (no `model`, `head`, or `edits`)
755
+ * is appended at once, even mid-run, as it changes nothing the model sees. A continue starts a run on the context as
756
+ * it is, after placing queued items; a busy conversation rejects it with `ConversationBusy`, as it never queues.
682
757
  */
683
758
  submit(submission: SubmissionDraft, context: Context): Promise<Submission>;
759
+ /**
760
+ * Admit a submission inside the caller's commit `tx` (`Harness.commit()`, `Conversation.commit()`, a task's
761
+ * `runtime.commit()`), with the same rules, and return its ID: the admission is stored with that commit, or not at all
762
+ * when the callback throws later or the commit fails. Call it before the commit's first table write (`appendEntry()`,
763
+ * `createTask()`, `createSubmission()`, another admission): otherwise it throws `ReadAfterWrite`, on every path.
764
+ * Documents may be read and written before and after it. A rejection (`ConversationBusy`, `ConversationIdle`) throws
765
+ * before any write, so the callback may catch it. Do not call `Submission` or other Harness reads inside the callback:
766
+ * they wait for the commit holding the line. Its `pi.durable.submit` span covers the admission only, so its `result`
767
+ * is provisional. Throws for a transaction of another Session.
768
+ */
769
+ submit(tx: Tx, submission: SubmissionDraft): Promise<SubmissionId>;
684
770
  /**
685
771
  * Admit a write of a `pi.reset` entry that starts a new context, carrying `handoff` as a user message when given.
686
772
  * Resolves after admission; while busy, it is placed at the next boundary.
@@ -691,8 +777,8 @@ export interface Conversation {
691
777
  * summary through a write submission: at once when idle, otherwise at the next boundary (spec §8.7).
692
778
  */
693
779
  compact(instructions: string | undefined, context: Context): Promise<TaskId<CompactionResult>>;
694
- /** Session commit whose `tx.createTask()` defaults to this conversation. */
695
- commit<T>(change: (tx: Tx) => T | Promise<T>, context: Context): Promise<T>;
780
+ /** Session commit whose `tx.createTask()` defaults to this conversation; `options` as for `Session.commit()`. */
781
+ commit<T>(change: (tx: Tx) => T | Promise<T>, context: Context, options?: CommitOptions): Promise<T>;
696
782
  /**
697
783
  * Committed raw active transcript and model context. With `at`, the context as of that visible entry: the same view
698
784
  * `fork(at)` would start with, without creating a conversation.
@@ -713,18 +799,21 @@ export interface Conversation {
713
799
  * owned, transitively, by its non-background tasks.
714
800
  */
715
801
  waitForIdle(context: Context): Promise<void>;
716
- /** The structural view (spec §9.3) as a disposable read-only Chord state. */
717
- viewState(context: Context): Promise<AttachedReplicatedState<ConversationView>>;
718
- /** The structural view as a serialized exact-frame watch with bounded pending frames. */
719
- watch(context: Context): Promise<ConversationWatch>;
802
+ /**
803
+ * The structural view (spec §9.3) as a serialized watch; commits made while its listener runs arrive folded. Its
804
+ * `entries` are a window over the transcript, as `window` says: the newest 50 by default, then appends, dropping the
805
+ * oldest past 100. Built on the same mount as `Harness.observeConversation()`.
806
+ */
807
+ watch(context: Context, window?: ConversationWindow): Promise<ConversationWatch>;
720
808
  }
721
809
  export type ConversationWatch = WatchHandle<ConversationView>;
722
810
  /** Durable agent harness over one Session. */
723
811
  export interface Harness extends Session {
724
812
  /**
725
- * Enable task scheduling. Idempotent; throws after close. Calls that ask for progress enable it too:
726
- * `Conversation.submit()`, `Conversation.compact()`, `Conversation.abort()`, `Submission.wait()`, `waitForTask()`,
727
- * `Harness.waitForIdle()`, and `Conversation.waitForIdle()`. Read-only viewers never do.
813
+ * Enable task scheduling. Idempotent; throws after close, and `ReadOnlySession` on a read-only Harness. Calls that
814
+ * ask for progress enable it too: `Conversation.submit()`, `Conversation.compact()`, `Conversation.abort()`,
815
+ * `Submission.wait()`, `waitForTask()`, `Harness.waitForIdle()`, and `Conversation.waitForIdle()`. Read-only viewers
816
+ * never do.
728
817
  */
729
818
  resume(): void;
730
819
  /**
@@ -753,23 +842,35 @@ export interface Harness extends Session {
753
842
  * definition cannot take it settles as `orphaned` instead.
754
843
  */
755
844
  abortTask(id: TaskId, context: Context): Promise<"marked" | "terminal">;
756
- /**
757
- * Run a task parked by `settings.restartLimit` again: clears its restart count and enables scheduling. Does nothing
758
- * for a task that is not parked; rejects for an unknown one.
759
- */
760
- retryTask(id: TaskId, context: Context): Promise<void>;
761
845
  /** Resolve with the terminal receipt; cancelling `context` cancels only this wait. */
762
846
  waitForTask<R>(id: TaskId<R>, context: Context): Promise<SettledTask<R>>;
763
847
  /** Resolve when the ordinary ownership scope of every ownerless conversation has no live non-background task. */
764
848
  waitForIdle(context: Context): Promise<void>;
765
849
  /** Session total: every conversation's `pi.usage` summed. */
766
850
  usage(context: Context): Promise<UsageState>;
767
- /** Every live task with its owner edge, status, and owned conversations (spec §9.5), as a disposable Chord state. */
768
- taskGraph(context: Context): Promise<AttachedReplicatedState<TaskGraph>>;
769
- /** The task graph as a serialized exact-frame watch with bounded pending frames. */
851
+ /**
852
+ * Every live task with its owner edge, status, and owned conversations (spec §9.4), as a serialized watch; commits
853
+ * made while its listener runs arrive folded.
854
+ */
770
855
  watchTaskGraph(context: Context): Promise<TaskGraphWatch>;
856
+ /**
857
+ * Attach a synchronous `Observer` to a conversation's structural view (spec §9.3), atomically on the Session line,
858
+ * for adapters: `advance` gets each next revision with its operations as memory adopts the commit, inside Storage's
859
+ * `adopt` for a stored one and before it is stored for a deferred one, so it only records it. `window` as for
860
+ * `Conversation.watch()`; each observer has its own. `context` governs only the attachment.
861
+ */
862
+ observeConversation(id: ConversationId, observer: Observer<ConversationView>, context: Context, window?: ConversationWindow): Promise<Observation<ConversationView>>;
863
+ /**
864
+ * Attach a synchronous `Observer` to the task graph (spec §9.4), as `observeConversation()` does to a view. A
865
+ * `blocked` reason that changes without a commit (a registry change, a failed migration) advances it on the Session
866
+ * line outside any commit and `adopt`, with the background context.
867
+ */
868
+ observeTaskGraph(observer: Observer<TaskGraph>, context: Context): Promise<Observation<TaskGraph>>;
771
869
  }
772
- /** What a hook may use: committed reads and the asking task's memos, which hooks and the task share. */
870
+ /**
871
+ * What a hook may use: committed reads and the asking task's memos, which hooks and the task share. Hooks run off the
872
+ * Session line, so reads see what is committed when they run; a hook rerun after a crash may see more.
873
+ */
773
874
  export interface HookApi extends DocumentReader {
774
875
  readonly taskId: TaskId;
775
876
  readonly conversationId: ConversationId;
@@ -777,6 +878,12 @@ export interface HookApi extends DocumentReader {
777
878
  readonly models: Models;
778
879
  memo<T extends JsonValue>(name: string, context: Context): Promise<T | undefined>;
779
880
  memo<T extends JsonValue>(name: string, candidate: T, context: Context): Promise<T>;
881
+ /** Committed entry visible from the task's conversation, as `TaskRuntime.entry()`. */
882
+ entry(id: EntryId, context: Context): Promise<EntryRecord | undefined>;
883
+ /** Undefined when the entry is absent, not visible, or has another kind. */
884
+ entry<D extends JsonValue>(token: Entry<D>, id: EntryId, context: Context): Promise<TypedEntry<D> | undefined>;
885
+ /** Committed raw history of the task's conversation, as `TaskRuntime.entries()`. */
886
+ entries(query: Omit<EntryQuery, "conversationId">, limit: number, cursor: Cursor | undefined, context: Context): Promise<Page<EntryRecord, Cursor>>;
780
887
  }
781
888
  export type HookResult<T> = T | undefined | Promise<T | undefined>;
782
889
  /** Hooks of the built-in generation task. */
@@ -787,6 +894,17 @@ export interface GenerationHooks {
787
894
  }, api: HookApi, context: Context): HookResult<{
788
895
  readonly messages: readonly Message[];
789
896
  }>;
897
+ /**
898
+ * After pi-ai builds the provider request body, before it is sent; the result replaces the body for that request only.
899
+ * Runs again whenever pi-ai rebuilds the body, such as a retry within one attempt. The body is in the provider API's
900
+ * own format (`request.model.api`), so a hook checks the API before changing it.
901
+ */
902
+ beforeProviderRequest(request: {
903
+ readonly model: Model<Api>;
904
+ readonly payload: unknown;
905
+ }, api: HookApi, context: Context): HookResult<{
906
+ readonly payload: unknown;
907
+ }>;
790
908
  /** Every terminal provider message, before classification. */
791
909
  afterResponse(message: AssistantMessage, api: HookApi, context: Context): void | Promise<void>;
792
910
  /** A final answer; the first `continue` appends a user message and continues the run. */
@@ -795,7 +913,36 @@ export interface GenerationHooks {
795
913
  }>;
796
914
  /** After every tool of the round is terminal; `results` are the round's result entries in call order. */
797
915
  afterTools(assistant: EntryId, results: readonly EntryId[], api: HookApi, context: Context): void | Promise<void>;
916
+ /**
917
+ * After a run answered, its answer committed and its inputs settled `done`: a final answer, or a `terminate` round;
918
+ * not when an `onYield` continuation is taken, and never after a failure or an abort. The requested tasks of every
919
+ * hook are created together as children of the generation, which keeps the run, and the conversation busy, until
920
+ * they are terminal; then queued items are placed and the run ends (spec §8.3). A crash before they are created asks
921
+ * again; once created, never again for this run.
922
+ */
923
+ afterRun(run: RunSummary, api: HookApi, context: Context): HookResult<{
924
+ readonly tasks: readonly RunEndTask[];
925
+ }>;
798
926
  }
927
+ /** How a run ended, for `afterRun` hooks. Read the run's history with `api.entries({ minEntryId: first, maxEntryId: last })`. */
928
+ export type RunSummary = {
929
+ /** A final answer, or a tool round whose every call asked to `terminate`. */
930
+ readonly reason: "answer" | "terminate";
931
+ /**
932
+ * The run's first entry (`LiveRun.first`): the first one the boundary that started it placed, for a continue the failed
933
+ * run's it continues, otherwise its first tool-calling answer; the answer itself for a run that has none of these.
934
+ */
935
+ readonly first: EntryId;
936
+ /** The answer, or the terminating round's tool-calling answer, whose results follow it. */
937
+ readonly answer: EntryId;
938
+ /** The run's last entry: the answer; for a `terminate` round its newest result, or the reset of its handoff. */
939
+ readonly last: EntryId;
940
+ };
941
+ /** A task an `afterRun` hook asks for, built by `runEndTask()`. */
942
+ export type RunEndTask = {
943
+ readonly task: AnyTask;
944
+ readonly input: JsonValue;
945
+ };
799
946
  /** A call as tool hooks see it; `parent` is set for a nested call, one a running tool made through `executeTool()`. */
800
947
  export type ToolHookCall = ToolCall & {
801
948
  readonly parent?: {
@@ -810,7 +957,18 @@ export interface ToolHooks {
810
957
  readonly arguments?: JsonObject;
811
958
  readonly block?: string;
812
959
  }>;
813
- /** After execution, before the result is committed; replaces the result. */
960
+ /**
961
+ * Before the result is committed; replaces the result. Runs on every result the tool task writes: an executed
962
+ * call's, and the error results the Harness writes itself, told apart by their diagnostic code: a tool that does not
963
+ * resolve (`tool_unavailable`), invalid arguments (`invalid_arguments`, with `call.arguments` as the model sent
964
+ * them), a block (`blocked`), and, rebuilt from the call's partial output, an interruption (`interrupted`), the
965
+ * restart limit (`restart_limit`), and an abort (`aborted`, `abandoned`). Once the task was cut off more than
966
+ * `settings.restartLimit` times the hooks no longer run, since they may be what cuts it off, nor in the last attempt
967
+ * the scheduler gives an abort handler (restarts at the limit minus one). A result's `structuredOutput` is dropped
968
+ * when the Harness wrote it (a nested call a hook turns into a success gets the bounded output as a schema-less tool's
969
+ * does), and its `control` applies only to a call that completes (not to an interrupted, cut-off, or aborted one).
970
+ * An abort's hooks run inside the abort handler, which cannot be aborted: a slow hook delays `Conversation.abort()`.
971
+ */
814
972
  afterTool(call: ToolHookCall, result: ToolExecutionResult, api: HookApi, context: Context): HookResult<ToolExecutionResult>;
815
973
  }
816
974
  /** Hooks of the built-in compaction task. */
@@ -832,4 +990,5 @@ export interface CompactionHooks {
832
990
  readonly summary: string;
833
991
  }>;
834
992
  }
993
+ export {};
835
994
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/harness/types.ts"],"names":[],"mappings":"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"}