@cadenya/cadenya 1.6.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
@@ -1133,7 +1133,7 @@ export interface Capability_TopP {
1133
1133
  }
1134
1134
 
1135
1135
  /**
1136
- * 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.
1137
1137
  */
1138
1138
  export interface CompactObjectiveRequest {
1139
1139
  workspaceId?: string;
@@ -1147,16 +1147,6 @@ export interface CompactObjectiveRequest {
1147
1147
  compactionConfig?: AgentVariationSpec_CompactionConfig;
1148
1148
  }
1149
1149
 
1150
- /**
1151
- * Compact objective response
1152
- */
1153
- export interface CompactObjectiveResponse {
1154
- /**
1155
- * The new context window created by the compaction
1156
- */
1157
- contextWindow?: ObjectiveContextWindowData;
1158
- }
1159
-
1160
1150
  /**
1161
1151
  * SummarizationStrategy configures LLM-powered summarization of older conversation turns.
1162
1152
  */
@@ -1300,15 +1290,27 @@ export interface ContinueObjectiveRequest {
1300
1290
  */
1301
1291
  objectiveId?: string;
1302
1292
  /**
1303
- * The message to continue an objective that has completed (or you are enqueing)
1293
+ * The user message to send to the objective.
1304
1294
  */
1305
1295
  message: string;
1306
1296
  /**
1307
- * 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.
1308
1302
  */
1309
1303
  enqueue?: boolean;
1310
1304
  }
1311
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
+
1312
1314
  export interface CreateAIProviderKeyRequest {
1313
1315
  /**
1314
1316
  * The workspace that will own this key.
@@ -1413,6 +1415,129 @@ export interface CreateAgentVariationRequest {
1413
1415
  spec: AgentVariationSpec;
1414
1416
  }
1415
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
+
1416
1541
  export interface CreateMemoryEntryRequest {
1417
1542
  workspaceId?: string;
1418
1543
  /**
@@ -1475,7 +1600,7 @@ export interface CreateObjectiveRequest {
1475
1600
  * (liquid) to produce the objective's system prompt. If the agent has a
1476
1601
  * system_prompt_data_schema, this must satisfy it.
1477
1602
  */
1478
- systemPromptData: Record<string, unknown>;
1603
+ systemPromptData?: Record<string, unknown>;
1479
1604
  /**
1480
1605
  * Optional explicit first user message for the LLM chat history. When not set,
1481
1606
  * the selected variation's first_user_message_template is rendered with
@@ -1841,6 +1966,17 @@ export interface GoogleProtobufAny {
1841
1966
  '@type'?: string;
1842
1967
  }
1843
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
+
1844
1980
  export interface ListAIProviderKeysResponse {
1845
1981
  items: Array<AIProviderKey>;
1846
1982
  pagination?: Page;
@@ -1940,6 +2076,14 @@ export interface ListObjectiveFeedbackResponse {
1940
2076
  pagination?: Page;
1941
2077
  }
1942
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
+
1943
2087
  export interface ListObjectiveToolCallsResponse {
1944
2088
  items: Array<ObjectiveToolCall>;
1945
2089
  pagination?: Page;
@@ -2343,6 +2487,10 @@ export interface ModelBasePricing {
2343
2487
  * Default output token rate, in cents per million tokens.
2344
2488
  */
2345
2489
  outputPricePerMillionTokens: string;
2490
+ /**
2491
+ * Default cached input token rate, in cents per million tokens.
2492
+ */
2493
+ cachedInputPricePerMillionTokens: string;
2346
2494
  }
2347
2495
 
2348
2496
  /**
@@ -2381,6 +2529,10 @@ export interface ModelPricingOverride {
2381
2529
  * Override for output token price, in cents per million tokens.
2382
2530
  */
2383
2531
  outputPricePerMillionTokens?: string;
2532
+ /**
2533
+ * Override for cached input token price, in cents per million tokens.
2534
+ */
2535
+ cachedInputPricePerMillionTokens?: string;
2384
2536
  }
2385
2537
 
2386
2538
  export interface ModelSpec {
@@ -2413,6 +2565,14 @@ export interface ModelSpec {
2413
2565
  * price on reads, see input_price_per_million_tokens.
2414
2566
  */
2415
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;
2416
2576
  /**
2417
2577
  * The inference knobs this model supports. Catalog data; drives which
2418
2578
  * ModelConfig fields a variation on this model may set. Reasoning support
@@ -2470,7 +2630,7 @@ export interface Notice {
2470
2630
  /**
2471
2631
  * The current lifecycle state of the objective.
2472
2632
  */
2473
- 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';
2474
2634
 
2475
2635
  /**
2476
2636
  * Objective is the data for an objective. It contains the snapshotted fields for the selected agent and variation. Secrets are returned
@@ -2708,7 +2868,8 @@ export type ObjectiveEventData =
2708
2868
  | ObjectiveEventData_TimedOut
2709
2869
  | ObjectiveEventData_Reasoning
2710
2870
  | ObjectiveEventData_StateChanged
2711
- | ObjectiveEventData_Heartbeat;
2871
+ | ObjectiveEventData_Heartbeat
2872
+ | ObjectiveEventData_Interrupted;
2712
2873
 
2713
2874
  export interface ObjectiveEventInfo {
2714
2875
  objective?: OperationMetadata;
@@ -2841,16 +3002,58 @@ export interface ObjectiveInfo {
2841
3002
  widget?: BareMetadata;
2842
3003
  }
2843
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
+
2844
3047
  /**
2845
3048
  * The state before this write. OBJECTIVE_STATE_UNSPECIFIED when the
2846
3049
  * objective was just created.
2847
3050
  */
2848
- 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';
2849
3052
 
2850
3053
  /**
2851
3054
  * The state after this write.
2852
3055
  */
2853
- 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';
2854
3057
 
2855
3058
  /**
2856
3059
  * ObjectiveStateChanged is written every time the objective's lifecycle state
@@ -2909,7 +3112,7 @@ export interface ObjectiveTool {
2909
3112
  */
2910
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';
2911
3114
 
2912
- 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';
2913
3116
 
2914
3117
  /**
2915
3118
  * ObjectiveToolCall is a record of a tool call made during an objective's execution.
@@ -3033,7 +3236,7 @@ export interface ObjectiveToolCallResult_TextBlock {
3033
3236
  */
3034
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';
3035
3238
 
3036
- 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';
3037
3240
 
3038
3241
  /**
3039
3242
  * ObjectiveToolCallWithResult is an ObjectiveToolCall plus the content the
@@ -3308,6 +3511,23 @@ export interface PublishAgentRequest {
3308
3511
  id?: string;
3309
3512
  }
3310
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
+
3311
3531
  /**
3312
3532
  * Reasoning carries the human-readable reasoning text a model produced while
3313
3533
  * working on an iteration — extended thinking (Anthropic, Gemini) or reasoning
@@ -3356,6 +3576,18 @@ export interface RemoveAgentVariationMemoryLayerRequest {
3356
3576
  memoryLayerId: string;
3357
3577
  }
3358
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
+
3359
3591
  export type ResolvedSecretSource = 'RESOLVED_SECRET_SOURCE_UNSPECIFIED' | 'RESOLVED_SECRET_SOURCE_WORKSPACE' | 'RESOLVED_SECRET_SOURCE_TOOLSET' | 'RESOLVED_SECRET_SOURCE_OBJECTIVE';
3360
3592
 
3361
3593
  /**
@@ -4452,6 +4684,39 @@ export interface ToolSetSpec {
4452
4684
  * request. Read-modify-write to add or remove a single overlay.
4453
4685
  */
4454
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;
4455
4720
  }
4456
4721
 
4457
4722
  /**
@@ -4804,8 +5069,9 @@ export interface UpdateMemoryLayerRequest {
4804
5069
  * Update model request. update_mask must list leaf paths: metadata.name,
4805
5070
  * metadata.external_id, metadata.labels, spec.provider_model_id,
4806
5071
  * spec.provider, spec.family, spec.max_input_tokens, spec.max_output_tokens,
4807
- * spec.capabilities, pricing_override.input_price_per_million_tokens, and
4808
- * 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
4809
5075
  * (PROVENANCE_SYNCED_FROM_PROVIDER) reject metadata.name and spec.* paths.
4810
5076
  * spec price fields are never writable; price changes go through
4811
5077
  * pricing_override, where a masked-but-absent field clears the override.
@@ -5085,7 +5351,7 @@ export type WebhookDeliveryDataStatus = 'WEBHOOK_DELIVERY_STATUS_UNSPECIFIED' |
5085
5351
  /**
5086
5352
  * The type of objective event that triggered this webhook delivery
5087
5353
  */
5088
- 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';
5089
5355
 
5090
5356
  export interface WebhookDeliveryData {
5091
5357
  /**
@@ -5122,6 +5388,22 @@ export interface WebhookDeliveryData {
5122
5388
  responseContentLength: string;
5123
5389
  }
5124
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
+
5125
5407
  /**
5126
5408
  * The current lifecycle state of the widget. Output only. Widgets are
5127
5409
  * created STATE_ACTIVE; use the :archive and :unarchive actions to
@@ -5838,6 +6120,11 @@ export interface ObjectiveEventData_Heartbeat {
5838
6120
  heartbeat: ObjectiveHeartbeat;
5839
6121
  }
5840
6122
 
6123
+ export interface ObjectiveEventData_Interrupted {
6124
+ type: 'interrupted';
6125
+ interrupted: ObjectiveInterrupted;
6126
+ }
6127
+
5841
6128
  export interface CallableTool_Tool {
5842
6129
  type: 'tool';
5843
6130
  tool: ResourceMetadata;
@@ -5890,6 +6177,38 @@ export interface MemoryEntryCreateSpec_UploadId {
5890
6177
  description?: string;
5891
6178
  }
5892
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
+
5893
6212
  export interface SetToolCallContentRequest_ContentBlock_Text {
5894
6213
  type: 'text';
5895
6214
  text: SetToolCallContentRequest_TextBlock;
@@ -6143,6 +6462,25 @@ export interface ModelSpec_Capability_Caching {
6143
6462
  caching: Capability_Caching;
6144
6463
  }
6145
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
+
6146
6484
  /**
6147
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.
6148
6486
  */
@@ -6169,17 +6507,19 @@ export type AgentServiceListAgentsVariationSelectionMode = 'VARIATION_SELECTION_
6169
6507
 
6170
6508
  export type AgentServiceListAgentFeedbackSentiment = 'FEEDBACK_SENTIMENT_UNSPECIFIED' | 'FEEDBACK_SENTIMENT_POSITIVE' | 'FEEDBACK_SENTIMENT_NEGATIVE';
6171
6509
 
6172
- 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';
6173
6511
 
6174
6512
  export type MemoryServiceListMemoryLayersType = 'MEMORY_LAYER_TYPE_UNSPECIFIED' | 'MEMORY_LAYER_TYPE_EPISODIC' | 'MEMORY_LAYER_TYPE_SKILLS';
6175
6513
 
6176
6514
  export type ModelServiceListModelsState = 'STATE_UNSPECIFIED' | 'STATE_ENABLED' | 'STATE_DISABLED';
6177
6515
 
6178
- 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';
6179
6519
 
6180
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';
6181
6521
 
6182
- 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';
6183
6523
 
6184
6524
  export type ToolServiceListToolSetsState = 'STATE_UNSPECIFIED' | 'STATE_ACTIVE' | 'STATE_ARCHIVED';
6185
6525