@deepraxis/sdk 0.1.0-dev.891e403 → 0.1.0-dev.8c50d77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/METHODS.md +20 -1
- package/dist/generated/index.d.ts +2 -2
- package/dist/generated/index.js +1 -1
- package/dist/generated/sdk.gen.d.ts +40 -8
- package/dist/generated/sdk.gen.js +86 -7
- package/dist/generated/types.gen.d.ts +478 -131
- package/dist/operations.generated.d.ts +126 -11
- package/dist/operations.generated.js +149 -11
- package/dist/resources.generated.d.ts +82 -15
- package/dist/resources.generated.js +14 -0
- package/package.json +1 -1
|
@@ -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. Unlike Anthropic Managed Agents, nonempty skills attachments return 400; the native skill tool is separate from the skills field. 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. 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. Unlike Anthropic Managed Agents, nonempty skills attachments return 400; the native skill tool is separate from the skills field. 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 trimmed and may not be blank or contain 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\"}]}.";
|
|
49
49
|
readonly http: "POST";
|
|
50
50
|
readonly path: "/agent/v1/agents";
|
|
51
51
|
readonly streaming: "no";
|
|
@@ -58,7 +58,7 @@ export declare const operations: readonly [{
|
|
|
58
58
|
readonly name: "model";
|
|
59
59
|
readonly type: "object";
|
|
60
60
|
readonly required: true;
|
|
61
|
-
readonly description: "
|
|
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.";
|
|
62
62
|
}, {
|
|
63
63
|
readonly name: "name";
|
|
64
64
|
readonly type: "string";
|
|
@@ -107,7 +107,7 @@ 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
|
|
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.";
|
|
111
111
|
}, {
|
|
112
112
|
readonly name: "kind";
|
|
113
113
|
readonly type: "string";
|
|
@@ -225,7 +225,7 @@ export declare const operations: readonly [{
|
|
|
225
225
|
readonly name: "model";
|
|
226
226
|
readonly type: "object";
|
|
227
227
|
readonly required: false;
|
|
228
|
-
readonly description: "
|
|
228
|
+
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.";
|
|
229
229
|
}, {
|
|
230
230
|
readonly name: "multiagent";
|
|
231
231
|
readonly type: "object";
|
|
@@ -273,7 +273,7 @@ export declare const operations: readonly [{
|
|
|
273
273
|
readonly type: "array";
|
|
274
274
|
readonly itemType: "object";
|
|
275
275
|
readonly required: false;
|
|
276
|
-
readonly description: "Replace the whole bindings list; omission preserves it, and null or [] clears it. Additions apply only to new sessions; disabling or
|
|
276
|
+
readonly description: "Replace the whole bindings list; omission preserves it, and null or [] clears it. Additions apply only to new sessions; once this version is applied, disabling, removing or downgrading a binding revokes it immediately in running sessions on older versions, while apply=false changes no access. Only service agents accept a nonempty list.";
|
|
277
277
|
}, {
|
|
278
278
|
readonly name: "kind";
|
|
279
279
|
readonly type: "string";
|
|
@@ -350,6 +350,121 @@ export declare const operations: readonly [{
|
|
|
350
350
|
readonly sdkName: "agent_id";
|
|
351
351
|
}];
|
|
352
352
|
readonly query: readonly [];
|
|
353
|
+
}, {
|
|
354
|
+
readonly resource: "agent.agents.customers.auth.accessTokens";
|
|
355
|
+
readonly method: "create";
|
|
356
|
+
readonly summary: "Create customer access token";
|
|
357
|
+
readonly description: "Exchange a grant code, or the agent's publishable key for an anonymous visitor, for a customer access token that authorizes the agent's embedded sessions.\n\nNo Authorization header is required: the grant code or the publishable key is the credential. Agent Kit calls this from the browser, so send the page Origin. With grant_code, the code is consumed atomically: concurrent attempts have exactly one winner, and unknown, used, expired and other-agent codes all return the same 401 GRANT_CODE_INVALID. The sign-in starts now and lasts the code's max_session_seconds. Unlike Shopify, a visitor without an account gets a token too: send publishable_key instead and a new anonymous customer (anon_…) is created, bound to the request Origin, for 7 days. The access token lasts at most two hours and never outlives the sign-in; renew it with access_tokens/renew before expires_at. Both forms share the per-IP minute limit of anonymous issuance (default 20). Example body: {\"grant_code\":\"cgc_…\"}.";
|
|
358
|
+
readonly http: "POST";
|
|
359
|
+
readonly path: "/agent/v1/agents/{agent_id}/customers/auth/access_tokens";
|
|
360
|
+
readonly streaming: "no";
|
|
361
|
+
readonly pagination: false;
|
|
362
|
+
readonly pathParams: readonly [{
|
|
363
|
+
readonly name: "agent_id";
|
|
364
|
+
readonly sdkName: "agent_id";
|
|
365
|
+
}];
|
|
366
|
+
readonly query: readonly [];
|
|
367
|
+
readonly body: {
|
|
368
|
+
readonly required: true;
|
|
369
|
+
readonly fields: readonly [];
|
|
370
|
+
};
|
|
371
|
+
}, {
|
|
372
|
+
readonly resource: "agent.agents.customers.auth.accessTokens";
|
|
373
|
+
readonly method: "deleteCurrent";
|
|
374
|
+
readonly summary: "Log out customer";
|
|
375
|
+
readonly description: "Log the customer out by revoking the sign-in of the presented access token and every token issued in it.\n\nSend the current customer access token as the Bearer credential, with no body, when the customer logs out of your site. Every token of the sign-in, including renewed ones, stops working, and their live event streams close; the customer's conversations are kept. Returns 204. Calling it again with the same token returns 401 ACCESS_TOKEN_REVOKED, so treat that as already logged out.";
|
|
376
|
+
readonly http: "DELETE";
|
|
377
|
+
readonly path: "/agent/v1/agents/{agent_id}/customers/auth/access_tokens/current";
|
|
378
|
+
readonly streaming: "no";
|
|
379
|
+
readonly pagination: false;
|
|
380
|
+
readonly pathParams: readonly [{
|
|
381
|
+
readonly name: "agent_id";
|
|
382
|
+
readonly sdkName: "agent_id";
|
|
383
|
+
}];
|
|
384
|
+
readonly query: readonly [];
|
|
385
|
+
}, {
|
|
386
|
+
readonly resource: "agent.agents.customers.auth.accessTokens.renew";
|
|
387
|
+
readonly method: "create";
|
|
388
|
+
readonly summary: "Renew customer access token";
|
|
389
|
+
readonly description: "Get a fresh customer access token in the same sign-in, authenticated with the current one.\n\nSend the current customer access token as the Bearer credential, with no body, a few minutes before expires_at. The new token keeps the version, budget, context, metadata and origin binding of the sign-in and lasts at most two hours, never past session_expires_at. Unlike Shopify, renewal does not revoke the presented token: it stays valid until its own expiry, so a reply that is streaming on it is not cut off. When less than 60 seconds of the sign-in remain, renewal returns 401 CUSTOMER_SESSION_EXPIRED; sign the customer in again with a new grant code from your backend. A token that was logged out or merged returns 401 ACCESS_TOKEN_REVOKED.";
|
|
390
|
+
readonly http: "POST";
|
|
391
|
+
readonly path: "/agent/v1/agents/{agent_id}/customers/auth/access_tokens/renew";
|
|
392
|
+
readonly streaming: "no";
|
|
393
|
+
readonly pagination: false;
|
|
394
|
+
readonly pathParams: readonly [{
|
|
395
|
+
readonly name: "agent_id";
|
|
396
|
+
readonly sdkName: "agent_id";
|
|
397
|
+
}];
|
|
398
|
+
readonly query: readonly [];
|
|
399
|
+
}, {
|
|
400
|
+
readonly resource: "agent.agents.customers.auth.grantCodes";
|
|
401
|
+
readonly method: "create";
|
|
402
|
+
readonly summary: "Create customer grant code";
|
|
403
|
+
readonly description: "Sign your logged-in customer in to a service agent from your backend with a one-time grant code that Agent Kit exchanges for a customer access token.\n\nCall this from your backend with your API key after your own login succeeds, then pass the returned code to Agent Kit in the browser; never call it from the browser. Customer authorization follows Shopify Storefront customer access tokens (Multipass-style sign-in, a short-lived token, renewal and logout), so that experience applies. customer_id is your own identifier for the customer: use an opaque id such as your database user id, not an email address or phone number. The value auth is reserved, and ids starting with anon_ are reserved for anonymous customers. The code works once and expires after expires_in seconds (default 900). The sign-in it starts lasts max_session_seconds (default 7 days); version, budget_cents, system_message, agent_override and metadata apply to every token of the sign-in. Unlike Shopify, origin binds the whole sign-in to one page origin, and anonymous_access_token merges the conversations of the anonymous visitor who chatted before signing in into this customer. Example body: {\"customer_id\":\"cus_8f2a91\",\"origin\":\"https://shop.example.com\"}.";
|
|
404
|
+
readonly http: "POST";
|
|
405
|
+
readonly path: "/agent/v1/agents/{agent_id}/customers/auth/grant_codes";
|
|
406
|
+
readonly streaming: "no";
|
|
407
|
+
readonly pagination: false;
|
|
408
|
+
readonly pathParams: readonly [{
|
|
409
|
+
readonly name: "agent_id";
|
|
410
|
+
readonly sdkName: "agent_id";
|
|
411
|
+
}];
|
|
412
|
+
readonly query: readonly [];
|
|
413
|
+
readonly body: {
|
|
414
|
+
readonly required: true;
|
|
415
|
+
readonly fields: readonly [{
|
|
416
|
+
readonly name: "customer_id";
|
|
417
|
+
readonly type: "string";
|
|
418
|
+
readonly required: true;
|
|
419
|
+
readonly description: "Your stable, opaque identifier for the signed-in customer, such as your database user id. Do not use an email address or phone number. \"auth\" is reserved, and ids starting with anon_ are reserved for anonymous customers.";
|
|
420
|
+
}, {
|
|
421
|
+
readonly name: "version";
|
|
422
|
+
readonly type: "integer";
|
|
423
|
+
readonly required: false;
|
|
424
|
+
readonly description: "Existing agent version that every token of this sign-in pins. Defaults to the agent's active_version when the code is issued.";
|
|
425
|
+
}, {
|
|
426
|
+
readonly name: "budget_cents";
|
|
427
|
+
readonly type: "integer";
|
|
428
|
+
readonly required: false;
|
|
429
|
+
readonly description: "Budget in cents for each session the customer starts. Defaults to the embed policy session budget and cannot exceed its maximum.";
|
|
430
|
+
}, {
|
|
431
|
+
readonly name: "system_message";
|
|
432
|
+
readonly type: "array";
|
|
433
|
+
readonly itemType: "object";
|
|
434
|
+
readonly required: false;
|
|
435
|
+
readonly description: "Optional context the agent receives at the start of each session, as text blocks, limited to 8192 UTF-8 bytes in total.";
|
|
436
|
+
}, {
|
|
437
|
+
readonly name: "agent_override";
|
|
438
|
+
readonly type: "object";
|
|
439
|
+
readonly required: false;
|
|
440
|
+
readonly description: "Optional system prompt override, accepted only when the embed policy allows agent overrides.";
|
|
441
|
+
}, {
|
|
442
|
+
readonly name: "metadata";
|
|
443
|
+
readonly type: "object";
|
|
444
|
+
readonly required: false;
|
|
445
|
+
readonly description: "Up to 16 string pairs copied onto every session the customer starts. The playground key is reserved.";
|
|
446
|
+
}, {
|
|
447
|
+
readonly name: "origin";
|
|
448
|
+
readonly type: "string";
|
|
449
|
+
readonly required: false;
|
|
450
|
+
readonly description: "Page origin, such as https://shop.example.com, that must be one of the agent policy's allowed_origins (or localhost when the policy allows it). When set, every token of this sign-in works only from exactly this origin. Omit to accept any policy origin.";
|
|
451
|
+
}, {
|
|
452
|
+
readonly name: "expires_in";
|
|
453
|
+
readonly type: "integer";
|
|
454
|
+
readonly required: false;
|
|
455
|
+
readonly description: "Seconds the code stays redeemable, from 60 to 86400. Defaults to 900.";
|
|
456
|
+
}, {
|
|
457
|
+
readonly name: "max_session_seconds";
|
|
458
|
+
readonly type: "integer";
|
|
459
|
+
readonly required: false;
|
|
460
|
+
readonly description: "Total lifetime of the sign-in in seconds, from 3600 to 604800 (7 days). Tokens renew within it; after it the customer signs in again. Defaults to 604800.";
|
|
461
|
+
}, {
|
|
462
|
+
readonly name: "anonymous_access_token";
|
|
463
|
+
readonly type: "string";
|
|
464
|
+
readonly required: false;
|
|
465
|
+
readonly description: "The current access token of the anonymous customer who used this agent before signing in. Their conversations become visible to the identified customer, and the anonymous sign-in ends at exchange.";
|
|
466
|
+
}];
|
|
467
|
+
};
|
|
353
468
|
}, {
|
|
354
469
|
readonly resource: "agent.agents.endUsers";
|
|
355
470
|
readonly method: "list";
|
|
@@ -1309,7 +1424,7 @@ export declare const operations: readonly [{
|
|
|
1309
1424
|
readonly resource: "agent.environments";
|
|
1310
1425
|
readonly method: "create";
|
|
1311
1426
|
readonly summary: "Create environment";
|
|
1312
|
-
readonly description: "Create a tenant-owned cloud environment: a sandbox recipe (packages to install and networking policy) that sessions can select through environment_id. Package installation happens when the session's sandbox is created; a failed install terminates that session with ENVIRONMENT_PACKAGE_INSTALL_FAILED. Limited networking is applied at sandbox creation. Unlike Anthropic Managed Agents, self_hosted environments, scope and cross-session package caching are not supported.";
|
|
1427
|
+
readonly description: "Create a tenant-owned cloud environment: a sandbox recipe (packages to install and networking policy) that sessions can select through environment_id. Package installation happens when the session's sandbox is created; a failed install terminates that session with ENVIRONMENT_PACKAGE_INSTALL_FAILED. Limited networking is applied at sandbox creation. Unlike Anthropic Managed Agents, self_hosted environments, scope and cross-session package caching are not supported. config.template must name an available sandbox template, otherwise 400 lists the available ones.";
|
|
1313
1428
|
readonly http: "POST";
|
|
1314
1429
|
readonly path: "/agent/v1/environments";
|
|
1315
1430
|
readonly streaming: "no";
|
|
@@ -1364,7 +1479,7 @@ export declare const operations: readonly [{
|
|
|
1364
1479
|
readonly resource: "agent.environments";
|
|
1365
1480
|
readonly method: "update";
|
|
1366
1481
|
readonly summary: "Update environment";
|
|
1367
|
-
readonly description: "Update the configuration of a tenant-owned cloud environment. Built-in environments are read-only. Package installation and limited networking are applied when a session's sandbox is created. Omitted fields keep their value.";
|
|
1482
|
+
readonly description: "Update the configuration of a tenant-owned cloud environment. Built-in environments are read-only. Package installation and limited networking are applied when a session's sandbox is created. Omitted fields keep their value. A changed config.template must name an available sandbox template, otherwise 400 lists the available ones.";
|
|
1368
1483
|
readonly http: "POST";
|
|
1369
1484
|
readonly path: "/agent/v1/environments/{environment_id}";
|
|
1370
1485
|
readonly streaming: "no";
|
|
@@ -1408,7 +1523,7 @@ export declare const operations: readonly [{
|
|
|
1408
1523
|
readonly resource: "agent.environments";
|
|
1409
1524
|
readonly method: "archive";
|
|
1410
1525
|
readonly summary: "Archive environment";
|
|
1411
|
-
readonly description: "Soft-archive a tenant-owned cloud environment so it can no longer be used to create new sessions. Built-in environments are read-only and cannot be archived.";
|
|
1526
|
+
readonly description: "Soft-archive a tenant-owned cloud environment so it can no longer be used to create new sessions. Built-in environments are read-only and cannot be archived. An environment that the active version of a non-archived agent uses as environment_id returns 409 RESOURCE_IN_USE naming the agents; point them at another environment first.";
|
|
1412
1527
|
readonly http: "POST";
|
|
1413
1528
|
readonly path: "/agent/v1/environments/{environment_id}/archive";
|
|
1414
1529
|
readonly streaming: "no";
|
|
@@ -2254,7 +2369,7 @@ export declare const operations: readonly [{
|
|
|
2254
2369
|
readonly resource: "agent.skills";
|
|
2255
2370
|
readonly method: "create";
|
|
2256
2371
|
readonly summary: "Create skill";
|
|
2257
|
-
readonly description: "Upload a skill: a directory that contains SKILL.md, which the agent reads when it needs the skill. Send multipart/form-data with one files part per file, each file name being its path under one top-level directory (pdf/SKILL.md, pdf/scripts/run.py), and an optional display_name. SKILL.md frontmatter needs a description; name defaults to the directory name. Limits: 8 MB in total, at most 200 files, no .. segments, absolute paths or empty names; a violation returns 400 naming the path or field. The upload creates the skill and its first version, and versions are immutable. Attach the skill to an agent with `skills` on the agent.";
|
|
2372
|
+
readonly description: "Upload a skill: a directory that contains SKILL.md, which the agent reads when it needs the skill. Send multipart/form-data with one files part per file, each file name being its path under one top-level directory (pdf/SKILL.md, pdf/scripts/run.py), and an optional display_name. SKILL.md frontmatter needs a description; name defaults to the directory name and must be one folder name (1-255 characters, no \"/\", backslash or NUL, not \".\" or \"..\"), otherwise the upload returns 400 stating the allowed form. Limits: 8 MB in total, at most 200 files, no .. segments, absolute paths or empty names; a violation returns 400 naming the path or field. The upload creates the skill and its first version, and versions are immutable. Attach the skill to an agent with `skills` on the agent.";
|
|
2258
2373
|
readonly http: "POST";
|
|
2259
2374
|
readonly path: "/agent/v1/skills";
|
|
2260
2375
|
readonly streaming: "no";
|
|
@@ -2281,7 +2396,7 @@ export declare const operations: readonly [{
|
|
|
2281
2396
|
readonly resource: "agent.skills";
|
|
2282
2397
|
readonly method: "delete";
|
|
2283
2398
|
readonly summary: "Delete skill";
|
|
2284
|
-
readonly description: "Delete a skill that has no live versions. A skill that still has versions returns 409 Delete all versions first; remove each with skills.versions.delete, then call this. Returns {id, type: skill_deleted}. skill_id comes from skills.create or skills.list.";
|
|
2399
|
+
readonly description: "Delete a skill that has no live versions. A skill that is still attached to an agent returns 409 RESOURCE_IN_USE naming up to 10 agent ids (the active or latest version of a non-archived agent counts); remove it from those agents first. A skill that still has versions returns 409 Delete all versions first; remove each with skills.versions.delete, then call this. Returns {id, type: skill_deleted}. skill_id comes from skills.create or skills.list.";
|
|
2285
2400
|
readonly http: "DELETE";
|
|
2286
2401
|
readonly path: "/agent/v1/skills/{skill_id}";
|
|
2287
2402
|
readonly streaming: "no";
|
|
@@ -2358,7 +2473,7 @@ export declare const operations: readonly [{
|
|
|
2358
2473
|
readonly resource: "agent.skills.versions";
|
|
2359
2474
|
readonly method: "delete";
|
|
2360
2475
|
readonly summary: "Delete skill version";
|
|
2361
|
-
readonly description: "Soft-delete one version of a skill so it can no longer be read or downloaded; latest_version_id of the skill falls back to the newest remaining version. Returns {id, type: skill_version_deleted}. A skill can be deleted only after all of its versions are deleted.";
|
|
2476
|
+
readonly description: "Soft-delete one version of a skill so it can no longer be read or downloaded; latest_version_id of the skill falls back to the newest remaining version. Returns {id, type: skill_version_deleted}. A skill can be deleted only after all of its versions are deleted. A version that a non-archived agent pins, or the last version of a skill an agent attaches without a pin, returns 409 RESOURCE_IN_USE naming the agents.";
|
|
2362
2477
|
readonly http: "DELETE";
|
|
2363
2478
|
readonly path: "/agent/v1/skills/{skill_id}/versions/{version}";
|
|
2364
2479
|
readonly streaming: "no";
|
|
@@ -61,7 +61,7 @@ export const operations = [
|
|
|
61
61
|
"resource": "agent.agents",
|
|
62
62
|
"method": "create",
|
|
63
63
|
"summary": "Create agent",
|
|
64
|
-
"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. Unlike Anthropic Managed Agents, nonempty skills attachments return 400; the native skill tool is separate from the skills field. 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. Example: {\"name\":\"helper\",\"model\":{\"id\":\"deepseek-flash\"},\"tools\":[{\"type\":\"agent_toolset_20260401\"}]}.",
|
|
64
|
+
"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. Unlike Anthropic Managed Agents, nonempty skills attachments return 400; the native skill tool is separate from the skills field. 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 trimmed and may not be blank or contain 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\"}]}.",
|
|
65
65
|
"http": "POST",
|
|
66
66
|
"path": "/agent/v1/agents",
|
|
67
67
|
"streaming": "no",
|
|
@@ -75,7 +75,7 @@ export const operations = [
|
|
|
75
75
|
"name": "model",
|
|
76
76
|
"type": "object",
|
|
77
77
|
"required": true,
|
|
78
|
-
"description": "
|
|
78
|
+
"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."
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
"name": "name",
|
|
@@ -133,7 +133,7 @@ export const operations = [
|
|
|
133
133
|
"type": "array",
|
|
134
134
|
"itemType": "object",
|
|
135
135
|
"required": false,
|
|
136
|
-
"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
|
|
136
|
+
"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."
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
"name": "kind",
|
|
@@ -282,7 +282,7 @@ export const operations = [
|
|
|
282
282
|
"name": "model",
|
|
283
283
|
"type": "object",
|
|
284
284
|
"required": false,
|
|
285
|
-
"description": "
|
|
285
|
+
"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."
|
|
286
286
|
},
|
|
287
287
|
{
|
|
288
288
|
"name": "multiagent",
|
|
@@ -339,7 +339,7 @@ export const operations = [
|
|
|
339
339
|
"type": "array",
|
|
340
340
|
"itemType": "object",
|
|
341
341
|
"required": false,
|
|
342
|
-
"description": "Replace the whole bindings list; omission preserves it, and null or [] clears it. Additions apply only to new sessions; disabling or
|
|
342
|
+
"description": "Replace the whole bindings list; omission preserves it, and null or [] clears it. Additions apply only to new sessions; once this version is applied, disabling, removing or downgrading a binding revokes it immediately in running sessions on older versions, while apply=false changes no access. Only service agents accept a nonempty list."
|
|
343
343
|
},
|
|
344
344
|
{
|
|
345
345
|
"name": "kind",
|
|
@@ -439,6 +439,144 @@ export const operations = [
|
|
|
439
439
|
],
|
|
440
440
|
"query": []
|
|
441
441
|
},
|
|
442
|
+
{
|
|
443
|
+
"resource": "agent.agents.customers.auth.accessTokens",
|
|
444
|
+
"method": "create",
|
|
445
|
+
"summary": "Create customer access token",
|
|
446
|
+
"description": "Exchange a grant code, or the agent's publishable key for an anonymous visitor, for a customer access token that authorizes the agent's embedded sessions.\n\nNo Authorization header is required: the grant code or the publishable key is the credential. Agent Kit calls this from the browser, so send the page Origin. With grant_code, the code is consumed atomically: concurrent attempts have exactly one winner, and unknown, used, expired and other-agent codes all return the same 401 GRANT_CODE_INVALID. The sign-in starts now and lasts the code's max_session_seconds. Unlike Shopify, a visitor without an account gets a token too: send publishable_key instead and a new anonymous customer (anon_…) is created, bound to the request Origin, for 7 days. The access token lasts at most two hours and never outlives the sign-in; renew it with access_tokens/renew before expires_at. Both forms share the per-IP minute limit of anonymous issuance (default 20). Example body: {\"grant_code\":\"cgc_…\"}.",
|
|
447
|
+
"http": "POST",
|
|
448
|
+
"path": "/agent/v1/agents/{agent_id}/customers/auth/access_tokens",
|
|
449
|
+
"streaming": "no",
|
|
450
|
+
"pagination": false,
|
|
451
|
+
"pathParams": [
|
|
452
|
+
{
|
|
453
|
+
"name": "agent_id",
|
|
454
|
+
"sdkName": "agent_id"
|
|
455
|
+
}
|
|
456
|
+
],
|
|
457
|
+
"query": [],
|
|
458
|
+
"body": {
|
|
459
|
+
"required": true,
|
|
460
|
+
"fields": []
|
|
461
|
+
}
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"resource": "agent.agents.customers.auth.accessTokens",
|
|
465
|
+
"method": "deleteCurrent",
|
|
466
|
+
"summary": "Log out customer",
|
|
467
|
+
"description": "Log the customer out by revoking the sign-in of the presented access token and every token issued in it.\n\nSend the current customer access token as the Bearer credential, with no body, when the customer logs out of your site. Every token of the sign-in, including renewed ones, stops working, and their live event streams close; the customer's conversations are kept. Returns 204. Calling it again with the same token returns 401 ACCESS_TOKEN_REVOKED, so treat that as already logged out.",
|
|
468
|
+
"http": "DELETE",
|
|
469
|
+
"path": "/agent/v1/agents/{agent_id}/customers/auth/access_tokens/current",
|
|
470
|
+
"streaming": "no",
|
|
471
|
+
"pagination": false,
|
|
472
|
+
"pathParams": [
|
|
473
|
+
{
|
|
474
|
+
"name": "agent_id",
|
|
475
|
+
"sdkName": "agent_id"
|
|
476
|
+
}
|
|
477
|
+
],
|
|
478
|
+
"query": []
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"resource": "agent.agents.customers.auth.accessTokens.renew",
|
|
482
|
+
"method": "create",
|
|
483
|
+
"summary": "Renew customer access token",
|
|
484
|
+
"description": "Get a fresh customer access token in the same sign-in, authenticated with the current one.\n\nSend the current customer access token as the Bearer credential, with no body, a few minutes before expires_at. The new token keeps the version, budget, context, metadata and origin binding of the sign-in and lasts at most two hours, never past session_expires_at. Unlike Shopify, renewal does not revoke the presented token: it stays valid until its own expiry, so a reply that is streaming on it is not cut off. When less than 60 seconds of the sign-in remain, renewal returns 401 CUSTOMER_SESSION_EXPIRED; sign the customer in again with a new grant code from your backend. A token that was logged out or merged returns 401 ACCESS_TOKEN_REVOKED.",
|
|
485
|
+
"http": "POST",
|
|
486
|
+
"path": "/agent/v1/agents/{agent_id}/customers/auth/access_tokens/renew",
|
|
487
|
+
"streaming": "no",
|
|
488
|
+
"pagination": false,
|
|
489
|
+
"pathParams": [
|
|
490
|
+
{
|
|
491
|
+
"name": "agent_id",
|
|
492
|
+
"sdkName": "agent_id"
|
|
493
|
+
}
|
|
494
|
+
],
|
|
495
|
+
"query": []
|
|
496
|
+
},
|
|
497
|
+
{
|
|
498
|
+
"resource": "agent.agents.customers.auth.grantCodes",
|
|
499
|
+
"method": "create",
|
|
500
|
+
"summary": "Create customer grant code",
|
|
501
|
+
"description": "Sign your logged-in customer in to a service agent from your backend with a one-time grant code that Agent Kit exchanges for a customer access token.\n\nCall this from your backend with your API key after your own login succeeds, then pass the returned code to Agent Kit in the browser; never call it from the browser. Customer authorization follows Shopify Storefront customer access tokens (Multipass-style sign-in, a short-lived token, renewal and logout), so that experience applies. customer_id is your own identifier for the customer: use an opaque id such as your database user id, not an email address or phone number. The value auth is reserved, and ids starting with anon_ are reserved for anonymous customers. The code works once and expires after expires_in seconds (default 900). The sign-in it starts lasts max_session_seconds (default 7 days); version, budget_cents, system_message, agent_override and metadata apply to every token of the sign-in. Unlike Shopify, origin binds the whole sign-in to one page origin, and anonymous_access_token merges the conversations of the anonymous visitor who chatted before signing in into this customer. Example body: {\"customer_id\":\"cus_8f2a91\",\"origin\":\"https://shop.example.com\"}.",
|
|
502
|
+
"http": "POST",
|
|
503
|
+
"path": "/agent/v1/agents/{agent_id}/customers/auth/grant_codes",
|
|
504
|
+
"streaming": "no",
|
|
505
|
+
"pagination": false,
|
|
506
|
+
"pathParams": [
|
|
507
|
+
{
|
|
508
|
+
"name": "agent_id",
|
|
509
|
+
"sdkName": "agent_id"
|
|
510
|
+
}
|
|
511
|
+
],
|
|
512
|
+
"query": [],
|
|
513
|
+
"body": {
|
|
514
|
+
"required": true,
|
|
515
|
+
"fields": [
|
|
516
|
+
{
|
|
517
|
+
"name": "customer_id",
|
|
518
|
+
"type": "string",
|
|
519
|
+
"required": true,
|
|
520
|
+
"description": "Your stable, opaque identifier for the signed-in customer, such as your database user id. Do not use an email address or phone number. \"auth\" is reserved, and ids starting with anon_ are reserved for anonymous customers."
|
|
521
|
+
},
|
|
522
|
+
{
|
|
523
|
+
"name": "version",
|
|
524
|
+
"type": "integer",
|
|
525
|
+
"required": false,
|
|
526
|
+
"description": "Existing agent version that every token of this sign-in pins. Defaults to the agent's active_version when the code is issued."
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
"name": "budget_cents",
|
|
530
|
+
"type": "integer",
|
|
531
|
+
"required": false,
|
|
532
|
+
"description": "Budget in cents for each session the customer starts. Defaults to the embed policy session budget and cannot exceed its maximum."
|
|
533
|
+
},
|
|
534
|
+
{
|
|
535
|
+
"name": "system_message",
|
|
536
|
+
"type": "array",
|
|
537
|
+
"itemType": "object",
|
|
538
|
+
"required": false,
|
|
539
|
+
"description": "Optional context the agent receives at the start of each session, as text blocks, limited to 8192 UTF-8 bytes in total."
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"name": "agent_override",
|
|
543
|
+
"type": "object",
|
|
544
|
+
"required": false,
|
|
545
|
+
"description": "Optional system prompt override, accepted only when the embed policy allows agent overrides."
|
|
546
|
+
},
|
|
547
|
+
{
|
|
548
|
+
"name": "metadata",
|
|
549
|
+
"type": "object",
|
|
550
|
+
"required": false,
|
|
551
|
+
"description": "Up to 16 string pairs copied onto every session the customer starts. The playground key is reserved."
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"name": "origin",
|
|
555
|
+
"type": "string",
|
|
556
|
+
"required": false,
|
|
557
|
+
"description": "Page origin, such as https://shop.example.com, that must be one of the agent policy's allowed_origins (or localhost when the policy allows it). When set, every token of this sign-in works only from exactly this origin. Omit to accept any policy origin."
|
|
558
|
+
},
|
|
559
|
+
{
|
|
560
|
+
"name": "expires_in",
|
|
561
|
+
"type": "integer",
|
|
562
|
+
"required": false,
|
|
563
|
+
"description": "Seconds the code stays redeemable, from 60 to 86400. Defaults to 900."
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
"name": "max_session_seconds",
|
|
567
|
+
"type": "integer",
|
|
568
|
+
"required": false,
|
|
569
|
+
"description": "Total lifetime of the sign-in in seconds, from 3600 to 604800 (7 days). Tokens renew within it; after it the customer signs in again. Defaults to 604800."
|
|
570
|
+
},
|
|
571
|
+
{
|
|
572
|
+
"name": "anonymous_access_token",
|
|
573
|
+
"type": "string",
|
|
574
|
+
"required": false,
|
|
575
|
+
"description": "The current access token of the anonymous customer who used this agent before signing in. Their conversations become visible to the identified customer, and the anonymous sign-in ends at exchange."
|
|
576
|
+
}
|
|
577
|
+
]
|
|
578
|
+
}
|
|
579
|
+
},
|
|
442
580
|
{
|
|
443
581
|
"resource": "agent.agents.endUsers",
|
|
444
582
|
"method": "list",
|
|
@@ -1612,7 +1750,7 @@ export const operations = [
|
|
|
1612
1750
|
"resource": "agent.environments",
|
|
1613
1751
|
"method": "create",
|
|
1614
1752
|
"summary": "Create environment",
|
|
1615
|
-
"description": "Create a tenant-owned cloud environment: a sandbox recipe (packages to install and networking policy) that sessions can select through environment_id. Package installation happens when the session's sandbox is created; a failed install terminates that session with ENVIRONMENT_PACKAGE_INSTALL_FAILED. Limited networking is applied at sandbox creation. Unlike Anthropic Managed Agents, self_hosted environments, scope and cross-session package caching are not supported.",
|
|
1753
|
+
"description": "Create a tenant-owned cloud environment: a sandbox recipe (packages to install and networking policy) that sessions can select through environment_id. Package installation happens when the session's sandbox is created; a failed install terminates that session with ENVIRONMENT_PACKAGE_INSTALL_FAILED. Limited networking is applied at sandbox creation. Unlike Anthropic Managed Agents, self_hosted environments, scope and cross-session package caching are not supported. config.template must name an available sandbox template, otherwise 400 lists the available ones.",
|
|
1616
1754
|
"http": "POST",
|
|
1617
1755
|
"path": "/agent/v1/environments",
|
|
1618
1756
|
"streaming": "no",
|
|
@@ -1680,7 +1818,7 @@ export const operations = [
|
|
|
1680
1818
|
"resource": "agent.environments",
|
|
1681
1819
|
"method": "update",
|
|
1682
1820
|
"summary": "Update environment",
|
|
1683
|
-
"description": "Update the configuration of a tenant-owned cloud environment. Built-in environments are read-only. Package installation and limited networking are applied when a session's sandbox is created. Omitted fields keep their value.",
|
|
1821
|
+
"description": "Update the configuration of a tenant-owned cloud environment. Built-in environments are read-only. Package installation and limited networking are applied when a session's sandbox is created. Omitted fields keep their value. A changed config.template must name an available sandbox template, otherwise 400 lists the available ones.",
|
|
1684
1822
|
"http": "POST",
|
|
1685
1823
|
"path": "/agent/v1/environments/{environment_id}",
|
|
1686
1824
|
"streaming": "no",
|
|
@@ -1736,7 +1874,7 @@ export const operations = [
|
|
|
1736
1874
|
"resource": "agent.environments",
|
|
1737
1875
|
"method": "archive",
|
|
1738
1876
|
"summary": "Archive environment",
|
|
1739
|
-
"description": "Soft-archive a tenant-owned cloud environment so it can no longer be used to create new sessions. Built-in environments are read-only and cannot be archived.",
|
|
1877
|
+
"description": "Soft-archive a tenant-owned cloud environment so it can no longer be used to create new sessions. Built-in environments are read-only and cannot be archived. An environment that the active version of a non-archived agent uses as environment_id returns 409 RESOURCE_IN_USE naming the agents; point them at another environment first.",
|
|
1740
1878
|
"http": "POST",
|
|
1741
1879
|
"path": "/agent/v1/environments/{environment_id}/archive",
|
|
1742
1880
|
"streaming": "no",
|
|
@@ -2799,7 +2937,7 @@ export const operations = [
|
|
|
2799
2937
|
"resource": "agent.skills",
|
|
2800
2938
|
"method": "create",
|
|
2801
2939
|
"summary": "Create skill",
|
|
2802
|
-
"description": "Upload a skill: a directory that contains SKILL.md, which the agent reads when it needs the skill. Send multipart/form-data with one files part per file, each file name being its path under one top-level directory (pdf/SKILL.md, pdf/scripts/run.py), and an optional display_name. SKILL.md frontmatter needs a description; name defaults to the directory name. Limits: 8 MB in total, at most 200 files, no .. segments, absolute paths or empty names; a violation returns 400 naming the path or field. The upload creates the skill and its first version, and versions are immutable. Attach the skill to an agent with `skills` on the agent.",
|
|
2940
|
+
"description": "Upload a skill: a directory that contains SKILL.md, which the agent reads when it needs the skill. Send multipart/form-data with one files part per file, each file name being its path under one top-level directory (pdf/SKILL.md, pdf/scripts/run.py), and an optional display_name. SKILL.md frontmatter needs a description; name defaults to the directory name and must be one folder name (1-255 characters, no \"/\", backslash or NUL, not \".\" or \"..\"), otherwise the upload returns 400 stating the allowed form. Limits: 8 MB in total, at most 200 files, no .. segments, absolute paths or empty names; a violation returns 400 naming the path or field. The upload creates the skill and its first version, and versions are immutable. Attach the skill to an agent with `skills` on the agent.",
|
|
2803
2941
|
"http": "POST",
|
|
2804
2942
|
"path": "/agent/v1/skills",
|
|
2805
2943
|
"streaming": "no",
|
|
@@ -2830,7 +2968,7 @@ export const operations = [
|
|
|
2830
2968
|
"resource": "agent.skills",
|
|
2831
2969
|
"method": "delete",
|
|
2832
2970
|
"summary": "Delete skill",
|
|
2833
|
-
"description": "Delete a skill that has no live versions. A skill that still has versions returns 409 Delete all versions first; remove each with skills.versions.delete, then call this. Returns {id, type: skill_deleted}. skill_id comes from skills.create or skills.list.",
|
|
2971
|
+
"description": "Delete a skill that has no live versions. A skill that is still attached to an agent returns 409 RESOURCE_IN_USE naming up to 10 agent ids (the active or latest version of a non-archived agent counts); remove it from those agents first. A skill that still has versions returns 409 Delete all versions first; remove each with skills.versions.delete, then call this. Returns {id, type: skill_deleted}. skill_id comes from skills.create or skills.list.",
|
|
2834
2972
|
"http": "DELETE",
|
|
2835
2973
|
"path": "/agent/v1/skills/{skill_id}",
|
|
2836
2974
|
"streaming": "no",
|
|
@@ -2924,7 +3062,7 @@ export const operations = [
|
|
|
2924
3062
|
"resource": "agent.skills.versions",
|
|
2925
3063
|
"method": "delete",
|
|
2926
3064
|
"summary": "Delete skill version",
|
|
2927
|
-
"description": "Soft-delete one version of a skill so it can no longer be read or downloaded; latest_version_id of the skill falls back to the newest remaining version. Returns {id, type: skill_version_deleted}. A skill can be deleted only after all of its versions are deleted.",
|
|
3065
|
+
"description": "Soft-delete one version of a skill so it can no longer be read or downloaded; latest_version_id of the skill falls back to the newest remaining version. Returns {id, type: skill_version_deleted}. A skill can be deleted only after all of its versions are deleted. A version that a non-archived agent pins, or the last version of a skill an agent attaches without a pin, returns 409 RESOURCE_IN_USE naming the agents.",
|
|
2928
3066
|
"http": "DELETE",
|
|
2929
3067
|
"path": "/agent/v1/skills/{skill_id}/versions/{version}",
|
|
2930
3068
|
"streaming": "no",
|