@axlsdk/axl 0.27.1 → 0.27.2

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
@@ -3867,6 +3867,12 @@ type ExecutionState = {
3867
3867
  status: 'waiting' | 'running';
3868
3868
  metadata?: Record<string, unknown>;
3869
3869
  };
3870
+ /**
3871
+ * Computes a session's new history from what's stored, for
3872
+ * {@link StateStore.updateSession}. Receives `null` when no session is stored.
3873
+ * Returns `null` to write nothing. May run more than once.
3874
+ */
3875
+ type SessionUpdate = (current: ChatMessage[] | null) => ChatMessage[] | null;
3870
3876
  /**
3871
3877
  * Pluggable state persistence interface.
3872
3878
  *
@@ -3877,6 +3883,18 @@ interface StateStore {
3877
3883
  saveCheckpoint(executionId: string, name: string, data: unknown): Promise<void>;
3878
3884
  getCheckpoint(executionId: string, name: string): Promise<unknown | null>;
3879
3885
  saveSession(sessionId: string, history: ChatMessage[]): Promise<void>;
3886
+ /**
3887
+ * Replace a session's history based on what's stored at that moment, without
3888
+ * overwriting a write made by another process in between. Sessions use it to
3889
+ * save each turn. The built-in stores implement it; without it, a store gets
3890
+ * `saveSession`, where the last writer wins.
3891
+ *
3892
+ * **Custom store implementors:** the read and the write must be atomic. Use a
3893
+ * transaction or a compare-and-set, and call `update` again if another writer
3894
+ * got in first, so `update` may run more than once. It receives `null` when no
3895
+ * session is stored. When it returns `null`, write nothing.
3896
+ */
3897
+ updateSession?(sessionId: string, update: SessionUpdate): Promise<void>;
3880
3898
  getSession(sessionId: string): Promise<ChatMessage[]>;
3881
3899
  deleteSession(sessionId: string): Promise<void>;
3882
3900
  saveSessionMeta(sessionId: string, key: string, value: unknown): Promise<void>;
@@ -5630,22 +5648,6 @@ type SessionOptions = {
5630
5648
  /** Whether to persist session history to the state store. Default: true. */
5631
5649
  persist?: boolean;
5632
5650
  };
5633
- /**
5634
- * A stateful conversation session.
5635
- * Persists message history across multiple interactions.
5636
- *
5637
- * **Concurrency contract:** `send`, `stream`, `end`, and `fork` are
5638
- * serialized per session id within one runtime instance. Two
5639
- * `runtime.session('x')` handles share the same lock (it lives on
5640
- * `AxlRuntime`, not the `Session` instance). `history()` and
5641
- * `handoffs()` bypass the lock and return the last persisted snapshot.
5642
- *
5643
- * **⚠️ Cross-process locking is NOT provided.** Multiple Node workers
5644
- * behind a load balancer hitting the same Redis-backed `sessionId`
5645
- * will still race. Pin sessions to workers (sticky routing) or use
5646
- * distinct ids per request. See `docs/api-reference.md` →
5647
- * Sessions → Concurrency.
5648
- */
5649
5651
  declare class Session {
5650
5652
  private sessionId;
5651
5653
  private runtime;
@@ -5672,6 +5674,8 @@ declare class Session {
5672
5674
  * push has no agent context and so leaves `agent` undefined — see the
5673
5675
  * `ChatMessage.agent` field doc. */
5674
5676
  private commitHistory;
5677
+ /** The turn is already saved, so a listener that throws can't be allowed to fail it. */
5678
+ private notify;
5675
5679
  stream(workflowName: string, input: unknown, options?: {
5676
5680
  signal?: AbortSignal;
5677
5681
  events?: EventStreamOptions;
@@ -9778,6 +9782,7 @@ declare class MemoryStore implements StateStore {
9778
9782
  saveCheckpoint(executionId: string, name: string, data: unknown): Promise<void>;
9779
9783
  getCheckpoint(executionId: string, name: string): Promise<unknown | null>;
9780
9784
  saveSession(sessionId: string, history: ChatMessage[]): Promise<void>;
9785
+ updateSession(sessionId: string, update: SessionUpdate): Promise<void>;
9781
9786
  getSession(sessionId: string): Promise<ChatMessage[]>;
9782
9787
  deleteSession(sessionId: string): Promise<void>;
9783
9788
  saveSessionMeta(sessionId: string, key: string, value: unknown): Promise<void>;
@@ -9946,6 +9951,7 @@ declare class SQLiteStore implements StateStore {
9946
9951
  saveCheckpoint(executionId: string, name: string, data: unknown): Promise<void>;
9947
9952
  getCheckpoint(executionId: string, name: string): Promise<unknown | null>;
9948
9953
  saveSession(sessionId: string, history: ChatMessage[]): Promise<void>;
9954
+ updateSession(sessionId: string, update: SessionUpdate): Promise<void>;
9949
9955
  getSession(sessionId: string): Promise<ChatMessage[]>;
9950
9956
  deleteSession(sessionId: string): Promise<void>;
9951
9957
  saveSessionMeta(sessionId: string, key: string, value: unknown): Promise<void>;
@@ -10064,6 +10070,34 @@ interface RedisStoreOptions {
10064
10070
  * `console.error` and otherwise ignored.
10065
10071
  */
10066
10072
  onConnectionEvent?: (event: RedisConnectionEvent) => void;
10073
+ /**
10074
+ * Reconnect when Redis stops answering, in milliseconds. Off by default.
10075
+ *
10076
+ * The store sends a `PING` about every third of this time. If one goes
10077
+ * unanswered for this long, it drops the connection and reconnects: calls in
10078
+ * flight reject, and calls made until it reconnects reject with
10079
+ * `REDIS_UNAVAILABLE`. `create()` also rejects if Redis hasn't finished
10080
+ * connecting within this time.
10081
+ *
10082
+ * It's a limit on the whole connection, not on one command, because replies
10083
+ * come back in order. Set it above your slowest expected command, or a large
10084
+ * save or busy server looks like a stall. A call that rejects this way may
10085
+ * still have been applied by Redis.
10086
+ */
10087
+ responseTimeoutMs?: number;
10088
+ /**
10089
+ * Set to `false` so that `create()` returns right away and the store connects
10090
+ * in the background, retrying until Redis is available. Calls reject with
10091
+ * `REDIS_UNAVAILABLE` until then. Defaults to `true`, where `create()` rejects
10092
+ * if Redis is unavailable, which surfaces bad configuration at startup.
10093
+ *
10094
+ * Requires {@link responseTimeoutMs}, so that a server that accepts the
10095
+ * connection but never answers can't leave it connecting forever. Nothing
10096
+ * rejects if the configuration is wrong: failed attempts go to
10097
+ * {@link onConnectionEvent}, and `isConnected` stays `false`. The startup
10098
+ * backfill runs after the first connection instead of during `create()`.
10099
+ */
10100
+ waitForConnection?: boolean;
10067
10101
  /**
10068
10102
  * Skip the lazy backfill of legacy execution / eval-history entries into
10069
10103
  * the sorted-set indexes during `RedisStore.create()`. Default `false`
@@ -10170,6 +10204,12 @@ declare class RedisStore implements StateStore {
10170
10204
  private connection;
10171
10205
  private keyPrefix;
10172
10206
  private ttls;
10207
+ /** Set when `close()` starts, while the connection is still open. */
10208
+ private closing;
10209
+ /** Where the next save's check of listed sessions picks up. */
10210
+ private sessionSweepCursor;
10211
+ /** Overlapping saves would all check the same page, so only one checks at a time. */
10212
+ private sessionSweepRunning;
10173
10213
  private constructor();
10174
10214
  /**
10175
10215
  * Whether the store can send commands right now, for a health check or for
@@ -10196,6 +10236,8 @@ declare class RedisStore implements StateStore {
10196
10236
  * instance needs no constructor state.
10197
10237
  */
10198
10238
  private prunesInFlight?;
10239
+ /** Stops the `responseTimeoutMs` health checks; unset when the option is off. */
10240
+ private stopResponseWatch?;
10199
10241
  /**
10200
10242
  * Supports `listExecutions(limit, { cursor })`. A getter rather than a
10201
10243
  * field so it lives on the prototype.
@@ -10231,6 +10273,12 @@ declare class RedisStore implements StateStore {
10231
10273
  * ```
10232
10274
  */
10233
10275
  static create(options?: string | RedisStoreOptions): Promise<RedisStore>;
10276
+ /**
10277
+ * Run the startup backfill when a connection becomes ready, until it succeeds.
10278
+ * Nothing is waiting on it, and listings work without it, so a failure is
10279
+ * reported and the next connection tries again.
10280
+ */
10281
+ private backfillOnceConnected;
10234
10282
  /**
10235
10283
  * Backfill the execution-history sorted-set from the legacy ID set.
10236
10284
  * Idempotent — runs only if the ZSET is missing entries the SET has.
@@ -10244,6 +10292,10 @@ declare class RedisStore implements StateStore {
10244
10292
  * Shared implementation for both backfill paths. Reads SET members,
10245
10293
  * batch-MGETs their data blobs in chunks, and ZADDs each into the new
10246
10294
  * sorted-set inside a single MULTI per chunk.
10295
+ *
10296
+ * Ids with no data blob are removed from the id set. Left there, the set stays
10297
+ * larger than the sorted set, so every startup repeats this walk and listing
10298
+ * stays on its slow path.
10247
10299
  */
10248
10300
  private backfillHistoryIndex;
10249
10301
  private checkpointKey;
@@ -10274,6 +10326,7 @@ declare class RedisStore implements StateStore {
10274
10326
  saveCheckpoint(executionId: string, name: string, data: unknown): Promise<void>;
10275
10327
  getCheckpoint(executionId: string, name: string): Promise<unknown | null>;
10276
10328
  saveSession(sessionId: string, history: ChatMessage[]): Promise<void>;
10329
+ updateSession(sessionId: string, update: SessionUpdate): Promise<void>;
10277
10330
  getSession(sessionId: string): Promise<ChatMessage[]>;
10278
10331
  deleteSession(sessionId: string): Promise<void>;
10279
10332
  saveSessionMeta(sessionId: string, key: string, value: unknown): Promise<void>;
@@ -10386,6 +10439,7 @@ declare class RedisStore implements StateStore {
10386
10439
  * covers a Redis user whose ACL denies `EVAL`.
10387
10440
  */
10388
10441
  private pruneHistoryAfterSave;
10442
+ private warnPruneFailed;
10389
10443
  private pruneHistory;
10390
10444
  /**
10391
10445
  * Run {@link PRUNE_HISTORY_INDEX_SCRIPT} over `ids`, at most PRUNE_BATCH
@@ -10429,6 +10483,16 @@ declare class RedisStore implements StateStore {
10429
10483
  */
10430
10484
  private readRetentionBatch;
10431
10485
  listSessions(): Promise<string[]>;
10486
+ /**
10487
+ * Check a few listed sessions after a save, so ids of expired sessions go
10488
+ * away for apps that never list. Sessions without a TTL don't expire, so
10489
+ * there's nothing to do. The save has already succeeded, so failing here
10490
+ * can't fail it.
10491
+ */
10492
+ private sweepSessionIds;
10493
+ /** Returns the ids removed. Without permission to run the script, removes none and warns. */
10494
+ private pruneSessionIds;
10495
+ private warnSessionPruneFailed;
10432
10496
  appendStreamingEvents(executionId: string, events: AxlEvent[]): Promise<void>;
10433
10497
  finalizeStreamingEvents(executionId: string): Promise<void>;
10434
10498
  listStreamingExecutions(): Promise<string[]>;
@@ -10442,10 +10506,13 @@ declare class RedisStore implements StateStore {
10442
10506
  * better-sqlite3's `close()` are both no-ops the second time; node-redis
10443
10507
  * instead rejects with "The client is closed", so absorb that here.
10444
10508
  *
10445
- * Bounded, so a shutdown can't hang on Redis. `QUIT` lets queued commands
10446
- * finish on a healthy connection, but node-redis never settles it if the
10447
- * socket closes first, and a stalled server may never answer it. While
10448
- * disconnected it couldn't be sent at all.
10509
+ * Bounded, so a shutdown can't hang on Redis. Replies arrive in order, so a
10510
+ * reply to this PING means every earlier command has finished.
10511
+ *
10512
+ * Not `quit()`: it marks the client closed before the server answers, and
10513
+ * `destroy()` then throws without touching the socket, so a stalled server's
10514
+ * socket could never be closed. There's no other public way to close it. A
10515
+ * closed socket is all Redis needs to clean up, so nothing is lost.
10449
10516
  */
10450
10517
  close(): Promise<void>;
10451
10518
  deleteCheckpoints(executionId: string): Promise<void>;
@@ -10518,4 +10585,4 @@ declare class NoopSpanManager implements SpanManager {
10518
10585
  */
10519
10586
  declare function createSpanManager(config?: TelemetryConfig): Promise<SpanManager>;
10520
10587
 
10521
- export { AXL_EVENT_TYPES, AXL_EVENT_TYPES_V2, AXL_TOOL_LIFECYCLE_TYPES_V2, AZURE_PROFILE, type Accounting, type AccountingCompleteness, type AccountingReason, type AccountingUsage, AdmissionController, AdmissionDeniedError, type Agent, type AgentCallEndData, type AgentCallInfo, type AgentCallParams, type AgentCallStartData, type AgentConfig, AnthropicProvider, type AnyWorkflow, type ApiKeySource, type ArtifactManifest, type ArtifactOwner, type ArtifactStatus, type ArtifactWriteResult, type AskOptions, type AskScoped, type AuthHeader, type AwaitHumanData, type AwaitHumanOptions, type AwaitHumanResolvedData, type AxlConfig, AxlError, type AxlEvent, type AxlEventBase, AxlEventBus, type AxlEventOf, type AxlEventType, type AxlEventV2, type AxlEventV2Of, AxlRuntime, AxlStream, BEDROCK_PROFILE, BUILTIN_PROFILES, BudgetExceededError, type BudgetOptions, type BudgetResult, CONFIG_CANDIDATES, COST_BEARING_LEAF_TYPES, type CallTiming, type CapabilityFlags, type CaptureCorrelation, type CapturedCorrection, type CapturedError, type CapturedExternalRequestRecord, type CapturedJsonValue, type CapturedMessage, type CapturedModelRequestRecord, type CapturedOperationRef, type CapturedPhase, type CapturedRequest, type CapturedRequestRecord, type CapturedResponse, type ChatMessage, type ChatOptions, type CheckpointEventData, type CoalescedPartialObject, type CostProvenance, type CreateContextOptions, DEEPSEEK_PROFILE, DEFAULT_MAX_QUEUE_BYTES, DEFAULT_MAX_RECORD_BYTES, DEFAULT_MAX_RUN_BYTES, type DecisionCleanupFailedEvent, type DelegateData, type DelegateOptions, type DiagnosticArtifactStore, type DiagnosticArtifactsConfig, type DiagnosticsConfig, type DispatchAdmission, type Effort, type EffortResolution, type EmbedResult, type EmbedUsage, type Embedder, type EvalExecuteWorkflow, type EvalHistoryEntry, type EvalProgressEventShape, type EventStreamOptions, EventStreamOverflowError, type ExecuteOptions, type ExecutionCursor, type ExecutionInfo, type ExecutionInfoV1, type ExecutionInfoV2, type ExecutionState, type ExternalOperationDescriptor, type ExternalOperationRecord, type ExternalOperationReport, FileDiagnosticArtifactStore, type FinishReason, type FoldedOperationRecord, GROQ_PROFILE, GeminiProvider, GeminiTranscriptionProvider, type GuardrailBlockHandler, type GuardrailData, GuardrailError, type GuardrailResult, type GuardrailsConfig, type HandoffDescriptor, type HandoffRecord, type HandoffReturnData, type HandoffStartData, type HistoricalAxlEvent, type HistoricalExecutionInfo, type HistoryRetentionCursor, type HistoryRetentionKind, type HistoryRetentionOptions, type HistoryRetentionResult, type HistoryTtls, type HumanDecision, InMemoryVectorStore, type InputAudioPart, type InputContentPart, type InputGuardrail, type InputImagePart, type InputMediaSource, type InputModalitySupport, type InputTextPart, InvalidModelInputError, InvalidTranscriptionInputError, LLAMACPP_PROFILE, LMSTUDIO_PROFILE, type LegacyAxlEventV1, type LegacyExecutionInfoV1, MAX_INLINE_MODEL_INPUT_BYTES, MAX_INLINE_TRANSCRIPTION_BYTES, MISTRAL_PROFILE, type MapOptions, MaxTurnsError, McpManager, type McpServer, type McpServerConfig, type McpToolDefinition, type McpToolResult, type MemoryConfig, type MemoryEventData, MemoryManager, MemoryStore, type MemoryStoreOptions, type ModelCallRecord, type ModelInput, type ModelInputDescriptor, type ModelTimingRollup, NoConsensus, NoopSpanManager, OLLAMA_PROFILE, OPENAI_PRICING, OPENAI_PROFILE, OPENROUTER_PROFILE, type ObservationStatus, type OpenAICompatibleOptions, OpenAICompatibleProvider, OpenAIEmbedder, OpenAIProvider, OpenAIResponsesProvider, OpenAITranscriptionProvider, OpenRouterTranscriptionProvider, type OpenedArtifact, type OperationKind, type OperationPurpose, type OutputGuardrail, type OutputValidator, type PendingDecision, type PerModel, type PricingSource, type PricingTable, type ProfileInputModalities, type Provider, type ProviderAdapter, type ProviderDiagnosticData, ProviderError, type ProviderInputValidationRequest, type ProviderInputValidationResult, type ProviderProfile, ProviderRegistry, type ProviderResponse, QuorumNotMet, REDACTED, REDACTION_RULES, type RaceOptions, type RateLimitConfig, RateLimiter, type ReasoningCapture, type ReasoningContextReset, type ReasoningEmit, type ReasoningProfile, type ReasoningRoundTrip, type RecallOptions, type RecallResult, type RecordedAudioSource, type RedisConnectionEvent, RedisStore, type RedisStoreOptions, type RememberOptions, type RememberResult, RequestCaptureChannel, type RequestCaptureOptions, type RequestCaptureSink, type RequestCaptureStatus, type ResolvedThinkingOptions, type Result, type RetryFeedbackHook, type RetryFeedbackInfo, type RetryFeedbackResult, type RetryPolicy, type RuntimeEvalConfigShape, SGLANG_PROFILE, SQLiteStore, type SQLiteStoreOptions, type SchemaCheckData, type SchemaDiagnosticData, type SchemaPromptOption, Session, type SessionOptions, type SpanAttributeValue, type SpanAttributes, type SpanHandle, type SpanManager, type SpawnOptions, SqliteVectorStore, type StagedArtifact, StallTimeoutError, type StateStore, type StreamChunk, type StringDeltaData, type StringStreamEvent, type StringStreamFilter, type TelemetryConfig, ThinkTagScanner, type TimeoutBreakdown, TimeoutError, type Tool, type ToolApprovalData, type ToolArgumentIssue, type ToolCallCancellation, type ToolCallData, type ToolCallEndData, type ToolCallFailure, type ToolCallMessage, type ToolCallOutcome, type ToolCallRejectedData, type ToolCallRejectedEvent, type ToolCallStartData, type ToolCallStartDataV2, type ToolChoice, type ToolConfig, type ToolDeniedData, type ToolEventError, ToolFailure, type ToolFailureConstructor, type ToolFailureOptions, type ToolHooks, type ToolLifecycleEventV2, type ToolModelOutput, ToolModelOutputError, type TrackExecutionMetadata, type TrackExecutionResult, type TrackOutcomeOptions, type TrackedOutcome, type Transcript, type TranscriptionCapabilities, TranscriptionOperationError, type TranscriptionProvider, TranscriptionProviderRegistry, type TranscriptionProviderRequest, type TranscriptionProviderResult, type TranscriptionRequest, UnsupportedEventSchemaVersionError, UnsupportedModelInputError, UnsupportedModelOptionError, UnsupportedTranscriptionInputError, VLLM_PROFILE, 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, XAI_PROFILE, agent, capturedJournalLineSchema, createSpanManager, defineConfig, estimateOpenAICost, eventCostContribution, expandGlob, externalOperation, externalOperationRecordSchema, extractJson, extractThinkTags, findConfig, foldJournal, foldedOperationRecordSchema, getEventSchemaVersion, getExecutionEventSchemaVersion, hasPositiveBillableWork, hasPositiveTokens, importModule, inputText, isAdmissionDeniedError, isCostBearingLeaf, isRetryableStatus, isRootLevel, isUnpricedLeaf, isUsableCost, modelCallRecordSchema, needsTsxLoader, normalizeStoredExecution, openaiReasoningEmit, parsePartialJson, pickDefault, pickExport, priceFromTable, reasoningEffortEmit, reasoningObjectEmit, redactCapturedRequest, redactEvent, redactHistoricalEvent, redactModelCallRecord, registerConditions, resolveApiKey, resolvePerModel, resolveRuntime, resolveThinkingOptions, stringStreamFromEvents, summarizeModelInput, tool, workflow, zodToJsonSchema };
10588
+ export { AXL_EVENT_TYPES, AXL_EVENT_TYPES_V2, AXL_TOOL_LIFECYCLE_TYPES_V2, AZURE_PROFILE, type Accounting, type AccountingCompleteness, type AccountingReason, type AccountingUsage, AdmissionController, AdmissionDeniedError, type Agent, type AgentCallEndData, type AgentCallInfo, type AgentCallParams, type AgentCallStartData, type AgentConfig, AnthropicProvider, type AnyWorkflow, type ApiKeySource, type ArtifactManifest, type ArtifactOwner, type ArtifactStatus, type ArtifactWriteResult, type AskOptions, type AskScoped, type AuthHeader, type AwaitHumanData, type AwaitHumanOptions, type AwaitHumanResolvedData, type AxlConfig, AxlError, type AxlEvent, type AxlEventBase, AxlEventBus, type AxlEventOf, type AxlEventType, type AxlEventV2, type AxlEventV2Of, AxlRuntime, AxlStream, BEDROCK_PROFILE, BUILTIN_PROFILES, BudgetExceededError, type BudgetOptions, type BudgetResult, CONFIG_CANDIDATES, COST_BEARING_LEAF_TYPES, type CallTiming, type CapabilityFlags, type CaptureCorrelation, type CapturedCorrection, type CapturedError, type CapturedExternalRequestRecord, type CapturedJsonValue, type CapturedMessage, type CapturedModelRequestRecord, type CapturedOperationRef, type CapturedPhase, type CapturedRequest, type CapturedRequestRecord, type CapturedResponse, type ChatMessage, type ChatOptions, type CheckpointEventData, type CoalescedPartialObject, type CostProvenance, type CreateContextOptions, DEEPSEEK_PROFILE, DEFAULT_MAX_QUEUE_BYTES, DEFAULT_MAX_RECORD_BYTES, DEFAULT_MAX_RUN_BYTES, type DecisionCleanupFailedEvent, type DelegateData, type DelegateOptions, type DiagnosticArtifactStore, type DiagnosticArtifactsConfig, type DiagnosticsConfig, type DispatchAdmission, type Effort, type EffortResolution, type EmbedResult, type EmbedUsage, type Embedder, type EvalExecuteWorkflow, type EvalHistoryEntry, type EvalProgressEventShape, type EventStreamOptions, EventStreamOverflowError, type ExecuteOptions, type ExecutionCursor, type ExecutionInfo, type ExecutionInfoV1, type ExecutionInfoV2, type ExecutionState, type ExternalOperationDescriptor, type ExternalOperationRecord, type ExternalOperationReport, FileDiagnosticArtifactStore, type FinishReason, type FoldedOperationRecord, GROQ_PROFILE, GeminiProvider, GeminiTranscriptionProvider, type GuardrailBlockHandler, type GuardrailData, GuardrailError, type GuardrailResult, type GuardrailsConfig, type HandoffDescriptor, type HandoffRecord, type HandoffReturnData, type HandoffStartData, type HistoricalAxlEvent, type HistoricalExecutionInfo, type HistoryRetentionCursor, type HistoryRetentionKind, type HistoryRetentionOptions, type HistoryRetentionResult, type HistoryTtls, type HumanDecision, InMemoryVectorStore, type InputAudioPart, type InputContentPart, type InputGuardrail, type InputImagePart, type InputMediaSource, type InputModalitySupport, type InputTextPart, InvalidModelInputError, InvalidTranscriptionInputError, LLAMACPP_PROFILE, LMSTUDIO_PROFILE, type LegacyAxlEventV1, type LegacyExecutionInfoV1, MAX_INLINE_MODEL_INPUT_BYTES, MAX_INLINE_TRANSCRIPTION_BYTES, MISTRAL_PROFILE, type MapOptions, MaxTurnsError, McpManager, type McpServer, type McpServerConfig, type McpToolDefinition, type McpToolResult, type MemoryConfig, type MemoryEventData, MemoryManager, MemoryStore, type MemoryStoreOptions, type ModelCallRecord, type ModelInput, type ModelInputDescriptor, type ModelTimingRollup, NoConsensus, NoopSpanManager, OLLAMA_PROFILE, OPENAI_PRICING, OPENAI_PROFILE, OPENROUTER_PROFILE, type ObservationStatus, type OpenAICompatibleOptions, OpenAICompatibleProvider, OpenAIEmbedder, OpenAIProvider, OpenAIResponsesProvider, OpenAITranscriptionProvider, OpenRouterTranscriptionProvider, type OpenedArtifact, type OperationKind, type OperationPurpose, type OutputGuardrail, type OutputValidator, type PendingDecision, type PerModel, type PricingSource, type PricingTable, type ProfileInputModalities, type Provider, type ProviderAdapter, type ProviderDiagnosticData, ProviderError, type ProviderInputValidationRequest, type ProviderInputValidationResult, type ProviderProfile, ProviderRegistry, type ProviderResponse, QuorumNotMet, REDACTED, REDACTION_RULES, type RaceOptions, type RateLimitConfig, RateLimiter, type ReasoningCapture, type ReasoningContextReset, type ReasoningEmit, type ReasoningProfile, type ReasoningRoundTrip, type RecallOptions, type RecallResult, type RecordedAudioSource, type RedisConnectionEvent, RedisStore, type RedisStoreOptions, type RememberOptions, type RememberResult, RequestCaptureChannel, type RequestCaptureOptions, type RequestCaptureSink, type RequestCaptureStatus, type ResolvedThinkingOptions, type Result, type RetryFeedbackHook, type RetryFeedbackInfo, type RetryFeedbackResult, type RetryPolicy, type RuntimeEvalConfigShape, SGLANG_PROFILE, SQLiteStore, type SQLiteStoreOptions, type SchemaCheckData, type SchemaDiagnosticData, type SchemaPromptOption, Session, type SessionOptions, type SessionUpdate, type SpanAttributeValue, type SpanAttributes, type SpanHandle, type SpanManager, type SpawnOptions, SqliteVectorStore, type StagedArtifact, StallTimeoutError, type StateStore, type StreamChunk, type StringDeltaData, type StringStreamEvent, type StringStreamFilter, type TelemetryConfig, ThinkTagScanner, type TimeoutBreakdown, TimeoutError, type Tool, type ToolApprovalData, type ToolArgumentIssue, type ToolCallCancellation, type ToolCallData, type ToolCallEndData, type ToolCallFailure, type ToolCallMessage, type ToolCallOutcome, type ToolCallRejectedData, type ToolCallRejectedEvent, type ToolCallStartData, type ToolCallStartDataV2, type ToolChoice, type ToolConfig, type ToolDeniedData, type ToolEventError, ToolFailure, type ToolFailureConstructor, type ToolFailureOptions, type ToolHooks, type ToolLifecycleEventV2, type ToolModelOutput, ToolModelOutputError, type TrackExecutionMetadata, type TrackExecutionResult, type TrackOutcomeOptions, type TrackedOutcome, type Transcript, type TranscriptionCapabilities, TranscriptionOperationError, type TranscriptionProvider, TranscriptionProviderRegistry, type TranscriptionProviderRequest, type TranscriptionProviderResult, type TranscriptionRequest, UnsupportedEventSchemaVersionError, UnsupportedModelInputError, UnsupportedModelOptionError, UnsupportedTranscriptionInputError, VLLM_PROFILE, 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, XAI_PROFILE, agent, capturedJournalLineSchema, createSpanManager, defineConfig, estimateOpenAICost, eventCostContribution, expandGlob, externalOperation, externalOperationRecordSchema, extractJson, extractThinkTags, findConfig, foldJournal, foldedOperationRecordSchema, getEventSchemaVersion, getExecutionEventSchemaVersion, hasPositiveBillableWork, hasPositiveTokens, importModule, inputText, isAdmissionDeniedError, isCostBearingLeaf, isRetryableStatus, isRootLevel, isUnpricedLeaf, isUsableCost, modelCallRecordSchema, needsTsxLoader, normalizeStoredExecution, openaiReasoningEmit, parsePartialJson, pickDefault, pickExport, priceFromTable, reasoningEffortEmit, reasoningObjectEmit, redactCapturedRequest, redactEvent, redactHistoricalEvent, redactModelCallRecord, registerConditions, resolveApiKey, resolvePerModel, resolveRuntime, resolveThinkingOptions, stringStreamFromEvents, summarizeModelInput, tool, workflow, zodToJsonSchema };
package/dist/index.d.ts CHANGED
@@ -3867,6 +3867,12 @@ type ExecutionState = {
3867
3867
  status: 'waiting' | 'running';
3868
3868
  metadata?: Record<string, unknown>;
3869
3869
  };
3870
+ /**
3871
+ * Computes a session's new history from what's stored, for
3872
+ * {@link StateStore.updateSession}. Receives `null` when no session is stored.
3873
+ * Returns `null` to write nothing. May run more than once.
3874
+ */
3875
+ type SessionUpdate = (current: ChatMessage[] | null) => ChatMessage[] | null;
3870
3876
  /**
3871
3877
  * Pluggable state persistence interface.
3872
3878
  *
@@ -3877,6 +3883,18 @@ interface StateStore {
3877
3883
  saveCheckpoint(executionId: string, name: string, data: unknown): Promise<void>;
3878
3884
  getCheckpoint(executionId: string, name: string): Promise<unknown | null>;
3879
3885
  saveSession(sessionId: string, history: ChatMessage[]): Promise<void>;
3886
+ /**
3887
+ * Replace a session's history based on what's stored at that moment, without
3888
+ * overwriting a write made by another process in between. Sessions use it to
3889
+ * save each turn. The built-in stores implement it; without it, a store gets
3890
+ * `saveSession`, where the last writer wins.
3891
+ *
3892
+ * **Custom store implementors:** the read and the write must be atomic. Use a
3893
+ * transaction or a compare-and-set, and call `update` again if another writer
3894
+ * got in first, so `update` may run more than once. It receives `null` when no
3895
+ * session is stored. When it returns `null`, write nothing.
3896
+ */
3897
+ updateSession?(sessionId: string, update: SessionUpdate): Promise<void>;
3880
3898
  getSession(sessionId: string): Promise<ChatMessage[]>;
3881
3899
  deleteSession(sessionId: string): Promise<void>;
3882
3900
  saveSessionMeta(sessionId: string, key: string, value: unknown): Promise<void>;
@@ -5630,22 +5648,6 @@ type SessionOptions = {
5630
5648
  /** Whether to persist session history to the state store. Default: true. */
5631
5649
  persist?: boolean;
5632
5650
  };
5633
- /**
5634
- * A stateful conversation session.
5635
- * Persists message history across multiple interactions.
5636
- *
5637
- * **Concurrency contract:** `send`, `stream`, `end`, and `fork` are
5638
- * serialized per session id within one runtime instance. Two
5639
- * `runtime.session('x')` handles share the same lock (it lives on
5640
- * `AxlRuntime`, not the `Session` instance). `history()` and
5641
- * `handoffs()` bypass the lock and return the last persisted snapshot.
5642
- *
5643
- * **⚠️ Cross-process locking is NOT provided.** Multiple Node workers
5644
- * behind a load balancer hitting the same Redis-backed `sessionId`
5645
- * will still race. Pin sessions to workers (sticky routing) or use
5646
- * distinct ids per request. See `docs/api-reference.md` →
5647
- * Sessions → Concurrency.
5648
- */
5649
5651
  declare class Session {
5650
5652
  private sessionId;
5651
5653
  private runtime;
@@ -5672,6 +5674,8 @@ declare class Session {
5672
5674
  * push has no agent context and so leaves `agent` undefined — see the
5673
5675
  * `ChatMessage.agent` field doc. */
5674
5676
  private commitHistory;
5677
+ /** The turn is already saved, so a listener that throws can't be allowed to fail it. */
5678
+ private notify;
5675
5679
  stream(workflowName: string, input: unknown, options?: {
5676
5680
  signal?: AbortSignal;
5677
5681
  events?: EventStreamOptions;
@@ -9778,6 +9782,7 @@ declare class MemoryStore implements StateStore {
9778
9782
  saveCheckpoint(executionId: string, name: string, data: unknown): Promise<void>;
9779
9783
  getCheckpoint(executionId: string, name: string): Promise<unknown | null>;
9780
9784
  saveSession(sessionId: string, history: ChatMessage[]): Promise<void>;
9785
+ updateSession(sessionId: string, update: SessionUpdate): Promise<void>;
9781
9786
  getSession(sessionId: string): Promise<ChatMessage[]>;
9782
9787
  deleteSession(sessionId: string): Promise<void>;
9783
9788
  saveSessionMeta(sessionId: string, key: string, value: unknown): Promise<void>;
@@ -9946,6 +9951,7 @@ declare class SQLiteStore implements StateStore {
9946
9951
  saveCheckpoint(executionId: string, name: string, data: unknown): Promise<void>;
9947
9952
  getCheckpoint(executionId: string, name: string): Promise<unknown | null>;
9948
9953
  saveSession(sessionId: string, history: ChatMessage[]): Promise<void>;
9954
+ updateSession(sessionId: string, update: SessionUpdate): Promise<void>;
9949
9955
  getSession(sessionId: string): Promise<ChatMessage[]>;
9950
9956
  deleteSession(sessionId: string): Promise<void>;
9951
9957
  saveSessionMeta(sessionId: string, key: string, value: unknown): Promise<void>;
@@ -10064,6 +10070,34 @@ interface RedisStoreOptions {
10064
10070
  * `console.error` and otherwise ignored.
10065
10071
  */
10066
10072
  onConnectionEvent?: (event: RedisConnectionEvent) => void;
10073
+ /**
10074
+ * Reconnect when Redis stops answering, in milliseconds. Off by default.
10075
+ *
10076
+ * The store sends a `PING` about every third of this time. If one goes
10077
+ * unanswered for this long, it drops the connection and reconnects: calls in
10078
+ * flight reject, and calls made until it reconnects reject with
10079
+ * `REDIS_UNAVAILABLE`. `create()` also rejects if Redis hasn't finished
10080
+ * connecting within this time.
10081
+ *
10082
+ * It's a limit on the whole connection, not on one command, because replies
10083
+ * come back in order. Set it above your slowest expected command, or a large
10084
+ * save or busy server looks like a stall. A call that rejects this way may
10085
+ * still have been applied by Redis.
10086
+ */
10087
+ responseTimeoutMs?: number;
10088
+ /**
10089
+ * Set to `false` so that `create()` returns right away and the store connects
10090
+ * in the background, retrying until Redis is available. Calls reject with
10091
+ * `REDIS_UNAVAILABLE` until then. Defaults to `true`, where `create()` rejects
10092
+ * if Redis is unavailable, which surfaces bad configuration at startup.
10093
+ *
10094
+ * Requires {@link responseTimeoutMs}, so that a server that accepts the
10095
+ * connection but never answers can't leave it connecting forever. Nothing
10096
+ * rejects if the configuration is wrong: failed attempts go to
10097
+ * {@link onConnectionEvent}, and `isConnected` stays `false`. The startup
10098
+ * backfill runs after the first connection instead of during `create()`.
10099
+ */
10100
+ waitForConnection?: boolean;
10067
10101
  /**
10068
10102
  * Skip the lazy backfill of legacy execution / eval-history entries into
10069
10103
  * the sorted-set indexes during `RedisStore.create()`. Default `false`
@@ -10170,6 +10204,12 @@ declare class RedisStore implements StateStore {
10170
10204
  private connection;
10171
10205
  private keyPrefix;
10172
10206
  private ttls;
10207
+ /** Set when `close()` starts, while the connection is still open. */
10208
+ private closing;
10209
+ /** Where the next save's check of listed sessions picks up. */
10210
+ private sessionSweepCursor;
10211
+ /** Overlapping saves would all check the same page, so only one checks at a time. */
10212
+ private sessionSweepRunning;
10173
10213
  private constructor();
10174
10214
  /**
10175
10215
  * Whether the store can send commands right now, for a health check or for
@@ -10196,6 +10236,8 @@ declare class RedisStore implements StateStore {
10196
10236
  * instance needs no constructor state.
10197
10237
  */
10198
10238
  private prunesInFlight?;
10239
+ /** Stops the `responseTimeoutMs` health checks; unset when the option is off. */
10240
+ private stopResponseWatch?;
10199
10241
  /**
10200
10242
  * Supports `listExecutions(limit, { cursor })`. A getter rather than a
10201
10243
  * field so it lives on the prototype.
@@ -10231,6 +10273,12 @@ declare class RedisStore implements StateStore {
10231
10273
  * ```
10232
10274
  */
10233
10275
  static create(options?: string | RedisStoreOptions): Promise<RedisStore>;
10276
+ /**
10277
+ * Run the startup backfill when a connection becomes ready, until it succeeds.
10278
+ * Nothing is waiting on it, and listings work without it, so a failure is
10279
+ * reported and the next connection tries again.
10280
+ */
10281
+ private backfillOnceConnected;
10234
10282
  /**
10235
10283
  * Backfill the execution-history sorted-set from the legacy ID set.
10236
10284
  * Idempotent — runs only if the ZSET is missing entries the SET has.
@@ -10244,6 +10292,10 @@ declare class RedisStore implements StateStore {
10244
10292
  * Shared implementation for both backfill paths. Reads SET members,
10245
10293
  * batch-MGETs their data blobs in chunks, and ZADDs each into the new
10246
10294
  * sorted-set inside a single MULTI per chunk.
10295
+ *
10296
+ * Ids with no data blob are removed from the id set. Left there, the set stays
10297
+ * larger than the sorted set, so every startup repeats this walk and listing
10298
+ * stays on its slow path.
10247
10299
  */
10248
10300
  private backfillHistoryIndex;
10249
10301
  private checkpointKey;
@@ -10274,6 +10326,7 @@ declare class RedisStore implements StateStore {
10274
10326
  saveCheckpoint(executionId: string, name: string, data: unknown): Promise<void>;
10275
10327
  getCheckpoint(executionId: string, name: string): Promise<unknown | null>;
10276
10328
  saveSession(sessionId: string, history: ChatMessage[]): Promise<void>;
10329
+ updateSession(sessionId: string, update: SessionUpdate): Promise<void>;
10277
10330
  getSession(sessionId: string): Promise<ChatMessage[]>;
10278
10331
  deleteSession(sessionId: string): Promise<void>;
10279
10332
  saveSessionMeta(sessionId: string, key: string, value: unknown): Promise<void>;
@@ -10386,6 +10439,7 @@ declare class RedisStore implements StateStore {
10386
10439
  * covers a Redis user whose ACL denies `EVAL`.
10387
10440
  */
10388
10441
  private pruneHistoryAfterSave;
10442
+ private warnPruneFailed;
10389
10443
  private pruneHistory;
10390
10444
  /**
10391
10445
  * Run {@link PRUNE_HISTORY_INDEX_SCRIPT} over `ids`, at most PRUNE_BATCH
@@ -10429,6 +10483,16 @@ declare class RedisStore implements StateStore {
10429
10483
  */
10430
10484
  private readRetentionBatch;
10431
10485
  listSessions(): Promise<string[]>;
10486
+ /**
10487
+ * Check a few listed sessions after a save, so ids of expired sessions go
10488
+ * away for apps that never list. Sessions without a TTL don't expire, so
10489
+ * there's nothing to do. The save has already succeeded, so failing here
10490
+ * can't fail it.
10491
+ */
10492
+ private sweepSessionIds;
10493
+ /** Returns the ids removed. Without permission to run the script, removes none and warns. */
10494
+ private pruneSessionIds;
10495
+ private warnSessionPruneFailed;
10432
10496
  appendStreamingEvents(executionId: string, events: AxlEvent[]): Promise<void>;
10433
10497
  finalizeStreamingEvents(executionId: string): Promise<void>;
10434
10498
  listStreamingExecutions(): Promise<string[]>;
@@ -10442,10 +10506,13 @@ declare class RedisStore implements StateStore {
10442
10506
  * better-sqlite3's `close()` are both no-ops the second time; node-redis
10443
10507
  * instead rejects with "The client is closed", so absorb that here.
10444
10508
  *
10445
- * Bounded, so a shutdown can't hang on Redis. `QUIT` lets queued commands
10446
- * finish on a healthy connection, but node-redis never settles it if the
10447
- * socket closes first, and a stalled server may never answer it. While
10448
- * disconnected it couldn't be sent at all.
10509
+ * Bounded, so a shutdown can't hang on Redis. Replies arrive in order, so a
10510
+ * reply to this PING means every earlier command has finished.
10511
+ *
10512
+ * Not `quit()`: it marks the client closed before the server answers, and
10513
+ * `destroy()` then throws without touching the socket, so a stalled server's
10514
+ * socket could never be closed. There's no other public way to close it. A
10515
+ * closed socket is all Redis needs to clean up, so nothing is lost.
10449
10516
  */
10450
10517
  close(): Promise<void>;
10451
10518
  deleteCheckpoints(executionId: string): Promise<void>;
@@ -10518,4 +10585,4 @@ declare class NoopSpanManager implements SpanManager {
10518
10585
  */
10519
10586
  declare function createSpanManager(config?: TelemetryConfig): Promise<SpanManager>;
10520
10587
 
10521
- export { AXL_EVENT_TYPES, AXL_EVENT_TYPES_V2, AXL_TOOL_LIFECYCLE_TYPES_V2, AZURE_PROFILE, type Accounting, type AccountingCompleteness, type AccountingReason, type AccountingUsage, AdmissionController, AdmissionDeniedError, type Agent, type AgentCallEndData, type AgentCallInfo, type AgentCallParams, type AgentCallStartData, type AgentConfig, AnthropicProvider, type AnyWorkflow, type ApiKeySource, type ArtifactManifest, type ArtifactOwner, type ArtifactStatus, type ArtifactWriteResult, type AskOptions, type AskScoped, type AuthHeader, type AwaitHumanData, type AwaitHumanOptions, type AwaitHumanResolvedData, type AxlConfig, AxlError, type AxlEvent, type AxlEventBase, AxlEventBus, type AxlEventOf, type AxlEventType, type AxlEventV2, type AxlEventV2Of, AxlRuntime, AxlStream, BEDROCK_PROFILE, BUILTIN_PROFILES, BudgetExceededError, type BudgetOptions, type BudgetResult, CONFIG_CANDIDATES, COST_BEARING_LEAF_TYPES, type CallTiming, type CapabilityFlags, type CaptureCorrelation, type CapturedCorrection, type CapturedError, type CapturedExternalRequestRecord, type CapturedJsonValue, type CapturedMessage, type CapturedModelRequestRecord, type CapturedOperationRef, type CapturedPhase, type CapturedRequest, type CapturedRequestRecord, type CapturedResponse, type ChatMessage, type ChatOptions, type CheckpointEventData, type CoalescedPartialObject, type CostProvenance, type CreateContextOptions, DEEPSEEK_PROFILE, DEFAULT_MAX_QUEUE_BYTES, DEFAULT_MAX_RECORD_BYTES, DEFAULT_MAX_RUN_BYTES, type DecisionCleanupFailedEvent, type DelegateData, type DelegateOptions, type DiagnosticArtifactStore, type DiagnosticArtifactsConfig, type DiagnosticsConfig, type DispatchAdmission, type Effort, type EffortResolution, type EmbedResult, type EmbedUsage, type Embedder, type EvalExecuteWorkflow, type EvalHistoryEntry, type EvalProgressEventShape, type EventStreamOptions, EventStreamOverflowError, type ExecuteOptions, type ExecutionCursor, type ExecutionInfo, type ExecutionInfoV1, type ExecutionInfoV2, type ExecutionState, type ExternalOperationDescriptor, type ExternalOperationRecord, type ExternalOperationReport, FileDiagnosticArtifactStore, type FinishReason, type FoldedOperationRecord, GROQ_PROFILE, GeminiProvider, GeminiTranscriptionProvider, type GuardrailBlockHandler, type GuardrailData, GuardrailError, type GuardrailResult, type GuardrailsConfig, type HandoffDescriptor, type HandoffRecord, type HandoffReturnData, type HandoffStartData, type HistoricalAxlEvent, type HistoricalExecutionInfo, type HistoryRetentionCursor, type HistoryRetentionKind, type HistoryRetentionOptions, type HistoryRetentionResult, type HistoryTtls, type HumanDecision, InMemoryVectorStore, type InputAudioPart, type InputContentPart, type InputGuardrail, type InputImagePart, type InputMediaSource, type InputModalitySupport, type InputTextPart, InvalidModelInputError, InvalidTranscriptionInputError, LLAMACPP_PROFILE, LMSTUDIO_PROFILE, type LegacyAxlEventV1, type LegacyExecutionInfoV1, MAX_INLINE_MODEL_INPUT_BYTES, MAX_INLINE_TRANSCRIPTION_BYTES, MISTRAL_PROFILE, type MapOptions, MaxTurnsError, McpManager, type McpServer, type McpServerConfig, type McpToolDefinition, type McpToolResult, type MemoryConfig, type MemoryEventData, MemoryManager, MemoryStore, type MemoryStoreOptions, type ModelCallRecord, type ModelInput, type ModelInputDescriptor, type ModelTimingRollup, NoConsensus, NoopSpanManager, OLLAMA_PROFILE, OPENAI_PRICING, OPENAI_PROFILE, OPENROUTER_PROFILE, type ObservationStatus, type OpenAICompatibleOptions, OpenAICompatibleProvider, OpenAIEmbedder, OpenAIProvider, OpenAIResponsesProvider, OpenAITranscriptionProvider, OpenRouterTranscriptionProvider, type OpenedArtifact, type OperationKind, type OperationPurpose, type OutputGuardrail, type OutputValidator, type PendingDecision, type PerModel, type PricingSource, type PricingTable, type ProfileInputModalities, type Provider, type ProviderAdapter, type ProviderDiagnosticData, ProviderError, type ProviderInputValidationRequest, type ProviderInputValidationResult, type ProviderProfile, ProviderRegistry, type ProviderResponse, QuorumNotMet, REDACTED, REDACTION_RULES, type RaceOptions, type RateLimitConfig, RateLimiter, type ReasoningCapture, type ReasoningContextReset, type ReasoningEmit, type ReasoningProfile, type ReasoningRoundTrip, type RecallOptions, type RecallResult, type RecordedAudioSource, type RedisConnectionEvent, RedisStore, type RedisStoreOptions, type RememberOptions, type RememberResult, RequestCaptureChannel, type RequestCaptureOptions, type RequestCaptureSink, type RequestCaptureStatus, type ResolvedThinkingOptions, type Result, type RetryFeedbackHook, type RetryFeedbackInfo, type RetryFeedbackResult, type RetryPolicy, type RuntimeEvalConfigShape, SGLANG_PROFILE, SQLiteStore, type SQLiteStoreOptions, type SchemaCheckData, type SchemaDiagnosticData, type SchemaPromptOption, Session, type SessionOptions, type SpanAttributeValue, type SpanAttributes, type SpanHandle, type SpanManager, type SpawnOptions, SqliteVectorStore, type StagedArtifact, StallTimeoutError, type StateStore, type StreamChunk, type StringDeltaData, type StringStreamEvent, type StringStreamFilter, type TelemetryConfig, ThinkTagScanner, type TimeoutBreakdown, TimeoutError, type Tool, type ToolApprovalData, type ToolArgumentIssue, type ToolCallCancellation, type ToolCallData, type ToolCallEndData, type ToolCallFailure, type ToolCallMessage, type ToolCallOutcome, type ToolCallRejectedData, type ToolCallRejectedEvent, type ToolCallStartData, type ToolCallStartDataV2, type ToolChoice, type ToolConfig, type ToolDeniedData, type ToolEventError, ToolFailure, type ToolFailureConstructor, type ToolFailureOptions, type ToolHooks, type ToolLifecycleEventV2, type ToolModelOutput, ToolModelOutputError, type TrackExecutionMetadata, type TrackExecutionResult, type TrackOutcomeOptions, type TrackedOutcome, type Transcript, type TranscriptionCapabilities, TranscriptionOperationError, type TranscriptionProvider, TranscriptionProviderRegistry, type TranscriptionProviderRequest, type TranscriptionProviderResult, type TranscriptionRequest, UnsupportedEventSchemaVersionError, UnsupportedModelInputError, UnsupportedModelOptionError, UnsupportedTranscriptionInputError, VLLM_PROFILE, 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, XAI_PROFILE, agent, capturedJournalLineSchema, createSpanManager, defineConfig, estimateOpenAICost, eventCostContribution, expandGlob, externalOperation, externalOperationRecordSchema, extractJson, extractThinkTags, findConfig, foldJournal, foldedOperationRecordSchema, getEventSchemaVersion, getExecutionEventSchemaVersion, hasPositiveBillableWork, hasPositiveTokens, importModule, inputText, isAdmissionDeniedError, isCostBearingLeaf, isRetryableStatus, isRootLevel, isUnpricedLeaf, isUsableCost, modelCallRecordSchema, needsTsxLoader, normalizeStoredExecution, openaiReasoningEmit, parsePartialJson, pickDefault, pickExport, priceFromTable, reasoningEffortEmit, reasoningObjectEmit, redactCapturedRequest, redactEvent, redactHistoricalEvent, redactModelCallRecord, registerConditions, resolveApiKey, resolvePerModel, resolveRuntime, resolveThinkingOptions, stringStreamFromEvents, summarizeModelInput, tool, workflow, zodToJsonSchema };
10588
+ export { AXL_EVENT_TYPES, AXL_EVENT_TYPES_V2, AXL_TOOL_LIFECYCLE_TYPES_V2, AZURE_PROFILE, type Accounting, type AccountingCompleteness, type AccountingReason, type AccountingUsage, AdmissionController, AdmissionDeniedError, type Agent, type AgentCallEndData, type AgentCallInfo, type AgentCallParams, type AgentCallStartData, type AgentConfig, AnthropicProvider, type AnyWorkflow, type ApiKeySource, type ArtifactManifest, type ArtifactOwner, type ArtifactStatus, type ArtifactWriteResult, type AskOptions, type AskScoped, type AuthHeader, type AwaitHumanData, type AwaitHumanOptions, type AwaitHumanResolvedData, type AxlConfig, AxlError, type AxlEvent, type AxlEventBase, AxlEventBus, type AxlEventOf, type AxlEventType, type AxlEventV2, type AxlEventV2Of, AxlRuntime, AxlStream, BEDROCK_PROFILE, BUILTIN_PROFILES, BudgetExceededError, type BudgetOptions, type BudgetResult, CONFIG_CANDIDATES, COST_BEARING_LEAF_TYPES, type CallTiming, type CapabilityFlags, type CaptureCorrelation, type CapturedCorrection, type CapturedError, type CapturedExternalRequestRecord, type CapturedJsonValue, type CapturedMessage, type CapturedModelRequestRecord, type CapturedOperationRef, type CapturedPhase, type CapturedRequest, type CapturedRequestRecord, type CapturedResponse, type ChatMessage, type ChatOptions, type CheckpointEventData, type CoalescedPartialObject, type CostProvenance, type CreateContextOptions, DEEPSEEK_PROFILE, DEFAULT_MAX_QUEUE_BYTES, DEFAULT_MAX_RECORD_BYTES, DEFAULT_MAX_RUN_BYTES, type DecisionCleanupFailedEvent, type DelegateData, type DelegateOptions, type DiagnosticArtifactStore, type DiagnosticArtifactsConfig, type DiagnosticsConfig, type DispatchAdmission, type Effort, type EffortResolution, type EmbedResult, type EmbedUsage, type Embedder, type EvalExecuteWorkflow, type EvalHistoryEntry, type EvalProgressEventShape, type EventStreamOptions, EventStreamOverflowError, type ExecuteOptions, type ExecutionCursor, type ExecutionInfo, type ExecutionInfoV1, type ExecutionInfoV2, type ExecutionState, type ExternalOperationDescriptor, type ExternalOperationRecord, type ExternalOperationReport, FileDiagnosticArtifactStore, type FinishReason, type FoldedOperationRecord, GROQ_PROFILE, GeminiProvider, GeminiTranscriptionProvider, type GuardrailBlockHandler, type GuardrailData, GuardrailError, type GuardrailResult, type GuardrailsConfig, type HandoffDescriptor, type HandoffRecord, type HandoffReturnData, type HandoffStartData, type HistoricalAxlEvent, type HistoricalExecutionInfo, type HistoryRetentionCursor, type HistoryRetentionKind, type HistoryRetentionOptions, type HistoryRetentionResult, type HistoryTtls, type HumanDecision, InMemoryVectorStore, type InputAudioPart, type InputContentPart, type InputGuardrail, type InputImagePart, type InputMediaSource, type InputModalitySupport, type InputTextPart, InvalidModelInputError, InvalidTranscriptionInputError, LLAMACPP_PROFILE, LMSTUDIO_PROFILE, type LegacyAxlEventV1, type LegacyExecutionInfoV1, MAX_INLINE_MODEL_INPUT_BYTES, MAX_INLINE_TRANSCRIPTION_BYTES, MISTRAL_PROFILE, type MapOptions, MaxTurnsError, McpManager, type McpServer, type McpServerConfig, type McpToolDefinition, type McpToolResult, type MemoryConfig, type MemoryEventData, MemoryManager, MemoryStore, type MemoryStoreOptions, type ModelCallRecord, type ModelInput, type ModelInputDescriptor, type ModelTimingRollup, NoConsensus, NoopSpanManager, OLLAMA_PROFILE, OPENAI_PRICING, OPENAI_PROFILE, OPENROUTER_PROFILE, type ObservationStatus, type OpenAICompatibleOptions, OpenAICompatibleProvider, OpenAIEmbedder, OpenAIProvider, OpenAIResponsesProvider, OpenAITranscriptionProvider, OpenRouterTranscriptionProvider, type OpenedArtifact, type OperationKind, type OperationPurpose, type OutputGuardrail, type OutputValidator, type PendingDecision, type PerModel, type PricingSource, type PricingTable, type ProfileInputModalities, type Provider, type ProviderAdapter, type ProviderDiagnosticData, ProviderError, type ProviderInputValidationRequest, type ProviderInputValidationResult, type ProviderProfile, ProviderRegistry, type ProviderResponse, QuorumNotMet, REDACTED, REDACTION_RULES, type RaceOptions, type RateLimitConfig, RateLimiter, type ReasoningCapture, type ReasoningContextReset, type ReasoningEmit, type ReasoningProfile, type ReasoningRoundTrip, type RecallOptions, type RecallResult, type RecordedAudioSource, type RedisConnectionEvent, RedisStore, type RedisStoreOptions, type RememberOptions, type RememberResult, RequestCaptureChannel, type RequestCaptureOptions, type RequestCaptureSink, type RequestCaptureStatus, type ResolvedThinkingOptions, type Result, type RetryFeedbackHook, type RetryFeedbackInfo, type RetryFeedbackResult, type RetryPolicy, type RuntimeEvalConfigShape, SGLANG_PROFILE, SQLiteStore, type SQLiteStoreOptions, type SchemaCheckData, type SchemaDiagnosticData, type SchemaPromptOption, Session, type SessionOptions, type SessionUpdate, type SpanAttributeValue, type SpanAttributes, type SpanHandle, type SpanManager, type SpawnOptions, SqliteVectorStore, type StagedArtifact, StallTimeoutError, type StateStore, type StreamChunk, type StringDeltaData, type StringStreamEvent, type StringStreamFilter, type TelemetryConfig, ThinkTagScanner, type TimeoutBreakdown, TimeoutError, type Tool, type ToolApprovalData, type ToolArgumentIssue, type ToolCallCancellation, type ToolCallData, type ToolCallEndData, type ToolCallFailure, type ToolCallMessage, type ToolCallOutcome, type ToolCallRejectedData, type ToolCallRejectedEvent, type ToolCallStartData, type ToolCallStartDataV2, type ToolChoice, type ToolConfig, type ToolDeniedData, type ToolEventError, ToolFailure, type ToolFailureConstructor, type ToolFailureOptions, type ToolHooks, type ToolLifecycleEventV2, type ToolModelOutput, ToolModelOutputError, type TrackExecutionMetadata, type TrackExecutionResult, type TrackOutcomeOptions, type TrackedOutcome, type Transcript, type TranscriptionCapabilities, TranscriptionOperationError, type TranscriptionProvider, TranscriptionProviderRegistry, type TranscriptionProviderRequest, type TranscriptionProviderResult, type TranscriptionRequest, UnsupportedEventSchemaVersionError, UnsupportedModelInputError, UnsupportedModelOptionError, UnsupportedTranscriptionInputError, VLLM_PROFILE, 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, XAI_PROFILE, agent, capturedJournalLineSchema, createSpanManager, defineConfig, estimateOpenAICost, eventCostContribution, expandGlob, externalOperation, externalOperationRecordSchema, extractJson, extractThinkTags, findConfig, foldJournal, foldedOperationRecordSchema, getEventSchemaVersion, getExecutionEventSchemaVersion, hasPositiveBillableWork, hasPositiveTokens, importModule, inputText, isAdmissionDeniedError, isCostBearingLeaf, isRetryableStatus, isRootLevel, isUnpricedLeaf, isUsableCost, modelCallRecordSchema, needsTsxLoader, normalizeStoredExecution, openaiReasoningEmit, parsePartialJson, pickDefault, pickExport, priceFromTable, reasoningEffortEmit, reasoningObjectEmit, redactCapturedRequest, redactEvent, redactHistoricalEvent, redactModelCallRecord, registerConditions, resolveApiKey, resolvePerModel, resolveRuntime, resolveThinkingOptions, stringStreamFromEvents, summarizeModelInput, tool, workflow, zodToJsonSchema };