@demicodes/agent 0.10.3 → 0.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,6 +8,8 @@ that the REPL and web UI both consume.
8
8
  - `AgentServer` — owns sessions; `server.client()` returns an in-process client.
9
9
  - `AgentClient` — `open` / `send` / `steer` / `abort` / `close` / `subscribe`.
10
10
  - Transports: in-process, stdio (`@demicodes/agent/stdio`), or WebSocket.
11
+ - Actions accept caller-defined `metadata` that is available to harness and
12
+ tool contexts without becoming transcript or provider content.
11
13
 
12
14
  ```ts
13
15
  import { AgentServer } from '@demicodes/agent'
@@ -1,4 +1,4 @@
1
- import { d as TranscriptPatch, l as ServerFrame, n as AgentServerTransport, o as ClientFrame, r as AgentTransport, s as ClientSessionEvent, t as AgentClientTransport, u as ShellCommandSnapshotLike } from "./transport-Bhf0h9FY.mjs";
2
- import { a as AgentClientListener, i as AgentClient, n as createWebSocketClientTransport, r as createWebSocketServerTransport, t as JsonWebSocket } from "./websocket-transport-D_Awo7zN.mjs";
1
+ import { b as AgentMetadata, d as TranscriptPatch, l as ServerFrame, n as AgentServerTransport, o as ClientFrame, r as AgentTransport, s as ClientSessionEvent, t as AgentClientTransport, u as ShellCommandStatusLike } from "./transport-yyfRK0gJ.mjs";
2
+ import { a as AgentClient, i as AgentActionOptions, n as createWebSocketClientTransport, o as AgentClientListener, r as createWebSocketServerTransport, t as JsonWebSocket } from "./websocket-transport-C-dQGV-s.mjs";
3
3
  import { ProviderSelection } from "@demicodes/provider";
4
- export { AgentClient, type AgentClientListener, type AgentClientTransport, type AgentServerTransport, type AgentTransport, type ClientFrame, type ClientSessionEvent, type JsonWebSocket, type ProviderSelection, type ServerFrame, type ShellCommandSnapshotLike, type TranscriptPatch, createWebSocketClientTransport, createWebSocketServerTransport };
4
+ export { type AgentActionOptions, AgentClient, type AgentClientListener, type AgentClientTransport, type AgentMetadata, type AgentServerTransport, type AgentTransport, type ClientFrame, type ClientSessionEvent, type JsonWebSocket, type ProviderSelection, type ServerFrame, type ShellCommandStatusLike, type TranscriptPatch, createWebSocketClientTransport, createWebSocketServerTransport };
@@ -1,2 +1,2 @@
1
- import { n as createWebSocketServerTransport, r as AgentClient, t as createWebSocketClientTransport } from "./websocket-transport-Bod0puog.mjs";
1
+ import { n as createWebSocketServerTransport, r as AgentClient, t as createWebSocketClientTransport } from "./websocket-transport-BjSj3U0I.mjs";
2
2
  export { AgentClient, createWebSocketClientTransport, createWebSocketServerTransport };
package/dist/index.d.mts CHANGED
@@ -1,9 +1,40 @@
1
- import { A as AgentToolInvokeResult, B as DEFAULT_TURN_RETRY_POLICY, C as AgentSessionRestoreParams, D as AgentTool, E as AgentSystemPromptContext, F as CompactionWindow, H as isRetryableCode, I as DrainedTranscriptPatches, L as Transcript, M as SessionEvent, N as SessionEventListener, O as AgentToolContext, P as ToolContinuation, R as TranscriptOptions, S as AgentSessionParams, T as AgentSessionStore, U as resolveRetryPolicy, V as TurnRetryPolicy, W as retryDelayMs, _ as AgentHarnessRuntime, a as createInProcessTransportPair, b as AgentReferenceResolveContext, c as ConversationSummary, d as TranscriptPatch, f as AbortResult, g as AgentHarnessContext, h as AgentHarness, i as InProcessTransportPair, j as ExternalMutationReservation, k as AgentToolInvokeContext, l as ServerFrame, m as AgentDisposeContext, n as AgentServerTransport, o as ClientFrame, p as AbortTarget, r as AgentTransport, s as ClientSessionEvent, t as AgentClientTransport, u as ShellCommandSnapshotLike, v as AgentLifecycleEvent, w as AgentSessionSnapshot, x as AgentSessionOptions, y as AgentPromptContext, z as estimateTranscriptBlockTokens } from "./transport-Bhf0h9FY.mjs";
2
- import { a as AgentClientListener, i as AgentClient, n as createWebSocketClientTransport, r as createWebSocketServerTransport, t as JsonWebSocket } from "./websocket-transport-D_Awo7zN.mjs";
3
- import { BashEnvironment, BashEnvironmentOptions, Host, ShellCommandSnapshot } from "@demicodes/shell";
1
+ import { A as AgentTool, B as TranscriptOptions, C as AgentSessionCheckpoint, D as AgentSessionRestoreParams, E as AgentSessionParams, F as SessionEvent, G as resolveRetryPolicy, H as DEFAULT_TURN_RETRY_POLICY, I as SessionEventListener, K as retryDelayMs, L as CompactionWindow, M as AgentToolInvokeContext, N as AgentToolInvokeResult, O as AgentSessionStore, P as ExternalMutationReservation, R as DrainedTranscriptPatches, S as AgentReferenceResolveContext, T as AgentSessionOptions, U as TurnRetryPolicy, V as estimateTranscriptBlockTokens, W as isRetryableCode, _ as AgentHarnessRuntime, a as createInProcessTransportPair, b as AgentMetadata, c as ConversationSummary, d as TranscriptPatch, f as AbortResult, g as AgentHarnessContext, h as AgentHarness, i as InProcessTransportPair, j as AgentToolContext, k as AgentSystemPromptContext, l as ServerFrame, m as AgentDisposeContext, n as AgentServerTransport, o as ClientFrame, p as AbortTarget, r as AgentTransport, s as ClientSessionEvent, t as AgentClientTransport, u as ShellCommandStatusLike, v as AgentHostContext, w as AgentSessionCloneParams, x as AgentPromptContext, y as AgentLifecycleEvent, z as TranscriptLog } from "./transport-yyfRK0gJ.mjs";
2
+ import { a as AgentClient, i as AgentActionOptions, n as createWebSocketClientTransport, o as AgentClientListener, r as createWebSocketServerTransport, t as JsonWebSocket } from "./websocket-transport-C-dQGV-s.mjs";
3
+ import { BashAuditEvent, BashEnvironment, BashEnvironmentOptions, CommandMetadataRecord, Host, ShellCommandStatus, ShellOutputChunk } from "@demicodes/shell";
4
4
  import { AgentProvider, Provider } from "@demicodes/provider";
5
- import { Block, ModelSelection, QueuedMessage, SessionPhase, UserContentBlock } from "@demicodes/core";
6
-
5
+ import { Block, Model, ModelMediaKind, ModelSelection, ProviderErrorDiagnostics, QueuedMessage, SessionPhase, UserContentBlock } from "@demicodes/core";
6
+ //#region src/recovery.d.ts
7
+ /**
8
+ * Where re-inference must restart after a turn failed to finish.
9
+ *
10
+ * `cut` is the index from which blocks are discardable; `isFullRerun` is true when
11
+ * that reaches all the way back to the user turn, meaning the turn produced nothing
12
+ * and can simply be run again.
13
+ */
14
+ interface ResumePoint {
15
+ cut: number;
16
+ isFullRerun: boolean;
17
+ }
18
+ /**
19
+ * Finds how far back an unfinished turn can be unwound before re-inferring.
20
+ *
21
+ * This is the single decision behind both recovery paths. A transient provider
22
+ * failure and a human asking to continue a dead round ask the same question — how
23
+ * do we finish this turn — and the answer depends only on what has already left
24
+ * the process, never on which of the two asked or on how the turn died.
25
+ */
26
+ declare function findResumePoint(blocks: readonly Block[]): ResumePoint;
27
+ //#endregion
28
+ //#region src/provider-stream-error.d.ts
29
+ /** Error carrying a provider stream's normalized code and bounded diagnostics. */
30
+ declare class ProviderStreamError extends Error {
31
+ readonly code: string | null;
32
+ readonly diagnostics: ProviderErrorDiagnostics | undefined;
33
+ constructor(message: string, code: string | null, diagnostics?: ProviderErrorDiagnostics);
34
+ }
35
+ /** Whether an error is a provider stream error reporting the context window was exceeded. */
36
+ declare function isContextLengthExceeded(error: unknown): boolean;
37
+ //#endregion
7
38
  //#region src/session.d.ts
8
39
  type ActiveTurnPhase = 'provider_streaming' | 'tool_executing' | 'compacting' | 'finalizing';
9
40
  declare class AgentSession<State> {
@@ -20,6 +51,7 @@ declare class AgentSession<State> {
20
51
  private readonly listeners;
21
52
  private readonly pendingActions;
22
53
  private readonly queued;
54
+ get modelSelection(): ModelSelection;
23
55
  private readonly transcriptLog;
24
56
  private readonly agentState;
25
57
  private currentPhase;
@@ -29,6 +61,7 @@ declare class AgentSession<State> {
29
61
  private activeTurnId;
30
62
  private activeTurnPhase;
31
63
  private activeProviderRun;
64
+ private activeMetadata;
32
65
  private readonly steerQueue;
33
66
  private readonly yields;
34
67
  private readonly compaction;
@@ -40,19 +73,50 @@ declare class AgentSession<State> {
40
73
  private persistTimer;
41
74
  private persistDirty;
42
75
  /**
43
- * Restores a session from a snapshot. Ownership of the snapshot (including
76
+ * Restores a session from a checkpoint. Ownership of the checkpoint (including
44
77
  * `state`) transfers to the session: the caller must not mutate it afterwards.
45
78
  * Passing state by reference — not a clone — lets the caller share the same
46
79
  * object with harness closures (host/commands), keeping one live state.
47
80
  */
48
- static fromSnapshot<State>(params: AgentSessionRestoreParams<State>, options?: AgentSessionOptions<State>): AgentSession<State>;
81
+ static fromCheckpoint<State>(params: AgentSessionRestoreParams<State>, options?: AgentSessionOptions<State>): AgentSession<State>;
49
82
  constructor(params: AgentSessionParams<State>, options?: AgentSessionOptions<State>);
50
83
  send(content: UserContentBlock[], options?: {
51
84
  id?: string;
85
+ metadata?: AgentMetadata;
86
+ }): Promise<void>;
87
+ /**
88
+ * Creates an isolated session from a point-in-time copy.
89
+ *
90
+ * Model, transcript, and state are copied by default. Runtime configuration
91
+ * (harness runtime, cwd) is shared unless overridden. The provider is an
92
+ * independent runtime from `AgentProvider.clone()` unless `provider` is
93
+ * supplied. Parent persistence store is never inherited.
94
+ */
95
+ clone(overrides?: AgentSessionCloneParams<State>): AgentSession<State>;
96
+ /**
97
+ * Discards the whole latest turn and runs it again from the user's input.
98
+ *
99
+ * This is "regenerate": it is only meaningful when the caller wants a different
100
+ * answer to the same question and knows the turn's effects can be repeated. It is
101
+ * NOT the way to recover a failed turn — use `resume`, which unwinds only as far
102
+ * as is safe.
103
+ */
104
+ retry(options?: {
105
+ metadata?: AgentMetadata;
106
+ }): Promise<void>;
107
+ /**
108
+ * Finishes a turn that did not finish, after an abort or a terminal provider
109
+ * error. Unwinds to the turn's resume point — dropping the failed attempt's
110
+ * leftovers, keeping everything that already left the process — and re-infers
111
+ * from there. Callers do not choose the granularity and do not need to know how
112
+ * the turn died.
113
+ */
114
+ resume(options?: {
115
+ metadata?: AgentMetadata;
116
+ }): Promise<void>;
117
+ compact(options?: {
118
+ metadata?: AgentMetadata;
52
119
  }): Promise<void>;
53
- retry(): Promise<void>;
54
- resume(): Promise<void>;
55
- compact(): Promise<void>;
56
120
  steer(content: UserContentBlock[], options?: {
57
121
  id?: string;
58
122
  }): Promise<void>;
@@ -71,14 +135,14 @@ declare class AgentSession<State> {
71
135
  */
72
136
  updateModel(provider: AgentProvider | null, model: ModelSelection): void;
73
137
  abort(): Promise<AbortResult>;
74
- scheduleYieldWakeup(durationMs: number): AgentToolInvokeResult;
138
+ scheduleYieldWakeup(durationMs: number, metadata?: AgentMetadata | null): AgentToolInvokeResult;
75
139
  waitUntilDone(): Promise<void>;
76
140
  /**
77
141
  * Tears the session down: aborts any in-flight turn and releases provider-held resources
78
142
  * (e.g. a long-lived CLI subprocess). Called when the owning connection closes.
79
143
  */
80
144
  dispose(): Promise<void>;
81
- transcript(): Transcript;
145
+ transcript(): TranscriptLog;
82
146
  state(): State;
83
147
  id(): string;
84
148
  phase(): SessionPhase;
@@ -116,6 +180,13 @@ declare class AgentSession<State> {
116
180
  private executeSend;
117
181
  private resolveReferences;
118
182
  private executeRetry;
183
+ /**
184
+ * Finishes an unfinished turn. Unwinds to its resume point — dropping the failed
185
+ * attempt's leftovers, keeping everything that already left the process — and
186
+ * re-infers from there. When the whole turn turns out to be discardable this is
187
+ * a plain rerun, which spares the model a continuation boundary attached to a
188
+ * stub of its own aborted output.
189
+ */
119
190
  private executeResume;
120
191
  private providerEvents;
121
192
  private promptContext;
@@ -134,11 +205,11 @@ declare class AgentSession<State> {
134
205
  /**
135
206
  * Publishes transcript changes: drains the mutation journal into a patch
136
207
  * event (O(changed content), not O(transcript)) and schedules a throttled
137
- * snapshot write. Boundaries (action end, abort, dispose) flush the write.
208
+ * checkpoint write. Boundaries (action end, abort, dispose) flush the write.
138
209
  */
139
210
  private commitTranscript;
140
211
  private schedulePersist;
141
- private persistSnapshot;
212
+ private persistCheckpoint;
142
213
  private flushPersist;
143
214
  private emit;
144
215
  private resolveIdleWaiters;
@@ -164,18 +235,18 @@ interface AgentServerSessionOptions {
164
235
  persistIntervalMs?: number;
165
236
  }
166
237
  /**
167
- * Host-agnostic hook invoked once per `open()` before BashEnvironment is built.
238
+ * Host-agnostic hook invoked before each resolved Host's BashEnvironment is built.
168
239
  * LocalHost uses this to inject PATH / env for the command bridge; AgentServer
169
240
  * itself does not know about UDS, shims, or bin directories.
170
241
  */
171
- interface PrepareSessionShellContext {
242
+ interface PrepareShellContext {
172
243
  agentSessionId: string;
173
244
  host: Host;
174
245
  commandNames: readonly string[];
175
246
  /** Shell options from AgentServer construction (before this hook). */
176
247
  shell: Omit<BashEnvironmentOptions, 'host' | 'commands'>;
177
248
  }
178
- type PrepareSessionShell = (ctx: PrepareSessionShellContext) => Omit<BashEnvironmentOptions, 'host' | 'commands'> | Promise<Omit<BashEnvironmentOptions, 'host' | 'commands'>>;
249
+ type PrepareShell = (ctx: PrepareShellContext) => Omit<BashEnvironmentOptions, 'host' | 'commands'> | Promise<Omit<BashEnvironmentOptions, 'host' | 'commands'>>;
179
250
  interface AgentServerOptions {
180
251
  agent: AgentHarness<unknown>;
181
252
  providers: Provider[];
@@ -185,7 +256,7 @@ interface AgentServerOptions {
185
256
  * Optional host-side shell prep (env, PATH, etc.). Implementation-agnostic —
186
257
  * command bridge wiring lives in `@demicodes/host-local`, not here.
187
258
  */
188
- prepareSessionShell?: PrepareSessionShell;
259
+ prepareShell?: PrepareShell;
189
260
  }
190
261
  interface AgentTransportBinding {
191
262
  close(): Promise<void>;
@@ -199,12 +270,18 @@ interface RunCommandLineOptions {
199
270
  /** Result of {@link AgentServer.runCommandLine}. */
200
271
  interface RunCommandLineResult {
201
272
  exitCode: number;
273
+ /** UTF-8 text, or base64 when `stdoutEncoding` is 'base64'. */
202
274
  stdout: string;
275
+ stdoutEncoding?: 'base64';
203
276
  stderr: string;
204
277
  }
205
- declare class RunCommandLineSessionNotFoundError extends Error {
206
- readonly agentSessionId: string;
207
- constructor(agentSessionId: string);
278
+ declare class RunCommandLineShellNotFoundError extends Error {
279
+ readonly shellId: string;
280
+ constructor(shellId: string);
281
+ }
282
+ declare class RunCommandLineCommandNotRegisteredError extends Error {
283
+ readonly commandName: string;
284
+ constructor(commandName: string);
208
285
  }
209
286
  declare class RunCommandLineTimeoutError extends Error {
210
287
  readonly commandId: string;
@@ -217,7 +294,7 @@ declare class AgentServer {
217
294
  private readonly providers;
218
295
  private readonly shellOptions;
219
296
  private readonly sessionOptions;
220
- private readonly prepareSessionShell;
297
+ private readonly prepareShell;
221
298
  private readonly bindings;
222
299
  private readonly sessionOwnership;
223
300
  constructor(options: AgentServerOptions);
@@ -229,12 +306,15 @@ declare class AgentServer {
229
306
  * Transport-agnostic: callers (e.g. LocalHost command bridge) supply their
230
307
  * own IPC; AgentServer only knows how to exec against the open session shell.
231
308
  */
232
- runCommandLine(agentSessionId: string, name: string, args: string[], opts: RunCommandLineOptions): Promise<RunCommandLineResult>;
309
+ runCommandLine(shellId: string, name: string, args: string[], opts: RunCommandLineOptions): Promise<RunCommandLineResult>;
233
310
  }
234
311
  //#endregion
235
312
  //#region src/tools.d.ts
236
313
  interface StandardAgentToolOptions<State = unknown> {
237
- environment: BashEnvironment;
314
+ environment: BashEnvironment | ((ctx: AgentToolInvokeContext<State>, handle: {
315
+ shellId?: string;
316
+ commandId?: string;
317
+ }) => BashEnvironment | Promise<BashEnvironment>);
238
318
  scheduleYield(ctx: AgentToolInvokeContext<State>, durationMs: number): AgentToolInvokeResult;
239
319
  }
240
320
  declare function createStandardAgentTools<State = unknown>(options: StandardAgentToolOptions<State>): AgentTool<State>[];
@@ -242,10 +322,56 @@ interface ShellToolResultOptions {
242
322
  includePreview?: boolean;
243
323
  previewBudgetTokens?: number;
244
324
  exposeCommandHandle?: boolean;
325
+ /** Model receiving this result; gates binary-stream media attachment. */
326
+ model?: Model;
327
+ /** Per-modality byte caps on attached media; unset modalities keep the defaults. */
328
+ maxMediaBytes?: Partial<Record<ModelMediaKind, number>>;
245
329
  }
330
+ /**
331
+ * How many bytes of each modality a tool may hand to the model.
332
+ *
333
+ * One number cannot serve both, because bytes buy wildly different amounts of
334
+ * context per modality — measured against a frontier model, a KiB of video
335
+ * costs ~2 tokens where a KiB of image costs ~50. A cap generous enough to show
336
+ * a five-minute clip would let a single still eat a six-figure token budget.
337
+ *
338
+ * image (4 MiB): well past any sane still — a 4000x3000 PNG lands under it — so
339
+ * crossing this line is a mistake, not a use case.
340
+ * video (16 MiB): roughly ten minutes at a viewing-grade encoding, and
341
+ * deliberately under the ~20 MB inline-payload ceiling the major APIs enforce.
342
+ * A larger cap buys no reach, only a rejection further downstream where the
343
+ * reason is harder to read.
344
+ *
345
+ * Bytes are a proxy, not a budget: for video they track cost reasonably at a
346
+ * fixed encoding, but an image's real driver is its pixel dimensions.
347
+ */
348
+ declare const DEFAULT_MAX_MEDIA_BYTES: Record<ModelMediaKind, number>;
246
349
  declare function shellPreviewBudgetTokens(contextWindow: number): number;
247
- declare function toShellToolResult(result: ShellCommandSnapshot, toolCallId?: string, options?: ShellToolResultOptions): AgentToolInvokeResult;
248
- declare function finishShellToolResult<State>(environment: BashEnvironment, result: ShellCommandSnapshot, ctx: AgentToolInvokeContext<State>): Promise<AgentToolInvokeResult>;
249
- declare function shellCommandHandleRequired(result: ShellCommandSnapshot, budgetTokens: number): boolean;
350
+ declare function toShellToolResult(result: ShellCommandStatus, options?: ShellToolResultOptions): AgentToolInvokeResult;
351
+ /** Character budget for a shell view's render window (tail-biased). */
352
+ declare const SHELL_VIEW_MAX_CHARS = 32768;
353
+ /**
354
+ * Bounded UI view of a shell command stored on the tool_call block. Full
355
+ * output lives in the command artifact (`/@/commands/<commandId>/…`), keyed by
356
+ * `commandId`; the view carries only the tail render window and never embeds
357
+ * raw or base64 bytes.
358
+ */
359
+ interface ShellToolView {
360
+ kind: 'shell';
361
+ status: 'running' | 'exited' | 'aborted';
362
+ shellId: string;
363
+ commandId: string;
364
+ exitCode?: number;
365
+ runningMs: number;
366
+ idleMs: number;
367
+ /** Tail of the merged output, capped at SHELL_VIEW_MAX_CHARS. */
368
+ chunks: ShellOutputChunk[];
369
+ /** True when chunks were capped; the artifact has the full output. */
370
+ viewTruncated: boolean;
371
+ audit?: BashAuditEvent[];
372
+ commandMeta?: CommandMetadataRecord[];
373
+ }
374
+ declare function finishShellToolResult<State>(environment: BashEnvironment, result: ShellCommandStatus, ctx: AgentToolInvokeContext<State>): Promise<AgentToolInvokeResult>;
375
+ declare function shellCommandHandleRequired(result: ShellCommandStatus, budgetTokens: number): boolean;
250
376
  //#endregion
251
- export { AbortResult, AbortTarget, ActiveTurnPhase, AgentClient, AgentClientListener, AgentClientTransport, AgentDisposeContext, AgentHarness, AgentHarnessContext, AgentHarnessRuntime, AgentLifecycleEvent, AgentPromptContext, AgentReferenceResolveContext, AgentServer, AgentServerOptions, AgentServerSessionOptions, AgentServerTransport, AgentSession, AgentSessionOptions, AgentSessionParams, AgentSessionRestoreParams, AgentSessionSnapshot, AgentSessionStore, AgentSystemPromptContext, AgentTool, AgentToolContext, AgentToolInvokeContext, AgentToolInvokeResult, AgentTransport, AgentTransportBinding, ClientFrame, ClientSessionEvent, CompactionWindow, ConversationSummary, DEFAULT_TURN_RETRY_POLICY, DrainedTranscriptPatches, ExternalMutationReservation, InProcessTransportPair, JsonWebSocket, PrepareSessionShell, PrepareSessionShellContext, RunCommandLineOptions, RunCommandLineResult, RunCommandLineSessionNotFoundError, RunCommandLineTimeoutError, ServerFrame, SessionEvent, SessionEventListener, ShellCommandSnapshotLike, ShellToolResultOptions, StandardAgentToolOptions, ToolContinuation, Transcript, TranscriptOptions, TranscriptPatch, TurnRetryPolicy, applyTranscriptPatches, cloneBlocks, createInProcessTransportPair, createStandardAgentTools, createWebSocketClientTransport, createWebSocketServerTransport, estimateTranscriptBlockTokens, finishShellToolResult, isRetryableCode, resolveRetryPolicy, retryDelayMs, shellCommandHandleRequired, shellPreviewBudgetTokens, toShellToolResult };
377
+ export { AbortResult, AbortTarget, ActiveTurnPhase, AgentActionOptions, AgentClient, AgentClientListener, AgentClientTransport, AgentDisposeContext, AgentHarness, AgentHarnessContext, AgentHarnessRuntime, AgentHostContext, AgentLifecycleEvent, AgentMetadata, AgentPromptContext, AgentReferenceResolveContext, AgentServer, AgentServerOptions, AgentServerSessionOptions, AgentServerTransport, AgentSession, AgentSessionCheckpoint, AgentSessionCloneParams, AgentSessionOptions, AgentSessionParams, AgentSessionRestoreParams, AgentSessionStore, AgentSystemPromptContext, AgentTool, AgentToolContext, AgentToolInvokeContext, AgentToolInvokeResult, AgentTransport, AgentTransportBinding, ClientFrame, ClientSessionEvent, CompactionWindow, ConversationSummary, DEFAULT_MAX_MEDIA_BYTES, DEFAULT_TURN_RETRY_POLICY, DrainedTranscriptPatches, ExternalMutationReservation, InProcessTransportPair, JsonWebSocket, PrepareShell, PrepareShellContext, ProviderStreamError, ResumePoint, RunCommandLineCommandNotRegisteredError, RunCommandLineOptions, RunCommandLineResult, RunCommandLineShellNotFoundError, RunCommandLineTimeoutError, SHELL_VIEW_MAX_CHARS, ServerFrame, SessionEvent, SessionEventListener, ShellCommandStatusLike, ShellToolResultOptions, ShellToolView, StandardAgentToolOptions, TranscriptLog, TranscriptOptions, TranscriptPatch, TurnRetryPolicy, applyTranscriptPatches, cloneBlocks, createInProcessTransportPair, createStandardAgentTools, createWebSocketClientTransport, createWebSocketServerTransport, estimateTranscriptBlockTokens, findResumePoint, finishShellToolResult, isContextLengthExceeded, isRetryableCode, resolveRetryPolicy, retryDelayMs, shellCommandHandleRequired, shellPreviewBudgetTokens, toShellToolResult };