@earendil-works/pi-durable 0.99.2 → 1.0.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 (129) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +196 -74
  3. package/dist/env/index.d.ts +5 -0
  4. package/dist/env/index.d.ts.map +1 -1
  5. package/dist/env/index.js.map +1 -1
  6. package/dist/env/node.d.ts +2 -0
  7. package/dist/env/node.d.ts.map +1 -1
  8. package/dist/env/node.js +2 -0
  9. package/dist/env/node.js.map +1 -1
  10. package/dist/harness/agent.d.ts +31 -0
  11. package/dist/harness/agent.d.ts.map +1 -0
  12. package/dist/harness/agent.js +209 -0
  13. package/dist/harness/agent.js.map +1 -0
  14. package/dist/harness/compaction.d.ts.map +1 -1
  15. package/dist/harness/compaction.js +8 -11
  16. package/dist/harness/compaction.js.map +1 -1
  17. package/dist/harness/define.d.ts +18 -0
  18. package/dist/harness/define.d.ts.map +1 -0
  19. package/dist/harness/define.js +25 -0
  20. package/dist/harness/define.js.map +1 -0
  21. package/dist/harness/events.d.ts +5 -5
  22. package/dist/harness/events.d.ts.map +1 -1
  23. package/dist/harness/events.js +6 -6
  24. package/dist/harness/events.js.map +1 -1
  25. package/dist/harness/generation.d.ts +2 -4
  26. package/dist/harness/generation.d.ts.map +1 -1
  27. package/dist/harness/generation.js +39 -43
  28. package/dist/harness/generation.js.map +1 -1
  29. package/dist/harness/harness.d.ts.map +1 -1
  30. package/dist/harness/harness.js +68 -154
  31. package/dist/harness/harness.js.map +1 -1
  32. package/dist/harness/inbox.d.ts +4 -2
  33. package/dist/harness/inbox.d.ts.map +1 -1
  34. package/dist/harness/inbox.js +3 -5
  35. package/dist/harness/inbox.js.map +1 -1
  36. package/dist/harness/prompt.d.ts +1 -3
  37. package/dist/harness/prompt.d.ts.map +1 -1
  38. package/dist/harness/prompt.js +1 -11
  39. package/dist/harness/prompt.js.map +1 -1
  40. package/dist/harness/registry.d.ts +2 -3
  41. package/dist/harness/registry.d.ts.map +1 -1
  42. package/dist/harness/registry.js +66 -283
  43. package/dist/harness/registry.js.map +1 -1
  44. package/dist/harness/scheduler.d.ts +7 -2
  45. package/dist/harness/scheduler.d.ts.map +1 -1
  46. package/dist/harness/scheduler.js +41 -27
  47. package/dist/harness/scheduler.js.map +1 -1
  48. package/dist/harness/submissions.d.ts +4 -4
  49. package/dist/harness/submissions.d.ts.map +1 -1
  50. package/dist/harness/submissions.js +7 -4
  51. package/dist/harness/submissions.js.map +1 -1
  52. package/dist/harness/task-graph.d.ts +49 -0
  53. package/dist/harness/task-graph.d.ts.map +1 -0
  54. package/dist/harness/task-graph.js +163 -0
  55. package/dist/harness/task-graph.js.map +1 -0
  56. package/dist/harness/tool.d.ts +1 -1
  57. package/dist/harness/tool.d.ts.map +1 -1
  58. package/dist/harness/tool.js +9 -6
  59. package/dist/harness/tool.js.map +1 -1
  60. package/dist/harness/types.d.ts +171 -140
  61. package/dist/harness/types.d.ts.map +1 -1
  62. package/dist/harness/types.js.map +1 -1
  63. package/dist/harness/view.d.ts +1 -1
  64. package/dist/harness/view.d.ts.map +1 -1
  65. package/dist/harness/view.js +2 -7
  66. package/dist/harness/view.js.map +1 -1
  67. package/dist/index.d.ts +4 -2
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +2 -1
  70. package/dist/index.js.map +1 -1
  71. package/dist/session/session.d.ts.map +1 -1
  72. package/dist/session/session.js +5 -1
  73. package/dist/session/session.js.map +1 -1
  74. package/dist/session/transaction.d.ts +2 -2
  75. package/dist/session/transaction.d.ts.map +1 -1
  76. package/dist/session/transaction.js +7 -4
  77. package/dist/session/transaction.js.map +1 -1
  78. package/dist/storage/sqlite/database.d.ts +26 -19
  79. package/dist/storage/sqlite/database.d.ts.map +1 -1
  80. package/dist/storage/sqlite/database.js.map +1 -1
  81. package/dist/storage/sqlite/index.d.ts +1 -1
  82. package/dist/storage/sqlite/index.d.ts.map +1 -1
  83. package/dist/storage/sqlite/index.js.map +1 -1
  84. package/dist/storage/sqlite/migrations.js +6 -6
  85. package/dist/storage/sqlite/migrations.js.map +1 -1
  86. package/dist/storage/sqlite/node.d.ts +23 -7
  87. package/dist/storage/sqlite/node.d.ts.map +1 -1
  88. package/dist/storage/sqlite/node.js +129 -47
  89. package/dist/storage/sqlite/node.js.map +1 -1
  90. package/dist/storage/sqlite/storage.d.ts +12 -0
  91. package/dist/storage/sqlite/storage.d.ts.map +1 -1
  92. package/dist/storage/sqlite/storage.js +121 -129
  93. package/dist/storage/sqlite/storage.js.map +1 -1
  94. package/dist/tools/bash.d.ts +1 -1
  95. package/dist/tools/bash.d.ts.map +1 -1
  96. package/dist/tools/bash.js +3 -2
  97. package/dist/tools/bash.js.map +1 -1
  98. package/dist/tools/edit.d.ts +3 -3
  99. package/dist/tools/edit.d.ts.map +1 -1
  100. package/dist/tools/edit.js +5 -4
  101. package/dist/tools/edit.js.map +1 -1
  102. package/dist/tools/file-mutation-queue.d.ts +5 -1
  103. package/dist/tools/file-mutation-queue.d.ts.map +1 -1
  104. package/dist/tools/file-mutation-queue.js +39 -33
  105. package/dist/tools/file-mutation-queue.js.map +1 -1
  106. package/dist/tools/index.d.ts +18 -0
  107. package/dist/tools/index.d.ts.map +1 -1
  108. package/dist/tools/index.js +10 -0
  109. package/dist/tools/index.js.map +1 -1
  110. package/dist/tools/read.d.ts +3 -3
  111. package/dist/tools/read.d.ts.map +1 -1
  112. package/dist/tools/read.js +4 -3
  113. package/dist/tools/read.js.map +1 -1
  114. package/dist/tools/write.d.ts +1 -1
  115. package/dist/tools/write.d.ts.map +1 -1
  116. package/dist/tools/write.js +3 -2
  117. package/dist/tools/write.js.map +1 -1
  118. package/dist/types.d.ts +15 -4
  119. package/dist/types.d.ts.map +1 -1
  120. package/dist/types.js.map +1 -1
  121. package/package.json +25 -15
  122. package/dist/harness/config.d.ts +0 -29
  123. package/dist/harness/config.d.ts.map +0 -1
  124. package/dist/harness/config.js +0 -24
  125. package/dist/harness/config.js.map +0 -1
  126. package/docs/chord-delta-findings.md +0 -358
  127. package/docs/pico-v5-chord-usage.md +0 -373
  128. package/docs/pico-v5-handoff.md +0 -861
  129. package/docs/pico-v5.md +0 -4174
@@ -1,7 +1,8 @@
1
1
  import type { AttachedReplicatedState, Context, JsonValue } from "@earendil-works/chord";
2
- import type { AssistantMessage, CacheRetention, Message, Models, ModelThinkingLevel, Tool, ToolCall, ToolResultMessage, Transport, Usage, UserMessage } from "@earendil-works/pi-ai";
2
+ import type { AssistantMessage, CacheRetention, Message, Models, ModelThinkingLevel, Static, Tool, ToolCall, ToolResultMessage, Transport, TSchema, Usage, UserMessage } from "@earendil-works/pi-ai";
3
3
  import type { ExecutionEnv } from "../env/index.ts";
4
4
  import type { ConversationId, ConversationOwnership, ConversationRecord, Cursor, DocumentObserver, DocumentReader, EntryDraft, EntryId, EntryQuery, EntryRecord, JsonObject, Page, Session, SubmissionId, SubmissionRecord, Task, TaskId, TaskOptions, TaskRecord, TaskState, Tx, WatchHandle } from "../types.ts";
5
+ import type { TaskGraph, TaskGraphWatch } from "./task-graph.ts";
5
6
  import type { UsageState } from "./usage.ts";
6
7
  import type { ConversationView } from "./view.ts";
7
8
  /** Provider and model ID resolved through pi-ai `Models`. */
@@ -89,12 +90,12 @@ export type ToolDiagnostic = {
89
90
  readonly message: string;
90
91
  readonly code?: string;
91
92
  };
92
- export type ToolExecutionResult = {
93
+ export type ToolExecutionResult<TDetails extends JsonValue = JsonValue> = {
93
94
  /** Omitted: the retained `output()` text becomes the content. */
94
95
  readonly content?: ToolResultMessage["content"];
95
96
  readonly isError?: boolean;
96
97
  /** Omitted: the last `details()` value becomes the details. */
97
- readonly details?: JsonValue;
98
+ readonly details?: TDetails;
98
99
  /** Added after those recorded through `api.diagnostic()`. */
99
100
  readonly diagnostics?: readonly ToolDiagnostic[];
100
101
  /** Spend of the execution itself, such as a model call; stored on the result and in `pi.usage.tools`. */
@@ -106,21 +107,25 @@ export type ToolExecutionMode = "parallel" | "sequential";
106
107
  /** How many queued items of one mode a boundary places: the first, or all of them. */
107
108
  export type QueueMode = "all" | "one-at-a-time";
108
109
  /**
109
- * Operations available to one tool invocation. A plain object, so a wrapper can pass `{ ...api, env }` to the tool it
110
- * wraps. Every operation rejects after the invocation ends.
110
+ * Operations available to one tool invocation. A plain object, so a wrapper can spread it. Every operation rejects after
111
+ * the invocation ends.
111
112
  */
112
- export interface ToolExecutionApi extends DocumentObserver, DocumentReader {
113
+ export interface ToolExecutionApi<TDetails extends JsonValue = JsonValue> extends DocumentObserver, DocumentReader {
113
114
  readonly taskId: TaskId;
114
115
  readonly conversationId: ConversationId;
115
116
  readonly callId: string;
116
- /** `HarnessOptions.env` unless a wrapper supplies another environment. */
117
+ /** The tool task's phase snapshot. */
118
+ readonly registry: RegistrySnapshot;
119
+ /** The calling conversation's agent, as the tool task's phase resolved it. */
120
+ agent(context: Context): Promise<Agent>;
121
+ /** Built by `HarnessOptions.env` for this call; `undefined` without an environment. */
117
122
  readonly env: ExecutionEnv | undefined;
118
123
  /** Append running output; it becomes the result content when the result omits `content`. */
119
124
  output(chunk: string | Uint8Array): void;
120
125
  /** Record a model-visible remark about this call. */
121
126
  diagnostic(diagnostic: ToolDiagnostic): void;
122
127
  /** Replace running details; the last value becomes the result details when the result omits `details`. */
123
- details(value: JsonValue, context: Context): Promise<void>;
128
+ details(value: TDetails, context: Context): Promise<void>;
124
129
  commit<T>(change: (tx: Tx) => T | Promise<T>, context: Context): Promise<T>;
125
130
  memo<T extends JsonValue>(name: string, context: Context): Promise<T | undefined>;
126
131
  memo<T extends JsonValue>(name: string, candidate: T, context: Context): Promise<T>;
@@ -132,89 +137,87 @@ export interface ToolExecutionApi extends DocumentObserver, DocumentReader {
132
137
  /** Invocation-bound handle of an existing conversation, such as one this tool created in `commit()`. */
133
138
  conversation(id: ConversationId, context: Context): Promise<ConversationHandle | undefined>;
134
139
  }
135
- /** Executable tool registered in a registry. Only pi-ai `Tool` fields enter the transcript. */
136
- export type ToolRegistration = Tool & {
140
+ /**
141
+ * Executable tool registered in a registry. Only pi-ai `Tool` fields enter the transcript. `args` are typed by
142
+ * `parameters`, which the Harness validates them against before `execute()`; `defineTool()` infers both generics.
143
+ */
144
+ export type ToolRegistration<TParameters extends TSchema = TSchema, TDetails extends JsonValue = JsonValue> = Tool<TParameters> & {
137
145
  /** Whether an interrupted execution may rerun on recovery. Default `unsafe`. */
138
146
  readonly replay?: "safe" | "unsafe";
139
- /** Default: the conversation's `toolExecution`. One sequential call makes its whole round sequential. */
147
+ /** Default: the settings' `toolExecution`. One sequential call makes its whole round sequential. */
140
148
  readonly executionMode?: ToolExecutionMode;
141
149
  /**
142
150
  * Repair arguments models commonly get wrong before validation, such as a JSON string where an array belongs. Must be
143
- * pure and must not mutate `args`: it runs again when a call is retried before its intent is recorded.
151
+ * pure and must not mutate `args`: it runs again when a call is retried before its intent is recorded. Its result is
152
+ * still validated against `parameters`.
144
153
  */
145
- prepareArguments?(args: JsonValue): JsonValue;
154
+ prepareArguments?(args: unknown): Static<TParameters>;
146
155
  readonly outputLimits?: {
147
156
  readonly maxBytes?: number;
148
157
  readonly maxLines?: number;
149
158
  readonly retain?: "head" | "tail";
150
159
  };
151
- execute(args: JsonValue, api: ToolExecutionApi, context: Context): Promise<ToolExecutionResult>;
152
- };
153
- /** Token for removing registrations. Work already running keeps using what it started with. */
154
- export interface Registration {
155
- /** Idempotent; removes exactly the registrations this token covers. */
156
- dispose(): void;
157
- }
158
- /** Pure decorator; returns a new tool with the same name and never mutates its input. */
159
- export type ToolWrapper<Tool extends ToolRegistration> = (tool: Tool) => Tool;
160
- /** Conversation selection for a scoped hook registration. */
161
- export type HookScope = {
162
- readonly conversationId: ConversationId;
163
- /** Also match conversations owned, transitively, by tasks of this conversation. */
164
- readonly subtree?: boolean;
160
+ execute(args: Static<TParameters>, api: ToolExecutionApi<TDetails>, context: Context): Promise<ToolExecutionResult<TDetails>>;
165
161
  };
166
162
  /** Input to system prompt section rendering for one request preparation. */
167
- export type PromptInput<Tool extends ToolRegistration> = {
163
+ export type PromptInput<Tool extends ToolRegistration = ToolRegistration> = {
168
164
  readonly conversationId: ConversationId;
169
- /** Active and registered tools in configured order, as offered in this request. */
170
- readonly tools: readonly Tool[];
165
+ /** The request's resolution; `agent.tools` are the tools offered in this request. */
166
+ readonly agent: Agent<Tool>;
167
+ /** Built by `HarnessOptions.env` for this preparation; `undefined` without an environment. */
168
+ readonly env: ExecutionEnv | undefined;
171
169
  /** Sections already in effect after replaying the active transcript. */
172
170
  readonly shown: Readonly<Record<string, string>>;
173
- readonly model?: ModelRef;
174
- readonly thinkingLevel: ModelThinkingLevel;
175
171
  /** Committed document reads. */
176
172
  readonly read: DocumentReader;
177
173
  };
178
- /** One registered system prompt section; sections render in registry order before each request. */
179
- export type PromptSection<Tool extends ToolRegistration> = {
174
+ /** One system prompt section; the agent's sections render in order before each request. */
175
+ export type PromptSection<Tool extends ToolRegistration = ToolRegistration> = {
180
176
  readonly key: string;
181
177
  render(input: PromptInput<Tool>, context: Context): string | undefined | Promise<string | undefined>;
182
178
  /** Default true: wrap the text as `<key>\n...\n</key>`. */
183
179
  readonly tag?: boolean;
184
180
  };
185
- /** Pure decorator; returns a new section with the same key and never mutates its input. */
186
- export type PromptSectionWrapper<Tool extends ToolRegistration> = (section: PromptSection<Tool>) => PromptSection<Tool>;
187
- /** One registered hook handler map for task `K`. */
188
- export type HookRegistration<K extends AnyTask> = {
189
- readonly handlers: Partial<HooksOf<K>>;
190
- readonly scope?: HookScope;
181
+ /** Built by `hook()`; matches tasks by name. */
182
+ export type HookRegistration = {
183
+ readonly task: string;
184
+ readonly handlers: object;
191
185
  };
192
- /** Wrapper composition failure found while building a snapshot. */
193
- export type RegistryFailure = {
194
- readonly kind: "tool" | "section";
195
- /** Tool name or section key. */
196
- readonly name: string;
197
- readonly error: unknown;
186
+ /** Built by `wrapTool()` and `wrapSection()`; targets a tool name or a section key. Wrappers are pure. */
187
+ export type Wrap<Tool extends ToolRegistration = ToolRegistration> = {
188
+ readonly tool: string;
189
+ wrap(tool: Tool): Tool;
190
+ } | {
191
+ readonly section: string;
192
+ wrap(section: PromptSection<Tool>): PromptSection<Tool>;
198
193
  };
194
+ /** Named bundle of code; installed in a registry and selected by conversations by name. */
195
+ export interface Extension<Tool extends ToolRegistration = ToolRegistration> {
196
+ readonly name: string;
197
+ readonly tools?: readonly Tool[];
198
+ readonly sections?: readonly PromptSection<Tool>[];
199
+ readonly hooks?: readonly HookRegistration[];
200
+ /** Apply where this extension is selected, in order. */
201
+ readonly wraps?: readonly Wrap<Tool>[];
202
+ /** Resolved by name for every task, whichever conversations select this extension. */
203
+ readonly tasks?: readonly AnyTask[];
204
+ }
199
205
  /** Immutable view of one published registry state. */
200
206
  export interface RegistrySnapshot<Tool extends ToolRegistration = ToolRegistration> {
201
- /** Composed tools in registry order; a tool whose wrapper failed is absent. */
202
- tools(): readonly Tool[];
203
- tool(name: string): Tool | undefined;
204
- /** Base tool names in registry order, including tools whose wrappers fail. */
205
- toolNames(): readonly string[];
206
- task(name: string): AnyTask | undefined;
207
- /** Hooks registered for tasks with `task`'s name, in registry order. */
208
- hooks<K extends AnyTask>(task: K): readonly HookRegistration<K>[];
209
- /** Composed sections in registry order; a section whose wrapper failed is absent. */
210
- sections(): readonly PromptSection<Tool>[];
211
- /** Wrapper failures of this state. */
212
- failures(): readonly RegistryFailure[];
213
- /** Conversation setups in registry order, the built-in `pi` setup first. */
214
- conversationSetups(): readonly {
215
- readonly key: string;
216
- readonly setup: ConversationSetup;
207
+ installed(): readonly Extension<Tool>[];
208
+ extension(name: string): Extension<Tool> | undefined;
209
+ /** Every installed tool with its extension, in install order. Names may repeat across extensions. */
210
+ tools(): readonly {
211
+ readonly extension: Extension<Tool>;
212
+ readonly tool: Tool;
217
213
  }[];
214
+ sections(): readonly {
215
+ readonly extension: Extension<Tool>;
216
+ readonly section: PromptSection<Tool>;
217
+ }[];
218
+ /** Built-in and installed task definitions. */
219
+ tasks(): readonly AnyTask[];
220
+ task(name: string): AnyTask | undefined;
218
221
  }
219
222
  /** Read side of a registry consumed by a Harness. */
220
223
  export interface RegistryReader<Tool extends ToolRegistration = ToolRegistration> {
@@ -223,54 +226,66 @@ export interface RegistryReader<Tool extends ToolRegistration = ToolRegistration
223
226
  /** Called synchronously after every publication; wakes the scheduler to reconsider blocked tasks. */
224
227
  subscribe(listener: () => void): () => void;
225
228
  }
226
- /** Application-owned registry of tools, hooks, tasks, and the system prompt. */
229
+ /** Application-owned registry of extensions. */
227
230
  export interface Registry<Tool extends ToolRegistration = ToolRegistration> extends RegistryReader<Tool> {
228
- readonly tools: {
229
- add(tool: Tool): Registration;
230
- /** `key` identifies the wrapper: it orders wrappers of one tool and keeps its position on re-registration. */
231
- wrap(name: string, key: string, wrapper: ToolWrapper<Tool>): Registration;
232
- /** Composed tools of the current state. */
233
- list(): readonly Tool[];
234
- };
235
- readonly hooks: {
236
- add<K extends AnyTask>(task: K, handlers: Partial<HooksOf<K>>, options?: {
237
- readonly scope?: HookScope;
238
- readonly key?: string;
239
- }): Registration;
240
- };
241
- readonly tasks: {
242
- add(task: AnyTask): Registration;
243
- list(): readonly AnyTask[];
244
- };
245
- readonly conversations: {
246
- /** `key` orders setups and keeps its position on re-registration. */
247
- setup(key: string, setup: ConversationSetup): Registration;
231
+ /** Install `extension`, or replace the installed extension with its name in place. Publishes at once. */
232
+ install(extension: Extension<Tool>): void;
233
+ /** Remove the installed extension with `extension.name`, whichever object it is. A later install appends. */
234
+ uninstall(extension: Extension): void;
235
+ }
236
+ /** Stored choices of one conversation; names, not objects. Unset fields follow the host. */
237
+ export type AgentState = {
238
+ model?: ModelRef;
239
+ thinkingLevel?: ModelThinkingLevel;
240
+ /** An array selects exactly these extensions, in order. An object edits the host default selection. */
241
+ extensions?: string[] | {
242
+ add?: string[];
243
+ remove?: string[];
248
244
  };
249
- readonly systemPrompt: {
250
- section(key: string, render: PromptSection<Tool>["render"], options?: {
251
- readonly tag?: boolean;
252
- }): Registration;
253
- wrap(key: string, wrapperKey: string, wrapper: PromptSectionWrapper<Tool>): Registration;
254
- /** Composed sections of the current state. */
255
- sections(): readonly PromptSection<Tool>[];
245
+ /** Filters the selected extensions' tools. An array offers exactly these, in order. */
246
+ tools?: string[] | {
247
+ remove: string[];
256
248
  };
257
- /** Stage registrations and disposals made synchronously by `register`, then publish them at once. Cannot nest. */
258
- batch(register: () => void): Registration;
259
- }
260
- /**
261
- * Stages the documents every new conversation gets. Runs inside every Harness commit that creates or forks a
262
- * conversation, including raw `Tx` creation, after fork copies and before host `init`. Table reads throw, since the
263
- * conversation write came first; a fork (`conversation.parent`) already holds its copied documents. A throw fails the
264
- * creating commit.
265
- */
266
- export type ConversationSetup = (tx: Tx, conversation: ConversationRecord, registry: RegistrySnapshot) => void | Promise<void>;
249
+ /** Rendered after every extension section, as the section `instructions`. */
250
+ instructions?: string;
251
+ /** Directory within the environment's file system, passed to `HarnessOptions.env`. */
252
+ cwd?: string;
253
+ };
254
+ /** A change to `pi.agent`: a given field replaces the stored one, `null` clears it, `undefined` changes nothing. */
255
+ export type AgentChange = {
256
+ readonly model?: ModelRef | null;
257
+ readonly thinkingLevel?: ModelThinkingLevel | null;
258
+ readonly extensions?: readonly Extension[] | {
259
+ readonly add?: readonly Extension[];
260
+ readonly remove?: readonly Extension[];
261
+ } | null;
262
+ readonly tools?: readonly ToolRegistration[] | {
263
+ readonly remove: readonly ToolRegistration[];
264
+ } | null;
265
+ readonly instructions?: string | null;
266
+ readonly cwd?: string | null;
267
+ };
268
+ /** A conversation's agent resolved against a registry snapshot and the settings. */
269
+ export type Agent<Tool extends ToolRegistration = ToolRegistration> = {
270
+ readonly model?: ModelRef;
271
+ readonly thinkingLevel: ModelThinkingLevel;
272
+ readonly extensions: readonly Extension<Tool>[];
273
+ /** The tools a request offers, in order. */
274
+ readonly tools: readonly Tool[];
275
+ /** Extension sections, then `instructions` when set. */
276
+ readonly sections: readonly PromptSection<Tool>[];
277
+ readonly instructions?: string;
278
+ readonly cwd?: string;
279
+ };
267
280
  /**
268
- * Runs inside the creating commit, after the conversation and its configuration exist. The conversation creation is
269
- * already a table write, so table reads here throw `ReadAfterWrite`; document access remains available.
281
+ * Runs inside the creating commit, after the creation hook and the `agent` change. The conversation creation is already
282
+ * a table write, so table reads here throw `ReadAfterWrite`; document access remains available.
270
283
  */
271
284
  export type ConversationInit = (tx: Tx, conversationId: ConversationId) => void | Promise<void>;
272
285
  export type ConversationCreateOptions = {
273
286
  readonly ownership: ConversationOwnership;
287
+ /** Applied in the creating commit after the creation hook's copy, before `init`. */
288
+ readonly agent?: AgentChange;
274
289
  readonly init?: ConversationInit;
275
290
  };
276
291
  /** Curated pi-ai request options; absent fields use pi-ai defaults. */
@@ -315,12 +330,48 @@ export type CompactionResult = {
315
330
  entryId?: EntryId;
316
331
  submissionId?: SubmissionId;
317
332
  };
333
+ /** Harness-wide run policy. Read at every resolution and never copied; getters are fine. Synchronous: some readers run on the Session line. */
334
+ export type HarnessSettings = {
335
+ /** Default extension selection; absent: every installed extension, in install order. */
336
+ readonly extensions?: readonly Extension[];
337
+ readonly stream?: ConversationStreamOptions;
338
+ readonly retry?: Partial<ConversationRetryPolicy>;
339
+ readonly compaction?: Partial<CompactionPolicy>;
340
+ readonly toolExecution?: ToolExecutionMode;
341
+ readonly steeringMode?: QueueMode;
342
+ readonly followUpMode?: QueueMode;
343
+ };
344
+ /** Resolved settings: every field over its built-in default, object fields merged. */
345
+ export type Settings = {
346
+ /** Absent: every installed extension, in install order. */
347
+ readonly extensions?: readonly Extension[];
348
+ readonly stream: ConversationStreamOptions;
349
+ readonly retry: ConversationRetryPolicy;
350
+ readonly compaction: CompactionPolicy;
351
+ readonly toolExecution: ToolExecutionMode;
352
+ readonly steeringMode: QueueMode;
353
+ readonly followUpMode: QueueMode;
354
+ };
355
+ /** What `HarnessOptions.env` builds an environment for. */
356
+ export type EnvTarget = {
357
+ readonly conversationId: ConversationId;
358
+ /** The conversation's agent `cwd`. */
359
+ readonly cwd?: string;
360
+ readonly read: DocumentReader;
361
+ };
318
362
  export type HarnessOptions<Tool extends ToolRegistration = ToolRegistration> = {
319
363
  /** pi-ai model access used by generation. */
320
364
  readonly models: Models;
321
365
  readonly registry: RegistryReader<Tool>;
322
- /** Default execution environment offered to tools as `api.env`. */
323
- readonly env?: ExecutionEnv;
366
+ readonly settings?: HarnessSettings;
367
+ /** Builds a conversation's environment at each use. Never called on the Session line; may be async. */
368
+ readonly env?: (target: EnvTarget, context: Context) => ExecutionEnv | undefined | Promise<ExecutionEnv | undefined>;
369
+ /**
370
+ * Runs in every commit that creates or forks a conversation, raw `tx.createConversation()` included, after the
371
+ * built-in `pi.*` documents and before the conveniences apply `agent` and run `init`. A fork already has its copies.
372
+ * Table reads throw `ReadAfterWrite`, as in `init`; a throw fails the creating commit.
373
+ */
374
+ readonly conversationCreated?: (tx: Tx, conversation: ConversationRecord) => void | Promise<void>;
324
375
  readonly now?: () => number;
325
376
  /** Receives extension failures that do not fail the calling operation. Must not throw. */
326
377
  readonly onReport?: (error: unknown) => void;
@@ -361,8 +412,6 @@ export type HarnessInspection = {
361
412
  readonly tasks: readonly TaskInspection[];
362
413
  /** Queued and placed submissions, in ID order. */
363
414
  readonly submissions: readonly SubmissionRecord[];
364
- /** Wrapper failures of the current registry snapshot. */
365
- readonly registry: readonly RegistryFailure[];
366
415
  };
367
416
  /** Raw active transcript and derived model context. */
368
417
  export type ContextView = {
@@ -378,35 +427,10 @@ export type ContextView = {
378
427
  /** Stateless handle for one conversation, bound to the Harness that returned it. Compare handles by `id`. */
379
428
  export interface Conversation {
380
429
  readonly id: ConversationId;
381
- getModel(context: Context): Promise<ModelRef | undefined>;
382
- setModel(model: ModelRef | undefined, context: Context): Promise<void>;
383
- getThinkingLevel(context: Context): Promise<ModelThinkingLevel>;
384
- setThinkingLevel(level: ModelThinkingLevel, context: Context): Promise<void>;
385
- getActiveTools(context: Context): Promise<readonly string[]>;
386
- setActiveTools(names: readonly string[], context: Context): Promise<void>;
387
- /** `{}` when unset. */
388
- getStreamOptions(context: Context): Promise<ConversationStreamOptions>;
389
- setStreamOptions(options: ConversationStreamOptions, context: Context): Promise<void>;
390
- /** The default policy when unset. */
391
- getRetryPolicy(context: Context): Promise<ConversationRetryPolicy>;
392
- /** `undefined` removes the configured policy. */
393
- setRetryPolicy(policy: ConversationRetryPolicy | undefined, context: Context): Promise<void>;
394
- /** `parallel` when unset. */
395
- getToolExecution(context: Context): Promise<ToolExecutionMode>;
396
- /** `undefined` removes the configured mode. */
397
- setToolExecution(mode: ToolExecutionMode | undefined, context: Context): Promise<void>;
398
- /** `one-at-a-time` when unset. */
399
- getSteeringMode(context: Context): Promise<QueueMode>;
400
- /** `undefined` removes the configured mode. */
401
- setSteeringMode(mode: QueueMode | undefined, context: Context): Promise<void>;
402
- /** `one-at-a-time` when unset. */
403
- getFollowUpMode(context: Context): Promise<QueueMode>;
404
- /** `undefined` removes the configured mode. */
405
- setFollowUpMode(mode: QueueMode | undefined, context: Context): Promise<void>;
406
- /** `DEFAULT_COMPACTION_POLICY` when unset. */
407
- getCompaction(context: Context): Promise<CompactionPolicy>;
408
- /** `undefined` removes the configured policy. */
409
- setCompaction(policy: CompactionPolicy | undefined, context: Context): Promise<void>;
430
+ /** Resolved with the current registry snapshot and settings. */
431
+ agent(context: Context): Promise<Agent>;
432
+ /** `configure()` in its own commit. */
433
+ configure(change: AgentChange, context: Context): Promise<void>;
410
434
  /**
411
435
  * Durably admit user input or a passive entry write. A busy conversation, or one with queued items, queues it in
412
436
  * `pi.inbox`; `whenBusy: "reject"` rejects with `ConversationBusy` instead and writes nothing.
@@ -441,23 +465,26 @@ export interface Conversation {
441
465
  /** The structural view (spec §9.3) as a disposable read-only Chord state. */
442
466
  viewState(context: Context): Promise<AttachedReplicatedState<ConversationView>>;
443
467
  /** The structural view as a serialized exact-frame watch with bounded pending frames. */
444
- watch(context: Context): Promise<WatchHandle<ConversationView>>;
468
+ watch(context: Context): Promise<ConversationWatch>;
445
469
  }
470
+ export type ConversationWatch = WatchHandle<ConversationView>;
446
471
  /** Durable agent harness over one Session. */
447
472
  export interface Harness extends Session {
448
473
  /**
449
- * Enable task scheduling. Idempotent; throws after close. Calls that wait for progress (`Conversation.submit()`,
450
- * `Submission.wait()`, `waitForTask()`, `waitForIdle()`) enable it too.
474
+ * Enable task scheduling. Idempotent; throws after close. Calls that ask for progress enable it too:
475
+ * `Conversation.submit()`, `Conversation.compact()`, `Conversation.abort()`, `Submission.wait()`, `waitForTask()`,
476
+ * `Harness.waitForIdle()`, and `Conversation.waitForIdle()`. Read-only viewers never do.
451
477
  */
452
478
  resume(): void;
453
- /** Return the reserved root conversation, creating it with `init` in one commit when absent. */
479
+ /** Return the reserved root conversation, creating it with `agent` and `init` in one commit when absent. */
454
480
  root(context: Context, options?: {
481
+ readonly agent?: AgentChange;
455
482
  readonly init?: ConversationInit;
456
483
  }): Promise<Conversation>;
457
484
  conversation(id: ConversationId, context: Context): Promise<Conversation | undefined>;
458
485
  createConversation(options: ConversationCreateOptions, context: Context): Promise<Conversation>;
459
486
  getTask<R>(id: TaskId<R>, context: Context): Promise<TaskRecord<JsonValue, JsonValue, R> | undefined>;
460
- /** Live tasks, unsettled submissions, and registry failures. Writes nothing and runs no task code. */
487
+ /** Live tasks and unsettled submissions. Writes nothing and runs no task code. */
461
488
  inspect(context: Context): Promise<HarnessInspection>;
462
489
  /** Reacquire a submission, for example after reopen. */
463
490
  submission(id: SubmissionId, context: Context): Promise<Submission | undefined>;
@@ -474,6 +501,10 @@ export interface Harness extends Session {
474
501
  waitForIdle(context: Context): Promise<void>;
475
502
  /** Session total: every conversation's `pi.usage` summed. */
476
503
  usage(context: Context): Promise<UsageState>;
504
+ /** Every live task with its owner edge, status, and owned conversations (spec §9.5), as a disposable Chord state. */
505
+ taskGraph(context: Context): Promise<AttachedReplicatedState<TaskGraph>>;
506
+ /** The task graph as a serialized exact-frame watch with bounded pending frames. */
507
+ watchTaskGraph(context: Context): Promise<TaskGraphWatch>;
477
508
  }
478
509
  /** What a hook may use: committed reads and the asking task's memos, which hooks and the task share. */
479
510
  export interface HookApi extends DocumentReader {
@@ -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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"}