@deepraxis/sdk 0.1.1-dev.d25d171 → 0.1.1-dev.de0a917

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.
@@ -2,7 +2,7 @@ export declare const operations: readonly [{
2
2
  readonly resource: "agent.agents";
3
3
  readonly method: "list";
4
4
  readonly summary: "List agents";
5
- readonly description: "List the agents of the workspace behind your API key, newest first, in pages of at most 100 (default 20). Use it to find an agent id before creating a session; to read one agent use agents.retrieve, to see its history use agents.versions.list. Archived agents are hidden unless include_archived is true. Filter kind=personal for durable-computer agents or kind=service for per-session environments. Pass next_page from the response as page to read the next page; a null next_page means the end.";
5
+ readonly description: "List the agents of the workspace behind your API key, newest first, in pages of at most 100 (default 20). Use it to find an agent id before creating a session; to read one agent use agents.retrieve, to see its history use agents.versions.list. Archived agents are hidden unless include_archived is true. Filter kind=general or kind=personal for durable-computer agents, kind=service for per-session environments, or kind=assume for external MCP clients. Pass next_page from the response as page to read the next page; a null next_page means the end.";
6
6
  readonly http: "GET";
7
7
  readonly path: "/agent/v1/agents";
8
8
  readonly streaming: "no";
@@ -37,7 +37,7 @@ export declare const operations: readonly [{
37
37
  }, {
38
38
  readonly name: "kind";
39
39
  readonly type: "string";
40
- readonly enum: readonly ["personal", "service"];
40
+ readonly enum: readonly ["general", "personal", "service", "assume"];
41
41
  readonly required: false;
42
42
  readonly description: "Filter agents by their immutable kind, including agents created before kind was recorded.";
43
43
  }];
@@ -45,7 +45,7 @@ export declare const operations: readonly [{
45
45
  readonly resource: "agent.agents";
46
46
  readonly method: "create";
47
47
  readonly summary: "Create agent";
48
- readonly description: "Create a reusable agent definition, then pass its returned id to sessions.create to start a conversation. The definition includes model, system prompt, tools, MCP servers and an optional multiagent roster. It is saved as version 1; real updates create new versions. skills attaches uploaded custom skills as [{type: \"custom\", skill_id, version?}] (skill_id from skills.create or skills.list; at most 20, no repeated skill_id). Omit version, or send \"latest\", to use the skill's newest version when a session starts. type anthropic returns 400. Use tools: [{type: \"agent_toolset_20260401\"}] for built-in tools including codemode, skill and agent; inspect toolsets.list for names and schemas, and keep bash enabled for native additions. To offer only some tools, set default_config: {enabled: false} and list the tools to keep in configs, e.g. tools: [{type: \"agent_toolset_20260401\", default_config: {enabled: false}, configs: [{name: \"codemode\", enabled: true}, {name: \"bash\", enabled: true, permission_policy: {type: \"always_ask\"}}]}]; every tool not listed, including todo_write, enter_plan_mode, ask_user_question and goal_read, follows default_config, and the response echoes it. codemode runs through bash, so enabling codemode while bash is disabled returns 400. Optional mcp_toolset entries pair with mcp_servers. model accepts platform model IDs such as deepseek-flash, not only the Claude IDs in the protocol examples. model.settings.reasoning sets default thinking; other extra model controls return 400. model and every models.allowed entry must be a catalog model that can run an agent: an unknown id returns 400 \"model <id> is not in the model catalog\" and an embedding, image or speech model returns 400 \"model <id> cannot run an agent\". name is a label, not a unique key: 1 to 256 characters after trimming, no NUL or line breaks. avatar is trimmed, must not contain spaces or point at a loopback, private or internal host, and its scheme is stored in lowercase. script and workflow binding ids are stored in lowercase, the form automation matches; bindings together with environment_id null return 400 because bindings need a machine. Example: {\"name\":\"helper\",\"model\":{\"id\":\"deepseek-flash\"},\"tools\":[{\"type\":\"agent_toolset_20260401\"}]}.";
48
+ readonly description: "Create a reusable agent definition, then pass its returned id to sessions.create to start a conversation. The definition includes model, system prompt, tools, MCP servers and an optional multiagent roster. It is saved as version 1; real updates create new versions. skills attaches uploaded custom skills as [{type: \"custom\", skill_id, version?}] (skill_id from skills.create or skills.list; at most 20, no repeated skill_id). Omit version, or send \"latest\", to use the skill's newest version when a session starts. type anthropic returns 400. Use tools: [{type: \"agent_toolset_20260401\"}] for built-in tools including codemode, skill and agent; inspect toolsets.list for names and schemas, and keep bash enabled for native additions. To offer only some tools, set default_config: {enabled: false} and list the tools to keep in configs, e.g. tools: [{type: \"agent_toolset_20260401\", default_config: {enabled: false}, configs: [{name: \"codemode\", enabled: true}, {name: \"bash\", enabled: true, permission_policy: {type: \"always_ask\"}}]}]; every tool not listed, including todo_write, enter_plan_mode, ask_user_question and goal_read, follows default_config, and the response echoes it. codemode runs through bash, so enabling codemode while bash is disabled returns 400. Optional mcp_toolset entries pair with mcp_servers. model accepts platform model IDs such as deepseek-flash, not only the Claude IDs in the protocol examples. model.settings.reasoning sets default thinking; other extra model controls return 400. model and every models.allowed entry must be a catalog model that can run an agent: an unknown id returns 400 \"model <id> is not in the model catalog\" and an embedding, image or speech model returns 400 \"model <id> cannot run an agent\". name is a label, not a unique key: 1 to 256 characters after trimming, no NUL or line breaks. avatar is trimmed, must not contain spaces or point at a loopback, private or internal host, and its scheme is stored in lowercase. script and workflow binding ids are stored in lowercase, the form automation matches; bindings together with environment_id null return 400 because bindings need a machine. Example: {\"name\":\"helper\",\"model\":{\"id\":\"deepseek-flash\"},\"tools\":[{\"type\":\"agent_toolset_20260401\"}]}. For kind assume, provide name without model, models, subagent_model, subagents or multiagent; omit computer_id to register a new computer named after the agent without starting an instance, or provide an existing computer_id; vault_ids are accepted, bindings and environment_id are refused. Drive assume agents over MCP at /agent/v1/agents/{id}/mcp.";
49
49
  readonly http: "POST";
50
50
  readonly path: "/agent/v1/agents";
51
51
  readonly streaming: "no";
@@ -57,8 +57,8 @@ export declare const operations: readonly [{
57
57
  readonly fields: readonly [{
58
58
  readonly name: "model";
59
59
  readonly type: "object";
60
- readonly required: true;
61
- readonly description: "A model id from the Praxis model catalog (`praxis.model.models.list`), or a `model_config` object for additional configuration control. Unlike Anthropic, Claude model ids other than those in the catalog are rejected.";
60
+ readonly required: false;
61
+ readonly description: "A model id from the Praxis model catalog (`praxis.model.models.list`), or a `model_config` object for additional configuration control. Unlike Anthropic, Claude model ids other than those in the catalog are rejected. Forbidden and omitted on assume agents.";
62
62
  }, {
63
63
  readonly name: "name";
64
64
  readonly type: "string";
@@ -84,7 +84,7 @@ export declare const operations: readonly [{
84
84
  readonly name: "multiagent";
85
85
  readonly type: "object";
86
86
  readonly required: false;
87
- readonly description: "A coordinator topology: the session's primary thread orchestrates\nwork by spawning session threads, each running an agent drawn from the `agents`\nroster.";
87
+ readonly description: "Coordinator roster. A bare string agent id is equivalent to {type: \"agent\", id}; omitting its version pins the referenced agent's current saved version when this roster is saved. {type: \"self\"} refers to this agent. Specify a concrete version to pin it explicitly.";
88
88
  }, {
89
89
  readonly name: "skills";
90
90
  readonly type: "array";
@@ -107,13 +107,13 @@ export declare const operations: readonly [{
107
107
  readonly type: "array";
108
108
  readonly itemType: "object";
109
109
  readonly required: false;
110
- readonly description: "Platform resources and services this service agent's codemode may reach, as one list of typed bindings. Only kind=service accepts a nonempty list; personal agents return 400. There are two kinds. A resource binding names one resource with id and access: database (id db_..., read_only or read_write), vector_store (id vs_..., read_only or read_write), file (id file- plus 24 letters or digits, as the File API returns it; read_only), media_library (any id without ':' or whitespace, read_only or read_write), model (a model catalog id, invoke), workflow and script (id <namespace>/<name>, invoke). A service binding opens a whole service and carries only enabled: search or browser. At most 20 bindings per type, no repeated type and id, and each service type at most once. A session is authorized by the agent version it runs: newly added bindings apply only to new sessions, and a version saved with apply=false changes no access until it is applied. Applying a version that disables, removes or downgrades a binding revokes it immediately in running sessions on older versions. A resource that is not bound returns 404, a service that is not opened returns 403, and a write to a resource bound read_only returns 403 BINDING_READ_ONLY. Unknown types, fields on the wrong kind (id, access or instructions on a service binding), wrong access and malformed ids return 400. The former databases, vector_stores and files fields are removed and return 400. Omit on create for no bindings.";
110
+ readonly description: "Platform resources and services this service agent's codemode may reach, as one list of typed bindings. Only kind=service accepts a nonempty list; general and personal agents return 400. There are two kinds. A resource binding names one resource with id and access: database (id db_..., read_only or read_write), vector_store (id vs_..., read_only or read_write), file (id file- plus 24 letters or digits, as the File API returns it; read_only), media_library (any id without ':' or whitespace, read_only or read_write), model (a model catalog id, invoke), workflow and script (id <namespace>/<name>, invoke). A service binding opens a whole service and carries only enabled: search or browser. At most 20 bindings per type, no repeated type and id, and each service type at most once. A session is authorized by the agent version it runs: newly added bindings apply only to new sessions, and a version saved with apply=false changes no access until it is applied. Applying a version that disables, removes or downgrades a binding revokes it immediately in running sessions on older versions. A resource that is not bound returns 404, a service that is not opened returns 403, and a write to a resource bound read_only returns 403 BINDING_READ_ONLY. Unknown types, fields on the wrong kind (id, access or instructions on a service binding), wrong access and malformed ids return 400. The former databases, vector_stores and files fields are removed and return 400. Omit on create for no bindings. Saving checks added or changed database, vector_store, media_library and file bindings in the organization: unknown or deleted ids return 400. If an owner is unavailable or takes more than 3 seconds, saving succeeds with verified=false for the affected bindings. Unchanged bindings keep their previous verification result and are not rechecked. workflow and script ids are not verified at save time.";
111
111
  }, {
112
112
  readonly name: "kind";
113
113
  readonly type: "string";
114
- readonly enum: readonly ["personal", "service"];
114
+ readonly enum: readonly ["general", "personal", "service", "assume"];
115
115
  readonly required: false;
116
- readonly description: "Immutable agent kind. personal requires computer_id; service cannot bind a computer. Omit on create to infer from computer_id. On update, the same kind is ignored; changing kind or crossing its computer binding returns 400 invalid_request_error.";
116
+ readonly description: "Immutable agent kind. general and personal require computer_id; service cannot bind a computer. Omit on create to infer from computer_id (general with a computer, service without). On update, the same kind is ignored; changing kind or crossing its computer binding returns 400 invalid_request_error. Assume agents use a durable computer driven over MCP without a conversation model; model, models, subagent_model, subagents and multiagent are forbidden and omitted.";
117
117
  }, {
118
118
  readonly name: "computer_id";
119
119
  readonly type: "string";
@@ -124,6 +124,11 @@ export declare const operations: readonly [{
124
124
  readonly type: "string";
125
125
  readonly required: false;
126
126
  readonly description: "Praxis extension: default subagent model ID, pinned in the agent revision. Call model overrides this; otherwise it overrides the roster member model or the parent model for built-ins. Null clears the default. /agent/v1 only.";
127
+ }, {
128
+ readonly name: "image_model";
129
+ readonly type: "string";
130
+ readonly required: false;
131
+ readonly description: "Model used by the imagine image tool; defaults to gpt-image-2 when unset. Only models that can generate images are accepted. Omit to preserve; null clears the configured model. /agent/v1 only.";
127
132
  }, {
128
133
  readonly name: "subagents";
129
134
  readonly type: "array";
@@ -140,7 +145,7 @@ export declare const operations: readonly [{
140
145
  readonly name: "settings";
141
146
  readonly type: "object";
142
147
  readonly required: false;
143
- readonly description: "Praxis extension: managed settings saved with the configuration revision. Omit to preserve; null clears. Configuration storage only; these switches and hooks are not applied to runtime yet. /agent/v1 only.";
148
+ readonly description: "Agent runtime settings follow Claude Code managed settings. Praxis freezes output-style selection for each new session; inline output_styles extend file-based styles. Omit settings to keep saved settings; null clears them.";
144
149
  }, {
145
150
  readonly name: "models";
146
151
  readonly type: "object";
@@ -150,7 +155,7 @@ export declare const operations: readonly [{
150
155
  readonly name: "avatar";
151
156
  readonly type: "string";
152
157
  readonly required: false;
153
- readonly description: "Avatar image of the agent: an absolute https URL of at most 2048 characters, without credentials; any other value returns 400 avatar must be an https URL. It is the default picture in agent lists, the agent detail, the chat header and embedded chat when the embed appearance sets none. Saved with the agent version like other configuration, so apply=false keeps the previous avatar in effect until that version is applied. Omit on create for no avatar; on update, omit to keep it and send null to clear it. Both personal and service agents accept it. /agent/v1 only; /anthropic neither accepts nor returns it.";
158
+ readonly description: "Avatar image of the agent: an absolute https URL of at most 2048 characters, without credentials; any other value returns 400 avatar must be an https URL. It is the default picture in agent lists, the agent detail, the chat header and embedded chat when the embed appearance sets none. Saved with the agent version like other configuration, so apply=false keeps the previous avatar in effect until that version is applied. Omit on create for no avatar; on update, omit to keep it and send null to clear it. General, personal and service agents accept it. /agent/v1 only; /anthropic neither accepts nor returns it.";
154
159
  }, {
155
160
  readonly name: "environment_id";
156
161
  readonly type: "string";
@@ -168,13 +173,19 @@ export declare const operations: readonly [{
168
173
  readonly enum: readonly ["minimal", "data-editor", "full"];
169
174
  readonly required: false;
170
175
  readonly description: "Optional tool preset. minimal enables read, glob, grep and ask_user_question; data-editor also enables write and edit; full uses the default toolset with always_allow. Explicit tools override matching preset entries. codemode requires bash and is absent from data-editor.";
176
+ }, {
177
+ readonly name: "output_styles";
178
+ readonly type: "array";
179
+ readonly itemType: "object";
180
+ readonly required: false;
181
+ readonly description: "Inline custom output styles, including for agents without a computer. Omit to keep the saved list; null or [] clears it. Same-name precedence is inline, project files, personal files, then plugins. Selection is settings.outputStyle; styles apply to main conversations and are frozen per session.";
171
182
  }];
172
183
  };
173
184
  }, {
174
185
  readonly resource: "agent.agents";
175
186
  readonly method: "retrieve";
176
187
  readonly summary: "Get agent";
177
- readonly description: "Read one agent by id. The top level is the latest saved version, the editable head whose version you send back for optimistic concurrency; after a save with apply false it differs from active_version, and new sessions use active_version, which you read with version=active. With version, read a specific saved version. The response lists every native tool with its resolved configuration in one agent_toolset_20260401 entry, so it can be sent back unchanged to agents.update. Use agents.versions.list to enumerate versions.";
188
+ readonly description: "Read the agent configuration currently effective for new sessions. By default, version equals active_version and latest_version identifies the newest saved version, including an unapplied save. Use latest_version for optimistic concurrency when updating. Pass version as a positive integer to read that saved version; version=active is equivalent to omission. The response lists every native tool with its resolved configuration in one agent_toolset_20260401 entry, so tools can be sent back unchanged to agents.update. Use agents.versions.list to enumerate saved versions.";
178
189
  readonly http: "GET";
179
190
  readonly path: "/agent/v1/agents/{agent_id}";
180
191
  readonly streaming: "no";
@@ -182,19 +193,19 @@ export declare const operations: readonly [{
182
193
  readonly pathParams: readonly [{
183
194
  readonly name: "agent_id";
184
195
  readonly sdkName: "agent_id";
185
- readonly description: "Agent id, as returned by agents.create or agents.list (for a session filter, the agent the session was created with). Not the agent name.";
196
+ readonly description: "Agent id, as returned by agents.create or agents.list (for a session filter, the agent the session was created with). Not the agent name. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
186
197
  }];
187
198
  readonly query: readonly [{
188
199
  readonly name: "version";
189
200
  readonly type: "number";
190
201
  readonly required: false;
191
- readonly description: "Agent version to read; omit for the latest saved version. An integer of at least 1 (versions are listed by agents.versions.list), or the string active for the version new sessions use.";
202
+ readonly description: "Agent version to read. Omit, or send active, for the currently effective version used by new sessions. Send an integer of at least 1 from agents.versions.list to read that saved version. The default response also includes latest_version, the newest saved version number.";
192
203
  }];
193
204
  }, {
194
205
  readonly resource: "agent.agents";
195
206
  readonly method: "update";
196
207
  readonly summary: "Update agent";
197
- readonly description: "Update an agent. Send the current version in the body for optimistic concurrency: a stale version returns 409, and an update that changes nothing keeps the version number. Any real change saves a new version. apply defaults to true and moves active_version to the new version, or to the latest when configuration is unchanged; apply false saves without applying. version_note optionally records up to 280 characters on a newly created version; null means no note, and a note sent when the request changes nothing else returns 400 because a note is stored only with a new version. Existing sessions and tokens keep their version. Omitted fields keep their value. multiagent takes null or a coordinator roster; subagent_model keeps its value when omitted and is cleared by null. Archived agents cannot be updated. tools: [] removes every tool, while tools: null returns 400 (tools cannot be null; send [] to remove every tool). On update, omit skills to keep them, send an array to replace them, or send [] or null to clear them. skills attaches uploaded custom skills as [{type: \"custom\", skill_id, version?}] (skill_id from skills.create or skills.list; at most 20, no repeated skill_id). Omit version, or send \"latest\", to use the skill's newest version when a session starts. type anthropic returns 400.";
208
+ readonly description: "Save configuration changes as a new immutable version. Send latest_version from a default retrieve or update response as the request version for optimistic concurrency; a stale value returns 409. apply defaults to true and makes the new version effective; apply false saves without changing active_version. The response contains the effective configuration, with version equal to active_version and latest_version naming the newest saved version. An unchanged configuration, including a note-only update, is a no-op returning 200 and the current effective version without creating or activating a version. version_note records up to 280 characters only when a configuration change creates a new version; null is equivalent to omission. Use agents.versions.apply to activate an existing saved version. Existing sessions and tokens keep their version. Omitted fields keep their value. multiagent takes null or a coordinator roster; subagent_model keeps its value when omitted and is cleared by null. Archived agents cannot be updated. tools: [] removes every tool, while tools: null returns 400 (tools cannot be null; send [] to remove every tool). On update, omit skills to keep them, send an array to replace them, or send [] or null to clear them. skills attaches uploaded custom skills as [{type: \"custom\", skill_id, version?}] (skill_id from skills.create or skills.list; at most 20, no repeated skill_id). Omit version, or send \"latest\", to use the skill's newest version when a session starts. type anthropic returns 400. Assume agents reject model, models, subagent_model, subagents and multiagent on every update; other fields follow the general agent rules, with vault_ids also accepted.";
198
209
  readonly http: "POST";
199
210
  readonly path: "/agent/v1/agents/{agent_id}";
200
211
  readonly streaming: "no";
@@ -202,7 +213,7 @@ export declare const operations: readonly [{
202
213
  readonly pathParams: readonly [{
203
214
  readonly name: "agent_id";
204
215
  readonly sdkName: "agent_id";
205
- readonly description: "Agent id, as returned by agents.create or agents.list (for a session filter, the agent the session was created with). Not the agent name.";
216
+ readonly description: "Agent id, as returned by agents.create or agents.list (for a session filter, the agent the session was created with). Not the agent name. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
206
217
  }];
207
218
  readonly query: readonly [];
208
219
  readonly body: {
@@ -227,12 +238,12 @@ export declare const operations: readonly [{
227
238
  readonly name: "model";
228
239
  readonly type: "object";
229
240
  readonly required: false;
230
- readonly description: "A model id from the Praxis model catalog (`praxis.model.models.list`), or a `model_config` object for additional configuration control. Unlike Anthropic, Claude model ids other than those in the catalog are rejected.";
241
+ readonly description: "A model id from the Praxis model catalog (`praxis.model.models.list`), or a `model_config` object for additional configuration control. Unlike Anthropic, Claude model ids other than those in the catalog are rejected. Forbidden and omitted on assume agents.";
231
242
  }, {
232
243
  readonly name: "multiagent";
233
244
  readonly type: "object";
234
245
  readonly required: false;
235
- readonly description: "A coordinator topology: the session's primary thread orchestrates\nwork by spawning session threads, each running an agent drawn from the `agents`\nroster.";
246
+ readonly description: "Coordinator roster. A bare string agent id is equivalent to {type: \"agent\", id}; omitting its version pins the referenced agent's current saved version when this roster is saved. {type: \"self\"} refers to this agent. Specify a concrete version to pin it explicitly.";
236
247
  }, {
237
248
  readonly name: "name";
238
249
  readonly type: "string";
@@ -259,17 +270,17 @@ export declare const operations: readonly [{
259
270
  readonly name: "version";
260
271
  readonly type: "number";
261
272
  readonly required: false;
262
- readonly description: "The agent's current version, used to prevent concurrent overwrites.\nObtain this value from a create or retrieve response. Must be at least 1 if\nspecified. When supplied, the request fails if it does not match the server's\ncurrent version; omit to apply the update unconditionally.";
273
+ readonly description: "Newest saved version used for optimistic concurrency. Obtain latest_version from the default retrieve or update response, or version from versions.list. A stale value returns 409; omit for an unconditional update.";
263
274
  }, {
264
275
  readonly name: "apply";
265
276
  readonly type: "boolean";
266
277
  readonly required: false;
267
- readonly description: "Defaults to true: apply the newly saved version, or the latest version when configuration is unchanged. Set false to save without changing active_version. Unlike Managed Agents, saving and applying can be separate.";
278
+ readonly description: "Defaults to true: apply a newly saved configuration version. Set false to save without changing active_version. An unchanged configuration is a no-op, including note-only updates; use versions.apply to activate a saved version.";
268
279
  }, {
269
280
  readonly name: "version_note";
270
281
  readonly type: "string";
271
282
  readonly required: false;
272
- readonly description: "Optional change explanation stored as note on the new immutable version, up to 280 characters. Omission or null stores no note. A note sent when nothing else changes returns 400 (nothing to save), because a note is stored only with a new version.";
283
+ readonly description: "Optional change explanation, at most 280 characters. Recorded only when a configuration change creates a new immutable version. A note-only update is a no-op returning 200 and the current effective version. Null is equivalent to omission.";
273
284
  }, {
274
285
  readonly name: "bindings";
275
286
  readonly type: "array";
@@ -279,9 +290,9 @@ export declare const operations: readonly [{
279
290
  }, {
280
291
  readonly name: "kind";
281
292
  readonly type: "string";
282
- readonly enum: readonly ["personal", "service"];
293
+ readonly enum: readonly ["general", "personal", "service", "assume"];
283
294
  readonly required: false;
284
- readonly description: "Immutable agent kind. personal requires computer_id; service cannot bind a computer. Omit on create to infer from computer_id. On update, the same kind is ignored; changing kind or crossing its computer binding returns 400 invalid_request_error.";
295
+ readonly description: "Immutable agent kind. general and personal require computer_id; service cannot bind a computer. Omit on create to infer from computer_id (general with a computer, service without). On update, the same kind is ignored; changing kind or crossing its computer binding returns 400 invalid_request_error. Assume agents use a durable computer driven over MCP without a conversation model; model, models, subagent_model, subagents and multiagent are forbidden and omitted.";
285
296
  }, {
286
297
  readonly name: "computer_id";
287
298
  readonly type: "string";
@@ -292,6 +303,11 @@ export declare const operations: readonly [{
292
303
  readonly type: "string";
293
304
  readonly required: false;
294
305
  readonly description: "Praxis extension: default subagent model ID, pinned in the agent revision. Call model overrides this; otherwise it overrides the roster member model or the parent model for built-ins. Null clears the default. /agent/v1 only.";
306
+ }, {
307
+ readonly name: "image_model";
308
+ readonly type: "string";
309
+ readonly required: false;
310
+ readonly description: "Model used by the imagine image tool; defaults to gpt-image-2 when unset. Only models that can generate images are accepted. Omit to preserve; null clears the configured model. /agent/v1 only.";
295
311
  }, {
296
312
  readonly name: "subagents";
297
313
  readonly type: "array";
@@ -308,7 +324,7 @@ export declare const operations: readonly [{
308
324
  readonly name: "settings";
309
325
  readonly type: "object";
310
326
  readonly required: false;
311
- readonly description: "Praxis extension: managed settings saved with the configuration revision. Omit to preserve; null clears. Configuration storage only; these switches and hooks are not applied to runtime yet. /agent/v1 only.";
327
+ readonly description: "Agent runtime settings follow Claude Code managed settings. Praxis freezes output-style selection for each new session; inline output_styles extend file-based styles. Omit settings to keep saved settings; null clears them.";
312
328
  }, {
313
329
  readonly name: "models";
314
330
  readonly type: "object";
@@ -318,7 +334,7 @@ export declare const operations: readonly [{
318
334
  readonly name: "avatar";
319
335
  readonly type: "string";
320
336
  readonly required: false;
321
- readonly description: "Avatar image of the agent: an absolute https URL of at most 2048 characters, without credentials; any other value returns 400 avatar must be an https URL. It is the default picture in agent lists, the agent detail, the chat header and embedded chat when the embed appearance sets none. Saved with the agent version like other configuration, so apply=false keeps the previous avatar in effect until that version is applied. Omit on create for no avatar; on update, omit to keep it and send null to clear it. Both personal and service agents accept it. /agent/v1 only; /anthropic neither accepts nor returns it.";
337
+ readonly description: "Avatar image of the agent: an absolute https URL of at most 2048 characters, without credentials; any other value returns 400 avatar must be an https URL. It is the default picture in agent lists, the agent detail, the chat header and embedded chat when the embed appearance sets none. Saved with the agent version like other configuration, so apply=false keeps the previous avatar in effect until that version is applied. Omit on create for no avatar; on update, omit to keep it and send null to clear it. General, personal and service agents accept it. /agent/v1 only; /anthropic neither accepts nor returns it.";
322
338
  }, {
323
339
  readonly name: "environment_id";
324
340
  readonly type: "string";
@@ -336,8 +352,29 @@ export declare const operations: readonly [{
336
352
  readonly enum: readonly ["minimal", "data-editor", "full"];
337
353
  readonly required: false;
338
354
  readonly description: "Optional tool preset. minimal enables read, glob, grep and ask_user_question; data-editor also enables write and edit; full uses the default toolset with always_allow. Explicit tools override matching preset entries. codemode requires bash and is absent from data-editor.";
355
+ }, {
356
+ readonly name: "output_styles";
357
+ readonly type: "array";
358
+ readonly itemType: "object";
359
+ readonly required: false;
360
+ readonly description: "Inline custom output styles, including for agents without a computer. Omit to keep the saved list; null or [] clears it. Same-name precedence is inline, project files, personal files, then plugins. Selection is settings.outputStyle; styles apply to main conversations and are frozen per session.";
339
361
  }];
340
362
  };
363
+ }, {
364
+ readonly resource: "agent.agents";
365
+ readonly method: "retrieveAppearance";
366
+ readonly summary: "Get agent appearance";
367
+ readonly description: "Read the saved chat appearance of a service agent.\n\nAgent Kit calls this from the page with a customer access token of this agent; your API key and console members can read it too. A token of another agent returns 404. The body is the same as the embed appearance read; a missing appearance returns the agent's own name and avatar only. Responses are private and cacheable for 60 seconds.";
368
+ readonly http: "GET";
369
+ readonly path: "/agent/v1/agents/{agent_id}/appearance";
370
+ readonly streaming: "no";
371
+ readonly pagination: false;
372
+ readonly pathParams: readonly [{
373
+ readonly name: "agent_id";
374
+ readonly sdkName: "agent_id";
375
+ readonly description: "Service agent id from agent creation or listing; with a customer access token, the agent the token was issued for. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
376
+ }];
377
+ readonly query: readonly [];
341
378
  }, {
342
379
  readonly resource: "agent.agents";
343
380
  readonly method: "archive";
@@ -350,9 +387,50 @@ export declare const operations: readonly [{
350
387
  readonly pathParams: readonly [{
351
388
  readonly name: "agent_id";
352
389
  readonly sdkName: "agent_id";
353
- readonly description: "Agent id, as returned by agents.create or agents.list (for a session filter, the agent the session was created with). Not the agent name.";
390
+ readonly description: "Agent id, as returned by agents.create or agents.list (for a session filter, the agent the session was created with). Not the agent name. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
354
391
  }];
355
392
  readonly query: readonly [];
393
+ }, {
394
+ readonly resource: "agent.agents.customers";
395
+ readonly method: "list";
396
+ readonly summary: "List customers";
397
+ readonly description: "List the customers of a service agent, identified and anonymous, most recently seen first.\n\nCall this from your backend with your API key, or from the console. Customers follow Shopify Admin customers (list, retrieve, block, sign-out and data deletion of the people who use your storefront), so that experience applies. The list includes customers who signed in but have not started a session yet, and customers recorded under your own ids by embed tokens before customer sign-in existed; an id first seen that way is identified unless it starts with anon_. Unlike Shopify, a customer can be anonymous: a visitor admitted with the publishable key gets an anon_ id, and when it later signs in with anonymous_access_token it is merged: merged_into names the identified customer, and its sessions count toward that customer. Filter with q (a case-sensitive customer id prefix), type (identified or anonymous) and blocked (true or false). limit is 1 to 100, default 20; reuse next_page with the same filters and limit. A customer access token gets 404. Example: GET /agent/v1/agents/agent_example/customers?type=identified&blocked=false&limit=50.";
398
+ readonly http: "GET";
399
+ readonly path: "/agent/v1/agents/{agent_id}/customers";
400
+ readonly streaming: "no";
401
+ readonly pagination: false;
402
+ readonly pathParams: readonly [{
403
+ readonly name: "agent_id";
404
+ readonly sdkName: "agent_id";
405
+ readonly description: "Active service agent id from agent creation or listing. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
406
+ }];
407
+ readonly query: readonly [{
408
+ readonly name: "limit";
409
+ readonly type: "integer";
410
+ readonly required: false;
411
+ readonly description: "Maximum customers per page, 1 to 100; defaults to 20.";
412
+ }, {
413
+ readonly name: "page";
414
+ readonly type: "string";
415
+ readonly required: false;
416
+ readonly description: "next_page from the previous response with the same q, type, blocked and limit.";
417
+ }, {
418
+ readonly name: "q";
419
+ readonly type: "string";
420
+ readonly required: false;
421
+ readonly description: "Case-sensitive literal prefix of the customer id; omit for all customers.";
422
+ }, {
423
+ readonly name: "type";
424
+ readonly type: "string";
425
+ readonly enum: readonly ["identified", "anonymous"];
426
+ readonly required: false;
427
+ readonly description: "Only identified or only anonymous customers; omit for both.";
428
+ }, {
429
+ readonly name: "blocked";
430
+ readonly type: "boolean";
431
+ readonly required: false;
432
+ readonly description: "true for blocked customers only, false for customers who are not blocked; omit for both.";
433
+ }];
356
434
  }, {
357
435
  readonly resource: "agent.agents.customers.auth.accessTokens";
358
436
  readonly method: "create";
@@ -365,7 +443,7 @@ export declare const operations: readonly [{
365
443
  readonly pathParams: readonly [{
366
444
  readonly name: "agent_id";
367
445
  readonly sdkName: "agent_id";
368
- readonly description: "Service agent id (agent_…) or its short identity number, from agent creation or listing.";
446
+ readonly description: "Service agent id (agent_…) or its short identity number, from agent creation or listing. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
369
447
  }];
370
448
  readonly query: readonly [];
371
449
  readonly body: {
@@ -384,7 +462,7 @@ export declare const operations: readonly [{
384
462
  readonly pathParams: readonly [{
385
463
  readonly name: "agent_id";
386
464
  readonly sdkName: "agent_id";
387
- readonly description: "Service agent id (agent_…) or its short identity number, from agent creation or listing.";
465
+ readonly description: "Service agent id (agent_…) or its short identity number, from agent creation or listing. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
388
466
  }];
389
467
  readonly query: readonly [];
390
468
  }, {
@@ -399,7 +477,7 @@ export declare const operations: readonly [{
399
477
  readonly pathParams: readonly [{
400
478
  readonly name: "agent_id";
401
479
  readonly sdkName: "agent_id";
402
- readonly description: "Service agent id (agent_…) or its short identity number, from agent creation or listing.";
480
+ readonly description: "Service agent id (agent_…) or its short identity number, from agent creation or listing. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
403
481
  }];
404
482
  readonly query: readonly [];
405
483
  }, {
@@ -414,7 +492,7 @@ export declare const operations: readonly [{
414
492
  readonly pathParams: readonly [{
415
493
  readonly name: "agent_id";
416
494
  readonly sdkName: "agent_id";
417
- readonly description: "Service agent id (agent_…) or its short identity number, from agent creation or listing.";
495
+ readonly description: "Service agent id (agent_…) or its short identity number, from agent creation or listing. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
418
496
  }];
419
497
  readonly query: readonly [];
420
498
  readonly body: {
@@ -478,152 +556,122 @@ export declare const operations: readonly [{
478
556
  }];
479
557
  };
480
558
  }, {
481
- readonly resource: "agent.agents.endUsers";
482
- readonly method: "list";
483
- readonly summary: "List End Users";
484
- readonly description: "List users who have sessions or token issuance history on a service agent.\n\nOrdered by last_active_at and external_user_id descending. q is a case-sensitive literal prefix, including underscores. limit is 1–100, default 20. Reuse next_page with the same organization, agent, q and limit. Preemptively blocked users without history do not appear. End-user credentials and inaccessible or personal agents return 404.";
485
- readonly http: "GET";
486
- readonly path: "/agent/v1/agents/{agent_id}/end_users";
487
- readonly streaming: "no";
488
- readonly pagination: false;
489
- readonly pathParams: readonly [{
490
- readonly name: "agent_id";
491
- readonly sdkName: "agent_id";
492
- readonly description: "Active service agent identifier from agent creation or listing.";
493
- }];
494
- readonly query: readonly [{
495
- readonly name: "limit";
496
- readonly type: "integer";
497
- readonly required: false;
498
- readonly description: "Maximum users per page; defaults to 20.";
499
- }, {
500
- readonly name: "page";
501
- readonly type: "string";
502
- readonly required: false;
503
- readonly description: "next_page from the previous response with the same agent, q and limit.";
504
- }, {
505
- readonly name: "q";
506
- readonly type: "string";
507
- readonly required: false;
508
- readonly description: "Case-sensitive literal prefix of external_user_id; omit or use an empty string for all users.";
509
- }];
510
- }, {
511
- readonly resource: "agent.agents.endUsers";
559
+ readonly resource: "agent.agents.customers";
512
560
  readonly method: "delete";
513
- readonly summary: "Delete end-user data";
514
- readonly description: "Delete a host application's end-user data from one service agent after explicit confirmation.\n\nDevelop only. Set confirm to the exact external_user_id; missing or mismatched confirmation returns 400. Returns 202 with a pending task id, not completion. Poll the deletion endpoint. Concurrent requests reuse the unfinished task; retry DELETE after failure to resume it. Tokens are revoked and the user is blocked before a seven-day recovery snapshot is verified. Sessions including child sessions, conversation data, grants and feedback are then removed. A pre-existing block remains; a temporary block is removed on success. Attachment metadata is recorded and File attachments are retained. No charge is introduced by this operation. Example: DELETE /agent/v1/agents/agent_example/end_users/customer_123?confirm=customer_123.";
561
+ readonly summary: "Delete customer data";
562
+ readonly description: "Delete a customer's data from one service agent after explicit confirmation.\n\nDevelop only. Set confirm to the exact customer id; a missing or different confirm returns 400 naming the value to send. Returns 202 with a pending task id; poll the deletion endpoint. Concurrent requests reuse the unfinished task; retry DELETE after failure to resume it. Tokens are revoked and the customer is blocked before a seven-day recovery snapshot is verified; sessions including child sessions, conversation data, grants and feedback are then removed. A block that existed before stays; a temporary block is removed on success. File attachments are retained. Example: DELETE /agent/v1/agents/agent_example/customers/cus_8f2a91?confirm=cus_8f2a91.";
515
563
  readonly http: "DELETE";
516
- readonly path: "/agent/v1/agents/{agent_id}/end_users/{external_user_id}";
564
+ readonly path: "/agent/v1/agents/{agent_id}/customers/{customer_id}";
517
565
  readonly streaming: "no";
518
566
  readonly pagination: false;
519
567
  readonly pathParams: readonly [{
520
568
  readonly name: "agent_id";
521
569
  readonly sdkName: "agent_id";
522
- readonly description: "Active service agent identifier from agent creation or listing.";
570
+ readonly description: "Active service agent id from agent creation or listing. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
523
571
  }, {
524
- readonly name: "external_user_id";
525
- readonly sdkName: "external_user_id";
526
- readonly description: "Host user identifier supplied at issuance or from end-user listing.";
572
+ readonly name: "customer_id";
573
+ readonly sdkName: "customer_id";
574
+ readonly description: "Customer id from customer listing, or your own customer_id.";
527
575
  }];
528
576
  readonly query: readonly [{
529
577
  readonly name: "confirm";
530
578
  readonly type: "string";
531
579
  readonly required: true;
532
- readonly description: "Must exactly equal the external_user_id path parameter to confirm destructive deletion.";
580
+ readonly description: "Must equal the customer_id path parameter exactly, confirming the destructive deletion.";
533
581
  }];
534
582
  }, {
535
- readonly resource: "agent.agents.endUsers";
583
+ readonly resource: "agent.agents.customers";
536
584
  readonly method: "retrieve";
537
- readonly summary: "Get End User";
538
- readonly description: "Inspect one end user and their twenty most recently updated sessions.\n\nUse external_user_id from listing or your host application. Users without session or issuance history return 404, including preemptively blocked users. End-user credentials and inaccessible or personal agents return 404.";
585
+ readonly summary: "Get customer";
586
+ readonly description: "Retrieve one customer of a service agent with its twenty most recently updated sessions.\n\nUse the customer id from the list or your own customer_id. An unknown customer returns 404 CUSTOMER_NOT_FOUND, and so does a customer access token. Unlike Shopify, an identified customer's session_count, cost and recent_sessions include the sessions of anonymous customers merged into it; the merged anonymous customer still shows its own sessions and its merged_into.";
539
587
  readonly http: "GET";
540
- readonly path: "/agent/v1/agents/{agent_id}/end_users/{external_user_id}";
588
+ readonly path: "/agent/v1/agents/{agent_id}/customers/{customer_id}";
541
589
  readonly streaming: "no";
542
590
  readonly pagination: false;
543
591
  readonly pathParams: readonly [{
544
592
  readonly name: "agent_id";
545
593
  readonly sdkName: "agent_id";
546
- readonly description: "Active service agent identifier from agent creation or listing.";
594
+ readonly description: "Active service agent id from agent creation or listing. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
547
595
  }, {
548
- readonly name: "external_user_id";
549
- readonly sdkName: "external_user_id";
550
- readonly description: "Host user identifier supplied at issuance or from end-user listing.";
596
+ readonly name: "customer_id";
597
+ readonly sdkName: "customer_id";
598
+ readonly description: "Customer id from customer listing, or your own customer_id.";
551
599
  }];
552
600
  readonly query: readonly [];
553
601
  }, {
554
- readonly resource: "agent.agents.endUsers.block";
602
+ readonly resource: "agent.agents.customers.block";
555
603
  readonly method: "create";
556
- readonly summary: "Block End User";
557
- readonly description: "Block token issuance and session creation, then revoke existing tokens for an end user.\n\nMay block a user before any history exists; timestamps are then null and counts and cost are zero. Requires an embed policy, otherwise returns 409 with setup guidance. Deduplicates the policy blocklist and retains its 1000-user maximum. If revocation returns 502, the user remains blocked; retry to finish revocation. Repeats keep the user blocked and revoke any remaining grants. End-user credentials and inaccessible or personal agents return 404.";
604
+ readonly summary: "Block customer";
605
+ readonly description: "Block a customer and end every sign-in it has on this agent.\n\nBlocks the customer, then ends every live sign-in the way logout does: each access token is revoked and its open event streams close. From then on grant_codes, access_tokens, renew and new sessions for this customer return CUSTOMER_BLOCKED until you unblock it. Idempotent: a repeat keeps the first block time and revokes whatever is still live. If credential revocation fails the request returns 502 and the customer stays blocked; retry to finish. An unknown customer returns 404 CUSTOMER_NOT_FOUND.";
558
606
  readonly http: "POST";
559
- readonly path: "/agent/v1/agents/{agent_id}/end_users/{external_user_id}/block";
607
+ readonly path: "/agent/v1/agents/{agent_id}/customers/{customer_id}/block";
560
608
  readonly streaming: "no";
561
609
  readonly pagination: false;
562
610
  readonly pathParams: readonly [{
563
611
  readonly name: "agent_id";
564
612
  readonly sdkName: "agent_id";
565
- readonly description: "Active service agent identifier from agent creation or listing.";
613
+ readonly description: "Active service agent id from agent creation or listing. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
566
614
  }, {
567
- readonly name: "external_user_id";
568
- readonly sdkName: "external_user_id";
569
- readonly description: "Host user identifier supplied at issuance or from end-user listing.";
615
+ readonly name: "customer_id";
616
+ readonly sdkName: "customer_id";
617
+ readonly description: "Customer id from customer listing, or your own customer_id.";
570
618
  }];
571
619
  readonly query: readonly [];
572
620
  }, {
573
- readonly resource: "agent.agents.endUsers";
621
+ readonly resource: "agent.agents.customers";
574
622
  readonly method: "retrieveDeletion";
575
- readonly summary: "Get end-user deletion";
576
- readonly description: "Poll the latest deletion task for an end user, including after the user data has been removed.\n\nUse the same agent_id and external_user_id as the confirmed DELETE. Status is pending, snapshotting, deleting, done or failed. Counts are empty until a verified snapshot exists. A failed task remains blocked and resumes when DELETE is retried with matching confirmation. snapshot_key is an operator recovery reference retained for seven days, not a public download URL. End-user credentials, inaccessible or personal agents, and missing tasks return 404. This read does not create a task or charge usage.";
623
+ readonly summary: "Get customer deletion";
624
+ readonly description: "Poll the latest deletion task of a customer, including after its data has been removed.\n\nUse the same agent_id and customer id as the confirmed DELETE. Status is pending, snapshotting, deleting, done or failed. Counts are empty until a verified snapshot exists. snapshot_key is an operator recovery reference retained for seven days, not a download URL. A customer access token and a missing task return 404.";
577
625
  readonly http: "GET";
578
- readonly path: "/agent/v1/agents/{agent_id}/end_users/{external_user_id}/deletion";
626
+ readonly path: "/agent/v1/agents/{agent_id}/customers/{customer_id}/deletion";
579
627
  readonly streaming: "no";
580
628
  readonly pagination: false;
581
629
  readonly pathParams: readonly [{
582
630
  readonly name: "agent_id";
583
631
  readonly sdkName: "agent_id";
584
- readonly description: "Active service agent identifier from agent creation or listing.";
632
+ readonly description: "Active service agent id from agent creation or listing. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
585
633
  }, {
586
- readonly name: "external_user_id";
587
- readonly sdkName: "external_user_id";
588
- readonly description: "Host user identifier supplied at issuance or from end-user listing.";
634
+ readonly name: "customer_id";
635
+ readonly sdkName: "customer_id";
636
+ readonly description: "Customer id from customer listing, or your own customer_id.";
589
637
  }];
590
638
  readonly query: readonly [];
591
639
  }, {
592
- readonly resource: "agent.agents.endUsers.revokeTokens";
640
+ readonly resource: "agent.agents.customers.revokeTokens";
593
641
  readonly method: "create";
594
- readonly summary: "Revoke End User Tokens";
595
- readonly description: "Revoke all issued tokens for an end user and terminate their open embed streams.\n\nRevokes credentials before marking grants revoked. Upstream failure returns 502 without changing grant revocation timestamps. Returns the count of newly revoked grants; a repeat without new grants returns zero. Does not block future issuance. End-user credentials and inaccessible or personal agents return 404.";
642
+ readonly summary: "Revoke customer tokens";
643
+ readonly description: "Sign a customer out everywhere without blocking it.\n\nEnds every live sign-in of the customer, revoking each access token and closing its open event streams; the customer can sign in again right away. Returns the number of access tokens this request revoked; a repeat returns 0. Credential revocation failure returns 502; retry to finish. An unknown customer returns 404 CUSTOMER_NOT_FOUND.";
596
644
  readonly http: "POST";
597
- readonly path: "/agent/v1/agents/{agent_id}/end_users/{external_user_id}/revoke_tokens";
645
+ readonly path: "/agent/v1/agents/{agent_id}/customers/{customer_id}/revoke_tokens";
598
646
  readonly streaming: "no";
599
647
  readonly pagination: false;
600
648
  readonly pathParams: readonly [{
601
649
  readonly name: "agent_id";
602
650
  readonly sdkName: "agent_id";
603
- readonly description: "Active service agent identifier from agent creation or listing.";
651
+ readonly description: "Active service agent id from agent creation or listing. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
604
652
  }, {
605
- readonly name: "external_user_id";
606
- readonly sdkName: "external_user_id";
607
- readonly description: "Host user identifier supplied at issuance or from end-user listing.";
653
+ readonly name: "customer_id";
654
+ readonly sdkName: "customer_id";
655
+ readonly description: "Customer id from customer listing, or your own customer_id.";
608
656
  }];
609
657
  readonly query: readonly [];
610
658
  }, {
611
- readonly resource: "agent.agents.endUsers.unblock";
659
+ readonly resource: "agent.agents.customers.unblock";
612
660
  readonly method: "create";
613
- readonly summary: "Unblock End User";
614
- readonly description: "Allow an end user to receive new tokens and create new sessions again.\n\nRemoves the user from the blocklist; previously revoked tokens stay revoked. Idempotent. Requires an embed policy, otherwise returns 409 with setup guidance. Returns null timestamps and zero counts and cost when no session or issuance history exists. End-user credentials and inaccessible or personal agents return 404.";
661
+ readonly summary: "Unblock customer";
662
+ readonly description: "Allow a blocked customer to sign in and start sessions again.\n\nIdempotent. Access tokens revoked while the customer was blocked stay revoked; sign the customer in again with a new grant code. An unknown customer returns 404 CUSTOMER_NOT_FOUND.";
615
663
  readonly http: "POST";
616
- readonly path: "/agent/v1/agents/{agent_id}/end_users/{external_user_id}/unblock";
664
+ readonly path: "/agent/v1/agents/{agent_id}/customers/{customer_id}/unblock";
617
665
  readonly streaming: "no";
618
666
  readonly pagination: false;
619
667
  readonly pathParams: readonly [{
620
668
  readonly name: "agent_id";
621
669
  readonly sdkName: "agent_id";
622
- readonly description: "Active service agent identifier from agent creation or listing.";
670
+ readonly description: "Active service agent id from agent creation or listing. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
623
671
  }, {
624
- readonly name: "external_user_id";
625
- readonly sdkName: "external_user_id";
626
- readonly description: "Host user identifier supplied at issuance or from end-user listing.";
672
+ readonly name: "customer_id";
673
+ readonly sdkName: "customer_id";
674
+ readonly description: "Customer id from customer listing, or your own customer_id.";
627
675
  }];
628
676
  readonly query: readonly [];
629
677
  }, {
@@ -638,14 +686,14 @@ export declare const operations: readonly [{
638
686
  readonly pathParams: readonly [{
639
687
  readonly name: "agent_id";
640
688
  readonly sdkName: "agent_id";
641
- readonly description: "Agent id from creation or listing.";
689
+ readonly description: "Agent id from creation or listing. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
642
690
  }];
643
691
  readonly query: readonly [];
644
692
  }, {
645
693
  readonly resource: "agent.agents.versions";
646
694
  readonly method: "list";
647
695
  readonly summary: "List agent versions";
648
- readonly description: "List the saved versions of one agent, in pages of at most 100 (default 20). Each item is the full agent definition at that version, so you can compare what changed between versions. active is true only for the item that new sessions use; active_version on each item is the agent-level value, kept for compatibility. Use agents.retrieve with version to read a single one; agent_id comes from agents.list or agents.create.";
696
+ readonly description: "List the saved versions of one agent in ascending version number, oldest first, in pages of at most 100 (default 20). Each item is the full agent definition at that saved version, so you can compare configurations. active is true only for the item new sessions use. active_version on every item is the same agent-level currently effective version; it is not that item's version. Use agents.retrieve with version to read a single saved version; agent_id comes from agents.list or agents.create. Pass next_page as page to continue.";
649
697
  readonly http: "GET";
650
698
  readonly path: "/agent/v1/agents/{agent_id}/versions";
651
699
  readonly streaming: "no";
@@ -653,7 +701,7 @@ export declare const operations: readonly [{
653
701
  readonly pathParams: readonly [{
654
702
  readonly name: "agent_id";
655
703
  readonly sdkName: "agent_id";
656
- readonly description: "Agent id, as returned by agents.create or agents.list (for a session filter, the agent the session was created with). Not the agent name.";
704
+ readonly description: "Agent id, as returned by agents.create or agents.list (for a session filter, the agent the session was created with). Not the agent name. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
657
705
  }];
658
706
  readonly query: readonly [{
659
707
  readonly name: "limit";
@@ -670,7 +718,7 @@ export declare const operations: readonly [{
670
718
  readonly resource: "agent.agents.versions";
671
719
  readonly method: "apply";
672
720
  readonly summary: "Apply Agent Version";
673
- readonly description: "Apply a version from agents.versions.list by its version number. This idempotent operation changes active_version without creating a version; existing sessions and tokens keep their version. The response is the latest saved agent with its current active_version. Missing versions return 404 Agent version not found; archived agents return 409 Agent is archived. For example, POST /agent/v1/agents/{agent_id}/versions/2/apply with no body.";
721
+ readonly description: "Apply a saved version from agents.versions.list for new sessions and newly issued tokens, without creating a version. Existing sessions and tokens retain their version. The response contains the effective configuration with version equal to active_version and latest_version naming the newest saved version. Missing versions return 404; archived agents return 409. For example, POST /agent/v1/agents/{agent_id}/versions/2/apply with no body.";
674
722
  readonly http: "POST";
675
723
  readonly path: "/agent/v1/agents/{agent_id}/versions/{version}/apply";
676
724
  readonly streaming: "no";
@@ -678,7 +726,7 @@ export declare const operations: readonly [{
678
726
  readonly pathParams: readonly [{
679
727
  readonly name: "agent_id";
680
728
  readonly sdkName: "agent_id";
681
- readonly description: "Agent identifier from agents.create or agents.list.";
729
+ readonly description: "Agent identifier from agents.create or agents.list. Also accepts an 8-character identity number (0–9, A–Z); malformed, absent and foreign references return 404, and response ids always use agent_….";
682
730
  }, {
683
731
  readonly name: "version";
684
732
  readonly sdkName: "version";
@@ -711,7 +759,7 @@ export declare const operations: readonly [{
711
759
  readonly resource: "agent.computers";
712
760
  readonly method: "create";
713
761
  readonly summary: "Create Computer";
714
- readonly description: "Create a durable computer: a named machine whose files outlive sessions, for personal agents.\n\nPraxis extension: MA only has session-scoped temporary containers and memory_stores, not durable browsable computers. Archived files remain readable, but new sessions cannot bind them. environment_id is an optional recipe reference; computers start with a light sandbox and expose the public SDK sandbox_id. Lists include archived computers.";
762
+ readonly description: "Create a durable computer: a named machine whose files outlive sessions, for general and personal agents.\n\nPraxis extension: MA only has session-scoped temporary containers and memory_stores, not durable browsable computers. Archived files remain readable, but new sessions cannot bind them. environment_id is an optional recipe reference; computers start with a light sandbox and expose the public SDK sandbox_id. Lists include archived computers.";
715
763
  readonly http: "POST";
716
764
  readonly path: "/agent/v1/computers";
717
765
  readonly streaming: "no";
@@ -1053,7 +1101,7 @@ export declare const operations: readonly [{
1053
1101
  readonly resource: "agent.deployments";
1054
1102
  readonly method: "create";
1055
1103
  readonly summary: "Create deployment";
1056
- readonly description: "Freeze session parameters as a deployment; this operation does not open a session. Pass an agent id or versioned reference, a name, 1–50 user.message initial events and an environment_id from environments.list. Unlike Anthropic Managed Agents, /agent/v1 also accepts agent_with_overrides (model, permission_mode and cwd) and target=computer for personal agents, with environment_id omitted. Cron schedules use five POSIX fields and an IANA timezone. File resources are accepted. Supports vault_ids, up to 50, owned by the current organization and not archived; credential injection is deferred to a later version. Active schedules run every minute when due; session creation errors pause the deployment. Unsupported tools, mcp_servers, system and skills overrides return 400.";
1104
+ readonly description: "Freeze session parameters as a deployment; this operation does not open a session. Pass an agent id or versioned reference, a name, 1–50 user.message initial events and an environment_id from environments.list. Unlike Anthropic Managed Agents, /agent/v1 also accepts agent_with_overrides (model, permission_mode and cwd) and target=computer for general and personal agents, with environment_id omitted. Cron schedules use five POSIX fields and an IANA timezone. File resources are accepted. Supports vault_ids, up to 50, owned by the current organization and not archived; credential injection is deferred to a later version. Active schedules run every minute when due; session creation errors pause the deployment. Unsupported tools, mcp_servers, system and skills overrides return 400.";
1057
1105
  readonly http: "POST";
1058
1106
  readonly path: "/agent/v1/deployments";
1059
1107
  readonly streaming: "no";
@@ -1119,7 +1167,7 @@ export declare const operations: readonly [{
1119
1167
  readonly name: "target";
1120
1168
  readonly type: "object";
1121
1169
  readonly required: false;
1122
- readonly description: "Execution target. environment (default) requires an existing, unarchived environment_id. computer is available only for personal agents and permits environment_id to be omitted.";
1170
+ readonly description: "Execution target. environment (default) requires an existing, unarchived environment_id. computer is available only for general and personal agents and permits environment_id to be omitted.";
1123
1171
  }];
1124
1172
  };
1125
1173
  }, {
@@ -1211,7 +1259,7 @@ export declare const operations: readonly [{
1211
1259
  readonly name: "target";
1212
1260
  readonly type: "object";
1213
1261
  readonly required: false;
1214
- readonly description: "Execution target. environment (default) requires an existing, unarchived environment_id. computer is available only for personal agents and permits environment_id to be omitted.";
1262
+ readonly description: "Execution target. environment (default) requires an existing, unarchived environment_id. computer is available only for general and personal agents and permits environment_id to be omitted.";
1215
1263
  }];
1216
1264
  };
1217
1265
  }, {
@@ -1274,175 +1322,6 @@ export declare const operations: readonly [{
1274
1322
  readonly description: "Deployment id (depl_...), returned by deployments.create or deployments.list.";
1275
1323
  }];
1276
1324
  readonly query: readonly [];
1277
- }, {
1278
- readonly resource: "agent.embed";
1279
- readonly method: "retrieveAppearance";
1280
- readonly summary: "Read chat appearance";
1281
- readonly description: "Load saved appearance for an iframe or Hosted chat page. Supply an end-user embed token as Bearer authorization, or a console-issued publishable key in Praxis-Publishable-Key before anonymous token issuance. The credential selects the agent; identity_number and agent_id query parameters are rejected with 400. Missing appearance returns an empty object. Kit option names retain camelCase. Responses are private and cacheable for 60 seconds. Component hosts configure Kit in their own code instead.";
1282
- readonly http: "GET";
1283
- readonly path: "/agent/v1/embed/appearance";
1284
- readonly streaming: "no";
1285
- readonly pagination: false;
1286
- readonly pathParams: readonly [];
1287
- readonly query: readonly [];
1288
- }, {
1289
- readonly resource: "agent.embed.exchange";
1290
- readonly method: "create";
1291
- readonly summary: "Exchange Hosted Code";
1292
- readonly description: "Redeem a single-use hosted link credential for an end-user token.\n\nRead code from the c fragment parameter of hosted_url returned by embed token creation with hosted true, then remove the fragment before exchanging. No Authorization header is required; the code authenticates this request. The code expires after 60 seconds and is consumed atomically on exchange, so concurrent attempts have only one winner. Expired, used and unknown codes return the same 404 body. Keep the token in memory and return to the host website for a fresh link when it expires; exchange cannot refresh it. Requests are IP limited per minute using the anonymous entrypoint budget (default 20). Example body is {\"code\":\"<code from hosted_url>\"}.";
1293
- readonly http: "POST";
1294
- readonly path: "/agent/v1/embed/exchange";
1295
- readonly streaming: "no";
1296
- readonly pagination: false;
1297
- readonly pathParams: readonly [];
1298
- readonly query: readonly [];
1299
- readonly body: {
1300
- readonly required: true;
1301
- readonly fields: readonly [{
1302
- readonly name: "code";
1303
- readonly type: "string";
1304
- readonly required: true;
1305
- readonly description: "Single-use credential from the c fragment parameter of hosted_url returned by embed token creation. Valid for 60 seconds.";
1306
- }];
1307
- };
1308
- }, {
1309
- readonly resource: "agent.embedTokens";
1310
- readonly method: "list";
1311
- readonly summary: "List Embed Tokens";
1312
- readonly description: "List embed token issuance records in your organization.\n\nIncludes expired and revoked grants; returns neither token nor token_id. Sorts by created_at, then grant id, both descending. agent_id accepts agent_ or agt_; external_user_id matches exactly. limit is 1–100 (default 20). Reuse next_page as page with the same filters and organization; a mismatch returns 400. End-user credentials return 404.";
1313
- readonly http: "GET";
1314
- readonly path: "/agent/v1/embed_tokens";
1315
- readonly streaming: "no";
1316
- readonly pagination: false;
1317
- readonly pathParams: readonly [];
1318
- readonly query: readonly [{
1319
- readonly name: "agent_id";
1320
- readonly type: "string";
1321
- readonly required: false;
1322
- readonly description: "Filter by service agent identifier (agent_ or agt_ prefix).";
1323
- }, {
1324
- readonly name: "external_user_id";
1325
- readonly type: "string";
1326
- readonly required: false;
1327
- readonly description: "Exact host user identifier supplied at issuance.";
1328
- }, {
1329
- readonly name: "limit";
1330
- readonly type: "integer";
1331
- readonly required: false;
1332
- readonly description: "Maximum records per page; defaults to 20.";
1333
- }, {
1334
- readonly name: "page";
1335
- readonly type: "string";
1336
- readonly required: false;
1337
- readonly description: "next_page from a previous response with the same filters.";
1338
- }];
1339
- }, {
1340
- readonly resource: "agent.embedTokens";
1341
- readonly method: "create";
1342
- readonly summary: "Create Embed Token";
1343
- readonly description: "Issue a short-lived credential on your backend for an end user of a service agent.\n\nRequires an active service agent in your organization with an embed policy. Pins the requested version or the latest version and snapshots the policy environment, vaults and resources; metadata comes from the request. Blocked users cannot receive tokens. Keep your API key on the backend and pass only the returned token to the frontend. Every call creates a new grant; issuance is not idempotent. Set hosted to true to also receive hosted_url; redirect the user there within 60 seconds. The agent must have an identity_number. The URL fragment contains a single-use exchange credential, not the token. Omit hosted or set false for ordinary token issuance.";
1344
- readonly http: "POST";
1345
- readonly path: "/agent/v1/embed_tokens";
1346
- readonly streaming: "no";
1347
- readonly pagination: false;
1348
- readonly pathParams: readonly [];
1349
- readonly query: readonly [];
1350
- readonly body: {
1351
- readonly required: true;
1352
- readonly fields: readonly [{
1353
- readonly name: "hosted";
1354
- readonly type: "boolean";
1355
- readonly required: false;
1356
- readonly description: "Set true to also return a hosted chat URL with a single-use credential valid for 60 seconds. Defaults to false; the agent must have an identity_number.";
1357
- }, {
1358
- readonly name: "agent";
1359
- readonly type: "string";
1360
- readonly required: true;
1361
- readonly description: "Service agent ID or identity_number from agent retrieval; it must belong to your organization and be active.";
1362
- }, {
1363
- readonly name: "version";
1364
- readonly type: "integer";
1365
- readonly required: false;
1366
- readonly description: "Existing agent version to pin. Omit to pin the latest version at issuance.";
1367
- }, {
1368
- readonly name: "external_user_id";
1369
- readonly type: "string";
1370
- readonly required: true;
1371
- readonly description: "Your application's stable end-user identifier, scoped to this organization and agent.";
1372
- }, {
1373
- readonly name: "ttl_seconds";
1374
- readonly type: "integer";
1375
- readonly required: false;
1376
- readonly description: "Token lifetime in seconds. Defaults to the embed policy TTL and cannot exceed its maximum or 3600 seconds.";
1377
- }, {
1378
- readonly name: "budget_cents";
1379
- readonly type: "integer";
1380
- readonly required: false;
1381
- readonly description: "Session budget in cents. Defaults to the embed policy session budget and cannot exceed its maximum.";
1382
- }, {
1383
- readonly name: "system_message";
1384
- readonly type: "array";
1385
- readonly itemType: "object";
1386
- readonly required: false;
1387
- readonly description: "Optional host context as text blocks, limited to 8192 UTF-8 bytes in total.";
1388
- }, {
1389
- readonly name: "agent_override";
1390
- readonly type: "object";
1391
- readonly required: false;
1392
- readonly description: "Optional system prompt override, accepted only when the embed policy allows agent overrides.";
1393
- }, {
1394
- readonly name: "allowed_origins";
1395
- readonly type: "array";
1396
- readonly itemType: "string";
1397
- readonly required: false;
1398
- readonly description: "Optional subset of the policy origin entries, compared exactly. Omit to snapshot every policy origin.";
1399
- }, {
1400
- readonly name: "metadata";
1401
- readonly type: "object";
1402
- readonly required: false;
1403
- readonly description: "Host metadata preserved verbatim; at most 16 keys of 1–64 characters and string values of at most 512 characters. Defaults to an empty object.";
1404
- }];
1405
- };
1406
- }, {
1407
- readonly resource: "agent.embedTokens.anonymous";
1408
- readonly method: "create";
1409
- readonly summary: "Issue anonymous visitor token";
1410
- readonly description: "Obtain a short-lived embedding token for a visitor without an account using the agent owner's publishable key.\n\nNo Authorization header is required. Send the browser Origin allowed by the agent policy. Save a returned visitor_secret and reuse it for refreshes; only new visitors receive one. Unknown secrets create new visitors, and extra fields including visitor_id return 400. Issuance uses the key creator's organization membership, the key session budget and the smaller of the policy TTL maximum and 3600 seconds. IP requests are limited per minute (default 20); UTC daily session and spending caps are checked across the key's primary sessions created that day. Token issuance itself does not create a session or charge usage; subsequent sessions bill the host organization. Example body: {\"publishable_key\":\"pk_praxis_example\"}.";
1411
- readonly http: "POST";
1412
- readonly path: "/agent/v1/embed_tokens/anonymous";
1413
- readonly streaming: "no";
1414
- readonly pagination: false;
1415
- readonly pathParams: readonly [];
1416
- readonly query: readonly [];
1417
- readonly body: {
1418
- readonly required: true;
1419
- readonly fields: readonly [{
1420
- readonly name: "publishable_key";
1421
- readonly type: "string";
1422
- readonly required: true;
1423
- readonly description: "Public key created by the service agent owner; safe to include in browser code.";
1424
- }, {
1425
- readonly name: "visitor_secret";
1426
- readonly type: "string";
1427
- readonly required: false;
1428
- readonly description: "Secret returned by a previous anonymous issuance for this key. Omit for a new visitor; an unknown secret creates a new visitor.";
1429
- }];
1430
- };
1431
- }, {
1432
- readonly resource: "agent.embedTokens.revoke";
1433
- readonly method: "create";
1434
- readonly summary: "Revoke Embed Token";
1435
- readonly description: "Revoke an embed token and close its open event streams.\n\nUse an id from issuance or listing. Revokes the credential before setting revoked_at; upstream failure leaves it unset. Streams receive session.error (EMBED_TOKEN_REVOKED), then close immediately; other credentials are unaffected. Idempotent; repeats return the original revoked record without another revocation or audit. Missing or foreign grants and end-user credentials return 404.";
1436
- readonly http: "POST";
1437
- readonly path: "/agent/v1/embed_tokens/{id}/revoke";
1438
- readonly streaming: "no";
1439
- readonly pagination: false;
1440
- readonly pathParams: readonly [{
1441
- readonly name: "id";
1442
- readonly sdkName: "id";
1443
- readonly description: "Grant id returned by issuance or listing.";
1444
- }];
1445
- readonly query: readonly [];
1446
1325
  }, {
1447
1326
  readonly resource: "agent.environments";
1448
1327
  readonly method: "list";
@@ -1669,7 +1548,7 @@ export declare const operations: readonly [{
1669
1548
  readonly resource: "agent.sessions";
1670
1549
  readonly method: "create";
1671
1550
  readonly summary: "Create session";
1672
- readonly description: "Create a session: one conversation with an agent. Pass agent as an agent id or {type:\"agent\", id, version?}; an id alone, or an object without version, pins the agent's active_version (the version chosen with agents.versions.apply, not necessarily the newest saved one). Unlike Anthropic Managed Agents, omit environment_id to use the default environment saved in the agent version (light for a new agent), unless computer_id (explicit, or the agent's default) selects a Computer; pass an environment id for a sandbox recipe. For service agents, explicit null allocates no machine, so codemode, bash and other machine tools are unavailable. Optional model must be one of the agent's allowed models; optional thinking is {effort: low|medium|high|xhigh|max|none} or null, where null inherits the agent default and then the model default (none requires the model to allow disabling thinking). Selections are saved before initial_events run; invalid ones return 400 invalid_request_error. Unlike Anthropic Managed Agents, the only inline agent override is system ({type:\"agent_with_overrides\", id, system}); to change the model, tools, MCP servers or skills, save a version instead. Supports vault_ids, up to 50, owned by the current organization and not archived; credential injection is deferred to a later version. budget is {type:\"limit\", max_list_cost:{amount, currency:\"USD\"}} where amount is a positive integer string of US cents (\"2000\" is USD 20.00); omitted budget defaults to \"2000\" and null removes the limit. Up to 500 file resources can be attached. Use initial_events to send a first user.message in this request, or send messages afterwards with sessions.events.send. The returned status can still be idle before initial events run; read agent.message and the subsequent session.status_idle event to confirm completion.";
1551
+ readonly description: "Create a session: one conversation with an agent. Pass agent as an agent id or {type:\"agent\", id, version?}; an id alone, or an object without version, pins the agent's active_version (the version chosen with agents.versions.apply, not necessarily the newest saved one). Unlike Anthropic Managed Agents, omit environment_id to use the default environment saved in the agent version (light for a new agent), unless computer_id (explicit, or the agent's default) selects a Computer; pass an environment id for a sandbox recipe. For service agents, explicit null allocates no machine, so codemode, bash and other machine tools are unavailable. Optional model must be one of the agent's allowed models; optional thinking is {effort: low|medium|high|xhigh|max|none} or null, where null inherits the agent default and then the model default (none requires the model to allow disabling thinking). Selections are saved before initial_events run; invalid ones return 400 invalid_request_error. Unlike Anthropic Managed Agents, the only inline agent override is system ({type:\"agent_with_overrides\", id, system}); to change the model, tools, MCP servers or skills, save a version instead. Supports vault_ids, up to 50, owned by the current organization and not archived; credential injection is deferred to a later version. budget is {type:\"limit\", max_list_cost:{amount, currency:\"USD\"}} where amount is a positive decimal string of US dollars with at most 2 decimal places (\"20.00\" is USD 20.00); omitted budget defaults to \"20.00\" and null removes the limit. Up to 500 file resources can be attached. Use initial_events to send a first user.message in this request, or send messages afterwards with sessions.events.send. The returned status can still be idle before initial events run; read agent.message and the subsequent session.status_idle event to confirm completion. Assume agents return 400 INVALID_PARAMS; drive them over MCP at /agent/v1/agents/{id}/mcp instead.";
1673
1552
  readonly http: "POST";
1674
1553
  readonly path: "/agent/v1/sessions";
1675
1554
  readonly streaming: "no";
@@ -1910,7 +1789,7 @@ export declare const operations: readonly [{
1910
1789
  readonly resource: "agent.sessions";
1911
1790
  readonly method: "compact";
1912
1791
  readonly summary: "Compact Session (Extension)";
1913
- readonly description: "Request session context compaction and retrieve an operation receipt.\n\nAvailable only on /agent/v1. The body may be omitted or {}. Optional instructions must be a string and is forwarded unchanged. Idempotency-Key is forwarded unchanged; a UUID is generated when absent. Returns { type: session_compaction, id, status, reason? }, where id is the operation ID. queued/running return 202; skipped/succeeded/failed return 200. Non-string instructions return 400 invalid_request_error. Missing or inaccessible managed sessions return 404 not_found_error.";
1792
+ readonly description: "Request session context compaction and retrieve an operation receipt.\n\nAvailable only on /agent/v1. The body may be omitted or {}. Optional instructions must be a string and is forwarded unchanged. Idempotency-Key is forwarded unchanged; a UUID is generated when absent. Returns { type: session_compaction, id, status, reason? }, where id is the operation ID. queued/running return 202; skipped/succeeded/failed/cancelled return 200. Non-string instructions return 400 invalid_request_error. Missing or inaccessible managed sessions return 404 not_found_error.";
1914
1793
  readonly http: "POST";
1915
1794
  readonly path: "/agent/v1/sessions/{session_id}/compact";
1916
1795
  readonly streaming: "no";
@@ -1953,7 +1832,7 @@ export declare const operations: readonly [{
1953
1832
  readonly resource: "agent.sessions.compactions";
1954
1833
  readonly method: "list";
1955
1834
  readonly summary: "List Session Compactions (Extension)";
1956
- readonly description: "Read session compaction history and summaries.\n\nAvailable only on /agent/v1. Returns { data: [...] }. Each entry contains type, id, event_id, trigger, status, model, compacted_message_count, input_tokens_before, input_tokens_after, summary, error and created_at, as recorded by the service. Missing or inaccessible managed sessions return 404 not_found_error.";
1835
+ readonly description: "Read session compaction history and summaries.\n\nAvailable only on /agent/v1. Returns { data: [...], active }. active is the queued or running compaction ({ type: session_compaction, id, status, trigger: manual|auto|idle }), or null when none; manual work takes precedence. Each data entry contains type, id, event_id, trigger, status, model, compacted_message_count, input_tokens_before, input_tokens_after, summary, error and created_at, as recorded by the service. Missing or inaccessible managed sessions return 404 not_found_error.";
1957
1836
  readonly http: "GET";
1958
1837
  readonly path: "/agent/v1/sessions/{session_id}/compactions";
1959
1838
  readonly streaming: "no";
@@ -2123,9 +2002,9 @@ export declare const operations: readonly [{
2123
2002
  }];
2124
2003
  readonly query: readonly [{
2125
2004
  readonly name: "limit";
2126
- readonly type: "number";
2005
+ readonly type: "integer";
2127
2006
  readonly required: false;
2128
- readonly description: "Number of items per page.";
2007
+ readonly description: "Number of resources per page, from 1 to 100; defaults to 100.";
2129
2008
  }, {
2130
2009
  readonly name: "page";
2131
2010
  readonly type: "string";
@@ -2985,7 +2864,7 @@ export declare const operations: readonly [{
2985
2864
  readonly resource: "application.workers.grants";
2986
2865
  readonly method: "create";
2987
2866
  readonly summary: "Create grant";
2988
- readonly description: "Let this Worker's platform token access one of your databases, folders or knowledge bases.";
2867
+ readonly description: "Record access to an organization-owned database or knowledge base, all organization files (files, id *), or models (models, id *, read only). Each resource and optional alias must be unique within this Worker. Foreign and missing resources both return RESOURCE_NOT_FOUND (404); an unavailable resource service returns PROVIDER_CAPACITY (503, retryable).";
2989
2868
  readonly http: "POST";
2990
2869
  readonly path: "/application/v1/workers/{worker_id}/grants";
2991
2870
  readonly streaming: "no";
@@ -3002,13 +2881,18 @@ export declare const operations: readonly [{
3002
2881
  readonly name: "resource";
3003
2882
  readonly type: "object";
3004
2883
  readonly required: true;
3005
- readonly description: "Resource to grant.";
2884
+ readonly description: "Resource to grant. Each (type, id) may be granted once per Worker; duplicates return GRANT_CONFLICT (409).";
2885
+ }, {
2886
+ readonly name: "alias";
2887
+ readonly type: "string";
2888
+ readonly required: false;
2889
+ readonly description: "Optional name, unique within this Worker. Available for reuse after the grant is deleted.";
3006
2890
  }, {
3007
2891
  readonly name: "access";
3008
2892
  readonly type: "string";
3009
2893
  readonly enum: readonly ["read", "read_write"];
3010
2894
  readonly required: true;
3011
- readonly description: "Access level.";
2895
+ readonly description: "Access level; models accepts read only.";
3012
2896
  }];
3013
2897
  };
3014
2898
  }, {
@@ -3241,7 +3125,7 @@ export declare const operations: readonly [{
3241
3125
  readonly resource: "automation.actions";
3242
3126
  readonly method: "list";
3243
3127
  readonly summary: "List actions";
3244
- readonly description: "Discover callable Actions and their ns/name references without executing them. Combine each returned namespace and name as ns/name; Action calls use the current revision and do not accept @version or @tag. Filter by name or description; results include seven-day statistics and revision summaries without implementation source. Archived actions are excluded by default.";
3128
+ readonly description: "Discover callable Actions and their ns/name references without executing them. Combine each returned namespace and name as ns/name; Action calls use the current revision and do not accept @version or @tag. Filter by name or description; results include seven-day statistics and revision summaries without implementation source. Archived actions are excluded by default. List items carry no input contract: get the action and read current_revision.input_schema. Call it with call(\"ns/name\", input) in a script or call: ns/name with with: in a workflow.";
3245
3129
  readonly http: "GET";
3246
3130
  readonly path: "/automation/v1/actions";
3247
3131
  readonly streaming: "no";
@@ -3356,7 +3240,7 @@ export declare const operations: readonly [{
3356
3240
  readonly name: "timeout_ms";
3357
3241
  readonly type: "number";
3358
3242
  readonly required: false;
3359
- readonly description: "Positive integer milliseconds; code defaults to and is capped at 30,000. container/shell are not yet available.";
3243
+ readonly description: "Positive integer milliseconds; code defaults to and is capped at 300,000. container/shell are not yet available.";
3360
3244
  }, {
3361
3245
  readonly name: "implementation";
3362
3246
  readonly type: "object";
@@ -3378,7 +3262,7 @@ export declare const operations: readonly [{
3378
3262
  readonly resource: "automation.actions";
3379
3263
  readonly method: "retrieve";
3380
3264
  readonly summary: "Get an Action with its current input and output JSON Schemas";
3381
- readonly description: "Read the Action and its full current implementation, with input and output JSON Schemas at current_revision.input_schema and current_revision.output_schema. To read a built-in Action, use ns=praxis and name=<bare name>, for example name=ocr; invoke it in a script with call(\"ocr\", input). The response ETag is the current revision ID for conditional updates.";
3265
+ readonly description: "Read the Action and its full current implementation, with input and output JSON Schemas at current_revision.input_schema and current_revision.output_schema. To read a built-in Action, use ns=praxis and name=<bare name>, for example name=ocr; invoke it in a script with call(\"ocr\", input) or in a workflow step with call: ocr and with:. Input that breaks the contract returns INPUT_INVALID, with the fields in errors[]. The response ETag is the current revision ID for conditional updates.";
3382
3266
  readonly http: "GET";
3383
3267
  readonly path: "/automation/v1/actions/{ns}/{name}";
3384
3268
  readonly streaming: "no";
@@ -3397,7 +3281,7 @@ export declare const operations: readonly [{
3397
3281
  readonly resource: "automation.actions";
3398
3282
  readonly method: "update";
3399
3283
  readonly summary: "Update an action";
3400
- readonly description: "Update after checking compatibility against the current and five recent revisions. Widening inputs and narrowing outputs are compatible, including length, item count, property count, type (integer/number), and multipleOf (the new input factor divides the old one; the reverse holds for outputs). dry_run=true returns only CompatResult and may omit If-Match; a supplied header is still checked, and * matches any existing representation. Normal updates require If-Match and return ActionDef with ETag; previews return no ETag. Omitted optional fields retain their existing values only for description and labels; when constructing a new revision, errors defaults to [], omitted annotations keys to false, timeout_ms to 30000, and message to null. Incompatible normal updates return 422 SCHEMA_INCOMPATIBLE with issues; unchanged contents retain the existing revision.";
3284
+ readonly description: "Update after checking compatibility against the current and five recent revisions. Widening inputs and narrowing outputs are compatible, including length, item count, property count, type (integer/number), and multipleOf (the new input factor divides the old one; the reverse holds for outputs). dry_run=true returns only CompatResult and may omit If-Match; a supplied header is still checked, and * matches any existing representation. Normal updates require If-Match and return ActionDef with ETag; previews return no ETag. Omitted optional fields retain their existing values only for description and labels; when constructing a new revision, errors defaults to [], omitted annotations keys to false, timeout_ms to 300000, and message to null. Incompatible normal updates return 422 SCHEMA_INCOMPATIBLE with issues; unchanged contents retain the existing revision.";
3401
3285
  readonly http: "PUT";
3402
3286
  readonly path: "/automation/v1/actions/{ns}/{name}";
3403
3287
  readonly streaming: "no";
@@ -3454,7 +3338,7 @@ export declare const operations: readonly [{
3454
3338
  readonly name: "timeout_ms";
3455
3339
  readonly type: "number";
3456
3340
  readonly required: false;
3457
- readonly description: "Positive integer milliseconds; code defaults to and is capped at 30,000. container/shell are not yet available.";
3341
+ readonly description: "Positive integer milliseconds; code defaults to and is capped at 300,000. container/shell are not yet available.";
3458
3342
  }, {
3459
3343
  readonly name: "implementation";
3460
3344
  readonly type: "object";
@@ -3714,28 +3598,12 @@ export declare const operations: readonly [{
3714
3598
  readonly fields: readonly [];
3715
3599
  };
3716
3600
  }, {
3717
- readonly resource: "automation.resolve";
3718
- readonly method: "retrieve";
3719
- readonly summary: "Resolve a run target";
3720
- readonly description: "Resolve ns/name@tag, an exact version or a version range to a runnable exact version. Omitting @ selects latest; archived targets are rejected and no match returns NO_MATCHING_VERSION.";
3721
- readonly http: "GET";
3722
- readonly path: "/automation/v1/resolve";
3723
- readonly streaming: "no";
3724
- readonly pagination: false;
3725
- readonly pathParams: readonly [];
3726
- readonly query: readonly [{
3727
- readonly name: "target";
3728
- readonly type: "string";
3729
- readonly required: true;
3730
- readonly description: "ns/name@tag, ns/name@version or ns/name@range; omitting @ selects latest.";
3731
- }];
3732
- }, {
3733
- readonly resource: "automation.runs";
3601
+ readonly resource: "automation.humanTasks";
3734
3602
  readonly method: "list";
3735
- readonly summary: "List runs";
3736
- readonly description: "Filter tenant runs and list them newest first. Filters include multiple statuses, target, origin, labels[k] and a creation-time lower bound. q matches a run ID exactly when it starts with run_; otherwise it matches a definition-name prefix. Large input/output values are null in lists with input_truncated/output_truncated true; get run details for full values.";
3603
+ readonly summary: "List human tasks";
3604
+ readonly description: "List the human tasks that praxis/approval workflow steps opened, newest first. By default it returns only open tasks assigned to the caller: their approval inbox. scope=all lists every task of the organization, and status and run_id narrow the list. Use a returned id with retrieve for details and respond to decide. Read-only: listing never changes a task.";
3737
3605
  readonly http: "GET";
3738
- readonly path: "/automation/v1/runs";
3606
+ readonly path: "/automation/v1/human-tasks";
3739
3607
  readonly streaming: "no";
3740
3608
  readonly pagination: true;
3741
3609
  readonly pathParams: readonly [];
@@ -3743,33 +3611,185 @@ export declare const operations: readonly [{
3743
3611
  readonly name: "limit";
3744
3612
  readonly type: "integer";
3745
3613
  readonly required: false;
3746
- readonly description: "Page size: integer 1–100, default 50.";
3614
+ readonly description: "Page size, 1–100, default 50.";
3747
3615
  }, {
3748
3616
  readonly name: "cursor";
3749
3617
  readonly type: "string";
3750
3618
  readonly required: false;
3751
- readonly description: "Opaque next_cursor from the previous page; keep the original filters when paging.";
3619
+ readonly description: "The next_cursor of the previous page; omit for the first page.";
3752
3620
  }, {
3753
- readonly name: "kind";
3621
+ readonly name: "status";
3754
3622
  readonly type: "array";
3755
3623
  readonly itemType: "string";
3756
- readonly enum: readonly ["script", "workflow"];
3624
+ readonly enum: readonly ["open", "completed", "expired", "cancelled"];
3757
3625
  readonly required: false;
3758
- readonly description: "script or workflow; omit for both. Separate multiple values with commas to match any value.";
3626
+ readonly description: "Filter by status, comma-separated: open, completed, expired, cancelled. Defaults to open.";
3759
3627
  }, {
3760
- readonly name: "definition";
3761
- readonly type: "array";
3762
- readonly itemType: "string";
3628
+ readonly name: "run_id";
3629
+ readonly type: "string";
3763
3630
  readonly required: false;
3764
- readonly description: "Exact definition name in ns/name format. Separate multiple values with commas to match any value.";
3631
+ readonly description: "Only tasks opened by this run (run_).";
3765
3632
  }, {
3766
- readonly name: "version";
3767
- readonly type: "array";
3768
- readonly itemType: "string";
3633
+ readonly name: "scope";
3634
+ readonly type: "string";
3635
+ readonly enum: readonly ["assigned", "all"];
3769
3636
  readonly required: false;
3770
- readonly description: "An exact canonical semantic version, such as 1.2.0 or 1.3.0-beta.1, not a range. Separate multiple values with commas to match any value.";
3771
- }, {
3772
- readonly name: "status";
3637
+ readonly description: "assigned (default) lists only tasks assigned to the caller; all lists every task of the organization.";
3638
+ }];
3639
+ }, {
3640
+ readonly resource: "automation.humanTasks";
3641
+ readonly method: "retrieve";
3642
+ readonly summary: "Retrieve a human task";
3643
+ readonly description: "Read one human task - title, Markdown body, context, actions, form, assignees, mode, due time, responses and outcome - so an assignee can choose an action and fill the form. Read-only; the Console approval page /automation/tasks/{id} reads the same resource.";
3644
+ readonly http: "GET";
3645
+ readonly path: "/automation/v1/human-tasks/{id}";
3646
+ readonly streaming: "no";
3647
+ readonly pagination: false;
3648
+ readonly pathParams: readonly [{
3649
+ readonly name: "id";
3650
+ readonly sdkName: "id";
3651
+ readonly description: "Human task ID (htask_), from the list or the run's waits.";
3652
+ }];
3653
+ readonly query: readonly [];
3654
+ }, {
3655
+ readonly resource: "automation.humanTasks";
3656
+ readonly method: "cancel";
3657
+ readonly summary: "Cancel a human task";
3658
+ readonly description: "Cancel an open human task; only the person who started the run or an organization API key may cancel. The task becomes cancelled and the waiting workflow step raises a runtime error with code HUMAN_TASK_CANCELLED, which try/catch can catch. Open tasks are cancelled automatically when their run ends, so this call is not needed then.";
3659
+ readonly http: "POST";
3660
+ readonly path: "/automation/v1/human-tasks/{id}/cancel";
3661
+ readonly streaming: "no";
3662
+ readonly pagination: false;
3663
+ readonly pathParams: readonly [{
3664
+ readonly name: "id";
3665
+ readonly sdkName: "id";
3666
+ readonly description: "Human task ID (htask_).";
3667
+ }];
3668
+ readonly query: readonly [];
3669
+ readonly body: {
3670
+ readonly required: false;
3671
+ readonly fields: readonly [{
3672
+ readonly name: "reason";
3673
+ readonly type: "string";
3674
+ readonly required: false;
3675
+ readonly description: "Optional cancellation reason, at most 500 characters.";
3676
+ }];
3677
+ };
3678
+ }, {
3679
+ readonly resource: "automation.humanTasks";
3680
+ readonly method: "delegate";
3681
+ readonly summary: "Delegate a human task";
3682
+ readonly description: "An assignee who has not responded hands their place to another user (to_user), replacing their entry in assignees.users in place, so sequential order is kept. The new user cannot already be an assignee, nor the initiator unless self-approval is allowed. The task must still be open.";
3683
+ readonly http: "POST";
3684
+ readonly path: "/automation/v1/human-tasks/{id}/delegate";
3685
+ readonly streaming: "no";
3686
+ readonly pagination: false;
3687
+ readonly pathParams: readonly [{
3688
+ readonly name: "id";
3689
+ readonly sdkName: "id";
3690
+ readonly description: "Human task ID (htask_).";
3691
+ }];
3692
+ readonly query: readonly [];
3693
+ readonly body: {
3694
+ readonly required: true;
3695
+ readonly fields: readonly [{
3696
+ readonly name: "to_user";
3697
+ readonly type: "string";
3698
+ readonly required: true;
3699
+ readonly description: "User ID taking over; cannot already be an assignee, nor the initiator unless self-approval is allowed.";
3700
+ }];
3701
+ };
3702
+ }, {
3703
+ readonly resource: "automation.humanTasks";
3704
+ readonly method: "respond";
3705
+ readonly summary: "Respond to a human task";
3706
+ readonly description: "Submit an action (action_id), form values (values) and a comment as the calling user. Depending on the task's mode the response either decides it (status becomes completed, outcome is set, and the waiting workflow resumes with outcome as the step output) or is recorded while other assignees are awaited. When two assignees respond at once, exactly one decides and the other gets TASK_CLOSED. An agent may respond only if the workflow set allow_agent_decision. Send an Idempotency-Key to retry safely.";
3707
+ readonly http: "POST";
3708
+ readonly path: "/automation/v1/human-tasks/{id}/respond";
3709
+ readonly streaming: "no";
3710
+ readonly pagination: false;
3711
+ readonly pathParams: readonly [{
3712
+ readonly name: "id";
3713
+ readonly sdkName: "id";
3714
+ readonly description: "Human task ID (htask_).";
3715
+ }];
3716
+ readonly query: readonly [];
3717
+ readonly body: {
3718
+ readonly required: true;
3719
+ readonly fields: readonly [{
3720
+ readonly name: "action_id";
3721
+ readonly type: "string";
3722
+ readonly required: true;
3723
+ readonly description: "The chosen action ID from the task's actions, for example approve.";
3724
+ }, {
3725
+ readonly name: "values";
3726
+ readonly type: "object";
3727
+ readonly required: false;
3728
+ readonly description: "Any JSON object whose keys are strings and whose values are any JSON value.";
3729
+ }, {
3730
+ readonly name: "comment";
3731
+ readonly type: "string";
3732
+ readonly required: false;
3733
+ readonly description: "Comment of at most 4000 characters; required when the action has require_comment true.";
3734
+ }];
3735
+ };
3736
+ }, {
3737
+ readonly resource: "automation.resolve";
3738
+ readonly method: "retrieve";
3739
+ readonly summary: "Resolve a run target";
3740
+ readonly description: "Resolve ns/name@tag, an exact version or a version range to a runnable exact version. Omitting @ selects latest; archived targets are rejected and no match returns NO_MATCHING_VERSION.";
3741
+ readonly http: "GET";
3742
+ readonly path: "/automation/v1/resolve";
3743
+ readonly streaming: "no";
3744
+ readonly pagination: false;
3745
+ readonly pathParams: readonly [];
3746
+ readonly query: readonly [{
3747
+ readonly name: "target";
3748
+ readonly type: "string";
3749
+ readonly required: true;
3750
+ readonly description: "ns/name@tag, ns/name@version or ns/name@range; omitting @ selects latest.";
3751
+ }];
3752
+ }, {
3753
+ readonly resource: "automation.runs";
3754
+ readonly method: "list";
3755
+ readonly summary: "List runs";
3756
+ readonly description: "Filter tenant runs and list them newest first. Filters include multiple statuses, target, origin, labels[k] and a creation-time lower bound. q matches a run ID exactly when it starts with run_; otherwise it matches a definition-name prefix. Large input/output values are null in lists with input_truncated/output_truncated true; get run details for full values.";
3757
+ readonly http: "GET";
3758
+ readonly path: "/automation/v1/runs";
3759
+ readonly streaming: "no";
3760
+ readonly pagination: true;
3761
+ readonly pathParams: readonly [];
3762
+ readonly query: readonly [{
3763
+ readonly name: "limit";
3764
+ readonly type: "integer";
3765
+ readonly required: false;
3766
+ readonly description: "Page size: integer 1–100, default 50.";
3767
+ }, {
3768
+ readonly name: "cursor";
3769
+ readonly type: "string";
3770
+ readonly required: false;
3771
+ readonly description: "Opaque next_cursor from the previous page; keep the original filters when paging.";
3772
+ }, {
3773
+ readonly name: "kind";
3774
+ readonly type: "array";
3775
+ readonly itemType: "string";
3776
+ readonly enum: readonly ["script", "workflow"];
3777
+ readonly required: false;
3778
+ readonly description: "script or workflow; omit for both. Separate multiple values with commas to match any value.";
3779
+ }, {
3780
+ readonly name: "definition";
3781
+ readonly type: "array";
3782
+ readonly itemType: "string";
3783
+ readonly required: false;
3784
+ readonly description: "Exact definition name in ns/name format. Separate multiple values with commas to match any value.";
3785
+ }, {
3786
+ readonly name: "version";
3787
+ readonly type: "array";
3788
+ readonly itemType: "string";
3789
+ readonly required: false;
3790
+ readonly description: "An exact canonical semantic version, such as 1.2.0 or 1.3.0-beta.1, not a range. Separate multiple values with commas to match any value.";
3791
+ }, {
3792
+ readonly name: "status";
3773
3793
  readonly type: "array";
3774
3794
  readonly itemType: "string";
3775
3795
  readonly enum: readonly ["pending", "running", "waiting", "suspended", "cancelled", "faulted", "completed"];
@@ -3844,7 +3864,7 @@ export declare const operations: readonly [{
3844
3864
  readonly resource: "automation.runs";
3845
3865
  readonly method: "create";
3846
3866
  readonly summary: "Run a published target or execute draft source";
3847
- readonly description: "Execute a published script or workflow with target, or test unpublished code directly with source and language (ts for TypeScript, yaml for workflow YAML), without first saving or publishing a definition. Minimal script: `export default async ({ file_id }: { file_id: string }) => { const result = await call(\"ocr\", { document: { type: \"file\", file_id } }); return result; }`; send it as source with language=\"ts\", input={\"file_id\":\"<uploaded file ID>\"} and wait=0, using a PDF or image already uploaded to your account. To call a platform API directly in the same script, use the praxis SDK object, for example `praxis.model.ocr.create({ body: { model: \"glm-ocr\", document: { type: \"file\", file_id } } })`; Action IDs are strings passed to call(), not SDK methods such as praxis.ocr(...). praxis, call, invoke, console and codemode are module-scope bindings, not on globalThis, and need no import; invoke(\"namespace/name\", input) starts a child run. target and source are mutually exclusive; target accepts ns/name@version, @tag or @range and defaults to latest when @ is omitted. Source/input validation precedes run creation, so a separate validate call is optional. input defaults to {} and must match the input schema and fit within 1 MiB. wait is 0–60 seconds (default 0): a terminal run returns 200, otherwise 202. Use the returned id with praxis.automation.runs.retrieve and inspect status, output and error; acceptance does not mean successful completion. For long-running, background or batch work, use wait: 0 and poll the run, or split work into child runs or a workflow; wait only controls the response wait and does not extend execution limits. Actions time out after 30 s (run-sandbox after 10 min); scripts have a 5 min wall-clock limit and a 30 s CPU limit; workflows default to 24 h and allow up to 7 days. Each run can start at most 100 child runs, with at most 20 active at once; nesting depth is limited to 10. Idempotency-Key is scoped to tenant, method and path for 24 hours, excluding wait from the fingerprint; replay returns the current run with Idempotent-Replayed: true, changed contents return 422 and an in-flight request returns 409. New non-deterministic run IDs contain 78 characters, compared with 46 for legacy random IDs; treat IDs as opaque strings. Historical and deterministic IDs remain valid; same-millisecond order is not guaranteed.";
3867
+ readonly description: "Execute a published script or workflow with target, or test unpublished code directly with source and language (ts for TypeScript, yaml for workflow YAML), without first saving or publishing a definition. Minimal script: `export default async ({ file_id }: { file_id: string }) => { const result = await call(\"ocr\", { document: { type: \"file\", file_id } }); return result; }`; send it as source with language=\"ts\", input={\"file_id\":\"<uploaded file ID>\"} and wait=0, using a PDF or image already uploaded to your account. To call a platform API directly in the same script, use the praxis SDK object, for example `praxis.model.ocr.create({ body: { model: \"glm-ocr\", document: { type: \"file\", file_id } } })`; Action IDs are strings passed to call(), not SDK methods such as praxis.ocr(...). praxis, call, invoke, console and codemode are module-scope bindings, not on globalThis, and need no import; invoke(\"namespace/name\", input) starts a child run. target and source are mutually exclusive; target accepts ns/name@version, @tag or @range and defaults to latest when @ is omitted. Source/input validation precedes run creation, so a separate validate call is optional. input defaults to {} and must match the input schema and fit within 1 MiB. wait is 0–60 seconds (default 0): a terminal run returns 200, otherwise 202. Use the returned id with praxis.automation.runs.retrieve and inspect status, output and error; acceptance does not mean successful completion. For long-running, background or batch work, use wait: 0 and poll the run, or split work into child runs or a workflow; wait only controls the response wait and does not extend execution limits. Actions time out after 5 min (run-sandbox after 6 h); scripts have a 30 min wall-clock limit and a 30 s CPU limit; workflows default to 24 h and allow up to 30 days. Each run can start at most 1,000 child runs, with at most 100 active at once; nesting depth is limited to 10. Idempotency-Key is scoped to tenant, method and path for 24 hours, excluding wait from the fingerprint; replay returns the current run with Idempotent-Replayed: true, changed contents return 422 and an in-flight request returns 409. With language=yaml, source is a workflow YAML: the run input is . in the first step, and the shape is described in create workflow. Error details are in errors[] (pointer, detail, hint). New non-deterministic run IDs contain 78 characters, compared with 46 for legacy random IDs; treat IDs as opaque strings. Historical and deterministic IDs remain valid; same-millisecond order is not guaranteed.";
3848
3868
  readonly http: "POST";
3849
3869
  readonly path: "/automation/v1/runs";
3850
3870
  readonly streaming: "no";
@@ -4241,7 +4261,7 @@ export declare const operations: readonly [{
4241
4261
  readonly resource: "automation.scripts";
4242
4262
  readonly method: "create";
4243
4263
  readonly summary: "Create a script";
4244
- readonly description: "Save a TypeScript script as an editable draft for later reuse; this does not publish or start a run. Choose your own namespace without registering it first; praxis is reserved for built-in Actions. Scripts and workflows share names within the tenant; a duplicate returns NAME_TAKEN. The draft is a source string with a default-exported function, for example `export default async (input: {name: string}) => ({greeting: \"Hello, \" + input.name});`. Scripts provide praxis, call, invoke, console and codemode as module-scope bindings, not on globalThis, with no import needed: praxis.<domain>.<resource>.<method>(...) calls a platform API, call(\"ocr\", input) calls a built-in Action, and invoke(\"namespace/name\", input) starts a child run. Action IDs are strings (bare names for built-ins, namespace/name for your own Actions); praxis.ocr(...) does not exist. To test it, pass that source and language=ts to praxis.automation.runs.create without publishing. To publish later, use the returned draft.revision as expected_draft_revision.";
4264
+ readonly description: "Save a TypeScript script as an editable draft for later reuse; this does not publish or start a run. Choose your own namespace without registering it first; praxis is reserved for built-in Actions. Scripts and workflows share names within the tenant; a duplicate returns NAME_TAKEN. The draft is a source string with a default-exported function, for example `export default async (input: {name: string}) => ({greeting: \"Hello, \" + input.name});`. Scripts provide praxis, call, invoke, console and codemode as module-scope bindings, not on globalThis, with no import needed: praxis.<domain>.<resource>.<method>(...) calls a platform API, call(\"ocr\", input) calls a built-in Action, and invoke(\"namespace/name\", input) starts a child run. Action IDs are strings (bare names for built-ins, namespace/name for your own Actions); praxis.ocr(...) does not exist. The return value is limited to 1 MiB: write large results to a file with call(\"write-file\", ...) and return the file ID. A call error carries errors[] (pointer, detail, hint); String(e) is only the summary. To test it, pass that source and language=ts to praxis.automation.runs.create without publishing. To publish later, use the returned draft.revision as expected_draft_revision.";
4245
4265
  readonly http: "POST";
4246
4266
  readonly path: "/automation/v1/scripts";
4247
4267
  readonly streaming: "no";
@@ -4454,6 +4474,80 @@ export declare const operations: readonly [{
4454
4474
  readonly required: false;
4455
4475
  readonly fields: readonly [];
4456
4476
  };
4477
+ }, {
4478
+ readonly resource: "automation.scripts.vaults";
4479
+ readonly method: "list";
4480
+ readonly summary: "List script vault bindings";
4481
+ readonly description: "Inspect the whole vaults attached to a saved script, including archived definitions, without reading secret values. Obtain ns and name from automation.scripts.list. Bindings belong to the definition rather than a published version. When vault or secret metadata cannot be read, the binding remains visible with secrets: [] and secrets_unavailable: true.";
4482
+ readonly http: "GET";
4483
+ readonly path: "/automation/v1/scripts/{ns}/{name}/vaults";
4484
+ readonly streaming: "no";
4485
+ readonly pagination: false;
4486
+ readonly pathParams: readonly [{
4487
+ readonly name: "ns";
4488
+ readonly sdkName: "ns";
4489
+ readonly description: "Namespace from automation.scripts.list or create; identifies the saved script, independently of versions.";
4490
+ }, {
4491
+ readonly name: "name";
4492
+ readonly sdkName: "name";
4493
+ readonly description: "Resource name from automation.scripts.list or create; combine with ns to identify the saved script.";
4494
+ }];
4495
+ readonly query: readonly [];
4496
+ }, {
4497
+ readonly resource: "automation.scripts.vaults";
4498
+ readonly method: "delete";
4499
+ readonly summary: "Delete a script vault binding";
4500
+ readonly description: "Remove the vault assignment from this saved script without deleting the vault or its secrets. Obtain aliases from automation.scripts.vaults.list. Repeating deletion of an absent alias on an existing definition succeeds. Bindings also disappear when the definition is permanently deleted, while archival retains them.";
4501
+ readonly http: "DELETE";
4502
+ readonly path: "/automation/v1/scripts/{ns}/{name}/vaults/{alias}";
4503
+ readonly streaming: "no";
4504
+ readonly pagination: false;
4505
+ readonly pathParams: readonly [{
4506
+ readonly name: "ns";
4507
+ readonly sdkName: "ns";
4508
+ readonly description: "Namespace from automation.scripts.list or create; identifies the saved script, independently of versions.";
4509
+ }, {
4510
+ readonly name: "name";
4511
+ readonly sdkName: "name";
4512
+ readonly description: "Resource name from automation.scripts.list or create; combine with ns to identify the saved script.";
4513
+ }, {
4514
+ readonly name: "alias";
4515
+ readonly sdkName: "alias";
4516
+ readonly description: "Binding alias chosen by the caller: 1–40 lowercase letters, digits or hyphens, beginning with a letter.";
4517
+ }];
4518
+ readonly query: readonly [];
4519
+ }, {
4520
+ readonly resource: "automation.scripts.vaults";
4521
+ readonly method: "set";
4522
+ readonly summary: "Set a script vault binding";
4523
+ readonly description: "Attach an entire active vault in your organization to a saved script, or replace the vault at an existing alias. Obtain the vault ID or display name from praxis.vault.vaults.list; ambiguous names require an ID. Bindings are independent of published versions and survive archival. The same vault cannot be assigned to two aliases on one definition. Repeating the same assignment is idempotent. Example body: {\"vault\":\"Production\"}.";
4524
+ readonly http: "PUT";
4525
+ readonly path: "/automation/v1/scripts/{ns}/{name}/vaults/{alias}";
4526
+ readonly streaming: "no";
4527
+ readonly pagination: false;
4528
+ readonly pathParams: readonly [{
4529
+ readonly name: "ns";
4530
+ readonly sdkName: "ns";
4531
+ readonly description: "Namespace from automation.scripts.list or create; identifies the saved script, independently of versions.";
4532
+ }, {
4533
+ readonly name: "name";
4534
+ readonly sdkName: "name";
4535
+ readonly description: "Resource name from automation.scripts.list or create; combine with ns to identify the saved script.";
4536
+ }, {
4537
+ readonly name: "alias";
4538
+ readonly sdkName: "alias";
4539
+ readonly description: "Binding alias chosen by the caller: 1–40 lowercase letters, digits or hyphens, beginning with a letter.";
4540
+ }];
4541
+ readonly query: readonly [];
4542
+ readonly body: {
4543
+ readonly required: true;
4544
+ readonly fields: readonly [{
4545
+ readonly name: "vault";
4546
+ readonly type: "string";
4547
+ readonly required: true;
4548
+ readonly description: "Active vault ID or exact display name from praxis.vault.vaults.list in your organization. Use an ID if display names are duplicated.";
4549
+ }];
4550
+ };
4457
4551
  }, {
4458
4552
  readonly resource: "automation.scripts.versions";
4459
4553
  readonly method: "list";
@@ -5006,7 +5100,7 @@ export declare const operations: readonly [{
5006
5100
  readonly resource: "automation.validate";
5007
5101
  readonly method: "create";
5008
5102
  readonly summary: "Validate a definition";
5009
- readonly description: "Check source without executing it when you need diagnostics, inferred schemas or references. This is optional before praxis.automation.runs.create, which also validates source before execution. Actions, scripts and workflows are supported; results include validity without saving. Invalid source is reported with valid=false. Script/action output schemas are inferred from return types: Promise unwrapping, Record, intersections and Date. Unknown types yield an empty schema and a warning in warnings. Source diagnostics use /source or /implementation/source with 1-based line/column. For kind=action the same admission checks as action creation apply (no external imports, platform operations only as direct call(praxis/<api>.<op>, input) calls, no agent or automation calls), so source that validates is not rejected at creation.";
5103
+ readonly description: "Check source without executing it when you need diagnostics, inferred schemas or references. This is optional before praxis.automation.runs.create, which also validates source before execution. Actions, scripts and workflows are supported; results include validity without saving. Invalid source is reported with valid=false. Script/action output schemas are inferred from return types: Promise unwrapping, Record, intersections and Date. Unknown types yield an empty schema and a warning in warnings. Source diagnostics use /source or /implementation/source with 1-based line/column. For kind=action the same admission checks as action creation apply (no external imports, platform operations only as direct call(praxis/<api>.<op>, input) calls, no agent or automation calls), so source that validates is not rejected at creation. For kind=workflow the YAML needs document (dsl, namespace, name, version) and do; each problem is one entry in errors[] (pointer, detail, hint), so read the first one. A listen outside the supported subset (to.all, inside a fork) and emit are not reported here and fail with DEFINITION_INVALID only when a run is created. Workflow syntax reference: https://deepraxis.com/docs/developers/automation/reference/workflow-syntax.";
5010
5104
  readonly http: "POST";
5011
5105
  readonly path: "/automation/v1/validate";
5012
5106
  readonly streaming: "no";
@@ -5091,7 +5185,7 @@ export declare const operations: readonly [{
5091
5185
  readonly resource: "automation.workflows";
5092
5186
  readonly method: "create";
5093
5187
  readonly summary: "Create a workflow";
5094
- readonly description: "Save a YAML workflow as an editable draft without publishing or starting a run. Choose your own namespace without registering it first; praxis is reserved for built-in Actions. To test the draft, send its source and language=yaml to praxis.automation.runs.create. Scripts and workflows share names within the tenant; a duplicate returns NAME_TAKEN. run.workflow accepts ns/name@range or {namespace, name, version, input}; run.script uses the same reference shape as a platform extension. Object namespace, name and version are required; version accepts an exact version, dist-tag or range, locked at publication. Object input defaults to {} and supports expressions; string references retain task-level with. run.await defaults to true and returns the child output. With false, the child uses detach and the task immediately returns {run_id}; parent cancellation does not cascade. Inline script.code returns DEFINITION_INVALID with a detail asking you to save a script and reference it first. raise.error retains its type URI, status, title and detail in the run error.";
5188
+ readonly description: "Workflow syntax reference: https://deepraxis.com/docs/developers/automation/reference/workflow-syntax. Save a YAML workflow as an editable draft; this does not validate, publish or run it, so check it with validate (kind=workflow) first. Minimal draft: document with dsl (\"1.0.3\"), namespace, name and version, plus a do list of steps, for example document: {dsl: \"1.0.3\", namespace: demo, name: add, version: \"1.0.0\"} and do: [{first: {call: demo/add-one, with: {n: \"${ .n }\"}}}]. call: <ns/name> calls an Action directly (bare name for built-ins such as ocr) and with is the Action input; the input contract is at current_revision.input_schema in the get-action response. run: starts a saved script or child workflow. The run input is . in the first step, and expressions are jq written as a whole ${ ... } string. Limits: Action 5 min (run-sandbox 6 h), workflow 24 h by default and 30 days at most, payload 1 MiB. Test the draft by sending its source and language=yaml to praxis.automation.runs.create. To pause for a person, call praxis/approval (it opens a human task; the step output is the decision); agents answer with praxis.automation.humanTasks.respond on behalf of their user. Guide: /docs/developers/automation/guides/approvals Guide: /docs/developers/automation/guides/write-workflow. Error details are in the errors[] of the response (pointer, detail, hint). Choose your own namespace without registering it first; praxis is reserved for built-in Actions. Scripts and workflows share names within the tenant; a duplicate returns NAME_TAKEN. run.workflow accepts ns/name@range or {namespace, name, version, input}; run.script uses the same reference shape as a platform extension. Object namespace, name and version are required; version accepts an exact version, dist-tag or range, locked at publication. Object input defaults to {} and supports expressions; string references retain task-level with. run.await defaults to true and returns the child output. With false, the child uses detach and the task immediately returns {run_id}; parent cancellation does not cascade. Inline script.code returns DEFINITION_INVALID with a detail asking you to save a script and reference it first. raise.error retains its type URI, status, title and detail in the run error.";
5095
5189
  readonly http: "POST";
5096
5190
  readonly path: "/automation/v1/workflows";
5097
5191
  readonly streaming: "no";
@@ -5150,7 +5244,7 @@ export declare const operations: readonly [{
5150
5244
  readonly resource: "automation.workflows";
5151
5245
  readonly method: "update";
5152
5246
  readonly summary: "Update a workflow draft";
5153
- readonly description: "Update description, labels or draft with the current draft revision in If-Match. Even metadata-only updates create a new draft revision.";
5247
+ readonly description: "Update description, labels or draft with the current draft revision in If-Match, taken from draft.revision in the get-workflow response. Even metadata-only updates create a new draft revision. A mismatch returns 412 PRECONDITION_FAILED; read the draft again, merge and retry. The draft is not validated here, so check it with validate (kind=workflow) before publishing. Error details are in errors[]. See the workflow syntax reference at https://deepraxis.com/docs/developers/automation/reference/workflow-syntax.";
5154
5248
  readonly http: "PATCH";
5155
5249
  readonly path: "/automation/v1/workflows/{ns}/{name}";
5156
5250
  readonly streaming: "no";
@@ -5304,6 +5398,80 @@ export declare const operations: readonly [{
5304
5398
  readonly required: false;
5305
5399
  readonly fields: readonly [];
5306
5400
  };
5401
+ }, {
5402
+ readonly resource: "automation.workflows.vaults";
5403
+ readonly method: "list";
5404
+ readonly summary: "List workflow vault bindings";
5405
+ readonly description: "Inspect the whole vaults attached to a saved workflow, including archived definitions, without reading secret values. Obtain ns and name from automation.workflows.list. Bindings belong to the definition rather than a published version. When vault or secret metadata cannot be read, the binding remains visible with secrets: [] and secrets_unavailable: true.";
5406
+ readonly http: "GET";
5407
+ readonly path: "/automation/v1/workflows/{ns}/{name}/vaults";
5408
+ readonly streaming: "no";
5409
+ readonly pagination: false;
5410
+ readonly pathParams: readonly [{
5411
+ readonly name: "ns";
5412
+ readonly sdkName: "ns";
5413
+ readonly description: "Namespace from automation.workflows.list or create; identifies the saved workflow, independently of versions.";
5414
+ }, {
5415
+ readonly name: "name";
5416
+ readonly sdkName: "name";
5417
+ readonly description: "Resource name from automation.workflows.list or create; combine with ns to identify the saved workflow.";
5418
+ }];
5419
+ readonly query: readonly [];
5420
+ }, {
5421
+ readonly resource: "automation.workflows.vaults";
5422
+ readonly method: "delete";
5423
+ readonly summary: "Delete a workflow vault binding";
5424
+ readonly description: "Remove the vault assignment from this saved workflow without deleting the vault or its secrets. Obtain aliases from automation.workflows.vaults.list. Repeating deletion of an absent alias on an existing definition succeeds. Bindings also disappear when the definition is permanently deleted, while archival retains them.";
5425
+ readonly http: "DELETE";
5426
+ readonly path: "/automation/v1/workflows/{ns}/{name}/vaults/{alias}";
5427
+ readonly streaming: "no";
5428
+ readonly pagination: false;
5429
+ readonly pathParams: readonly [{
5430
+ readonly name: "ns";
5431
+ readonly sdkName: "ns";
5432
+ readonly description: "Namespace from automation.workflows.list or create; identifies the saved workflow, independently of versions.";
5433
+ }, {
5434
+ readonly name: "name";
5435
+ readonly sdkName: "name";
5436
+ readonly description: "Resource name from automation.workflows.list or create; combine with ns to identify the saved workflow.";
5437
+ }, {
5438
+ readonly name: "alias";
5439
+ readonly sdkName: "alias";
5440
+ readonly description: "Binding alias chosen by the caller: 1–40 lowercase letters, digits or hyphens, beginning with a letter.";
5441
+ }];
5442
+ readonly query: readonly [];
5443
+ }, {
5444
+ readonly resource: "automation.workflows.vaults";
5445
+ readonly method: "set";
5446
+ readonly summary: "Set a workflow vault binding";
5447
+ readonly description: "Attach an entire active vault in your organization to a saved workflow, or replace the vault at an existing alias. Obtain the vault ID or display name from praxis.vault.vaults.list; ambiguous names require an ID. Bindings are independent of published versions and survive archival. The same vault cannot be assigned to two aliases on one definition. Repeating the same assignment is idempotent. Example body: {\"vault\":\"Production\"}.";
5448
+ readonly http: "PUT";
5449
+ readonly path: "/automation/v1/workflows/{ns}/{name}/vaults/{alias}";
5450
+ readonly streaming: "no";
5451
+ readonly pagination: false;
5452
+ readonly pathParams: readonly [{
5453
+ readonly name: "ns";
5454
+ readonly sdkName: "ns";
5455
+ readonly description: "Namespace from automation.workflows.list or create; identifies the saved workflow, independently of versions.";
5456
+ }, {
5457
+ readonly name: "name";
5458
+ readonly sdkName: "name";
5459
+ readonly description: "Resource name from automation.workflows.list or create; combine with ns to identify the saved workflow.";
5460
+ }, {
5461
+ readonly name: "alias";
5462
+ readonly sdkName: "alias";
5463
+ readonly description: "Binding alias chosen by the caller: 1–40 lowercase letters, digits or hyphens, beginning with a letter.";
5464
+ }];
5465
+ readonly query: readonly [];
5466
+ readonly body: {
5467
+ readonly required: true;
5468
+ readonly fields: readonly [{
5469
+ readonly name: "vault";
5470
+ readonly type: "string";
5471
+ readonly required: true;
5472
+ readonly description: "Active vault ID or exact display name from praxis.vault.vaults.list in your organization. Use an ID if display names are duplicated.";
5473
+ }];
5474
+ };
5307
5475
  }, {
5308
5476
  readonly resource: "automation.workflows.versions";
5309
5477
  readonly method: "list";
@@ -5344,7 +5512,7 @@ export declare const operations: readonly [{
5344
5512
  readonly method: "create";
5345
5513
  readonly aliases: readonly ["publish"];
5346
5514
  readonly summary: "Publish a workflow version";
5347
- readonly description: "Publish a saved definition from its draft or an ad hoc run as a reusable version for named runs or triggers, validating the definition and locking dependencies. To test unpublished code, use praxis.automation.runs.create with source and language instead. Use draft.revision from create or retrieve as expected_draft_revision. The draft must match expected_draft_revision; an ad hoc run requires from_run and expected_source_sha256. The same version and contents return the existing version; different contents return VERSION_EXISTS, prereleases require an explicit tag (not latest, URL-safe characters only, not a version or range; violations return TAG_REQUIRED or TAG_INVALID with the complete rules in hint), and invalid definitions return DEFINITION_INVALID. Stable releases automatically advance latest only above the highest existing stable version; workflows becoming latest synchronize their declared schedule. String and object run.workflow/run.script references share version resolution and dependency locking. Publishing removes +build metadata from the version number.";
5515
+ readonly description: "Publish a saved definition from its draft or an ad hoc run as a reusable version for named runs or triggers, validating the definition and locking dependencies. To test unpublished code, use praxis.automation.runs.create with source and language instead. Use draft.revision from create or retrieve as expected_draft_revision. The draft must match expected_draft_revision; an ad hoc run requires from_run and expected_source_sha256. The same version and contents return the existing version; different contents return VERSION_EXISTS, prereleases require an explicit tag (not latest, URL-safe characters only, not a version or range; violations return TAG_REQUIRED or TAG_INVALID with the complete rules in hint), and invalid definitions return DEFINITION_INVALID. Stable releases automatically advance latest only above the highest existing stable version; workflows becoming latest synchronize their declared schedule. String and object run.workflow/run.script references share version resolution and dependency locking. Publishing removes +build metadata from the version number. For a workflow, document namespace, name and version must equal the publish target, otherwise DEFINITION_IDENTITY_MISMATCH; where a DEFINITION_INVALID failure sits is listed in errors[] (pointer, detail, hint).";
5348
5516
  readonly http: "POST";
5349
5517
  readonly path: "/automation/v1/workflows/{ns}/{name}/versions";
5350
5518
  readonly streaming: "no";
@@ -5718,187 +5886,1108 @@ export declare const operations: readonly [{
5718
5886
  readonly name: "name";
5719
5887
  readonly type: "string";
5720
5888
  readonly required: false;
5721
- readonly description: "会话名称;1–128 个 ASCII 字母、数字或 . _ : -,可用于筛选会话。";
5889
+ readonly description: "会话名称;1–128 个 ASCII 字母、数字或 . _ : -,可用于筛选会话。";
5890
+ }, {
5891
+ readonly name: "labels";
5892
+ readonly type: "object";
5893
+ readonly required: false;
5894
+ readonly description: "自定义字符串标签;最多 32 项,键最多 128 个 UTF-8 字节,值最多 1024 个 UTF-8 字节。";
5895
+ }];
5896
+ };
5897
+ }, {
5898
+ readonly resource: "browser.sessions";
5899
+ readonly method: "retrieve";
5900
+ readonly summary: "读取浏览器会话";
5901
+ readonly description: "读取当前账户的指定会话及其最新状态,sessionId 使用创建或列表返回的 id。expand=debug,events 可同时取得实时观看地址和事件首页;不存在或不属于当前账户时返回 404。";
5902
+ readonly http: "GET";
5903
+ readonly path: "/browser/v1/sessions/{sessionId}";
5904
+ readonly streaming: "no";
5905
+ readonly pagination: false;
5906
+ readonly pathParams: readonly [{
5907
+ readonly name: "sessionId";
5908
+ readonly sdkName: "sessionId";
5909
+ readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
5910
+ }];
5911
+ readonly query: readonly [{
5912
+ readonly name: "expand";
5913
+ readonly type: "string";
5914
+ readonly required: false;
5915
+ readonly description: "逗号分隔的 debug、events;在同一响应中返回调试地址和事件。";
5916
+ }];
5917
+ }, {
5918
+ readonly resource: "browser.sessions";
5919
+ readonly method: "update";
5920
+ readonly summary: "关闭浏览器会话";
5921
+ readonly description: "关闭指定浏览器会话,返回关闭后的会话对象。请求体为 {\"status\":\"REQUEST_RELEASE\"};若返回 409 SESSION_INVALID_STATE,可再次读取会话确认状态;已结束的会话可重复请求关闭。";
5922
+ readonly http: "POST";
5923
+ readonly path: "/browser/v1/sessions/{sessionId}";
5924
+ readonly streaming: "no";
5925
+ readonly pagination: false;
5926
+ readonly pathParams: readonly [{
5927
+ readonly name: "sessionId";
5928
+ readonly sdkName: "sessionId";
5929
+ readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
5930
+ }];
5931
+ readonly query: readonly [];
5932
+ readonly body: {
5933
+ readonly required: true;
5934
+ readonly fields: readonly [{
5935
+ readonly name: "status";
5936
+ readonly type: "string";
5937
+ readonly enum: readonly ["REQUEST_RELEASE"];
5938
+ readonly required: true;
5939
+ readonly description: "会话操作指令;REQUEST_RELEASE 表示请求关闭浏览器并结束会话。";
5940
+ }];
5941
+ };
5942
+ }, {
5943
+ readonly resource: "browser.sessions";
5944
+ readonly method: "retrieveDebug";
5945
+ readonly summary: "读取调试地址";
5946
+ readonly description: "读取当前会话及各标签页的实时观看地址和 CDP 连接地址。直接使用返回的完整链接,保留查询凭证;会话不在运行状态时 pages 为空,返回地址不代表会话仍可连接。";
5947
+ readonly http: "GET";
5948
+ readonly path: "/browser/v1/sessions/{sessionId}/debug";
5949
+ readonly streaming: "no";
5950
+ readonly pagination: false;
5951
+ readonly pathParams: readonly [{
5952
+ readonly name: "sessionId";
5953
+ readonly sdkName: "sessionId";
5954
+ readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
5955
+ }];
5956
+ readonly query: readonly [];
5957
+ }, {
5958
+ readonly resource: "browser.sessions.events";
5959
+ readonly method: "list";
5960
+ readonly summary: "列出会话事件";
5961
+ readonly description: "按事件序号升序读取指定会话的事件账本,包含生命周期和接管等事件,不包含页面点击或输入内容。可按 types 筛选,并将 nextCursor 原样传入读取后续页。";
5962
+ readonly http: "GET";
5963
+ readonly path: "/browser/v1/sessions/{sessionId}/events";
5964
+ readonly streaming: "no";
5965
+ readonly pagination: false;
5966
+ readonly pathParams: readonly [{
5967
+ readonly name: "sessionId";
5968
+ readonly sdkName: "sessionId";
5969
+ readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
5970
+ }];
5971
+ readonly query: readonly [{
5972
+ readonly name: "cursor";
5973
+ readonly type: "string";
5974
+ readonly required: false;
5975
+ readonly description: "上一页返回的 nextCursor,表示已读到的事件序号;省略时从最早事件开始。";
5976
+ }, {
5977
+ readonly name: "limit";
5978
+ readonly type: "integer";
5979
+ readonly required: false;
5980
+ readonly description: "每页最多返回的记录数量;默认 50,范围 1–200。";
5981
+ }, {
5982
+ readonly name: "types";
5983
+ readonly type: "string";
5984
+ readonly required: false;
5985
+ readonly description: "逗号分隔的账本事件类型,仅返回匹配项;省略时不按类型筛选。";
5986
+ }];
5987
+ }, {
5988
+ readonly resource: "browser.sessions.handoff";
5989
+ readonly method: "create";
5990
+ readonly summary: "请求人工接管";
5991
+ readonly description: "为运行中的会话发起人工接管请求,返回接管请求事件。请求尚未过期或完成时,CDP 客户端的 Input.* 指令会被拒绝;再次请求会替换已有的接管说明和到期时刻。";
5992
+ readonly http: "POST";
5993
+ readonly path: "/browser/v1/sessions/{sessionId}/handoff";
5994
+ readonly streaming: "no";
5995
+ readonly pagination: false;
5996
+ readonly pathParams: readonly [{
5997
+ readonly name: "sessionId";
5998
+ readonly sdkName: "sessionId";
5999
+ readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
6000
+ }];
6001
+ readonly query: readonly [];
6002
+ readonly body: {
6003
+ readonly required: true;
6004
+ readonly fields: readonly [{
6005
+ readonly name: "message";
6006
+ readonly type: "string";
6007
+ readonly required: true;
6008
+ readonly description: "交给人工操作者的接管说明,可为空字符串。";
6009
+ }, {
6010
+ readonly name: "timeoutMs";
6011
+ readonly type: "number";
6012
+ readonly required: false;
6013
+ readonly description: "接管请求有效时长,单位为毫秒;必须大于 0,可含小数。";
6014
+ }];
6015
+ };
6016
+ }, {
6017
+ readonly resource: "browser.sessions.handoff";
6018
+ readonly method: "complete";
6019
+ readonly summary: "完成人工接管";
6020
+ readonly description: "完成运行中会话的待处理人工接管,清除接管请求并返回完成事件,客户端可恢复发送 Input.* 指令。没有请求或请求已过期时返回 409 HANDOFF_NOT_PENDING。";
6021
+ readonly http: "POST";
6022
+ readonly path: "/browser/v1/sessions/{sessionId}/handoff/complete";
6023
+ readonly streaming: "no";
6024
+ readonly pagination: false;
6025
+ readonly pathParams: readonly [{
6026
+ readonly name: "sessionId";
6027
+ readonly sdkName: "sessionId";
6028
+ readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
6029
+ }];
6030
+ readonly query: readonly [];
6031
+ }, {
6032
+ readonly resource: "browser.sessions";
6033
+ readonly method: "stream";
6034
+ readonly summary: "订阅会话动态";
6035
+ readonly description: "SSE:event 为 snapshot、session、pages、action、event 或 end,data 为对应 JSON。先发送 snapshot 快照,再推送实时变化和 ping 注释;end 后关闭。不支持按 Last-Event-ID 历史重放。";
6036
+ readonly http: "GET";
6037
+ readonly path: "/browser/v1/sessions/{sessionId}/stream";
6038
+ readonly streaming: "always";
6039
+ readonly pagination: false;
6040
+ readonly pathParams: readonly [{
6041
+ readonly name: "sessionId";
6042
+ readonly sdkName: "sessionId";
6043
+ readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
6044
+ }];
6045
+ readonly query: readonly [];
6046
+ }, {
6047
+ readonly resource: "browser.sessions.viewer";
6048
+ readonly method: "create";
6049
+ readonly summary: "更新查看者心跳";
6050
+ readonly description: "登记运行中会话的观看者仍在线,以免无人连接时因空闲被释放。观看页面可见期间为同一观看者重复发送相同 viewerId;停止观看后停止发送,过期心跳不再计为在线。";
6051
+ readonly http: "POST";
6052
+ readonly path: "/browser/v1/sessions/{sessionId}/viewer";
6053
+ readonly streaming: "no";
6054
+ readonly pagination: false;
6055
+ readonly pathParams: readonly [{
6056
+ readonly name: "sessionId";
6057
+ readonly sdkName: "sessionId";
6058
+ readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
6059
+ }];
6060
+ readonly query: readonly [];
6061
+ readonly body: {
6062
+ readonly required: true;
6063
+ readonly fields: readonly [{
6064
+ readonly name: "viewerId";
6065
+ readonly type: "string";
6066
+ readonly required: true;
6067
+ readonly description: "当前观看者的稳定标识;同一观看者重复心跳应使用相同值,长度为 1–128 个 UTF-16 代码单元。";
6068
+ }];
6069
+ };
6070
+ }, {
6071
+ readonly resource: "canvas.canvases";
6072
+ readonly method: "list";
6073
+ readonly summary: "List canvases";
6074
+ readonly description: "Discover canvases in the API key's organization and obtain ids for retrieval or editing. Results are ordered by updated_at from newest to oldest. limit is 1–100 and defaults to 50; omit cursor for the first page, then copy next_cursor into the next request until it is null. Deleted canvases are unavailable.";
6075
+ readonly http: "GET";
6076
+ readonly path: "/canvas/v1/canvases";
6077
+ readonly streaming: "no";
6078
+ readonly pagination: true;
6079
+ readonly pathParams: readonly [];
6080
+ readonly query: readonly [{
6081
+ readonly name: "limit";
6082
+ readonly type: "integer";
6083
+ readonly required: false;
6084
+ readonly description: "Maximum canvases to return per page, from 1 to 100; defaults to 50 when omitted.";
6085
+ }, {
6086
+ readonly name: "cursor";
6087
+ readonly type: "string";
6088
+ readonly required: false;
6089
+ readonly description: "Opaque next_cursor from the preceding list response; omit for the first page and stop when next_cursor is null.";
6090
+ }, {
6091
+ readonly name: "collection_id";
6092
+ readonly type: "string";
6093
+ readonly required: false;
6094
+ readonly description: "Filter to a collection id from collections.list, or the literal none for uncategorized canvases. Omit to list all canvases; keep the same filter when following next_cursor.";
6095
+ }];
6096
+ }, {
6097
+ readonly resource: "canvas.canvases";
6098
+ readonly method: "create";
6099
+ readonly summary: "Create canvas";
6100
+ readonly description: "Create a blank design canvas in the API key's organization before drawing with praxis.canvas.canvases.execute. Send an optional name of at most 200 characters; omitting name uses Untitled. Each successful call creates a new canvas and returns its id and viewer_url with HTTP 201; save the id for subsequent reads, edits and deletion.";
6101
+ readonly http: "POST";
6102
+ readonly path: "/canvas/v1/canvases";
6103
+ readonly streaming: "no";
6104
+ readonly pagination: false;
6105
+ readonly pathParams: readonly [];
6106
+ readonly query: readonly [];
6107
+ readonly body: {
6108
+ readonly required: false;
6109
+ readonly fields: readonly [{
6110
+ readonly name: "name";
6111
+ readonly type: "string";
6112
+ readonly required: false;
6113
+ readonly description: "Display name for the new canvas, at most 200 characters; omission uses Untitled.";
6114
+ }];
6115
+ };
6116
+ }, {
6117
+ readonly resource: "canvas.canvases";
6118
+ readonly method: "delete";
6119
+ readonly summary: "Delete canvas";
6120
+ readonly description: "Permanently delete a canvas and its design content when it is no longer needed. Obtain canvas_id from create or list and confirm the target before calling; deletion cannot be undone. HTTP 200 confirms deletion with deleted=true. Subsequent access returns CANVAS_NOT_FOUND, as it does for a missing canvas or one outside the API key's organization.";
6121
+ readonly http: "DELETE";
6122
+ readonly path: "/canvas/v1/canvases/{canvas_id}";
6123
+ readonly streaming: "no";
6124
+ readonly pagination: false;
6125
+ readonly pathParams: readonly [{
6126
+ readonly name: "canvas_id";
6127
+ readonly sdkName: "canvas_id";
6128
+ readonly description: "Canvas id returned by create or list, in the form cvs_ followed by 16 lowercase letters or digits; a display name is not accepted.";
6129
+ }];
6130
+ readonly query: readonly [];
6131
+ }, {
6132
+ readonly resource: "canvas.canvases";
6133
+ readonly method: "retrieve";
6134
+ readonly summary: "Retrieve canvas";
6135
+ readonly description: "Inspect the current canvas before editing, like Pencil get_app_state. The response adds top-level node summaries in canvas order and reusable component ids to the canvas metadata. Use these ids in nodes.list, images.list or an execute script; use the returned version as expected_version to detect concurrent edits. Read full node content with nodes.list rather than guessing fields from these summaries.";
6136
+ readonly http: "GET";
6137
+ readonly path: "/canvas/v1/canvases/{canvas_id}";
6138
+ readonly streaming: "no";
6139
+ readonly pagination: false;
6140
+ readonly pathParams: readonly [{
6141
+ readonly name: "canvas_id";
6142
+ readonly sdkName: "canvas_id";
6143
+ readonly description: "Canvas id returned by create or list, in the form cvs_ followed by 16 lowercase letters or digits; a display name is not accepted.";
6144
+ }];
6145
+ readonly query: readonly [];
6146
+ }, {
6147
+ readonly resource: "canvas.canvases";
6148
+ readonly method: "update";
6149
+ readonly summary: "Update canvas";
6150
+ readonly description: "Rename a canvas or move it to a collection without editing its design content. Use a canvas id from canvases.list and a collection id from collections.list. Send collection_id=null to make it uncategorized; omit either field to preserve its current value. A canvas belongs to at most one collection. The destination must belong to your organization. Renaming keeps the canvas version unchanged.";
6151
+ readonly http: "PATCH";
6152
+ readonly path: "/canvas/v1/canvases/{canvas_id}";
6153
+ readonly streaming: "no";
6154
+ readonly pagination: false;
6155
+ readonly pathParams: readonly [{
6156
+ readonly name: "canvas_id";
6157
+ readonly sdkName: "canvas_id";
6158
+ readonly description: "Canvas id returned by create or list, in the form cvs_ followed by 16 lowercase letters or digits; a display name is not accepted.";
6159
+ }];
6160
+ readonly query: readonly [];
6161
+ readonly body: {
6162
+ readonly required: true;
6163
+ readonly fields: readonly [{
6164
+ readonly name: "name";
6165
+ readonly type: "string";
6166
+ readonly required: false;
6167
+ readonly description: "New canvas display name; surrounding whitespace is trimmed, blank names use Untitled, and omission preserves the current name.";
6168
+ }, {
6169
+ readonly name: "collection_id";
6170
+ readonly type: "string";
6171
+ readonly required: false;
6172
+ readonly description: "Move to this collection id from collections.list; null removes the canvas from its collection. Omission preserves the current assignment.";
6173
+ }];
6174
+ };
6175
+ }, {
6176
+ readonly resource: "canvas.canvases.images";
6177
+ readonly method: "list";
6178
+ readonly summary: "Render canvas nodes";
6179
+ readonly description: "Render 1–4 nodes to inspect the visual result of a design edit. Use ids from retrieve, execute.created or execute.screenshots; scale defaults to 1 and accepts 0.25–4, and png is the only supported format. Unlike Figma, images contains inline data:image/png;base64,... URLs, not hosted image URLs; a null entry means no image is available for that id. Use nodes.list for editable node content instead of pixels.";
6180
+ readonly http: "GET";
6181
+ readonly path: "/canvas/v1/canvases/{canvas_id}/images";
6182
+ readonly streaming: "no";
6183
+ readonly pagination: false;
6184
+ readonly pathParams: readonly [{
6185
+ readonly name: "canvas_id";
6186
+ readonly sdkName: "canvas_id";
6187
+ readonly description: "Canvas id returned by create or list, in the form cvs_ followed by 16 lowercase letters or digits; a display name is not accepted.";
6188
+ }];
6189
+ readonly query: readonly [{
6190
+ readonly name: "version";
6191
+ readonly type: "string";
6192
+ readonly required: false;
6193
+ readonly description: "Decimal version from versions.list, or its earliest_restorable_version, for a read-only historical snapshot; omit to read current state. Unavailable versions return VERSION_NOT_FOUND.";
6194
+ }, {
6195
+ readonly name: "ids";
6196
+ readonly type: "string";
6197
+ readonly required: true;
6198
+ readonly description: "Comma-separated list of 1–4 node ids to render, from retrieve, execute.created or execute.screenshots.";
6199
+ }, {
6200
+ readonly name: "scale";
6201
+ readonly type: "number";
6202
+ readonly required: false;
6203
+ readonly description: "Output pixel scale relative to canvas dimensions, from 0.25 to 4 inclusive; defaults to 1 when omitted.";
6204
+ }, {
6205
+ readonly name: "format";
6206
+ readonly type: "string";
6207
+ readonly enum: readonly ["png"];
6208
+ readonly required: false;
6209
+ readonly description: "Image encoding; png produces a PNG data URL and is the only supported value. Omit to use png.";
6210
+ }];
6211
+ }, {
6212
+ readonly resource: "canvas.canvases.nodes";
6213
+ readonly method: "list";
6214
+ readonly summary: "Read canvas nodes";
6215
+ readonly description: "Read node documents for inspection before changing individual nodes. Supply 1–100 comma-separated node ids from retrieve or execute, or instance paths such as a/b. depth is an integer at least 0; omit it for complete subtrees. Each requested id maps to a document wrapper or null if absent. Unlike Figma, document contains a Pencil .pen 2.21 node, not a Figma node. For top-level summaries use canvases.retrieve; for pixels use images.list.";
6216
+ readonly http: "GET";
6217
+ readonly path: "/canvas/v1/canvases/{canvas_id}/nodes";
6218
+ readonly streaming: "no";
6219
+ readonly pagination: false;
6220
+ readonly pathParams: readonly [{
6221
+ readonly name: "canvas_id";
6222
+ readonly sdkName: "canvas_id";
6223
+ readonly description: "Canvas id returned by create or list, in the form cvs_ followed by 16 lowercase letters or digits; a display name is not accepted.";
6224
+ }];
6225
+ readonly query: readonly [{
6226
+ readonly name: "version";
6227
+ readonly type: "string";
6228
+ readonly required: false;
6229
+ readonly description: "Decimal version from versions.list, or its earliest_restorable_version, for a read-only historical snapshot; omit to read current state. Unavailable versions return VERSION_NOT_FOUND.";
6230
+ }, {
6231
+ readonly name: "ids";
6232
+ readonly type: "string";
6233
+ readonly required: true;
6234
+ readonly description: "Comma-separated list of 1–100 node ids from retrieve or execute, or instance paths such as a/b; missing ids map to null.";
6235
+ }, {
6236
+ readonly name: "depth";
6237
+ readonly type: "integer";
6238
+ readonly required: false;
6239
+ readonly description: "Maximum child depth below each requested node, as an integer at least 0; 0 returns the node without descendants, and omission returns the complete subtree.";
6240
+ }];
6241
+ }, {
6242
+ readonly resource: "canvas.canvases.versions";
6243
+ readonly method: "list";
6244
+ readonly summary: "List canvas versions";
6245
+ readonly description: "Inspect retained edits before restoring a canvas or reading historical nodes and images. Supply a canvas_id from canvases.list or create. Results include successful execute, import and restore commits since history was enabled, newest first. limit is 1–100 and defaults to 30; pass next_cursor as cursor until it is null. All versions from the last 30 days are retained unless the 256 MiB history budget requires pruning; the newest 100 versions are always retained regardless of age or size. earliest_restorable_version is the oldest readable and restorable version, including the state immediately before the first retained commit; null means no history has been recorded. Listing does not change the canvas.";
6246
+ readonly http: "GET";
6247
+ readonly path: "/canvas/v1/canvases/{canvas_id}/versions";
6248
+ readonly streaming: "no";
6249
+ readonly pagination: false;
6250
+ readonly pathParams: readonly [{
6251
+ readonly name: "canvas_id";
6252
+ readonly sdkName: "canvas_id";
6253
+ readonly description: "Canvas id returned by create or list, in the form cvs_ followed by 16 lowercase letters or digits; a display name is not accepted.";
6254
+ }];
6255
+ readonly query: readonly [{
6256
+ readonly name: "limit";
6257
+ readonly type: "integer";
6258
+ readonly required: false;
6259
+ readonly description: "Maximum commits to return, from 1 to 100 inclusive; omission uses 30.";
6260
+ }, {
6261
+ readonly name: "cursor";
6262
+ readonly type: "string";
6263
+ readonly required: false;
6264
+ readonly description: "Copy next_cursor from the preceding page to continue toward older commits; omit for the first page.";
6265
+ }];
6266
+ }, {
6267
+ readonly resource: "canvas.canvases";
6268
+ readonly method: "execute";
6269
+ readonly summary: "Execute canvas script";
6270
+ readonly description: "Draw or edit a canvas atomically with a synchronous Pencil execute script. First create a canvas with praxis.canvas.canvases.create and use its id as canvas_id; inspect an existing canvas with retrieve before modifying it. Send exactly one of script (new source) or edit_id (a failed script to patch using edits). Unlike Figma REST, :execute writes design content; nodes use Pencil .pen schema 2.21 (frame/group/rectangle/ellipse/polygon/path/text/icon/ref/note), not Figma node fields.\n\nThe root variable is document. Synchronous functions are Insert / Copy / Update / Replace / Move / Delete / SetVariables / Get / GetVariables / FindEmptySpace / Print / TakeScreenshot; globals persist for the next call. A first frame needs only this body.script:\n\n```js\nconst f = Insert(document, { type: \"frame\", name: \"Hero\", width: 1200, layout: \"vertical\", padding: 48, fill: \"#FFFFFF\" }); Insert(f, { type: \"text\", content: \"Hello\", fontSize: 32, fill: \"#111111\" }); Print(f)\n```\n\nInsert/Copy return the new node id; read the copy with Get(id) — copied descendants get new ids, so change them through Copy's third argument `descendants` keyed by the source node ids. To copy a page and change its title in the same script:\n\n```js canvas-example=\"copy-page\"\nconst page = Insert(document, {type:\"frame\",name:\"Original\",width:320,height:160,layout:\"vertical\",padding:16});\nconst title = Insert(page, {type:\"text\",name:\"Title\",content:\"Original\",fontSize:24});\nconst copy = Copy(page, document, {name:\"Copy\",x:360,descendants:{[title]:{content:\"Updated\"}}});\nPrint(copy); Print(Get(copy).children[0].content);\n```\n\nUse viewer_url to watch the result in Console. TakeScreenshot records node ids in screenshots; call images.list with those ids to fetch PNG data URLs. See the [Canvas execute reference](https://deepraxis.com/en/docs/api/native/canvas/execute) for request fields and results, and the [Canvas node reference](https://deepraxis.com/en/docs/developers/canvas/nodes) for node content.\n\nA successful write increments version by one. Optionally set expected_version to the version from retrieve or nodes.list; on 409 REVISION_CONFLICT read again, merge your intent and retry with the current version. Every script failure rolls back all writes. On 400 SCRIPT_ERROR, SCRIPT_LIMIT or OPS_REJECTED, use error.details.edit_id plus edits to repair and rerun the stored source without resending the entire script; details may include line, column and rejection. On 400 EDIT_EXPIRED the saved script is older than ten minutes: submit a corrected new script. On 429 CANVAS_BUSY, more than four calls are queued for this canvas: wait for pending calls before retrying.\n\nExecution errors include error.details.prints containing output printed before failure, with the same string-array shape and output limit as successful prints; rolled-back writes still create no version.\n";
6271
+ readonly http: "POST";
6272
+ readonly path: "/canvas/v1/canvases/{canvas_id}:execute";
6273
+ readonly streaming: "no";
6274
+ readonly pagination: false;
6275
+ readonly pathParams: readonly [{
6276
+ readonly name: "canvas_id";
6277
+ readonly sdkName: "canvas_id";
6278
+ readonly description: "Canvas id returned by create or list, in the form cvs_ followed by 16 lowercase letters or digits; a display name is not accepted.";
6279
+ }];
6280
+ readonly query: readonly [];
6281
+ readonly body: {
6282
+ readonly required: true;
6283
+ readonly fields: readonly [{
6284
+ readonly name: "script";
6285
+ readonly type: "string";
6286
+ readonly required: false;
6287
+ readonly description: "New synchronous Pencil execute source using document as the root; provide this or edit_id, never both. See the operation's first-frame example.";
6288
+ }, {
6289
+ readonly name: "edit_id";
6290
+ readonly type: "string";
6291
+ readonly required: false;
6292
+ readonly description: "Saved failed-script identifier from error.details.edit_id; use with edits instead of script within ten minutes of the failure.";
6293
+ }, {
6294
+ readonly name: "edits";
6295
+ readonly type: "array";
6296
+ readonly itemType: "object";
6297
+ readonly required: false;
6298
+ readonly description: "Text replacements applied to the source identified by edit_id before rerunning; use error line, column or rejection to choose the correction.";
6299
+ }, {
6300
+ readonly name: "expected_version";
6301
+ readonly type: "string";
6302
+ readonly required: false;
6303
+ readonly description: "Revision from retrieve, nodes.list or the previous execute response; omit for an unguarded write. A mismatch returns 409 REVISION_CONFLICT with details.version.";
6304
+ }];
6305
+ };
6306
+ }, {
6307
+ readonly resource: "canvas.canvases";
6308
+ readonly method: "restore";
6309
+ readonly summary: "Restore canvas version";
6310
+ readonly description: "Recover a canvas after an unwanted edit by restoring a retained version from versions.list or its earliest_restorable_version. This replaces current nodes, variables and themes with the target state and creates one new version; history remains available, so restoring can itself be undone with another restore. Restoring the current version succeeds without creating a version. Optionally guard the write with expected_version from retrieve or nodes.list; if it is stale, inspect current state and retry with the new value. Repeating an unguarded request after another edit can create another restore version. Versions from before history was enabled or outside retention cannot be recovered. Connected viewers resync after a successful restore.";
6311
+ readonly http: "POST";
6312
+ readonly path: "/canvas/v1/canvases/{canvas_id}:restore";
6313
+ readonly streaming: "no";
6314
+ readonly pagination: false;
6315
+ readonly pathParams: readonly [{
6316
+ readonly name: "canvas_id";
6317
+ readonly sdkName: "canvas_id";
6318
+ readonly description: "Canvas id returned by create or list, in the form cvs_ followed by 16 lowercase letters or digits; a display name is not accepted.";
6319
+ }];
6320
+ readonly query: readonly [];
6321
+ readonly body: {
6322
+ readonly required: true;
6323
+ readonly fields: readonly [{
6324
+ readonly name: "version";
6325
+ readonly type: "string";
6326
+ readonly required: true;
6327
+ readonly description: "Historical target from versions.list or earliest_restorable_version; restoring the current version creates no new commit.";
6328
+ }, {
6329
+ readonly name: "expected_version";
6330
+ readonly type: "string";
6331
+ readonly required: false;
6332
+ readonly description: "Current version from retrieve or nodes.list to guard against concurrent edits; omission applies the restore to whichever version is current.";
6333
+ }];
6334
+ };
6335
+ }, {
6336
+ readonly resource: "canvas.collections";
6337
+ readonly method: "list";
6338
+ readonly summary: "List collections";
6339
+ readonly description: "Find collections and ids for filtering or moving canvases. All organization collections are returned in name order in one response; next_cursor is always null. canvas_count excludes deleted canvases. total_count counts all live canvases, rather than collections, and uncategorized_count counts live canvases without a collection. Use canvases.list with collection_id to read a collection or none to read uncategorized canvases.";
6340
+ readonly http: "GET";
6341
+ readonly path: "/canvas/v1/collections";
6342
+ readonly streaming: "no";
6343
+ readonly pagination: false;
6344
+ readonly pathParams: readonly [];
6345
+ readonly query: readonly [];
6346
+ }, {
6347
+ readonly resource: "canvas.collections";
6348
+ readonly method: "create";
6349
+ readonly summary: "Create collection";
6350
+ readonly description: "Organize canvases by creating a one-level collection in your organization. Send a name of 1–100 characters after trimming; duplicate names are allowed. Each call creates a new collection, initially containing no canvases. Use canvases.update with its id as collection_id to move existing canvases into it. Collections cannot be nested and an organization can have at most 200.";
6351
+ readonly http: "POST";
6352
+ readonly path: "/canvas/v1/collections";
6353
+ readonly streaming: "no";
6354
+ readonly pagination: false;
6355
+ readonly pathParams: readonly [];
6356
+ readonly query: readonly [];
6357
+ readonly body: {
6358
+ readonly required: true;
6359
+ readonly fields: readonly [{
6360
+ readonly name: "name";
6361
+ readonly type: "string";
6362
+ readonly required: true;
6363
+ readonly description: "Collection display name, 1–100 characters after trimming surrounding whitespace; duplicate names within the organization are allowed.";
6364
+ }];
6365
+ };
6366
+ }, {
6367
+ readonly resource: "canvas.collections";
6368
+ readonly method: "delete";
6369
+ readonly summary: "Delete collection";
6370
+ readonly description: "Remove a collection using an id from collections.list. All its canvases are preserved and become uncategorized, with collection_id set to null; read them using canvases.list with collection_id=none. The removed collection cannot be retrieved again, and repeating deletion returns COLLECTION_NOT_FOUND.";
6371
+ readonly http: "DELETE";
6372
+ readonly path: "/canvas/v1/collections/{collection_id}";
6373
+ readonly streaming: "no";
6374
+ readonly pagination: false;
6375
+ readonly pathParams: readonly [{
6376
+ readonly name: "collection_id";
6377
+ readonly sdkName: "collection_id";
6378
+ readonly description: "Collection id from collections.create or collections.list, in the form col_ followed by 16 lowercase letters or digits; a display name is not an identifier.";
6379
+ }];
6380
+ readonly query: readonly [];
6381
+ }, {
6382
+ readonly resource: "canvas.collections";
6383
+ readonly method: "retrieve";
6384
+ readonly summary: "Retrieve collection";
6385
+ readonly description: "Inspect one collection and its current live canvas count using an id from collections.list or collections.create. The collection must belong to the API key organization. To read its canvases, pass the same id as collection_id to canvases.list; this response contains collection metadata only.";
6386
+ readonly http: "GET";
6387
+ readonly path: "/canvas/v1/collections/{collection_id}";
6388
+ readonly streaming: "no";
6389
+ readonly pagination: false;
6390
+ readonly pathParams: readonly [{
6391
+ readonly name: "collection_id";
6392
+ readonly sdkName: "collection_id";
6393
+ readonly description: "Collection id from collections.create or collections.list, in the form col_ followed by 16 lowercase letters or digits; a display name is not an identifier.";
6394
+ }];
6395
+ readonly query: readonly [];
6396
+ }, {
6397
+ readonly resource: "canvas.collections";
6398
+ readonly method: "update";
6399
+ readonly summary: "Rename collection";
6400
+ readonly description: "Change the display name of a collection from collections.list without changing its id or canvas assignments. Names contain 1–100 characters after trimming and may match another collection name. This operation does not move canvases; use canvases.update with collection_id for that.";
6401
+ readonly http: "PATCH";
6402
+ readonly path: "/canvas/v1/collections/{collection_id}";
6403
+ readonly streaming: "no";
6404
+ readonly pagination: false;
6405
+ readonly pathParams: readonly [{
6406
+ readonly name: "collection_id";
6407
+ readonly sdkName: "collection_id";
6408
+ readonly description: "Collection id from collections.create or collections.list, in the form col_ followed by 16 lowercase letters or digits; a display name is not an identifier.";
6409
+ }];
6410
+ readonly query: readonly [];
6411
+ readonly body: {
6412
+ readonly required: true;
6413
+ readonly fields: readonly [{
6414
+ readonly name: "name";
6415
+ readonly type: "string";
6416
+ readonly required: true;
6417
+ readonly description: "Collection display name, 1–100 characters after trimming surrounding whitespace; duplicate names within the organization are allowed.";
6418
+ }];
6419
+ };
6420
+ }, {
6421
+ readonly resource: "cut.exports";
6422
+ readonly method: "retrieve";
6423
+ readonly summary: "Retrieve video export";
6424
+ readonly description: "Poll an export id returned by projects.exports.create or list to observe render progress. queued, fetching, rendering, stitching and saving are in progress; done provides asset in the target library, failed provides error, and canceled means the job stopped. Only done confirms a usable output asset.";
6425
+ readonly http: "GET";
6426
+ readonly path: "/cut/v1/exports/{export_id}";
6427
+ readonly streaming: "no";
6428
+ readonly pagination: false;
6429
+ readonly pathParams: readonly [{
6430
+ readonly name: "export_id";
6431
+ readonly sdkName: "export_id";
6432
+ readonly description: "Export identifier returned by its create or list operation; use the id, not a display name.";
6433
+ }];
6434
+ readonly query: readonly [];
6435
+ }, {
6436
+ readonly resource: "cut.exports";
6437
+ readonly method: "cancel";
6438
+ readonly summary: "Cancel video export";
6439
+ readonly description: "Request cancellation of an export obtained from projects.exports.create or list when its output is no longer needed. Read the returned job status and retrieve it to confirm the terminal outcome; do not interpret a cancellation request as successful rendering.";
6440
+ readonly http: "POST";
6441
+ readonly path: "/cut/v1/exports/{export_id}:cancel";
6442
+ readonly streaming: "no";
6443
+ readonly pagination: false;
6444
+ readonly pathParams: readonly [{
6445
+ readonly name: "export_id";
6446
+ readonly sdkName: "export_id";
6447
+ readonly description: "Export identifier returned by its create or list operation; use the id, not a display name.";
6448
+ }];
6449
+ readonly query: readonly [];
6450
+ }, {
6451
+ readonly resource: "cut.projects";
6452
+ readonly method: "list";
6453
+ readonly summary: "List projects";
6454
+ readonly description: "Discover projects owned by the API key organization and obtain project_id values. Results default to active projects ordered by updateTime descending; use filter state = \"deleted\" to find retained deleted projects for undelete. Continue with next_page_token as page_token until the token is absent.";
6455
+ readonly http: "GET";
6456
+ readonly path: "/cut/v1/projects";
6457
+ readonly streaming: "no";
6458
+ readonly pagination: false;
6459
+ readonly pathParams: readonly [];
6460
+ readonly query: readonly [{
6461
+ readonly name: "page_size";
6462
+ readonly type: "integer";
6463
+ readonly required: false;
6464
+ readonly description: "Maximum resources in one page, from 1 to 100; defaults to 50.";
6465
+ }, {
6466
+ readonly name: "page_token";
6467
+ readonly type: "string";
6468
+ readonly required: false;
6469
+ readonly description: "Opaque next_page_token from the preceding page; omit on the first request.";
6470
+ }, {
6471
+ readonly name: "filter";
6472
+ readonly type: "string";
6473
+ readonly required: false;
6474
+ readonly description: "Optional resource filter; projects supports state = \"active\" or state = \"deleted\".";
6475
+ }, {
6476
+ readonly name: "order_by";
6477
+ readonly type: "string";
6478
+ readonly required: false;
6479
+ readonly description: "Optional ordering expression; projects supports updateTime desc.";
6480
+ }];
6481
+ }, {
6482
+ readonly resource: "cut.projects";
6483
+ readonly method: "create";
6484
+ readonly summary: "Create project";
6485
+ readonly description: "Create a blank editing project in the API key organization before writing a script. First obtain accessible library ids from praxis.media; bindings must include exactly one read_write library with default_upload true. Each call creates a new project and returns HTTP 201; save its id for execute, state and timeline calls. All editing positions use seconds.";
6486
+ readonly http: "POST";
6487
+ readonly path: "/cut/v1/projects";
6488
+ readonly streaming: "no";
6489
+ readonly pagination: false;
6490
+ readonly pathParams: readonly [];
6491
+ readonly query: readonly [];
6492
+ readonly body: {
6493
+ readonly required: true;
6494
+ readonly fields: readonly [{
6495
+ readonly name: "name";
6496
+ readonly type: "string";
6497
+ readonly required: true;
6498
+ readonly description: "Human-readable project name; required and must contain non-whitespace text.";
6499
+ }, {
6500
+ readonly name: "labels";
6501
+ readonly type: "object";
6502
+ readonly required: false;
6503
+ readonly description: "User-defined string labels for organizing projects; label keys retain their original spelling.";
6504
+ }, {
6505
+ readonly name: "settings";
6506
+ readonly type: "object";
6507
+ readonly required: true;
6508
+ readonly description: "Dimensions and frame rate for a new editing project.";
6509
+ }, {
6510
+ readonly name: "bindings";
6511
+ readonly type: "array";
6512
+ readonly itemType: "object";
6513
+ readonly required: true;
6514
+ readonly description: "Accessible library bindings; exactly one read_write entry must have default_upload true.";
6515
+ }];
6516
+ };
6517
+ }, {
6518
+ readonly resource: "cut.projects";
6519
+ readonly method: "delete";
6520
+ readonly summary: "Delete project";
6521
+ readonly description: "Soft-delete a project selected from projects.list. The project is retained for seven days until purge_time and can be restored with undelete before that deadline. Deleted projects cannot be edited; list with filter state = \"deleted\" to locate retained projects.";
6522
+ readonly http: "DELETE";
6523
+ readonly path: "/cut/v1/projects/{project_id}";
6524
+ readonly streaming: "no";
6525
+ readonly pagination: false;
6526
+ readonly pathParams: readonly [{
6527
+ readonly name: "project_id";
6528
+ readonly sdkName: "project_id";
6529
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
6530
+ }];
6531
+ readonly query: readonly [];
6532
+ }, {
6533
+ readonly resource: "cut.projects";
6534
+ readonly method: "retrieve";
6535
+ readonly summary: "Retrieve project";
6536
+ readonly description: "Inspect project metadata, settings and library bindings before editing. Copy id from projects.create or list; expand=timeline,exports,versions includes selected related resources. The expanded timeline uses seconds and the returned revision can guard a later execute call with expected_revision.";
6537
+ readonly http: "GET";
6538
+ readonly path: "/cut/v1/projects/{project_id}";
6539
+ readonly streaming: "no";
6540
+ readonly pagination: false;
6541
+ readonly pathParams: readonly [{
6542
+ readonly name: "project_id";
6543
+ readonly sdkName: "project_id";
6544
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
6545
+ }];
6546
+ readonly query: readonly [{
6547
+ readonly name: "expand";
6548
+ readonly type: "string";
6549
+ readonly required: false;
6550
+ readonly description: "Comma-separated expansions: timeline includes clips, exports includes render jobs, versions includes saved snapshots.";
6551
+ }];
6552
+ }, {
6553
+ readonly resource: "cut.projects";
6554
+ readonly method: "update";
6555
+ readonly summary: "Update project metadata";
6556
+ readonly description: "Change the project display name or replace its labels by naming those fields in update_mask. Use execute for clip or track edits. Each successful update commits a new revision; labels are replaced as a whole when selected, so read and merge existing labels before overwriting them.";
6557
+ readonly http: "PATCH";
6558
+ readonly path: "/cut/v1/projects/{project_id}";
6559
+ readonly streaming: "no";
6560
+ readonly pagination: false;
6561
+ readonly pathParams: readonly [{
6562
+ readonly name: "project_id";
6563
+ readonly sdkName: "project_id";
6564
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
6565
+ }];
6566
+ readonly query: readonly [];
6567
+ readonly body: {
6568
+ readonly required: true;
6569
+ readonly fields: readonly [{
6570
+ readonly name: "name";
6571
+ readonly type: "string";
6572
+ readonly required: false;
6573
+ readonly description: "Replacement display name when update_mask includes name.";
6574
+ }, {
6575
+ readonly name: "labels";
6576
+ readonly type: "object";
6577
+ readonly required: false;
6578
+ readonly description: "User-defined string labels for organizing projects; label keys retain their original spelling.";
6579
+ }, {
6580
+ readonly name: "update_mask";
6581
+ readonly type: "array";
6582
+ readonly itemType: "string";
6583
+ readonly enum: readonly ["name", "labels"];
6584
+ readonly required: true;
6585
+ readonly description: "Metadata fields to replace; name changes the display name and labels replaces all labels.";
6586
+ }];
6587
+ };
6588
+ }, {
6589
+ readonly resource: "cut.projects.analysis";
6590
+ readonly method: "create";
6591
+ readonly summary: "Analyze project media";
6592
+ readonly description: "Request silence, filler-word or scene analysis for selected bound assets before editing. Omit media to select project sources; ranges returned in segments use source seconds. A pending result is not completion: use retry_after_sec before checking again, and inspect failed or unsupported asset results before deciding which edits are possible.";
6593
+ readonly http: "POST";
6594
+ readonly path: "/cut/v1/projects/{project_id}/analysis";
6595
+ readonly streaming: "no";
6596
+ readonly pagination: false;
6597
+ readonly pathParams: readonly [{
6598
+ readonly name: "project_id";
6599
+ readonly sdkName: "project_id";
6600
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
6601
+ }];
6602
+ readonly query: readonly [];
6603
+ readonly body: {
6604
+ readonly required: true;
6605
+ readonly fields: readonly [{
6606
+ readonly name: "media";
6607
+ readonly type: "array";
6608
+ readonly itemType: "object";
6609
+ readonly required: false;
6610
+ readonly description: "Bound-library assets to analyze; omission selects project media.";
6611
+ }, {
6612
+ readonly name: "kinds";
6613
+ readonly type: "array";
6614
+ readonly itemType: "string";
6615
+ readonly enum: readonly ["silence", "filler", "scenes"];
6616
+ readonly required: true;
6617
+ readonly description: "Analysis types to request for the selected source assets.";
6618
+ }];
6619
+ };
6620
+ }, {
6621
+ readonly resource: "cut.projects.bindings";
6622
+ readonly method: "list";
6623
+ readonly summary: "List library bindings";
6624
+ readonly description: "Discover the named media libraries available to this project before selecting source assets or an import/export destination. read bindings supply source assets; read_write bindings also accept uploads. Exactly one writable binding supplies the default upload destination.";
6625
+ readonly http: "GET";
6626
+ readonly path: "/cut/v1/projects/{project_id}/bindings";
6627
+ readonly streaming: "no";
6628
+ readonly pagination: false;
6629
+ readonly pathParams: readonly [{
6630
+ readonly name: "project_id";
6631
+ readonly sdkName: "project_id";
6632
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
6633
+ }];
6634
+ readonly query: readonly [];
6635
+ }, {
6636
+ readonly resource: "cut.projects.bindings";
6637
+ readonly method: "create";
6638
+ readonly summary: "Bind media library";
6639
+ readonly description: "Attach an accessible media library to an existing project under a unique name. Obtain library_id from praxis.media and choose read for source-only access or read_write for imports and exports. The project must retain exactly one read_write binding with default_upload true after the change.";
6640
+ readonly http: "POST";
6641
+ readonly path: "/cut/v1/projects/{project_id}/bindings";
6642
+ readonly streaming: "no";
6643
+ readonly pagination: false;
6644
+ readonly pathParams: readonly [{
6645
+ readonly name: "project_id";
6646
+ readonly sdkName: "project_id";
6647
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
6648
+ }];
6649
+ readonly query: readonly [];
6650
+ readonly body: {
6651
+ readonly required: true;
6652
+ readonly fields: readonly [{
6653
+ readonly name: "binding";
6654
+ readonly type: "object";
6655
+ readonly required: true;
6656
+ readonly description: "A named project link to a media library. Exactly one read_write binding must be default_upload.";
6657
+ }];
6658
+ };
6659
+ }, {
6660
+ readonly resource: "cut.projects.bindings";
6661
+ readonly method: "delete";
6662
+ readonly summary: "Remove library binding";
6663
+ readonly description: "Detach a library alias obtained from bindings.list after removing all timeline clips that reference its library. BINDING_IN_USE returns 409 while references remain; inspect timeline and edit those clips first. Removal must preserve the one writable default upload binding.";
6664
+ readonly http: "DELETE";
6665
+ readonly path: "/cut/v1/projects/{project_id}/bindings/{name}";
6666
+ readonly streaming: "no";
6667
+ readonly pagination: false;
6668
+ readonly pathParams: readonly [{
6669
+ readonly name: "project_id";
6670
+ readonly sdkName: "project_id";
6671
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
6672
+ }, {
6673
+ readonly name: "name";
6674
+ readonly sdkName: "name";
6675
+ readonly description: "Project-local binding alias from bindings.list; detach only after removing all clips that reference its library.";
6676
+ }];
6677
+ readonly query: readonly [];
6678
+ }, {
6679
+ readonly resource: "cut.projects.exports";
6680
+ readonly method: "list";
6681
+ readonly summary: "List project exports";
6682
+ readonly description: "Find export jobs associated with this project before polling or canceling a render. Copy an export id into praxis.cut.exports.retrieve or cancel. Continue with next_page_token as page_token when present; queued or in-progress jobs have not produced a final media asset.";
6683
+ readonly http: "GET";
6684
+ readonly path: "/cut/v1/projects/{project_id}/exports";
6685
+ readonly streaming: "no";
6686
+ readonly pagination: false;
6687
+ readonly pathParams: readonly [{
6688
+ readonly name: "project_id";
6689
+ readonly sdkName: "project_id";
6690
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
6691
+ }];
6692
+ readonly query: readonly [{
6693
+ readonly name: "page_size";
6694
+ readonly type: "integer";
6695
+ readonly required: false;
6696
+ readonly description: "Maximum resources in one page, from 1 to 100; defaults to 50.";
6697
+ }, {
6698
+ readonly name: "page_token";
6699
+ readonly type: "string";
6700
+ readonly required: false;
6701
+ readonly description: "Opaque next_page_token from the preceding page; omit on the first request.";
6702
+ }, {
6703
+ readonly name: "filter";
6704
+ readonly type: "string";
6705
+ readonly required: false;
6706
+ readonly description: "Optional resource filter; projects supports state = \"active\" or state = \"deleted\".";
6707
+ }, {
6708
+ readonly name: "order_by";
6709
+ readonly type: "string";
6710
+ readonly required: false;
6711
+ readonly description: "Optional ordering expression; projects supports updateTime desc.";
6712
+ }];
6713
+ }, {
6714
+ readonly resource: "cut.projects.exports";
6715
+ readonly method: "create";
6716
+ readonly summary: "Create video export";
6717
+ readonly description: "Start an asynchronous video export from the project into a writable bound media library. Choose binding from bindings.list or omit it for default_upload, and optionally select revision and output settings. HTTP 202 only accepts the job; poll praxis.cut.exports.retrieve using the returned id until status is done, failed or canceled. On done, asset identifies the video written back to praxis.media. Each call starts a job, so retrieve a known job before retrying a submission.";
6718
+ readonly http: "POST";
6719
+ readonly path: "/cut/v1/projects/{project_id}/exports";
6720
+ readonly streaming: "no";
6721
+ readonly pagination: false;
6722
+ readonly pathParams: readonly [{
6723
+ readonly name: "project_id";
6724
+ readonly sdkName: "project_id";
6725
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
6726
+ }];
6727
+ readonly query: readonly [];
6728
+ readonly body: {
6729
+ readonly required: true;
6730
+ readonly fields: readonly [{
6731
+ readonly name: "output";
6732
+ readonly type: "object";
6733
+ readonly required: false;
6734
+ readonly description: "Rendering options for an exported video.";
6735
+ }, {
6736
+ readonly name: "binding";
6737
+ readonly type: "string";
6738
+ readonly required: false;
6739
+ readonly description: "Writable binding name used as the export destination; omission uses default_upload.";
5722
6740
  }, {
5723
- readonly name: "labels";
5724
- readonly type: "object";
6741
+ readonly name: "revision";
6742
+ readonly type: "integer";
5725
6743
  readonly required: false;
5726
- readonly description: "自定义字符串标签;最多 32 项,键最多 128 个 UTF-8 字节,值最多 1024 个 UTF-8 字节。";
6744
+ readonly description: "Committed project revision from retrieve, state, timeline or execute; increases after each successful write.";
5727
6745
  }];
5728
6746
  };
5729
6747
  }, {
5730
- readonly resource: "browser.sessions";
5731
- readonly method: "retrieve";
5732
- readonly summary: "读取浏览器会话";
5733
- readonly description: "读取当前账户的指定会话及其最新状态,sessionId 使用创建或列表返回的 id。expand=debug,events 可同时取得实时观看地址和事件首页;不存在或不属于当前账户时返回 404。";
6748
+ readonly resource: "cut.projects.frames";
6749
+ readonly method: "list";
6750
+ readonly summary: "Render preview frames";
6751
+ readonly description: "Review the visual result at one or more project times without creating an export. Pass comma-separated seconds in at, such as 12,15.5; scale changes preview size and revision selects a committed project revision. Fetch the returned image URLs before expires_at; render again when they expire.";
5734
6752
  readonly http: "GET";
5735
- readonly path: "/browser/v1/sessions/{sessionId}";
6753
+ readonly path: "/cut/v1/projects/{project_id}/frames";
5736
6754
  readonly streaming: "no";
5737
6755
  readonly pagination: false;
5738
6756
  readonly pathParams: readonly [{
5739
- readonly name: "sessionId";
5740
- readonly sdkName: "sessionId";
5741
- readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
6757
+ readonly name: "project_id";
6758
+ readonly sdkName: "project_id";
6759
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
5742
6760
  }];
5743
6761
  readonly query: readonly [{
5744
- readonly name: "expand";
6762
+ readonly name: "at";
5745
6763
  readonly type: "string";
6764
+ readonly required: true;
6765
+ readonly description: "Required comma-separated non-negative project times in seconds, for example 12,15.5.";
6766
+ }, {
6767
+ readonly name: "scale";
6768
+ readonly type: "number";
5746
6769
  readonly required: false;
5747
- readonly description: "逗号分隔的 debug、events;在同一响应中返回调试地址和事件。";
6770
+ readonly description: "Positive image size multiplier; 0.5 renders at half the project dimensions.";
6771
+ }, {
6772
+ readonly name: "revision";
6773
+ readonly type: "integer";
6774
+ readonly required: false;
6775
+ readonly description: "Optional committed project revision from state or execute; omission selects the current revision.";
5748
6776
  }];
5749
6777
  }, {
5750
- readonly resource: "browser.sessions";
5751
- readonly method: "update";
5752
- readonly summary: "关闭浏览器会话";
5753
- readonly description: "关闭指定浏览器会话,返回关闭后的会话对象。请求体为 {\"status\":\"REQUEST_RELEASE\"};若返回 409 SESSION_INVALID_STATE,可再次读取会话确认状态;已结束的会话可重复请求关闭。";
6778
+ readonly resource: "cut.projects.media";
6779
+ readonly method: "import";
6780
+ readonly summary: "Import project media";
6781
+ readonly description: "Import a URL, data URI or existing file into a writable project media library. Select binding from bindings.list or omit it to use default_upload. Save library_id and asset_id from the result and use them as libraryId and assetId inside execute script media references; overwrites follow the source asset latest version.";
5754
6782
  readonly http: "POST";
5755
- readonly path: "/browser/v1/sessions/{sessionId}";
6783
+ readonly path: "/cut/v1/projects/{project_id}/media:import";
5756
6784
  readonly streaming: "no";
5757
6785
  readonly pagination: false;
5758
6786
  readonly pathParams: readonly [{
5759
- readonly name: "sessionId";
5760
- readonly sdkName: "sessionId";
5761
- readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
6787
+ readonly name: "project_id";
6788
+ readonly sdkName: "project_id";
6789
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
5762
6790
  }];
5763
6791
  readonly query: readonly [];
5764
6792
  readonly body: {
5765
6793
  readonly required: true;
5766
6794
  readonly fields: readonly [{
5767
- readonly name: "status";
6795
+ readonly name: "binding";
5768
6796
  readonly type: "string";
5769
- readonly enum: readonly ["REQUEST_RELEASE"];
6797
+ readonly required: false;
6798
+ readonly description: "Writable binding name from project bindings; omission uses default_upload.";
6799
+ }, {
6800
+ readonly name: "source";
6801
+ readonly type: "object";
5770
6802
  readonly required: true;
5771
- readonly description: "会话操作指令;REQUEST_RELEASE 表示请求关闭浏览器并结束会话。";
6803
+ readonly description: "Exactly one input source for the imported asset.";
6804
+ }, {
6805
+ readonly name: "display_name";
6806
+ readonly type: "string";
6807
+ readonly required: false;
6808
+ readonly description: "Optional human-readable display name for the new media asset.";
5772
6809
  }];
5773
6810
  };
5774
6811
  }, {
5775
- readonly resource: "browser.sessions";
5776
- readonly method: "retrieveDebug";
5777
- readonly summary: "读取调试地址";
5778
- readonly description: "读取当前会话及各标签页的实时观看地址和 CDP 连接地址。直接使用返回的完整链接,保留查询凭证;会话不在运行状态时 pages 为空,返回地址不代表会话仍可连接。";
6812
+ readonly resource: "cut.projects";
6813
+ readonly method: "retrieveState";
6814
+ readonly summary: "Read editing state";
6815
+ readonly description: "Read lightweight project context before composing an execute script. Returns current revision, rendering settings, track counts, library bindings and offline media count without individual clips. For complete clip documents or a selected time range, read timeline instead.";
5779
6816
  readonly http: "GET";
5780
- readonly path: "/browser/v1/sessions/{sessionId}/debug";
6817
+ readonly path: "/cut/v1/projects/{project_id}/state";
5781
6818
  readonly streaming: "no";
5782
6819
  readonly pagination: false;
5783
6820
  readonly pathParams: readonly [{
5784
- readonly name: "sessionId";
5785
- readonly sdkName: "sessionId";
5786
- readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
6821
+ readonly name: "project_id";
6822
+ readonly sdkName: "project_id";
6823
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
5787
6824
  }];
5788
6825
  readonly query: readonly [];
5789
6826
  }, {
5790
- readonly resource: "browser.sessions.events";
5791
- readonly method: "list";
5792
- readonly summary: "列出会话事件";
5793
- readonly description: "按事件序号升序读取指定会话的事件账本,包含生命周期和接管等事件,不包含页面点击或输入内容。可按 types 筛选,并将 nextCursor 原样传入读取后续页。";
6827
+ readonly resource: "cut.projects";
6828
+ readonly method: "retrieveTimeline";
6829
+ readonly summary: "Read project timeline";
6830
+ readonly description: "Inspect clips and markers in a selected project range before editing. view=full returns structured tracks with all timeline positions in seconds; view=compact returns compact text for script context. from and to are seconds and tracks limits the selection to comma-separated track ids from state. Concurrent changes while preparing a full timeline return 409; retrieve the latest state and try the read again.";
5794
6831
  readonly http: "GET";
5795
- readonly path: "/browser/v1/sessions/{sessionId}/events";
6832
+ readonly path: "/cut/v1/projects/{project_id}/timeline";
5796
6833
  readonly streaming: "no";
5797
6834
  readonly pagination: false;
5798
6835
  readonly pathParams: readonly [{
5799
- readonly name: "sessionId";
5800
- readonly sdkName: "sessionId";
5801
- readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
6836
+ readonly name: "project_id";
6837
+ readonly sdkName: "project_id";
6838
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
5802
6839
  }];
5803
6840
  readonly query: readonly [{
5804
- readonly name: "cursor";
6841
+ readonly name: "view";
5805
6842
  readonly type: "string";
6843
+ readonly enum: readonly ["full", "compact"];
5806
6844
  readonly required: false;
5807
- readonly description: "上一页返回的 nextCursor,表示已读到的事件序号;省略时从最早事件开始。";
6845
+ readonly description: "full returns structured clips; compact returns compact textual editing context.";
5808
6846
  }, {
5809
- readonly name: "limit";
6847
+ readonly name: "from";
6848
+ readonly type: "number";
6849
+ readonly required: false;
6850
+ readonly description: "Optional start of the selected project range in seconds; omit for the beginning.";
6851
+ }, {
6852
+ readonly name: "to";
6853
+ readonly type: "number";
6854
+ readonly required: false;
6855
+ readonly description: "Optional end of the selected project range in seconds; omit for the end.";
6856
+ }, {
6857
+ readonly name: "tracks";
6858
+ readonly type: "string";
6859
+ readonly required: false;
6860
+ readonly description: "Comma-separated track ids from state to include; omit to include every track.";
6861
+ }];
6862
+ }, {
6863
+ readonly resource: "cut.projects.versions";
6864
+ readonly method: "list";
6865
+ readonly summary: "List saved versions";
6866
+ readonly description: "Find saved timeline snapshots for this project and obtain version_id values for restore. A saved version records its original revision; restoring it creates a new current revision rather than rewinding the revision counter. Continue with next_page_token as page_token until absent.";
6867
+ readonly http: "GET";
6868
+ readonly path: "/cut/v1/projects/{project_id}/versions";
6869
+ readonly streaming: "no";
6870
+ readonly pagination: false;
6871
+ readonly pathParams: readonly [{
6872
+ readonly name: "project_id";
6873
+ readonly sdkName: "project_id";
6874
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
6875
+ }];
6876
+ readonly query: readonly [{
6877
+ readonly name: "page_size";
5810
6878
  readonly type: "integer";
5811
6879
  readonly required: false;
5812
- readonly description: "每页最多返回的记录数量;默认 50,范围 1–200。";
6880
+ readonly description: "Maximum resources in one page, from 1 to 100; defaults to 50.";
5813
6881
  }, {
5814
- readonly name: "types";
6882
+ readonly name: "page_token";
5815
6883
  readonly type: "string";
5816
6884
  readonly required: false;
5817
- readonly description: "逗号分隔的账本事件类型,仅返回匹配项;省略时不按类型筛选。";
6885
+ readonly description: "Opaque next_page_token from the preceding page; omit on the first request.";
6886
+ }, {
6887
+ readonly name: "filter";
6888
+ readonly type: "string";
6889
+ readonly required: false;
6890
+ readonly description: "Optional resource filter; projects supports state = \"active\" or state = \"deleted\".";
6891
+ }, {
6892
+ readonly name: "order_by";
6893
+ readonly type: "string";
6894
+ readonly required: false;
6895
+ readonly description: "Optional ordering expression; projects supports updateTime desc.";
5818
6896
  }];
5819
6897
  }, {
5820
- readonly resource: "browser.sessions.handoff";
6898
+ readonly resource: "cut.projects.versions";
5821
6899
  readonly method: "create";
5822
- readonly summary: "请求人工接管";
5823
- readonly description: "为运行中的会话发起人工接管请求,返回接管请求事件。请求尚未过期或完成时,CDP 客户端的 Input.* 指令会被拒绝;再次请求会替换已有的接管说明和到期时刻。";
6900
+ readonly summary: "Save project version";
6901
+ readonly description: "Save the current project timeline as a named recovery point before a substantial edit. Supply an optional label or send an empty object; keep the returned version id for versions.restore. Saving a version does not publish a rendered asset; use projects.exports.create for video output.";
5824
6902
  readonly http: "POST";
5825
- readonly path: "/browser/v1/sessions/{sessionId}/handoff";
6903
+ readonly path: "/cut/v1/projects/{project_id}/versions";
5826
6904
  readonly streaming: "no";
5827
6905
  readonly pagination: false;
5828
6906
  readonly pathParams: readonly [{
5829
- readonly name: "sessionId";
5830
- readonly sdkName: "sessionId";
5831
- readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
6907
+ readonly name: "project_id";
6908
+ readonly sdkName: "project_id";
6909
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
5832
6910
  }];
5833
6911
  readonly query: readonly [];
5834
6912
  readonly body: {
5835
6913
  readonly required: true;
5836
6914
  readonly fields: readonly [{
5837
- readonly name: "message";
6915
+ readonly name: "label";
5838
6916
  readonly type: "string";
5839
- readonly required: true;
5840
- readonly description: "交给人工操作者的接管说明,可为空字符串。";
5841
- }, {
5842
- readonly name: "timeoutMs";
5843
- readonly type: "number";
5844
6917
  readonly required: false;
5845
- readonly description: "接管请求有效时长,单位为毫秒;必须大于 0,可含小数。";
6918
+ readonly description: "Human-readable snapshot label, such as Before captions.";
5846
6919
  }];
5847
6920
  };
5848
6921
  }, {
5849
- readonly resource: "browser.sessions.handoff";
5850
- readonly method: "complete";
5851
- readonly summary: "完成人工接管";
5852
- readonly description: "完成运行中会话的待处理人工接管,清除接管请求并返回完成事件,客户端可恢复发送 Input.* 指令。没有请求或请求已过期时返回 409 HANDOFF_NOT_PENDING。";
6922
+ readonly resource: "cut.projects";
6923
+ readonly method: "execute";
6924
+ readonly summary: "Execute editing script";
6925
+ readonly description: "Edit the current timeline atomically using synchronous JavaScript source. Read state or timeline first, then pass its revision as expected_revision to detect concurrent changes. Use AddTrack, Insert, Update, Delete, Split, Trim, Move, RippleDeleteRange, UpdateTrack, DeleteTrack, SetSettings, AddCaptionsFromTranscript and SetMarker for writes; GetTimeline, GetItem, FindItems, GetMedia, GetTranscript and GetAnalysis read editing context; Print emits text and Preview requests frame previews. All script times are seconds; script object fields use camelCase, for example `media: {libraryId, assetId}`. Unlike Shotstack, execute applies script edits to a persistent project in one transaction. Provide script or a saved edit_id with literal edits, never both; failures roll back writes. A revision conflict while preparing the response may follow a committed edit: retrieve state before retrying. Minimal script after creating a project:\n\n```js\nconst t = AddTrack(\"video\");\nInsert(t, {type: \"color\", color: \"#123456\", start: 0, length: 3});\nPrint(t);\n```";
5853
6926
  readonly http: "POST";
5854
- readonly path: "/browser/v1/sessions/{sessionId}/handoff/complete";
6927
+ readonly path: "/cut/v1/projects/{project_id}:execute";
5855
6928
  readonly streaming: "no";
5856
6929
  readonly pagination: false;
5857
6930
  readonly pathParams: readonly [{
5858
- readonly name: "sessionId";
5859
- readonly sdkName: "sessionId";
5860
- readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
6931
+ readonly name: "project_id";
6932
+ readonly sdkName: "project_id";
6933
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
5861
6934
  }];
5862
6935
  readonly query: readonly [];
6936
+ readonly body: {
6937
+ readonly required: true;
6938
+ readonly fields: readonly [{
6939
+ readonly name: "script";
6940
+ readonly type: "string";
6941
+ readonly required: false;
6942
+ readonly description: "Synchronous editing source using Cut execute functions; submit this or edit_id, never both. Script source is opaque: function names and object fields inside JavaScript use their documented camelCase spelling.";
6943
+ }, {
6944
+ readonly name: "edit_id";
6945
+ readonly type: "string";
6946
+ readonly required: false;
6947
+ readonly description: "Saved failed script identifier from error.details.edit_id; valid for ten minutes.";
6948
+ }, {
6949
+ readonly name: "edits";
6950
+ readonly type: "array";
6951
+ readonly itemType: "object";
6952
+ readonly required: false;
6953
+ readonly description: "Literal replacements applied to the saved source before rerunning.";
6954
+ }, {
6955
+ readonly name: "expected_revision";
6956
+ readonly type: "integer";
6957
+ readonly required: false;
6958
+ readonly description: "Committed project revision from retrieve, state, timeline or execute; increases after each successful write.";
6959
+ }];
6960
+ };
5863
6961
  }, {
5864
- readonly resource: "browser.sessions";
5865
- readonly method: "stream";
5866
- readonly summary: "订阅会话动态";
5867
- readonly description: "SSE:event 为 snapshot、session、pages、action、event 或 end,data 为对应 JSON。先发送 snapshot 快照,再推送实时变化和 ping 注释;end 后关闭。不支持按 Last-Event-ID 历史重放。";
5868
- readonly http: "GET";
5869
- readonly path: "/browser/v1/sessions/{sessionId}/stream";
5870
- readonly streaming: "always";
6962
+ readonly resource: "cut.projects";
6963
+ readonly method: "undelete";
6964
+ readonly summary: "Restore deleted project";
6965
+ readonly description: "Return a retained deleted project to active state before its purge_time. Obtain project_id from projects.list filtered to deleted projects. This restores the project, not an older timeline revision; use versions.restore when reverting editing content.";
6966
+ readonly http: "POST";
6967
+ readonly path: "/cut/v1/projects/{project_id}:undelete";
6968
+ readonly streaming: "no";
5871
6969
  readonly pagination: false;
5872
6970
  readonly pathParams: readonly [{
5873
- readonly name: "sessionId";
5874
- readonly sdkName: "sessionId";
5875
- readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
6971
+ readonly name: "project_id";
6972
+ readonly sdkName: "project_id";
6973
+ readonly description: "Project identifier returned by its create or list operation; use the id, not a display name.";
5876
6974
  }];
5877
6975
  readonly query: readonly [];
5878
6976
  }, {
5879
- readonly resource: "browser.sessions.viewer";
5880
- readonly method: "create";
5881
- readonly summary: "更新查看者心跳";
5882
- readonly description: "登记运行中会话的观看者仍在线,以免无人连接时因空闲被释放。观看页面可见期间为同一观看者重复发送相同 viewerId;停止观看后停止发送,过期心跳不再计为在线。";
6977
+ readonly resource: "cut.versions";
6978
+ readonly method: "restore";
6979
+ readonly summary: "Restore saved version";
6980
+ readonly description: "Replace current editing content with a saved project snapshot selected from projects.versions.list. The restore commits a new transaction and revision while preserving the saved version for future use. Inspect the returned summary and timeline before further editing; a response revision conflict can follow a committed restore, so retrieve current state before retrying.";
5883
6981
  readonly http: "POST";
5884
- readonly path: "/browser/v1/sessions/{sessionId}/viewer";
6982
+ readonly path: "/cut/v1/versions/{version_id}:restore";
5885
6983
  readonly streaming: "no";
5886
6984
  readonly pagination: false;
5887
6985
  readonly pathParams: readonly [{
5888
- readonly name: "sessionId";
5889
- readonly sdkName: "sessionId";
5890
- readonly description: "浏览器会话 ID;使用创建或列出会话返回的 id,以 bss_ 开头。";
6986
+ readonly name: "version_id";
6987
+ readonly sdkName: "version_id";
6988
+ readonly description: "Version identifier returned by its create or list operation; use the id, not a display name.";
5891
6989
  }];
5892
6990
  readonly query: readonly [];
5893
- readonly body: {
5894
- readonly required: true;
5895
- readonly fields: readonly [{
5896
- readonly name: "viewerId";
5897
- readonly type: "string";
5898
- readonly required: true;
5899
- readonly description: "当前观看者的稳定标识;同一观看者重复心跳应使用相同值,长度为 1–128 个 UTF-16 代码单元。";
5900
- }];
5901
- };
5902
6991
  }, {
5903
6992
  readonly resource: "database.databases";
5904
6993
  readonly method: "list";
@@ -6729,7 +7818,7 @@ export declare const operations: readonly [{
6729
7818
  readonly resource: "file.files";
6730
7819
  readonly method: "create";
6731
7820
  readonly summary: "Upload file";
6732
- readonly description: "Upload a file to reuse in conversations or attach to a knowledge base. Unlike OpenAI Files, uploads must be nonempty and at most 100000000 bytes, and only user_data, assistants and vision purposes are accepted. Send file bytes as a multipart file part, not a filename or file ID; in the SDK use a File or Blob, for example new File([\"Return within 23 days.\"], \"policy.txt\", { type: \"text/plain\" }). Content determines the MIME type. Supported uploads include PDF, DOCX/XLSX/PPTX, PNG/JPEG/GIF/WebP, MP3/WAV/FLAC/OGG/M4A, MP4/WebM, and UTF-8 JSON/NDJSON/CSV/Markdown/plain text; empty, unsupported, oversized files and unsupported purposes return 400. Use Uploads for larger files. The purpose vision accepts only PNG, JPEG, GIF and WebP, while conversation images require user_data. The returned ID belongs to your tenant; upload alone does not ingest the file into Knowledge. Knowledge attachment has a lower limit of 100000000 bytes. Optionally set expires_after[anchor]=created_at with expires_after[seconds] (3600–2592000), or praxis[expires_in_seconds] (3600–7776000), never both. Without expiry, the file persists until deleted.";
7821
+ readonly description: "Upload a file to reuse in conversations or attach to a knowledge base. Unlike OpenAI Files, uploads must be nonempty and at most 100000000 bytes, and only user_data and vision purposes are accepted. Send file bytes as a multipart file part, not a filename or file ID; in the SDK use a File or Blob, for example new File([\"Return within 23 days.\"], \"policy.txt\", { type: \"text/plain\" }). Content determines the MIME type. Supported uploads include PDF, DOCX/XLSX/PPTX, PNG/JPEG/GIF/WebP, MP3/WAV/FLAC/OGG/M4A, MP4/WebM, and UTF-8 JSON/NDJSON/CSV/Markdown/plain text; empty, unsupported, oversized files and unsupported purposes return 400. Use Uploads for larger files. The purpose vision accepts only PNG, JPEG, GIF and WebP, while conversation images require user_data. The returned ID belongs to your tenant; upload alone does not ingest the file into Knowledge. Knowledge attachment has a lower limit of 100000000 bytes. Optionally set expires_after[anchor]=created_at with expires_after[seconds] (3600–7776000). Without expiry, the file persists until deleted.";
6733
7822
  readonly http: "POST";
6734
7823
  readonly path: "/file/v1/files";
6735
7824
  readonly streaming: "no";
@@ -6747,19 +7836,14 @@ export declare const operations: readonly [{
6747
7836
  }, {
6748
7837
  readonly name: "purpose";
6749
7838
  readonly type: "string";
6750
- readonly enum: readonly ["user_data", "assistants", "vision"];
7839
+ readonly enum: readonly ["user_data", "vision"];
6751
7840
  readonly required: true;
6752
- readonly description: "Purpose label stored with the file: user_data, assistants or vision. The vision purpose accepts only PNG, JPEG, GIF and WebP images. Conversation image references require user_data.";
7841
+ readonly description: "Purpose label stored with the file: user_data or vision. The vision purpose accepts only PNG, JPEG, GIF and WebP images. Conversation image references require user_data.";
6753
7842
  }, {
6754
7843
  readonly name: "expires_after";
6755
7844
  readonly type: "object";
6756
7845
  readonly required: false;
6757
7846
  readonly description: "Optional expiry relative to created_at. Files without an expiry persist until deleted.";
6758
- }, {
6759
- readonly name: "praxis";
6760
- readonly type: "object";
6761
- readonly required: false;
6762
- readonly description: "Own-face extensions. Use at most one expiry setting.";
6763
7847
  }];
6764
7848
  };
6765
7849
  }, {
@@ -6807,11 +7891,59 @@ export declare const operations: readonly [{
6807
7891
  readonly description: "ID of a tenant-owned live file, as returned by upload or list; starts with file-.";
6808
7892
  }];
6809
7893
  readonly query: readonly [];
7894
+ }, {
7895
+ readonly resource: "file.files.contentLinks";
7896
+ readonly method: "revoke";
7897
+ readonly summary: "Revoke a file content link";
7898
+ readonly description: "Stop a previously issued content link from reading a file. Obtain the link with files.contentUrl.create. Use file_id from file creation or listing and the token path component from a content URL (/c/<token>), not the complete URL. The caller must own the file and have write access; a read-only binding is refused. Revocation propagates through the capability deny list within 30 seconds; the file and other links remain available. Only current IAM capability tokens can be revoked; legacy content links expire at the migration deadline. Example body: {\"token\":\"<token from /c/>\"}.";
7899
+ readonly http: "POST";
7900
+ readonly path: "/file/v1/files/{file_id}/content_links:revoke";
7901
+ readonly streaming: "no";
7902
+ readonly pagination: false;
7903
+ readonly pathParams: readonly [{
7904
+ readonly name: "file_id";
7905
+ readonly sdkName: "file_id";
7906
+ readonly description: "Tenant-owned file identifier returned by file creation or listing; the token must name this same file.";
7907
+ }];
7908
+ readonly query: readonly [];
7909
+ readonly body: {
7910
+ readonly required: true;
7911
+ readonly fields: readonly [{
7912
+ readonly name: "token";
7913
+ readonly type: "string";
7914
+ readonly required: true;
7915
+ readonly description: "Signed token taken from the /c/ path component of a previously issued file content URL, without the host or /c/ prefix.";
7916
+ }];
7917
+ };
7918
+ }, {
7919
+ readonly resource: "file.files.contentUrl";
7920
+ readonly method: "create";
7921
+ readonly summary: "Create a download URL";
7922
+ readonly description: "Download a file's bytes to a local disk from a coding agent without sending them through the model. Use file_id from file creation or listing, then run curl -fsSL -o <filename> '<url>' locally with the returned URL; GET needs no Authorization header. The link is reusable until expiry and supports a single byte Range (for example Range: bytes=0-9 returns 206). Revoke it with files.contentLinks.revoke, passing the token after /c/ in the URL. Expired, revoked, invalid or cross-organization URLs return 404. Lifetime defaults to 3600 seconds and is at most 604800 seconds. Issuance requires the same credential and file-read access as files.retrieveContent; a processing file returns 409 FILE_NOT_READY, so poll files.retrieve until active before retrying. A missing, expired or other-organization file returns 404. Each issuance creates a new link. OpenAI Files has no signed download URL; this follows S3 presigned GET semantics. Example body: {\"ttl_seconds\":3600}.";
7923
+ readonly http: "POST";
7924
+ readonly path: "/file/v1/files/{file_id}/content_url";
7925
+ readonly streaming: "no";
7926
+ readonly pagination: false;
7927
+ readonly pathParams: readonly [{
7928
+ readonly name: "file_id";
7929
+ readonly sdkName: "file_id";
7930
+ readonly description: "Tenant-owned live file identifier from file creation or listing; the file must be active to issue a download URL.";
7931
+ }];
7932
+ readonly query: readonly [];
7933
+ readonly body: {
7934
+ readonly required: false;
7935
+ readonly fields: readonly [{
7936
+ readonly name: "ttl_seconds";
7937
+ readonly type: "integer";
7938
+ readonly required: false;
7939
+ readonly description: "Download link lifetime in seconds, from 1 through 604800; omitted means 3600. This does not change the file's own expiry.";
7940
+ }];
7941
+ };
6810
7942
  }, {
6811
7943
  readonly resource: "file.uploads";
6812
7944
  readonly method: "create";
6813
7945
  readonly summary: "Create an upload";
6814
- readonly description: "Start a multipart upload for a file larger than the 100000000-byte direct-upload limit. Supply the exact byte length, filename, MIME type and purpose. Unlike OpenAI, uploads accept at most 2 GiB (2147483648 bytes) and only user_data, assistants and vision purposes. Add parts of at most 64000000 bytes and complete within one hour. Optional part_size enables fixed-size, retryable parts. expires_after applies to the resulting file (3600–7776000 seconds on this own face); without it the file persists until deleted.";
7946
+ readonly description: "Start a multipart upload for a file larger than the 100000000-byte direct-upload limit. Supply the exact byte length, filename, MIME type and purpose. Unlike OpenAI, uploads accept at most 2 GiB (2147483648 bytes) and only user_data and vision purposes. Add parts of at most 64000000 bytes and complete within one hour. Optional part_size enables fixed-size, retryable parts. expires_after applies to the resulting file (3600–7776000 seconds on this own face); without it the file persists until deleted.";
6815
7947
  readonly http: "POST";
6816
7948
  readonly path: "/file/v1/uploads";
6817
7949
  readonly streaming: "no";
@@ -6838,9 +7970,9 @@ export declare const operations: readonly [{
6838
7970
  }, {
6839
7971
  readonly name: "purpose";
6840
7972
  readonly type: "string";
6841
- readonly enum: readonly ["user_data", "assistants", "vision"];
7973
+ readonly enum: readonly ["user_data", "vision"];
6842
7974
  readonly required: true;
6843
- readonly description: "Use user_data for conversation attachments, assistants for assistant files, or vision for PNG, JPEG, GIF and WebP images.";
7975
+ readonly description: "Use user_data for conversation attachments, or vision for PNG, JPEG, GIF and WebP images.";
6844
7976
  }, {
6845
7977
  readonly name: "expires_after";
6846
7978
  readonly type: "object";
@@ -6853,6 +7985,52 @@ export declare const operations: readonly [{
6853
7985
  readonly description: "Optional fixed part size in bytes, 5242880–64000000. Requires part_number on every part; retries of identical bytes at the same number return the same part. Omit to use arbitrary-sized parts.";
6854
7986
  }];
6855
7987
  };
7988
+ }, {
7989
+ readonly resource: "file.uploads";
7990
+ readonly method: "createSigned";
7991
+ readonly summary: "Create a one-time upload URL";
7992
+ readonly description: "Upload a local file of up to 2 GiB from a coding agent without sending bytes through the model. Provide basename, exact byte count and MIME type. Up to 104857600 bytes, PUT the file to url with curl -T photo.png -H 'Content-Type: image/png' '<url>'; success returns 201 with the file object, and reuse returns 410 CAPABILITY_USED. Above that threshold, split the file into part_size chunks (default 64000000 bytes), PUT each chunk to its numbered parts[].url in any order, then POST complete_url without a body. Part PUTs return 200; completion returns 201 with the file object, including its state, or 400 if a part is missing. A processing file can be polled with files.retrieve until active. Identical part bytes may be retried; changed bytes at the same number return 400. Completion reuse returns 410 CAPABILITY_USED. Each PUT requires the exact signed Content-Length; single-PUT Content-Type must match content_type or be omitted. Expired, revoked, invalid, wrong-action or cross-organization URLs return 404. URL lifetime defaults to 900 seconds for single PUT or 3600 for multipart, at most 604800; all multipart URLs share an expiry. Multipart creation reserves storage quota. Issuance requires the same unscoped credential as direct file creation. Each issuance creates a new upload and is not idempotent. Example body: {\"filename\":\"photo.png\",\"bytes\":2048,\"content_type\":\"image/png\"}.";
7993
+ readonly http: "POST";
7994
+ readonly path: "/file/v1/uploads/signed";
7995
+ readonly streaming: "no";
7996
+ readonly pagination: false;
7997
+ readonly pathParams: readonly [];
7998
+ readonly query: readonly [];
7999
+ readonly body: {
8000
+ readonly required: true;
8001
+ readonly fields: readonly [{
8002
+ readonly name: "filename";
8003
+ readonly type: "string";
8004
+ readonly required: true;
8005
+ readonly description: "Stored basename, 1–255 UTF-8 bytes without control characters or path separators.";
8006
+ }, {
8007
+ readonly name: "bytes";
8008
+ readonly type: "integer";
8009
+ readonly required: true;
8010
+ readonly description: "Exact local file size in bytes, from 1 through 2147483648 (2 GiB). Up to 104857600 bytes returns one PUT URL; larger files return numbered part URLs and a completion URL. Every PUT requires its exact signed Content-Length.";
8011
+ }, {
8012
+ readonly name: "content_type";
8013
+ readonly type: "string";
8014
+ readonly required: true;
8015
+ readonly description: "Declared MIME type, such as image/png. In single-PUT mode, send exactly this Content-Type or omit it. Stored file metadata is detected from the bytes in both modes.";
8016
+ }, {
8017
+ readonly name: "purpose";
8018
+ readonly type: "string";
8019
+ readonly enum: readonly ["user_data", "vision"];
8020
+ readonly required: false;
8021
+ readonly description: "user_data stores ordinary files and conversation images; vision accepts PNG, JPEG, GIF or WebP images only. Omitted means user_data.";
8022
+ }, {
8023
+ readonly name: "expires_in";
8024
+ readonly type: "integer";
8025
+ readonly required: false;
8026
+ readonly description: "Lifetime in seconds, from 1 through 604800: defaults to 900 for single PUT or 3600 for multipart. All part URLs and the completion URL share one expiry. This does not set the resulting file's lifetime.";
8027
+ }, {
8028
+ readonly name: "part_size";
8029
+ readonly type: "integer";
8030
+ readonly required: false;
8031
+ readonly description: "Fixed multipart chunk size in bytes, from 5242880 through 64000000; defaults to 64000000. Used only above 104857600 total bytes. The final part contains the remaining bytes; single-PUT mode keeps its existing response.";
8032
+ }];
8033
+ };
6856
8034
  }, {
6857
8035
  readonly resource: "file.uploads";
6858
8036
  readonly method: "cancel";
@@ -6970,7 +8148,7 @@ export declare const operations: readonly [{
6970
8148
  readonly resource: "knowledge.vectorStores";
6971
8149
  readonly method: "create";
6972
8150
  readonly summary: "Create knowledge base";
6973
- readonly description: "Create a knowledge base, optionally starting ingestion of uploaded file_ids in the same call; no separate attachment or batch is needed for those files. Use the returned id with vectorStores.files.retrieve to poll each attachment until completed, failed or cancelled; store status=completed alone does not mean every file succeeded. Unlike OpenAI vector stores, each file is limited to 100000000 bytes and each account to 100 active/nondeleted stores. Minimal body: {\"name\":\"Refund policies\"}.";
8151
+ readonly description: "Create a knowledge base, optionally starting ingestion of uploaded file_ids in the same call; no separate attachment or batch is needed for those files. Use the returned id with vectorStores.files.retrieve to poll each attachment until completed, failed or cancelled; store status=completed alone does not mean every file succeeded. Each file accepts up to 52428800 bytes and 5000000 estimated tokens; each account holds up to 100 active/nondeleted stores. Minimal body: {\"name\":\"Refund policies\"}.";
6974
8152
  readonly http: "POST";
6975
8153
  readonly path: "/knowledge/v1/vector_stores";
6976
8154
  readonly streaming: "no";
@@ -7014,7 +8192,7 @@ export declare const operations: readonly [{
7014
8192
  readonly name: "models";
7015
8193
  readonly type: "object";
7016
8194
  readonly required: false;
7017
- readonly description: "Model roles to set. The model must exist in the model catalog and serve the role (embedding → openai.embeddings, rerank → cohere.rerank, query_rewrite → openai.chat.completions). The embedding model must output 1024-dimension vectors. Omitted roles stay unchanged; null restores all defaults. Unknown roles or empty IDs return 400 INVALID_PARAMS. The OpenAI-compatible API rejects this field with 400.";
8195
+ readonly description: "Model roles to set. The model must exist in the model catalog and serve the role (embedding → openai.embeddings, rerank → cohere.rerank, query_rewrite → openai.chat.completions, ocr → mistral.ocr or pdf_input capability, vision → vision capability). The embedding model must output 1024-dimension vectors. Omitted roles stay unchanged; null restores all defaults. Unknown roles or empty IDs return 400 INVALID_PARAMS. The OpenAI-compatible API rejects this field with 400.";
7018
8196
  }];
7019
8197
  };
7020
8198
  }, {
@@ -7097,7 +8275,7 @@ export declare const operations: readonly [{
7097
8275
  readonly name: "models";
7098
8276
  readonly type: "object";
7099
8277
  readonly required: false;
7100
- readonly description: "Model roles to set. The model must exist in the model catalog and serve the role (embedding → openai.embeddings, rerank → cohere.rerank, query_rewrite → openai.chat.completions). The embedding model must output 1024-dimension vectors. Omitted roles stay unchanged; null restores all defaults. Unknown roles or empty IDs return 400 INVALID_PARAMS. The OpenAI-compatible API rejects this field with 400.";
8278
+ readonly description: "Model roles to set. The model must exist in the model catalog and serve the role (embedding → openai.embeddings, rerank → cohere.rerank, query_rewrite → openai.chat.completions, ocr → mistral.ocr or pdf_input capability, vision → vision capability). The embedding model must output 1024-dimension vectors. Omitted roles stay unchanged; null restores all defaults. Unknown roles or empty IDs return 400 INVALID_PARAMS. The OpenAI-compatible API rejects this field with 400.";
7101
8279
  }];
7102
8280
  };
7103
8281
  }, {
@@ -7274,7 +8452,7 @@ export declare const operations: readonly [{
7274
8452
  readonly resource: "knowledge.vectorStores.files";
7275
8453
  readonly method: "create";
7276
8454
  readonly summary: "Add file";
7277
- readonly description: "Attach an uploaded File for asynchronous ingestion, then poll this attachment until status is completed, failed or cancelled before searching. Unlike OpenAI vector stores, the file limit is 100000000 bytes; chunk sizes use estimated tokens rather than a model tokenizer. Text, Markdown, CSV, JSON, HTML, PDF, DOCX, PPTX, XLSX and PNG/JPEG/GIF/WebP images can be extracted; audio and video uploads are not knowledge documents. Images may yield generated descriptions rather than verbatim OCR. auto chunking resolves to static 800/400; explicit sizes are 100–4096 with overlap at most half the size. Each store holds at most 10000 attached files. Reattaching the same file returns its existing record without applying new attributes or chunking; inspect last_error after failure.";
8455
+ readonly description: "Attach an uploaded File for asynchronous ingestion, then poll this attachment until status is completed, failed or cancelled before searching. Each file accepts up to 52428800 bytes and 5000000 estimated tokens; chunk sizes use estimated tokens rather than a model tokenizer. Text, Markdown, CSV, JSON, HTML, PDF, DOCX, PPTX, XLSX and PNG/JPEG/GIF/WebP images can be extracted; audio and video uploads are not knowledge documents. Images may yield generated descriptions rather than verbatim OCR. auto chunking resolves to static 800/400; explicit sizes are 100–4096 with overlap at most half the size. Each store holds at most 10000 attached files. Reattaching the same file returns its existing record without applying new attributes or chunking; inspect last_error after failure.";
7278
8456
  readonly http: "POST";
7279
8457
  readonly path: "/knowledge/v1/vector_stores/{vector_store_id}/files";
7280
8458
  readonly streaming: "no";
@@ -7790,7 +8968,7 @@ export declare const operations: readonly [{
7790
8968
  readonly name: "overwrite";
7791
8969
  readonly type: "boolean";
7792
8970
  readonly required: false;
7793
- readonly description: "Allow replacing an existing public_id, preserving its asset_id and increasing its version. False returns the existing resource without replacing it; defaults to true.";
8971
+ readonly description: "Allow replacing an existing public_id, preserving its asset_id and increasing its version. Only the latest version is deliverable; old version URLs return 404. Create a new public_id to retain old deliveries. False returns the existing resource without replacing it; defaults to true.";
7794
8972
  }, {
7795
8973
  readonly name: "tags";
7796
8974
  readonly type: "object";
@@ -7812,6 +8990,12 @@ export declare const operations: readonly [{
7812
8990
  readonly enum: readonly ["image", "video", "raw", "auto"];
7813
8991
  readonly required: false;
7814
8992
  readonly description: "Upload category: image for images, video for video or audio, raw for unprocessed files, or auto to detect the category. Defaults to auto.";
8993
+ }, {
8994
+ readonly name: "type";
8995
+ readonly type: "string";
8996
+ readonly enum: readonly ["upload", "authenticated"];
8997
+ readonly required: false;
8998
+ readonly description: "Asset delivery mode: upload is public; authenticated requires a signed URL or delivery token for originals and derivatives. private is unsupported.";
7815
8999
  }];
7816
9000
  };
7817
9001
  }, {
@@ -7835,6 +9019,7 @@ export declare const operations: readonly [{
7835
9019
  readonly name: "file_id";
7836
9020
  readonly type: "string";
7837
9021
  readonly required: true;
9022
+ readonly description: "File ID to copy into this library instead of file bytes. This independent copy defaults to public delivery; set type=authenticated for private delivery. Deleting the source File does not delete this asset.";
7838
9023
  }, {
7839
9024
  readonly name: "public_id";
7840
9025
  readonly type: "string";
@@ -7879,7 +9064,7 @@ export declare const operations: readonly [{
7879
9064
  readonly name: "overwrite";
7880
9065
  readonly type: "boolean";
7881
9066
  readonly required: false;
7882
- readonly description: "Allow replacing an existing public_id, preserving its asset_id and increasing its version. False returns the existing resource without replacing it; defaults to true.";
9067
+ readonly description: "Allow replacing an existing public_id, preserving its asset_id and increasing its version. Only the latest version is deliverable; old version URLs return 404. Create a new public_id to retain old deliveries. False returns the existing resource without replacing it; defaults to true.";
7883
9068
  }, {
7884
9069
  readonly name: "tags";
7885
9070
  readonly type: "object";
@@ -7901,6 +9086,12 @@ export declare const operations: readonly [{
7901
9086
  readonly enum: readonly ["image", "video", "raw", "auto"];
7902
9087
  readonly required: false;
7903
9088
  readonly description: "Upload category: image for images, video for video or audio, raw for unprocessed files, or auto to detect the category. Defaults to auto.";
9089
+ }, {
9090
+ readonly name: "type";
9091
+ readonly type: "string";
9092
+ readonly enum: readonly ["upload", "authenticated"];
9093
+ readonly required: false;
9094
+ readonly description: "Asset delivery mode: upload is public; authenticated requires a signed URL or delivery token for originals and derivatives. private is unsupported.";
7904
9095
  }];
7905
9096
  };
7906
9097
  }, {
@@ -8122,6 +9313,35 @@ export declare const operations: readonly [{
8122
9313
  readonly description: "Batch identifier returned by createBatch or batchAssets; resolved within this library.";
8123
9314
  }];
8124
9315
  readonly query: readonly [];
9316
+ }, {
9317
+ readonly resource: "media.libraries.deliveryTokens";
9318
+ readonly method: "create";
9319
+ readonly summary: "Create delivery token";
9320
+ readonly description: "Issue a time-limited bearer token for originals and transformed authenticated assets in an active library. Use library_id from library creation or listing; read access is sufficient. Append token as the __cld_token__ query parameter on a matching delivery URL. The default ACL covers this library and the default lifetime is 3600 seconds; narrow acl and expires_in before sharing. Anyone holding the token can read matching paths until expires_at.";
9321
+ readonly http: "POST";
9322
+ readonly path: "/media/v1/libraries/{library_id}/delivery_tokens";
9323
+ readonly streaming: "no";
9324
+ readonly pagination: false;
9325
+ readonly pathParams: readonly [{
9326
+ readonly name: "library_id";
9327
+ readonly sdkName: "library_id";
9328
+ readonly description: "Library ID returned by creation.";
9329
+ }];
9330
+ readonly query: readonly [];
9331
+ readonly body: {
9332
+ readonly required: true;
9333
+ readonly fields: readonly [{
9334
+ readonly name: "acl";
9335
+ readonly type: "string";
9336
+ readonly required: false;
9337
+ readonly description: "Delivery path glob restricted to the library path prefix (a slash, library_id, then a slash). Defaults to that prefix followed by *; * matches any path text. Tildes and control characters are rejected.";
9338
+ }, {
9339
+ readonly name: "expires_in";
9340
+ readonly type: "integer";
9341
+ readonly required: false;
9342
+ readonly description: "Token lifetime in seconds, from 1 to 604800 inclusive; defaults to 3600.";
9343
+ }];
9344
+ };
8125
9345
  }, {
8126
9346
  readonly resource: "media.libraries.events";
8127
9347
  readonly method: "list";
@@ -8288,7 +9508,7 @@ export declare const operations: readonly [{
8288
9508
  readonly name: "expression";
8289
9509
  readonly type: "string";
8290
9510
  readonly required: false;
8291
- readonly description: "Asset filter expression supporting field comparisons, AND, OR, NOT, parentheses and suffix wildcards. An empty expression matches all assets.";
9511
+ readonly description: "Asset filter expression supporting field comparisons, AND, OR, NOT, parentheses and suffix wildcards. An empty expression matches all assets. For business metadata use context.sku=KETTLE-RED AND context.revision=2; request with_field: [\"context\"] to include context.";
8292
9512
  }, {
8293
9513
  readonly name: "sort_by";
8294
9514
  readonly type: "array";
@@ -8400,6 +9620,54 @@ export declare const operations: readonly [{
8400
9620
  readonly description: "Expression filter restricting eligible result assets.";
8401
9621
  }];
8402
9622
  };
9623
+ }, {
9624
+ readonly resource: "meta.docs";
9625
+ readonly method: "search";
9626
+ readonly summary: "Search platform documentation";
9627
+ readonly description: "Find guides and references by keyword before reading them with praxis.meta.docs.retrieve. Public; no API key required. Matches documentation titles, headings and page text without case sensitivity; all query words must occur. q is required; limit defaults to 20 and accepts 1–50. lang defaults to zh or use en for English. Returns paths, page titles, canonical URLs and short matching snippets; no matches returns an empty array.";
9628
+ readonly http: "GET";
9629
+ readonly path: "/meta/v1/docs/search";
9630
+ readonly streaming: "no";
9631
+ readonly pagination: false;
9632
+ readonly pathParams: readonly [];
9633
+ readonly query: readonly [{
9634
+ readonly name: "q";
9635
+ readonly type: "string";
9636
+ readonly required: true;
9637
+ readonly description: "Keywords describing the syntax or guide needed, for example export or workflow.";
9638
+ }, {
9639
+ readonly name: "limit";
9640
+ readonly type: "integer";
9641
+ readonly required: false;
9642
+ readonly description: "Maximum number of matching pages returned; integer 1–50, default 20.";
9643
+ }, {
9644
+ readonly name: "lang";
9645
+ readonly type: "string";
9646
+ readonly enum: readonly ["zh", "en"];
9647
+ readonly required: false;
9648
+ readonly description: "Documentation language: zh for Chinese (default), en for English.";
9649
+ }];
9650
+ }, {
9651
+ readonly resource: "meta.docs";
9652
+ readonly method: "retrieve";
9653
+ readonly summary: "Read documentation Markdown";
9654
+ readonly description: "Read a platform guide or reference before implementing an unfamiliar capability. Public; no API key required. Take path from praxis.meta.docs.search, or use developers/automation/guides/write-workflow. Append #heading-id to path to read only that section, including its subsections. Encode the hash as %23 over HTTP; SDK callers pass it in the path string. lang defaults to zh; en selects the English page. Unknown pages or anchors return DOC_NOT_FOUND; search again for a valid path.";
9655
+ readonly http: "GET";
9656
+ readonly path: "/meta/v1/docs/{path}";
9657
+ readonly streaming: "no";
9658
+ readonly pagination: false;
9659
+ readonly pathParams: readonly [{
9660
+ readonly name: "path";
9661
+ readonly sdkName: "path";
9662
+ readonly description: "Slash-separated documentation path from docs.search; optionally append #heading-id to select a section.";
9663
+ }];
9664
+ readonly query: readonly [{
9665
+ readonly name: "lang";
9666
+ readonly type: "string";
9667
+ readonly enum: readonly ["zh", "en"];
9668
+ readonly required: false;
9669
+ readonly description: "Documentation language: zh for Chinese (default), en for English.";
9670
+ }];
8403
9671
  }, {
8404
9672
  readonly resource: "meta.health";
8405
9673
  readonly method: "retrieve";
@@ -9479,7 +10747,7 @@ export declare const operations: readonly [{
9479
10747
  readonly name: "supported_api";
9480
10748
  readonly type: "array";
9481
10749
  readonly itemType: "string";
9482
- readonly enum: readonly ["anthropic.messages", "cohere.rerank", "google.generateContent", "mistral.ocr", "openai.audio.speech", "openai.audio.transcriptions", "openai.chat.completions", "openai.embeddings", "openai.images.edits", "openai.images.generations", "openai.responses", "openai.videos"];
10750
+ readonly enum: readonly ["anthropic.messages", "cohere.rerank", "google.generateContent", "mistral.ocr", "openai.audio.speech", "openai.audio.transcriptions", "openai.chat.completions", "openai.embeddings", "openai.images.edits", "openai.images.generations", "openai.responses", "openai.videos", "typesafe.systemone"];
9483
10751
  readonly required: false;
9484
10752
  readonly description: "Match any comma-separated declared protocol ID; omitted or empty includes all models. Combined with type and output_modalities using AND. Invalid IDs return 400 with all legal values.";
9485
10753
  }, {
@@ -9937,6 +11205,41 @@ export declare const operations: readonly [{
9937
11205
  readonly description: "Id of the stored response, the `id` returned by createResponse (it looks like resp_...). An unknown id, a response created with store false, an expired response and another tenant's response all answer 404.";
9938
11206
  }];
9939
11207
  readonly query: readonly [];
11208
+ }, {
11209
+ readonly resource: "model.systemone";
11210
+ readonly method: "create";
11211
+ readonly summary: "Ask structured decision questions";
11212
+ readonly description: "Ask typed questions about a state and get calibrated probabilities instead of generated text. Same request and response as TypeSafe System One. Use model ids from model.models.list declaring typesafe.systemone. Send one or more noul, choice or score questions; answers use the same question ids. Input tokens are charged at the catalog input price; output tokens are free. usage.cost and X-Praxis-Cost-Usd expose the same customer charge in USD. box questions and assets are unsupported and return 400: images are not supported. Unknown top-level fields pass unchanged to the native upstream.";
11213
+ readonly http: "POST";
11214
+ readonly path: "/model/v1/systemone";
11215
+ readonly streaming: "no";
11216
+ readonly pagination: false;
11217
+ readonly pathParams: readonly [];
11218
+ readonly query: readonly [];
11219
+ readonly body: {
11220
+ readonly required: true;
11221
+ readonly fields: readonly [{
11222
+ readonly name: "model";
11223
+ readonly type: "string";
11224
+ readonly required: true;
11225
+ readonly description: "Published model id from model.models.list with supported_apis containing typesafe.systemone; returned unchanged in the response.";
11226
+ }, {
11227
+ readonly name: "state";
11228
+ readonly type: "object";
11229
+ readonly required: true;
11230
+ readonly description: "Shared content evaluated by every question, supplied as text, a JSON object or an array.";
11231
+ }, {
11232
+ readonly name: "questions";
11233
+ readonly type: "object";
11234
+ readonly required: true;
11235
+ readonly description: "Non-empty map of caller-chosen question ids to typed questions; answers preserve these ids. noul evaluates yes/no, choice selects a named option, score rates ordered levels. box is unsupported.";
11236
+ }, {
11237
+ readonly name: "assets";
11238
+ readonly type: "object";
11239
+ readonly required: false;
11240
+ readonly description: "Unsupported image assets. Supplying this field, including null or an empty collection, returns 400: images are not supported.";
11241
+ }];
11242
+ };
9940
11243
  }, {
9941
11244
  readonly resource: "model.videos";
9942
11245
  readonly method: "list";
@@ -10982,7 +12285,7 @@ export declare const operations: readonly [{
10982
12285
  readonly resource: "sandbox.sandboxes.commands";
10983
12286
  readonly method: "run";
10984
12287
  readonly summary: "Run a command in the sandbox";
10985
- readonly description: "Execute a shell command and wait for stdout, stderr and exitCode. Supply cmd, optional cwd and envs, and timeoutMs (1–60000 milliseconds, default 60000). Unlike E2B, this endpoint is synchronous only: no background mode, callbacks or unlimited timeout; output is bounded to 1 MiB including stream framing. Nonzero exit codes return 200 with the result. A timeout returns COMMAND_TIMEOUT (504); transport timeout does not confirm process termination, so do not blindly retry commands with side effects. Example body: {\"cmd\":\"echo hi\"}.";
12288
+ readonly description: "Execute a shell command and wait for stdout, stderr and exitCode. Supply cmd, optional cwd and envs, and timeoutMs (1–3600000 milliseconds, default 600000, that is 10 minutes; E2B defaults to 60000). Unlike E2B, this endpoint is synchronous only: no background mode, callbacks or unlimited timeout (timeoutMs 0); output is bounded to 1 MiB including stream framing. Nonzero exit codes return 200 with the result. A timeout returns COMMAND_TIMEOUT (504); transport timeout does not confirm process termination, so do not blindly retry commands with side effects. Example body: {\"cmd\":\"echo hi\"}.";
10986
12289
  readonly http: "POST";
10987
12290
  readonly path: "/sandbox/v1/sandboxes/{sandbox_id}/commands";
10988
12291
  readonly streaming: "no";
@@ -11000,6 +12303,11 @@ export declare const operations: readonly [{
11000
12303
  readonly type: "string";
11001
12304
  readonly required: true;
11002
12305
  readonly description: "Shell command to execute, for example echo hi.";
12306
+ }, {
12307
+ readonly name: "background";
12308
+ readonly type: "boolean";
12309
+ readonly required: false;
12310
+ readonly description: "When true, return 202 with the pid as soon as the process starts; it keeps running after the request ends. Read its status and output with GET /sandbox/v1/sandboxes/{sandbox_id}/commands/{pid}, stop it with DELETE. Same idea as E2B background commands.";
11003
12311
  }, {
11004
12312
  readonly name: "cwd";
11005
12313
  readonly type: "string";
@@ -11014,7 +12322,7 @@ export declare const operations: readonly [{
11014
12322
  readonly name: "timeoutMs";
11015
12323
  readonly type: "integer";
11016
12324
  readonly required: false;
11017
- readonly description: "Execution timeout in milliseconds, from 1 to 60000; defaults to 60000.";
12325
+ readonly description: "Execution timeout in milliseconds, from 1 to 3600000 (1 hour); defaults to 600000 (10 minutes). In background mode this limits process runtime; expiry records exit code 124.";
11018
12326
  }];
11019
12327
  };
11020
12328
  }, {
@@ -11176,7 +12484,7 @@ export declare const operations: readonly [{
11176
12484
  readonly resource: "sandbox.templates";
11177
12485
  readonly method: "list";
11178
12486
  readonly summary: "List templates (v2)";
11179
- readonly description: "List the templates you can create sandboxes from. Use it to pick the template id or alias for createSandbox. `base` is the default template that createSandbox uses when templateID is omitted. limit is 1 to 100 (default 100); send the cursor from the response back as nextToken to continue.";
12487
+ readonly description: "List official templates and all your custom templates, including waiting, building, ready and error builds. Custom templates appear first; each custom row describes its latest build, not necessarily the current ready build. Use templateID for build management and a ready template name when creating a sandbox. Own-face official distinguishes public catalog entries; sourceKind is omitted until a source is submitted and on official templates. Other organizations' templates are invisible.";
11180
12488
  readonly http: "GET";
11181
12489
  readonly path: "/sandbox/v1/templates";
11182
12490
  readonly streaming: "no";
@@ -11186,8 +12494,171 @@ export declare const operations: readonly [{
11186
12494
  readonly name: "teamID";
11187
12495
  readonly type: "string";
11188
12496
  readonly required: false;
11189
- readonly description: "Id of the team whose templates to list. Omit it to list the templates of your own team; a team you do not belong to answers 403.";
12497
+ readonly description: "Upstream team selector; Praxis always lists the authenticated organization's templates.";
12498
+ }, {
12499
+ readonly name: "nextToken";
12500
+ readonly type: "string";
12501
+ readonly required: false;
12502
+ readonly description: "Cursor to start the list from";
11190
12503
  }, {
12504
+ readonly name: "limit";
12505
+ readonly type: "integer";
12506
+ readonly required: false;
12507
+ readonly description: "Maximum number of items to return per page";
12508
+ }];
12509
+ }, {
12510
+ readonly resource: "sandbox.templates";
12511
+ readonly method: "create";
12512
+ readonly summary: "Create template (v3)";
12513
+ readonly description: "Reserve a waiting build before submitting its source. Reusing a name in your organization allocates a new build on the same template. Returns templateID and buildID; start it with templates.builds.update, then poll templates.builds.status.list. A name:tag suffix and tags are assigned after successful publication. Example: {\"name\":\"my-template\",\"cpuCount\":2,\"memoryMB\":2048}. The own face also accepts diskGb, a positive integer defaulting to 10 GiB.";
12514
+ readonly http: "POST";
12515
+ readonly path: "/sandbox/v1/templates";
12516
+ readonly streaming: "no";
12517
+ readonly pagination: false;
12518
+ readonly pathParams: readonly [];
12519
+ readonly query: readonly [];
12520
+ readonly body: {
12521
+ readonly required: true;
12522
+ readonly fields: readonly [{
12523
+ readonly name: "name";
12524
+ readonly type: "string";
12525
+ readonly required: false;
12526
+ readonly description: "Name of the template. Can include a tag with colon separator (e.g. \"my-template\" or \"my-template:v1\"). If tag is included, it will be treated as if the tag was provided in the tags array.";
12527
+ }, {
12528
+ readonly name: "tags";
12529
+ readonly type: "array";
12530
+ readonly itemType: "string";
12531
+ readonly required: false;
12532
+ readonly description: "Tags to assign to the template build";
12533
+ }, {
12534
+ readonly name: "alias";
12535
+ readonly type: "string";
12536
+ readonly required: false;
12537
+ readonly description: "Alias of the template. Deprecated, use name instead.";
12538
+ }, {
12539
+ readonly name: "teamID";
12540
+ readonly type: "string";
12541
+ readonly required: false;
12542
+ readonly description: "Identifier of the team";
12543
+ }, {
12544
+ readonly name: "cpuCount";
12545
+ readonly type: "integer";
12546
+ readonly required: false;
12547
+ readonly description: "Requested virtual CPU count; a positive integer, default 2 for template builds.";
12548
+ }, {
12549
+ readonly name: "memoryMB";
12550
+ readonly type: "integer";
12551
+ readonly required: false;
12552
+ readonly description: "Requested build memory in MiB; a positive integer, default 1024.";
12553
+ }, {
12554
+ readonly name: "minFreeDiskMb";
12555
+ readonly type: "integer";
12556
+ readonly required: false;
12557
+ readonly description: "Upstream minimum free disk request in MiB; use the native diskGb field to set the build disk size.";
12558
+ }, {
12559
+ readonly name: "diskGb";
12560
+ readonly type: "integer";
12561
+ readonly required: false;
12562
+ readonly description: "Build disk size in GiB, a positive safe integer. Defaults to 10; available only on the own face.";
12563
+ }];
12564
+ };
12565
+ }, {
12566
+ readonly resource: "sandbox.templates.aliases";
12567
+ readonly method: "retrieve";
12568
+ readonly summary: "Check template alias";
12569
+ readonly description: "Resolve a name within your organization to its templateID before reading or managing builds. Use the bare template name, without a :tag suffix. Unknown and other-organization names return 404. The response public field is false for your private templates.";
12570
+ readonly http: "GET";
12571
+ readonly path: "/sandbox/v1/templates/aliases/{alias}";
12572
+ readonly streaming: "no";
12573
+ readonly pagination: false;
12574
+ readonly pathParams: readonly [{
12575
+ readonly name: "alias";
12576
+ readonly sdkName: "alias";
12577
+ readonly description: "Bare template name belonging to your organization, without a tag or provider namespace.";
12578
+ }];
12579
+ readonly query: readonly [];
12580
+ }, {
12581
+ readonly resource: "sandbox.templates.tags";
12582
+ readonly method: "delete";
12583
+ readonly summary: "Delete template tags";
12584
+ readonly description: "Remove the specified tag labels from your template by name, for example {\"name\":\"my-template\",\"tags\":[\"stable\"]}. Builds remain available. Removing default means untagged sandbox creation no longer resolves this template. Unknown or other-organization names return 404. b<number> names are reserved read-only build aliases and cannot be assigned or deleted as tags.";
12585
+ readonly http: "DELETE";
12586
+ readonly path: "/sandbox/v1/templates/tags";
12587
+ readonly streaming: "no";
12588
+ readonly pagination: false;
12589
+ readonly pathParams: readonly [];
12590
+ readonly query: readonly [];
12591
+ readonly body: {
12592
+ readonly required: true;
12593
+ readonly fields: readonly [{
12594
+ readonly name: "name";
12595
+ readonly type: "string";
12596
+ readonly required: true;
12597
+ readonly description: "Name of the template";
12598
+ }, {
12599
+ readonly name: "tags";
12600
+ readonly type: "array";
12601
+ readonly itemType: "string";
12602
+ readonly required: true;
12603
+ readonly description: "Tags to delete";
12604
+ }];
12605
+ };
12606
+ }, {
12607
+ readonly resource: "sandbox.templates.tags";
12608
+ readonly method: "create";
12609
+ readonly summary: "Assign template tags";
12610
+ readonly description: "Assign tags to the ready build selected by target in name:tag format, for example {\"target\":\"my-template:default\",\"tags\":[\"stable\"]}. Names belong to your organization. Tags move an existing label to this build without rebuilding. Obtain available names from templates.list and tags from templates.tags.list. b<number> names are reserved read-only build aliases and cannot be assigned or deleted as tags. target also accepts name:b<number> to select a ready build by number, for example my-template:b1.";
12611
+ readonly http: "POST";
12612
+ readonly path: "/sandbox/v1/templates/tags";
12613
+ readonly streaming: "no";
12614
+ readonly pagination: false;
12615
+ readonly pathParams: readonly [];
12616
+ readonly query: readonly [];
12617
+ readonly body: {
12618
+ readonly required: true;
12619
+ readonly fields: readonly [{
12620
+ readonly name: "target";
12621
+ readonly type: "string";
12622
+ readonly required: true;
12623
+ readonly description: "Target template in \"name:tag\" format";
12624
+ }, {
12625
+ readonly name: "tags";
12626
+ readonly type: "array";
12627
+ readonly itemType: "string";
12628
+ readonly required: true;
12629
+ readonly description: "Tags to assign to the template";
12630
+ }];
12631
+ };
12632
+ }, {
12633
+ readonly resource: "sandbox.templates";
12634
+ readonly method: "delete";
12635
+ readonly summary: "Delete template";
12636
+ readonly description: "Permanently remove your template, its builds and tag assignments using templateID from templates.create. Active instances prevent deletion with 409; terminate them first. Unknown or other-organization IDs return 404. Snapshot IDs use snapshots.delete instead.";
12637
+ readonly http: "DELETE";
12638
+ readonly path: "/sandbox/v1/templates/{templateID}";
12639
+ readonly streaming: "no";
12640
+ readonly pagination: false;
12641
+ readonly pathParams: readonly [{
12642
+ readonly name: "templateID";
12643
+ readonly sdkName: "templateID";
12644
+ readonly description: "Template identifier from templates.create or templates.list. Use your organization's templateID, not a provider handle.";
12645
+ }];
12646
+ readonly query: readonly [];
12647
+ }, {
12648
+ readonly resource: "sandbox.templates";
12649
+ readonly method: "retrieve";
12650
+ readonly summary: "List template builds";
12651
+ readonly description: "Inspect your template and its newest builds using templateID from templates.create. Build states are waiting, building, ready or error. Use limit and the returned x-next-token header to page builds. Unknown or other-organization templates return 404.";
12652
+ readonly http: "GET";
12653
+ readonly path: "/sandbox/v1/templates/{templateID}";
12654
+ readonly streaming: "no";
12655
+ readonly pagination: false;
12656
+ readonly pathParams: readonly [{
12657
+ readonly name: "templateID";
12658
+ readonly sdkName: "templateID";
12659
+ readonly description: "Template identifier from templates.create or templates.list. Use your organization's templateID, not a provider handle.";
12660
+ }];
12661
+ readonly query: readonly [{
11191
12662
  readonly name: "nextToken";
11192
12663
  readonly type: "string";
11193
12664
  readonly required: false;
@@ -11198,6 +12669,120 @@ export declare const operations: readonly [{
11198
12669
  readonly required: false;
11199
12670
  readonly description: "Maximum number of items to return per page";
11200
12671
  }];
12672
+ }, {
12673
+ readonly resource: "sandbox.templates.builds";
12674
+ readonly method: "update";
12675
+ readonly summary: "Start template build (v2)";
12676
+ readonly description: "Submit source for a waiting build returned by templates.create; returns 202 after queueing, not after successful publication. Unlike E2B, COPY is rejected (use RUN curl or git clone), fromTemplate accepts official catalog names only, and plaintext registry credentials are rejected. The own face also accepts dockerfile, mutually exclusive with fromImage/fromTemplate/steps, and fromImageRegistry vault references for nonofficial images. Poll templates.builds.status.list until ready or error. Example: {\"fromImage\":\"node:22\",\"steps\":[{\"type\":\"RUN\",\"args\":[\"echo hello\"]}]}.";
12677
+ readonly http: "POST";
12678
+ readonly path: "/sandbox/v1/templates/{templateID}/builds/{buildID}";
12679
+ readonly streaming: "no";
12680
+ readonly pagination: false;
12681
+ readonly pathParams: readonly [{
12682
+ readonly name: "templateID";
12683
+ readonly sdkName: "templateID";
12684
+ readonly description: "Template identifier from templates.create or templates.list. Use your organization's templateID, not a provider handle.";
12685
+ }, {
12686
+ readonly name: "buildID";
12687
+ readonly sdkName: "buildID";
12688
+ readonly description: "Build identifier returned by templates.create. It must belong to the selected template in your organization.";
12689
+ }];
12690
+ readonly query: readonly [];
12691
+ readonly body: {
12692
+ readonly required: true;
12693
+ readonly fields: readonly [{
12694
+ readonly name: "fromImage";
12695
+ readonly type: "string";
12696
+ readonly required: false;
12697
+ readonly description: "Image to use as a base for the template build";
12698
+ }, {
12699
+ readonly name: "fromTemplate";
12700
+ readonly type: "string";
12701
+ readonly required: false;
12702
+ readonly description: "Template to use as a base for the template build";
12703
+ }, {
12704
+ readonly name: "fromImageRegistry";
12705
+ readonly type: "object";
12706
+ readonly required: false;
12707
+ readonly description: "Registry authentication. Unlike E2B, only the vault reference variant is accepted; plaintext aws, gcp and registry variants return 400. Cannot be used with official templates.";
12708
+ }, {
12709
+ readonly name: "force";
12710
+ readonly type: "boolean";
12711
+ readonly required: false;
12712
+ readonly description: "Whether the whole build should be forced to run regardless of the cache";
12713
+ }, {
12714
+ readonly name: "steps";
12715
+ readonly type: "array";
12716
+ readonly itemType: "object";
12717
+ readonly required: false;
12718
+ readonly description: "List of steps to execute in the template build";
12719
+ }, {
12720
+ readonly name: "startCmd";
12721
+ readonly type: "string";
12722
+ readonly required: false;
12723
+ readonly description: "Start command to execute in the template after the build";
12724
+ }, {
12725
+ readonly name: "readyCmd";
12726
+ readonly type: "string";
12727
+ readonly required: false;
12728
+ readonly description: "Ready check command to execute in the template after the build";
12729
+ }, {
12730
+ readonly name: "dockerfile";
12731
+ readonly type: "string";
12732
+ readonly required: false;
12733
+ readonly description: "Dockerfile text, at most 64 KiB UTF-8. Mutually exclusive with fromImage, fromTemplate and steps. COPY/ADD are rejected; fetch remote content using RUN. Registry credentials require a nonofficial image in the first FROM.";
12734
+ }];
12735
+ };
12736
+ }, {
12737
+ readonly resource: "sandbox.templates.builds.status";
12738
+ readonly method: "list";
12739
+ readonly summary: "Template build status";
12740
+ readonly description: "Poll a build using templateID and buildID from templates.create. waiting means source has not been submitted; building includes queued work; ready permits sandbox creation; error is terminal, with reason when available. logsOffset counts previously read log entries, starting at zero; add logEntries.length after each response. limit is 0–100, default 100. level selects one log level; offsets then count entries at that level. Drain logs until an empty page, including after a terminal status.";
12741
+ readonly http: "GET";
12742
+ readonly path: "/sandbox/v1/templates/{templateID}/builds/{buildID}/status";
12743
+ readonly streaming: "no";
12744
+ readonly pagination: false;
12745
+ readonly pathParams: readonly [{
12746
+ readonly name: "templateID";
12747
+ readonly sdkName: "templateID";
12748
+ readonly description: "Template identifier from templates.create or templates.list. Use your organization's templateID, not a provider handle.";
12749
+ }, {
12750
+ readonly name: "buildID";
12751
+ readonly sdkName: "buildID";
12752
+ readonly description: "Build identifier returned by templates.create. It must belong to the selected template in your organization.";
12753
+ }];
12754
+ readonly query: readonly [{
12755
+ readonly name: "logsOffset";
12756
+ readonly type: "integer";
12757
+ readonly required: false;
12758
+ readonly description: "Index of the starting build log that should be returned with the template";
12759
+ }, {
12760
+ readonly name: "limit";
12761
+ readonly type: "integer";
12762
+ readonly required: false;
12763
+ readonly description: "Maximum number of logs that should be returned";
12764
+ }, {
12765
+ readonly name: "level";
12766
+ readonly type: "string";
12767
+ readonly enum: readonly ["debug", "info", "warn", "error"];
12768
+ readonly required: false;
12769
+ readonly description: "Select one exact log severity: debug for diagnostics, info for progress, warn for warnings, error for failures. Offsets count matching entries.";
12770
+ }];
12771
+ }, {
12772
+ readonly resource: "sandbox.templates.tags";
12773
+ readonly method: "list";
12774
+ readonly summary: "List template tags";
12775
+ readonly description: "Read the tag-to-build assignments for your template using templateID from templates.create. Only ready builds acquire tags. Use a returned tag with the template name as name:tag when creating a sandbox or assigning additional tags. Foreign IDs return 404.";
12776
+ readonly http: "GET";
12777
+ readonly path: "/sandbox/v1/templates/{templateID}/tags";
12778
+ readonly streaming: "no";
12779
+ readonly pagination: false;
12780
+ readonly pathParams: readonly [{
12781
+ readonly name: "templateID";
12782
+ readonly sdkName: "templateID";
12783
+ readonly description: "Template identifier from templates.create or templates.list. Use your organization's templateID, not a provider handle.";
12784
+ }];
12785
+ readonly query: readonly [];
11201
12786
  }, {
11202
12787
  readonly resource: "sandbox.volumes";
11203
12788
  readonly method: "list";
@@ -11992,7 +13577,7 @@ export declare const operations: readonly [{
11992
13577
  readonly resource: "ticket.milestones";
11993
13578
  readonly method: "create";
11994
13579
  readonly summary: "Create or add milestones";
11995
- readonly description: "Create or add milestones within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Organization owner or admin authority is required for this write; API keys without role information act as members.";
13580
+ readonly description: "Create or add milestones within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.";
11996
13581
  readonly http: "POST";
11997
13582
  readonly path: "/ticket/v1/milestones";
11998
13583
  readonly streaming: "no";
@@ -12033,7 +13618,7 @@ export declare const operations: readonly [{
12033
13618
  readonly resource: "ticket.milestones";
12034
13619
  readonly method: "delete";
12035
13620
  readonly summary: "Remove milestones";
12036
- readonly description: "Remove milestones within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Organization owner or admin authority is required for this write; API keys without role information act as members.";
13621
+ readonly description: "Remove milestones within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.";
12037
13622
  readonly http: "DELETE";
12038
13623
  readonly path: "/ticket/v1/milestones/{number}";
12039
13624
  readonly streaming: "no";
@@ -12075,7 +13660,7 @@ export declare const operations: readonly [{
12075
13660
  readonly resource: "ticket.milestones";
12076
13661
  readonly method: "update";
12077
13662
  readonly summary: "Update milestones";
12078
- readonly description: "Update milestones within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Organization owner or admin authority is required for this write; API keys without role information act as members.";
13663
+ readonly description: "Update milestones within the authenticated organization. Obtain resource identifiers from the corresponding list or create response. Writes complete synchronously; read the returned resource to observe the result. Service authorization applies to the verified human subject.";
12079
13664
  readonly http: "PATCH";
12080
13665
  readonly path: "/ticket/v1/milestones/{number}";
12081
13666
  readonly streaming: "no";
@@ -13220,7 +14805,7 @@ export declare const operations: readonly [{
13220
14805
  readonly resource: "vault.vaults.secrets";
13221
14806
  readonly method: "create";
13222
14807
  readonly summary: "Create secret";
13223
- readonly description: "Store a manually supplied token in an active vault for use on requests to its allowed_hosts. Unlike Anthropic credentials, this native operation takes name, value and allowed_hosts directly and creates only static secrets; use praxis.vault.authorizations.create for OAuth. Its name must be unused by any non-archived secret in that vault; the response contains metadata but never the supplied value. Application praxis_vault_ref bindings declare vault_id and secret (the secret name), but currently return 501; do not copy the value into a plain-text binding or metadata as a substitute.";
14808
+ readonly description: "Store a manually supplied token in an active vault. Omit allowed_hosts for name-based resolution only; host-based redemption never matches an empty host list. Unlike Anthropic credentials, this native operation takes name and value directly, with optional allowed_hosts and creates only static secrets; use praxis.vault.authorizations.create for OAuth. Its name must be unused by any non-archived secret in that vault; the response contains metadata but never the supplied value. Application praxis_vault_ref bindings declare vault_id and secret (the secret name), but currently return 501; do not copy the value into a plain-text binding or metadata as a substitute.";
13224
14809
  readonly http: "POST";
13225
14810
  readonly path: "/vault/v1/vaults/{vault_id}/secrets";
13226
14811
  readonly streaming: "no";
@@ -13247,8 +14832,8 @@ export declare const operations: readonly [{
13247
14832
  readonly name: "allowed_hosts";
13248
14833
  readonly type: "array";
13249
14834
  readonly itemType: "string";
13250
- readonly required: true;
13251
- readonly description: "Allowed destinations for the secret. Unlike Anthropic's unrestricted networking option, an explicit allowlist is required. Supply 1–16 bare domain names, dotted-decimal IPv4 addresses or leading *. domain wildcards. A wildcard matches subdomains, not the domain itself. URLs, ports, paths, IPv6, local/private and platform hosts are rejected. Entries are lowercased, one trailing dot is removed, internationalized domains use Punycode, and duplicates are removed.";
14835
+ readonly required: false;
14836
+ readonly description: "Allowed destinations for the secret. Omitting allowed_hosts on creation stores an empty list for name-based resolution only: host-based redemption never matches. When supplied, list 1–16 bare domain names, dotted-decimal IPv4 addresses or leading *. domain wildcards. A wildcard matches subdomains, not the domain itself. URLs, ports, paths, IPv6, local/private and platform hosts are rejected. Entries are lowercased, one trailing dot is removed, internationalized domains use Punycode, and duplicates are removed.";
13252
14837
  }, {
13253
14838
  readonly name: "description";
13254
14839
  readonly type: "string";
@@ -13264,7 +14849,7 @@ export declare const operations: readonly [{
13264
14849
  readonly type: "string";
13265
14850
  readonly enum: readonly ["github", "openai", "anthropic", "stripe"];
13266
14851
  readonly required: false;
13267
- readonly description: "Static template ID from List templates. Records metadata.template; name, value and allowed_hosts must still be supplied explicitly.";
14852
+ readonly description: "Static template ID from List templates. Records metadata.template; name and value must still be supplied explicitly; allowed_hosts is optional.";
13268
14853
  }, {
13269
14854
  readonly name: "kind";
13270
14855
  readonly type: "string";
@@ -13342,7 +14927,7 @@ export declare const operations: readonly [{
13342
14927
  readonly type: "array";
13343
14928
  readonly itemType: "string";
13344
14929
  readonly required: false;
13345
- readonly description: "Allowed destinations for the secret. Unlike Anthropic's unrestricted networking option, an explicit allowlist is required. Supply 1–16 bare domain names, dotted-decimal IPv4 addresses or leading *. domain wildcards. A wildcard matches subdomains, not the domain itself. URLs, ports, paths, IPv6, local/private and platform hosts are rejected. Entries are lowercased, one trailing dot is removed, internationalized domains use Punycode, and duplicates are removed.";
14930
+ readonly description: "Allowed destinations for the secret. Omitting allowed_hosts on creation stores an empty list for name-based resolution only: host-based redemption never matches. When supplied, list 1–16 bare domain names, dotted-decimal IPv4 addresses or leading *. domain wildcards. A wildcard matches subdomains, not the domain itself. URLs, ports, paths, IPv6, local/private and platform hosts are rejected. Entries are lowercased, one trailing dot is removed, internationalized domains use Punycode, and duplicates are removed.";
13346
14931
  }, {
13347
14932
  readonly name: "description";
13348
14933
  readonly type: "string";
@@ -13426,7 +15011,7 @@ export declare const operations: readonly [{
13426
15011
  readonly resource: "vault.vaults.secrets";
13427
15012
  readonly method: "import";
13428
15013
  readonly summary: "Import secrets";
13429
- readonly description: "Import lines or dotenv text into an active vault, reporting success or failure for each entry. Existing names have their values replaced; their hosts change only when that line supplies allowed_hosts. Shared hosts apply only to newly created secrets.";
15014
+ readonly description: "Import lines or dotenv text into an active vault, reporting success or failure for each entry. Existing names have their values replaced; their hosts change only when that line supplies allowed_hosts. Shared hosts apply only to newly created secrets; if neither shared nor per-line hosts are supplied, new secrets use an empty host list for name-based resolution only.";
13430
15015
  readonly http: "POST";
13431
15016
  readonly path: "/vault/v1/vaults/{vault_id}/secrets:import";
13432
15017
  readonly streaming: "no";