@cadenya/cadenya 1.5.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/types.ts CHANGED
@@ -272,7 +272,21 @@ export interface AccountSpec {
272
272
  }
273
273
 
274
274
  /**
275
- * Attach a single tool, tool set, or sub-agent to a variation. Exactly one
275
+ * Activate an inactive pool.
276
+ */
277
+ export interface ActivateAgentPoolRequest {
278
+ /**
279
+ * Workspace ID.
280
+ */
281
+ workspaceId?: string;
282
+ /**
283
+ * AgentPool ID. Accepts the canonical `apool_…` form or the `external_id:<value>` form.
284
+ */
285
+ id?: string;
286
+ }
287
+
288
+ /**
289
+ * Attach a single tool, tool set, sub-agent, or agent pool to a variation. Exactly one
276
290
  * of the target fields must be set; the assignment kind is inferred from the
277
291
  * populated field. Adding an existing target returns AlreadyExists.
278
292
  * All targets must be in the variation's workspace and eligible for assignment.
@@ -280,7 +294,8 @@ export interface AccountSpec {
280
294
  export type AddAgentVariationAssignmentRequest =
281
295
  | AddAgentVariationAssignmentRequest_ToolId
282
296
  | AddAgentVariationAssignmentRequest_ToolSetId
283
- | AddAgentVariationAssignmentRequest_SubAgentId;
297
+ | AddAgentVariationAssignmentRequest_SubAgentId
298
+ | AddAgentVariationAssignmentRequest_AgentPoolId;
284
299
 
285
300
  /**
286
301
  * Attach a memory layer to a variation. Use UpdateAgentVariationMemoryLayer or
@@ -375,6 +390,103 @@ export interface AgentInfo {
375
390
  createdBy?: Profile;
376
391
  }
377
392
 
393
+ /**
394
+ * Output only. Pools are created INACTIVE. Use :activate, :deactivate,
395
+ * :archive, and :unarchive to transition states. Unarchive returns INACTIVE.
396
+ */
397
+ export type AgentPoolState = 'AGENT_POOL_STATE_UNSPECIFIED' | 'AGENT_POOL_STATE_ACTIVE' | 'AGENT_POOL_STATE_INACTIVE' | 'AGENT_POOL_STATE_ARCHIVED';
398
+
399
+ /**
400
+ * A workspace-scoped group of agents. When assigned to a variation, the pool
401
+ * exposes one callable target that routes a request to a member agent.
402
+ * Pool membership references agents; variation assignments reference the pool.
403
+ */
404
+ export interface AgentPool {
405
+ metadata: ResourceMetadata;
406
+ spec: AgentPoolSpec;
407
+ info?: AgentPoolInfo;
408
+ /**
409
+ * Output only. Pools are created INACTIVE. Use :activate, :deactivate,
410
+ * :archive, and :unarchive to transition states. Unarchive returns INACTIVE.
411
+ */
412
+ state: AgentPoolState;
413
+ }
414
+
415
+ /**
416
+ * A member of a pool, identified by its agent ID. This is distinct from a
417
+ * VariationAssignment, which attaches the entire pool to a variation.
418
+ */
419
+ export interface AgentPoolAssignment {
420
+ /**
421
+ * Canonical ID of an agent in the pool's workspace.
422
+ */
423
+ agentId: string;
424
+ }
425
+
426
+ /**
427
+ * AgentPoolInfo represents the information of an agent pool.
428
+ */
429
+ export interface AgentPoolInfo {
430
+ /**
431
+ * Number of member agents in spec.assignments.
432
+ */
433
+ assignedAgents: number;
434
+ createdBy: Profile;
435
+ }
436
+
437
+ /**
438
+ * AgentPoolSpec describes the pool's purpose, membership, input schema, and routing instructions.
439
+ */
440
+ export interface AgentPoolSpec {
441
+ /**
442
+ * Describes when a calling agent should use this pool.
443
+ */
444
+ description: string;
445
+ /**
446
+ * JSON Schema defining the input arguments for this pool's callable tool.
447
+ * When the pool is assigned to an agent variation, this schema tells the LLM
448
+ * what arguments to supply. The supplied arguments provide the context used
449
+ * to route the request to an agent in the pool.
450
+ */
451
+ state?: Record<string, unknown>;
452
+ /**
453
+ * Complete set of member agents, all in the pool's workspace. At least one
454
+ * member is required. Order has no meaning; duplicate agent IDs are invalid.
455
+ */
456
+ assignments: Array<AgentPoolAssignment>;
457
+ /**
458
+ * Instructions for routing requests to an agent in the pool.
459
+ * If empty, defaults to "Which agent is best suited to handle this request?".
460
+ */
461
+ instructions?: string;
462
+ }
463
+
464
+ /**
465
+ * Partial input for UpdateAgentPool. The server applies update_mask, then
466
+ * validates the resulting AgentPoolSpec before persisting any changes.
467
+ */
468
+ export interface AgentPoolUpdateSpec {
469
+ /**
470
+ * Omit to leave unchanged, unless the mask selects this field or all of spec.
471
+ */
472
+ description?: string;
473
+ /**
474
+ * JSON Schema for the pool's callable input arguments. Update through
475
+ * spec.state in the update mask.
476
+ */
477
+ state?: Record<string, unknown>;
478
+ /**
479
+ * Replacement membership. A selected empty list is invalid because a pool
480
+ * must retain at least one member. Unselected fields remain unchanged.
481
+ */
482
+ assignments?: Array<AgentPoolAssignment>;
483
+ /**
484
+ * Routing instructions to update through spec.instructions in the update
485
+ * mask. Selecting this field with an empty value restores the default question.
486
+ */
487
+ instructions?: string;
488
+ }
489
+
378
490
  /**
379
491
  * The current lifecycle state of the schedule. Output only. Schedules are
380
492
  * created STATE_ACTIVE; use the :pause, :resume, and :archive actions to
@@ -600,23 +712,27 @@ export interface AgentVariationInfo {
600
712
  /**
601
713
  * Number of distinct callable tools available through this variation's
602
714
  * assignments after normalization. Expands tool sets and deduplicates tools
603
- * also assigned directly. Each sub-agent contributes one callable tool;
604
- * its own assignments are not expanded. Counts the full normalized set,
605
- * regardless of which tools progressive discovery has loaded.
715
+ * also assigned directly. Each sub-agent or pool contributes one callable
716
+ * tool; sub-agent assignments and pool members are not expanded. Counts the
717
+ * full normalized set, regardless of which tools progressive discovery has loaded.
606
718
  */
607
719
  effectiveToolCount: number;
608
720
  /**
609
721
  * Current display metadata for targets explicitly referenced by
610
722
  * spec.assignments and spec.memory_layer_assignments, keyed by canonical
611
- * resource ID. Includes tools, tool sets, sub-agents, and memory layers in
612
- * one map; each value's id equals its key. Does not expand tools within
613
- * assigned tool sets or assignments within sub-agents.
723
+ * resource ID. Includes tools, tool sets, sub-agents, agent pools,
724
+ * and memory layers in one map; each value's id equals its key. Does not expand
725
+ * tools within assigned tool sets, assignments within sub-agents, or pool members.
614
726
  * Populated whenever info is returned; empty when there are no assignments.
615
727
  * Missing or inaccessible targets are omitted, and names may be absent.
616
728
  * Clients use spec for assignment type/order and fall back to the ID when
617
729
  * display metadata is unavailable. This map never accepts assignment writes.
618
730
  */
619
731
  assignmentMetadata: Record<string, BareMetadata>;
732
+ /**
733
+ * Number of agent pools assigned to this variation.
734
+ */
735
+ agentPoolCount: number;
620
736
  }
621
737
 
622
738
  /**
@@ -637,7 +753,7 @@ export interface AgentVariationSpec {
637
753
  * ProgressiveDiscovery is an optional config that, when set, will load a Cadenya provided tool that
638
754
  * can search for tools in the assigned tool sets or tools.
639
755
  *
640
- * Note: Sub-agents are always loaded as a tool regardless of this value.
756
+ * Note: Sub-agents and agent pools are always loaded as tools regardless of this value.
641
757
  */
642
758
  progressiveDiscovery?: AgentVariationSpec_ProgressiveDiscovery;
643
759
  /**
@@ -667,7 +783,7 @@ export interface AgentVariationSpec {
667
783
  */
668
784
  firstUserMessageTemplate?: string;
669
785
  /**
670
- * Complete set of assigned tools, tool sets, and sub-agents. Order has no
786
+ * Complete set of assigned tools, tool sets, sub-agents, and agent pools. Order has no
671
787
  * meaning. Duplicate (target kind, canonical target ID) pairs are collapsed.
672
788
  * On create, omitted or empty means no assignments. On update, selecting
673
789
  * spec.assignments in update_mask replaces the entire set; empty clears it.
@@ -819,6 +935,20 @@ export interface ApproveToolCallRequest {
819
935
  toolCallId?: string;
820
936
  }
821
937
 
938
+ /**
939
+ * Archive an active or inactive pool, preserving membership and assignments.
940
+ */
941
+ export interface ArchiveAgentPoolRequest {
942
+ /**
943
+ * Workspace ID.
944
+ */
945
+ workspaceId?: string;
946
+ /**
947
+ * AgentPool ID. Accepts the canonical `apool_…` form or the `external_id:<value>` form.
948
+ */
949
+ id?: string;
950
+ }
951
+
822
952
  /**
823
953
  * Archive agent request
824
954
  */
@@ -924,7 +1054,8 @@ export interface BedrockConfig {
924
1054
  export type CallableTool =
925
1055
  | CallableTool_Tool
926
1056
  | CallableTool_Agent
927
- | CallableTool_CadenyaProvidedTool;
1057
+ | CallableTool_CadenyaProvidedTool
1058
+ | CallableTool_AgentPool;
928
1059
 
929
1060
  export interface CancelObjectiveRequest {
930
1061
  workspaceId?: string;
@@ -1002,7 +1133,7 @@ export interface Capability_TopP {
1002
1133
  }
1003
1134
 
1004
1135
  /**
1005
- * Compact objective request — triggers compaction on a running objective.
1136
+ * Compact objective request. Compaction is queued for a busy agent loop and starts immediately for a waiting objective.
1006
1137
  */
1007
1138
  export interface CompactObjectiveRequest {
1008
1139
  workspaceId?: string;
@@ -1016,16 +1147,6 @@ export interface CompactObjectiveRequest {
1016
1147
  compactionConfig?: AgentVariationSpec_CompactionConfig;
1017
1148
  }
1018
1149
 
1019
- /**
1020
- * Compact objective response
1021
- */
1022
- export interface CompactObjectiveResponse {
1023
- /**
1024
- * The new context window created by the compaction
1025
- */
1026
- contextWindow?: ObjectiveContextWindowData;
1027
- }
1028
-
1029
1150
  /**
1030
1151
  * SummarizationStrategy configures LLM-powered summarization of older conversation turns.
1031
1152
  */
@@ -1169,15 +1290,27 @@ export interface ContinueObjectiveRequest {
1169
1290
  */
1170
1291
  objectiveId?: string;
1171
1292
  /**
1172
- * The message to continue an objective that has completed (or you are enqueing)
1293
+ * The user message to send to the objective.
1173
1294
  */
1174
1295
  message: string;
1175
1296
  /**
1176
- * When set to true, the message will be enqueued for when the agent loop is available to process it.
1297
+ * When false, the objective must be waiting and the message is sent immediately.
1298
+ * When true, a waiting objective still receives the message immediately; an
1299
+ * objective whose agent loop is busy queues it instead, and the agent picks it
1300
+ * up before its next assistant turn. Queued messages can be listed and removed
1301
+ * until then.
1177
1302
  */
1178
1303
  enqueue?: boolean;
1179
1304
  }
1180
1305
 
1306
+ /**
1307
+ * ContinueObjectiveResponse reports whether the message joined the conversation
1308
+ * immediately or was queued for the agent loop.
1309
+ */
1310
+ export type ContinueObjectiveResponse =
1311
+ | ContinueObjectiveResponse_Event
1312
+ | ContinueObjectiveResponse_QueuedAction;
1313
+
1181
1314
  export interface CreateAIProviderKeyRequest {
1182
1315
  /**
1183
1316
  * The workspace that will own this key.
@@ -1220,6 +1353,18 @@ export interface CreateAccountResourceMetadata {
1220
1353
  labels?: Record<string, string>;
1221
1354
  }
1222
1355
 
1356
+ /**
1357
+ * Create a pool in INACTIVE state. Validate and persist membership atomically.
1358
+ */
1359
+ export interface CreateAgentPoolRequest {
1360
+ /**
1361
+ * Workspace ID.
1362
+ */
1363
+ workspaceId?: string;
1364
+ metadata: CreateResourceMetadata;
1365
+ spec: AgentPoolSpec;
1366
+ }
1367
+
1223
1368
  /**
1224
1369
  * Create agent request
1225
1370
  */
@@ -1270,6 +1415,129 @@ export interface CreateAgentVariationRequest {
1270
1415
  spec: AgentVariationSpec;
1271
1416
  }
1272
1417
 
1418
+ /**
1419
+ * The request body for creating an objective and streaming its events.
1420
+ * Accepts everything Create objective accepts, and additionally requires
1421
+ * `metadata.externalId`, which is the idempotency key for the stream.
1422
+ */
1423
+ export interface CreateAndStreamObjectiveRequest {
1424
+ workspaceId: string;
1425
+ agentId: string;
1426
+ /**
1427
+ * Optional explicit variation selection. Overrides the agent's variation_selection_mode.
1428
+ */
1429
+ variationId?: string;
1430
+ /**
1431
+ * Required here, though Create objective leaves it optional: the external
1432
+ * ID inside it is the idempotency key that makes a retry of this request
1433
+ * resume the objective instead of starting another.
1434
+ */
1435
+ metadata: CreateAndStreamObjectiveRequest_Metadata;
1436
+ /**
1437
+ * Arbitrary data rendered into the selected variation's system_prompt_template
1438
+ * (liquid) to produce the objective's system prompt. If the agent has a
1439
+ * system_prompt_data_schema, this must satisfy it.
1440
+ */
1441
+ systemPromptData?: Record<string, unknown>;
1442
+ /**
1443
+ * Optional explicit first user message for the LLM chat history. When not set,
1444
+ * the selected variation's first_user_message_template is rendered with
1445
+ * first_user_message_data instead. If neither this field nor a
1446
+ * first_user_message_template is present, the request is rejected with InvalidArgument.
1447
+ */
1448
+ firstUserMessage?: string;
1449
+ /**
1450
+ * Secrets that can be used in the headers for tool calls using the secret interpolation format.
1451
+ */
1452
+ secrets?: Array<CreateObjectiveRequest_Secret>;
1453
+ /**
1454
+ * Memory layers/entries layered over the baseline cascade inherited
1455
+ * from the selected variation — element-level rules over inherited
1456
+ * styles, in CSS terms.
1457
+ *
1458
+ * Array order is resolution order: EARLIER elements are more specific
1459
+ * and are consulted first. Entries pinned via memory_entry_id behave
1460
+ * as single-entry layers at their position.
1461
+ *
1462
+ * System-managed layers (e.g., episodic) cannot be referenced here;
1463
+ * they attach themselves automatically based on the episodic key.
1464
+ *
1465
+ * Size cap: the TOTAL effective cascade (this field + the variation's
1466
+ * memory layer assignments) must not exceed 10 entries. A request
1467
+ * that would produce a larger cascade is rejected with
1468
+ * InvalidArgument.
1469
+ */
1470
+ memoryCascade?: Array<MemoryReference>;
1471
+ /**
1472
+ * Arbitrary data rendered into the selected variation's first_user_message_template
1473
+ * (liquid) to produce the first user message. Separate from `system_prompt_data`,
1474
+ * which renders the system prompt template.
1475
+ */
1476
+ firstUserMessageData?: Record<string, unknown>;
1477
+ /**
1478
+ * If the agent variation that is selected has episodic memory enabled, then this key is used to create/update a memory layer
1479
+ * specific to the episodic memory. The layer may have a TTL configured by the variation.
1480
+ */
1481
+ episodicMemory?: ObjectiveEpisodicConfig;
1482
+ /**
1483
+ * Optional tenant assertion — the customer's org/company identifier for the
1484
+ * end user this objective serves. Upserts the tenant record in the
1485
+ * workspace and associates the objective with it.
1486
+ */
1487
+ tenant?: TenantAssertion;
1488
+ /**
1489
+ * Optional subject assertion — the person within the tenant this objective
1490
+ * serves. Requires `tenant`; a subject asserted without a tenant is
1491
+ * rejected with InvalidArgument.
1492
+ */
1493
+ subject?: SubjectAssertion;
1494
+ /**
1495
+ * Parameters forced onto this objective's tool calls. A pinned parameter
1496
+ * is removed from the tool schema the LLM sees, and its value is always
1497
+ * overwritten server-side with the pinned value — the model cannot choose
1498
+ * a different value for it. By default a pinned key applies to every tool
1499
+ * with a top-level parameter of the same name; a tool set's overlays
1500
+ * (ToolSetSpec.overlays) can bind pinned keys to nested paths, differently
1501
+ * named parameters, or a subset of tools.
1502
+ */
1503
+ pinnedParameters?: Record<string, string>;
1504
+ }
1505
+
1506
+ /**
1507
+ * Objective metadata, with an external ID that is required here because
1508
+ * it is the request's idempotency key: repeating a request that carries
1509
+ * an external ID already in use attaches to that objective instead of
1510
+ * starting a second one.
1511
+ */
1512
+ export interface CreateAndStreamObjectiveRequest_Metadata {
1513
+ /**
1514
+ * Key-value pairs for categorization and filtering. Values are 0-63
1515
+ * alphanumeric characters with "-", "_", or "." allowed between; keys
1516
+ * follow the same shape and additionally accept an optional DNS-subdomain
1517
+ * prefix (e.g. "cadenya.com/") of at most 253 characters.
1518
+ * Examples: {"priority": "high", "source": "api", "workflow": "onboarding"}
1519
+ */
1520
+ labels?: Record<string, string>;
1521
+ /**
1522
+ * External ID for the objective (e.g., a workflow ID from an external
1523
+ * system), and this request's idempotency key. Required here, though
1524
+ * Create objective leaves it optional. Reusing a value that already
1525
+ * exists in the workspace attaches to that objective and streams it
1526
+ * rather than creating another; Create objective instead rejects a
1527
+ * duplicate with AlreadyExists.
1528
+ */
1529
+ externalId: string;
1530
+ }
1531
+
1532
+ /**
1533
+ * One message on the create-and-stream feed. The first message is always
1534
+ * the `objective` variant, sent as soon as the objective exists; every
1535
+ * message after it is an `event`.
1536
+ */
1537
+ export type CreateAndStreamObjectiveResponse =
1538
+ | CreateAndStreamObjectiveResponse_Objective
1539
+ | CreateAndStreamObjectiveResponse_Event;
1540
+
1273
1541
  export interface CreateMemoryEntryRequest {
1274
1542
  workspaceId?: string;
1275
1543
  /**
@@ -1332,7 +1600,7 @@ export interface CreateObjectiveRequest {
1332
1600
  * (liquid) to produce the objective's system prompt. If the agent has a
1333
1601
  * system_prompt_data_schema, this must satisfy it.
1334
1602
  */
1335
- systemPromptData: Record<string, unknown>;
1603
+ systemPromptData?: Record<string, unknown>;
1336
1604
  /**
1337
1605
  * Optional explicit first user message for the LLM chat history. When not set,
1338
1606
  * the selected variation's first_user_message_template is rendered with
@@ -1580,6 +1848,20 @@ export interface CredentialHeaders {
1580
1848
  headers?: Record<string, string>;
1581
1849
  }
1582
1850
 
1851
+ /**
1852
+ * Deactivate an active pool.
1853
+ */
1854
+ export interface DeactivateAgentPoolRequest {
1855
+ /**
1856
+ * Workspace ID.
1857
+ */
1858
+ workspaceId?: string;
1859
+ /**
1860
+ * AgentPool ID. Accepts the canonical `apool_…` form or the `external_id:<value>` form.
1861
+ */
1862
+ id?: string;
1863
+ }
1864
+
1583
1865
  /**
1584
1866
  * Delete tenant widget sessions response.
1585
1867
  */
@@ -1684,6 +1966,17 @@ export interface GoogleProtobufAny {
1684
1966
  '@type'?: string;
1685
1967
  }
1686
1968
 
1969
+ /**
1970
+ * InterruptObjectiveRequest stops a running objective without cancelling background agents.
1971
+ */
1972
+ export interface InterruptObjectiveRequest {
1973
+ workspaceId?: string;
1974
+ /**
1975
+ * Supports the "external_id:" prefix.
1976
+ */
1977
+ objectiveId?: string;
1978
+ }
1979
+
1687
1980
  export interface ListAIProviderKeysResponse {
1688
1981
  items: Array<AIProviderKey>;
1689
1982
  pagination?: Page;
@@ -1707,6 +2000,14 @@ export interface ListAgentFeedbackResponse {
1707
2000
  pagination?: Page;
1708
2001
  }
1709
2002
 
2003
+ /**
2004
+ * List agent pools response
2005
+ */
2006
+ export interface ListAgentPoolsResponse {
2007
+ items: Array<AgentPool>;
2008
+ pagination?: Page;
2009
+ }
2010
+
1710
2011
  /**
1711
2012
  * List agent schedules response.
1712
2013
  */
@@ -1775,6 +2076,14 @@ export interface ListObjectiveFeedbackResponse {
1775
2076
  pagination?: Page;
1776
2077
  }
1777
2078
 
2079
+ export interface ListObjectiveQueuedActionsResponse {
2080
+ /**
2081
+ * Queued actions in the order they were sent, oldest first.
2082
+ */
2083
+ items: Array<ObjectiveQueuedAction>;
2084
+ pagination?: Page;
2085
+ }
2086
+
1778
2087
  export interface ListObjectiveToolCallsResponse {
1779
2088
  items: Array<ObjectiveToolCall>;
1780
2089
  pagination?: Page;
@@ -2178,6 +2487,10 @@ export interface ModelBasePricing {
2178
2487
  * Default output token rate, in cents per million tokens.
2179
2488
  */
2180
2489
  outputPricePerMillionTokens: string;
2490
+ /**
2491
+ * Default cached input token rate, in cents per million tokens.
2492
+ */
2493
+ cachedInputPricePerMillionTokens: string;
2181
2494
  }
2182
2495
 
2183
2496
  /**
@@ -2216,6 +2529,10 @@ export interface ModelPricingOverride {
2216
2529
  * Override for output token price, in cents per million tokens.
2217
2530
  */
2218
2531
  outputPricePerMillionTokens?: string;
2532
+ /**
2533
+ * Override for cached input token price, in cents per million tokens.
2534
+ */
2535
+ cachedInputPricePerMillionTokens?: string;
2219
2536
  }
2220
2537
 
2221
2538
  export interface ModelSpec {
@@ -2248,6 +2565,14 @@ export interface ModelSpec {
2248
2565
  * price on reads, see input_price_per_million_tokens.
2249
2566
  */
2250
2567
  outputPricePerMillionTokens: string;
2568
+ /**
2569
+ * Cost per million input tokens served from the provider's prompt cache, in
2570
+ * cents (e.g., 30 = $0.30). Cached tokens are a subset of the input tokens
2571
+ * and are billed at this rate instead of the input rate. Zero means the rate
2572
+ * is not known and cached tokens are costed at the input rate. Effective
2573
+ * price on reads, see input_price_per_million_tokens.
2574
+ */
2575
+ cachedInputPricePerMillionTokens?: string;
2251
2576
  /**
2252
2577
  * The inference knobs this model supports. Catalog data; drives which
2253
2578
  * ModelConfig fields a variation on this model may set. Reasoning support
@@ -2305,7 +2630,7 @@ export interface Notice {
2305
2630
  /**
2306
2631
  * The current lifecycle state of the objective.
2307
2632
  */
2308
- export type ObjectiveState = 'OBJECTIVE_STATE_UNSPECIFIED' | 'OBJECTIVE_STATE_PENDING' | 'OBJECTIVE_STATE_RUNNING' | 'OBJECTIVE_STATE_WAITING' | 'OBJECTIVE_STATE_FAILED' | 'OBJECTIVE_STATE_CANCELLED' | 'OBJECTIVE_STATE_FINALIZED' | 'OBJECTIVE_STATE_TIMED_OUT';
2633
+ export type ObjectiveState = 'OBJECTIVE_STATE_UNSPECIFIED' | 'OBJECTIVE_STATE_PENDING' | 'OBJECTIVE_STATE_RUNNING' | 'OBJECTIVE_STATE_WAITING' | 'OBJECTIVE_STATE_FAILED' | 'OBJECTIVE_STATE_CANCELLED' | 'OBJECTIVE_STATE_FINALIZED' | 'OBJECTIVE_STATE_TIMED_OUT' | 'OBJECTIVE_STATE_INTERRUPTING';
2309
2634
 
2310
2635
  /**
2311
2636
  * Objective is the data for an objective. It contains the snapshotted fields for the selected agent and variation. Secrets are returned
@@ -2543,7 +2868,8 @@ export type ObjectiveEventData =
2543
2868
  | ObjectiveEventData_TimedOut
2544
2869
  | ObjectiveEventData_Reasoning
2545
2870
  | ObjectiveEventData_StateChanged
2546
- | ObjectiveEventData_Heartbeat;
2871
+ | ObjectiveEventData_Heartbeat
2872
+ | ObjectiveEventData_Interrupted;
2547
2873
 
2548
2874
  export interface ObjectiveEventInfo {
2549
2875
  objective?: OperationMetadata;
@@ -2676,16 +3002,58 @@ export interface ObjectiveInfo {
2676
3002
  widget?: BareMetadata;
2677
3003
  }
2678
3004
 
3005
+ /**
3006
+ * ObjectiveInterrupted confirms that foreground execution stopped and the objective is waiting.
3007
+ */
3008
+ export interface ObjectiveInterrupted {
3009
+ message: string;
3010
+ }
3011
+
3012
+ export type ObjectiveQueuedActionState = 'STATE_UNSPECIFIED' | 'STATE_QUEUED' | 'STATE_SENT' | 'STATE_REMOVED' | 'STATE_DISCARDED';
3013
+
3014
+ /**
3015
+ * ObjectiveQueuedAction is work sent to an objective while its agent loop was
3016
+ * busy. The agent picks queued actions up in order at the next boundary where
3017
+ * it can act on them: after its current tool calls settle, before its next
3018
+ * assistant turn. Until then a queued action can be removed and the agent never
3019
+ * learns about it.
3020
+ */
3021
+ export interface ObjectiveQueuedAction {
3022
+ metadata: OperationMetadata;
3023
+ /**
3024
+ * The objective this action was sent to.
3025
+ */
3026
+ objectiveId: string;
3027
+ data: ObjectiveQueuedActionData;
3028
+ state: ObjectiveQueuedActionState;
3029
+ /**
3030
+ * When the agent loop picked the action up. Unset until the action is sent.
3031
+ */
3032
+ sentAt?: string;
3033
+ /**
3034
+ * The conversation event a sent user message became. Unset for other
3035
+ * actions and for user messages that have not been sent.
3036
+ */
3037
+ objectiveEventId?: string;
3038
+ }
3039
+
3040
+ /**
3041
+ * ObjectiveQueuedActionData is the action to perform.
3042
+ */
3043
+ export type ObjectiveQueuedActionData =
3044
+ | ObjectiveQueuedActionData_UserMessage
3045
+ | ObjectiveQueuedActionData_Compaction;
3046
+
2679
3047
  /**
2680
3048
  * The state before this write. OBJECTIVE_STATE_UNSPECIFIED when the
2681
3049
  * objective was just created.
2682
3050
  */
2683
- export type ObjectiveStateChangedFromState = 'OBJECTIVE_STATE_UNSPECIFIED' | 'OBJECTIVE_STATE_PENDING' | 'OBJECTIVE_STATE_RUNNING' | 'OBJECTIVE_STATE_WAITING' | 'OBJECTIVE_STATE_FAILED' | 'OBJECTIVE_STATE_CANCELLED' | 'OBJECTIVE_STATE_FINALIZED' | 'OBJECTIVE_STATE_TIMED_OUT';
3051
+ export type ObjectiveStateChangedFromState = 'OBJECTIVE_STATE_UNSPECIFIED' | 'OBJECTIVE_STATE_PENDING' | 'OBJECTIVE_STATE_RUNNING' | 'OBJECTIVE_STATE_WAITING' | 'OBJECTIVE_STATE_FAILED' | 'OBJECTIVE_STATE_CANCELLED' | 'OBJECTIVE_STATE_FINALIZED' | 'OBJECTIVE_STATE_TIMED_OUT' | 'OBJECTIVE_STATE_INTERRUPTING';
2684
3052
 
2685
3053
  /**
2686
3054
  * The state after this write.
2687
3055
  */
2688
- export type ObjectiveStateChangedToState = 'OBJECTIVE_STATE_UNSPECIFIED' | 'OBJECTIVE_STATE_PENDING' | 'OBJECTIVE_STATE_RUNNING' | 'OBJECTIVE_STATE_WAITING' | 'OBJECTIVE_STATE_FAILED' | 'OBJECTIVE_STATE_CANCELLED' | 'OBJECTIVE_STATE_FINALIZED' | 'OBJECTIVE_STATE_TIMED_OUT';
3056
+ export type ObjectiveStateChangedToState = 'OBJECTIVE_STATE_UNSPECIFIED' | 'OBJECTIVE_STATE_PENDING' | 'OBJECTIVE_STATE_RUNNING' | 'OBJECTIVE_STATE_WAITING' | 'OBJECTIVE_STATE_FAILED' | 'OBJECTIVE_STATE_CANCELLED' | 'OBJECTIVE_STATE_FINALIZED' | 'OBJECTIVE_STATE_TIMED_OUT' | 'OBJECTIVE_STATE_INTERRUPTING';
2689
3057
 
2690
3058
  /**
2691
3059
  * ObjectiveStateChanged is written every time the objective's lifecycle state
@@ -2744,7 +3112,7 @@ export interface ObjectiveTool {
2744
3112
  */
2745
3113
  export type ObjectiveToolCallStatus = 'TOOL_CALL_STATUS_UNSPECIFIED' | 'TOOL_CALL_STATUS_AUTO_APPROVED' | 'TOOL_CALL_STATUS_WAITING_FOR_APPROVAL' | 'TOOL_CALL_STATUS_APPROVED' | 'TOOL_CALL_STATUS_DENIED';
2746
3114
 
2747
- export type ObjectiveToolCallExecutionStatus = 'TOOL_CALL_EXECUTION_STATUS_UNSPECIFIED' | 'TOOL_CALL_EXECUTION_STATUS_PENDING' | 'TOOL_CALL_EXECUTION_STATUS_RUNNING' | 'TOOL_CALL_EXECUTION_STATUS_COMPLETED' | 'TOOL_CALL_EXECUTION_STATUS_ERRORED' | 'TOOL_CALL_EXECUTION_STATUS_WAITING_FOR_CONTENT';
3115
+ export type ObjectiveToolCallExecutionStatus = 'TOOL_CALL_EXECUTION_STATUS_UNSPECIFIED' | 'TOOL_CALL_EXECUTION_STATUS_PENDING' | 'TOOL_CALL_EXECUTION_STATUS_RUNNING' | 'TOOL_CALL_EXECUTION_STATUS_COMPLETED' | 'TOOL_CALL_EXECUTION_STATUS_ERRORED' | 'TOOL_CALL_EXECUTION_STATUS_WAITING_FOR_CONTENT' | 'TOOL_CALL_EXECUTION_STATUS_INTERRUPTED';
2748
3116
 
2749
3117
  /**
2750
3118
  * ObjectiveToolCall is a record of a tool call made during an objective's execution.
@@ -2868,7 +3236,7 @@ export interface ObjectiveToolCallResult_TextBlock {
2868
3236
  */
2869
3237
  export type ObjectiveToolCallWithResultStatus = 'TOOL_CALL_STATUS_UNSPECIFIED' | 'TOOL_CALL_STATUS_AUTO_APPROVED' | 'TOOL_CALL_STATUS_WAITING_FOR_APPROVAL' | 'TOOL_CALL_STATUS_APPROVED' | 'TOOL_CALL_STATUS_DENIED';
2870
3238
 
2871
- export type ObjectiveToolCallWithResultExecutionStatus = 'TOOL_CALL_EXECUTION_STATUS_UNSPECIFIED' | 'TOOL_CALL_EXECUTION_STATUS_PENDING' | 'TOOL_CALL_EXECUTION_STATUS_RUNNING' | 'TOOL_CALL_EXECUTION_STATUS_COMPLETED' | 'TOOL_CALL_EXECUTION_STATUS_ERRORED' | 'TOOL_CALL_EXECUTION_STATUS_WAITING_FOR_CONTENT';
3239
+ export type ObjectiveToolCallWithResultExecutionStatus = 'TOOL_CALL_EXECUTION_STATUS_UNSPECIFIED' | 'TOOL_CALL_EXECUTION_STATUS_PENDING' | 'TOOL_CALL_EXECUTION_STATUS_RUNNING' | 'TOOL_CALL_EXECUTION_STATUS_COMPLETED' | 'TOOL_CALL_EXECUTION_STATUS_ERRORED' | 'TOOL_CALL_EXECUTION_STATUS_WAITING_FOR_CONTENT' | 'TOOL_CALL_EXECUTION_STATUS_INTERRUPTED';
2872
3240
 
2873
3241
  /**
2874
3242
  * ObjectiveToolCallWithResult is an ObjectiveToolCall plus the content the
@@ -3143,6 +3511,23 @@ export interface PublishAgentRequest {
3143
3511
  id?: string;
3144
3512
  }
3145
3513
 
3514
+ /**
3515
+ * QueuedCompaction is a compaction waiting to run.
3516
+ */
3517
+ export interface QueuedCompaction {
3518
+ /**
3519
+ * Optional compaction config override. When not set, uses the variation's compaction_config.
3520
+ */
3521
+ compactionConfig?: AgentVariationSpec_CompactionConfig;
3522
+ }
3523
+
3524
+ /**
3525
+ * QueuedUserMessage is a user message waiting to join the conversation.
3526
+ */
3527
+ export interface QueuedUserMessage {
3528
+ content: string;
3529
+ }
3530
+
3146
3531
  /**
3147
3532
  * Reasoning carries the human-readable reasoning text a model produced while
3148
3533
  * working on an iteration — extended thinking (Anthropic, Gemini) or reasoning
@@ -3165,7 +3550,8 @@ export interface Reasoning {
3165
3550
  export type RemoveAgentVariationAssignmentRequest =
3166
3551
  | RemoveAgentVariationAssignmentRequest_ToolId
3167
3552
  | RemoveAgentVariationAssignmentRequest_ToolSetId
3168
- | RemoveAgentVariationAssignmentRequest_SubAgentId;
3553
+ | RemoveAgentVariationAssignmentRequest_SubAgentId
3554
+ | RemoveAgentVariationAssignmentRequest_AgentPoolId;
3169
3555
 
3170
3556
  /**
3171
3557
  * Remove by memory layer ID. An unassigned layer returns NotFound.
@@ -3190,6 +3576,18 @@ export interface RemoveAgentVariationMemoryLayerRequest {
3190
3576
  memoryLayerId: string;
3191
3577
  }
3192
3578
 
3579
+ export interface RemoveObjectiveQueuedActionRequest {
3580
+ workspaceId?: string;
3581
+ /**
3582
+ * The ID of the objective. Supports "external_id:" prefix for external IDs.
3583
+ */
3584
+ objectiveId?: string;
3585
+ /**
3586
+ * The ID of the queued action to remove.
3587
+ */
3588
+ queuedActionId?: string;
3589
+ }
3590
+
3193
3591
  export type ResolvedSecretSource = 'RESOLVED_SECRET_SOURCE_UNSPECIFIED' | 'RESOLVED_SECRET_SOURCE_WORKSPACE' | 'RESOLVED_SECRET_SOURCE_TOOLSET' | 'RESOLVED_SECRET_SOURCE_OBJECTIVE';
3194
3592
 
3195
3593
  /**
@@ -4286,6 +4684,39 @@ export interface ToolSetSpec {
4286
4684
  * request. Read-modify-write to add or remove a single overlay.
4287
4685
  */
4288
4686
  overlays?: Array<ToolOverlay>;
4687
+ /**
4688
+ * The tool set's secrets, identified by normalized name. Order has no
4689
+ * meaning. Values are write-only; reads return names only.
4690
+ *
4691
+ * On create, the tool set and its secrets are written together, so the first
4692
+ * sync and source validation already use them. On update, selecting
4693
+ * spec.secrets in update_mask replaces the set: names not listed are
4694
+ * deleted, listed names are created or have their value replaced, and a
4695
+ * listed name without a value keeps its stored value. An empty masked list
4696
+ * deletes every secret. Without a mask, a non-empty list creates or updates
4697
+ * the listed secrets and deletes nothing.
4698
+ */
4699
+ secrets?: Array<ToolSetSpec_Secret>;
4700
+ }
4701
+
4702
+ /**
4703
+ * A secret scoped to this tool set. Adapter headers and tool configuration
4704
+ * reference it as `{{ secrets.NAME }}`. The same secrets are managed one at
4705
+ * a time through the tool set secret operations.
4706
+ */
4707
+ export interface ToolSetSpec_Secret {
4708
+ /**
4709
+ * Secret name, normalized to upper case with characters outside A-Z, 0-9
4710
+ * and _ replaced by _. It is also the secret's external id, so
4711
+ * `{{ secrets.<name> }}` resolves to it.
4712
+ */
4713
+ name: string;
4714
+ /**
4715
+ * Secret value. Write-only: never returned by any API, so reads list names
4716
+ * with an empty value. Required for a secret the tool set does not have
4717
+ * yet; on update, an entry without a value keeps the stored value.
4718
+ */
4719
+ value?: string;
4289
4720
  }
4290
4721
 
4291
4722
  /**
@@ -4349,6 +4780,20 @@ export type ToolSpec_Config =
4349
4780
  | ToolSpec_Config_Openapi
4350
4781
  | ToolSpec_Config_Bare;
4351
4782
 
4783
+ /**
4784
+ * Restore an archived pool to INACTIVE; activate it separately to route requests.
4785
+ */
4786
+ export interface UnarchiveAgentPoolRequest {
4787
+ /**
4788
+ * Workspace ID.
4789
+ */
4790
+ workspaceId?: string;
4791
+ /**
4792
+ * AgentPool ID. Accepts the canonical `apool_…` form or the `external_id:<value>` form.
4793
+ */
4794
+ id?: string;
4795
+ }
4796
+
4352
4797
  /**
4353
4798
  * Unarchive agent request
4354
4799
  */
@@ -4469,6 +4914,32 @@ export interface UpdateAccountResourceMetadata {
4469
4914
  labels?: Record<string, string>;
4470
4915
  }
4471
4916
 
4917
+ /**
4918
+ * Update agent pool request
4919
+ */
4920
+ export interface UpdateAgentPoolRequest {
4921
+ /**
4922
+ * Workspace ID.
4923
+ */
4924
+ workspaceId?: string;
4925
+ /**
4926
+ * AgentPool ID. Accepts the canonical `apool_…` form or the `external_id:<value>` form.
4927
+ */
4928
+ id?: string;
4929
+ metadata?: UpdateResourceMetadata;
4930
+ spec?: AgentPoolUpdateSpec;
4931
+ /**
4932
+ * Fields to update. Only metadata and spec are mutable; top-level state and info
4933
+ * paths are invalid. spec.assignments replaces the entire membership list.
4934
+ * A spec mask replaces the full spec; * replaces all mutable fields.
4935
+ * Without a mask, infer paths from non-empty fields. Empty or omitted
4936
+ * membership then leaves the existing list unchanged. Element/index paths
4937
+ * are invalid. Validate the merged pool atomically: an empty description
4938
+ * or membership (including an explicitly masked empty list) is invalid.
4939
+ */
4940
+ updateMask?: string;
4941
+ }
4942
+
4472
4943
  /**
4473
4944
  * Update agent request
4474
4945
  */
@@ -4598,8 +5069,9 @@ export interface UpdateMemoryLayerRequest {
4598
5069
  * Update model request. update_mask must list leaf paths: metadata.name,
4599
5070
  * metadata.external_id, metadata.labels, spec.provider_model_id,
4600
5071
  * spec.provider, spec.family, spec.max_input_tokens, spec.max_output_tokens,
4601
- * spec.capabilities, pricing_override.input_price_per_million_tokens, and
4602
- * pricing_override.output_price_per_million_tokens. Synced models
5072
+ * spec.capabilities, pricing_override.input_price_per_million_tokens,
5073
+ * pricing_override.output_price_per_million_tokens, and
5074
+ * pricing_override.cached_input_price_per_million_tokens. Synced models
4603
5075
  * (PROVENANCE_SYNCED_FROM_PROVIDER) reject metadata.name and spec.* paths.
4604
5076
  * spec price fields are never writable; price changes go through
4605
5077
  * pricing_override, where a masked-but-absent field clears the override.
@@ -4827,14 +5299,15 @@ export interface UserMessage {
4827
5299
  }
4828
5300
 
4829
5301
  /**
4830
- * A tool, tool set, or sub-agent assigned to a variation, identified only by
5302
+ * A tool, tool set, sub-agent, or agent pool assigned to a variation, identified only by
4831
5303
  * the target resource ID. The same shape is accepted in a spec and returned
4832
5304
  * on reads. Assignment junction records are an internal implementation detail.
4833
5305
  */
4834
5306
  export type VariationAssignment =
4835
5307
  | VariationAssignment_ToolId
4836
5308
  | VariationAssignment_ToolSetId
4837
- | VariationAssignment_SubAgentId;
5309
+ | VariationAssignment_SubAgentId
5310
+ | VariationAssignment_AgentPoolId;
4838
5311
 
4839
5312
  /**
4840
5313
  * A whole memory layer in a variation's baseline memory cascade. Identified
@@ -4878,7 +5351,7 @@ export type WebhookDeliveryDataStatus = 'WEBHOOK_DELIVERY_STATUS_UNSPECIFIED' |
4878
5351
  /**
4879
5352
  * The type of objective event that triggered this webhook delivery
4880
5353
  */
4881
- export type WebhookDeliveryDataEventType = 'OBJECTIVE_EVENT_TYPE_UNSPECIFIED' | 'OBJECTIVE_EVENT_TYPE_USER_MESSAGE' | 'OBJECTIVE_EVENT_TYPE_TOOL_APPROVAL_REQUESTED' | 'OBJECTIVE_EVENT_TYPE_TOOL_APPROVED' | 'OBJECTIVE_EVENT_TYPE_TOOL_DENIED' | 'OBJECTIVE_EVENT_TYPE_TOOL_CALLED' | 'OBJECTIVE_EVENT_TYPE_ERROR' | 'OBJECTIVE_EVENT_TYPE_ASSISTANT_MESSAGE' | 'OBJECTIVE_EVENT_TYPE_TOOL_RESULT' | 'OBJECTIVE_EVENT_TYPE_TOOL_ERROR' | 'OBJECTIVE_EVENT_TYPE_CONTEXT_WINDOW_COMPACTED' | 'OBJECTIVE_EVENT_TYPE_MEMORY_READ' | 'OBJECTIVE_EVENT_TYPE_CANCELLED' | 'OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED' | 'OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED' | 'OBJECTIVE_EVENT_TYPE_FINALIZED' | 'OBJECTIVE_EVENT_TYPE_NOTICE' | 'OBJECTIVE_EVENT_TYPE_TIMED_OUT' | 'OBJECTIVE_EVENT_TYPE_REASONING' | 'OBJECTIVE_EVENT_TYPE_STATE_CHANGED' | 'OBJECTIVE_EVENT_TYPE_HEARTBEAT';
5354
+ export type WebhookDeliveryDataEventType = 'OBJECTIVE_EVENT_TYPE_UNSPECIFIED' | 'OBJECTIVE_EVENT_TYPE_USER_MESSAGE' | 'OBJECTIVE_EVENT_TYPE_TOOL_APPROVAL_REQUESTED' | 'OBJECTIVE_EVENT_TYPE_TOOL_APPROVED' | 'OBJECTIVE_EVENT_TYPE_TOOL_DENIED' | 'OBJECTIVE_EVENT_TYPE_TOOL_CALLED' | 'OBJECTIVE_EVENT_TYPE_ERROR' | 'OBJECTIVE_EVENT_TYPE_ASSISTANT_MESSAGE' | 'OBJECTIVE_EVENT_TYPE_TOOL_RESULT' | 'OBJECTIVE_EVENT_TYPE_TOOL_ERROR' | 'OBJECTIVE_EVENT_TYPE_CONTEXT_WINDOW_COMPACTED' | 'OBJECTIVE_EVENT_TYPE_MEMORY_READ' | 'OBJECTIVE_EVENT_TYPE_CANCELLED' | 'OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED' | 'OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED' | 'OBJECTIVE_EVENT_TYPE_FINALIZED' | 'OBJECTIVE_EVENT_TYPE_NOTICE' | 'OBJECTIVE_EVENT_TYPE_TIMED_OUT' | 'OBJECTIVE_EVENT_TYPE_REASONING' | 'OBJECTIVE_EVENT_TYPE_STATE_CHANGED' | 'OBJECTIVE_EVENT_TYPE_HEARTBEAT' | 'OBJECTIVE_EVENT_TYPE_INTERRUPTED';
4882
5355
 
4883
5356
  export interface WebhookDeliveryData {
4884
5357
  /**
@@ -4915,6 +5388,22 @@ export interface WebhookDeliveryData {
4915
5388
  responseContentLength: string;
4916
5389
  }
4917
5390
 
5391
+ /**
5392
+ * WhoamiResponse describes the authenticated caller.
5393
+ */
5394
+ export interface WhoamiResponse {
5395
+ /**
5396
+ * The caller's profile.
5397
+ */
5398
+ profile: Profile;
5399
+ /**
5400
+ * Metadata of the caller's default workspace: the one they chose, while
5401
+ * they can still access it, otherwise the first workspace they can access.
5402
+ * Unset when the caller can access no workspace.
5403
+ */
5404
+ defaultWorkspace?: AccountResourceMetadata;
5405
+ }
5406
+
4918
5407
  /**
4919
5408
  * The current lifecycle state of the widget. Output only. Widgets are
4920
5409
  * created STATE_ACTIVE; use the :archive and :unarchive actions to
@@ -5288,6 +5777,14 @@ export interface VariationAssignment_SubAgentId {
5288
5777
  subAgentId: string;
5289
5778
  }
5290
5779
 
5780
+ export interface VariationAssignment_AgentPoolId {
5781
+ type: 'agentPoolId';
5782
+ /**
5783
+ * Canonical agent pool ID. Attaches the pool as a single callable target.
5784
+ */
5785
+ agentPoolId: string;
5786
+ }
5787
+
5291
5788
  export interface ObjectiveToolCallResult_ContentBlock_Text {
5292
5789
  type: 'text';
5293
5790
  text: ObjectiveToolCallResult_TextBlock;
@@ -5623,6 +6120,11 @@ export interface ObjectiveEventData_Heartbeat {
5623
6120
  heartbeat: ObjectiveHeartbeat;
5624
6121
  }
5625
6122
 
6123
+ export interface ObjectiveEventData_Interrupted {
6124
+ type: 'interrupted';
6125
+ interrupted: ObjectiveInterrupted;
6126
+ }
6127
+
5626
6128
  export interface CallableTool_Tool {
5627
6129
  type: 'tool';
5628
6130
  tool: ResourceMetadata;
@@ -5638,6 +6140,14 @@ export interface CallableTool_CadenyaProvidedTool {
5638
6140
  cadenyaProvidedTool: ResourceMetadata;
5639
6141
  }
5640
6142
 
6143
+ export interface CallableTool_AgentPool {
6144
+ type: 'agentPool';
6145
+ /**
6146
+ * Agent pool responsible for routing this call to a member agent.
6147
+ */
6148
+ agentPool: ResourceMetadata;
6149
+ }
6150
+
5641
6151
  export interface MemoryEntryCreateSpec_Content {
5642
6152
  type: 'content';
5643
6153
  /**
@@ -5667,6 +6177,38 @@ export interface MemoryEntryCreateSpec_UploadId {
5667
6177
  description?: string;
5668
6178
  }
5669
6179
 
6180
+ export interface ObjectiveQueuedActionData_UserMessage {
6181
+ type: 'userMessage';
6182
+ /**
6183
+ * A user message appended to the conversation before the next assistant turn.
6184
+ */
6185
+ userMessage: QueuedUserMessage;
6186
+ }
6187
+
6188
+ export interface ObjectiveQueuedActionData_Compaction {
6189
+ type: 'compaction';
6190
+ /**
6191
+ * A compaction of the conversation run before the next assistant turn.
6192
+ */
6193
+ compaction: QueuedCompaction;
6194
+ }
6195
+
6196
+ export interface ContinueObjectiveResponse_Event {
6197
+ type: 'event';
6198
+ /**
6199
+ * The user message event, when the objective was waiting and the message was sent immediately.
6200
+ */
6201
+ event: ObjectiveEvent;
6202
+ }
6203
+
6204
+ export interface ContinueObjectiveResponse_QueuedAction {
6205
+ type: 'queuedAction';
6206
+ /**
6207
+ * The queued action, when the agent loop was busy and the message was queued.
6208
+ */
6209
+ queuedAction: ObjectiveQueuedAction;
6210
+ }
6211
+
5670
6212
  export interface SetToolCallContentRequest_ContentBlock_Text {
5671
6213
  type: 'text';
5672
6214
  text: SetToolCallContentRequest_TextBlock;
@@ -5733,6 +6275,26 @@ export interface AddAgentVariationAssignmentRequest_SubAgentId {
5733
6275
  variationId?: string;
5734
6276
  }
5735
6277
 
6278
+ export interface AddAgentVariationAssignmentRequest_AgentPoolId {
6279
+ type: 'agentPoolId';
6280
+ /**
6281
+ * Canonical agent pool ID in the variation's workspace.
6282
+ */
6283
+ agentPoolId: string;
6284
+ /**
6285
+ * Workspace ID.
6286
+ */
6287
+ workspaceId?: string;
6288
+ /**
6289
+ * Agent ID. Accepts the canonical `agent_…` form or the `external_id:<value>` form.
6290
+ */
6291
+ agentId?: string;
6292
+ /**
6293
+ * Variation ID. Accepts the canonical `agentvar_…` form or the `external_id:<value>` form.
6294
+ */
6295
+ variationId?: string;
6296
+ }
6297
+
5736
6298
  export interface RemoveAgentVariationAssignmentRequest_ToolId {
5737
6299
  type: 'toolId';
5738
6300
  toolId: string;
@@ -5784,6 +6346,26 @@ export interface RemoveAgentVariationAssignmentRequest_SubAgentId {
5784
6346
  variationId?: string;
5785
6347
  }
5786
6348
 
6349
+ export interface RemoveAgentVariationAssignmentRequest_AgentPoolId {
6350
+ type: 'agentPoolId';
6351
+ /**
6352
+ * Canonical agent pool ID in the variation's workspace.
6353
+ */
6354
+ agentPoolId: string;
6355
+ /**
6356
+ * Workspace ID.
6357
+ */
6358
+ workspaceId?: string;
6359
+ /**
6360
+ * Agent ID. Accepts the canonical `agent_…` form or the `external_id:<value>` form.
6361
+ */
6362
+ agentId?: string;
6363
+ /**
6364
+ * Variation ID. Accepts the canonical `agentvar_…` form or the `external_id:<value>` form.
6365
+ */
6366
+ variationId?: string;
6367
+ }
6368
+
5787
6369
  export interface AIProviderCredential_ApiKey {
5788
6370
  type: 'apiKey';
5789
6371
  /**
@@ -5880,6 +6462,25 @@ export interface ModelSpec_Capability_Caching {
5880
6462
  caching: Capability_Caching;
5881
6463
  }
5882
6464
 
6465
+ export interface CreateAndStreamObjectiveResponse_Objective {
6466
+ type: 'objective';
6467
+ /**
6468
+ * The objective. Sent exactly once, as the first message. On a repeated
6469
+ * request that attached to an existing objective, this is that
6470
+ * objective rather than a newly created one.
6471
+ */
6472
+ objective: Objective;
6473
+ }
6474
+
6475
+ export interface CreateAndStreamObjectiveResponse_Event {
6476
+ type: 'event';
6477
+ /**
6478
+ * An objective event, identical to the payloads Stream objective events
6479
+ * yields — including transient hb_ heartbeats.
6480
+ */
6481
+ event: ObjectiveEvent;
6482
+ }
6483
+
5883
6484
  /**
5884
6485
  * TOKEN_EXPIRED identifies access-token expiry beyond the 60-second clock-skew tolerance. That token cannot renew; use already-installed newer credentials or require explicit app reauthentication. SESSION_* reasons are terminal. Never infer renewability from HTTP status alone.
5885
6486
  */
@@ -5898,23 +6499,27 @@ export interface WidgetSessionErrorInfo {
5898
6499
  metadata?: Record<string, string>;
5899
6500
  }
5900
6501
 
6502
+ export type AgentPoolServiceListAgentPoolsState = 'AGENT_POOL_STATE_UNSPECIFIED' | 'AGENT_POOL_STATE_ACTIVE' | 'AGENT_POOL_STATE_INACTIVE' | 'AGENT_POOL_STATE_ARCHIVED';
6503
+
5901
6504
  export type AgentServiceListAgentsState = 'STATE_UNSPECIFIED' | 'STATE_DRAFT' | 'STATE_PUBLISHED' | 'STATE_ARCHIVED';
5902
6505
 
5903
6506
  export type AgentServiceListAgentsVariationSelectionMode = 'VARIATION_SELECTION_MODE_UNSPECIFIED' | 'VARIATION_SELECTION_MODE_RANDOM' | 'VARIATION_SELECTION_MODE_WEIGHTED';
5904
6507
 
5905
6508
  export type AgentServiceListAgentFeedbackSentiment = 'FEEDBACK_SENTIMENT_UNSPECIFIED' | 'FEEDBACK_SENTIMENT_POSITIVE' | 'FEEDBACK_SENTIMENT_NEGATIVE';
5906
6509
 
5907
- export type AgentServiceListAgentWebhookDeliveriesEventType = 'OBJECTIVE_EVENT_TYPE_UNSPECIFIED' | 'OBJECTIVE_EVENT_TYPE_USER_MESSAGE' | 'OBJECTIVE_EVENT_TYPE_TOOL_APPROVAL_REQUESTED' | 'OBJECTIVE_EVENT_TYPE_TOOL_APPROVED' | 'OBJECTIVE_EVENT_TYPE_TOOL_DENIED' | 'OBJECTIVE_EVENT_TYPE_TOOL_CALLED' | 'OBJECTIVE_EVENT_TYPE_ERROR' | 'OBJECTIVE_EVENT_TYPE_ASSISTANT_MESSAGE' | 'OBJECTIVE_EVENT_TYPE_TOOL_RESULT' | 'OBJECTIVE_EVENT_TYPE_TOOL_ERROR' | 'OBJECTIVE_EVENT_TYPE_CONTEXT_WINDOW_COMPACTED' | 'OBJECTIVE_EVENT_TYPE_MEMORY_READ' | 'OBJECTIVE_EVENT_TYPE_CANCELLED' | 'OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED' | 'OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED' | 'OBJECTIVE_EVENT_TYPE_FINALIZED' | 'OBJECTIVE_EVENT_TYPE_NOTICE' | 'OBJECTIVE_EVENT_TYPE_TIMED_OUT' | 'OBJECTIVE_EVENT_TYPE_REASONING' | 'OBJECTIVE_EVENT_TYPE_STATE_CHANGED' | 'OBJECTIVE_EVENT_TYPE_HEARTBEAT';
6510
+ export type AgentServiceListAgentWebhookDeliveriesEventType = 'OBJECTIVE_EVENT_TYPE_UNSPECIFIED' | 'OBJECTIVE_EVENT_TYPE_USER_MESSAGE' | 'OBJECTIVE_EVENT_TYPE_TOOL_APPROVAL_REQUESTED' | 'OBJECTIVE_EVENT_TYPE_TOOL_APPROVED' | 'OBJECTIVE_EVENT_TYPE_TOOL_DENIED' | 'OBJECTIVE_EVENT_TYPE_TOOL_CALLED' | 'OBJECTIVE_EVENT_TYPE_ERROR' | 'OBJECTIVE_EVENT_TYPE_ASSISTANT_MESSAGE' | 'OBJECTIVE_EVENT_TYPE_TOOL_RESULT' | 'OBJECTIVE_EVENT_TYPE_TOOL_ERROR' | 'OBJECTIVE_EVENT_TYPE_CONTEXT_WINDOW_COMPACTED' | 'OBJECTIVE_EVENT_TYPE_MEMORY_READ' | 'OBJECTIVE_EVENT_TYPE_CANCELLED' | 'OBJECTIVE_EVENT_TYPE_SUB_AGENT_SPAWNED' | 'OBJECTIVE_EVENT_TYPE_SUB_AGENT_UPDATED' | 'OBJECTIVE_EVENT_TYPE_FINALIZED' | 'OBJECTIVE_EVENT_TYPE_NOTICE' | 'OBJECTIVE_EVENT_TYPE_TIMED_OUT' | 'OBJECTIVE_EVENT_TYPE_REASONING' | 'OBJECTIVE_EVENT_TYPE_STATE_CHANGED' | 'OBJECTIVE_EVENT_TYPE_HEARTBEAT' | 'OBJECTIVE_EVENT_TYPE_INTERRUPTED';
5908
6511
 
5909
6512
  export type MemoryServiceListMemoryLayersType = 'MEMORY_LAYER_TYPE_UNSPECIFIED' | 'MEMORY_LAYER_TYPE_EPISODIC' | 'MEMORY_LAYER_TYPE_SKILLS';
5910
6513
 
5911
6514
  export type ModelServiceListModelsState = 'STATE_UNSPECIFIED' | 'STATE_ENABLED' | 'STATE_DISABLED';
5912
6515
 
5913
- export type ObjectiveServiceListObjectivesState = 'OBJECTIVE_STATE_UNSPECIFIED' | 'OBJECTIVE_STATE_PENDING' | 'OBJECTIVE_STATE_RUNNING' | 'OBJECTIVE_STATE_WAITING' | 'OBJECTIVE_STATE_FAILED' | 'OBJECTIVE_STATE_CANCELLED' | 'OBJECTIVE_STATE_FINALIZED' | 'OBJECTIVE_STATE_TIMED_OUT';
6516
+ export type ObjectiveServiceListObjectivesState = 'OBJECTIVE_STATE_UNSPECIFIED' | 'OBJECTIVE_STATE_PENDING' | 'OBJECTIVE_STATE_RUNNING' | 'OBJECTIVE_STATE_WAITING' | 'OBJECTIVE_STATE_FAILED' | 'OBJECTIVE_STATE_CANCELLED' | 'OBJECTIVE_STATE_FINALIZED' | 'OBJECTIVE_STATE_TIMED_OUT' | 'OBJECTIVE_STATE_INTERRUPTING';
6517
+
6518
+ export type ObjectiveServiceListObjectiveQueuedActionsState = 'STATE_UNSPECIFIED' | 'STATE_QUEUED' | 'STATE_SENT' | 'STATE_REMOVED' | 'STATE_DISCARDED';
5914
6519
 
5915
6520
  export type ObjectiveServiceListObjectiveToolCallsStatus = 'TOOL_CALL_STATUS_UNSPECIFIED' | 'TOOL_CALL_STATUS_AUTO_APPROVED' | 'TOOL_CALL_STATUS_WAITING_FOR_APPROVAL' | 'TOOL_CALL_STATUS_APPROVED' | 'TOOL_CALL_STATUS_DENIED';
5916
6521
 
5917
- export type ObjectiveServiceListObjectiveToolCallsExecutionStatus = 'TOOL_CALL_EXECUTION_STATUS_UNSPECIFIED' | 'TOOL_CALL_EXECUTION_STATUS_PENDING' | 'TOOL_CALL_EXECUTION_STATUS_RUNNING' | 'TOOL_CALL_EXECUTION_STATUS_COMPLETED' | 'TOOL_CALL_EXECUTION_STATUS_ERRORED' | 'TOOL_CALL_EXECUTION_STATUS_WAITING_FOR_CONTENT';
6522
+ export type ObjectiveServiceListObjectiveToolCallsExecutionStatus = 'TOOL_CALL_EXECUTION_STATUS_UNSPECIFIED' | 'TOOL_CALL_EXECUTION_STATUS_PENDING' | 'TOOL_CALL_EXECUTION_STATUS_RUNNING' | 'TOOL_CALL_EXECUTION_STATUS_COMPLETED' | 'TOOL_CALL_EXECUTION_STATUS_ERRORED' | 'TOOL_CALL_EXECUTION_STATUS_WAITING_FOR_CONTENT' | 'TOOL_CALL_EXECUTION_STATUS_INTERRUPTED';
5918
6523
 
5919
6524
  export type ToolServiceListToolSetsState = 'STATE_UNSPECIFIED' | 'STATE_ACTIVE' | 'STATE_ARCHIVED';
5920
6525
 
@@ -5947,7 +6552,7 @@ export interface APIKeySpecParam {
5947
6552
  permissions?: Array<string>;
5948
6553
  }
5949
6554
 
5950
- export type AddAgentVariationAssignmentRequestParam = AddAgentVariationAssignmentRequest_ToolIdParam | AddAgentVariationAssignmentRequest_ToolSetIdParam | AddAgentVariationAssignmentRequest_SubAgentIdParam;
6555
+ export type AddAgentVariationAssignmentRequestParam = AddAgentVariationAssignmentRequest_ToolIdParam | AddAgentVariationAssignmentRequest_ToolSetIdParam | AddAgentVariationAssignmentRequest_SubAgentIdParam | AddAgentVariationAssignmentRequest_AgentPoolIdParam;
5951
6556
 
5952
6557
  export interface CreateAgentVariationRequestParam {
5953
6558
  metadata: CreateResourceMetadata;
@@ -5971,7 +6576,7 @@ export interface ObjectiveEpisodicConfigParam {
5971
6576
  key: string;
5972
6577
  }
5973
6578
 
5974
- export type RemoveAgentVariationAssignmentRequestParam = RemoveAgentVariationAssignmentRequest_ToolIdParam | RemoveAgentVariationAssignmentRequest_ToolSetIdParam | RemoveAgentVariationAssignmentRequest_SubAgentIdParam;
6579
+ export type RemoveAgentVariationAssignmentRequestParam = RemoveAgentVariationAssignmentRequest_ToolIdParam | RemoveAgentVariationAssignmentRequest_ToolSetIdParam | RemoveAgentVariationAssignmentRequest_SubAgentIdParam | RemoveAgentVariationAssignmentRequest_AgentPoolIdParam;
5975
6580
 
5976
6581
  export interface WidgetSessionSpecParam {
5977
6582
  /**
@@ -6027,6 +6632,14 @@ export interface AddAgentVariationAssignmentRequest_SubAgentIdParam {
6027
6632
  subAgentId: string;
6028
6633
  }
6029
6634
 
6635
+ export interface AddAgentVariationAssignmentRequest_AgentPoolIdParam {
6636
+ type: 'agentPoolId';
6637
+ /**
6638
+ * Canonical agent pool ID in the variation's workspace.
6639
+ */
6640
+ agentPoolId: string;
6641
+ }
6642
+
6030
6643
  export interface RemoveAgentVariationAssignmentRequest_ToolIdParam {
6031
6644
  type: 'toolId';
6032
6645
  toolId: string;
@@ -6042,6 +6655,14 @@ export interface RemoveAgentVariationAssignmentRequest_SubAgentIdParam {
6042
6655
  subAgentId: string;
6043
6656
  }
6044
6657
 
6658
+ export interface RemoveAgentVariationAssignmentRequest_AgentPoolIdParam {
6659
+ type: 'agentPoolId';
6660
+ /**
6661
+ * Canonical agent pool ID in the variation's workspace.
6662
+ */
6663
+ agentPoolId: string;
6664
+ }
6665
+
6045
6666
 
6046
6667
  // ---- request wire projections (strip readOnly at runtime) ----
6047
6668
 
@@ -6067,6 +6688,7 @@ export function wireAddAgentVariationAssignmentRequest(value: AddAgentVariationA
6067
6688
  case "toolId": return wireAddAgentVariationAssignmentRequest_ToolId((value as never));
6068
6689
  case "toolSetId": return wireAddAgentVariationAssignmentRequest_ToolSetId((value as never));
6069
6690
  case "subAgentId": return wireAddAgentVariationAssignmentRequest_SubAgentId((value as never));
6691
+ case "agentPoolId": return wireAddAgentVariationAssignmentRequest_AgentPoolId((value as never));
6070
6692
  default: return value;
6071
6693
  }
6072
6694
  }
@@ -6100,6 +6722,7 @@ export function wireRemoveAgentVariationAssignmentRequest(value: RemoveAgentVari
6100
6722
  case "toolId": return wireRemoveAgentVariationAssignmentRequest_ToolId((value as never));
6101
6723
  case "toolSetId": return wireRemoveAgentVariationAssignmentRequest_ToolSetId((value as never));
6102
6724
  case "subAgentId": return wireRemoveAgentVariationAssignmentRequest_SubAgentId((value as never));
6725
+ case "agentPoolId": return wireRemoveAgentVariationAssignmentRequest_AgentPoolId((value as never));
6103
6726
  default: return value;
6104
6727
  }
6105
6728
  }
@@ -6139,6 +6762,14 @@ export function wireAddAgentVariationAssignmentRequest_SubAgentId(value: AddAgen
6139
6762
  return out;
6140
6763
  }
6141
6764
 
6765
+ export function wireAddAgentVariationAssignmentRequest_AgentPoolId(value: AddAgentVariationAssignmentRequest_AgentPoolIdParam | null | undefined): unknown {
6766
+ if (value == null || typeof value !== 'object') return value;
6767
+ const out: Record<string, unknown> = {};
6768
+ if (value.type !== undefined) out["type"] = value.type;
6769
+ if (value.agentPoolId !== undefined) out["agentPoolId"] = value.agentPoolId;
6770
+ return out;
6771
+ }
6772
+
6142
6773
  export function wireRemoveAgentVariationAssignmentRequest_ToolId(value: RemoveAgentVariationAssignmentRequest_ToolIdParam | null | undefined): unknown {
6143
6774
  if (value == null || typeof value !== 'object') return value;
6144
6775
  const out: Record<string, unknown> = {};
@@ -6163,3 +6794,11 @@ export function wireRemoveAgentVariationAssignmentRequest_SubAgentId(value: Remo
6163
6794
  return out;
6164
6795
  }
6165
6796
 
6797
+ export function wireRemoveAgentVariationAssignmentRequest_AgentPoolId(value: RemoveAgentVariationAssignmentRequest_AgentPoolIdParam | null | undefined): unknown {
6798
+ if (value == null || typeof value !== 'object') return value;
6799
+ const out: Record<string, unknown> = {};
6800
+ if (value.type !== undefined) out["type"] = value.type;
6801
+ if (value.agentPoolId !== undefined) out["agentPoolId"] = value.agentPoolId;
6802
+ return out;
6803
+ }
6804
+