@axlsdk/axl 0.17.4 → 0.17.6

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/dist/index.d.cts CHANGED
@@ -22,17 +22,22 @@ type ToolDefinition = {
22
22
  * minimum thinking level (3.1 Pro: 'low', others: 'minimal'). On other providers,
23
23
  * fully disables reasoning.
24
24
  * - `'low'` through `'max'` — Increasing levels of reasoning depth and token spend.
25
+ * - `'xhigh'` — Extra-high tier between `'high'` and `'max'`. Supported natively on
26
+ * Anthropic Opus 4.7 (`output_config.effort: 'xhigh'`) and OpenAI gpt-5.2+
27
+ * (`reasoning_effort: 'xhigh'`). Clamps to `'high'` on providers/models that
28
+ * don't expose a distinct xhigh level.
25
29
  *
26
30
  * Provider mapping:
27
- * - Anthropic 4.6: adaptive thinking + output_config.effort
28
- * - Anthropic Opus 4.5: output_config.effort (no adaptive)
31
+ * - Anthropic 4.7: adaptive thinking + output_config.effort (incl. 'xhigh')
32
+ * - Anthropic 4.6: adaptive thinking + output_config.effort (xhigh clamps to 'high')
33
+ * - Anthropic Opus 4.5: output_config.effort (no adaptive; xhigh clamps to 'high')
29
34
  * - Anthropic older: thinking.budget_tokens fallback
30
35
  * - OpenAI o-series: reasoning_effort
31
- * - OpenAI GPT-5.x: reasoning.effort / reasoning_effort
32
- * - Gemini 3.x: thinkingLevel (`'none'` → model min: `'minimal'` or `'low'` for 3.1 Pro)
36
+ * - OpenAI GPT-5.x: reasoning.effort / reasoning_effort (xhigh on gpt-5.2+)
37
+ * - Gemini 3.x: thinkingLevel (`'none'` → model min: `'minimal'` or `'low'` for 3.1 Pro; xhigh → 'high')
33
38
  * - Gemini 2.x: thinkingBudget (`'none'` → 0; some models have minimums)
34
39
  */
35
- type Effort = 'none' | 'low' | 'medium' | 'high' | 'max';
40
+ type Effort = 'none' | 'low' | 'medium' | 'high' | 'xhigh' | 'max';
36
41
  /** Tool choice strategy for LLM calls. */
37
42
  type ToolChoice = 'auto' | 'none' | 'required' | {
38
43
  type: 'function';
@@ -279,7 +284,7 @@ type ExecutionStatus = 'running' | 'completed' | 'failed' | 'waiting';
279
284
  * derive `AxlEventType` from this tuple and use it to validate stream filters,
280
285
  * redaction tables, and exhaustiveness assertions.
281
286
  */
282
- declare const AXL_EVENT_TYPES: readonly ["workflow_start", "workflow_end", "ask_start", "ask_end", "agent_call_start", "agent_call_end", "token", "tool_call_start", "tool_call_end", "tool_approval", "tool_denied", "delegate", "handoff_start", "handoff_return", "pipeline", "partial_object", "verify", "log", "memory_remember", "memory_recall", "memory_forget", "checkpoint_save", "checkpoint_replay", "await_human", "await_human_resolved", "guardrail", "schema_check", "validate", "done", "error"];
287
+ declare const AXL_EVENT_TYPES: readonly ["workflow_start", "workflow_end", "ask_start", "ask_end", "agent_call_start", "agent_call_end", "token", "tool_call_start", "tool_call_end", "tool_approval", "tool_denied", "delegate", "handoff_start", "handoff_return", "pipeline", "partial_object", "string_delta", "verify", "log", "memory_remember", "memory_recall", "memory_forget", "checkpoint_save", "checkpoint_replay", "await_human", "await_human_resolved", "guardrail", "schema_check", "validate", "done", "error"];
283
288
  /** Discriminator union derived from `AXL_EVENT_TYPES`. */
284
289
  type AxlEventType = (typeof AXL_EVENT_TYPES)[number];
285
290
  /** Resolved model parameters sent to the provider for an LLM call. */
@@ -396,6 +401,39 @@ type VerifyData = {
396
401
  passed: boolean;
397
402
  lastError?: string;
398
403
  };
404
+ /**
405
+ * Data shape for `string_delta` events.
406
+ *
407
+ * Emitted while the streaming walker is inside a string VALUE (not a key)
408
+ * during a schema-mode response. Each event carries the unescaped chars
409
+ * appended within a single text-delta chunk for one path; consumers
410
+ * concatenate `delta` per (`askId`, `path`) to reconstruct the running text.
411
+ *
412
+ * Splitting an escape sequence across chunks is supported — the walker
413
+ * holds escape state across chunks, so a `\\u00` in chunk N and `41` in
414
+ * chunk N+1 produces a single `A` in the chunk-N+1 delta.
415
+ */
416
+ type StringDeltaData = {
417
+ /**
418
+ * RFC 6901 JSON Pointer to the string value. Examples:
419
+ * - `/summary` (root-level field)
420
+ * - `/sources/0/title` (nested through array)
421
+ * - keys containing `~` or `/` are escaped to `~0`/`~1` per RFC.
422
+ *
423
+ * Path is structural metadata (preserved under `trace.redact`).
424
+ */
425
+ path: string;
426
+ /**
427
+ * Unescaped characters appended this chunk. JSON escapes are translated:
428
+ * `\\n` → "\n", `\\t` → "\t", `\\"` → '"', `\\\\` → "\\", `\\uXXXX` → the
429
+ * corresponding UTF-16 code unit. Surrogate pairs (e.g. `\\uD83D\\uDE00`)
430
+ * are emitted as two code units in the order they parse — matches what
431
+ * `JSON.parse` produces.
432
+ *
433
+ * Subject to `config.trace.redact` (always scrubbed when redaction is on).
434
+ */
435
+ delta: string;
436
+ };
399
437
  /** Data shape for legacy `guardrail` events. Replaced by `pipeline` in PR 2. */
400
438
  type GuardrailData = {
401
439
  guardrailType: 'input' | 'output';
@@ -717,6 +755,11 @@ type AxlEvent = (AxlEventBase & {
717
755
  data: {
718
756
  object: unknown;
719
757
  };
758
+ }) | (AxlEventBase & AskScoped & {
759
+ type: 'string_delta';
760
+ /** 1-indexed schema-retry attempt; mirrors `partial_object.attempt`. */
761
+ attempt: number;
762
+ data: StringDeltaData;
720
763
  }) | (AxlEventBase & AskScoped & {
721
764
  type: 'verify';
722
765
  data: VerifyData;
@@ -1010,6 +1053,59 @@ type CoalescedPartialObject = {
1010
1053
  object: unknown;
1011
1054
  attempt: number;
1012
1055
  };
1056
+ /**
1057
+ * The shape yielded by `AxlEventBus.stringStream` (and `AxlStream.stringStream`).
1058
+ *
1059
+ * A live `string_delta` event carries `delta` (the new chars from this chunk)
1060
+ * and `accumulated` (every char emitted so far for this ask + path,
1061
+ * i.e. `delta1 + delta2 + ...`). Consumers rendering full-field state set
1062
+ * their UI text to `accumulated`; consumers rendering incrementally use
1063
+ * `delta` and append themselves.
1064
+ *
1065
+ * For LATE SUBSCRIBERS — those who attach `stringStream(...)` after one or
1066
+ * more `string_delta` events have already fired for an askId/path —
1067
+ * one synthetic event is yielded at subscribe time with `delta` ===
1068
+ * `accumulated` === the full text-so-far. This guarantees the consumer's
1069
+ * first render reflects the current state of the field, with no manual
1070
+ * catch-up logic.
1071
+ *
1072
+ * `attempt` matches the underlying `string_delta.attempt` (1-indexed
1073
+ * schema-retry counter). `pipeline(failed)` drops the accumulator AND
1074
+ * any pending events for that ask before they reach the consumer, so a
1075
+ * UI subscribed during attempt-N never sees stale text after attempt-N+1
1076
+ * begins.
1077
+ */
1078
+ type StringStreamEvent = {
1079
+ askId: string;
1080
+ agent?: string;
1081
+ /** RFC 6901 JSON Pointer; matches the source `string_delta.data.path`. */
1082
+ path: string;
1083
+ /** Chars added in this delta. For seeded synthetic events on subscribe,
1084
+ * equals `accumulated` (the full text-so-far). */
1085
+ delta: string;
1086
+ /** Concatenation of every delta this ask + path has emitted in the
1087
+ * current attempt. Cleared on `pipeline(failed)` and `ask_end`. */
1088
+ accumulated: string;
1089
+ /** 1-indexed schema-retry attempt; mirrors the source event. */
1090
+ attempt: number;
1091
+ };
1092
+ /**
1093
+ * Optional filter applied at subscribe time. Filtering happens in the bus's
1094
+ * listener so non-matching events neither buffer nor wake the consumer's
1095
+ * waiter — cheaper than filtering in the consumer.
1096
+ *
1097
+ * - `path`: yield only events for this exact JSON Pointer. The walker
1098
+ * produces RFC 6901-encoded paths, so callers binding to a key with
1099
+ * special chars must encode (`a/b` → `/a~1b`).
1100
+ * - `askId`: yield only events from this ask. Useful when watching a
1101
+ * specific ask in a fan-out workflow.
1102
+ *
1103
+ * Both fields are AND-combined when both are set. Omit a field to wildcard.
1104
+ */
1105
+ type StringStreamFilter = {
1106
+ path?: string;
1107
+ askId?: string;
1108
+ };
1013
1109
  /**
1014
1110
  * Thrown when an `AxlEventBus` queue exceeds `maxQueued` and `onOverflow`
1015
1111
  * is set to `'throw'`. Surfaced as a typed error so the runtime's emit
@@ -1087,6 +1183,27 @@ declare class AxlEventBus implements AsyncIterable<AxlEvent> {
1087
1183
  * number of distinct askIds that emitted at least one partial.
1088
1184
  */
1089
1185
  private latestPartialByAsk;
1186
+ /**
1187
+ * Per-ask, per-path running accumulator for `string_delta` events,
1188
+ * updated on every `_push(string_delta)` regardless of consumer state.
1189
+ * Used to seed late `stringStream` subscribers with the current text-
1190
+ * so-far per (askId, path) pair, so a UI binding to `/summary` mid-
1191
+ * stream renders the field's current state on first event instead of
1192
+ * waiting for the next chunk.
1193
+ *
1194
+ * Cleared per-askId on `pipeline(failed)` (discarded attempt — old
1195
+ * deltas must not leak into the next attempt's view) and on `ask_end`
1196
+ * (frees memory; stream-event accumulators don't outlive the ask).
1197
+ *
1198
+ * Memory bound: O(active asks × distinct paths × total chars per
1199
+ * field). For typical chat workflows (1 ask, 1-3 streaming string
1200
+ * fields) this is a few KB. The clear-on-`ask_end` cap keeps a
1201
+ * long-running runtime from accumulating per-ask entries forever
1202
+ * (the way `latestPartialByAsk` does — partial snapshots are tiny by
1203
+ * comparison so that map's growth is acceptable; string accumulators
1204
+ * can be 4 KB+ each, hence the more aggressive cleanup here).
1205
+ */
1206
+ private stringStreamByAsk;
1090
1207
  /**
1091
1208
  * Hook fired when an iterator obtained from `[Symbol.asyncIterator]`
1092
1209
  * is `await using`-disposed. Set via the second constructor argument.
@@ -1191,6 +1308,38 @@ declare class AxlEventBus implements AsyncIterable<AxlEvent> {
1191
1308
  * once the bus is finished (via `_finish()`).
1192
1309
  */
1193
1310
  get partialObjects(): AsyncIterable<CoalescedPartialObject>;
1311
+ /**
1312
+ * Listener-based view over `string_delta` events with optional
1313
+ * filtering by `path` and/or `askId`. Yields `StringStreamEvent`s
1314
+ * carrying `delta` (the new chars) and `accumulated` (the full text-
1315
+ * so-far for that ask + path).
1316
+ *
1317
+ * Designed for chat-style typewriter rendering of long string fields:
1318
+ * a React component binding to `path: '/summary'` sets its text to
1319
+ * `event.accumulated` on every yield, getting smooth char-by-char
1320
+ * progression with no parser of its own.
1321
+ *
1322
+ * Late-subscriber seeding: at subscribe time, the bus's per-ask
1323
+ * accumulator is walked and one synthetic `StringStreamEvent` is
1324
+ * yielded per matching (askId, path) entry, with `delta ===
1325
+ * accumulated === <full text-so-far>`. After that, live deltas flow
1326
+ * normally. A consumer who attaches mid-ask sees the field's current
1327
+ * state on first iteration, then incremental updates.
1328
+ *
1329
+ * Like `partialObjects`, this view is listener-based — it does NOT
1330
+ * race the main async iterator (`for await (const e of bus)`).
1331
+ * Running both concurrently each receives every matching event.
1332
+ *
1333
+ * Schema-retry awareness: on `pipeline(status: 'failed')`, the
1334
+ * accumulator and any pending events for the affected ask are
1335
+ * dropped, so a consumer iterating during attempt-N never observes
1336
+ * stale text after attempt-N+1 begins. Mirrors `partialObjects`'
1337
+ * per-attempt reset.
1338
+ *
1339
+ * Termination: yields any pending events first (live + seeded), then
1340
+ * `done: true` once the bus is finished via `_finish()`.
1341
+ */
1342
+ stringStream(opts?: StringStreamFilter): AsyncIterable<StringStreamEvent>;
1194
1343
  /** Iterator over structural lifecycle events only — skips per-token chatter
1195
1344
  * and progressive `partial_object` emissions. Useful for waterfall UIs
1196
1345
  * and any consumer that wants the "what happened" timeline. */
@@ -2364,6 +2513,18 @@ declare class AxlStream extends Readable implements AsyncIterable<AxlEvent> {
2364
2513
  * `CoalescedPartialObject` shape is shared with the bus so the two
2365
2514
  * surfaces can never drift on the `attempt` field. */
2366
2515
  get partialObjects(): AsyncIterable<CoalescedPartialObject>;
2516
+ /** Listener-based view over `string_delta` events, with optional filter
2517
+ * on `path` and/or `askId`. Yields `StringStreamEvent`s carrying the new
2518
+ * `delta` and full text-so-far `accumulated`. Designed for chat-style
2519
+ * typewriter rendering of long string fields — bind a UI component to
2520
+ * one path and set its text to `event.accumulated` per yield.
2521
+ *
2522
+ * Late subscribers receive a synthetic event seeded from the bus's
2523
+ * per-ask accumulator (so the field's current state renders on the
2524
+ * first iteration, not after the next char arrives). Doesn't race the
2525
+ * main async iterator. See `AxlEventBus.stringStream` for full
2526
+ * semantics. */
2527
+ stringStream(opts?: StringStreamFilter): AsyncIterable<StringStreamEvent>;
2367
2528
  pipe<T extends NodeJS.WritableStream>(destination: T, options?: {
2368
2529
  end?: boolean;
2369
2530
  }): T;
@@ -3094,6 +3255,94 @@ declare function expandGlob(pattern: string, cwd: string): string[];
3094
3255
  */
3095
3256
  declare function registerConditions(conditions: string[]): Promise<void>;
3096
3257
 
3258
+ /**
3259
+ * Browser-safe wire-side reconstructor for the `stringStream` view.
3260
+ *
3261
+ * Lives in its own module — separate from `event-stream.ts` which
3262
+ * imports `node:events`'s `EventEmitter` for `AxlEventBus` — so a
3263
+ * browser SPA importing only `stringStreamFromEvents` from
3264
+ * `@axlsdk/axl` cannot pull `EventEmitter` into the bundle even under
3265
+ * conservative bundler settings (webpack default is "assume side
3266
+ * effects unless `sideEffects: false` is set"). This is
3267
+ * defense-in-depth alongside `sideEffects: false` in `package.json`:
3268
+ * the module split guarantees tree-shaking at the *file* level (no
3269
+ * dead-code elimination required), so bundle size stays predictable
3270
+ * regardless of bundler configuration.
3271
+ *
3272
+ * All imports here are type-only (`import type`) and resolve against
3273
+ * `types.ts` and `event-stream.ts` — both erased at compile time, no
3274
+ * runtime edge.
3275
+ */
3276
+
3277
+ /**
3278
+ * Reconstruct a `stringStream`-shaped view from a raw `AxlEvent` source.
3279
+ *
3280
+ * Use this when consuming events on the wire (WebSocket / SSE) rather
3281
+ * than from a live `AxlStream` / `AxlEventBus` you own. The browser-side
3282
+ * SPA has no access to the bus's per-ask accumulator, so each
3283
+ * `string_delta` event arrives carrying only the new chars — without
3284
+ * the running text. This helper maintains the accumulator client-side,
3285
+ * yielding `StringStreamEvent`s with the same `{ delta, accumulated }`
3286
+ * shape the server-side `stringStream` view produces.
3287
+ *
3288
+ * Pure ECMAScript — zero Node dependencies. Safe to bundle for the
3289
+ * browser; lives in its own module so even bundlers that don't honor
3290
+ * `sideEffects: false` won't pull `node:events` from the AxlEventBus
3291
+ * file.
3292
+ *
3293
+ * Differences from the live-bus view:
3294
+ *
3295
+ * - **No late-subscriber seeding.** The function starts accumulating
3296
+ * when iteration begins; if the source has already produced
3297
+ * `string_delta` events before then, those are missed. Server-side
3298
+ * operators wanting cross-reconnect recovery should re-emit current
3299
+ * state on subscribe (out of scope here — the wire transport is the
3300
+ * caller's responsibility).
3301
+ * - **No race-with-bus-iterator concern.** This is a stateless
3302
+ * consumer of an iterable; iterating it twice on the same source
3303
+ * consumes events twice (fork the source first if you need that).
3304
+ * - **No retroactive pending-drop on retry.** The bus view splices
3305
+ * pending events on `pipeline(failed)` to hide attempt-N text from
3306
+ * a buffered consumer. The wire helper has no buffer, so attempt-N
3307
+ * deltas that already yielded stay yielded. The accumulator clear
3308
+ * on `pipeline(failed)` still fires, so the next yielded event has
3309
+ * `accumulated === delta` — a UI re-rendering `event.accumulated`
3310
+ * per yield naturally overwrites stale text in place. Customers
3311
+ * appending `event.delta` to a manual buffer instead must reset the
3312
+ * buffer when `attempt` increases.
3313
+ *
3314
+ * Same filter / clear semantics as the bus view:
3315
+ *
3316
+ * - `opts.path` / `opts.askId` filter at yield time.
3317
+ * - `pipeline(failed)` clears the per-ask accumulator (so
3318
+ * attempt-N text never leaks into attempt-N+1).
3319
+ * - `ask_end` clears the per-ask accumulator (memory hygiene).
3320
+ *
3321
+ * Example (browser, consuming Studio's WS firehose):
3322
+ *
3323
+ * ```ts
3324
+ * import { stringStreamFromEvents } from '@axlsdk/axl';
3325
+ *
3326
+ * async function* readWs(ws: WebSocket): AsyncIterable<AxlEvent> {
3327
+ * const queue: AxlEvent[] = [];
3328
+ * let resolver: (() => void) | null = null;
3329
+ * ws.addEventListener('message', (m) => {
3330
+ * queue.push(JSON.parse(m.data).data);
3331
+ * resolver?.();
3332
+ * });
3333
+ * while (true) {
3334
+ * while (queue.length) yield queue.shift()!;
3335
+ * await new Promise<void>((r) => (resolver = r));
3336
+ * }
3337
+ * }
3338
+ *
3339
+ * for await (const e of stringStreamFromEvents(readWs(ws), { path: '/summary' })) {
3340
+ * setText(e.accumulated);
3341
+ * }
3342
+ * ```
3343
+ */
3344
+ declare function stringStreamFromEvents(source: AsyncIterable<AxlEvent>, opts?: StringStreamFilter): AsyncIterable<StringStreamEvent>;
3345
+
3097
3346
  /**
3098
3347
  * Shared helpers for working with `AxlEvent` streams.
3099
3348
  *
@@ -3735,4 +3984,4 @@ declare class NoopSpanManager implements SpanManager {
3735
3984
  */
3736
3985
  declare function createSpanManager(config?: TelemetryConfig): Promise<SpanManager>;
3737
3986
 
3738
- export { AXL_EVENT_TYPES, type Agent, type AgentCallEndData, type AgentCallInfo, type AgentCallParams, type AgentCallStartData, type AgentConfig, AnthropicProvider, type AnyWorkflow, type AskOptions, type AskScoped, type AwaitHumanData, type AwaitHumanOptions, type AwaitHumanResolvedData, type AxlConfig, AxlError, type AxlEvent, type AxlEventBase, AxlEventBus, type AxlEventOf, type AxlEventType, AxlRuntime, AxlStream, BudgetExceededError, type BudgetOptions, type BudgetResult, CONFIG_CANDIDATES, COST_BEARING_LEAF_TYPES, type CallbackMeta, type ChatMessage, type ChatOptions, type CheckpointEventData, type CoalescedPartialObject, type CreateContextOptions, type DelegateData, type DelegateOptions, type Effort, type EmbedResult, type EmbedUsage, type Embedder, type EvalExecuteWorkflow, type EvalHistoryEntry, type EventStreamOptions, EventStreamOverflowError, type ExecuteOptions, type ExecutionInfo, type ExecutionState, GeminiProvider, type GuardrailBlockHandler, type GuardrailData, GuardrailError, type GuardrailResult, type GuardrailsConfig, type HandoffDescriptor, type HandoffRecord, type HandoffReturnData, type HandoffStartData, type HumanDecision, InMemoryVectorStore, type InputGuardrail, type MapOptions, MaxTurnsError, McpManager, type McpServer, type McpServerConfig, type McpToolDefinition, type McpToolResult, type MemoryConfig, type MemoryEventData, MemoryManager, MemoryStore, NoConsensus, NoopSpanManager, OpenAIEmbedder, OpenAIProvider, OpenAIResponsesProvider, type OutputGuardrail, type OutputValidator, type PendingDecision, type Provider, type ProviderAdapter, ProviderRegistry, type ProviderResponse, QuorumNotMet, REDACTED, REDACTION_RULES, type RaceOptions, type RecallOptions, type RecallResult, RedisStore, type RememberOptions, type RememberResult, type ResolvedThinkingOptions, type Result, type RetryPolicy, SQLiteStore, type SchemaCheckData, Session, type SessionOptions, type SpanHandle, type SpanManager, type SpawnOptions, SqliteVectorStore, type StateStore, type StreamChunk, type TelemetryConfig, TimeoutError, type Tool, type ToolApprovalData, type ToolCallData, type ToolCallMessage, type ToolCallStartData, type ToolChoice, type ToolConfig, ToolDenied, type ToolDeniedData, type ToolHooks, type ValidateData, type ValidateResult, ValidationError, type VectorEntry, type VectorResult, type VectorStore, type VerifyData, VerifyError, type VerifyOptions, type VerifyRetry, type VoteOptions, type Workflow, type WorkflowConfig, WorkflowContext, type WorkflowContextInit, type WorkflowEndData, type WorkflowStartData, agent, createSpanManager, defineConfig, eventCostContribution, expandGlob, extractJson, findConfig, importModule, isCostBearingLeaf, isRootLevel, needsTsxLoader, parsePartialJson, pickDefault, pickExport, redactEvent, registerConditions, resolveRuntime, resolveThinkingOptions, tool, workflow, zodToJsonSchema };
3987
+ export { AXL_EVENT_TYPES, type Agent, type AgentCallEndData, type AgentCallInfo, type AgentCallParams, type AgentCallStartData, type AgentConfig, AnthropicProvider, type AnyWorkflow, type AskOptions, type AskScoped, type AwaitHumanData, type AwaitHumanOptions, type AwaitHumanResolvedData, type AxlConfig, AxlError, type AxlEvent, type AxlEventBase, AxlEventBus, type AxlEventOf, type AxlEventType, AxlRuntime, AxlStream, BudgetExceededError, type BudgetOptions, type BudgetResult, CONFIG_CANDIDATES, COST_BEARING_LEAF_TYPES, type CallbackMeta, type ChatMessage, type ChatOptions, type CheckpointEventData, type CoalescedPartialObject, type CreateContextOptions, type DelegateData, type DelegateOptions, type Effort, type EmbedResult, type EmbedUsage, type Embedder, type EvalExecuteWorkflow, type EvalHistoryEntry, type EventStreamOptions, EventStreamOverflowError, type ExecuteOptions, type ExecutionInfo, type ExecutionState, GeminiProvider, type GuardrailBlockHandler, type GuardrailData, GuardrailError, type GuardrailResult, type GuardrailsConfig, type HandoffDescriptor, type HandoffRecord, type HandoffReturnData, type HandoffStartData, type HumanDecision, InMemoryVectorStore, type InputGuardrail, type MapOptions, MaxTurnsError, McpManager, type McpServer, type McpServerConfig, type McpToolDefinition, type McpToolResult, type MemoryConfig, type MemoryEventData, MemoryManager, MemoryStore, NoConsensus, NoopSpanManager, OpenAIEmbedder, OpenAIProvider, OpenAIResponsesProvider, type OutputGuardrail, type OutputValidator, type PendingDecision, type Provider, type ProviderAdapter, ProviderRegistry, type ProviderResponse, QuorumNotMet, REDACTED, REDACTION_RULES, type RaceOptions, type RecallOptions, type RecallResult, RedisStore, type RememberOptions, type RememberResult, type ResolvedThinkingOptions, type Result, type RetryPolicy, SQLiteStore, type SchemaCheckData, Session, type SessionOptions, type SpanHandle, type SpanManager, type SpawnOptions, SqliteVectorStore, type StateStore, type StreamChunk, type StringDeltaData, type StringStreamEvent, type StringStreamFilter, type TelemetryConfig, TimeoutError, type Tool, type ToolApprovalData, type ToolCallData, type ToolCallMessage, type ToolCallStartData, type ToolChoice, type ToolConfig, ToolDenied, type ToolDeniedData, type ToolHooks, type ValidateData, type ValidateResult, ValidationError, type VectorEntry, type VectorResult, type VectorStore, type VerifyData, VerifyError, type VerifyOptions, type VerifyRetry, type VoteOptions, type Workflow, type WorkflowConfig, WorkflowContext, type WorkflowContextInit, type WorkflowEndData, type WorkflowStartData, agent, createSpanManager, defineConfig, eventCostContribution, expandGlob, extractJson, findConfig, importModule, isCostBearingLeaf, isRootLevel, needsTsxLoader, parsePartialJson, pickDefault, pickExport, redactEvent, registerConditions, resolveRuntime, resolveThinkingOptions, stringStreamFromEvents, tool, workflow, zodToJsonSchema };