@zhivex-ai/core 0.17.0 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/agent-handoff.d.ts +2 -0
  2. package/dist/agent-handoff.d.ts.map +1 -1
  3. package/dist/agent-handoff.js +8 -3
  4. package/dist/agent-handoff.js.map +1 -1
  5. package/dist/agent-state.d.ts +6 -0
  6. package/dist/agent-state.d.ts.map +1 -0
  7. package/dist/agent-state.js +374 -0
  8. package/dist/agent-state.js.map +1 -0
  9. package/dist/agent-store.d.ts +5 -3
  10. package/dist/agent-store.d.ts.map +1 -1
  11. package/dist/agent-store.js +1027 -145
  12. package/dist/agent-store.js.map +1 -1
  13. package/dist/agent.d.ts +1 -0
  14. package/dist/agent.d.ts.map +1 -1
  15. package/dist/agent.js +698 -229
  16. package/dist/agent.js.map +1 -1
  17. package/dist/api-stability.d.ts.map +1 -1
  18. package/dist/api-stability.js +10 -0
  19. package/dist/api-stability.js.map +1 -1
  20. package/dist/artifact.d.ts.map +1 -1
  21. package/dist/artifact.js +2 -1
  22. package/dist/artifact.js.map +1 -1
  23. package/dist/audio.d.ts +2 -1
  24. package/dist/audio.d.ts.map +1 -1
  25. package/dist/audio.js +25 -0
  26. package/dist/audio.js.map +1 -1
  27. package/dist/bounded-broadcast.d.ts +45 -0
  28. package/dist/bounded-broadcast.d.ts.map +1 -0
  29. package/dist/bounded-broadcast.js +163 -0
  30. package/dist/bounded-broadcast.js.map +1 -0
  31. package/dist/catalog.d.ts.map +1 -1
  32. package/dist/catalog.js +119 -14
  33. package/dist/catalog.js.map +1 -1
  34. package/dist/generate-object.d.ts.map +1 -1
  35. package/dist/generate-object.js +26 -88
  36. package/dist/generate-object.js.map +1 -1
  37. package/dist/generate-text.d.ts +9 -1
  38. package/dist/generate-text.d.ts.map +1 -1
  39. package/dist/generate-text.js +118 -55
  40. package/dist/generate-text.js.map +1 -1
  41. package/dist/google.d.ts +12 -1
  42. package/dist/google.d.ts.map +1 -1
  43. package/dist/google.js +27 -0
  44. package/dist/google.js.map +1 -1
  45. package/dist/index.d.ts +6 -4
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +4 -3
  48. package/dist/index.js.map +1 -1
  49. package/dist/live-agent.d.ts.map +1 -1
  50. package/dist/live-agent.js +31 -54
  51. package/dist/live-agent.js.map +1 -1
  52. package/dist/messages.d.ts +4 -1
  53. package/dist/messages.d.ts.map +1 -1
  54. package/dist/messages.js.map +1 -1
  55. package/dist/realtime.d.ts.map +1 -1
  56. package/dist/realtime.js +39 -55
  57. package/dist/realtime.js.map +1 -1
  58. package/dist/response.js +1 -1
  59. package/dist/response.js.map +1 -1
  60. package/dist/runner.d.ts.map +1 -1
  61. package/dist/runner.js +2 -1
  62. package/dist/runner.js.map +1 -1
  63. package/dist/safety-policy.d.ts +41 -1
  64. package/dist/safety-policy.d.ts.map +1 -1
  65. package/dist/safety-policy.js +114 -8
  66. package/dist/safety-policy.js.map +1 -1
  67. package/dist/secure-id.d.ts +2 -0
  68. package/dist/secure-id.d.ts.map +1 -0
  69. package/dist/secure-id.js +3 -0
  70. package/dist/secure-id.js.map +1 -0
  71. package/dist/types.d.ts +289 -8
  72. package/dist/types.d.ts.map +1 -1
  73. package/dist/ui.d.ts.map +1 -1
  74. package/dist/ui.js +2 -1
  75. package/dist/ui.js.map +1 -1
  76. package/dist/workflow.d.ts.map +1 -1
  77. package/dist/workflow.js +2 -1
  78. package/dist/workflow.js.map +1 -1
  79. package/package.json +1 -1
  80. package/dist/durable-store-migration.d.ts +0 -26
  81. package/dist/durable-store-migration.d.ts.map +0 -1
  82. package/dist/durable-store-migration.js +0 -158
  83. package/dist/durable-store-migration.js.map +0 -1
package/dist/types.d.ts CHANGED
@@ -182,6 +182,15 @@ export interface StreamProviderDataEvent {
182
182
  provider: string;
183
183
  data: JsonValue;
184
184
  }
185
+ export interface StreamImageGenerationEvent {
186
+ type: "image-generation";
187
+ provider: string;
188
+ image: GeneratedMedia;
189
+ partial: boolean;
190
+ id?: string;
191
+ index?: number;
192
+ providerMetadata?: Record<string, JsonValue>;
193
+ }
185
194
  export interface StreamFinishEvent {
186
195
  type: "finish";
187
196
  finishReason?: FinishReason;
@@ -192,7 +201,7 @@ export interface StreamErrorEvent {
192
201
  type: "error";
193
202
  error: Error;
194
203
  }
195
- export type StreamEvent = StreamTextDeltaEvent | StreamToolCallEvent | StreamToolResultEvent | StreamProviderDataEvent | StreamFinishEvent | StreamErrorEvent;
204
+ export type StreamEvent = StreamTextDeltaEvent | StreamToolCallEvent | StreamToolResultEvent | StreamProviderDataEvent | StreamImageGenerationEvent | StreamFinishEvent | StreamErrorEvent;
196
205
  export interface AgentRunStartEvent {
197
206
  type: "agent-run-start";
198
207
  currentStep: number;
@@ -239,6 +248,7 @@ export interface GenerateResult {
239
248
  messages?: ModelMessage[];
240
249
  text?: string;
241
250
  audio?: GeneratedMedia[];
251
+ images?: GeneratedMedia[];
242
252
  finishReason?: FinishReason;
243
253
  providerFinishReason?: string;
244
254
  usage?: TokenUsage;
@@ -332,12 +342,58 @@ export interface BatchJob {
332
342
  rawResponse?: unknown;
333
343
  providerMetadata?: Record<string, unknown>;
334
344
  }
345
+ export type InteractionStatus = "in_progress" | "requires_action" | "completed" | "failed" | "cancelled" | "incomplete" | "budget_exceeded" | (string & {});
346
+ /**
347
+ * A raw content block returned by an interaction step.
348
+ *
349
+ * Provider field names are intentionally preserved so steps can be sent back
350
+ * unchanged when callers manage stateless interaction history.
351
+ */
352
+ export interface InteractionContent {
353
+ type: string;
354
+ text?: string;
355
+ data?: string;
356
+ uri?: string;
357
+ mime_type?: string;
358
+ [key: string]: unknown;
359
+ }
360
+ /** A chronological step returned by the Interactions API. */
361
+ export interface InteractionStep {
362
+ type: string;
363
+ id?: string;
364
+ name?: string;
365
+ arguments?: JsonValue;
366
+ call_id?: string;
367
+ content?: InteractionContent[];
368
+ result?: InteractionContent[] | JsonValue;
369
+ signature?: string;
370
+ summary?: InteractionContent[];
371
+ status?: string;
372
+ [key: string]: unknown;
373
+ }
335
374
  export interface Interaction {
336
375
  id: string;
337
376
  name?: string;
338
377
  model?: string;
339
- status?: string;
378
+ agent?: string;
379
+ status?: InteractionStatus;
380
+ object?: string;
381
+ createTime?: string;
382
+ updateTime?: string;
383
+ previousInteractionId?: string;
384
+ environmentId?: string;
385
+ steps?: InteractionStep[];
386
+ /**
387
+ * Backward-compatible output blocks. Current responses are normalized from
388
+ * the latest model output step when the provider no longer returns outputs.
389
+ */
340
390
  outputs?: unknown[];
391
+ outputText?: string;
392
+ outputImage?: InteractionContent;
393
+ outputAudio?: InteractionContent;
394
+ outputVideo?: InteractionContent;
395
+ usage?: TokenUsage;
396
+ error?: unknown;
341
397
  rawResponse?: unknown;
342
398
  providerMetadata?: Record<string, unknown>;
343
399
  }
@@ -428,6 +484,7 @@ export interface SpeechModel<TProviderOptions extends ProviderOptions = Provider
428
484
  readonly modelId: string;
429
485
  readonly capabilities: ModelCapabilities;
430
486
  generateSpeech(input: SpeechModelInput<TProviderOptions>): Promise<SpeechResult>;
487
+ streamSpeech?(input: SpeechModelInput<TProviderOptions>): Promise<AsyncIterable<SpeechResult>>;
431
488
  }
432
489
  export interface ImageGenerationModel<TProviderOptions extends ProviderOptions = ProviderOptions> {
433
490
  readonly provider: string;
@@ -611,6 +668,12 @@ export interface InteractionCreateInput<TProviderOptions extends ProviderOptions
611
668
  input: unknown;
612
669
  previousInteractionId?: string;
613
670
  tools?: ToolCollection;
671
+ systemInstruction?: string;
672
+ responseFormat?: JsonValue | JsonValue[];
673
+ generationConfig?: JsonValue;
674
+ agentConfig?: JsonValue;
675
+ environment?: string | JsonValue;
676
+ labels?: Record<string, string>;
614
677
  background?: boolean;
615
678
  store?: boolean;
616
679
  providerOptions?: TProviderOptions;
@@ -619,9 +682,28 @@ export interface InteractionGetInput<TProviderOptions extends ProviderOptions =
619
682
  id: string;
620
683
  providerOptions?: TProviderOptions;
621
684
  }
685
+ export interface InteractionCancelInput<TProviderOptions extends ProviderOptions = ProviderOptions> extends RetryOptions {
686
+ id: string;
687
+ providerOptions?: TProviderOptions;
688
+ }
689
+ export interface InteractionDeleteInput<TProviderOptions extends ProviderOptions = ProviderOptions> extends RetryOptions {
690
+ id: string;
691
+ providerOptions?: TProviderOptions;
692
+ }
693
+ export interface InteractionResumeInput<TProviderOptions extends ProviderOptions = ProviderOptions> extends RetryOptions {
694
+ id: string;
695
+ lastEventId?: string;
696
+ providerOptions?: TProviderOptions;
697
+ }
622
698
  export interface InteractionsClient<TProviderOptions extends ProviderOptions = ProviderOptions> {
623
699
  create(input: InteractionCreateInput<TProviderOptions>): Promise<Interaction>;
624
700
  get(input: InteractionGetInput<TProviderOptions>): Promise<Interaction>;
701
+ cancel(input: InteractionCancelInput<TProviderOptions>): Promise<Interaction>;
702
+ delete(input: InteractionDeleteInput<TProviderOptions>): Promise<{
703
+ id: string;
704
+ rawResponse?: unknown;
705
+ }>;
706
+ resume(input: InteractionResumeInput<TProviderOptions>): Promise<AsyncIterable<StreamEvent>>;
625
707
  stream(input: InteractionCreateInput<TProviderOptions>): Promise<AsyncIterable<StreamEvent>>;
626
708
  }
627
709
  export interface PredictionModel<TProviderOptions extends ProviderOptions = ProviderOptions> {
@@ -730,6 +812,11 @@ export interface RealtimeToolResultEvent {
730
812
  type: "realtime-tool-result";
731
813
  toolResult: ToolExecutionResult;
732
814
  }
815
+ export interface RealtimeProviderDataEvent {
816
+ type: "realtime-provider-data";
817
+ provider: string;
818
+ data: JsonValue;
819
+ }
733
820
  export interface RealtimeResponseCompleteEvent {
734
821
  type: "realtime-response-complete";
735
822
  reason?: string;
@@ -757,7 +844,7 @@ export interface RealtimeErrorEvent {
757
844
  message?: string;
758
845
  providerMetadata?: Record<string, JsonValue>;
759
846
  }
760
- export type RealtimeEvent = RealtimeSessionStartedEvent | RealtimeTextDeltaEvent | RealtimeAudioOutputEvent | RealtimeTranscriptEvent | RealtimeToolCallEvent | RealtimeToolResultEvent | RealtimeResponseCompleteEvent | RealtimeSessionResumptionEvent | RealtimeGoAwayEvent | RealtimeSessionEndedEvent | RealtimeErrorEvent;
847
+ export type RealtimeEvent = RealtimeSessionStartedEvent | RealtimeTextDeltaEvent | RealtimeAudioOutputEvent | RealtimeTranscriptEvent | RealtimeToolCallEvent | RealtimeToolResultEvent | RealtimeProviderDataEvent | RealtimeResponseCompleteEvent | RealtimeSessionResumptionEvent | RealtimeGoAwayEvent | RealtimeSessionEndedEvent | RealtimeErrorEvent;
761
848
  export interface RealtimeSession {
762
849
  readonly provider: string;
763
850
  readonly modelId: string;
@@ -822,6 +909,10 @@ export interface ToolExecutionContext {
822
909
  toolCall: ToolCall;
823
910
  step: number;
824
911
  model: LanguageModel | RealtimeModel;
912
+ /** Durable run that owns this execution, when invoked by the agent runtime. */
913
+ runId?: string;
914
+ /** Forward this key to side-effecting APIs to make retries externally idempotent. */
915
+ idempotencyKey?: string;
825
916
  request?: ModelGenerateInput;
826
917
  realtimeConfig?: RealtimeSessionConfig;
827
918
  }
@@ -874,6 +965,32 @@ export type GenerateTextOptions<TModel extends LanguageModel = LanguageModel> =
874
965
  toolExecution?: ToolExecutionOptions;
875
966
  toolApprovalPolicy?: ToolApprovalPolicy;
876
967
  onToolApprovalDecision?: ToolApprovalObserver;
968
+ /** Called immediately before each model request. Throw to stop the loop. */
969
+ onBeforeModelStep?: (context: {
970
+ request: ModelGenerateInput;
971
+ step: number;
972
+ }) => void | Promise<void>;
973
+ /** Called before a batch of approved local tool calls is executed. */
974
+ onBeforeToolExecution?: (context: {
975
+ request: ModelGenerateInput;
976
+ step: number;
977
+ toolCalls: ToolCall[];
978
+ }) => void | Promise<void>;
979
+ /** Durable runtimes use this hook to checkpoint a model response before tools run. */
980
+ onModelStep?: (context: {
981
+ request: ModelGenerateInput;
982
+ response: GenerateResult;
983
+ step: number;
984
+ toolCalls: ToolCall[];
985
+ }) => void | Promise<void>;
986
+ /** Durable runtimes use this hook to checkpoint tool results before the next model request. */
987
+ onToolExecutionComplete?: (context: {
988
+ request: ModelGenerateInput;
989
+ step: number;
990
+ toolResults: ToolExecutionResult[];
991
+ }) => void | Promise<void>;
992
+ /** Existing completed steps preceding this invocation. */
993
+ stepOffset?: number;
877
994
  maxSteps?: number;
878
995
  temperature?: number;
879
996
  maxTokens?: number;
@@ -903,8 +1020,32 @@ export type AgentStepStatus = "running" | "completed" | "suspended" | "waiting_a
903
1020
  export interface AgentRunPolicy {
904
1021
  timeoutMs?: number;
905
1022
  onTimeout?: "fail" | "cancel-requested";
1023
+ /** Disable only for stores that intentionally provide CAS without worker leases. */
1024
+ leaseMode?: "required" | "disabled";
1025
+ /** Duration of the exclusive worker lease. Defaults to 30 seconds. */
1026
+ leaseTtlMs?: number;
1027
+ /** Lease renewal interval. Defaults to one third of leaseTtlMs. */
1028
+ heartbeatMs?: number;
1029
+ /** How often an active worker checks durable cancellation. Defaults to 1 second. */
1030
+ cancellationPollMs?: number;
1031
+ /** Maximum retained events for agent stream replay. Defaults to 4096. */
1032
+ maxStreamEvents?: number;
1033
+ /** Maximum serialized durable state size. Defaults to 4 MiB. */
1034
+ maxStateBytes?: number;
1035
+ /** Optional preflight limits enforced before model and tool operations. */
1036
+ budget?: {
1037
+ maxSteps?: number;
1038
+ maxToolCalls?: number;
1039
+ maxToolErrors?: number;
1040
+ maxInputTokens?: number;
1041
+ maxOutputTokens?: number;
1042
+ maxTotalTokens?: number;
1043
+ includeChildRuns?: boolean;
1044
+ };
906
1045
  }
907
1046
  export interface AgentStepRequest {
1047
+ /** Index in the full conversation where this incremental snapshot begins. */
1048
+ messageOffset?: number;
908
1049
  messages: ModelMessage[];
909
1050
  toolChoice?: ToolChoice;
910
1051
  toolExecution?: ToolExecutionOptions;
@@ -955,6 +1096,13 @@ export interface AgentChildRun {
955
1096
  }
956
1097
  export interface AgentRunState {
957
1098
  schemaVersion: 1;
1099
+ /**
1100
+ * Monotonic durable-store revision. Legacy states without a revision are
1101
+ * normalized to revision 0 before their next write.
1102
+ */
1103
+ revision?: number;
1104
+ /** Tenant/user isolation boundary propagated by the runtime. */
1105
+ scope?: AgentStoreScope;
958
1106
  runId: string;
959
1107
  idempotencyKey?: string;
960
1108
  agentId?: string;
@@ -983,17 +1131,115 @@ export interface AgentRunState {
983
1131
  message: string;
984
1132
  };
985
1133
  }
1134
+ /**
1135
+ * Logical isolation boundary for durable agent data. Applications should use
1136
+ * one scope per tenant and, when memory must be private, per end user.
1137
+ */
1138
+ export interface AgentStoreScope {
1139
+ tenantId: string;
1140
+ userId?: string;
1141
+ namespace?: string;
1142
+ }
1143
+ export interface AgentRunStoreScopeOptions {
1144
+ /** Fixed scope applied to every key handled by this store instance. */
1145
+ scope?: AgentStoreScope;
1146
+ }
1147
+ export interface AgentRunLease {
1148
+ runId: string;
1149
+ ownerId: string;
1150
+ expiresAt: number;
1151
+ }
1152
+ export interface AgentRunLeaseOptions {
1153
+ ownerId: string;
1154
+ ttlMs: number;
1155
+ /** Injectable clock used by deterministic workers and tests. */
1156
+ now?: number;
1157
+ }
1158
+ export type AgentToolCallJournalStatus = "pending" | "running" | "completed" | "failed";
1159
+ export interface AgentToolCallJournalEntry {
1160
+ runId: string;
1161
+ scope?: AgentStoreScope;
1162
+ toolCallId: string;
1163
+ toolName: string;
1164
+ status: AgentToolCallJournalStatus;
1165
+ /** Stable key that must also be forwarded to side-effecting integrations. */
1166
+ idempotencyKey: string;
1167
+ revision: number;
1168
+ input?: JsonValue;
1169
+ output?: JsonValue;
1170
+ error?: {
1171
+ message: string;
1172
+ };
1173
+ startedAt?: number;
1174
+ completedAt?: number;
1175
+ updatedAt: number;
1176
+ }
1177
+ export interface AgentToolCallJournalSaveOptions {
1178
+ expectedRevision?: number;
1179
+ }
1180
+ export interface AgentToolExecutionClaimResult {
1181
+ claimed: boolean;
1182
+ entry: AgentToolCallJournalEntry;
1183
+ }
1184
+ export interface AgentRunListOptions {
1185
+ agentId?: string;
1186
+ parentRunId?: string;
1187
+ statuses?: AgentStatus[];
1188
+ updatedAfter?: number;
1189
+ updatedBefore?: number;
1190
+ limit?: number;
1191
+ /** Opaque cursor returned by the previous page. */
1192
+ cursor?: string;
1193
+ }
1194
+ export interface AgentRunPage {
1195
+ items: AgentRunState[];
1196
+ nextCursor?: string;
1197
+ }
1198
+ export interface AgentRunRetentionOptions {
1199
+ before: number;
1200
+ statuses?: AgentStatus[];
1201
+ limit?: number;
1202
+ }
1203
+ export interface AgentRunSaveOptions {
1204
+ expectedRevision?: number;
1205
+ }
1206
+ export interface AgentRunClaimResult {
1207
+ claimed: boolean;
1208
+ state: AgentRunState;
1209
+ }
986
1210
  export interface AgentRunStore {
987
- load(runId: string): Promise<AgentRunState | undefined> | AgentRunState | undefined;
988
- findByIdempotencyKey?(idempotencyKey: string): Promise<AgentRunState | undefined> | AgentRunState | undefined;
989
- findByParentRunId?(parentRunId: string): Promise<AgentRunState[]> | AgentRunState[];
990
- save(state: AgentRunState): Promise<void> | void;
991
- delete?(runId: string): Promise<void> | void;
1211
+ load(runId: string, scope?: AgentStoreScope): Promise<AgentRunState | undefined> | AgentRunState | undefined;
1212
+ findByIdempotencyKey?(idempotencyKey: string, scope?: AgentStoreScope): Promise<AgentRunState | undefined> | AgentRunState | undefined;
1213
+ findByParentRunId?(parentRunId: string, scope?: AgentStoreScope): Promise<AgentRunState[]> | AgentRunState[];
1214
+ /**
1215
+ * Atomically reserves an idempotency key for a fresh run. Returns the
1216
+ * caller's state when the reservation succeeds, or the already-reserved
1217
+ * state when another caller owns the key.
1218
+ */
1219
+ claimIdempotencyKey?(state: AgentRunState & {
1220
+ idempotencyKey: string;
1221
+ }): Promise<AgentRunClaimResult> | AgentRunClaimResult;
1222
+ save(state: AgentRunState, options?: AgentRunSaveOptions): Promise<void> | void;
1223
+ delete?(runId: string, scope?: AgentStoreScope): Promise<void> | void;
1224
+ list?(options?: AgentRunListOptions, scope?: AgentStoreScope): Promise<AgentRunPage> | AgentRunPage;
1225
+ deleteExpired?(options: AgentRunRetentionOptions, scope?: AgentStoreScope): Promise<number> | number;
1226
+ acquireLease?(runId: string, options: AgentRunLeaseOptions, scope?: AgentStoreScope): Promise<AgentRunLease | undefined> | AgentRunLease | undefined;
1227
+ renewLease?(runId: string, options: AgentRunLeaseOptions, scope?: AgentStoreScope): Promise<AgentRunLease | undefined> | AgentRunLease | undefined;
1228
+ releaseLease?(runId: string, ownerId: string, scope?: AgentStoreScope): Promise<boolean> | boolean;
1229
+ loadToolCall?(runId: string, toolCallId: string, scope?: AgentStoreScope): Promise<AgentToolCallJournalEntry | undefined> | AgentToolCallJournalEntry | undefined;
1230
+ loadToolExecution?(runId: string, toolCallId: string, scope?: AgentStoreScope): Promise<AgentToolCallJournalEntry | undefined> | AgentToolCallJournalEntry | undefined;
1231
+ listToolCalls?(runId: string, scope?: AgentStoreScope): Promise<AgentToolCallJournalEntry[]> | AgentToolCallJournalEntry[];
1232
+ saveToolCall?(entry: AgentToolCallJournalEntry, options?: AgentToolCallJournalSaveOptions): Promise<AgentToolCallJournalEntry> | AgentToolCallJournalEntry;
1233
+ claimToolExecution?(entry: AgentToolCallJournalEntry): Promise<AgentToolExecutionClaimResult> | AgentToolExecutionClaimResult;
1234
+ completeToolExecution?(entry: AgentToolCallJournalEntry, options: AgentToolCallJournalSaveOptions & {
1235
+ expectedRevision: number;
1236
+ }): Promise<AgentToolCallJournalEntry> | AgentToolCallJournalEntry;
992
1237
  }
993
1238
  export interface AgentRunCancellationOptions {
994
1239
  reason?: string;
995
1240
  cascade?: boolean;
996
1241
  mode?: "request" | "final";
1242
+ scope?: AgentStoreScope;
997
1243
  }
998
1244
  export interface AgentRunTreeCancellationResult {
999
1245
  parent?: AgentRunState;
@@ -1002,6 +1248,7 @@ export interface AgentRunTreeCancellationResult {
1002
1248
  export interface AgentMemoryContext {
1003
1249
  runId: string;
1004
1250
  agentId?: string;
1251
+ scope?: AgentStoreScope;
1005
1252
  state?: AgentRunState;
1006
1253
  metadata?: Record<string, JsonValue>;
1007
1254
  }
@@ -1024,12 +1271,14 @@ export interface SqliteDatabaseLike {
1024
1271
  export interface SqliteAgentRunStoreOptions {
1025
1272
  db: SqliteDatabaseLike;
1026
1273
  tableName?: string;
1274
+ scope?: AgentStoreScope;
1027
1275
  }
1028
1276
  export interface SqliteAgentMemoryStoreOptions {
1029
1277
  db: SqliteDatabaseLike;
1030
1278
  tableName?: string;
1031
1279
  key?: (context: AgentMemoryContext) => string;
1032
1280
  selectMessages?: (state: AgentRunState) => ModelMessage[];
1281
+ scope?: AgentStoreScope;
1033
1282
  }
1034
1283
  export interface PostgresQueryResultLike<TResult extends Record<string, unknown> = Record<string, unknown>> {
1035
1284
  rows: TResult[];
@@ -1040,16 +1289,19 @@ export interface PostgresClientLike {
1040
1289
  export interface PostgresAgentRunStoreOptions {
1041
1290
  client: PostgresClientLike;
1042
1291
  tableName?: string;
1292
+ scope?: AgentStoreScope;
1043
1293
  }
1044
1294
  export interface PostgresAgentMemoryStoreOptions {
1045
1295
  client: PostgresClientLike;
1046
1296
  tableName?: string;
1047
1297
  key?: (context: AgentMemoryContext) => string;
1048
1298
  selectMessages?: (state: AgentRunState) => ModelMessage[];
1299
+ scope?: AgentStoreScope;
1049
1300
  }
1050
1301
  export interface AgentHandoff {
1051
1302
  id: string;
1052
1303
  fromRunId: string;
1304
+ scope?: AgentStoreScope;
1053
1305
  fromAgentId?: string;
1054
1306
  toAgentId?: string;
1055
1307
  summary: string;
@@ -1111,6 +1363,7 @@ export interface AgentGuardrailTrigger {
1111
1363
  export interface AgentInputGuardrailRequest {
1112
1364
  runId: string;
1113
1365
  agentId?: string;
1366
+ state: AgentRunState;
1114
1367
  messages: ModelMessage[];
1115
1368
  metadata?: Record<string, JsonValue>;
1116
1369
  }
@@ -1165,6 +1418,20 @@ export interface AgentTelemetryRunFinishEvent {
1165
1418
  }
1166
1419
  export type AgentTelemetryEvent = AgentTelemetryRunStartEvent | AgentTelemetryStepStartEvent | AgentTelemetryStepFinishEvent | AgentTelemetryApprovalRequestEvent | AgentTelemetryApprovalResolvedEvent | AgentTelemetryToolApprovalEvent | AgentTelemetryMemoryLoadedEvent | AgentTelemetryGuardrailTriggeredEvent | AgentTelemetryStateSavedEvent | AgentTelemetryHandoffEvent | AgentTelemetrySubAgentStartEvent | AgentTelemetrySubAgentFinishEvent | AgentTelemetryRunFinishEvent;
1167
1420
  export type AgentTelemetryObserver = (event: AgentTelemetryEvent) => void | Promise<void>;
1421
+ export type AgentHookFailureMode = "ignore" | "fail";
1422
+ export interface AgentOperationalError {
1423
+ source: "telemetry" | "memory";
1424
+ operation: string;
1425
+ runId?: string;
1426
+ error: Error;
1427
+ }
1428
+ export interface AgentHookFailurePolicy {
1429
+ /** Telemetry is best-effort by default and cannot fail a run. */
1430
+ telemetry?: AgentHookFailureMode;
1431
+ /** Memory hooks are best-effort by default and cannot fail durable execution. */
1432
+ memory?: AgentHookFailureMode;
1433
+ onError?: (event: AgentOperationalError) => void | Promise<void>;
1434
+ }
1168
1435
  export interface AgentDefinition<TModel extends LanguageModel = LanguageModel> {
1169
1436
  id?: string;
1170
1437
  model: TModel;
@@ -1185,6 +1452,7 @@ export interface AgentDefinition<TModel extends LanguageModel = LanguageModel> {
1185
1452
  store?: AgentRunStore;
1186
1453
  memory?: AgentMemoryStore;
1187
1454
  onTelemetryEvent?: AgentTelemetryObserver;
1455
+ hookFailurePolicy?: AgentHookFailurePolicy;
1188
1456
  }
1189
1457
  export interface LiveAgentDefinition<TModel extends RealtimeModel = RealtimeModel> {
1190
1458
  id?: string;
@@ -1219,6 +1487,8 @@ export interface AgentApprovalResponse {
1219
1487
  }
1220
1488
  export type AgentRunInput<TModel extends LanguageModel = LanguageModel> = RetryOptions & GenerateInputSource & {
1221
1489
  runId?: string;
1490
+ /** Required isolation boundary for shared durable stores and memory. */
1491
+ scope?: AgentStoreScope;
1222
1492
  idempotencyKey?: string;
1223
1493
  state?: AgentRunState;
1224
1494
  approvals?: AgentApprovalResponse[];
@@ -1268,6 +1538,7 @@ export type SubAgentToolOutput = Record<string, JsonValue>;
1268
1538
  export interface CreateSubAgentToolOptions<TModel extends LanguageModel = LanguageModel> extends AgentSubAgentDefinition<TModel> {
1269
1539
  parentRunId?: string;
1270
1540
  parentAgentId?: string;
1541
+ scope?: AgentStoreScope;
1271
1542
  toolName?: string;
1272
1543
  onStart?: (request: {
1273
1544
  toolName: string;
@@ -1356,6 +1627,7 @@ export type GenerateSpeechOptions<TModel extends SpeechModel = SpeechModel> = Re
1356
1627
  voice?: string;
1357
1628
  providerOptions?: TModel extends SpeechModel<infer TProviderOptions> ? TProviderOptions : ProviderOptions;
1358
1629
  };
1630
+ export type StreamSpeechOptions<TModel extends SpeechModel = SpeechModel> = GenerateSpeechOptions<TModel>;
1359
1631
  export interface SpeechOutput extends SpeechResult {
1360
1632
  input: string;
1361
1633
  }
@@ -1468,6 +1740,15 @@ export type CreateInteractionOptions<TProvider extends ProviderAdapter = Provide
1468
1740
  export type GetInteractionOptions<TProvider extends ProviderAdapter = ProviderAdapter> = InteractionGetInput & {
1469
1741
  provider: TProvider;
1470
1742
  };
1743
+ export type CancelInteractionOptions<TProvider extends ProviderAdapter = ProviderAdapter> = InteractionCancelInput & {
1744
+ provider: TProvider;
1745
+ };
1746
+ export type DeleteInteractionOptions<TProvider extends ProviderAdapter = ProviderAdapter> = InteractionDeleteInput & {
1747
+ provider: TProvider;
1748
+ };
1749
+ export type ResumeInteractionOptions<TProvider extends ProviderAdapter = ProviderAdapter> = InteractionResumeInput & {
1750
+ provider: TProvider;
1751
+ };
1471
1752
  export type StreamInteractionOptions<TProvider extends ProviderAdapter = ProviderAdapter> = InteractionCreateInput & {
1472
1753
  provider: TProvider;
1473
1754
  };