@soat/sdk 0.43.0 → 0.45.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/dist/index.cjs +22 -6
- package/dist/index.d.cts +107 -38
- package/dist/index.d.mts +107 -38
- package/dist/index.mjs +22 -6
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -960,7 +960,14 @@ var AiProviders = class {
|
|
|
960
960
|
/**
|
|
961
961
|
* Create an AI provider
|
|
962
962
|
*
|
|
963
|
-
* Creates a new LLM provider configuration
|
|
963
|
+
* Creates a new LLM provider configuration.
|
|
964
|
+
*
|
|
965
|
+
* A `bedrock` or `vertex` record must carry a credential of its own — a
|
|
966
|
+
* linked `secret_id`, or an `apiKey` in `config`. Without one the provider
|
|
967
|
+
* SDK signs with the server's own credentials (the AWS default credential
|
|
968
|
+
* chain, Google Application Default Credentials), which is refused with
|
|
969
|
+
* `400 VALIDATION_FAILED` unless the deployment allows it.
|
|
970
|
+
*
|
|
964
971
|
*/
|
|
965
972
|
static createAiProvider(options) {
|
|
966
973
|
return (options.client ?? client).post({
|
|
@@ -1018,7 +1025,7 @@ var AiProviders = class {
|
|
|
1018
1025
|
* Asks the provider which models it can run, using this provider record's own credentials and configuration, and returns provider-native model ids — the same strings `default_model` and an agent's `model` carry.
|
|
1019
1026
|
* Which models are reachable is a property of the credential, not of the provider type: a Vertex provider sees only the publisher models its Google Cloud project and location serve, and a Bedrock provider only the foundation models enabled in its region. Reading the list is how a caller avoids pinning a model that fails at generation time.
|
|
1020
1027
|
* Not every provider type can answer. `azure` lists deployments an operator named rather than models, and `ollama` lists whatever was pulled onto that host, so both return `400 MODEL_LISTING_UNSUPPORTED`.
|
|
1021
|
-
* Listing resolves credentials the same way generation does, so a record that can generate can list. The API-key types (`openai`, `groq`, `xai`, `gateway`, `custom`, `anthropic`, `google`) use the record's linked secret and cannot list without one. `bedrock` and `vertex` use the linked secret
|
|
1028
|
+
* Listing resolves credentials the same way generation does, so a record that can generate can list. The API-key types (`openai`, `groq`, `xai`, `gateway`, `custom`, `anthropic`, `google`) use the record's linked secret and cannot list without one. `bedrock` and `vertex` use the linked secret — IAM keys or a Bedrock API key, a Google service-account key. A record with no `secret_id` would fall back to the server's own credentials (the AWS default credential chain, Google Application Default Credentials); it can list only on a deployment that allows a record to use them, and returns `400 AI_PROVIDER_MISCONFIGURED` otherwise.
|
|
1022
1029
|
* A Vertex record needs no `config.project` when its secret is a service-account key, since the key file names its own project. A Vertex record in express mode (API key) cannot list at all: the publisher-model listing rejects API keys and needs a credential that asserts a principal, so it returns `400 MODEL_LISTING_UNSUPPORTED`.
|
|
1023
1030
|
* The Vertex answer is the publisher catalogue the record's `config.location` region serves. The project behind the credential is billed and quota'd for the call but does not filter the result, so a listed model may still be unavailable to that project at generation time.
|
|
1024
1031
|
*
|
|
@@ -1062,7 +1069,11 @@ var ApiKeys = class {
|
|
|
1062
1069
|
/**
|
|
1063
1070
|
* List API keys
|
|
1064
1071
|
*
|
|
1065
|
-
* Lists API keys accessible to the caller. - JWT admin: returns all API keys. - JWT regular user: returns only the user's own API keys. - Project-scoped credential (API key or OAuth token): returns
|
|
1072
|
+
* Lists API keys accessible to the caller. - JWT admin: returns all API keys. - JWT regular user: returns only the user's own API keys. - Project-scoped credential (API key or OAuth token): returns the caller's own
|
|
1073
|
+
* keys scoped to that project, or every key scoped to it when the credential
|
|
1074
|
+
* holds `api-keys:ListApiKeys` on the project. Confinement to a project is not
|
|
1075
|
+
* authority over it, and a key's metadata names its owner, prefix and attached
|
|
1076
|
+
* policies.
|
|
1066
1077
|
*
|
|
1067
1078
|
*/
|
|
1068
1079
|
static listApiKeys(options) {
|
|
@@ -2874,7 +2885,8 @@ var Orchestrations = class {
|
|
|
2874
2885
|
/**
|
|
2875
2886
|
* Get orchestration queue stats
|
|
2876
2887
|
*
|
|
2877
|
-
* Returns a point-in-time snapshot of the orchestration run queue: how many tasks are waiting to be claimed (`queue_depth`), how many are currently claimed with a valid lease (`claimed_tasks`), the age of the oldest waiting task, recent claim-latency percentiles over a rolling in-process window, and a per-project breakdown. Intended for admin/operator policies; guarded by `orchestrations:GetQueueStats`.
|
|
2888
|
+
* Returns a point-in-time snapshot of the orchestration run queue: how many tasks are waiting to be claimed (`queue_depth`), how many are currently claimed with a valid lease (`claimed_tasks`), the age of the oldest waiting task, recent claim-latency percentiles over a rolling in-process window, and a per-project breakdown. Intended for admin/operator policies; guarded by `orchestrations:GetQueueStats`.
|
|
2889
|
+
* Every figure is scoped to what the caller may see. A project-scoped caller gets `per_project` for their own projects only, `queue_depth` and `claimed_tasks` summed over those same projects, and `null` for `oldest_queued_age_seconds` and the `claim_latency_ms` percentiles — both describe the whole deployment and cannot be narrowed, so they are withheld rather than approximated. An unrestricted caller (the action granted on every project) gets the deployment-wide figures.
|
|
2878
2890
|
*
|
|
2879
2891
|
*/
|
|
2880
2892
|
static getQueueStats(options) {
|
|
@@ -3244,7 +3256,9 @@ var Quotas = class {
|
|
|
3244
3256
|
/**
|
|
3245
3257
|
* Create a quota
|
|
3246
3258
|
*
|
|
3247
|
-
* Creates a project-scoped quota. `requests` is valid for `scope: project`/`api_key`; `tokens` and `cost_usd` are valid for `scope: project`/`agent`/`actor
|
|
3259
|
+
* Creates a project-scoped quota. `requests` is valid for `scope: project`/`api_key`; `tokens` and `cost_usd` are valid for `scope: project`/`agent`/`actor`; `storage_bytes` is valid for `scope: project` only. Any other scope/metric pair is rejected with 400 (no attribution exists to enforce it). An `actor` quota caps one end user's spend, matched from the generation's session; a null `scope_ref` means one budget *per* actor rather than a pooled project total. A `cost_usd` quota may name one `meter_type` to cap; omitting it caps every priced meter. A duplicate quota (same project, scope, scope_ref, metric, window, meter_type) is rejected with 409.
|
|
3260
|
+
*
|
|
3261
|
+
* `storage_bytes` caps a stored total rather than a windowed one, so it takes `window: current` and every other metric refuses that value (400 either way). It is enforced at the corpus write paths — file upload and create, document create, document ingest and re-ingest, memory-entry create — with `409 QUOTA_STORAGE_EXCEEDED` and no `Retry-After`, since no window reset clears a footprint.
|
|
3248
3262
|
*/
|
|
3249
3263
|
static createQuota(options) {
|
|
3250
3264
|
return (options.client ?? client).post({
|
|
@@ -3738,6 +3752,7 @@ var Tools = class {
|
|
|
3738
3752
|
* Directly invokes a tool and returns its output. Supported for `http`, `builtin`, `mcp`, and `pipeline` tools. `client` tools cannot be invoked server-side and will return 422. A `pipeline` tool runs its declared steps in order and returns the mapped `output` (or the last step's output); `action` is ignored and `input` is the pipeline input.
|
|
3739
3753
|
* For `builtin` and `mcp` tools the `action` field is required and identifies which action (SOAT) or tool name (MCP) to invoke. For `http` tools `action` is ignored. When a `builtin` or `mcp` tool declares an `actions` allowlist, an action outside it is rejected with `400 VALIDATION_FAILED` ("not available on this tool") before any outbound request is made.
|
|
3740
3754
|
* `preset_parameters` stored on the tool are pinned over the caller-supplied `input` before execution: a key the tool presets keeps its preset value even when `input` sets it. Keys the presets do not name are taken from `input` as sent.
|
|
3755
|
+
* Guardrails attached to the tool or to its project adjudicate the call before dispatch, composing project + tool scope. A call this route cannot await a decision on — class C (human sign-off), class D, or a class-B tripwire — is refused with `422 TOOL_DISPATCH_FAILED`, whose `meta` carries the `tool_id` and the `outcome`. A `pipeline` tool is adjudicated before its first step runs, and every step is adjudicated as the call of that tool it is.
|
|
3741
3756
|
*
|
|
3742
3757
|
*/
|
|
3743
3758
|
static callTool(options) {
|
|
@@ -3855,7 +3870,8 @@ var Triggers = class {
|
|
|
3855
3870
|
/**
|
|
3856
3871
|
* Update a trigger
|
|
3857
3872
|
*
|
|
3858
|
-
* Updates an existing trigger's configuration. The type is immutable.
|
|
3873
|
+
* Updates an existing trigger's configuration. The type is immutable. Changing `target_type` or `target_id` re-checks the target-start action (`orchestrations:StartRun`, `agents:CreateAgentGeneration` or `tools:CallTool`) against the resulting target, because a firing runs with the trigger creator's authority rather than the updater's. A caller who could not start the new target is answered `403` and the trigger keeps the target it had.
|
|
3874
|
+
*
|
|
3859
3875
|
*/
|
|
3860
3876
|
static updateTrigger(options) {
|
|
3861
3877
|
return (options.client ?? client).patch({
|
package/dist/index.d.cts
CHANGED
|
@@ -340,7 +340,7 @@ type ActivityEntry = {
|
|
|
340
340
|
/**
|
|
341
341
|
* How the entry was produced
|
|
342
342
|
*/
|
|
343
|
-
kind?: 'action_executed' | 'approval_resolved' | 'exception_created' | 'schedule_fired';
|
|
343
|
+
kind?: 'action_executed' | 'approval_created' | 'approval_resolved' | 'exception_created' | 'schedule_fired';
|
|
344
344
|
severity?: 'info' | 'warning' | 'critical';
|
|
345
345
|
/**
|
|
346
346
|
* One-line, human-readable description
|
|
@@ -2172,7 +2172,7 @@ type FormationTemplate = {
|
|
|
2172
2172
|
[key: string]: ResourceDeclaration;
|
|
2173
2173
|
};
|
|
2174
2174
|
/**
|
|
2175
|
-
* Map of output names to values. Values may use `{ "ref": "logicalId" }` to reference physical IDs of created resources, or `{ "param": "ParamName" }` and `{ "sub": "text ${ParamName}" }` to embed parameter values.
|
|
2175
|
+
* Map of output names to values. Values may use `{ "ref": "logicalId" }` to reference physical IDs of created resources, or `{ "param": "ParamName" }` and `{ "sub": "text ${ParamName}" }` to embed parameter values. `{ "ref_attr": "LogicalId.attribute" }` resolves a named attribute of a created resource, except one carrying credential material — a trigger's or webhook's `secret` is refused with 400 VALIDATION_FAILED, since a formation is readable by anyone holding `formations:GetFormation`. Read those from the resource's own secret route instead.
|
|
2176
2176
|
*
|
|
2177
2177
|
*/
|
|
2178
2178
|
outputs?: {
|
|
@@ -3113,13 +3113,13 @@ type QuotaResourceProperties = {
|
|
|
3113
3113
|
/**
|
|
3114
3114
|
* The metric being capped
|
|
3115
3115
|
*/
|
|
3116
|
-
metric: 'requests' | 'tokens' | 'cost_usd';
|
|
3116
|
+
metric: 'requests' | 'tokens' | 'cost_usd' | 'storage_bytes';
|
|
3117
3117
|
/**
|
|
3118
|
-
* The window over which the metric is aggregated
|
|
3118
|
+
* The window over which the metric is aggregated. storage_bytes caps a stored total rather than a windowed one, so it takes current and refuses every other value; current is refused for every other metric.
|
|
3119
3119
|
*/
|
|
3120
|
-
window: 'rolling_1m' | 'rolling_1h' | 'rolling_24h' | 'calendar_month';
|
|
3120
|
+
window: 'rolling_1m' | 'rolling_1h' | 'rolling_24h' | 'calendar_month' | 'current';
|
|
3121
3121
|
/**
|
|
3122
|
-
* The cap. Positive integer for requests/tokens; fractional allowed for cost_usd.
|
|
3122
|
+
* The cap. Positive integer for requests/tokens/storage_bytes (bytes); fractional allowed for cost_usd.
|
|
3123
3123
|
*/
|
|
3124
3124
|
limit: number;
|
|
3125
3125
|
/**
|
|
@@ -3239,9 +3239,14 @@ type Formation = {
|
|
|
3239
3239
|
* Human-readable formation name
|
|
3240
3240
|
*/
|
|
3241
3241
|
name?: string;
|
|
3242
|
+
/**
|
|
3243
|
+
* The template as deployed. Credential-bearing properties — a `secret` resource's `value`, and any property a custom resource type declares `write_only` — read back as `{ "no_echo": true }` rather than the value that was supplied.
|
|
3244
|
+
*
|
|
3245
|
+
*/
|
|
3242
3246
|
template?: FormationTemplate;
|
|
3243
3247
|
/**
|
|
3244
|
-
* Resolved output values after stack deployment
|
|
3248
|
+
* Resolved output values after stack deployment. An output that resolved a credential attribute on a formation deployed before those were refused is omitted.
|
|
3249
|
+
*
|
|
3245
3250
|
*/
|
|
3246
3251
|
outputs?: {
|
|
3247
3252
|
[key: string]: string;
|
|
@@ -4281,19 +4286,19 @@ type QueueStats = {
|
|
|
4281
4286
|
*/
|
|
4282
4287
|
driver?: 'postgres' | 'sqs';
|
|
4283
4288
|
/**
|
|
4284
|
-
* Tasks waiting to be claimed now (unclaimed and past their `available_at`). Backoff-delayed tasks are excluded.
|
|
4289
|
+
* Tasks waiting to be claimed now (unclaimed and past their `available_at`). Backoff-delayed tasks are excluded. Summed over the caller's own projects when the caller is project-scoped.
|
|
4285
4290
|
*/
|
|
4286
4291
|
queue_depth?: number;
|
|
4287
4292
|
/**
|
|
4288
|
-
* Tasks currently claimed with a valid (unexpired) lease.
|
|
4293
|
+
* Tasks currently claimed with a valid (unexpired) lease. Summed over the caller's own projects when the caller is project-scoped.
|
|
4289
4294
|
*/
|
|
4290
4295
|
claimed_tasks?: number;
|
|
4291
4296
|
/**
|
|
4292
|
-
* Age in seconds of the oldest claimable-now task, or `null` when none are waiting.
|
|
4297
|
+
* Age in seconds of the oldest claimable-now task, or `null` when none are waiting. Also `null` for a project-scoped caller: the figure is deployment-wide.
|
|
4293
4298
|
*/
|
|
4294
4299
|
oldest_queued_age_seconds?: number | null;
|
|
4295
4300
|
/**
|
|
4296
|
-
* Claim-latency percentiles (time from a task becoming available to being claimed) over a rolling in-process window. `p50`/`p95` are `null` when no claim happened in the window.
|
|
4301
|
+
* Claim-latency percentiles (time from a task becoming available to being claimed) over a rolling in-process window. `p50`/`p95` are `null` when no claim happened in the window, and for a project-scoped caller: the window is deployment-wide.
|
|
4297
4302
|
*/
|
|
4298
4303
|
claim_latency_ms?: {
|
|
4299
4304
|
p50?: number | null;
|
|
@@ -5045,8 +5050,11 @@ type Quota = {
|
|
|
5045
5050
|
* Public id of the api key / agent / actor the quota applies to. For `api_key` and `agent` scope, NULL means all entities of that scope type in the project. For `actor` scope, NULL means one budget *per* actor rather than a pooled total across all actors.
|
|
5046
5051
|
*/
|
|
5047
5052
|
scope_ref?: string | null;
|
|
5048
|
-
metric?: 'requests' | 'tokens' | 'cost_usd';
|
|
5049
|
-
|
|
5053
|
+
metric?: 'requests' | 'tokens' | 'cost_usd' | 'storage_bytes';
|
|
5054
|
+
/**
|
|
5055
|
+
* The window the metric is aggregated over; `current` on storage_bytes, which caps a stored total and never resets.
|
|
5056
|
+
*/
|
|
5057
|
+
window?: 'rolling_1m' | 'rolling_1h' | 'rolling_24h' | 'calendar_month' | 'current';
|
|
5050
5058
|
limit?: number;
|
|
5051
5059
|
mode?: 'enforce' | 'monitor';
|
|
5052
5060
|
/**
|
|
@@ -5058,7 +5066,7 @@ type Quota = {
|
|
|
5058
5066
|
*/
|
|
5059
5067
|
on_unpriced?: 'block' | 'allow' | null;
|
|
5060
5068
|
/**
|
|
5061
|
-
* Current fixed-window usage for the requests metric. Null for token/cost quotas (which aggregate the usage meter at check time rather than keeping a counter) and in list responses.
|
|
5069
|
+
* Current fixed-window usage for the requests metric. Null for token/cost quotas (which aggregate the usage meter at check time rather than keeping a counter), null for storage_bytes (a stored total has no window and no counter — read the footprint from the storage meter), and null in list responses.
|
|
5062
5070
|
*/
|
|
5063
5071
|
current_usage?: {
|
|
5064
5072
|
window_key?: string;
|
|
@@ -5523,6 +5531,8 @@ type Tool = {
|
|
|
5523
5531
|
*
|
|
5524
5532
|
* Credential fields accept `{{secret:...}}` references and should use them — a tool is readable by anyone who can `GET /tools`, and the stored reference is what is echoed back, never the resolved value.
|
|
5525
5533
|
*
|
|
5534
|
+
* A credential written as a **literal** is stored and still sent on every call, but it is masked on every read: `secret_access_key`, `session_token` and `credentials` under `auth`, and any credential-named `headers` value (`Authorization`, `Cookie`, or a name containing `api-key`/`token`/`secret`/`password`), come back as `{"no_echo": true}`. The mask is an object rather than a string so a read-edit-write round trip fails the schema check instead of writing the placeholder in as the credential. A value carrying a `{{secret:...}}` reference is the wiring, not the credential, and stays readable.
|
|
5535
|
+
*
|
|
5526
5536
|
* `headers` values additionally accept `{{context:<key>}}` references, resolved per call from the caller's `tool_context`, so a per-user credential can be placed in the real header the target expects (`Authorization: Bearer {{context:ocaToken}}`) instead of only in a prefixed context header. Valid **only** inside `headers` — a context value is caller-supplied, so it may not steer the `url` — and a key missing from the `tool_context` at call time fails the tool call with `MISSING_TOOL_CONTEXT_KEY` rather than sending an empty credential. See the Tool Context reference.
|
|
5527
5537
|
*
|
|
5528
5538
|
*/
|
|
@@ -5530,7 +5540,7 @@ type Tool = {
|
|
|
5530
5540
|
[key: string]: unknown;
|
|
5531
5541
|
} | null;
|
|
5532
5542
|
/**
|
|
5533
|
-
* MCP server config (`url`, `headers`). `headers` values accept `{{secret:...}}` and `{{context:<key>}}` references, resolved right before the outbound MCP request; `url` accepts `{{secret:...}}` only.
|
|
5543
|
+
* MCP server config (`url`, `headers`). `headers` values accept `{{secret:...}}` and `{{context:<key>}}` references, resolved right before the outbound MCP request; `url` accepts `{{secret:...}}` only. A literal credential in `headers` is masked on read, exactly as in `execute`.
|
|
5534
5544
|
*/
|
|
5535
5545
|
mcp?: {
|
|
5536
5546
|
[key: string]: unknown;
|
|
@@ -5607,6 +5617,8 @@ type CreateToolRequest = {
|
|
|
5607
5617
|
*
|
|
5608
5618
|
* Credential fields accept `{{secret:...}}` references and should use them — a tool is readable by anyone who can `GET /tools`, and the stored reference is what is echoed back, never the resolved value.
|
|
5609
5619
|
*
|
|
5620
|
+
* A credential written as a **literal** is stored and still sent on every call, but it is masked on every read: `secret_access_key`, `session_token` and `credentials` under `auth`, and any credential-named `headers` value (`Authorization`, `Cookie`, or a name containing `api-key`/`token`/`secret`/`password`), come back as `{"no_echo": true}`. The mask is an object rather than a string so a read-edit-write round trip fails the schema check instead of writing the placeholder in as the credential. A value carrying a `{{secret:...}}` reference is the wiring, not the credential, and stays readable.
|
|
5621
|
+
*
|
|
5610
5622
|
* `headers` values additionally accept `{{context:<key>}}` references, resolved per call from the caller's `tool_context`, so a per-user credential can be placed in the real header the target expects (`Authorization: Bearer {{context:ocaToken}}`) instead of only in an `X-Soat-Context-<key>` header. Valid **only** inside `headers` — a context value is caller-supplied, so it may not steer the `url` — and a key missing from the `tool_context` at call time fails the tool call with `MISSING_TOOL_CONTEXT_KEY` rather than sending an empty credential. See the Tool Context reference.
|
|
5611
5623
|
*
|
|
5612
5624
|
*/
|
|
@@ -5614,7 +5626,7 @@ type CreateToolRequest = {
|
|
|
5614
5626
|
[key: string]: unknown;
|
|
5615
5627
|
};
|
|
5616
5628
|
/**
|
|
5617
|
-
* MCP server config (`url`, `headers`). `headers` values accept `{{secret:...}}` and `{{context:<key>}}` references, resolved right before the outbound MCP request; `url` accepts `{{secret:...}}` only.
|
|
5629
|
+
* MCP server config (`url`, `headers`). `headers` values accept `{{secret:...}}` and `{{context:<key>}}` references, resolved right before the outbound MCP request; `url` accepts `{{secret:...}}` only. A literal credential in `headers` is masked on read, exactly as in `execute`.
|
|
5618
5630
|
*/
|
|
5619
5631
|
mcp?: {
|
|
5620
5632
|
[key: string]: unknown;
|
|
@@ -5673,6 +5685,8 @@ type UpdateToolRequest = {
|
|
|
5673
5685
|
*
|
|
5674
5686
|
* Credential fields accept `{{secret:...}}` references and should use them — a tool is readable by anyone who can `GET /tools`, and the stored reference is what is echoed back, never the resolved value.
|
|
5675
5687
|
*
|
|
5688
|
+
* A credential written as a **literal** is stored and still sent on every call, but it is masked on every read: `secret_access_key`, `session_token` and `credentials` under `auth`, and any credential-named `headers` value (`Authorization`, `Cookie`, or a name containing `api-key`/`token`/`secret`/`password`), come back as `{"no_echo": true}`. The mask is an object rather than a string so a read-edit-write round trip fails the schema check instead of writing the placeholder in as the credential. A value carrying a `{{secret:...}}` reference is the wiring, not the credential, and stays readable.
|
|
5689
|
+
*
|
|
5676
5690
|
* `headers` values additionally accept `{{context:<key>}}` references, resolved per call from the caller's `tool_context`, so a per-user credential can be placed in the real header the target expects (`Authorization: Bearer {{context:ocaToken}}`) instead of only in an `X-Soat-Context-<key>` header. Valid **only** inside `headers` — a context value is caller-supplied, so it may not steer the `url` — and a key missing from the `tool_context` at call time fails the tool call with `MISSING_TOOL_CONTEXT_KEY` rather than sending an empty credential. See the Tool Context reference.
|
|
5677
5691
|
*
|
|
5678
5692
|
*/
|
|
@@ -5680,7 +5694,7 @@ type UpdateToolRequest = {
|
|
|
5680
5694
|
[key: string]: unknown;
|
|
5681
5695
|
} | null;
|
|
5682
5696
|
/**
|
|
5683
|
-
* MCP server config (`url`, `headers`). `headers` values accept `{{secret:...}}` and `{{context:<key>}}` references, resolved right before the outbound MCP request; `url` accepts `{{secret:...}}` only.
|
|
5697
|
+
* MCP server config (`url`, `headers`). `headers` values accept `{{secret:...}}` and `{{context:<key>}}` references, resolved right before the outbound MCP request; `url` accepts `{{secret:...}}` only. A literal credential in `headers` is masked on read, exactly as in `execute`.
|
|
5684
5698
|
*/
|
|
5685
5699
|
mcp?: {
|
|
5686
5700
|
[key: string]: unknown;
|
|
@@ -6659,7 +6673,7 @@ type ListActivityData = {
|
|
|
6659
6673
|
/**
|
|
6660
6674
|
* Filter by activity kind
|
|
6661
6675
|
*/
|
|
6662
|
-
kind?: 'action_executed' | 'approval_resolved' | 'exception_created' | 'schedule_fired';
|
|
6676
|
+
kind?: 'action_executed' | 'approval_created' | 'approval_resolved' | 'exception_created' | 'schedule_fired';
|
|
6663
6677
|
/**
|
|
6664
6678
|
* Filter by severity
|
|
6665
6679
|
*/
|
|
@@ -7643,7 +7657,7 @@ type CreateAiProviderData = {
|
|
|
7643
7657
|
*/
|
|
7644
7658
|
default_model: string;
|
|
7645
7659
|
/**
|
|
7646
|
-
* Secret ID containing API credentials
|
|
7660
|
+
* Secret ID containing API credentials. Required for `bedrock` and `vertex` unless `config.apiKey` carries one.
|
|
7647
7661
|
*/
|
|
7648
7662
|
secret_id?: string;
|
|
7649
7663
|
/**
|
|
@@ -8276,7 +8290,7 @@ type GetApprovalResponse = GetApprovalResponses[keyof GetApprovalResponses];
|
|
|
8276
8290
|
type ApproveApprovalData = {
|
|
8277
8291
|
body?: {
|
|
8278
8292
|
/**
|
|
8279
|
-
* Edited arguments to execute instead of the proposed ones
|
|
8293
|
+
* Edited arguments to execute instead of the proposed ones. Editing composes a new call, so it additionally requires permission to make that call: `tools:CallTool` on the tool, and for a `builtin` proposal the action's own IAM action.
|
|
8280
8294
|
*/
|
|
8281
8295
|
arguments?: {
|
|
8282
8296
|
[key: string]: unknown;
|
|
@@ -8293,7 +8307,7 @@ type ApproveApprovalData = {
|
|
|
8293
8307
|
};
|
|
8294
8308
|
type ApproveApprovalErrors = {
|
|
8295
8309
|
/**
|
|
8296
|
-
* Edited arguments are not a JSON object
|
|
8310
|
+
* Edited arguments are not a JSON object, or do not satisfy the tool's parameters schema
|
|
8297
8311
|
*/
|
|
8298
8312
|
400: unknown;
|
|
8299
8313
|
/**
|
|
@@ -8301,7 +8315,7 @@ type ApproveApprovalErrors = {
|
|
|
8301
8315
|
*/
|
|
8302
8316
|
401: unknown;
|
|
8303
8317
|
/**
|
|
8304
|
-
* Forbidden
|
|
8318
|
+
* Forbidden — including an edit by a caller who may resolve the item but not make the call it proposes
|
|
8305
8319
|
*/
|
|
8306
8320
|
403: unknown;
|
|
8307
8321
|
/**
|
|
@@ -9403,6 +9417,10 @@ type CreateDocumentErrors = {
|
|
|
9403
9417
|
* Forbidden
|
|
9404
9418
|
*/
|
|
9405
9419
|
403: ErrorResponse;
|
|
9420
|
+
/**
|
|
9421
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). Delete stored content, or raise the quota — no window reset clears a stored total, so no `Retry-After` is sent.
|
|
9422
|
+
*/
|
|
9423
|
+
409: ErrorResponse;
|
|
9406
9424
|
};
|
|
9407
9425
|
type CreateDocumentError = CreateDocumentErrors[keyof CreateDocumentErrors];
|
|
9408
9426
|
type CreateDocumentResponses = {
|
|
@@ -9468,7 +9486,7 @@ type IngestDocumentErrors = {
|
|
|
9468
9486
|
*/
|
|
9469
9487
|
403: ErrorResponse;
|
|
9470
9488
|
/**
|
|
9471
|
-
* The file already backs a Document (a file can only be ingested once
|
|
9489
|
+
* The file already backs a Document (a file can only be ingested once — use `POST /documents/{document_id}/ingest` to re-process the existing document, or upload a new copy of the file to ingest it separately), or the project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`; delete stored content or raise the quota — no `Retry-After` is sent, since no window reset clears a stored total).
|
|
9472
9490
|
*/
|
|
9473
9491
|
409: ErrorResponse;
|
|
9474
9492
|
/**
|
|
@@ -9687,6 +9705,10 @@ type ReingestDocumentErrors = {
|
|
|
9687
9705
|
* Document not found
|
|
9688
9706
|
*/
|
|
9689
9707
|
404: ErrorResponse;
|
|
9708
|
+
/**
|
|
9709
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). Delete stored content, or raise the quota — no window reset clears a stored total, so no `Retry-After` is sent.
|
|
9710
|
+
*/
|
|
9711
|
+
409: ErrorResponse;
|
|
9690
9712
|
/**
|
|
9691
9713
|
* The file is too large to re-ingest synchronously (`?wait=true`). Retry in background mode.
|
|
9692
9714
|
*/
|
|
@@ -9876,7 +9898,7 @@ type CreateEmbeddingsData = {
|
|
|
9876
9898
|
*/
|
|
9877
9899
|
input?: string;
|
|
9878
9900
|
/**
|
|
9879
|
-
* Batch of texts to embed.
|
|
9901
|
+
* Batch of texts to embed. At most 256 per request — each input is one call to the embedding model, so a larger batch is refused (`VALIDATION_FAILED`) rather than queued. Split it across requests.
|
|
9880
9902
|
*/
|
|
9881
9903
|
inputs?: Array<string>;
|
|
9882
9904
|
};
|
|
@@ -10196,6 +10218,10 @@ type CreateDatasetItemErrors = {
|
|
|
10196
10218
|
* Dataset not found
|
|
10197
10219
|
*/
|
|
10198
10220
|
404: unknown;
|
|
10221
|
+
/**
|
|
10222
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). A fixture is a corpus write like a document, so it is bounded by the same cap; delete stored content or raise the quota — no `Retry-After` is sent, since no window reset clears a stored total.
|
|
10223
|
+
*/
|
|
10224
|
+
409: unknown;
|
|
10199
10225
|
};
|
|
10200
10226
|
type CreateDatasetItemResponses = {
|
|
10201
10227
|
/**
|
|
@@ -10248,7 +10274,7 @@ type CreateDatasetItemFromGenerationErrors = {
|
|
|
10248
10274
|
*/
|
|
10249
10275
|
404: unknown;
|
|
10250
10276
|
/**
|
|
10251
|
-
* The generation has not completed,
|
|
10277
|
+
* The generation has not completed, its content was never stored or has been purged, or the project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`; delete stored content or raise the quota — no `Retry-After` is sent, since no window reset clears a stored total)
|
|
10252
10278
|
*/
|
|
10253
10279
|
409: unknown;
|
|
10254
10280
|
};
|
|
@@ -11036,6 +11062,10 @@ type CreateFileData = {
|
|
|
11036
11062
|
url: '/api/v1/files';
|
|
11037
11063
|
};
|
|
11038
11064
|
type CreateFileErrors = {
|
|
11065
|
+
/**
|
|
11066
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). Delete stored content, or raise the quota — no window reset clears a stored total, so no `Retry-After` is sent.
|
|
11067
|
+
*/
|
|
11068
|
+
409: ErrorResponse;
|
|
11039
11069
|
/**
|
|
11040
11070
|
* Internal server error
|
|
11041
11071
|
*/
|
|
@@ -11089,6 +11119,14 @@ type UploadFileErrors = {
|
|
|
11089
11119
|
* Insufficient permissions
|
|
11090
11120
|
*/
|
|
11091
11121
|
403: ErrorResponse;
|
|
11122
|
+
/**
|
|
11123
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). Delete stored content, or raise the quota — no window reset clears a stored total, so no `Retry-After` is sent.
|
|
11124
|
+
*/
|
|
11125
|
+
409: ErrorResponse;
|
|
11126
|
+
/**
|
|
11127
|
+
* The upload is over this deployment's byte ceiling (`UPLOAD_TOO_LARGE`; `FILE_UPLOAD_MAX_BYTES`, 25 MB by default). The request is refused while the body is still streaming, so nothing was stored.
|
|
11128
|
+
*/
|
|
11129
|
+
413: ErrorResponse;
|
|
11092
11130
|
};
|
|
11093
11131
|
type UploadFileError = UploadFileErrors[keyof UploadFileErrors];
|
|
11094
11132
|
type UploadFileResponses = {
|
|
@@ -11117,6 +11155,10 @@ type UploadFileBase64Errors = {
|
|
|
11117
11155
|
* Insufficient permissions
|
|
11118
11156
|
*/
|
|
11119
11157
|
403: ErrorResponse;
|
|
11158
|
+
/**
|
|
11159
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). Delete stored content, or raise the quota — no window reset clears a stored total, so no `Retry-After` is sent.
|
|
11160
|
+
*/
|
|
11161
|
+
409: ErrorResponse;
|
|
11120
11162
|
};
|
|
11121
11163
|
type UploadFileBase64Error = UploadFileBase64Errors[keyof UploadFileBase64Errors];
|
|
11122
11164
|
type UploadFileBase64Responses = {
|
|
@@ -11175,13 +11217,17 @@ type UploadFileWithTokenErrors = {
|
|
|
11175
11217
|
*/
|
|
11176
11218
|
404: ErrorResponse;
|
|
11177
11219
|
/**
|
|
11178
|
-
* Upload token already used
|
|
11220
|
+
* Upload token already used, or the project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`)
|
|
11179
11221
|
*/
|
|
11180
11222
|
409: ErrorResponse;
|
|
11181
11223
|
/**
|
|
11182
11224
|
* Upload token expired
|
|
11183
11225
|
*/
|
|
11184
11226
|
410: ErrorResponse;
|
|
11227
|
+
/**
|
|
11228
|
+
* The upload is over this deployment's byte ceiling (`UPLOAD_TOO_LARGE`; `FILE_UPLOAD_MAX_BYTES`, 25 MB by default). The request is refused while the body is still streaming, so nothing was stored.
|
|
11229
|
+
*/
|
|
11230
|
+
413: ErrorResponse;
|
|
11185
11231
|
};
|
|
11186
11232
|
type UploadFileWithTokenError = UploadFileWithTokenErrors[keyof UploadFileWithTokenErrors];
|
|
11187
11233
|
type UploadFileWithTokenResponses = {
|
|
@@ -12394,7 +12440,7 @@ type CreateIngestionRuleData = {
|
|
|
12394
12440
|
*/
|
|
12395
12441
|
project_id?: string;
|
|
12396
12442
|
/**
|
|
12397
|
-
* MIME type glob matched against a file's content_type
|
|
12443
|
+
* MIME type glob matched against a file's content_type. At most 4 wildcards and 255 characters — a MIME glob needs one on each side of the slash at most.
|
|
12398
12444
|
*/
|
|
12399
12445
|
content_type_glob: string;
|
|
12400
12446
|
/**
|
|
@@ -12541,6 +12587,9 @@ type GetIngestionRuleResponses = {
|
|
|
12541
12587
|
type GetIngestionRuleResponse = GetIngestionRuleResponses[keyof GetIngestionRuleResponses];
|
|
12542
12588
|
type UpdateIngestionRuleData = {
|
|
12543
12589
|
body: {
|
|
12590
|
+
/**
|
|
12591
|
+
* MIME type glob matched against a file's content_type. At most 4 wildcards and 255 characters.
|
|
12592
|
+
*/
|
|
12544
12593
|
content_type_glob?: string;
|
|
12545
12594
|
tool_id?: string | null;
|
|
12546
12595
|
agent_id?: string | null;
|
|
@@ -12613,7 +12662,7 @@ type SearchKnowledgeData = {
|
|
|
12613
12662
|
*/
|
|
12614
12663
|
min_score?: number;
|
|
12615
12664
|
/**
|
|
12616
|
-
* Maximum number of results to return (default 10)
|
|
12665
|
+
* Maximum number of results to return (default 10). A value above 100 is clamped to 100 — the ceiling bounds the vector scan this one request performs, so a larger `limit` returns everything there is up to that many rows rather than being refused.
|
|
12617
12666
|
*/
|
|
12618
12667
|
limit?: number;
|
|
12619
12668
|
/**
|
|
@@ -12974,6 +13023,10 @@ type CreateMemoryEntryErrors = {
|
|
|
12974
13023
|
* Memory not found
|
|
12975
13024
|
*/
|
|
12976
13025
|
404: unknown;
|
|
13026
|
+
/**
|
|
13027
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). Delete stored content, or raise the quota — no window reset clears a stored total, so no `Retry-After` is sent.
|
|
13028
|
+
*/
|
|
13029
|
+
409: unknown;
|
|
12977
13030
|
/**
|
|
12978
13031
|
* Internal server error
|
|
12979
13032
|
*/
|
|
@@ -14456,13 +14509,13 @@ type CreateQuotaData = {
|
|
|
14456
14509
|
/**
|
|
14457
14510
|
* The metric being capped
|
|
14458
14511
|
*/
|
|
14459
|
-
metric: 'requests' | 'tokens' | 'cost_usd';
|
|
14512
|
+
metric: 'requests' | 'tokens' | 'cost_usd' | 'storage_bytes';
|
|
14460
14513
|
/**
|
|
14461
|
-
* The window over which the metric is aggregated
|
|
14514
|
+
* The window over which the metric is aggregated. `current` is the only accepted value for storage_bytes (a stored total is not aggregated over time) and is refused for every other metric.
|
|
14462
14515
|
*/
|
|
14463
|
-
window: 'rolling_1m' | 'rolling_1h' | 'rolling_24h' | 'calendar_month';
|
|
14516
|
+
window: 'rolling_1m' | 'rolling_1h' | 'rolling_24h' | 'calendar_month' | 'current';
|
|
14464
14517
|
/**
|
|
14465
|
-
* The cap. Must be a positive integer for requests/tokens; fractional values are allowed for cost_usd.
|
|
14518
|
+
* The cap. Must be a positive integer for requests/tokens/storage_bytes (bytes); fractional values are allowed for cost_usd.
|
|
14466
14519
|
*/
|
|
14467
14520
|
limit: number;
|
|
14468
14521
|
/**
|
|
@@ -17659,7 +17712,14 @@ declare class AiProviders {
|
|
|
17659
17712
|
/**
|
|
17660
17713
|
* Create an AI provider
|
|
17661
17714
|
*
|
|
17662
|
-
* Creates a new LLM provider configuration
|
|
17715
|
+
* Creates a new LLM provider configuration.
|
|
17716
|
+
*
|
|
17717
|
+
* A `bedrock` or `vertex` record must carry a credential of its own — a
|
|
17718
|
+
* linked `secret_id`, or an `apiKey` in `config`. Without one the provider
|
|
17719
|
+
* SDK signs with the server's own credentials (the AWS default credential
|
|
17720
|
+
* chain, Google Application Default Credentials), which is refused with
|
|
17721
|
+
* `400 VALIDATION_FAILED` unless the deployment allows it.
|
|
17722
|
+
*
|
|
17663
17723
|
*/
|
|
17664
17724
|
static createAiProvider<ThrowOnError extends boolean = false>(options: Options<CreateAiProviderData, ThrowOnError>): RequestResult<CreateAiProviderResponses, CreateAiProviderErrors, ThrowOnError>;
|
|
17665
17725
|
/**
|
|
@@ -17689,7 +17749,7 @@ declare class AiProviders {
|
|
|
17689
17749
|
* Asks the provider which models it can run, using this provider record's own credentials and configuration, and returns provider-native model ids — the same strings `default_model` and an agent's `model` carry.
|
|
17690
17750
|
* Which models are reachable is a property of the credential, not of the provider type: a Vertex provider sees only the publisher models its Google Cloud project and location serve, and a Bedrock provider only the foundation models enabled in its region. Reading the list is how a caller avoids pinning a model that fails at generation time.
|
|
17691
17751
|
* Not every provider type can answer. `azure` lists deployments an operator named rather than models, and `ollama` lists whatever was pulled onto that host, so both return `400 MODEL_LISTING_UNSUPPORTED`.
|
|
17692
|
-
* Listing resolves credentials the same way generation does, so a record that can generate can list. The API-key types (`openai`, `groq`, `xai`, `gateway`, `custom`, `anthropic`, `google`) use the record's linked secret and cannot list without one. `bedrock` and `vertex` use the linked secret
|
|
17752
|
+
* Listing resolves credentials the same way generation does, so a record that can generate can list. The API-key types (`openai`, `groq`, `xai`, `gateway`, `custom`, `anthropic`, `google`) use the record's linked secret and cannot list without one. `bedrock` and `vertex` use the linked secret — IAM keys or a Bedrock API key, a Google service-account key. A record with no `secret_id` would fall back to the server's own credentials (the AWS default credential chain, Google Application Default Credentials); it can list only on a deployment that allows a record to use them, and returns `400 AI_PROVIDER_MISCONFIGURED` otherwise.
|
|
17693
17753
|
* A Vertex record needs no `config.project` when its secret is a service-account key, since the key file names its own project. A Vertex record in express mode (API key) cannot list at all: the publisher-model listing rejects API keys and needs a credential that asserts a principal, so it returns `400 MODEL_LISTING_UNSUPPORTED`.
|
|
17694
17754
|
* The Vertex answer is the publisher catalogue the record's `config.location` region serves. The project behind the credential is billed and quota'd for the call but does not filter the result, so a listed model may still be unavailable to that project at generation time.
|
|
17695
17755
|
*
|
|
@@ -17714,7 +17774,11 @@ declare class ApiKeys {
|
|
|
17714
17774
|
/**
|
|
17715
17775
|
* List API keys
|
|
17716
17776
|
*
|
|
17717
|
-
* Lists API keys accessible to the caller. - JWT admin: returns all API keys. - JWT regular user: returns only the user's own API keys. - Project-scoped credential (API key or OAuth token): returns
|
|
17777
|
+
* Lists API keys accessible to the caller. - JWT admin: returns all API keys. - JWT regular user: returns only the user's own API keys. - Project-scoped credential (API key or OAuth token): returns the caller's own
|
|
17778
|
+
* keys scoped to that project, or every key scoped to it when the credential
|
|
17779
|
+
* holds `api-keys:ListApiKeys` on the project. Confinement to a project is not
|
|
17780
|
+
* authority over it, and a key's metadata names its owner, prefix and attached
|
|
17781
|
+
* policies.
|
|
17718
17782
|
*
|
|
17719
17783
|
*/
|
|
17720
17784
|
static listApiKeys<ThrowOnError extends boolean = false>(options?: Options<ListApiKeysData, ThrowOnError>): RequestResult<ListApiKeysResponses, ListApiKeysErrors, ThrowOnError>;
|
|
@@ -18648,7 +18712,8 @@ declare class Orchestrations {
|
|
|
18648
18712
|
/**
|
|
18649
18713
|
* Get orchestration queue stats
|
|
18650
18714
|
*
|
|
18651
|
-
* Returns a point-in-time snapshot of the orchestration run queue: how many tasks are waiting to be claimed (`queue_depth`), how many are currently claimed with a valid lease (`claimed_tasks`), the age of the oldest waiting task, recent claim-latency percentiles over a rolling in-process window, and a per-project breakdown. Intended for admin/operator policies; guarded by `orchestrations:GetQueueStats`.
|
|
18715
|
+
* Returns a point-in-time snapshot of the orchestration run queue: how many tasks are waiting to be claimed (`queue_depth`), how many are currently claimed with a valid lease (`claimed_tasks`), the age of the oldest waiting task, recent claim-latency percentiles over a rolling in-process window, and a per-project breakdown. Intended for admin/operator policies; guarded by `orchestrations:GetQueueStats`.
|
|
18716
|
+
* Every figure is scoped to what the caller may see. A project-scoped caller gets `per_project` for their own projects only, `queue_depth` and `claimed_tasks` summed over those same projects, and `null` for `oldest_queued_age_seconds` and the `claim_latency_ms` percentiles — both describe the whole deployment and cannot be narrowed, so they are withheld rather than approximated. An unrestricted caller (the action granted on every project) gets the deployment-wide figures.
|
|
18652
18717
|
*
|
|
18653
18718
|
*/
|
|
18654
18719
|
static getQueueStats<ThrowOnError extends boolean = false>(options?: Options<GetQueueStatsData, ThrowOnError>): RequestResult<GetQueueStatsResponses, GetQueueStatsErrors, ThrowOnError>;
|
|
@@ -18835,7 +18900,9 @@ declare class Quotas {
|
|
|
18835
18900
|
/**
|
|
18836
18901
|
* Create a quota
|
|
18837
18902
|
*
|
|
18838
|
-
* Creates a project-scoped quota. `requests` is valid for `scope: project`/`api_key`; `tokens` and `cost_usd` are valid for `scope: project`/`agent`/`actor
|
|
18903
|
+
* Creates a project-scoped quota. `requests` is valid for `scope: project`/`api_key`; `tokens` and `cost_usd` are valid for `scope: project`/`agent`/`actor`; `storage_bytes` is valid for `scope: project` only. Any other scope/metric pair is rejected with 400 (no attribution exists to enforce it). An `actor` quota caps one end user's spend, matched from the generation's session; a null `scope_ref` means one budget *per* actor rather than a pooled project total. A `cost_usd` quota may name one `meter_type` to cap; omitting it caps every priced meter. A duplicate quota (same project, scope, scope_ref, metric, window, meter_type) is rejected with 409.
|
|
18904
|
+
*
|
|
18905
|
+
* `storage_bytes` caps a stored total rather than a windowed one, so it takes `window: current` and every other metric refuses that value (400 either way). It is enforced at the corpus write paths — file upload and create, document create, document ingest and re-ingest, memory-entry create — with `409 QUOTA_STORAGE_EXCEEDED` and no `Retry-After`, since no window reset clears a footprint.
|
|
18839
18906
|
*/
|
|
18840
18907
|
static createQuota<ThrowOnError extends boolean = false>(options: Options<CreateQuotaData, ThrowOnError>): RequestResult<CreateQuotaResponses, CreateQuotaErrors, ThrowOnError>;
|
|
18841
18908
|
/**
|
|
@@ -19077,6 +19144,7 @@ declare class Tools {
|
|
|
19077
19144
|
* Directly invokes a tool and returns its output. Supported for `http`, `builtin`, `mcp`, and `pipeline` tools. `client` tools cannot be invoked server-side and will return 422. A `pipeline` tool runs its declared steps in order and returns the mapped `output` (or the last step's output); `action` is ignored and `input` is the pipeline input.
|
|
19078
19145
|
* For `builtin` and `mcp` tools the `action` field is required and identifies which action (SOAT) or tool name (MCP) to invoke. For `http` tools `action` is ignored. When a `builtin` or `mcp` tool declares an `actions` allowlist, an action outside it is rejected with `400 VALIDATION_FAILED` ("not available on this tool") before any outbound request is made.
|
|
19079
19146
|
* `preset_parameters` stored on the tool are pinned over the caller-supplied `input` before execution: a key the tool presets keeps its preset value even when `input` sets it. Keys the presets do not name are taken from `input` as sent.
|
|
19147
|
+
* Guardrails attached to the tool or to its project adjudicate the call before dispatch, composing project + tool scope. A call this route cannot await a decision on — class C (human sign-off), class D, or a class-B tripwire — is refused with `422 TOOL_DISPATCH_FAILED`, whose `meta` carries the `tool_id` and the `outcome`. A `pipeline` tool is adjudicated before its first step runs, and every step is adjudicated as the call of that tool it is.
|
|
19080
19148
|
*
|
|
19081
19149
|
*/
|
|
19082
19150
|
static callTool<ThrowOnError extends boolean = false>(options: Options<CallToolData, ThrowOnError>): RequestResult<CallToolResponses, CallToolErrors, ThrowOnError>;
|
|
@@ -19141,7 +19209,8 @@ declare class Triggers {
|
|
|
19141
19209
|
/**
|
|
19142
19210
|
* Update a trigger
|
|
19143
19211
|
*
|
|
19144
|
-
* Updates an existing trigger's configuration. The type is immutable.
|
|
19212
|
+
* Updates an existing trigger's configuration. The type is immutable. Changing `target_type` or `target_id` re-checks the target-start action (`orchestrations:StartRun`, `agents:CreateAgentGeneration` or `tools:CallTool`) against the resulting target, because a firing runs with the trigger creator's authority rather than the updater's. A caller who could not start the new target is answered `403` and the trigger keeps the target it had.
|
|
19213
|
+
*
|
|
19145
19214
|
*/
|
|
19146
19215
|
static updateTrigger<ThrowOnError extends boolean = false>(options: Options<UpdateTriggerData, ThrowOnError>): RequestResult<UpdateTriggerResponses, UpdateTriggerErrors, ThrowOnError>;
|
|
19147
19216
|
/**
|
package/dist/index.d.mts
CHANGED
|
@@ -340,7 +340,7 @@ type ActivityEntry = {
|
|
|
340
340
|
/**
|
|
341
341
|
* How the entry was produced
|
|
342
342
|
*/
|
|
343
|
-
kind?: 'action_executed' | 'approval_resolved' | 'exception_created' | 'schedule_fired';
|
|
343
|
+
kind?: 'action_executed' | 'approval_created' | 'approval_resolved' | 'exception_created' | 'schedule_fired';
|
|
344
344
|
severity?: 'info' | 'warning' | 'critical';
|
|
345
345
|
/**
|
|
346
346
|
* One-line, human-readable description
|
|
@@ -2172,7 +2172,7 @@ type FormationTemplate = {
|
|
|
2172
2172
|
[key: string]: ResourceDeclaration;
|
|
2173
2173
|
};
|
|
2174
2174
|
/**
|
|
2175
|
-
* Map of output names to values. Values may use `{ "ref": "logicalId" }` to reference physical IDs of created resources, or `{ "param": "ParamName" }` and `{ "sub": "text ${ParamName}" }` to embed parameter values.
|
|
2175
|
+
* Map of output names to values. Values may use `{ "ref": "logicalId" }` to reference physical IDs of created resources, or `{ "param": "ParamName" }` and `{ "sub": "text ${ParamName}" }` to embed parameter values. `{ "ref_attr": "LogicalId.attribute" }` resolves a named attribute of a created resource, except one carrying credential material — a trigger's or webhook's `secret` is refused with 400 VALIDATION_FAILED, since a formation is readable by anyone holding `formations:GetFormation`. Read those from the resource's own secret route instead.
|
|
2176
2176
|
*
|
|
2177
2177
|
*/
|
|
2178
2178
|
outputs?: {
|
|
@@ -3113,13 +3113,13 @@ type QuotaResourceProperties = {
|
|
|
3113
3113
|
/**
|
|
3114
3114
|
* The metric being capped
|
|
3115
3115
|
*/
|
|
3116
|
-
metric: 'requests' | 'tokens' | 'cost_usd';
|
|
3116
|
+
metric: 'requests' | 'tokens' | 'cost_usd' | 'storage_bytes';
|
|
3117
3117
|
/**
|
|
3118
|
-
* The window over which the metric is aggregated
|
|
3118
|
+
* The window over which the metric is aggregated. storage_bytes caps a stored total rather than a windowed one, so it takes current and refuses every other value; current is refused for every other metric.
|
|
3119
3119
|
*/
|
|
3120
|
-
window: 'rolling_1m' | 'rolling_1h' | 'rolling_24h' | 'calendar_month';
|
|
3120
|
+
window: 'rolling_1m' | 'rolling_1h' | 'rolling_24h' | 'calendar_month' | 'current';
|
|
3121
3121
|
/**
|
|
3122
|
-
* The cap. Positive integer for requests/tokens; fractional allowed for cost_usd.
|
|
3122
|
+
* The cap. Positive integer for requests/tokens/storage_bytes (bytes); fractional allowed for cost_usd.
|
|
3123
3123
|
*/
|
|
3124
3124
|
limit: number;
|
|
3125
3125
|
/**
|
|
@@ -3239,9 +3239,14 @@ type Formation = {
|
|
|
3239
3239
|
* Human-readable formation name
|
|
3240
3240
|
*/
|
|
3241
3241
|
name?: string;
|
|
3242
|
+
/**
|
|
3243
|
+
* The template as deployed. Credential-bearing properties — a `secret` resource's `value`, and any property a custom resource type declares `write_only` — read back as `{ "no_echo": true }` rather than the value that was supplied.
|
|
3244
|
+
*
|
|
3245
|
+
*/
|
|
3242
3246
|
template?: FormationTemplate;
|
|
3243
3247
|
/**
|
|
3244
|
-
* Resolved output values after stack deployment
|
|
3248
|
+
* Resolved output values after stack deployment. An output that resolved a credential attribute on a formation deployed before those were refused is omitted.
|
|
3249
|
+
*
|
|
3245
3250
|
*/
|
|
3246
3251
|
outputs?: {
|
|
3247
3252
|
[key: string]: string;
|
|
@@ -4281,19 +4286,19 @@ type QueueStats = {
|
|
|
4281
4286
|
*/
|
|
4282
4287
|
driver?: 'postgres' | 'sqs';
|
|
4283
4288
|
/**
|
|
4284
|
-
* Tasks waiting to be claimed now (unclaimed and past their `available_at`). Backoff-delayed tasks are excluded.
|
|
4289
|
+
* Tasks waiting to be claimed now (unclaimed and past their `available_at`). Backoff-delayed tasks are excluded. Summed over the caller's own projects when the caller is project-scoped.
|
|
4285
4290
|
*/
|
|
4286
4291
|
queue_depth?: number;
|
|
4287
4292
|
/**
|
|
4288
|
-
* Tasks currently claimed with a valid (unexpired) lease.
|
|
4293
|
+
* Tasks currently claimed with a valid (unexpired) lease. Summed over the caller's own projects when the caller is project-scoped.
|
|
4289
4294
|
*/
|
|
4290
4295
|
claimed_tasks?: number;
|
|
4291
4296
|
/**
|
|
4292
|
-
* Age in seconds of the oldest claimable-now task, or `null` when none are waiting.
|
|
4297
|
+
* Age in seconds of the oldest claimable-now task, or `null` when none are waiting. Also `null` for a project-scoped caller: the figure is deployment-wide.
|
|
4293
4298
|
*/
|
|
4294
4299
|
oldest_queued_age_seconds?: number | null;
|
|
4295
4300
|
/**
|
|
4296
|
-
* Claim-latency percentiles (time from a task becoming available to being claimed) over a rolling in-process window. `p50`/`p95` are `null` when no claim happened in the window.
|
|
4301
|
+
* Claim-latency percentiles (time from a task becoming available to being claimed) over a rolling in-process window. `p50`/`p95` are `null` when no claim happened in the window, and for a project-scoped caller: the window is deployment-wide.
|
|
4297
4302
|
*/
|
|
4298
4303
|
claim_latency_ms?: {
|
|
4299
4304
|
p50?: number | null;
|
|
@@ -5045,8 +5050,11 @@ type Quota = {
|
|
|
5045
5050
|
* Public id of the api key / agent / actor the quota applies to. For `api_key` and `agent` scope, NULL means all entities of that scope type in the project. For `actor` scope, NULL means one budget *per* actor rather than a pooled total across all actors.
|
|
5046
5051
|
*/
|
|
5047
5052
|
scope_ref?: string | null;
|
|
5048
|
-
metric?: 'requests' | 'tokens' | 'cost_usd';
|
|
5049
|
-
|
|
5053
|
+
metric?: 'requests' | 'tokens' | 'cost_usd' | 'storage_bytes';
|
|
5054
|
+
/**
|
|
5055
|
+
* The window the metric is aggregated over; `current` on storage_bytes, which caps a stored total and never resets.
|
|
5056
|
+
*/
|
|
5057
|
+
window?: 'rolling_1m' | 'rolling_1h' | 'rolling_24h' | 'calendar_month' | 'current';
|
|
5050
5058
|
limit?: number;
|
|
5051
5059
|
mode?: 'enforce' | 'monitor';
|
|
5052
5060
|
/**
|
|
@@ -5058,7 +5066,7 @@ type Quota = {
|
|
|
5058
5066
|
*/
|
|
5059
5067
|
on_unpriced?: 'block' | 'allow' | null;
|
|
5060
5068
|
/**
|
|
5061
|
-
* Current fixed-window usage for the requests metric. Null for token/cost quotas (which aggregate the usage meter at check time rather than keeping a counter) and in list responses.
|
|
5069
|
+
* Current fixed-window usage for the requests metric. Null for token/cost quotas (which aggregate the usage meter at check time rather than keeping a counter), null for storage_bytes (a stored total has no window and no counter — read the footprint from the storage meter), and null in list responses.
|
|
5062
5070
|
*/
|
|
5063
5071
|
current_usage?: {
|
|
5064
5072
|
window_key?: string;
|
|
@@ -5523,6 +5531,8 @@ type Tool = {
|
|
|
5523
5531
|
*
|
|
5524
5532
|
* Credential fields accept `{{secret:...}}` references and should use them — a tool is readable by anyone who can `GET /tools`, and the stored reference is what is echoed back, never the resolved value.
|
|
5525
5533
|
*
|
|
5534
|
+
* A credential written as a **literal** is stored and still sent on every call, but it is masked on every read: `secret_access_key`, `session_token` and `credentials` under `auth`, and any credential-named `headers` value (`Authorization`, `Cookie`, or a name containing `api-key`/`token`/`secret`/`password`), come back as `{"no_echo": true}`. The mask is an object rather than a string so a read-edit-write round trip fails the schema check instead of writing the placeholder in as the credential. A value carrying a `{{secret:...}}` reference is the wiring, not the credential, and stays readable.
|
|
5535
|
+
*
|
|
5526
5536
|
* `headers` values additionally accept `{{context:<key>}}` references, resolved per call from the caller's `tool_context`, so a per-user credential can be placed in the real header the target expects (`Authorization: Bearer {{context:ocaToken}}`) instead of only in a prefixed context header. Valid **only** inside `headers` — a context value is caller-supplied, so it may not steer the `url` — and a key missing from the `tool_context` at call time fails the tool call with `MISSING_TOOL_CONTEXT_KEY` rather than sending an empty credential. See the Tool Context reference.
|
|
5527
5537
|
*
|
|
5528
5538
|
*/
|
|
@@ -5530,7 +5540,7 @@ type Tool = {
|
|
|
5530
5540
|
[key: string]: unknown;
|
|
5531
5541
|
} | null;
|
|
5532
5542
|
/**
|
|
5533
|
-
* MCP server config (`url`, `headers`). `headers` values accept `{{secret:...}}` and `{{context:<key>}}` references, resolved right before the outbound MCP request; `url` accepts `{{secret:...}}` only.
|
|
5543
|
+
* MCP server config (`url`, `headers`). `headers` values accept `{{secret:...}}` and `{{context:<key>}}` references, resolved right before the outbound MCP request; `url` accepts `{{secret:...}}` only. A literal credential in `headers` is masked on read, exactly as in `execute`.
|
|
5534
5544
|
*/
|
|
5535
5545
|
mcp?: {
|
|
5536
5546
|
[key: string]: unknown;
|
|
@@ -5607,6 +5617,8 @@ type CreateToolRequest = {
|
|
|
5607
5617
|
*
|
|
5608
5618
|
* Credential fields accept `{{secret:...}}` references and should use them — a tool is readable by anyone who can `GET /tools`, and the stored reference is what is echoed back, never the resolved value.
|
|
5609
5619
|
*
|
|
5620
|
+
* A credential written as a **literal** is stored and still sent on every call, but it is masked on every read: `secret_access_key`, `session_token` and `credentials` under `auth`, and any credential-named `headers` value (`Authorization`, `Cookie`, or a name containing `api-key`/`token`/`secret`/`password`), come back as `{"no_echo": true}`. The mask is an object rather than a string so a read-edit-write round trip fails the schema check instead of writing the placeholder in as the credential. A value carrying a `{{secret:...}}` reference is the wiring, not the credential, and stays readable.
|
|
5621
|
+
*
|
|
5610
5622
|
* `headers` values additionally accept `{{context:<key>}}` references, resolved per call from the caller's `tool_context`, so a per-user credential can be placed in the real header the target expects (`Authorization: Bearer {{context:ocaToken}}`) instead of only in an `X-Soat-Context-<key>` header. Valid **only** inside `headers` — a context value is caller-supplied, so it may not steer the `url` — and a key missing from the `tool_context` at call time fails the tool call with `MISSING_TOOL_CONTEXT_KEY` rather than sending an empty credential. See the Tool Context reference.
|
|
5611
5623
|
*
|
|
5612
5624
|
*/
|
|
@@ -5614,7 +5626,7 @@ type CreateToolRequest = {
|
|
|
5614
5626
|
[key: string]: unknown;
|
|
5615
5627
|
};
|
|
5616
5628
|
/**
|
|
5617
|
-
* MCP server config (`url`, `headers`). `headers` values accept `{{secret:...}}` and `{{context:<key>}}` references, resolved right before the outbound MCP request; `url` accepts `{{secret:...}}` only.
|
|
5629
|
+
* MCP server config (`url`, `headers`). `headers` values accept `{{secret:...}}` and `{{context:<key>}}` references, resolved right before the outbound MCP request; `url` accepts `{{secret:...}}` only. A literal credential in `headers` is masked on read, exactly as in `execute`.
|
|
5618
5630
|
*/
|
|
5619
5631
|
mcp?: {
|
|
5620
5632
|
[key: string]: unknown;
|
|
@@ -5673,6 +5685,8 @@ type UpdateToolRequest = {
|
|
|
5673
5685
|
*
|
|
5674
5686
|
* Credential fields accept `{{secret:...}}` references and should use them — a tool is readable by anyone who can `GET /tools`, and the stored reference is what is echoed back, never the resolved value.
|
|
5675
5687
|
*
|
|
5688
|
+
* A credential written as a **literal** is stored and still sent on every call, but it is masked on every read: `secret_access_key`, `session_token` and `credentials` under `auth`, and any credential-named `headers` value (`Authorization`, `Cookie`, or a name containing `api-key`/`token`/`secret`/`password`), come back as `{"no_echo": true}`. The mask is an object rather than a string so a read-edit-write round trip fails the schema check instead of writing the placeholder in as the credential. A value carrying a `{{secret:...}}` reference is the wiring, not the credential, and stays readable.
|
|
5689
|
+
*
|
|
5676
5690
|
* `headers` values additionally accept `{{context:<key>}}` references, resolved per call from the caller's `tool_context`, so a per-user credential can be placed in the real header the target expects (`Authorization: Bearer {{context:ocaToken}}`) instead of only in an `X-Soat-Context-<key>` header. Valid **only** inside `headers` — a context value is caller-supplied, so it may not steer the `url` — and a key missing from the `tool_context` at call time fails the tool call with `MISSING_TOOL_CONTEXT_KEY` rather than sending an empty credential. See the Tool Context reference.
|
|
5677
5691
|
*
|
|
5678
5692
|
*/
|
|
@@ -5680,7 +5694,7 @@ type UpdateToolRequest = {
|
|
|
5680
5694
|
[key: string]: unknown;
|
|
5681
5695
|
} | null;
|
|
5682
5696
|
/**
|
|
5683
|
-
* MCP server config (`url`, `headers`). `headers` values accept `{{secret:...}}` and `{{context:<key>}}` references, resolved right before the outbound MCP request; `url` accepts `{{secret:...}}` only.
|
|
5697
|
+
* MCP server config (`url`, `headers`). `headers` values accept `{{secret:...}}` and `{{context:<key>}}` references, resolved right before the outbound MCP request; `url` accepts `{{secret:...}}` only. A literal credential in `headers` is masked on read, exactly as in `execute`.
|
|
5684
5698
|
*/
|
|
5685
5699
|
mcp?: {
|
|
5686
5700
|
[key: string]: unknown;
|
|
@@ -6659,7 +6673,7 @@ type ListActivityData = {
|
|
|
6659
6673
|
/**
|
|
6660
6674
|
* Filter by activity kind
|
|
6661
6675
|
*/
|
|
6662
|
-
kind?: 'action_executed' | 'approval_resolved' | 'exception_created' | 'schedule_fired';
|
|
6676
|
+
kind?: 'action_executed' | 'approval_created' | 'approval_resolved' | 'exception_created' | 'schedule_fired';
|
|
6663
6677
|
/**
|
|
6664
6678
|
* Filter by severity
|
|
6665
6679
|
*/
|
|
@@ -7643,7 +7657,7 @@ type CreateAiProviderData = {
|
|
|
7643
7657
|
*/
|
|
7644
7658
|
default_model: string;
|
|
7645
7659
|
/**
|
|
7646
|
-
* Secret ID containing API credentials
|
|
7660
|
+
* Secret ID containing API credentials. Required for `bedrock` and `vertex` unless `config.apiKey` carries one.
|
|
7647
7661
|
*/
|
|
7648
7662
|
secret_id?: string;
|
|
7649
7663
|
/**
|
|
@@ -8276,7 +8290,7 @@ type GetApprovalResponse = GetApprovalResponses[keyof GetApprovalResponses];
|
|
|
8276
8290
|
type ApproveApprovalData = {
|
|
8277
8291
|
body?: {
|
|
8278
8292
|
/**
|
|
8279
|
-
* Edited arguments to execute instead of the proposed ones
|
|
8293
|
+
* Edited arguments to execute instead of the proposed ones. Editing composes a new call, so it additionally requires permission to make that call: `tools:CallTool` on the tool, and for a `builtin` proposal the action's own IAM action.
|
|
8280
8294
|
*/
|
|
8281
8295
|
arguments?: {
|
|
8282
8296
|
[key: string]: unknown;
|
|
@@ -8293,7 +8307,7 @@ type ApproveApprovalData = {
|
|
|
8293
8307
|
};
|
|
8294
8308
|
type ApproveApprovalErrors = {
|
|
8295
8309
|
/**
|
|
8296
|
-
* Edited arguments are not a JSON object
|
|
8310
|
+
* Edited arguments are not a JSON object, or do not satisfy the tool's parameters schema
|
|
8297
8311
|
*/
|
|
8298
8312
|
400: unknown;
|
|
8299
8313
|
/**
|
|
@@ -8301,7 +8315,7 @@ type ApproveApprovalErrors = {
|
|
|
8301
8315
|
*/
|
|
8302
8316
|
401: unknown;
|
|
8303
8317
|
/**
|
|
8304
|
-
* Forbidden
|
|
8318
|
+
* Forbidden — including an edit by a caller who may resolve the item but not make the call it proposes
|
|
8305
8319
|
*/
|
|
8306
8320
|
403: unknown;
|
|
8307
8321
|
/**
|
|
@@ -9403,6 +9417,10 @@ type CreateDocumentErrors = {
|
|
|
9403
9417
|
* Forbidden
|
|
9404
9418
|
*/
|
|
9405
9419
|
403: ErrorResponse;
|
|
9420
|
+
/**
|
|
9421
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). Delete stored content, or raise the quota — no window reset clears a stored total, so no `Retry-After` is sent.
|
|
9422
|
+
*/
|
|
9423
|
+
409: ErrorResponse;
|
|
9406
9424
|
};
|
|
9407
9425
|
type CreateDocumentError = CreateDocumentErrors[keyof CreateDocumentErrors];
|
|
9408
9426
|
type CreateDocumentResponses = {
|
|
@@ -9468,7 +9486,7 @@ type IngestDocumentErrors = {
|
|
|
9468
9486
|
*/
|
|
9469
9487
|
403: ErrorResponse;
|
|
9470
9488
|
/**
|
|
9471
|
-
* The file already backs a Document (a file can only be ingested once
|
|
9489
|
+
* The file already backs a Document (a file can only be ingested once — use `POST /documents/{document_id}/ingest` to re-process the existing document, or upload a new copy of the file to ingest it separately), or the project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`; delete stored content or raise the quota — no `Retry-After` is sent, since no window reset clears a stored total).
|
|
9472
9490
|
*/
|
|
9473
9491
|
409: ErrorResponse;
|
|
9474
9492
|
/**
|
|
@@ -9687,6 +9705,10 @@ type ReingestDocumentErrors = {
|
|
|
9687
9705
|
* Document not found
|
|
9688
9706
|
*/
|
|
9689
9707
|
404: ErrorResponse;
|
|
9708
|
+
/**
|
|
9709
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). Delete stored content, or raise the quota — no window reset clears a stored total, so no `Retry-After` is sent.
|
|
9710
|
+
*/
|
|
9711
|
+
409: ErrorResponse;
|
|
9690
9712
|
/**
|
|
9691
9713
|
* The file is too large to re-ingest synchronously (`?wait=true`). Retry in background mode.
|
|
9692
9714
|
*/
|
|
@@ -9876,7 +9898,7 @@ type CreateEmbeddingsData = {
|
|
|
9876
9898
|
*/
|
|
9877
9899
|
input?: string;
|
|
9878
9900
|
/**
|
|
9879
|
-
* Batch of texts to embed.
|
|
9901
|
+
* Batch of texts to embed. At most 256 per request — each input is one call to the embedding model, so a larger batch is refused (`VALIDATION_FAILED`) rather than queued. Split it across requests.
|
|
9880
9902
|
*/
|
|
9881
9903
|
inputs?: Array<string>;
|
|
9882
9904
|
};
|
|
@@ -10196,6 +10218,10 @@ type CreateDatasetItemErrors = {
|
|
|
10196
10218
|
* Dataset not found
|
|
10197
10219
|
*/
|
|
10198
10220
|
404: unknown;
|
|
10221
|
+
/**
|
|
10222
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). A fixture is a corpus write like a document, so it is bounded by the same cap; delete stored content or raise the quota — no `Retry-After` is sent, since no window reset clears a stored total.
|
|
10223
|
+
*/
|
|
10224
|
+
409: unknown;
|
|
10199
10225
|
};
|
|
10200
10226
|
type CreateDatasetItemResponses = {
|
|
10201
10227
|
/**
|
|
@@ -10248,7 +10274,7 @@ type CreateDatasetItemFromGenerationErrors = {
|
|
|
10248
10274
|
*/
|
|
10249
10275
|
404: unknown;
|
|
10250
10276
|
/**
|
|
10251
|
-
* The generation has not completed,
|
|
10277
|
+
* The generation has not completed, its content was never stored or has been purged, or the project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`; delete stored content or raise the quota — no `Retry-After` is sent, since no window reset clears a stored total)
|
|
10252
10278
|
*/
|
|
10253
10279
|
409: unknown;
|
|
10254
10280
|
};
|
|
@@ -11036,6 +11062,10 @@ type CreateFileData = {
|
|
|
11036
11062
|
url: '/api/v1/files';
|
|
11037
11063
|
};
|
|
11038
11064
|
type CreateFileErrors = {
|
|
11065
|
+
/**
|
|
11066
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). Delete stored content, or raise the quota — no window reset clears a stored total, so no `Retry-After` is sent.
|
|
11067
|
+
*/
|
|
11068
|
+
409: ErrorResponse;
|
|
11039
11069
|
/**
|
|
11040
11070
|
* Internal server error
|
|
11041
11071
|
*/
|
|
@@ -11089,6 +11119,14 @@ type UploadFileErrors = {
|
|
|
11089
11119
|
* Insufficient permissions
|
|
11090
11120
|
*/
|
|
11091
11121
|
403: ErrorResponse;
|
|
11122
|
+
/**
|
|
11123
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). Delete stored content, or raise the quota — no window reset clears a stored total, so no `Retry-After` is sent.
|
|
11124
|
+
*/
|
|
11125
|
+
409: ErrorResponse;
|
|
11126
|
+
/**
|
|
11127
|
+
* The upload is over this deployment's byte ceiling (`UPLOAD_TOO_LARGE`; `FILE_UPLOAD_MAX_BYTES`, 25 MB by default). The request is refused while the body is still streaming, so nothing was stored.
|
|
11128
|
+
*/
|
|
11129
|
+
413: ErrorResponse;
|
|
11092
11130
|
};
|
|
11093
11131
|
type UploadFileError = UploadFileErrors[keyof UploadFileErrors];
|
|
11094
11132
|
type UploadFileResponses = {
|
|
@@ -11117,6 +11155,10 @@ type UploadFileBase64Errors = {
|
|
|
11117
11155
|
* Insufficient permissions
|
|
11118
11156
|
*/
|
|
11119
11157
|
403: ErrorResponse;
|
|
11158
|
+
/**
|
|
11159
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). Delete stored content, or raise the quota — no window reset clears a stored total, so no `Retry-After` is sent.
|
|
11160
|
+
*/
|
|
11161
|
+
409: ErrorResponse;
|
|
11120
11162
|
};
|
|
11121
11163
|
type UploadFileBase64Error = UploadFileBase64Errors[keyof UploadFileBase64Errors];
|
|
11122
11164
|
type UploadFileBase64Responses = {
|
|
@@ -11175,13 +11217,17 @@ type UploadFileWithTokenErrors = {
|
|
|
11175
11217
|
*/
|
|
11176
11218
|
404: ErrorResponse;
|
|
11177
11219
|
/**
|
|
11178
|
-
* Upload token already used
|
|
11220
|
+
* Upload token already used, or the project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`)
|
|
11179
11221
|
*/
|
|
11180
11222
|
409: ErrorResponse;
|
|
11181
11223
|
/**
|
|
11182
11224
|
* Upload token expired
|
|
11183
11225
|
*/
|
|
11184
11226
|
410: ErrorResponse;
|
|
11227
|
+
/**
|
|
11228
|
+
* The upload is over this deployment's byte ceiling (`UPLOAD_TOO_LARGE`; `FILE_UPLOAD_MAX_BYTES`, 25 MB by default). The request is refused while the body is still streaming, so nothing was stored.
|
|
11229
|
+
*/
|
|
11230
|
+
413: ErrorResponse;
|
|
11185
11231
|
};
|
|
11186
11232
|
type UploadFileWithTokenError = UploadFileWithTokenErrors[keyof UploadFileWithTokenErrors];
|
|
11187
11233
|
type UploadFileWithTokenResponses = {
|
|
@@ -12394,7 +12440,7 @@ type CreateIngestionRuleData = {
|
|
|
12394
12440
|
*/
|
|
12395
12441
|
project_id?: string;
|
|
12396
12442
|
/**
|
|
12397
|
-
* MIME type glob matched against a file's content_type
|
|
12443
|
+
* MIME type glob matched against a file's content_type. At most 4 wildcards and 255 characters — a MIME glob needs one on each side of the slash at most.
|
|
12398
12444
|
*/
|
|
12399
12445
|
content_type_glob: string;
|
|
12400
12446
|
/**
|
|
@@ -12541,6 +12587,9 @@ type GetIngestionRuleResponses = {
|
|
|
12541
12587
|
type GetIngestionRuleResponse = GetIngestionRuleResponses[keyof GetIngestionRuleResponses];
|
|
12542
12588
|
type UpdateIngestionRuleData = {
|
|
12543
12589
|
body: {
|
|
12590
|
+
/**
|
|
12591
|
+
* MIME type glob matched against a file's content_type. At most 4 wildcards and 255 characters.
|
|
12592
|
+
*/
|
|
12544
12593
|
content_type_glob?: string;
|
|
12545
12594
|
tool_id?: string | null;
|
|
12546
12595
|
agent_id?: string | null;
|
|
@@ -12613,7 +12662,7 @@ type SearchKnowledgeData = {
|
|
|
12613
12662
|
*/
|
|
12614
12663
|
min_score?: number;
|
|
12615
12664
|
/**
|
|
12616
|
-
* Maximum number of results to return (default 10)
|
|
12665
|
+
* Maximum number of results to return (default 10). A value above 100 is clamped to 100 — the ceiling bounds the vector scan this one request performs, so a larger `limit` returns everything there is up to that many rows rather than being refused.
|
|
12617
12666
|
*/
|
|
12618
12667
|
limit?: number;
|
|
12619
12668
|
/**
|
|
@@ -12974,6 +13023,10 @@ type CreateMemoryEntryErrors = {
|
|
|
12974
13023
|
* Memory not found
|
|
12975
13024
|
*/
|
|
12976
13025
|
404: unknown;
|
|
13026
|
+
/**
|
|
13027
|
+
* The project's `storage_bytes` quota is exceeded (`QUOTA_STORAGE_EXCEEDED`). Delete stored content, or raise the quota — no window reset clears a stored total, so no `Retry-After` is sent.
|
|
13028
|
+
*/
|
|
13029
|
+
409: unknown;
|
|
12977
13030
|
/**
|
|
12978
13031
|
* Internal server error
|
|
12979
13032
|
*/
|
|
@@ -14456,13 +14509,13 @@ type CreateQuotaData = {
|
|
|
14456
14509
|
/**
|
|
14457
14510
|
* The metric being capped
|
|
14458
14511
|
*/
|
|
14459
|
-
metric: 'requests' | 'tokens' | 'cost_usd';
|
|
14512
|
+
metric: 'requests' | 'tokens' | 'cost_usd' | 'storage_bytes';
|
|
14460
14513
|
/**
|
|
14461
|
-
* The window over which the metric is aggregated
|
|
14514
|
+
* The window over which the metric is aggregated. `current` is the only accepted value for storage_bytes (a stored total is not aggregated over time) and is refused for every other metric.
|
|
14462
14515
|
*/
|
|
14463
|
-
window: 'rolling_1m' | 'rolling_1h' | 'rolling_24h' | 'calendar_month';
|
|
14516
|
+
window: 'rolling_1m' | 'rolling_1h' | 'rolling_24h' | 'calendar_month' | 'current';
|
|
14464
14517
|
/**
|
|
14465
|
-
* The cap. Must be a positive integer for requests/tokens; fractional values are allowed for cost_usd.
|
|
14518
|
+
* The cap. Must be a positive integer for requests/tokens/storage_bytes (bytes); fractional values are allowed for cost_usd.
|
|
14466
14519
|
*/
|
|
14467
14520
|
limit: number;
|
|
14468
14521
|
/**
|
|
@@ -17659,7 +17712,14 @@ declare class AiProviders {
|
|
|
17659
17712
|
/**
|
|
17660
17713
|
* Create an AI provider
|
|
17661
17714
|
*
|
|
17662
|
-
* Creates a new LLM provider configuration
|
|
17715
|
+
* Creates a new LLM provider configuration.
|
|
17716
|
+
*
|
|
17717
|
+
* A `bedrock` or `vertex` record must carry a credential of its own — a
|
|
17718
|
+
* linked `secret_id`, or an `apiKey` in `config`. Without one the provider
|
|
17719
|
+
* SDK signs with the server's own credentials (the AWS default credential
|
|
17720
|
+
* chain, Google Application Default Credentials), which is refused with
|
|
17721
|
+
* `400 VALIDATION_FAILED` unless the deployment allows it.
|
|
17722
|
+
*
|
|
17663
17723
|
*/
|
|
17664
17724
|
static createAiProvider<ThrowOnError extends boolean = false>(options: Options<CreateAiProviderData, ThrowOnError>): RequestResult<CreateAiProviderResponses, CreateAiProviderErrors, ThrowOnError>;
|
|
17665
17725
|
/**
|
|
@@ -17689,7 +17749,7 @@ declare class AiProviders {
|
|
|
17689
17749
|
* Asks the provider which models it can run, using this provider record's own credentials and configuration, and returns provider-native model ids — the same strings `default_model` and an agent's `model` carry.
|
|
17690
17750
|
* Which models are reachable is a property of the credential, not of the provider type: a Vertex provider sees only the publisher models its Google Cloud project and location serve, and a Bedrock provider only the foundation models enabled in its region. Reading the list is how a caller avoids pinning a model that fails at generation time.
|
|
17691
17751
|
* Not every provider type can answer. `azure` lists deployments an operator named rather than models, and `ollama` lists whatever was pulled onto that host, so both return `400 MODEL_LISTING_UNSUPPORTED`.
|
|
17692
|
-
* Listing resolves credentials the same way generation does, so a record that can generate can list. The API-key types (`openai`, `groq`, `xai`, `gateway`, `custom`, `anthropic`, `google`) use the record's linked secret and cannot list without one. `bedrock` and `vertex` use the linked secret
|
|
17752
|
+
* Listing resolves credentials the same way generation does, so a record that can generate can list. The API-key types (`openai`, `groq`, `xai`, `gateway`, `custom`, `anthropic`, `google`) use the record's linked secret and cannot list without one. `bedrock` and `vertex` use the linked secret — IAM keys or a Bedrock API key, a Google service-account key. A record with no `secret_id` would fall back to the server's own credentials (the AWS default credential chain, Google Application Default Credentials); it can list only on a deployment that allows a record to use them, and returns `400 AI_PROVIDER_MISCONFIGURED` otherwise.
|
|
17693
17753
|
* A Vertex record needs no `config.project` when its secret is a service-account key, since the key file names its own project. A Vertex record in express mode (API key) cannot list at all: the publisher-model listing rejects API keys and needs a credential that asserts a principal, so it returns `400 MODEL_LISTING_UNSUPPORTED`.
|
|
17694
17754
|
* The Vertex answer is the publisher catalogue the record's `config.location` region serves. The project behind the credential is billed and quota'd for the call but does not filter the result, so a listed model may still be unavailable to that project at generation time.
|
|
17695
17755
|
*
|
|
@@ -17714,7 +17774,11 @@ declare class ApiKeys {
|
|
|
17714
17774
|
/**
|
|
17715
17775
|
* List API keys
|
|
17716
17776
|
*
|
|
17717
|
-
* Lists API keys accessible to the caller. - JWT admin: returns all API keys. - JWT regular user: returns only the user's own API keys. - Project-scoped credential (API key or OAuth token): returns
|
|
17777
|
+
* Lists API keys accessible to the caller. - JWT admin: returns all API keys. - JWT regular user: returns only the user's own API keys. - Project-scoped credential (API key or OAuth token): returns the caller's own
|
|
17778
|
+
* keys scoped to that project, or every key scoped to it when the credential
|
|
17779
|
+
* holds `api-keys:ListApiKeys` on the project. Confinement to a project is not
|
|
17780
|
+
* authority over it, and a key's metadata names its owner, prefix and attached
|
|
17781
|
+
* policies.
|
|
17718
17782
|
*
|
|
17719
17783
|
*/
|
|
17720
17784
|
static listApiKeys<ThrowOnError extends boolean = false>(options?: Options<ListApiKeysData, ThrowOnError>): RequestResult<ListApiKeysResponses, ListApiKeysErrors, ThrowOnError>;
|
|
@@ -18648,7 +18712,8 @@ declare class Orchestrations {
|
|
|
18648
18712
|
/**
|
|
18649
18713
|
* Get orchestration queue stats
|
|
18650
18714
|
*
|
|
18651
|
-
* Returns a point-in-time snapshot of the orchestration run queue: how many tasks are waiting to be claimed (`queue_depth`), how many are currently claimed with a valid lease (`claimed_tasks`), the age of the oldest waiting task, recent claim-latency percentiles over a rolling in-process window, and a per-project breakdown. Intended for admin/operator policies; guarded by `orchestrations:GetQueueStats`.
|
|
18715
|
+
* Returns a point-in-time snapshot of the orchestration run queue: how many tasks are waiting to be claimed (`queue_depth`), how many are currently claimed with a valid lease (`claimed_tasks`), the age of the oldest waiting task, recent claim-latency percentiles over a rolling in-process window, and a per-project breakdown. Intended for admin/operator policies; guarded by `orchestrations:GetQueueStats`.
|
|
18716
|
+
* Every figure is scoped to what the caller may see. A project-scoped caller gets `per_project` for their own projects only, `queue_depth` and `claimed_tasks` summed over those same projects, and `null` for `oldest_queued_age_seconds` and the `claim_latency_ms` percentiles — both describe the whole deployment and cannot be narrowed, so they are withheld rather than approximated. An unrestricted caller (the action granted on every project) gets the deployment-wide figures.
|
|
18652
18717
|
*
|
|
18653
18718
|
*/
|
|
18654
18719
|
static getQueueStats<ThrowOnError extends boolean = false>(options?: Options<GetQueueStatsData, ThrowOnError>): RequestResult<GetQueueStatsResponses, GetQueueStatsErrors, ThrowOnError>;
|
|
@@ -18835,7 +18900,9 @@ declare class Quotas {
|
|
|
18835
18900
|
/**
|
|
18836
18901
|
* Create a quota
|
|
18837
18902
|
*
|
|
18838
|
-
* Creates a project-scoped quota. `requests` is valid for `scope: project`/`api_key`; `tokens` and `cost_usd` are valid for `scope: project`/`agent`/`actor
|
|
18903
|
+
* Creates a project-scoped quota. `requests` is valid for `scope: project`/`api_key`; `tokens` and `cost_usd` are valid for `scope: project`/`agent`/`actor`; `storage_bytes` is valid for `scope: project` only. Any other scope/metric pair is rejected with 400 (no attribution exists to enforce it). An `actor` quota caps one end user's spend, matched from the generation's session; a null `scope_ref` means one budget *per* actor rather than a pooled project total. A `cost_usd` quota may name one `meter_type` to cap; omitting it caps every priced meter. A duplicate quota (same project, scope, scope_ref, metric, window, meter_type) is rejected with 409.
|
|
18904
|
+
*
|
|
18905
|
+
* `storage_bytes` caps a stored total rather than a windowed one, so it takes `window: current` and every other metric refuses that value (400 either way). It is enforced at the corpus write paths — file upload and create, document create, document ingest and re-ingest, memory-entry create — with `409 QUOTA_STORAGE_EXCEEDED` and no `Retry-After`, since no window reset clears a footprint.
|
|
18839
18906
|
*/
|
|
18840
18907
|
static createQuota<ThrowOnError extends boolean = false>(options: Options<CreateQuotaData, ThrowOnError>): RequestResult<CreateQuotaResponses, CreateQuotaErrors, ThrowOnError>;
|
|
18841
18908
|
/**
|
|
@@ -19077,6 +19144,7 @@ declare class Tools {
|
|
|
19077
19144
|
* Directly invokes a tool and returns its output. Supported for `http`, `builtin`, `mcp`, and `pipeline` tools. `client` tools cannot be invoked server-side and will return 422. A `pipeline` tool runs its declared steps in order and returns the mapped `output` (or the last step's output); `action` is ignored and `input` is the pipeline input.
|
|
19078
19145
|
* For `builtin` and `mcp` tools the `action` field is required and identifies which action (SOAT) or tool name (MCP) to invoke. For `http` tools `action` is ignored. When a `builtin` or `mcp` tool declares an `actions` allowlist, an action outside it is rejected with `400 VALIDATION_FAILED` ("not available on this tool") before any outbound request is made.
|
|
19079
19146
|
* `preset_parameters` stored on the tool are pinned over the caller-supplied `input` before execution: a key the tool presets keeps its preset value even when `input` sets it. Keys the presets do not name are taken from `input` as sent.
|
|
19147
|
+
* Guardrails attached to the tool or to its project adjudicate the call before dispatch, composing project + tool scope. A call this route cannot await a decision on — class C (human sign-off), class D, or a class-B tripwire — is refused with `422 TOOL_DISPATCH_FAILED`, whose `meta` carries the `tool_id` and the `outcome`. A `pipeline` tool is adjudicated before its first step runs, and every step is adjudicated as the call of that tool it is.
|
|
19080
19148
|
*
|
|
19081
19149
|
*/
|
|
19082
19150
|
static callTool<ThrowOnError extends boolean = false>(options: Options<CallToolData, ThrowOnError>): RequestResult<CallToolResponses, CallToolErrors, ThrowOnError>;
|
|
@@ -19141,7 +19209,8 @@ declare class Triggers {
|
|
|
19141
19209
|
/**
|
|
19142
19210
|
* Update a trigger
|
|
19143
19211
|
*
|
|
19144
|
-
* Updates an existing trigger's configuration. The type is immutable.
|
|
19212
|
+
* Updates an existing trigger's configuration. The type is immutable. Changing `target_type` or `target_id` re-checks the target-start action (`orchestrations:StartRun`, `agents:CreateAgentGeneration` or `tools:CallTool`) against the resulting target, because a firing runs with the trigger creator's authority rather than the updater's. A caller who could not start the new target is answered `403` and the trigger keeps the target it had.
|
|
19213
|
+
*
|
|
19145
19214
|
*/
|
|
19146
19215
|
static updateTrigger<ThrowOnError extends boolean = false>(options: Options<UpdateTriggerData, ThrowOnError>): RequestResult<UpdateTriggerResponses, UpdateTriggerErrors, ThrowOnError>;
|
|
19147
19216
|
/**
|
package/dist/index.mjs
CHANGED
|
@@ -959,7 +959,14 @@ var AiProviders = class {
|
|
|
959
959
|
/**
|
|
960
960
|
* Create an AI provider
|
|
961
961
|
*
|
|
962
|
-
* Creates a new LLM provider configuration
|
|
962
|
+
* Creates a new LLM provider configuration.
|
|
963
|
+
*
|
|
964
|
+
* A `bedrock` or `vertex` record must carry a credential of its own — a
|
|
965
|
+
* linked `secret_id`, or an `apiKey` in `config`. Without one the provider
|
|
966
|
+
* SDK signs with the server's own credentials (the AWS default credential
|
|
967
|
+
* chain, Google Application Default Credentials), which is refused with
|
|
968
|
+
* `400 VALIDATION_FAILED` unless the deployment allows it.
|
|
969
|
+
*
|
|
963
970
|
*/
|
|
964
971
|
static createAiProvider(options) {
|
|
965
972
|
return (options.client ?? client).post({
|
|
@@ -1017,7 +1024,7 @@ var AiProviders = class {
|
|
|
1017
1024
|
* Asks the provider which models it can run, using this provider record's own credentials and configuration, and returns provider-native model ids — the same strings `default_model` and an agent's `model` carry.
|
|
1018
1025
|
* Which models are reachable is a property of the credential, not of the provider type: a Vertex provider sees only the publisher models its Google Cloud project and location serve, and a Bedrock provider only the foundation models enabled in its region. Reading the list is how a caller avoids pinning a model that fails at generation time.
|
|
1019
1026
|
* Not every provider type can answer. `azure` lists deployments an operator named rather than models, and `ollama` lists whatever was pulled onto that host, so both return `400 MODEL_LISTING_UNSUPPORTED`.
|
|
1020
|
-
* Listing resolves credentials the same way generation does, so a record that can generate can list. The API-key types (`openai`, `groq`, `xai`, `gateway`, `custom`, `anthropic`, `google`) use the record's linked secret and cannot list without one. `bedrock` and `vertex` use the linked secret
|
|
1027
|
+
* Listing resolves credentials the same way generation does, so a record that can generate can list. The API-key types (`openai`, `groq`, `xai`, `gateway`, `custom`, `anthropic`, `google`) use the record's linked secret and cannot list without one. `bedrock` and `vertex` use the linked secret — IAM keys or a Bedrock API key, a Google service-account key. A record with no `secret_id` would fall back to the server's own credentials (the AWS default credential chain, Google Application Default Credentials); it can list only on a deployment that allows a record to use them, and returns `400 AI_PROVIDER_MISCONFIGURED` otherwise.
|
|
1021
1028
|
* A Vertex record needs no `config.project` when its secret is a service-account key, since the key file names its own project. A Vertex record in express mode (API key) cannot list at all: the publisher-model listing rejects API keys and needs a credential that asserts a principal, so it returns `400 MODEL_LISTING_UNSUPPORTED`.
|
|
1022
1029
|
* The Vertex answer is the publisher catalogue the record's `config.location` region serves. The project behind the credential is billed and quota'd for the call but does not filter the result, so a listed model may still be unavailable to that project at generation time.
|
|
1023
1030
|
*
|
|
@@ -1061,7 +1068,11 @@ var ApiKeys = class {
|
|
|
1061
1068
|
/**
|
|
1062
1069
|
* List API keys
|
|
1063
1070
|
*
|
|
1064
|
-
* Lists API keys accessible to the caller. - JWT admin: returns all API keys. - JWT regular user: returns only the user's own API keys. - Project-scoped credential (API key or OAuth token): returns
|
|
1071
|
+
* Lists API keys accessible to the caller. - JWT admin: returns all API keys. - JWT regular user: returns only the user's own API keys. - Project-scoped credential (API key or OAuth token): returns the caller's own
|
|
1072
|
+
* keys scoped to that project, or every key scoped to it when the credential
|
|
1073
|
+
* holds `api-keys:ListApiKeys` on the project. Confinement to a project is not
|
|
1074
|
+
* authority over it, and a key's metadata names its owner, prefix and attached
|
|
1075
|
+
* policies.
|
|
1065
1076
|
*
|
|
1066
1077
|
*/
|
|
1067
1078
|
static listApiKeys(options) {
|
|
@@ -2873,7 +2884,8 @@ var Orchestrations = class {
|
|
|
2873
2884
|
/**
|
|
2874
2885
|
* Get orchestration queue stats
|
|
2875
2886
|
*
|
|
2876
|
-
* Returns a point-in-time snapshot of the orchestration run queue: how many tasks are waiting to be claimed (`queue_depth`), how many are currently claimed with a valid lease (`claimed_tasks`), the age of the oldest waiting task, recent claim-latency percentiles over a rolling in-process window, and a per-project breakdown. Intended for admin/operator policies; guarded by `orchestrations:GetQueueStats`.
|
|
2887
|
+
* Returns a point-in-time snapshot of the orchestration run queue: how many tasks are waiting to be claimed (`queue_depth`), how many are currently claimed with a valid lease (`claimed_tasks`), the age of the oldest waiting task, recent claim-latency percentiles over a rolling in-process window, and a per-project breakdown. Intended for admin/operator policies; guarded by `orchestrations:GetQueueStats`.
|
|
2888
|
+
* Every figure is scoped to what the caller may see. A project-scoped caller gets `per_project` for their own projects only, `queue_depth` and `claimed_tasks` summed over those same projects, and `null` for `oldest_queued_age_seconds` and the `claim_latency_ms` percentiles — both describe the whole deployment and cannot be narrowed, so they are withheld rather than approximated. An unrestricted caller (the action granted on every project) gets the deployment-wide figures.
|
|
2877
2889
|
*
|
|
2878
2890
|
*/
|
|
2879
2891
|
static getQueueStats(options) {
|
|
@@ -3243,7 +3255,9 @@ var Quotas = class {
|
|
|
3243
3255
|
/**
|
|
3244
3256
|
* Create a quota
|
|
3245
3257
|
*
|
|
3246
|
-
* Creates a project-scoped quota. `requests` is valid for `scope: project`/`api_key`; `tokens` and `cost_usd` are valid for `scope: project`/`agent`/`actor
|
|
3258
|
+
* Creates a project-scoped quota. `requests` is valid for `scope: project`/`api_key`; `tokens` and `cost_usd` are valid for `scope: project`/`agent`/`actor`; `storage_bytes` is valid for `scope: project` only. Any other scope/metric pair is rejected with 400 (no attribution exists to enforce it). An `actor` quota caps one end user's spend, matched from the generation's session; a null `scope_ref` means one budget *per* actor rather than a pooled project total. A `cost_usd` quota may name one `meter_type` to cap; omitting it caps every priced meter. A duplicate quota (same project, scope, scope_ref, metric, window, meter_type) is rejected with 409.
|
|
3259
|
+
*
|
|
3260
|
+
* `storage_bytes` caps a stored total rather than a windowed one, so it takes `window: current` and every other metric refuses that value (400 either way). It is enforced at the corpus write paths — file upload and create, document create, document ingest and re-ingest, memory-entry create — with `409 QUOTA_STORAGE_EXCEEDED` and no `Retry-After`, since no window reset clears a footprint.
|
|
3247
3261
|
*/
|
|
3248
3262
|
static createQuota(options) {
|
|
3249
3263
|
return (options.client ?? client).post({
|
|
@@ -3737,6 +3751,7 @@ var Tools = class {
|
|
|
3737
3751
|
* Directly invokes a tool and returns its output. Supported for `http`, `builtin`, `mcp`, and `pipeline` tools. `client` tools cannot be invoked server-side and will return 422. A `pipeline` tool runs its declared steps in order and returns the mapped `output` (or the last step's output); `action` is ignored and `input` is the pipeline input.
|
|
3738
3752
|
* For `builtin` and `mcp` tools the `action` field is required and identifies which action (SOAT) or tool name (MCP) to invoke. For `http` tools `action` is ignored. When a `builtin` or `mcp` tool declares an `actions` allowlist, an action outside it is rejected with `400 VALIDATION_FAILED` ("not available on this tool") before any outbound request is made.
|
|
3739
3753
|
* `preset_parameters` stored on the tool are pinned over the caller-supplied `input` before execution: a key the tool presets keeps its preset value even when `input` sets it. Keys the presets do not name are taken from `input` as sent.
|
|
3754
|
+
* Guardrails attached to the tool or to its project adjudicate the call before dispatch, composing project + tool scope. A call this route cannot await a decision on — class C (human sign-off), class D, or a class-B tripwire — is refused with `422 TOOL_DISPATCH_FAILED`, whose `meta` carries the `tool_id` and the `outcome`. A `pipeline` tool is adjudicated before its first step runs, and every step is adjudicated as the call of that tool it is.
|
|
3740
3755
|
*
|
|
3741
3756
|
*/
|
|
3742
3757
|
static callTool(options) {
|
|
@@ -3854,7 +3869,8 @@ var Triggers = class {
|
|
|
3854
3869
|
/**
|
|
3855
3870
|
* Update a trigger
|
|
3856
3871
|
*
|
|
3857
|
-
* Updates an existing trigger's configuration. The type is immutable.
|
|
3872
|
+
* Updates an existing trigger's configuration. The type is immutable. Changing `target_type` or `target_id` re-checks the target-start action (`orchestrations:StartRun`, `agents:CreateAgentGeneration` or `tools:CallTool`) against the resulting target, because a firing runs with the trigger creator's authority rather than the updater's. A caller who could not start the new target is answered `403` and the trigger keeps the target it had.
|
|
3873
|
+
*
|
|
3858
3874
|
*/
|
|
3859
3875
|
static updateTrigger(options) {
|
|
3860
3876
|
return (options.client ?? client).patch({
|