@deepraxis/sdk 0.1.0-dev.722c0d4 → 0.1.0-dev.95813a3

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.
@@ -4505,7 +4505,7 @@ export type AgentManaged167 = {
4505
4505
  */
4506
4506
  id: string;
4507
4507
  /**
4508
- * Always `agent_with_overrides`. An agent reference with inline overrides; inline overrides are not supported on this platform and return 400.
4508
+ * Always `agent_with_overrides`. An agent reference with inline overrides. For session creation, system is the only supported override: omit it to inherit the agent system prompt, pass a string of at most 100,000 characters to replace it, or null to clear it. model, tools, mcp_servers and skills overrides return 400, even when null; any other field beyond type, id, version and system also returns 400. Deployment overrides follow the deployment operation description.
4509
4509
  */
4510
4510
  type: 'agent_with_overrides';
4511
4511
  /**
@@ -5368,7 +5368,7 @@ export type AgentManaged170 = {
5368
5368
  */
5369
5369
  system: null | string;
5370
5370
  /**
5371
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
5371
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
5372
5372
  */
5373
5373
  tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
5374
5374
  /**
@@ -5433,7 +5433,7 @@ export type AgentManaged74 = {
5433
5433
  */
5434
5434
  content: Array<AgentManaged75>;
5435
5435
  /**
5436
- * System message appended to the session's context. Not supported yet; sending one returns 400.
5436
+ * System message appended to the session's context. Supported with a nonempty array of text blocks. At most one is allowed per request, as the final event immediately after user.message or user.custom_tool_result; user.tool_result remains unsupported, and initial_events does not accept system.message.
5437
5437
  */
5438
5438
  type: 'system.message';
5439
5439
  };
@@ -5480,7 +5480,7 @@ export type AgentManaged252 = {
5480
5480
  */
5481
5481
  custom_tool_use_id: string;
5482
5482
  /**
5483
- * Result of a custom tool call. Custom tools are not offered on this platform and this event returns 400.
5483
+ * Result of a custom tool call. Set custom_tool_use_id to the agent.custom_tool_use event id and send only text content blocks; omitted content becomes an empty array.
5484
5484
  */
5485
5485
  type: 'user.custom_tool_result';
5486
5486
  /**
@@ -5513,25 +5513,33 @@ export type AgentManaged253 = {
5513
5513
  */
5514
5514
  is_error?: null | false | true;
5515
5515
  };
5516
- export type AgentManaged185 = {
5517
- /**
5518
- * Unique identifier for this event.
5519
- */
5520
- id: string;
5521
- /**
5522
- * Array of content blocks comprising the user message.
5523
- */
5524
- content: Array<AgentManaged60 | AgentManaged61 | AgentManaged65 | AgentManaged70>;
5516
+ export type AgentSseEvent = ({
5525
5517
  /**
5526
- * Always `user.message`. A message from the user to the agent, with content blocks.
5518
+ * Always `system.message`. SSE event name of this frame; its data is a system.message payload. A message produced by the platform rather than the user or the agent.
5527
5519
  */
5528
- type: 'user.message';
5520
+ event?: 'system.message';
5529
5521
  /**
5530
- * A timestamp in RFC 3339 format
5522
+ * Decoded JSON payload of this frame; its shape is selected by the event name.
5531
5523
  */
5532
- processed_at?: null | string;
5533
- };
5534
- export type AgentSseEvent = ({
5524
+ data?: {
5525
+ /**
5526
+ * Unique identifier for this event.
5527
+ */
5528
+ id: string;
5529
+ /**
5530
+ * System content blocks. Text-only.
5531
+ */
5532
+ content: Array<AgentManaged75>;
5533
+ /**
5534
+ * Always `system.message`. A message produced by the platform rather than the user or the agent.
5535
+ */
5536
+ type: 'system.message';
5537
+ /**
5538
+ * A timestamp in RFC 3339 format
5539
+ */
5540
+ processed_at?: null | string;
5541
+ };
5542
+ } | {
5535
5543
  /**
5536
5544
  * Always `user.message`. SSE event name of this frame; its data is a user.message payload. A message from the user to the agent, with content blocks.
5537
5545
  */
@@ -5556,6 +5564,24 @@ export type AgentSseEvent = ({
5556
5564
  * A timestamp in RFC 3339 format
5557
5565
  */
5558
5566
  processed_at?: null | string;
5567
+ /**
5568
+ * Untrusted page context for this user message only. Resend on each turn when needed; never added to system instructions. The complete JSON value must be at most 4096 UTF-8 bytes; invalid values return 400 INVALID_PARAMS. Empty items are treated as absent. Available only on /agent/v1.
5569
+ */
5570
+ praxis_context?: {
5571
+ /**
5572
+ * Named page values supplied by the client for this turn.
5573
+ */
5574
+ items: Array<{
5575
+ /**
5576
+ * Page context key, such as lesson or section.
5577
+ */
5578
+ name: string;
5579
+ /**
5580
+ * Untrusted page value; escaped before inclusion in the user message.
5581
+ */
5582
+ value: string;
5583
+ }>;
5584
+ };
5559
5585
  /**
5560
5586
  * UI transcript message ID. Use the last assistant message in a successfully completed turn as the fork target.
5561
5587
  */
@@ -6352,6 +6378,86 @@ export type AgentSseEvent = ({
6352
6378
  };
6353
6379
  };
6354
6380
  };
6381
+ } | {
6382
+ /**
6383
+ * Always `agent.custom_tool_use`. SSE event name of this frame; its data is a agent.custom_tool_use payload. The agent called a custom tool defined by the client.
6384
+ */
6385
+ event?: 'agent.custom_tool_use';
6386
+ /**
6387
+ * Decoded JSON payload of this frame; its shape is selected by the event name.
6388
+ */
6389
+ data?: {
6390
+ /**
6391
+ * Unique identifier for this event.
6392
+ */
6393
+ id: string;
6394
+ /**
6395
+ * Input parameters for the tool call.
6396
+ */
6397
+ input: AgentManaged193;
6398
+ /**
6399
+ * Name of the custom tool being called.
6400
+ */
6401
+ name: string;
6402
+ /**
6403
+ * A timestamp in RFC 3339 format
6404
+ */
6405
+ processed_at: string;
6406
+ /**
6407
+ * Always `agent.custom_tool_use`. The agent called a custom tool defined by the client.
6408
+ */
6409
+ type: 'agent.custom_tool_use';
6410
+ /**
6411
+ * When set, this event was cross-posted from a subagent's thread to surface its
6412
+ * custom tool use on the primary thread's stream. Empty on the thread's own
6413
+ * events. Informational only: the server routes the matching
6414
+ * `user.custom_tool_result` by `custom_tool_use_id`, so clients do not send it
6415
+ * back.
6416
+ */
6417
+ session_thread_id?: null | string;
6418
+ };
6419
+ } | {
6420
+ /**
6421
+ * Always `user.custom_tool_result`. SSE event name of this frame; its data is a user.custom_tool_result payload. The user's result for a custom tool call.
6422
+ */
6423
+ event?: 'user.custom_tool_result';
6424
+ /**
6425
+ * Decoded JSON payload of this frame; its shape is selected by the event name.
6426
+ */
6427
+ data?: {
6428
+ /**
6429
+ * Unique identifier for this event.
6430
+ */
6431
+ id: string;
6432
+ /**
6433
+ * The id of the `agent.custom_tool_use` event this result corresponds to, which
6434
+ * can be found in the last `session.status_idle`
6435
+ * [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list#beta_managed_agents_session_requires_action.event_ids)
6436
+ * `stop_reason.event_ids` field.
6437
+ */
6438
+ custom_tool_use_id: string;
6439
+ /**
6440
+ * Always `user.custom_tool_result`. The user's result for a custom tool call.
6441
+ */
6442
+ type: 'user.custom_tool_result';
6443
+ /**
6444
+ * The result content returned by the tool.
6445
+ */
6446
+ content?: Array<AgentManaged60 | AgentManaged61 | AgentManaged65 | AgentManaged189>;
6447
+ /**
6448
+ * Whether the tool execution resulted in an error.
6449
+ */
6450
+ is_error?: null | false | true;
6451
+ /**
6452
+ * A timestamp in RFC 3339 format
6453
+ */
6454
+ processed_at?: null | string;
6455
+ /**
6456
+ * Set by the server to the subagent thread this result was routed to. Omitted when
6457
+ * it was routed to the primary thread.
6458
+ */
6459
+ session_thread_id?: null | string;
6460
+ };
6355
6461
  } | {
6356
6462
  /**
6357
6463
  * Always `session.thread_created`. SSE event name of this frame; its data is a session.thread_created payload. A child thread was started.
@@ -7026,7 +7132,7 @@ export type AgentSseEvent = ({
7026
7132
  /**
7027
7133
  * Server-Sent Events event name of this frame.
7028
7134
  */
7029
- event: 'user.message' | 'user.interrupt' | 'agent.message' | 'agent.thinking' | 'session.status_running' | 'session.status_rescheduled' | 'session.status_idle' | 'session.status_terminated' | 'agent.thread_context_compacted' | 'agent.thread_context_reset' | 'session.updated' | 'session.error' | 'session.usage' | 'span.model_request_start' | 'span.model_request_end' | 'agent.tool_use' | 'agent.tool_result' | 'agent.mcp_tool_use' | 'agent.mcp_tool_result' | 'user.tool_confirmation' | 'session.thread_created' | 'session.thread_status_running' | 'session.thread_status_idle' | 'session.thread_status_rescheduled' | 'session.thread_status_terminated' | 'agent.thread_message_sent' | 'agent.thread_message_received' | 'user.withdraw' | 'user.steer' | 'system.notification' | 'session.forked' | 'session.goal_changed' | 'session.goal_verification' | 'event_start' | 'event_delta' | 'ping' | 'error';
7135
+ event: 'system.message' | 'user.message' | 'user.interrupt' | 'agent.message' | 'agent.thinking' | 'session.status_running' | 'session.status_rescheduled' | 'session.status_idle' | 'session.status_terminated' | 'agent.thread_context_compacted' | 'agent.thread_context_reset' | 'session.updated' | 'session.error' | 'session.usage' | 'span.model_request_start' | 'span.model_request_end' | 'agent.tool_use' | 'agent.tool_result' | 'agent.mcp_tool_use' | 'agent.mcp_tool_result' | 'user.tool_confirmation' | 'agent.custom_tool_use' | 'user.custom_tool_result' | 'session.thread_created' | 'session.thread_status_running' | 'session.thread_status_idle' | 'session.thread_status_rescheduled' | 'session.thread_status_terminated' | 'agent.thread_message_sent' | 'agent.thread_message_received' | 'user.withdraw' | 'user.steer' | 'system.notification' | 'session.forked' | 'session.goal_changed' | 'session.goal_verification' | 'event_start' | 'event_delta' | 'ping' | 'error';
7030
7136
  data: AgentSseData;
7031
7137
  };
7032
7138
  export type AgentManaged256 = {
@@ -17448,7 +17554,7 @@ export type AgentManaged172 = {
17448
17554
  */
17449
17555
  system: null | string;
17450
17556
  /**
17451
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
17557
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
17452
17558
  */
17453
17559
  tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
17454
17560
  /**
@@ -17705,7 +17811,7 @@ export type AgentManaged191 = {
17705
17811
  */
17706
17812
  text: string;
17707
17813
  /**
17708
- * Text block inside a tool result. Tool results are not accepted as events on this platform; sending one returns 400.
17814
+ * Text block inside a tool result. user.custom_tool_result accepts text blocks only; user.tool_result remains unsupported.
17709
17815
  */
17710
17816
  type: 'text';
17711
17817
  };
@@ -17918,7 +18024,7 @@ export type AgentManaged75 = {
17918
18024
  */
17919
18025
  text: string;
17920
18026
  /**
17921
- * Text block of a system message. Not supported yet, see the system message.
18027
+ * Supported text block of a system message. Set type to text and supply a string in text; other block types are rejected.
17922
18028
  */
17923
18029
  type: 'text';
17924
18030
  };
@@ -17961,6 +18067,23 @@ export type AgentManaged249 = {
17961
18067
  * Decoded JSON payload of this frame; its shape is selected by the event name.
17962
18068
  */
17963
18069
  export type AgentSseData = {
18070
+ /**
18071
+ * Unique identifier for this event.
18072
+ */
18073
+ id: string;
18074
+ /**
18075
+ * System content blocks. Text-only.
18076
+ */
18077
+ content: Array<AgentManaged75>;
18078
+ /**
18079
+ * Always `system.message`. A message produced by the platform rather than the user or the agent.
18080
+ */
18081
+ type: 'system.message';
18082
+ /**
18083
+ * A timestamp in RFC 3339 format
18084
+ */
18085
+ processed_at?: null | string;
18086
+ } | {
17964
18087
  /**
17965
18088
  * Unique identifier for this event.
17966
18089
  */
@@ -17977,6 +18100,24 @@ export type AgentSseData = {
17977
18100
  * A timestamp in RFC 3339 format
17978
18101
  */
17979
18102
  processed_at?: null | string;
18103
+ /**
18104
+ * Untrusted page context for this user message only. Resend on each turn when needed; never added to system instructions. The complete JSON value must be at most 4096 UTF-8 bytes; invalid values return 400 INVALID_PARAMS. Empty items are treated as absent. Available only on /agent/v1.
18105
+ */
18106
+ praxis_context?: {
18107
+ /**
18108
+ * Named page values supplied by the client for this turn.
18109
+ */
18110
+ items: Array<{
18111
+ /**
18112
+ * Page context key, such as lesson or section.
18113
+ */
18114
+ name: string;
18115
+ /**
18116
+ * Untrusted page value; escaped before inclusion in the user message.
18117
+ */
18118
+ value: string;
18119
+ }>;
18120
+ };
17980
18121
  /**
17981
18122
  * UI transcript message ID. Use the last assistant message in a successfully completed turn as the fork target.
17982
18123
  */
@@ -18601,6 +18742,68 @@ export type AgentSseData = {
18601
18742
  notes?: string;
18602
18743
  };
18603
18744
  };
18745
+ } | {
18746
+ /**
18747
+ * Unique identifier for this event.
18748
+ */
18749
+ id: string;
18750
+ /**
18751
+ * Input parameters for the tool call.
18752
+ */
18753
+ input: AgentManaged193;
18754
+ /**
18755
+ * Name of the custom tool being called.
18756
+ */
18757
+ name: string;
18758
+ /**
18759
+ * A timestamp in RFC 3339 format
18760
+ */
18761
+ processed_at: string;
18762
+ /**
18763
+ * Always `agent.custom_tool_use`. The agent called a custom tool defined by the client.
18764
+ */
18765
+ type: 'agent.custom_tool_use';
18766
+ /**
18767
+ * When set, this event was cross-posted from a subagent's thread to surface its
18768
+ * custom tool use on the primary thread's stream. Empty on the thread's own
18769
+ * events. Informational only: the server routes the matching
18770
+ * `user.custom_tool_result` by `custom_tool_use_id`, so clients do not send it
18771
+ * back.
18772
+ */
18773
+ session_thread_id?: null | string;
18774
+ } | {
18775
+ /**
18776
+ * Unique identifier for this event.
18777
+ */
18778
+ id: string;
18779
+ /**
18780
+ * The id of the `agent.custom_tool_use` event this result corresponds to, which
18781
+ * can be found in the last `session.status_idle`
18782
+ * [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list#beta_managed_agents_session_requires_action.event_ids)
18783
+ * `stop_reason.event_ids` field.
18784
+ */
18785
+ custom_tool_use_id: string;
18786
+ /**
18787
+ * Always `user.custom_tool_result`. The user's result for a custom tool call.
18788
+ */
18789
+ type: 'user.custom_tool_result';
18790
+ /**
18791
+ * The result content returned by the tool.
18792
+ */
18793
+ content?: Array<AgentManaged60 | AgentManaged61 | AgentManaged65 | AgentManaged189>;
18794
+ /**
18795
+ * Whether the tool execution resulted in an error.
18796
+ */
18797
+ is_error?: null | false | true;
18798
+ /**
18799
+ * A timestamp in RFC 3339 format
18800
+ */
18801
+ processed_at?: null | string;
18802
+ /**
18803
+ * Set by the server to the subagent thread this result was routed to. Omitted when
18804
+ * it was routed to the primary thread.
18805
+ */
18806
+ session_thread_id?: null | string;
18604
18807
  } | {
18605
18808
  /**
18606
18809
  * Unique identifier for this event.
@@ -26430,32 +26633,33 @@ export type SetRunFeedbackResponses = {
26430
26633
  };
26431
26634
  };
26432
26635
  export type SetRunFeedbackResponse = SetRunFeedbackResponses[keyof SetRunFeedbackResponses];
26433
- export type ListEmbedTokensData = {
26636
+ export type ListEndUsersData = {
26434
26637
  body?: never;
26435
- path?: never;
26436
- query?: {
26437
- /**
26438
- * Filter by service agent identifier (agent_ or agt_ prefix).
26439
- */
26440
- agent_id?: string;
26638
+ path: {
26441
26639
  /**
26442
- * Exact host user identifier supplied at issuance.
26640
+ * Active service agent identifier from agent creation or listing.
26443
26641
  */
26444
- external_user_id?: string;
26642
+ agent_id: string;
26643
+ };
26644
+ query?: {
26445
26645
  /**
26446
- * Maximum records per page; defaults to 20.
26646
+ * Maximum users per page; defaults to 20.
26447
26647
  */
26448
26648
  limit?: number;
26449
26649
  /**
26450
- * next_page from a previous response with the same filters.
26650
+ * next_page from the previous response with the same agent, q and limit.
26451
26651
  */
26452
26652
  page?: string;
26653
+ /**
26654
+ * Case-sensitive literal prefix of external_user_id; omit or use an empty string for all users.
26655
+ */
26656
+ q?: string;
26453
26657
  };
26454
- url: '/agent/v1/embed_tokens';
26658
+ url: '/agent/v1/agents/{agent_id}/end_users';
26455
26659
  };
26456
- export type ListEmbedTokensErrors = {
26660
+ export type ListEndUsersErrors = {
26457
26661
  /**
26458
- * Invalid filter, limit or cursor; reuse the cursor with its original filters.
26662
+ * Invalid identifier, prefix, limit, cursor or blocklist size; correct the reported input.
26459
26663
  */
26460
26664
  400: unknown;
26461
26665
  /**
@@ -26463,17 +26667,13 @@ export type ListEmbedTokensErrors = {
26463
26667
  */
26464
26668
  401: unknown;
26465
26669
  /**
26466
- * The grant is missing or belongs to another organization, or the caller is an end user.
26670
+ * Agent or requested user is unavailable to this caller, or the caller is an end user.
26467
26671
  */
26468
26672
  404: unknown;
26469
- /**
26470
- * Upstream revocation failed; the record remains unrevoked and the request may be retried.
26471
- */
26472
- 502: unknown;
26473
26673
  };
26474
- export type ListEmbedTokensResponses = {
26674
+ export type ListEndUsersResponses = {
26475
26675
  /**
26476
- * Issuance records and next page cursor.
26676
+ * Matching users and next page cursor.
26477
26677
  */
26478
26678
  200: {
26479
26679
  /**
@@ -26481,177 +26681,277 @@ export type ListEmbedTokensResponses = {
26481
26681
  */
26482
26682
  data: Array<{
26483
26683
  /**
26484
- * Grant identifier returned by embed token creation.
26485
- */
26486
- id: string;
26487
- /**
26488
- * Toolset type id as used in an agent's tools entry, for example agent_toolset_20260401.
26489
- */
26490
- type: 'embed_token';
26491
- /**
26492
- * Service agent identifier.
26493
- */
26494
- agent_id: string;
26495
- /**
26496
- * Pinned agent version.
26497
- */
26498
- agent_version: number;
26499
- /**
26500
- * Exact host user identifier supplied at issuance.
26684
+ * Host application's user identifier, scoped to this organization and agent.
26501
26685
  */
26502
26686
  external_user_id: string;
26503
26687
  /**
26504
- * Issuance time in RFC 3339 format.
26688
+ * Earliest session creation or token issuance time; null for a preemptively blocked user with no history.
26505
26689
  */
26506
- created_at: string;
26690
+ first_seen_at: string | null;
26507
26691
  /**
26508
- * Expiration time in RFC 3339 format.
26692
+ * Latest session update or token issuance time; null when there is no history.
26509
26693
  */
26510
- expires_at: string;
26694
+ last_active_at: string | null;
26511
26695
  /**
26512
- * Revocation time in RFC 3339 format, or null while not revoked.
26696
+ * Total sessions for this end user on this agent.
26513
26697
  */
26514
- revoked_at: string | null;
26698
+ session_count: number;
26515
26699
  /**
26516
- * Host origin recorded at issuance, or null when absent.
26700
+ * Accumulated recorded session cost in millionths of a US dollar; zero when no cost has been recorded.
26517
26701
  */
26518
- host_origin: string | null;
26702
+ cost_micro_usd: number;
26519
26703
  /**
26520
- * User or API key that issued the token.
26704
+ * Whether the embed policy currently prevents this user from receiving tokens and creating sessions.
26521
26705
  */
26522
- issued_by: {
26523
- /**
26524
- * user identifies a signed-in organization member; api_key identifies the issuing API key.
26525
- */
26526
- type: 'user' | 'api_key';
26527
- /**
26528
- * Identifier of the object, as returned by the API; pass it in the path of follow-up calls on the same resource.
26529
- */
26530
- id: string;
26531
- };
26706
+ blocked: boolean;
26532
26707
  }>;
26533
26708
  /**
26534
- * Cursor for the next page using the same filters, or null when exhausted.
26709
+ * Cursor for the same agent, q and limit; null when exhausted.
26535
26710
  */
26536
26711
  next_page: string | null;
26537
26712
  };
26538
26713
  };
26539
- export type ListEmbedTokensResponse = ListEmbedTokensResponses[keyof ListEmbedTokensResponses];
26540
- export type CreateEmbedTokenData = {
26541
- body: {
26714
+ export type ListEndUsersResponse = ListEndUsersResponses[keyof ListEndUsersResponses];
26715
+ export type DeleteEndUserData = {
26716
+ body?: never;
26717
+ path: {
26542
26718
  /**
26543
- * Service agent ID or identity_number from agent retrieval; it must belong to your organization and be active.
26719
+ * Active service agent identifier from agent creation or listing.
26544
26720
  */
26545
- agent: string;
26721
+ agent_id: string;
26546
26722
  /**
26547
- * Existing agent version to pin. Omit to pin the latest version at issuance.
26723
+ * Host user identifier supplied at issuance or from end-user listing.
26548
26724
  */
26549
- version?: number;
26725
+ external_user_id: string;
26726
+ };
26727
+ query: {
26550
26728
  /**
26551
- * Your application's stable end-user identifier, scoped to this organization and agent.
26729
+ * Must exactly equal the external_user_id path parameter to confirm destructive deletion.
26730
+ */
26731
+ confirm: string;
26732
+ };
26733
+ url: '/agent/v1/agents/{agent_id}/end_users/{external_user_id}';
26734
+ };
26735
+ export type DeleteEndUserErrors = {
26736
+ /**
26737
+ * Invalid identifier, prefix, limit, cursor or blocklist size; correct the reported input.
26738
+ */
26739
+ 400: unknown;
26740
+ /**
26741
+ * Authenticate with a host credential.
26742
+ */
26743
+ 401: unknown;
26744
+ /**
26745
+ * Agent or requested user is unavailable to this caller, or the caller is an end user.
26746
+ */
26747
+ 404: unknown;
26748
+ };
26749
+ export type DeleteEndUserResponses = {
26750
+ /**
26751
+ * Deletion accepted; poll the deletion endpoint until done or failed.
26752
+ */
26753
+ 202: {
26754
+ /**
26755
+ * Deletion task identifier.
26756
+ */
26757
+ id: string;
26758
+ /**
26759
+ * Accepted for asynchronous processing; poll deletion for progress.
26760
+ */
26761
+ status: 'pending';
26762
+ };
26763
+ };
26764
+ export type DeleteEndUserResponse = DeleteEndUserResponses[keyof DeleteEndUserResponses];
26765
+ export type GetEndUserData = {
26766
+ body?: never;
26767
+ path: {
26768
+ /**
26769
+ * Active service agent identifier from agent creation or listing.
26770
+ */
26771
+ agent_id: string;
26772
+ /**
26773
+ * Host user identifier supplied at issuance or from end-user listing.
26552
26774
  */
26553
26775
  external_user_id: string;
26776
+ };
26777
+ query?: never;
26778
+ url: '/agent/v1/agents/{agent_id}/end_users/{external_user_id}';
26779
+ };
26780
+ export type GetEndUserErrors = {
26781
+ /**
26782
+ * Invalid identifier, prefix, limit, cursor or blocklist size; correct the reported input.
26783
+ */
26784
+ 400: unknown;
26785
+ /**
26786
+ * Authenticate with a host credential.
26787
+ */
26788
+ 401: unknown;
26789
+ /**
26790
+ * Agent or requested user is unavailable to this caller, or the caller is an end user.
26791
+ */
26792
+ 404: unknown;
26793
+ };
26794
+ export type GetEndUserResponses = {
26795
+ /**
26796
+ * Current end-user view.
26797
+ */
26798
+ 200: {
26554
26799
  /**
26555
- * Token lifetime in seconds. Defaults to the embed policy TTL and cannot exceed its maximum or 3600 seconds.
26800
+ * Host application's user identifier, scoped to this organization and agent.
26556
26801
  */
26557
- ttl_seconds?: number;
26802
+ external_user_id: string;
26558
26803
  /**
26559
- * Session budget in cents. Defaults to the embed policy session budget and cannot exceed its maximum.
26804
+ * Earliest session creation or token issuance time; null for a preemptively blocked user with no history.
26560
26805
  */
26561
- budget_cents?: number;
26806
+ first_seen_at: string | null;
26562
26807
  /**
26563
- * Optional host context as text blocks, limited to 8192 UTF-8 bytes in total.
26808
+ * Latest session update or token issuance time; null when there is no history.
26564
26809
  */
26565
- system_message?: Array<{
26810
+ last_active_at: string | null;
26811
+ /**
26812
+ * Total sessions for this end user on this agent.
26813
+ */
26814
+ session_count: number;
26815
+ /**
26816
+ * Accumulated recorded session cost in millionths of a US dollar; zero when no cost has been recorded.
26817
+ */
26818
+ cost_micro_usd: number;
26819
+ /**
26820
+ * Whether the embed policy currently prevents this user from receiving tokens and creating sessions.
26821
+ */
26822
+ blocked: boolean;
26823
+ /**
26824
+ * Up to twenty sessions, ordered by most recent update first.
26825
+ */
26826
+ recent_sessions: Array<{
26566
26827
  /**
26567
- * The text block kind; text is the only supported kind.
26828
+ * Public sesn_ session identifier, usable with session retrieval.
26568
26829
  */
26569
- type: 'text';
26830
+ id: string;
26570
26831
  /**
26571
- * Host context text. All blocks together must fit within 8192 UTF-8 bytes.
26832
+ * Session title, or null when unset.
26572
26833
  */
26573
- text: string;
26574
- }>;
26575
- /**
26576
- * Optional system prompt override, accepted only when the embed policy allows agent overrides.
26577
- */
26578
- agent_override?: {
26834
+ title: string | null;
26579
26835
  /**
26580
- * Replacement system prompt, or null to clear it for this grant.
26836
+ * Session entry surface, or null when no surface was recorded.
26581
26837
  */
26582
- system: string | null;
26583
- };
26838
+ source: string | null;
26839
+ /**
26840
+ * Session creation time in UTC.
26841
+ */
26842
+ created_at: string;
26843
+ /**
26844
+ * Most recent session update time in UTC.
26845
+ */
26846
+ updated_at: string;
26847
+ }>;
26848
+ };
26849
+ };
26850
+ export type GetEndUserResponse = GetEndUserResponses[keyof GetEndUserResponses];
26851
+ export type GetEndUserDeletionData = {
26852
+ body?: never;
26853
+ path: {
26584
26854
  /**
26585
- * Optional subset of the policy origin entries, compared exactly. Omit to snapshot every policy origin.
26855
+ * Active service agent identifier from agent creation or listing.
26586
26856
  */
26587
- allowed_origins?: Array<string>;
26857
+ agent_id: string;
26588
26858
  /**
26589
- * 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.
26859
+ * Host user identifier supplied at issuance or from end-user listing.
26590
26860
  */
26591
- metadata?: {
26592
- [key: string]: string;
26593
- };
26861
+ external_user_id: string;
26594
26862
  };
26595
- path?: never;
26596
26863
  query?: never;
26597
- url: '/agent/v1/embed_tokens';
26864
+ url: '/agent/v1/agents/{agent_id}/end_users/{external_user_id}/deletion';
26598
26865
  };
26599
- export type CreateEmbedTokenErrors = {
26866
+ export type GetEndUserDeletionErrors = {
26600
26867
  /**
26601
- * Request fields exceed policy limits, the policy or its environment is unavailable, or hosted was supplied. Configure the policy or correct the reported field.
26868
+ * Invalid identifier, prefix, limit, cursor or blocklist size; correct the reported input.
26602
26869
  */
26603
26870
  400: unknown;
26604
26871
  /**
26605
- * A valid host credential is required; authenticate with your backend API key.
26872
+ * Authenticate with a host credential.
26606
26873
  */
26607
26874
  401: unknown;
26608
26875
  /**
26609
- * The end user is blocked by the embed policy; contact the agent owner.
26610
- */
26611
- 403: unknown;
26612
- /**
26613
- * The service agent or requested version is unavailable to this caller; check the agent identifier and version.
26876
+ * Agent or requested user is unavailable to this caller, or the caller is an end user.
26614
26877
  */
26615
26878
  404: unknown;
26616
- /**
26617
- * Token issuance is unavailable; no usable credential was returned.
26618
- */
26619
- 502: unknown;
26620
26879
  };
26621
- export type CreateEmbedTokenResponses = {
26880
+ export type GetEndUserDeletionResponses = {
26622
26881
  /**
26623
- * Issued end-user token and its grant identifier and expiration.
26882
+ * Latest deletion task and snapshot counts.
26624
26883
  */
26625
- 201: {
26884
+ 200: {
26626
26885
  /**
26627
- * Grant identifier with the emb_ prefix, identifying this issuance.
26886
+ * Deletion task identifier.
26628
26887
  */
26629
26888
  id: string;
26630
26889
  /**
26631
- * Short-lived end-user credential to pass to your frontend; keep the host API key on your backend.
26890
+ * pending: accepted; snapshotting: exporting recovery data; deleting: verified snapshot exists and erasure is running; done: erasure completed; failed: stopped safely, retry DELETE to resume the same task.
26632
26891
  */
26633
- token: string;
26892
+ status: 'pending' | 'snapshotting' | 'deleting' | 'done' | 'failed';
26634
26893
  /**
26635
- * Token expiration as an ISO 8601 UTC timestamp, as issued by identity.
26894
+ * Counts from the verified snapshot; empty until snapshotting completes.
26636
26895
  */
26637
- expires_at: string;
26896
+ counts: {
26897
+ /**
26898
+ * Number of primary and child sessions in the snapshot.
26899
+ */
26900
+ sessions?: number;
26901
+ /**
26902
+ * Number of durable session events captured without changing the history.
26903
+ */
26904
+ events?: number;
26905
+ /**
26906
+ * Number of stored transcript messages in the snapshot.
26907
+ */
26908
+ messages?: number;
26909
+ /**
26910
+ * Number of backed-up directory, authorization, feedback and projection rows.
26911
+ */
26912
+ d1_rows?: number;
26913
+ /**
26914
+ * Number of session attachment references; their file bytes are retained.
26915
+ */
26916
+ attachments?: number;
26917
+ };
26918
+ /**
26919
+ * Operator recovery snapshot key, retained for seven days. Attachment bytes are not copied or deleted.
26920
+ */
26921
+ snapshot_key?: string;
26922
+ /**
26923
+ * Content-free failure summary; retry the confirmed deletion to resume.
26924
+ */
26925
+ error?: string;
26926
+ /**
26927
+ * Task creation time in RFC 3339 format.
26928
+ */
26929
+ created_at: string;
26930
+ /**
26931
+ * Latest task update time in RFC 3339 format.
26932
+ */
26933
+ updated_at: string;
26638
26934
  };
26639
26935
  };
26640
- export type CreateEmbedTokenResponse = CreateEmbedTokenResponses[keyof CreateEmbedTokenResponses];
26641
- export type RevokeEmbedTokenData = {
26936
+ export type GetEndUserDeletionResponse = GetEndUserDeletionResponses[keyof GetEndUserDeletionResponses];
26937
+ export type RevokeEndUserTokensData = {
26642
26938
  body?: never;
26643
26939
  path: {
26644
26940
  /**
26645
- * Grant id returned by issuance or listing.
26941
+ * Active service agent identifier from agent creation or listing.
26646
26942
  */
26647
- id: string;
26943
+ agent_id: string;
26944
+ /**
26945
+ * Host user identifier supplied at issuance or from end-user listing.
26946
+ */
26947
+ external_user_id: string;
26648
26948
  };
26649
26949
  query?: never;
26650
- url: '/agent/v1/embed_tokens/{id}/revoke';
26950
+ url: '/agent/v1/agents/{agent_id}/end_users/{external_user_id}/revoke_tokens';
26651
26951
  };
26652
- export type RevokeEmbedTokenErrors = {
26952
+ export type RevokeEndUserTokensErrors = {
26653
26953
  /**
26654
- * Invalid filter, limit or cursor; reuse the cursor with its original filters.
26954
+ * Invalid identifier, prefix, limit, cursor or blocklist size; correct the reported input.
26655
26955
  */
26656
26956
  400: unknown;
26657
26957
  /**
@@ -26659,104 +26959,607 @@ export type RevokeEmbedTokenErrors = {
26659
26959
  */
26660
26960
  401: unknown;
26661
26961
  /**
26662
- * The grant is missing or belongs to another organization, or the caller is an end user.
26962
+ * Agent or requested user is unavailable to this caller, or the caller is an end user.
26663
26963
  */
26664
26964
  404: unknown;
26665
26965
  /**
26666
- * Upstream revocation failed; the record remains unrevoked and the request may be retried.
26966
+ * Credential revocation failed; grant timestamps remain unchanged. A requested block remains in effect; retry to finish revocation.
26667
26967
  */
26668
26968
  502: unknown;
26669
26969
  };
26670
- export type RevokeEmbedTokenResponses = {
26970
+ export type RevokeEndUserTokensResponses = {
26671
26971
  /**
26672
- * Revoked issuance record, including its original revocation time on repeated calls.
26972
+ * Number of newly revoked grants.
26673
26973
  */
26674
26974
  200: {
26675
26975
  /**
26676
- * Grant identifier returned by embed token creation.
26677
- */
26678
- id: string;
26679
- /**
26680
- * Type tag of the object.
26976
+ * Number of previously unrevoked grants marked revoked by this request.
26681
26977
  */
26682
- type: 'embed_token';
26978
+ revoked: number;
26979
+ };
26980
+ };
26981
+ export type RevokeEndUserTokensResponse = RevokeEndUserTokensResponses[keyof RevokeEndUserTokensResponses];
26982
+ export type BlockEndUserData = {
26983
+ body?: never;
26984
+ path: {
26683
26985
  /**
26684
- * Service agent identifier.
26986
+ * Active service agent identifier from agent creation or listing.
26685
26987
  */
26686
26988
  agent_id: string;
26687
26989
  /**
26688
- * Pinned agent version.
26990
+ * Host user identifier supplied at issuance or from end-user listing.
26689
26991
  */
26690
- agent_version: number;
26992
+ external_user_id: string;
26993
+ };
26994
+ query?: never;
26995
+ url: '/agent/v1/agents/{agent_id}/end_users/{external_user_id}/block';
26996
+ };
26997
+ export type BlockEndUserErrors = {
26998
+ /**
26999
+ * Invalid identifier, prefix, limit, cursor or blocklist size; correct the reported input.
27000
+ */
27001
+ 400: unknown;
27002
+ /**
27003
+ * Authenticate with a host credential.
27004
+ */
27005
+ 401: unknown;
27006
+ /**
27007
+ * Agent or requested user is unavailable to this caller, or the caller is an end user.
27008
+ */
27009
+ 404: unknown;
27010
+ /**
27011
+ * Configure an embed policy before blocking or unblocking; retry if a concurrent policy update caused the conflict.
27012
+ */
27013
+ 409: unknown;
27014
+ /**
27015
+ * Credential revocation failed; grant timestamps remain unchanged. A requested block remains in effect; retry to finish revocation.
27016
+ */
27017
+ 502: unknown;
27018
+ };
27019
+ export type BlockEndUserResponses = {
27020
+ /**
27021
+ * Current end-user view.
27022
+ */
27023
+ 200: {
26691
27024
  /**
26692
- * Exact host user identifier supplied at issuance.
27025
+ * Host application's user identifier, scoped to this organization and agent.
26693
27026
  */
26694
27027
  external_user_id: string;
26695
27028
  /**
26696
- * Issuance time in RFC 3339 format.
27029
+ * Earliest session creation or token issuance time; null for a preemptively blocked user with no history.
26697
27030
  */
26698
- created_at: string;
27031
+ first_seen_at: string | null;
26699
27032
  /**
26700
- * Expiration time in RFC 3339 format.
27033
+ * Latest session update or token issuance time; null when there is no history.
26701
27034
  */
26702
- expires_at: string;
27035
+ last_active_at: string | null;
26703
27036
  /**
26704
- * Revocation time in RFC 3339 format, or null while not revoked.
27037
+ * Total sessions for this end user on this agent.
26705
27038
  */
26706
- revoked_at: string | null;
27039
+ session_count: number;
26707
27040
  /**
26708
- * Host origin recorded at issuance, or null when absent.
27041
+ * Accumulated recorded session cost in millionths of a US dollar; zero when no cost has been recorded.
26709
27042
  */
26710
- host_origin: string | null;
27043
+ cost_micro_usd: number;
26711
27044
  /**
26712
- * User or API key that issued the token.
27045
+ * Whether the embed policy currently prevents this user from receiving tokens and creating sessions.
26713
27046
  */
26714
- issued_by: {
26715
- /**
26716
- * user identifies a signed-in organization member; api_key identifies the issuing API key.
26717
- */
26718
- type: 'user' | 'api_key';
26719
- /**
26720
- * Identifier of the object, as returned by the API; pass it in the path of follow-up calls on the same resource.
26721
- */
26722
- id: string;
26723
- };
27047
+ blocked: boolean;
26724
27048
  };
26725
27049
  };
26726
- export type RevokeEmbedTokenResponse = RevokeEmbedTokenResponses[keyof RevokeEmbedTokenResponses];
26727
- export type ComputersListData = {
27050
+ export type BlockEndUserResponse = BlockEndUserResponses[keyof BlockEndUserResponses];
27051
+ export type UnblockEndUserData = {
26728
27052
  body?: never;
26729
- path?: never;
26730
- query?: {
27053
+ path: {
26731
27054
  /**
26732
- * Maximum number of items to return in this page: a positive integer, at most 100 (default 20; for session resources default and maximum are 1000). A larger value returns 400.
27055
+ * Active service agent identifier from agent creation or listing.
26733
27056
  */
26734
- limit?: number;
27057
+ agent_id: string;
26735
27058
  /**
26736
- * Opaque pagination cursor: pass the next_page value of the previous response unchanged. Omit it for the first page. A cursor from a different query or a malformed one returns 400.
27059
+ * Host user identifier supplied at issuance or from end-user listing.
26737
27060
  */
26738
- page?: string;
27061
+ external_user_id: string;
26739
27062
  };
26740
- url: '/agent/v1/computers';
27063
+ query?: never;
27064
+ url: '/agent/v1/agents/{agent_id}/end_users/{external_user_id}/unblock';
26741
27065
  };
26742
- export type ComputersListErrors = {
27066
+ export type UnblockEndUserErrors = {
26743
27067
  /**
26744
- * Platform error with Computer code, message and hint
27068
+ * Invalid identifier, prefix, limit, cursor or blocklist size; correct the reported input.
26745
27069
  */
26746
- 400: {
26747
- error: {
26748
- code: string;
26749
- message: string;
26750
- hint: string;
26751
- };
26752
- };
27070
+ 400: unknown;
26753
27071
  /**
26754
- * Platform error with Computer code, message and hint
27072
+ * Authenticate with a host credential.
26755
27073
  */
26756
- 401: {
26757
- error: {
26758
- code: string;
26759
- message: string;
27074
+ 401: unknown;
27075
+ /**
27076
+ * Agent or requested user is unavailable to this caller, or the caller is an end user.
27077
+ */
27078
+ 404: unknown;
27079
+ /**
27080
+ * Configure an embed policy before blocking or unblocking; retry if a concurrent policy update caused the conflict.
27081
+ */
27082
+ 409: unknown;
27083
+ };
27084
+ export type UnblockEndUserResponses = {
27085
+ /**
27086
+ * Current end-user view.
27087
+ */
27088
+ 200: {
27089
+ /**
27090
+ * Host application's user identifier, scoped to this organization and agent.
27091
+ */
27092
+ external_user_id: string;
27093
+ /**
27094
+ * Earliest session creation or token issuance time; null for a preemptively blocked user with no history.
27095
+ */
27096
+ first_seen_at: string | null;
27097
+ /**
27098
+ * Latest session update or token issuance time; null when there is no history.
27099
+ */
27100
+ last_active_at: string | null;
27101
+ /**
27102
+ * Total sessions for this end user on this agent.
27103
+ */
27104
+ session_count: number;
27105
+ /**
27106
+ * Accumulated recorded session cost in millionths of a US dollar; zero when no cost has been recorded.
27107
+ */
27108
+ cost_micro_usd: number;
27109
+ /**
27110
+ * Whether the embed policy currently prevents this user from receiving tokens and creating sessions.
27111
+ */
27112
+ blocked: boolean;
27113
+ };
27114
+ };
27115
+ export type UnblockEndUserResponse = UnblockEndUserResponses[keyof UnblockEndUserResponses];
27116
+ export type ExchangeEmbedCodeData = {
27117
+ body: {
27118
+ /**
27119
+ * Single-use credential from the c fragment parameter of hosted_url returned by embed token creation. Valid for 60 seconds.
27120
+ */
27121
+ code: string;
27122
+ };
27123
+ path?: never;
27124
+ query?: never;
27125
+ url: '/agent/v1/embed/exchange';
27126
+ };
27127
+ export type ExchangeEmbedCodeErrors = {
27128
+ /**
27129
+ * Expected a JSON object containing only code. Correct the request body.
27130
+ */
27131
+ 400: unknown;
27132
+ /**
27133
+ * The code is expired, already used or unknown. Return to the host website for a new link; all three cases have the same response body.
27134
+ */
27135
+ 404: unknown;
27136
+ /**
27137
+ * The IP minute limit is reached. Wait for Retry-After before trying a fresh link.
27138
+ */
27139
+ 429: unknown;
27140
+ /**
27141
+ * Exchange or rate limiting is unavailable. Return to the host website for a new link later.
27142
+ */
27143
+ 503: unknown;
27144
+ };
27145
+ export type ExchangeEmbedCodeResponses = {
27146
+ /**
27147
+ * The end-user token and its expiration; the code has been consumed.
27148
+ */
27149
+ 200: {
27150
+ /**
27151
+ * End-user credential for the hosted conversation. Keep it in memory; it cannot be refreshed here.
27152
+ */
27153
+ token: string;
27154
+ /**
27155
+ * Token expiration as an ISO 8601 UTC timestamp. Return to the host website after expiration.
27156
+ */
27157
+ expires_at: string;
27158
+ };
27159
+ };
27160
+ export type ExchangeEmbedCodeResponse = ExchangeEmbedCodeResponses[keyof ExchangeEmbedCodeResponses];
27161
+ export type CreateAnonymousEmbedTokenData = {
27162
+ body: {
27163
+ /**
27164
+ * Public key created by the service agent owner; safe to include in browser code.
27165
+ */
27166
+ publishable_key: string;
27167
+ /**
27168
+ * Secret returned by a previous anonymous issuance for this key. Omit for a new visitor; an unknown secret creates a new visitor.
27169
+ */
27170
+ visitor_secret?: string;
27171
+ };
27172
+ headers: {
27173
+ /**
27174
+ * Browser page origin from the agent policy allowlist.
27175
+ */
27176
+ Origin: string;
27177
+ };
27178
+ path?: never;
27179
+ query?: never;
27180
+ url: '/agent/v1/embed_tokens/anonymous';
27181
+ };
27182
+ export type CreateAnonymousEmbedTokenErrors = {
27183
+ /**
27184
+ * Unknown or invalid request fields, or key budget exceeds policy. Correct the request or ask the owner to update the key.
27185
+ */
27186
+ 400: unknown;
27187
+ /**
27188
+ * Unknown or disabled publishable key. Ask the agent owner for an active key.
27189
+ */
27190
+ 401: unknown;
27191
+ /**
27192
+ * EMBED_BUDGET_EXHAUSTED. The daily spending cap is reached; wait for the UTC reset or ask the owner to raise it.
27193
+ */
27194
+ 402: unknown;
27195
+ /**
27196
+ * EMBED_ORIGIN_NOT_ALLOWED or EMBED_USER_BLOCKED. Use an allowed page origin or contact the owner.
27197
+ */
27198
+ 403: unknown;
27199
+ /**
27200
+ * EMBED_RATE_LIMITED. Wait for the IP minute window or UTC daily session cap reset.
27201
+ */
27202
+ 429: unknown;
27203
+ /**
27204
+ * Anonymous issuance or rate limiting is unavailable; retry later.
27205
+ */
27206
+ 503: unknown;
27207
+ };
27208
+ export type CreateAnonymousEmbedTokenResponses = {
27209
+ /**
27210
+ * End-user token and expiration, with a visitor secret only for a new visitor.
27211
+ */
27212
+ 200: {
27213
+ /**
27214
+ * Short-lived end-user bearer credential for this agent's embedded sessions.
27215
+ */
27216
+ token: string;
27217
+ /**
27218
+ * RFC 3339 expiration; refresh before this time using the same visitor_secret.
27219
+ */
27220
+ expires_at: string;
27221
+ /**
27222
+ * Newly generated visitor secret; save it locally and include it on later requests. Absent when the supplied secret was recognized.
27223
+ */
27224
+ visitor_secret?: string;
27225
+ };
27226
+ };
27227
+ export type CreateAnonymousEmbedTokenResponse = CreateAnonymousEmbedTokenResponses[keyof CreateAnonymousEmbedTokenResponses];
27228
+ export type ListEmbedTokensData = {
27229
+ body?: never;
27230
+ path?: never;
27231
+ query?: {
27232
+ /**
27233
+ * Filter by service agent identifier (agent_ or agt_ prefix).
27234
+ */
27235
+ agent_id?: string;
27236
+ /**
27237
+ * Exact host user identifier supplied at issuance.
27238
+ */
27239
+ external_user_id?: string;
27240
+ /**
27241
+ * Maximum records per page; defaults to 20.
27242
+ */
27243
+ limit?: number;
27244
+ /**
27245
+ * next_page from a previous response with the same filters.
27246
+ */
27247
+ page?: string;
27248
+ };
27249
+ url: '/agent/v1/embed_tokens';
27250
+ };
27251
+ export type ListEmbedTokensErrors = {
27252
+ /**
27253
+ * Invalid filter, limit or cursor; reuse the cursor with its original filters.
27254
+ */
27255
+ 400: unknown;
27256
+ /**
27257
+ * Authenticate with a host credential.
27258
+ */
27259
+ 401: unknown;
27260
+ /**
27261
+ * The grant is missing or belongs to another organization, or the caller is an end user.
27262
+ */
27263
+ 404: unknown;
27264
+ /**
27265
+ * Upstream revocation failed; the record remains unrevoked and the request may be retried.
27266
+ */
27267
+ 502: unknown;
27268
+ };
27269
+ export type ListEmbedTokensResponses = {
27270
+ /**
27271
+ * Issuance records and next page cursor.
27272
+ */
27273
+ 200: {
27274
+ /**
27275
+ * Items of this page, in the order requested by the call.
27276
+ */
27277
+ data: Array<{
27278
+ /**
27279
+ * Grant identifier returned by embed token creation.
27280
+ */
27281
+ id: string;
27282
+ /**
27283
+ * Toolset type id as used in an agent's tools entry, for example agent_toolset_20260401.
27284
+ */
27285
+ type: 'embed_token';
27286
+ /**
27287
+ * Service agent identifier.
27288
+ */
27289
+ agent_id: string;
27290
+ /**
27291
+ * Pinned agent version.
27292
+ */
27293
+ agent_version: number;
27294
+ /**
27295
+ * Exact host user identifier supplied at issuance.
27296
+ */
27297
+ external_user_id: string;
27298
+ /**
27299
+ * Issuance time in RFC 3339 format.
27300
+ */
27301
+ created_at: string;
27302
+ /**
27303
+ * Expiration time in RFC 3339 format.
27304
+ */
27305
+ expires_at: string;
27306
+ /**
27307
+ * Revocation time in RFC 3339 format, or null while not revoked.
27308
+ */
27309
+ revoked_at: string | null;
27310
+ /**
27311
+ * Host origin recorded at issuance, or null when absent.
27312
+ */
27313
+ host_origin: string | null;
27314
+ /**
27315
+ * User or API key that issued the token.
27316
+ */
27317
+ issued_by: {
27318
+ /**
27319
+ * user identifies a signed-in organization member; api_key identifies the issuing API key.
27320
+ */
27321
+ type: 'user' | 'api_key';
27322
+ /**
27323
+ * Identifier of the object, as returned by the API; pass it in the path of follow-up calls on the same resource.
27324
+ */
27325
+ id: string;
27326
+ };
27327
+ }>;
27328
+ /**
27329
+ * Cursor for the next page using the same filters, or null when exhausted.
27330
+ */
27331
+ next_page: string | null;
27332
+ };
27333
+ };
27334
+ export type ListEmbedTokensResponse = ListEmbedTokensResponses[keyof ListEmbedTokensResponses];
27335
+ export type CreateEmbedTokenData = {
27336
+ body: {
27337
+ /**
27338
+ * 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.
27339
+ */
27340
+ hosted?: boolean;
27341
+ /**
27342
+ * Service agent ID or identity_number from agent retrieval; it must belong to your organization and be active.
27343
+ */
27344
+ agent: string;
27345
+ /**
27346
+ * Existing agent version to pin. Omit to pin the latest version at issuance.
27347
+ */
27348
+ version?: number;
27349
+ /**
27350
+ * Your application's stable end-user identifier, scoped to this organization and agent.
27351
+ */
27352
+ external_user_id: string;
27353
+ /**
27354
+ * Token lifetime in seconds. Defaults to the embed policy TTL and cannot exceed its maximum or 3600 seconds.
27355
+ */
27356
+ ttl_seconds?: number;
27357
+ /**
27358
+ * Session budget in cents. Defaults to the embed policy session budget and cannot exceed its maximum.
27359
+ */
27360
+ budget_cents?: number;
27361
+ /**
27362
+ * Optional host context as text blocks, limited to 8192 UTF-8 bytes in total.
27363
+ */
27364
+ system_message?: Array<{
27365
+ /**
27366
+ * The text block kind; text is the only supported kind.
27367
+ */
27368
+ type: 'text';
27369
+ /**
27370
+ * Host context text. All blocks together must fit within 8192 UTF-8 bytes.
27371
+ */
27372
+ text: string;
27373
+ }>;
27374
+ /**
27375
+ * Optional system prompt override, accepted only when the embed policy allows agent overrides.
27376
+ */
27377
+ agent_override?: {
27378
+ /**
27379
+ * Replacement system prompt, or null to clear it for this grant.
27380
+ */
27381
+ system: string | null;
27382
+ };
27383
+ /**
27384
+ * Optional subset of the policy origin entries, compared exactly. Omit to snapshot every policy origin.
27385
+ */
27386
+ allowed_origins?: Array<string>;
27387
+ /**
27388
+ * 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.
27389
+ */
27390
+ metadata?: {
27391
+ [key: string]: string;
27392
+ };
27393
+ };
27394
+ path?: never;
27395
+ query?: never;
27396
+ url: '/agent/v1/embed_tokens';
27397
+ };
27398
+ export type CreateEmbedTokenErrors = {
27399
+ /**
27400
+ * Request fields exceed policy limits, the policy or its environment is unavailable, or a hosted agent has no identity_number. Configure the policy or correct the reported field.
27401
+ */
27402
+ 400: unknown;
27403
+ /**
27404
+ * A valid host credential is required; authenticate with your backend API key.
27405
+ */
27406
+ 401: unknown;
27407
+ /**
27408
+ * The end user is blocked by the embed policy; contact the agent owner.
27409
+ */
27410
+ 403: unknown;
27411
+ /**
27412
+ * The service agent or requested version is unavailable to this caller; check the agent identifier and version.
27413
+ */
27414
+ 404: unknown;
27415
+ /**
27416
+ * Token issuance is unavailable; no usable credential was returned.
27417
+ */
27418
+ 502: unknown;
27419
+ };
27420
+ export type CreateEmbedTokenResponses = {
27421
+ /**
27422
+ * Issued end-user token and its grant identifier and expiration.
27423
+ */
27424
+ 201: {
27425
+ /**
27426
+ * Hosted chat link, returned only when hosted is true. Redirect the user here within 60 seconds; its fragment credential can be exchanged only once.
27427
+ */
27428
+ hosted_url?: string;
27429
+ /**
27430
+ * Grant identifier with the emb_ prefix, identifying this issuance.
27431
+ */
27432
+ id: string;
27433
+ /**
27434
+ * Short-lived end-user credential to pass to your frontend; keep the host API key on your backend.
27435
+ */
27436
+ token: string;
27437
+ /**
27438
+ * Token expiration as an ISO 8601 UTC timestamp, as issued by identity.
27439
+ */
27440
+ expires_at: string;
27441
+ };
27442
+ };
27443
+ export type CreateEmbedTokenResponse = CreateEmbedTokenResponses[keyof CreateEmbedTokenResponses];
27444
+ export type RevokeEmbedTokenData = {
27445
+ body?: never;
27446
+ path: {
27447
+ /**
27448
+ * Grant id returned by issuance or listing.
27449
+ */
27450
+ id: string;
27451
+ };
27452
+ query?: never;
27453
+ url: '/agent/v1/embed_tokens/{id}/revoke';
27454
+ };
27455
+ export type RevokeEmbedTokenErrors = {
27456
+ /**
27457
+ * Invalid filter, limit or cursor; reuse the cursor with its original filters.
27458
+ */
27459
+ 400: unknown;
27460
+ /**
27461
+ * Authenticate with a host credential.
27462
+ */
27463
+ 401: unknown;
27464
+ /**
27465
+ * The grant is missing or belongs to another organization, or the caller is an end user.
27466
+ */
27467
+ 404: unknown;
27468
+ /**
27469
+ * Upstream revocation failed; the record remains unrevoked and the request may be retried.
27470
+ */
27471
+ 502: unknown;
27472
+ };
27473
+ export type RevokeEmbedTokenResponses = {
27474
+ /**
27475
+ * Revoked issuance record, including its original revocation time on repeated calls.
27476
+ */
27477
+ 200: {
27478
+ /**
27479
+ * Grant identifier returned by embed token creation.
27480
+ */
27481
+ id: string;
27482
+ /**
27483
+ * Type tag of the object.
27484
+ */
27485
+ type: 'embed_token';
27486
+ /**
27487
+ * Service agent identifier.
27488
+ */
27489
+ agent_id: string;
27490
+ /**
27491
+ * Pinned agent version.
27492
+ */
27493
+ agent_version: number;
27494
+ /**
27495
+ * Exact host user identifier supplied at issuance.
27496
+ */
27497
+ external_user_id: string;
27498
+ /**
27499
+ * Issuance time in RFC 3339 format.
27500
+ */
27501
+ created_at: string;
27502
+ /**
27503
+ * Expiration time in RFC 3339 format.
27504
+ */
27505
+ expires_at: string;
27506
+ /**
27507
+ * Revocation time in RFC 3339 format, or null while not revoked.
27508
+ */
27509
+ revoked_at: string | null;
27510
+ /**
27511
+ * Host origin recorded at issuance, or null when absent.
27512
+ */
27513
+ host_origin: string | null;
27514
+ /**
27515
+ * User or API key that issued the token.
27516
+ */
27517
+ issued_by: {
27518
+ /**
27519
+ * user identifies a signed-in organization member; api_key identifies the issuing API key.
27520
+ */
27521
+ type: 'user' | 'api_key';
27522
+ /**
27523
+ * Identifier of the object, as returned by the API; pass it in the path of follow-up calls on the same resource.
27524
+ */
27525
+ id: string;
27526
+ };
27527
+ };
27528
+ };
27529
+ export type RevokeEmbedTokenResponse = RevokeEmbedTokenResponses[keyof RevokeEmbedTokenResponses];
27530
+ export type ComputersListData = {
27531
+ body?: never;
27532
+ path?: never;
27533
+ query?: {
27534
+ /**
27535
+ * Maximum number of items to return in this page: a positive integer, at most 100 (default 20; for session resources default and maximum are 1000). A larger value returns 400.
27536
+ */
27537
+ limit?: number;
27538
+ /**
27539
+ * Opaque pagination cursor: pass the next_page value of the previous response unchanged. Omit it for the first page. A cursor from a different query or a malformed one returns 400.
27540
+ */
27541
+ page?: string;
27542
+ };
27543
+ url: '/agent/v1/computers';
27544
+ };
27545
+ export type ComputersListErrors = {
27546
+ /**
27547
+ * Platform error with Computer code, message and hint
27548
+ */
27549
+ 400: {
27550
+ error: {
27551
+ code: string;
27552
+ message: string;
27553
+ hint: string;
27554
+ };
27555
+ };
27556
+ /**
27557
+ * Platform error with Computer code, message and hint
27558
+ */
27559
+ 401: {
27560
+ error: {
27561
+ code: string;
27562
+ message: string;
26760
27563
  hint: string;
26761
27564
  };
26762
27565
  };
@@ -26857,6 +27660,10 @@ export type ComputersListResponses = {
26857
27660
  * Public id of the sandbox that backs the computer, usable with the sandbox API; null while none has been created.
26858
27661
  */
26859
27662
  sandbox_id: string | null;
27663
+ /**
27664
+ * not_started means the machine has not been created; first use provisions it. provisioned means a machine has been created, whether running or paused.
27665
+ */
27666
+ machine_state: 'not_started' | 'provisioned';
26860
27667
  /**
26861
27668
  * Environment recipe the computer was created with; null when none.
26862
27669
  */
@@ -27018,6 +27825,10 @@ export type ComputersCreateResponses = {
27018
27825
  * Public id of the sandbox that backs the computer, usable with the sandbox API; null while none has been created.
27019
27826
  */
27020
27827
  sandbox_id: string | null;
27828
+ /**
27829
+ * not_started means the machine has not been created; first use provisions it. provisioned means a machine has been created, whether running or paused.
27830
+ */
27831
+ machine_state: 'not_started' | 'provisioned';
27021
27832
  /**
27022
27833
  * Environment recipe the computer was created with; null when none.
27023
27834
  */
@@ -27286,6 +28097,10 @@ export type ComputersRetrieveResponses = {
27286
28097
  * Public id of the sandbox that backs the computer, usable with the sandbox API; null while none has been created.
27287
28098
  */
27288
28099
  sandbox_id: string | null;
28100
+ /**
28101
+ * not_started means the machine has not been created; first use provisions it. provisioned means a machine has been created, whether running or paused.
28102
+ */
28103
+ machine_state: 'not_started' | 'provisioned';
27289
28104
  /**
27290
28105
  * Environment recipe the computer was created with; null when none.
27291
28106
  */
@@ -27318,6 +28133,10 @@ export type ComputersRetrieveResponses = {
27318
28133
  * Number of files stored on the computer.
27319
28134
  */
27320
28135
  file_count: number;
28136
+ /**
28137
+ * False when disk statistics are partial because the 20-second or 50,000-entry limit was reached. Tier-local directories are excluded.
28138
+ */
28139
+ stats_complete: boolean;
27321
28140
  };
27322
28141
  };
27323
28142
  export type ComputersRetrieveResponse = ComputersRetrieveResponses[keyof ComputersRetrieveResponses];
@@ -27451,6 +28270,10 @@ export type ComputersUpdateResponses = {
27451
28270
  * Public id of the sandbox that backs the computer, usable with the sandbox API; null while none has been created.
27452
28271
  */
27453
28272
  sandbox_id: string | null;
28273
+ /**
28274
+ * not_started means the machine has not been created; first use provisions it. provisioned means a machine has been created, whether running or paused.
28275
+ */
28276
+ machine_state: 'not_started' | 'provisioned';
27454
28277
  /**
27455
28278
  * Environment recipe the computer was created with; null when none.
27456
28279
  */
@@ -27599,6 +28422,10 @@ export type ComputersArchiveResponses = {
27599
28422
  * Public id of the sandbox that backs the computer, usable with the sandbox API; null while none has been created.
27600
28423
  */
27601
28424
  sandbox_id: string | null;
28425
+ /**
28426
+ * not_started means the machine has not been created; first use provisions it. provisioned means a machine has been created, whether running or paused.
28427
+ */
28428
+ machine_state: 'not_started' | 'provisioned';
27602
28429
  /**
27603
28430
  * Environment recipe the computer was created with; null when none.
27604
28431
  */
@@ -28193,9 +29020,269 @@ export type ConnectComputerResponses = {
28193
29020
  * Sandbox template the computer's sandbox was created from.
28194
29021
  */
28195
29022
  template_id: string;
29023
+ /**
29024
+ * Machine the connection reached: light (the always-present file machine) or heavy (the full machine started on demand and kept while leases are held).
29025
+ */
29026
+ tier: 'light' | 'heavy';
29027
+ /**
29028
+ * Id of the lease that keeps this connection's machine in service; renew it while the connection is open and release it on close. Null when no lease exists.
29029
+ */
29030
+ lease_id: string | null;
29031
+ /**
29032
+ * Time the lease lapses unless renewed, as an ISO 8601 timestamp; renew at about a third of the time remaining.
29033
+ */
29034
+ lease_expires_at: string | null;
28196
29035
  };
28197
29036
  };
28198
29037
  export type ConnectComputerResponse = ConnectComputerResponses[keyof ConnectComputerResponses];
29038
+ export type RenewComputerLeaseData = {
29039
+ body?: never;
29040
+ path: {
29041
+ /**
29042
+ * Computer id (cmp_...), as returned by computers.create or computers.list.
29043
+ */
29044
+ computer_id: string;
29045
+ /**
29046
+ * lease_id from the connect response.
29047
+ */
29048
+ lease_id: string;
29049
+ };
29050
+ query?: never;
29051
+ url: '/agent/v1/computers/{computer_id}/leases/{lease_id}/renew';
29052
+ };
29053
+ export type RenewComputerLeaseErrors = {
29054
+ /**
29055
+ * Platform error with Computer code, message and hint
29056
+ */
29057
+ 400: {
29058
+ error: {
29059
+ code: string;
29060
+ message: string;
29061
+ hint: string;
29062
+ };
29063
+ };
29064
+ /**
29065
+ * Platform error with Computer code, message and hint
29066
+ */
29067
+ 401: {
29068
+ error: {
29069
+ code: string;
29070
+ message: string;
29071
+ hint: string;
29072
+ };
29073
+ };
29074
+ /**
29075
+ * Platform error with Computer code, message and hint
29076
+ */
29077
+ 403: {
29078
+ error: {
29079
+ code: string;
29080
+ message: string;
29081
+ hint: string;
29082
+ };
29083
+ };
29084
+ /**
29085
+ * Computer or path not found; foreign computers are indistinguishable from absent computers.
29086
+ */
29087
+ 404: {
29088
+ error: {
29089
+ code: string;
29090
+ message: string;
29091
+ hint: string;
29092
+ };
29093
+ };
29094
+ /**
29095
+ * Platform error with Computer code, message and hint
29096
+ */
29097
+ 409: {
29098
+ error: {
29099
+ code: string;
29100
+ message: string;
29101
+ hint: string;
29102
+ };
29103
+ };
29104
+ /**
29105
+ * Platform error with Computer code, message and hint
29106
+ */
29107
+ 413: {
29108
+ error: {
29109
+ code: string;
29110
+ message: string;
29111
+ hint: string;
29112
+ };
29113
+ };
29114
+ /**
29115
+ * Platform error with Computer code, message and hint
29116
+ */
29117
+ 429: {
29118
+ error: {
29119
+ code: string;
29120
+ message: string;
29121
+ hint: string;
29122
+ };
29123
+ };
29124
+ /**
29125
+ * Platform error with Computer code, message and hint
29126
+ */
29127
+ 500: {
29128
+ error: {
29129
+ code: string;
29130
+ message: string;
29131
+ hint: string;
29132
+ };
29133
+ };
29134
+ /**
29135
+ * Platform error with Computer code, message and hint
29136
+ */
29137
+ 503: {
29138
+ error: {
29139
+ code: string;
29140
+ message: string;
29141
+ hint: string;
29142
+ };
29143
+ };
29144
+ };
29145
+ export type RenewComputerLeaseError = RenewComputerLeaseErrors[keyof RenewComputerLeaseErrors];
29146
+ export type RenewComputerLeaseResponses = {
29147
+ /**
29148
+ * Computer result
29149
+ */
29150
+ 200: {
29151
+ /**
29152
+ * Id of the lease that keeps this connection's machine in service; renew it while the connection is open and release it on close. Null when no lease exists.
29153
+ */
29154
+ lease_id: string;
29155
+ /**
29156
+ * Time the lease lapses unless renewed, as an ISO 8601 timestamp; renew at about a third of the time remaining.
29157
+ */
29158
+ lease_expires_at: string;
29159
+ };
29160
+ };
29161
+ export type RenewComputerLeaseResponse = RenewComputerLeaseResponses[keyof RenewComputerLeaseResponses];
29162
+ export type ReleaseComputerLeaseData = {
29163
+ body?: never;
29164
+ path: {
29165
+ /**
29166
+ * Computer id (cmp_...), as returned by computers.create or computers.list.
29167
+ */
29168
+ computer_id: string;
29169
+ /**
29170
+ * lease_id from the connect response.
29171
+ */
29172
+ lease_id: string;
29173
+ };
29174
+ query?: never;
29175
+ url: '/agent/v1/computers/{computer_id}/leases/{lease_id}';
29176
+ };
29177
+ export type ReleaseComputerLeaseErrors = {
29178
+ /**
29179
+ * Platform error with Computer code, message and hint
29180
+ */
29181
+ 400: {
29182
+ error: {
29183
+ code: string;
29184
+ message: string;
29185
+ hint: string;
29186
+ };
29187
+ };
29188
+ /**
29189
+ * Platform error with Computer code, message and hint
29190
+ */
29191
+ 401: {
29192
+ error: {
29193
+ code: string;
29194
+ message: string;
29195
+ hint: string;
29196
+ };
29197
+ };
29198
+ /**
29199
+ * Platform error with Computer code, message and hint
29200
+ */
29201
+ 403: {
29202
+ error: {
29203
+ code: string;
29204
+ message: string;
29205
+ hint: string;
29206
+ };
29207
+ };
29208
+ /**
29209
+ * Computer or path not found; foreign computers are indistinguishable from absent computers.
29210
+ */
29211
+ 404: {
29212
+ error: {
29213
+ code: string;
29214
+ message: string;
29215
+ hint: string;
29216
+ };
29217
+ };
29218
+ /**
29219
+ * Platform error with Computer code, message and hint
29220
+ */
29221
+ 409: {
29222
+ error: {
29223
+ code: string;
29224
+ message: string;
29225
+ hint: string;
29226
+ };
29227
+ };
29228
+ /**
29229
+ * Platform error with Computer code, message and hint
29230
+ */
29231
+ 413: {
29232
+ error: {
29233
+ code: string;
29234
+ message: string;
29235
+ hint: string;
29236
+ };
29237
+ };
29238
+ /**
29239
+ * Platform error with Computer code, message and hint
29240
+ */
29241
+ 429: {
29242
+ error: {
29243
+ code: string;
29244
+ message: string;
29245
+ hint: string;
29246
+ };
29247
+ };
29248
+ /**
29249
+ * Platform error with Computer code, message and hint
29250
+ */
29251
+ 500: {
29252
+ error: {
29253
+ code: string;
29254
+ message: string;
29255
+ hint: string;
29256
+ };
29257
+ };
29258
+ /**
29259
+ * Platform error with Computer code, message and hint
29260
+ */
29261
+ 503: {
29262
+ error: {
29263
+ code: string;
29264
+ message: string;
29265
+ hint: string;
29266
+ };
29267
+ };
29268
+ };
29269
+ export type ReleaseComputerLeaseError = ReleaseComputerLeaseErrors[keyof ReleaseComputerLeaseErrors];
29270
+ export type ReleaseComputerLeaseResponses = {
29271
+ /**
29272
+ * Computer result
29273
+ */
29274
+ 200: {
29275
+ /**
29276
+ * Id of the released lease.
29277
+ */
29278
+ id: string;
29279
+ /**
29280
+ * Object type tag.
29281
+ */
29282
+ type: 'computer_lease_released';
29283
+ };
29284
+ };
29285
+ export type ReleaseComputerLeaseResponse = ReleaseComputerLeaseResponses[keyof ReleaseComputerLeaseResponses];
28199
29286
  export type ListToolsetsData = {
28200
29287
  body?: never;
28201
29288
  path?: never;
@@ -28588,11 +29675,11 @@ export type ForkSessionResponses = {
28588
29675
  */
28589
29676
  description: null | string;
28590
29677
  /**
28591
- * URL MCP servers the agent can call, paired one-to-one with mcp_toolset entries in tools and saved with the agent version. No credentials are stored here.
29678
+ * Praxis extension: Streamable HTTP, SSE or trusted stdio MCP servers, persisted with the agent version. Optional fields remain omitted when not supplied.
28592
29679
  */
28593
29680
  mcp_servers: Array<{
28594
29681
  /**
28595
- * Always `url`. An MCP server reached over a URL.
29682
+ * Streamable HTTP transport.
28596
29683
  */
28597
29684
  type: 'url';
28598
29685
  /**
@@ -28600,9 +29687,69 @@ export type ForkSessionResponses = {
28600
29687
  */
28601
29688
  name: string;
28602
29689
  /**
28603
- * http(s) endpoint of the MCP server, at most 2048 characters.
29690
+ * HTTP or HTTPS MCP server endpoint.
28604
29691
  */
28605
29692
  url: string;
29693
+ /**
29694
+ * Praxis extension: request headers. Platform identity headers take precedence, case-insensitively.
29695
+ */
29696
+ headers?: {
29697
+ [key: string]: string;
29698
+ };
29699
+ /**
29700
+ * Praxis extension: timeout in milliseconds. Applied to stdio; HTTP/SSE currently use the connection SDK default.
29701
+ */
29702
+ timeout_ms?: number;
29703
+ } | {
29704
+ /**
29705
+ * Legacy SSE transport.
29706
+ */
29707
+ type: 'sse';
29708
+ /**
29709
+ * Name of the MCP server; the mcp_toolset entry that refers to it uses the same name in mcp_server_name.
29710
+ */
29711
+ name: string;
29712
+ /**
29713
+ * HTTP or HTTPS MCP server endpoint.
29714
+ */
29715
+ url: string;
29716
+ /**
29717
+ * Praxis extension: request headers. Platform identity headers take precedence, case-insensitively.
29718
+ */
29719
+ headers?: {
29720
+ [key: string]: string;
29721
+ };
29722
+ /**
29723
+ * Praxis extension: timeout in milliseconds. Applied to stdio; HTTP/SSE currently use the connection SDK default.
29724
+ */
29725
+ timeout_ms?: number;
29726
+ } | {
29727
+ /**
29728
+ * Run a command on the agent computer.
29729
+ */
29730
+ type: 'stdio';
29731
+ /**
29732
+ * Name of the MCP server; the mcp_toolset entry that refers to it uses the same name in mcp_server_name.
29733
+ */
29734
+ name: string;
29735
+ /**
29736
+ * Executable command on the agent computer.
29737
+ */
29738
+ command: string;
29739
+ /**
29740
+ * Command arguments; omitted means no arguments.
29741
+ */
29742
+ args?: Array<string>;
29743
+ /**
29744
+ * Praxis extension: environment variables for the command on the agent computer.
29745
+ */
29746
+ env?: {
29747
+ [key: string]: string;
29748
+ };
29749
+ /**
29750
+ * Praxis extension: timeout in milliseconds. Applied to stdio; HTTP/SSE currently use the connection SDK default.
29751
+ */
29752
+ timeout_ms?: number;
28606
29753
  }>;
28607
29754
  /**
28608
29755
  * Model identifier and configuration.
@@ -28693,11 +29840,11 @@ export type ForkSessionResponses = {
28693
29840
  */
28694
29841
  description: null | string;
28695
29842
  /**
28696
- * URL MCP servers the agent can call, paired one-to-one with mcp_toolset entries in tools and saved with the agent version. No credentials are stored here.
29843
+ * Praxis extension: Streamable HTTP, SSE or trusted stdio MCP servers, persisted with the agent version. Optional fields remain omitted when not supplied.
28697
29844
  */
28698
29845
  mcp_servers: Array<{
28699
29846
  /**
28700
- * Always `url`. An MCP server reached over a URL.
29847
+ * Streamable HTTP transport.
28701
29848
  */
28702
29849
  type: 'url';
28703
29850
  /**
@@ -28705,9 +29852,69 @@ export type ForkSessionResponses = {
28705
29852
  */
28706
29853
  name: string;
28707
29854
  /**
28708
- * http(s) endpoint of the MCP server, at most 2048 characters.
29855
+ * HTTP or HTTPS MCP server endpoint.
28709
29856
  */
28710
29857
  url: string;
29858
+ /**
29859
+ * Praxis extension: request headers. Platform identity headers take precedence, case-insensitively.
29860
+ */
29861
+ headers?: {
29862
+ [key: string]: string;
29863
+ };
29864
+ /**
29865
+ * Praxis extension: timeout in milliseconds. Applied to stdio; HTTP/SSE currently use the connection SDK default.
29866
+ */
29867
+ timeout_ms?: number;
29868
+ } | {
29869
+ /**
29870
+ * Legacy SSE transport.
29871
+ */
29872
+ type: 'sse';
29873
+ /**
29874
+ * Name of the MCP server; the mcp_toolset entry that refers to it uses the same name in mcp_server_name.
29875
+ */
29876
+ name: string;
29877
+ /**
29878
+ * HTTP or HTTPS MCP server endpoint.
29879
+ */
29880
+ url: string;
29881
+ /**
29882
+ * Praxis extension: request headers. Platform identity headers take precedence, case-insensitively.
29883
+ */
29884
+ headers?: {
29885
+ [key: string]: string;
29886
+ };
29887
+ /**
29888
+ * Praxis extension: timeout in milliseconds. Applied to stdio; HTTP/SSE currently use the connection SDK default.
29889
+ */
29890
+ timeout_ms?: number;
29891
+ } | {
29892
+ /**
29893
+ * Run a command on the agent computer.
29894
+ */
29895
+ type: 'stdio';
29896
+ /**
29897
+ * Name of the MCP server; the mcp_toolset entry that refers to it uses the same name in mcp_server_name.
29898
+ */
29899
+ name: string;
29900
+ /**
29901
+ * Executable command on the agent computer.
29902
+ */
29903
+ command: string;
29904
+ /**
29905
+ * Command arguments; omitted means no arguments.
29906
+ */
29907
+ args?: Array<string>;
29908
+ /**
29909
+ * Praxis extension: environment variables for the command on the agent computer.
29910
+ */
29911
+ env?: {
29912
+ [key: string]: string;
29913
+ };
29914
+ /**
29915
+ * Praxis extension: timeout in milliseconds. Applied to stdio; HTTP/SSE currently use the connection SDK default.
29916
+ */
29917
+ timeout_ms?: number;
28711
29918
  }>;
28712
29919
  /**
28713
29920
  * Model identifier and configuration.
@@ -28801,7 +30008,7 @@ export type ForkSessionResponses = {
28801
30008
  */
28802
30009
  system: null | string;
28803
30010
  /**
28804
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
30011
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
28805
30012
  */
28806
30013
  tools: Array<{
28807
30014
  /**
@@ -29295,7 +30502,7 @@ export type ForkSessionResponses = {
29295
30502
  */
29296
30503
  system: null | string;
29297
30504
  /**
29298
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
30505
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
29299
30506
  */
29300
30507
  tools: Array<{
29301
30508
  /**
@@ -30108,6 +31315,14 @@ export type ForkSessionResponses = {
30108
31315
  */
30109
31316
  message_id: string;
30110
31317
  } | null;
31318
+ /**
31319
+ * End-user identifier associated with the session, or null when none is recorded. Own-face extension; use external_user_id on sessions.list to find this user's sessions.
31320
+ */
31321
+ readonly external_user_id: string | null;
31322
+ /**
31323
+ * Origin of the session: kit, iframe, hosted, api or automation; null when unavailable. Own-face extension; use source on sessions.list to filter by origin.
31324
+ */
31325
+ readonly source: 'kit' | 'iframe' | 'hosted' | 'api' | 'automation' | null;
30111
31326
  };
30112
31327
  };
30113
31328
  export type ForkSessionResponse = ForkSessionResponses[keyof ForkSessionResponses];
@@ -30592,6 +31807,188 @@ export type ListSessionCompactionsResponses = {
30592
31807
  };
30593
31808
  };
30594
31809
  export type ListSessionCompactionsResponse = ListSessionCompactionsResponses[keyof ListSessionCompactionsResponses];
31810
+ export type GetEmbedAppearanceData = {
31811
+ body?: never;
31812
+ headers?: {
31813
+ /**
31814
+ * Active public key from the agent's console embed settings; alternative to an end-user Bearer token.
31815
+ */
31816
+ 'Praxis-Publishable-Key'?: string;
31817
+ };
31818
+ path?: never;
31819
+ query?: never;
31820
+ url: '/agent/v1/embed/appearance';
31821
+ };
31822
+ export type GetEmbedAppearanceErrors = {
31823
+ /**
31824
+ * Addressing parameters are not accepted; remove identity_number, agent_id and other query parameters.
31825
+ */
31826
+ 400: unknown;
31827
+ /**
31828
+ * Supply a valid embed token or an active publishable key; organization member credentials cannot read this surface.
31829
+ */
31830
+ 401: unknown;
31831
+ /**
31832
+ * The credential's service agent is absent or archived; obtain credentials for an active service agent.
31833
+ */
31834
+ 404: unknown;
31835
+ /**
31836
+ * Appearance is temporarily unavailable; use default appearance and continue the conversation.
31837
+ */
31838
+ 503: unknown;
31839
+ };
31840
+ export type GetEmbedAppearanceResponses = {
31841
+ /**
31842
+ * Saved Kit options, at most 8192 UTF-8 JSON bytes. Omitted groups use Kit defaults; an unconfigured agent returns an empty object.
31843
+ */
31844
+ 200: {
31845
+ /**
31846
+ * Public identity displayed on the chat page, independent of the internal agent name.
31847
+ */
31848
+ agent?: {
31849
+ /**
31850
+ * Display name; omission keeps the neutral browser-language default.
31851
+ */
31852
+ name?: string;
31853
+ /**
31854
+ * Optional HTTPS avatar image URL; non-HTTPS images are rejected.
31855
+ */
31856
+ avatar?: string;
31857
+ };
31858
+ /**
31859
+ * Loader default: inline stays in the page, sidebar attaches to the edge, popup floats above its launcher, modal centers an overlay. A script data-layout overrides it; Hosted always uses inline.
31860
+ */
31861
+ layout?: 'inline' | 'sidebar' | 'popup' | 'modal';
31862
+ /**
31863
+ * Default entry button for the loader; an explicit script data-launcher takes precedence.
31864
+ */
31865
+ launcher?: {
31866
+ /**
31867
+ * Entry control: none hides the launcher, bubble shows a button, mascot shows the image.
31868
+ */
31869
+ type: 'none' | 'bubble' | 'mascot';
31870
+ /**
31871
+ * Optional HTTPS mascot image URL.
31872
+ */
31873
+ image?: string;
31874
+ /**
31875
+ * Launcher corner: bottom-right is the default; bottom-left uses the opposite corner.
31876
+ */
31877
+ position?: 'bottom-right' | 'bottom-left';
31878
+ /**
31879
+ * Accessible entry button label and bubble text; omission uses the default chat label.
31880
+ */
31881
+ label?: string;
31882
+ };
31883
+ /**
31884
+ * Visible chat heading; omitted title uses the public agent name.
31885
+ */
31886
+ header?: {
31887
+ /**
31888
+ * Optional heading text shown instead of the public agent name.
31889
+ */
31890
+ title?: string;
31891
+ /**
31892
+ * Optional secondary line beneath the heading.
31893
+ */
31894
+ subtitle?: string;
31895
+ /**
31896
+ * Optional HTTPS image shown in the heading avatar position.
31897
+ */
31898
+ icon?: string;
31899
+ };
31900
+ /**
31901
+ * Visual tokens applied to the conversation and header; omitted fields use Kit defaults.
31902
+ */
31903
+ theme?: {
31904
+ /**
31905
+ * light or dark selects a fixed scheme; system follows the device preference.
31906
+ */
31907
+ colorScheme?: 'light' | 'dark' | 'system';
31908
+ /**
31909
+ * Explicit opaque CSS accent color, for example #167A43.
31910
+ */
31911
+ accent?: string;
31912
+ /**
31913
+ * Explicit opaque CSS background color, for example #ffffff.
31914
+ */
31915
+ surface?: string;
31916
+ /**
31917
+ * neutral uses grayscale surfaces, warm uses warm tones, cool uses cool tones.
31918
+ */
31919
+ grayscale?: 'neutral' | 'warm' | 'cool';
31920
+ /**
31921
+ * Corner rounding: none is square, sm is small, md is medium, lg is large, full is fully rounded.
31922
+ */
31923
+ radius?: 'none' | 'sm' | 'md' | 'lg' | 'full';
31924
+ /**
31925
+ * Spacing: compact reduces gaps, normal uses defaults, spacious increases gaps.
31926
+ */
31927
+ density?: 'compact' | 'normal' | 'spacious';
31928
+ /**
31929
+ * CSS font family list using fonts available on the device; external font loading is not configured here.
31930
+ */
31931
+ fontFamily?: string;
31932
+ /**
31933
+ * Positive base font size in CSS pixels; omission preserves Kit sizing.
31934
+ */
31935
+ fontSize?: number;
31936
+ };
31937
+ /**
31938
+ * Reserved Kit locale preference: zh for Chinese, en for English. Kit currently passes this option through without translating all controls.
31939
+ */
31940
+ locale?: 'zh' | 'en';
31941
+ /**
31942
+ * Content displayed before the first message in a conversation.
31943
+ */
31944
+ startScreen?: {
31945
+ /**
31946
+ * Optional welcome text on the empty conversation.
31947
+ */
31948
+ greeting?: string;
31949
+ /**
31950
+ * Up to four suggested questions; clicking a label sends its prompt text.
31951
+ */
31952
+ prompts?: Array<{
31953
+ /**
31954
+ * Visible suggested-question button text.
31955
+ */
31956
+ label: string;
31957
+ /**
31958
+ * User message sent when this suggestion is selected.
31959
+ */
31960
+ prompt: string;
31961
+ }>;
31962
+ };
31963
+ /**
31964
+ * Message input appearance; transport and attachment settings are excluded.
31965
+ */
31966
+ composer?: {
31967
+ /**
31968
+ * Hint shown when the message input is empty.
31969
+ */
31970
+ placeholder?: string;
31971
+ };
31972
+ /**
31973
+ * Optional notice displayed beside the conversation composer.
31974
+ */
31975
+ disclaimer?: string;
31976
+ /**
31977
+ * Optional text below the conversation.
31978
+ */
31979
+ footer?: string;
31980
+ /**
31981
+ * Availability of the conversation history control.
31982
+ */
31983
+ history?: {
31984
+ /**
31985
+ * False hides history; omission uses the default enabled state.
31986
+ */
31987
+ enabled?: boolean;
31988
+ };
31989
+ };
31990
+ };
31991
+ export type GetEmbedAppearanceResponse = GetEmbedAppearanceResponses[keyof GetEmbedAppearanceResponses];
30595
31992
  export type CreateAudioSpeechData = {
30596
31993
  body: unknown & {
30597
31994
  /**
@@ -35969,6 +37366,175 @@ export type CountResponseInputTokensResponses = {
35969
37366
  };
35970
37367
  };
35971
37368
  export type CountResponseInputTokensResponse = CountResponseInputTokensResponses[keyof CountResponseInputTokensResponses];
37369
+ export type ListOrganizationFeedbackData = {
37370
+ body?: never;
37371
+ path?: never;
37372
+ query?: {
37373
+ /**
37374
+ * Only feedback in these phases: a comma-separated list of open, awaiting_customer, in_progress, resolved or closed, for example open,in_progress; see the phase field of a feedback for what each means.
37375
+ */
37376
+ phase?: string;
37377
+ /**
37378
+ * Case-insensitive text matched against titles and message bodies.
37379
+ */
37380
+ query?: string;
37381
+ /**
37382
+ * Items per page, 1 to 100.
37383
+ */
37384
+ limit?: number;
37385
+ /**
37386
+ * Opaque cursor from next_page of the previous response.
37387
+ */
37388
+ page?: string;
37389
+ };
37390
+ url: '/organization/v1/feedback';
37391
+ };
37392
+ export type ListOrganizationFeedbackErrors = {
37393
+ /**
37394
+ * INVALID_PARAMS; correct the fields identified by violations.
37395
+ */
37396
+ 400: unknown;
37397
+ /**
37398
+ * Missing or invalid credential; authenticate with a valid API key, Console session, or machine token.
37399
+ */
37400
+ 401: unknown;
37401
+ };
37402
+ export type ListOrganizationFeedbackResponses = {
37403
+ /**
37404
+ * One page of feedback.
37405
+ */
37406
+ 200: {
37407
+ /**
37408
+ * Object type tag, always page.
37409
+ */
37410
+ object: 'page';
37411
+ /**
37412
+ * The feedback on this page.
37413
+ */
37414
+ data: Array<{
37415
+ /**
37416
+ * Object type tag, always feedback.
37417
+ */
37418
+ object: 'feedback';
37419
+ /**
37420
+ * Feedback identifier, prefixed with fb_.
37421
+ */
37422
+ id: string;
37423
+ /**
37424
+ * Short summary of the request, if one was given.
37425
+ */
37426
+ title?: string | null;
37427
+ /**
37428
+ * Feedback type key, if one was given.
37429
+ */
37430
+ type?: string | null;
37431
+ /**
37432
+ * The first message the requester wrote.
37433
+ */
37434
+ message: string;
37435
+ /**
37436
+ * Where the request stands: open means submitted and not yet picked up; awaiting_customer means support is waiting for your reply; in_progress means support is working on it; resolved means it was answered and marked solved; closed means it was closed without further action.
37437
+ */
37438
+ phase: 'open' | 'awaiting_customer' | 'in_progress' | 'resolved' | 'closed';
37439
+ /**
37440
+ * Coarser state derived from phase: unresolved means still open or in progress; resolved means resolved or closed; ignored means support set it aside.
37441
+ */
37442
+ status: 'unresolved' | 'resolved' | 'ignored';
37443
+ /**
37444
+ * Channel the feedback came through: console for the Console help page, api for API callers, codemode for AI callers using a machine token.
37445
+ */
37446
+ source: 'console' | 'api' | 'codemode';
37447
+ /**
37448
+ * Page or API URL the requester reported.
37449
+ */
37450
+ url?: string | null;
37451
+ /**
37452
+ * When the first support reply is due, counted in business hours.
37453
+ */
37454
+ first_response_due_time?: string | null;
37455
+ /**
37456
+ * When support first replied, if it has.
37457
+ */
37458
+ first_response_time?: string | null;
37459
+ /**
37460
+ * Time of the latest message visible to the requester.
37461
+ */
37462
+ last_message_time: string;
37463
+ /**
37464
+ * True while the requester has not read the latest support reply.
37465
+ */
37466
+ unread: boolean;
37467
+ /**
37468
+ * When the feedback was submitted.
37469
+ */
37470
+ create_time: string;
37471
+ /**
37472
+ * When the feedback last changed.
37473
+ */
37474
+ update_time: string;
37475
+ /**
37476
+ * How the feedback was submitted; only the kind is shown, never who.
37477
+ */
37478
+ reporter?: {
37479
+ /**
37480
+ * user means a signed-in person, api_key means an API key, agent_session means an AI agent session.
37481
+ */
37482
+ type?: 'user' | 'api_key' | 'agent_session';
37483
+ };
37484
+ /**
37485
+ * The latest message you can see, for list rows; phase-change events do not count.
37486
+ */
37487
+ last_message_preview?: {
37488
+ /**
37489
+ * customer means your organization wrote it; staff means the support team; system means the automatic acknowledgement.
37490
+ */
37491
+ author_kind?: 'customer' | 'staff' | 'system';
37492
+ /**
37493
+ * Plain text of the message, at most 120 characters.
37494
+ */
37495
+ body?: string;
37496
+ /**
37497
+ * When the message was written.
37498
+ */
37499
+ create_time?: string;
37500
+ } | null;
37501
+ /**
37502
+ * Files attached to this item; metadata only, bytes are never inlined.
37503
+ */
37504
+ attachments: Array<{
37505
+ /**
37506
+ * Attachment identifier, prefixed with fba_.
37507
+ */
37508
+ id?: string;
37509
+ /**
37510
+ * Original filename of the attachment.
37511
+ */
37512
+ name?: string;
37513
+ /**
37514
+ * MIME type of the attachment content.
37515
+ */
37516
+ content_type?: string;
37517
+ /**
37518
+ * Size of the attachment in bytes.
37519
+ */
37520
+ size?: number;
37521
+ /**
37522
+ * When the attachment was stored.
37523
+ */
37524
+ create_time?: string;
37525
+ }>;
37526
+ }>;
37527
+ /**
37528
+ * True when another page follows.
37529
+ */
37530
+ has_more: boolean;
37531
+ /**
37532
+ * Opaque cursor for the next page; null on the last page.
37533
+ */
37534
+ next_page: string | null;
37535
+ };
37536
+ };
37537
+ export type ListOrganizationFeedbackResponse = ListOrganizationFeedbackResponses[keyof ListOrganizationFeedbackResponses];
35972
37538
  export type CreateOrganizationFeedbackData = {
35973
37539
  body: {
35974
37540
  /**
@@ -35991,6 +37557,14 @@ export type CreateOrganizationFeedbackData = {
35991
37557
  * X-Request-Id from the failed response or the related error event ID.
35992
37558
  */
35993
37559
  associated_event_id?: string;
37560
+ /**
37561
+ * Short summary shown in the feedback list; at most 200 Unicode code points.
37562
+ */
37563
+ title?: string;
37564
+ /**
37565
+ * Feedback type key enabled in the help settings, such as issue, suggestion, billing or other. Unknown or disabled keys are rejected with INVALID_PARAMS.
37566
+ */
37567
+ type?: string;
35994
37568
  /**
35995
37569
  * Optional string labels for grouping the reported problem.
35996
37570
  */
@@ -36065,6 +37639,458 @@ export type CreateOrganizationFeedbackResponses = {
36065
37639
  };
36066
37640
  };
36067
37641
  export type CreateOrganizationFeedbackResponse = CreateOrganizationFeedbackResponses[keyof CreateOrganizationFeedbackResponses];
37642
+ export type GetOrganizationFeedbackCountsData = {
37643
+ body?: never;
37644
+ path?: never;
37645
+ query?: never;
37646
+ url: '/organization/v1/feedback/counts';
37647
+ };
37648
+ export type GetOrganizationFeedbackCountsErrors = {
37649
+ /**
37650
+ * Missing or invalid credential; authenticate with a valid API key, Console session, or machine token.
37651
+ */
37652
+ 401: unknown;
37653
+ };
37654
+ export type GetOrganizationFeedbackCountsResponses = {
37655
+ /**
37656
+ * Counts per phase.
37657
+ */
37658
+ 200: {
37659
+ /**
37660
+ * Object type tag, always feedback.counts.
37661
+ */
37662
+ object: 'feedback.counts';
37663
+ /**
37664
+ * Feedback in phase open: submitted and not yet picked up.
37665
+ */
37666
+ open: number;
37667
+ /**
37668
+ * Feedback in phase awaiting_customer: support is waiting for your reply.
37669
+ */
37670
+ awaiting_customer: number;
37671
+ /**
37672
+ * Feedback in phase in_progress: support is working on it.
37673
+ */
37674
+ in_progress: number;
37675
+ /**
37676
+ * Feedback in phase resolved: answered and marked solved.
37677
+ */
37678
+ resolved: number;
37679
+ /**
37680
+ * Feedback in phase closed: closed without further action.
37681
+ */
37682
+ closed: number;
37683
+ /**
37684
+ * All feedback of your organization.
37685
+ */
37686
+ total: number;
37687
+ };
37688
+ };
37689
+ export type GetOrganizationFeedbackCountsResponse = GetOrganizationFeedbackCountsResponses[keyof GetOrganizationFeedbackCountsResponses];
37690
+ export type GetOrganizationFeedbackData = {
37691
+ body?: never;
37692
+ path: {
37693
+ /**
37694
+ * Feedback identifier, prefixed with fb_.
37695
+ */
37696
+ id: string;
37697
+ };
37698
+ query?: never;
37699
+ url: '/organization/v1/feedback/{id}';
37700
+ };
37701
+ export type GetOrganizationFeedbackErrors = {
37702
+ /**
37703
+ * Missing or invalid credential; authenticate with a valid API key, Console session, or machine token.
37704
+ */
37705
+ 401: unknown;
37706
+ /**
37707
+ * FEEDBACK_NOT_FOUND; the id does not exist in your organization.
37708
+ */
37709
+ 404: unknown;
37710
+ };
37711
+ export type GetOrganizationFeedbackResponses = {
37712
+ /**
37713
+ * The feedback.
37714
+ */
37715
+ 200: {
37716
+ /**
37717
+ * Object type tag, always feedback.
37718
+ */
37719
+ object: 'feedback';
37720
+ /**
37721
+ * Feedback identifier, prefixed with fb_.
37722
+ */
37723
+ id: string;
37724
+ /**
37725
+ * Short summary of the request, if one was given.
37726
+ */
37727
+ title?: string | null;
37728
+ /**
37729
+ * Feedback type key, if one was given.
37730
+ */
37731
+ type?: string | null;
37732
+ /**
37733
+ * The first message the requester wrote.
37734
+ */
37735
+ message: string;
37736
+ /**
37737
+ * Where the request stands: open means submitted and not yet picked up; awaiting_customer means support is waiting for your reply; in_progress means support is working on it; resolved means it was answered and marked solved; closed means it was closed without further action.
37738
+ */
37739
+ phase: 'open' | 'awaiting_customer' | 'in_progress' | 'resolved' | 'closed';
37740
+ /**
37741
+ * Coarser state derived from phase: unresolved means still open or in progress; resolved means resolved or closed; ignored means support set it aside.
37742
+ */
37743
+ status: 'unresolved' | 'resolved' | 'ignored';
37744
+ /**
37745
+ * Channel the feedback came through: console for the Console help page, api for API callers, codemode for AI callers using a machine token.
37746
+ */
37747
+ source: 'console' | 'api' | 'codemode';
37748
+ /**
37749
+ * Page or API URL the requester reported.
37750
+ */
37751
+ url?: string | null;
37752
+ /**
37753
+ * When the first support reply is due, counted in business hours.
37754
+ */
37755
+ first_response_due_time?: string | null;
37756
+ /**
37757
+ * When support first replied, if it has.
37758
+ */
37759
+ first_response_time?: string | null;
37760
+ /**
37761
+ * Time of the latest message visible to the requester.
37762
+ */
37763
+ last_message_time: string;
37764
+ /**
37765
+ * True while the requester has not read the latest support reply.
37766
+ */
37767
+ unread: boolean;
37768
+ /**
37769
+ * When the feedback was submitted.
37770
+ */
37771
+ create_time: string;
37772
+ /**
37773
+ * When the feedback last changed.
37774
+ */
37775
+ update_time: string;
37776
+ /**
37777
+ * How the feedback was submitted; only the kind is shown, never who.
37778
+ */
37779
+ reporter?: {
37780
+ /**
37781
+ * user means a signed-in person, api_key means an API key, agent_session means an AI agent session.
37782
+ */
37783
+ type?: 'user' | 'api_key' | 'agent_session';
37784
+ };
37785
+ /**
37786
+ * The latest message you can see, for list rows; phase-change events do not count.
37787
+ */
37788
+ last_message_preview?: {
37789
+ /**
37790
+ * customer means your organization wrote it; staff means the support team; system means the automatic acknowledgement.
37791
+ */
37792
+ author_kind?: 'customer' | 'staff' | 'system';
37793
+ /**
37794
+ * Plain text of the message, at most 120 characters.
37795
+ */
37796
+ body?: string;
37797
+ /**
37798
+ * When the message was written.
37799
+ */
37800
+ create_time?: string;
37801
+ } | null;
37802
+ /**
37803
+ * Files attached to this item; metadata only, bytes are never inlined.
37804
+ */
37805
+ attachments: Array<{
37806
+ /**
37807
+ * Attachment identifier, prefixed with fba_.
37808
+ */
37809
+ id?: string;
37810
+ /**
37811
+ * Original filename of the attachment.
37812
+ */
37813
+ name?: string;
37814
+ /**
37815
+ * MIME type of the attachment content.
37816
+ */
37817
+ content_type?: string;
37818
+ /**
37819
+ * Size of the attachment in bytes.
37820
+ */
37821
+ size?: number;
37822
+ /**
37823
+ * When the attachment was stored.
37824
+ */
37825
+ create_time?: string;
37826
+ }>;
37827
+ };
37828
+ };
37829
+ export type GetOrganizationFeedbackResponse = GetOrganizationFeedbackResponses[keyof GetOrganizationFeedbackResponses];
37830
+ export type ListOrganizationFeedbackMessagesData = {
37831
+ body?: never;
37832
+ path: {
37833
+ /**
37834
+ * Feedback identifier, prefixed with fb_.
37835
+ */
37836
+ id: string;
37837
+ };
37838
+ query?: {
37839
+ /**
37840
+ * Items per page, 1 to 100.
37841
+ */
37842
+ limit?: number;
37843
+ /**
37844
+ * Opaque cursor from next_page of the previous response.
37845
+ */
37846
+ page?: string;
37847
+ };
37848
+ url: '/organization/v1/feedback/{id}/messages';
37849
+ };
37850
+ export type ListOrganizationFeedbackMessagesErrors = {
37851
+ /**
37852
+ * Missing or invalid credential; authenticate with a valid API key, Console session, or machine token.
37853
+ */
37854
+ 401: unknown;
37855
+ /**
37856
+ * FEEDBACK_NOT_FOUND.
37857
+ */
37858
+ 404: unknown;
37859
+ };
37860
+ export type ListOrganizationFeedbackMessagesResponses = {
37861
+ /**
37862
+ * One page of messages.
37863
+ */
37864
+ 200: {
37865
+ /**
37866
+ * Object type tag, always page.
37867
+ */
37868
+ object: 'page';
37869
+ /**
37870
+ * The messages on this page.
37871
+ */
37872
+ data: Array<{
37873
+ /**
37874
+ * Object type tag, always feedback.message.
37875
+ */
37876
+ object: 'feedback.message';
37877
+ /**
37878
+ * Message identifier, prefixed with fbm_.
37879
+ */
37880
+ id: string;
37881
+ /**
37882
+ * Identifier of the feedback this message belongs to.
37883
+ */
37884
+ feedback_id: string;
37885
+ /**
37886
+ * Who wrote the message.
37887
+ */
37888
+ author: {
37889
+ /**
37890
+ * customer means your organization wrote it; staff means the support team wrote it; system means a recorded event or the automatic acknowledgement.
37891
+ */
37892
+ kind?: 'customer' | 'staff' | 'system';
37893
+ /**
37894
+ * Display name of the support team member; present only when kind is staff.
37895
+ */
37896
+ name?: string;
37897
+ };
37898
+ /**
37899
+ * Markdown text of the message.
37900
+ */
37901
+ body: string;
37902
+ /**
37903
+ * Present on system messages that record a change.
37904
+ */
37905
+ event?: {
37906
+ /**
37907
+ * Kind of change recorded: phase_changed means the phase moved from one value to another; assigned means the handling owner changed.
37908
+ */
37909
+ type?: 'phase_changed' | 'assigned';
37910
+ /**
37911
+ * Value before the change.
37912
+ */
37913
+ from?: string | null;
37914
+ /**
37915
+ * Value after the change.
37916
+ */
37917
+ to?: string | null;
37918
+ } | null;
37919
+ /**
37920
+ * Files attached to this item; metadata only, bytes are never inlined.
37921
+ */
37922
+ attachments: Array<{
37923
+ /**
37924
+ * Attachment identifier, prefixed with fba_.
37925
+ */
37926
+ id?: string;
37927
+ /**
37928
+ * Original filename of the attachment.
37929
+ */
37930
+ name?: string;
37931
+ /**
37932
+ * MIME type of the attachment content.
37933
+ */
37934
+ content_type?: string;
37935
+ /**
37936
+ * Size of the attachment in bytes.
37937
+ */
37938
+ size?: number;
37939
+ /**
37940
+ * When the attachment was stored.
37941
+ */
37942
+ create_time?: string;
37943
+ }>;
37944
+ /**
37945
+ * When the message was written.
37946
+ */
37947
+ create_time: string;
37948
+ }>;
37949
+ /**
37950
+ * True when another page follows.
37951
+ */
37952
+ has_more: boolean;
37953
+ /**
37954
+ * Opaque cursor for the next page; null on the last page.
37955
+ */
37956
+ next_page: string | null;
37957
+ };
37958
+ };
37959
+ export type ListOrganizationFeedbackMessagesResponse = ListOrganizationFeedbackMessagesResponses[keyof ListOrganizationFeedbackMessagesResponses];
37960
+ export type CreateOrganizationFeedbackMessageData = {
37961
+ body: {
37962
+ /**
37963
+ * Markdown text; at most 4096 Unicode code points.
37964
+ */
37965
+ body: string;
37966
+ /**
37967
+ * Up to five attachments; decoded bytes must not exceed 10 MiB each or 20 MiB in total.
37968
+ */
37969
+ attachments?: Array<{
37970
+ /**
37971
+ * Attachment filename shown with the message.
37972
+ */
37973
+ name: string;
37974
+ /**
37975
+ * MIME type of the attachment content.
37976
+ */
37977
+ content_type: string;
37978
+ /**
37979
+ * Base64-encoded file bytes with standard padding; limits apply to decoded bytes.
37980
+ */
37981
+ data_base64: string;
37982
+ }>;
37983
+ };
37984
+ path: {
37985
+ /**
37986
+ * Feedback identifier, prefixed with fb_.
37987
+ */
37988
+ id: string;
37989
+ };
37990
+ query?: never;
37991
+ url: '/organization/v1/feedback/{id}/messages';
37992
+ };
37993
+ export type CreateOrganizationFeedbackMessageErrors = {
37994
+ /**
37995
+ * INVALID_PARAMS; correct the fields identified by violations.
37996
+ */
37997
+ 400: unknown;
37998
+ /**
37999
+ * Missing or invalid credential; authenticate with a valid API key, Console session, or machine token.
38000
+ */
38001
+ 401: unknown;
38002
+ /**
38003
+ * FEEDBACK_NOT_FOUND.
38004
+ */
38005
+ 404: unknown;
38006
+ /**
38007
+ * ATTACHMENT_TOO_LARGE; reduce decoded attachments to at most 10 MiB each and 20 MiB total.
38008
+ */
38009
+ 413: unknown;
38010
+ };
38011
+ export type CreateOrganizationFeedbackMessageResponses = {
38012
+ /**
38013
+ * The stored message.
38014
+ */
38015
+ 201: {
38016
+ /**
38017
+ * Object type tag, always feedback.message.
38018
+ */
38019
+ object: 'feedback.message';
38020
+ /**
38021
+ * Message identifier, prefixed with fbm_.
38022
+ */
38023
+ id: string;
38024
+ /**
38025
+ * Identifier of the feedback this message belongs to.
38026
+ */
38027
+ feedback_id: string;
38028
+ /**
38029
+ * Who wrote the message.
38030
+ */
38031
+ author: {
38032
+ /**
38033
+ * customer means your organization wrote it; staff means the support team wrote it; system means a recorded event or the automatic acknowledgement.
38034
+ */
38035
+ kind?: 'customer' | 'staff' | 'system';
38036
+ /**
38037
+ * Display name of the support team member; present only when kind is staff.
38038
+ */
38039
+ name?: string;
38040
+ };
38041
+ /**
38042
+ * Markdown text of the message.
38043
+ */
38044
+ body: string;
38045
+ /**
38046
+ * Present on system messages that record a change.
38047
+ */
38048
+ event?: {
38049
+ /**
38050
+ * Kind of change recorded: phase_changed means the phase moved from one value to another; assigned means the handling owner changed.
38051
+ */
38052
+ type?: 'phase_changed' | 'assigned';
38053
+ /**
38054
+ * Value before the change.
38055
+ */
38056
+ from?: string | null;
38057
+ /**
38058
+ * Value after the change.
38059
+ */
38060
+ to?: string | null;
38061
+ } | null;
38062
+ /**
38063
+ * Files attached to this item; metadata only, bytes are never inlined.
38064
+ */
38065
+ attachments: Array<{
38066
+ /**
38067
+ * Attachment identifier, prefixed with fba_.
38068
+ */
38069
+ id?: string;
38070
+ /**
38071
+ * Original filename of the attachment.
38072
+ */
38073
+ name?: string;
38074
+ /**
38075
+ * MIME type of the attachment content.
38076
+ */
38077
+ content_type?: string;
38078
+ /**
38079
+ * Size of the attachment in bytes.
38080
+ */
38081
+ size?: number;
38082
+ /**
38083
+ * When the attachment was stored.
38084
+ */
38085
+ create_time?: string;
38086
+ }>;
38087
+ /**
38088
+ * When the message was written.
38089
+ */
38090
+ create_time: string;
38091
+ };
38092
+ };
38093
+ export type CreateOrganizationFeedbackMessageResponse = CreateOrganizationFeedbackMessageResponses[keyof CreateOrganizationFeedbackMessageResponses];
36068
38094
  export type ListOrganizationCostsData = {
36069
38095
  body?: never;
36070
38096
  path?: never;
@@ -37519,7 +39545,7 @@ export type AgentsListResponses = {
37519
39545
  */
37520
39546
  system: null | string;
37521
39547
  /**
37522
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
39548
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
37523
39549
  */
37524
39550
  tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
37525
39551
  /**
@@ -38428,7 +40454,7 @@ export type AgentsCreateResponses = {
38428
40454
  */
38429
40455
  system: null | string;
38430
40456
  /**
38431
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
40457
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
38432
40458
  */
38433
40459
  tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
38434
40460
  /**
@@ -38904,7 +40930,7 @@ export type AgentsRetrieveResponses = {
38904
40930
  */
38905
40931
  system: null | string;
38906
40932
  /**
38907
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
40933
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
38908
40934
  */
38909
40935
  tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
38910
40936
  /**
@@ -39823,7 +41849,7 @@ export type AgentsUpdateResponses = {
39823
41849
  */
39824
41850
  system: null | string;
39825
41851
  /**
39826
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
41852
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
39827
41853
  */
39828
41854
  tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
39829
41855
  /**
@@ -40293,7 +42319,7 @@ export type AgentsArchiveResponses = {
40293
42319
  */
40294
42320
  system: null | string;
40295
42321
  /**
40296
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
42322
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
40297
42323
  */
40298
42324
  tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
40299
42325
  /**
@@ -40773,7 +42799,7 @@ export type AgentsVersionsListResponses = {
40773
42799
  */
40774
42800
  system: null | string;
40775
42801
  /**
40776
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
42802
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
40777
42803
  */
40778
42804
  tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
40779
42805
  /**
@@ -41214,6 +43240,14 @@ export type SessionsListData = {
41214
43240
  */
41215
43241
  limit?: number;
41216
43242
  page?: null | string;
43243
+ /**
43244
+ * Filter by an exact end-user identifier (1–128 characters: A-Z, a-z, 0-9, underscore, dot, colon, at sign or hyphen). Keep this filter unchanged when following page.
43245
+ */
43246
+ external_user_id?: string;
43247
+ /**
43248
+ * Filter by session origin: kit, iframe, hosted, api or automation. Keep this filter unchanged when following page.
43249
+ */
43250
+ source?: 'kit' | 'iframe' | 'hosted' | 'api' | 'automation';
41217
43251
  };
41218
43252
  url: '/agent/v1/sessions';
41219
43253
  };
@@ -41302,7 +43336,7 @@ export type SessionsListResponses = {
41302
43336
  */
41303
43337
  system: null | string;
41304
43338
  /**
41305
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
43339
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
41306
43340
  */
41307
43341
  tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
41308
43342
  /**
@@ -41437,6 +43471,14 @@ export type SessionsListResponses = {
41437
43471
  */
41438
43472
  message_id: string;
41439
43473
  } | null;
43474
+ /**
43475
+ * End-user identifier associated with the session, or null when none is recorded. Own-face extension; use external_user_id on sessions.list to find this user's sessions.
43476
+ */
43477
+ readonly external_user_id: string | null;
43478
+ /**
43479
+ * Origin of the session: kit, iframe, hosted, api or automation; null when unavailable. Own-face extension; use source on sessions.list to filter by origin.
43480
+ */
43481
+ readonly source: 'kit' | 'iframe' | 'hosted' | 'api' | 'automation' | null;
41440
43482
  }>;
41441
43483
  /**
41442
43484
  * Opaque cursor for the next page: pass it unchanged as page to continue. Null when this is the last page.
@@ -41603,7 +43645,7 @@ export type SessionsCreateResponses = {
41603
43645
  */
41604
43646
  system: null | string;
41605
43647
  /**
41606
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
43648
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
41607
43649
  */
41608
43650
  tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
41609
43651
  /**
@@ -41738,6 +43780,14 @@ export type SessionsCreateResponses = {
41738
43780
  */
41739
43781
  message_id: string;
41740
43782
  } | null;
43783
+ /**
43784
+ * End-user identifier associated with the session, or null when none is recorded. Own-face extension; use external_user_id on sessions.list to find this user's sessions.
43785
+ */
43786
+ readonly external_user_id: string | null;
43787
+ /**
43788
+ * Origin of the session: kit, iframe, hosted, api or automation; null when unavailable. Own-face extension; use source on sessions.list to filter by origin.
43789
+ */
43790
+ readonly source: 'kit' | 'iframe' | 'hosted' | 'api' | 'automation' | null;
41741
43791
  };
41742
43792
  };
41743
43793
  export type SessionsCreateResponse = SessionsCreateResponses[keyof SessionsCreateResponses];
@@ -41833,7 +43883,7 @@ export type SessionsRetrieveResponses = {
41833
43883
  */
41834
43884
  system: null | string;
41835
43885
  /**
41836
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
43886
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
41837
43887
  */
41838
43888
  tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
41839
43889
  /**
@@ -41968,6 +44018,14 @@ export type SessionsRetrieveResponses = {
41968
44018
  */
41969
44019
  message_id: string;
41970
44020
  } | null;
44021
+ /**
44022
+ * End-user identifier associated with the session, or null when none is recorded. Own-face extension; use external_user_id on sessions.list to find this user's sessions.
44023
+ */
44024
+ readonly external_user_id: string | null;
44025
+ /**
44026
+ * Origin of the session: kit, iframe, hosted, api or automation; null when unavailable. Own-face extension; use source on sessions.list to filter by origin.
44027
+ */
44028
+ readonly source: 'kit' | 'iframe' | 'hosted' | 'api' | 'automation' | null;
41971
44029
  };
41972
44030
  };
41973
44031
  export type SessionsRetrieveResponse = SessionsRetrieveResponses[keyof SessionsRetrieveResponses];
@@ -42103,7 +44161,245 @@ export type SessionsUpdateResponses = {
42103
44161
  */
42104
44162
  system: null | string;
42105
44163
  /**
42106
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
44164
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
44165
+ */
44166
+ tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
44167
+ /**
44168
+ * Always `agent`. An agent definition.
44169
+ */
44170
+ type: 'agent';
44171
+ /**
44172
+ * The agent's current version. Starts at 1 and increments each time the agent is modified.
44173
+ */
44174
+ version: number;
44175
+ };
44176
+ /**
44177
+ * A timestamp in RFC 3339 format
44178
+ */
44179
+ archived_at: null | string;
44180
+ /**
44181
+ * A hard spend ceiling. The session stops issuing new model requests once the
44182
+ * tracked list cost reaches `max_list_cost`.
44183
+ */
44184
+ budget: null | AgentManaged76;
44185
+ /**
44186
+ * A timestamp in RFC 3339 format
44187
+ */
44188
+ created_at: string;
44189
+ /**
44190
+ * Id of the environment recipe the session's sandbox was created from. Omitted when no recipe was selected, that is, for a light machine or the Computer chosen by computer_id.
44191
+ */
44192
+ environment_id?: string;
44193
+ metadata: AgentManaged173;
44194
+ /**
44195
+ * Per-outcome evaluation state. One entry per `define_outcome` event sent to the
44196
+ * session.
44197
+ */
44198
+ outcome_evaluations: Array<AgentManaged174>;
44199
+ /**
44200
+ * Resources attached to the session, at most 500; each is a file reference mounted into the session's machine.
44201
+ */
44202
+ resources: Array<AgentManaged175 | AgentManaged176 | AgentManaged177>;
44203
+ /**
44204
+ * Timing statistics for a session.
44205
+ */
44206
+ stats: AgentManaged178;
44207
+ /**
44208
+ * SessionStatus enum
44209
+ *
44210
+ * - `rescheduling` - Transient error occurred, retrying automatically.
44211
+ * - `running` - Agent is actively executing.
44212
+ * - `idle` - Agent is waiting for input, including user messages or tool
44213
+ * confirmations. Sessions start in idle.
44214
+ * - `terminated` - Session has ended, either due to an error or completion.
44215
+ */
44216
+ status: 'rescheduling' | 'running' | 'idle' | 'terminated';
44217
+ /**
44218
+ * Title of the session, set on create or through sessions.update; null when none was set.
44219
+ */
44220
+ title: null | string;
44221
+ /**
44222
+ * Always `session`. A session, one conversation of an agent on a machine.
44223
+ */
44224
+ type: 'session';
44225
+ /**
44226
+ * A timestamp in RFC 3339 format
44227
+ */
44228
+ updated_at: string;
44229
+ /**
44230
+ * Cumulative token usage for a session across all turns.
44231
+ */
44232
+ usage: AgentManaged179;
44233
+ /**
44234
+ * Vault IDs attached to the session at creation. Empty when no vaults were
44235
+ * supplied.
44236
+ */
44237
+ vault_ids: Array<string>;
44238
+ /**
44239
+ * Deployment ID when the session was created from a deployment reference. Null
44240
+ * otherwise.
44241
+ */
44242
+ deployment_id?: null | string;
44243
+ /**
44244
+ * Normalized session working directory; defaults to /home/user/workspace. Forks inherit this directory.
44245
+ */
44246
+ cwd: string;
44247
+ /**
44248
+ * Praxis extension: MA only has session-scoped temporary containers and memory_stores, not durable browsable computers. computer_id selects a tenant-owned active computer. Session selection overrides the agent default; a sandbox environment_id and computer_id cannot be combined. Omitted when no computer is selected.
44249
+ */
44250
+ computer_id?: string;
44251
+ /**
44252
+ * Praxis extension: the currently selected session model.
44253
+ */
44254
+ model?: {
44255
+ /**
44256
+ * Identifier of the object, as returned by the API; pass it in the path of follow-up calls on the same resource.
44257
+ */
44258
+ id: string;
44259
+ /**
44260
+ * Supported thinking controls, or null when capability is unknown or unavailable. efforts lists selectable strengths; can_disable permits none; default_effort is nullable.
44261
+ */
44262
+ thinking: {
44263
+ /**
44264
+ * Thinking levels the model accepts as effort, in ascending order.
44265
+ */
44266
+ efforts: Array<'low' | 'medium' | 'high' | 'xhigh' | 'max'>;
44267
+ /**
44268
+ * Whether effort none (thinking off) is allowed for this model.
44269
+ */
44270
+ can_disable: boolean;
44271
+ /**
44272
+ * Thinking level used when neither the session nor the agent selects one; null when the model states no default.
44273
+ */
44274
+ default_effort: 'low' | 'medium' | 'high' | 'xhigh' | 'max' | null;
44275
+ } | null;
44276
+ };
44277
+ /**
44278
+ * Praxis extension: explicit session thinking effort; null inherits the pinned agent default, then the model default. none disables thinking only when model.thinking.can_disable is true. Unsupported efforts return 400 invalid_request_error.
44279
+ */
44280
+ thinking?: {
44281
+ /**
44282
+ * Thinking level saved for this session: low, medium, high, xhigh, max, or none to turn thinking off. Null or absent means the session inherits the agent default and then the model default.
44283
+ */
44284
+ effort: 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'none';
44285
+ } | null;
44286
+ /**
44287
+ * Praxis extension: source of a forked session; null for other sessions. Available only on /agent/v1.
44288
+ */
44289
+ forked_from?: {
44290
+ /**
44291
+ * Id of the parent session this session was forked from; it is left unchanged by the fork.
44292
+ */
44293
+ session_id: string;
44294
+ /**
44295
+ * message_id of the agent message in the parent session up to which the conversation was copied.
44296
+ */
44297
+ message_id: string;
44298
+ } | null;
44299
+ /**
44300
+ * End-user identifier associated with the session, or null when none is recorded. Own-face extension; use external_user_id on sessions.list to find this user's sessions.
44301
+ */
44302
+ readonly external_user_id: string | null;
44303
+ /**
44304
+ * Origin of the session: kit, iframe, hosted, api or automation; null when unavailable. Own-face extension; use source on sessions.list to filter by origin.
44305
+ */
44306
+ readonly source: 'kit' | 'iframe' | 'hosted' | 'api' | 'automation' | null;
44307
+ };
44308
+ };
44309
+ export type SessionsUpdateResponse = SessionsUpdateResponses[keyof SessionsUpdateResponses];
44310
+ export type SessionsArchiveData = {
44311
+ body?: never;
44312
+ path: {
44313
+ /**
44314
+ * Session id (sesn_...), as returned by sessions.create or sessions.list. The same id is also accepted as the session_id query parameter on resource and thread calls, where it must equal the path value.
44315
+ */
44316
+ session_id: string;
44317
+ };
44318
+ query?: never;
44319
+ url: '/agent/v1/sessions/{session_id}/archive';
44320
+ };
44321
+ export type SessionsArchiveResponses = {
44322
+ /**
44323
+ * Successful response
44324
+ */
44325
+ 200: {
44326
+ /**
44327
+ * Session id (sesn_...). Pass it as session_id in every session call.
44328
+ */
44329
+ id: string;
44330
+ /**
44331
+ * Resolved `agent` definition for a `session`. Snapshot of the `agent` at
44332
+ * `session` creation time.
44333
+ */
44334
+ agent: {
44335
+ /**
44336
+ * Agent id (agent_...). Pass it as agent when creating a session and as agent_id in agent calls.
44337
+ */
44338
+ id: string;
44339
+ /**
44340
+ * Free-text description of what the agent is for; null when none was set.
44341
+ */
44342
+ description: null | string;
44343
+ /**
44344
+ * Praxis extension: HTTP, SSE or trusted stdio MCP servers paired with mcp_toolset entries and saved with the agent version.
44345
+ */
44346
+ mcp_servers: Array<AgentManaged36>;
44347
+ /**
44348
+ * Model identifier and configuration.
44349
+ */
44350
+ model: {
44351
+ /**
44352
+ * The model that will power your agent.
44353
+ *
44354
+ * See [models](https://docs.anthropic.com/en/docs/models-overview) for additional
44355
+ * details and options.
44356
+ */
44357
+ id: 'claude-opus-5-5' | 'claude-fable-5-1' | 'claude-sonnet-5' | 'claude-fable-5' | 'claude-opus-5' | 'claude-opus-4-8' | 'claude-opus-4-7' | 'claude-opus-4-6' | 'claude-sonnet-4-6' | 'claude-haiku-4-5' | 'claude-haiku-4-5-20251001' | 'claude-opus-4-5' | 'claude-opus-4-5-20251101' | 'claude-sonnet-4-5' | 'claude-sonnet-4-5-20250929' | string;
44358
+ /**
44359
+ * How hard Claude works on each turn. Sets `output_config.effort` on every
44360
+ * Messages call the session makes.
44361
+ */
44362
+ effort?: AgentManaged2 | AgentManaged3 | AgentManaged4 | AgentManaged5 | AgentManaged6;
44363
+ /**
44364
+ * Geographic region for model inference. When unset, requests fall through to the
44365
+ * workspace's default_inference_geo.
44366
+ */
44367
+ inference_geo?: string;
44368
+ /**
44369
+ * Inference speed mode. `fast` provides significantly faster output token
44370
+ * generation at premium pricing. Not all models support `fast`; invalid
44371
+ * combinations are rejected at create time.
44372
+ */
44373
+ speed?: 'standard' | 'fast';
44374
+ /**
44375
+ * Platform model settings. Only reasoning is supported; other model controls return 400.
44376
+ */
44377
+ settings?: {
44378
+ /**
44379
+ * Default thinking effort for sessions without an explicit selection. Unsupported defaults fall back to the selected model default.
44380
+ */
44381
+ reasoning?: 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'none';
44382
+ };
44383
+ };
44384
+ /**
44385
+ * Resolved coordinator topology with full agent definitions for each roster
44386
+ * member.
44387
+ */
44388
+ multiagent: null | AgentManaged171;
44389
+ /**
44390
+ * Display name of the agent, as set on create or update. It is a label, not a unique key.
44391
+ */
44392
+ name: string;
44393
+ /**
44394
+ * Skill attachments are not supported: a nonempty skills array returns 400. Omit this field or send an empty array. The native skill tool loads available runtime skills independently of this field.
44395
+ */
44396
+ skills: Array<AgentManaged42 | AgentManaged43>;
44397
+ /**
44398
+ * System prompt given to the model at the start of every session of this agent; null when none was set.
44399
+ */
44400
+ system: null | string;
44401
+ /**
44402
+ * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries and custom tool definitions. Custom calls emit agent.custom_tool_use and wait for user.custom_tool_result. Keep bash enabled to use codemode, skill and subagents.
42107
44403
  */
42108
44404
  tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
42109
44405
  /**
@@ -42238,236 +44534,14 @@ export type SessionsUpdateResponses = {
42238
44534
  */
42239
44535
  message_id: string;
42240
44536
  } | null;
42241
- };
42242
- };
42243
- export type SessionsUpdateResponse = SessionsUpdateResponses[keyof SessionsUpdateResponses];
42244
- export type SessionsArchiveData = {
42245
- body?: never;
42246
- path: {
42247
- /**
42248
- * Session id (sesn_...), as returned by sessions.create or sessions.list. The same id is also accepted as the session_id query parameter on resource and thread calls, where it must equal the path value.
42249
- */
42250
- session_id: string;
42251
- };
42252
- query?: never;
42253
- url: '/agent/v1/sessions/{session_id}/archive';
42254
- };
42255
- export type SessionsArchiveResponses = {
42256
- /**
42257
- * Successful response
42258
- */
42259
- 200: {
42260
- /**
42261
- * Session id (sesn_...). Pass it as session_id in every session call.
42262
- */
42263
- id: string;
42264
- /**
42265
- * Resolved `agent` definition for a `session`. Snapshot of the `agent` at
42266
- * `session` creation time.
42267
- */
42268
- agent: {
42269
- /**
42270
- * Agent id (agent_...). Pass it as agent when creating a session and as agent_id in agent calls.
42271
- */
42272
- id: string;
42273
- /**
42274
- * Free-text description of what the agent is for; null when none was set.
42275
- */
42276
- description: null | string;
42277
- /**
42278
- * Praxis extension: HTTP, SSE or trusted stdio MCP servers paired with mcp_toolset entries and saved with the agent version.
42279
- */
42280
- mcp_servers: Array<AgentManaged36>;
42281
- /**
42282
- * Model identifier and configuration.
42283
- */
42284
- model: {
42285
- /**
42286
- * The model that will power your agent.
42287
- *
42288
- * See [models](https://docs.anthropic.com/en/docs/models-overview) for additional
42289
- * details and options.
42290
- */
42291
- id: 'claude-opus-5-5' | 'claude-fable-5-1' | 'claude-sonnet-5' | 'claude-fable-5' | 'claude-opus-5' | 'claude-opus-4-8' | 'claude-opus-4-7' | 'claude-opus-4-6' | 'claude-sonnet-4-6' | 'claude-haiku-4-5' | 'claude-haiku-4-5-20251001' | 'claude-opus-4-5' | 'claude-opus-4-5-20251101' | 'claude-sonnet-4-5' | 'claude-sonnet-4-5-20250929' | string;
42292
- /**
42293
- * How hard Claude works on each turn. Sets `output_config.effort` on every
42294
- * Messages call the session makes.
42295
- */
42296
- effort?: AgentManaged2 | AgentManaged3 | AgentManaged4 | AgentManaged5 | AgentManaged6;
42297
- /**
42298
- * Geographic region for model inference. When unset, requests fall through to the
42299
- * workspace's default_inference_geo.
42300
- */
42301
- inference_geo?: string;
42302
- /**
42303
- * Inference speed mode. `fast` provides significantly faster output token
42304
- * generation at premium pricing. Not all models support `fast`; invalid
42305
- * combinations are rejected at create time.
42306
- */
42307
- speed?: 'standard' | 'fast';
42308
- /**
42309
- * Platform model settings. Only reasoning is supported; other model controls return 400.
42310
- */
42311
- settings?: {
42312
- /**
42313
- * Default thinking effort for sessions without an explicit selection. Unsupported defaults fall back to the selected model default.
42314
- */
42315
- reasoning?: 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'none';
42316
- };
42317
- };
42318
- /**
42319
- * Resolved coordinator topology with full agent definitions for each roster
42320
- * member.
42321
- */
42322
- multiagent: null | AgentManaged171;
42323
- /**
42324
- * Display name of the agent, as set on create or update. It is a label, not a unique key.
42325
- */
42326
- name: string;
42327
- /**
42328
- * Skill attachments are not supported: a nonempty skills array returns 400. Omit this field or send an empty array. The native skill tool loads available runtime skills independently of this field.
42329
- */
42330
- skills: Array<AgentManaged42 | AgentManaged43>;
42331
- /**
42332
- * System prompt given to the model at the start of every session of this agent; null when none was set.
42333
- */
42334
- system: null | string;
42335
- /**
42336
- * Tools of the agent: one agent_toolset_20260401 entry for the native tools (all resolved settings are returned, ready to send back on update), plus mcp_toolset entries; custom tool definitions are rejected with 400. Keep bash enabled to use codemode, skill and subagents.
42337
- */
42338
- tools: Array<AgentManaged44 | AgentManaged54 | AgentManaged57>;
42339
- /**
42340
- * Always `agent`. An agent definition.
42341
- */
42342
- type: 'agent';
42343
- /**
42344
- * The agent's current version. Starts at 1 and increments each time the agent is modified.
42345
- */
42346
- version: number;
42347
- };
42348
- /**
42349
- * A timestamp in RFC 3339 format
42350
- */
42351
- archived_at: null | string;
42352
- /**
42353
- * A hard spend ceiling. The session stops issuing new model requests once the
42354
- * tracked list cost reaches `max_list_cost`.
42355
- */
42356
- budget: null | AgentManaged76;
42357
- /**
42358
- * A timestamp in RFC 3339 format
42359
- */
42360
- created_at: string;
42361
- /**
42362
- * Id of the environment recipe the session's sandbox was created from. Omitted when no recipe was selected, that is, for a light machine or the Computer chosen by computer_id.
42363
- */
42364
- environment_id?: string;
42365
- metadata: AgentManaged173;
42366
- /**
42367
- * Per-outcome evaluation state. One entry per `define_outcome` event sent to the
42368
- * session.
42369
- */
42370
- outcome_evaluations: Array<AgentManaged174>;
42371
- /**
42372
- * Resources attached to the session, at most 500; each is a file reference mounted into the session's machine.
42373
- */
42374
- resources: Array<AgentManaged175 | AgentManaged176 | AgentManaged177>;
42375
- /**
42376
- * Timing statistics for a session.
42377
- */
42378
- stats: AgentManaged178;
42379
- /**
42380
- * SessionStatus enum
42381
- *
42382
- * - `rescheduling` - Transient error occurred, retrying automatically.
42383
- * - `running` - Agent is actively executing.
42384
- * - `idle` - Agent is waiting for input, including user messages or tool
42385
- * confirmations. Sessions start in idle.
42386
- * - `terminated` - Session has ended, either due to an error or completion.
42387
- */
42388
- status: 'rescheduling' | 'running' | 'idle' | 'terminated';
42389
- /**
42390
- * Title of the session, set on create or through sessions.update; null when none was set.
42391
- */
42392
- title: null | string;
42393
44537
  /**
42394
- * Always `session`. A session, one conversation of an agent on a machine.
44538
+ * End-user identifier associated with the session, or null when none is recorded. Own-face extension; use external_user_id on sessions.list to find this user's sessions.
42395
44539
  */
42396
- type: 'session';
44540
+ readonly external_user_id: string | null;
42397
44541
  /**
42398
- * A timestamp in RFC 3339 format
44542
+ * Origin of the session: kit, iframe, hosted, api or automation; null when unavailable. Own-face extension; use source on sessions.list to filter by origin.
42399
44543
  */
42400
- updated_at: string;
42401
- /**
42402
- * Cumulative token usage for a session across all turns.
42403
- */
42404
- usage: AgentManaged179;
42405
- /**
42406
- * Vault IDs attached to the session at creation. Empty when no vaults were
42407
- * supplied.
42408
- */
42409
- vault_ids: Array<string>;
42410
- /**
42411
- * Deployment ID when the session was created from a deployment reference. Null
42412
- * otherwise.
42413
- */
42414
- deployment_id?: null | string;
42415
- /**
42416
- * Normalized session working directory; defaults to /home/user/workspace. Forks inherit this directory.
42417
- */
42418
- cwd: string;
42419
- /**
42420
- * Praxis extension: MA only has session-scoped temporary containers and memory_stores, not durable browsable computers. computer_id selects a tenant-owned active computer. Session selection overrides the agent default; a sandbox environment_id and computer_id cannot be combined. Omitted when no computer is selected.
42421
- */
42422
- computer_id?: string;
42423
- /**
42424
- * Praxis extension: the currently selected session model.
42425
- */
42426
- model?: {
42427
- /**
42428
- * Identifier of the object, as returned by the API; pass it in the path of follow-up calls on the same resource.
42429
- */
42430
- id: string;
42431
- /**
42432
- * Supported thinking controls, or null when capability is unknown or unavailable. efforts lists selectable strengths; can_disable permits none; default_effort is nullable.
42433
- */
42434
- thinking: {
42435
- /**
42436
- * Thinking levels the model accepts as effort, in ascending order.
42437
- */
42438
- efforts: Array<'low' | 'medium' | 'high' | 'xhigh' | 'max'>;
42439
- /**
42440
- * Whether effort none (thinking off) is allowed for this model.
42441
- */
42442
- can_disable: boolean;
42443
- /**
42444
- * Thinking level used when neither the session nor the agent selects one; null when the model states no default.
42445
- */
42446
- default_effort: 'low' | 'medium' | 'high' | 'xhigh' | 'max' | null;
42447
- } | null;
42448
- };
42449
- /**
42450
- * Praxis extension: explicit session thinking effort; null inherits the pinned agent default, then the model default. none disables thinking only when model.thinking.can_disable is true. Unsupported efforts return 400 invalid_request_error.
42451
- */
42452
- thinking?: {
42453
- /**
42454
- * Thinking level saved for this session: low, medium, high, xhigh, max, or none to turn thinking off. Null or absent means the session inherits the agent default and then the model default.
42455
- */
42456
- effort: 'low' | 'medium' | 'high' | 'xhigh' | 'max' | 'none';
42457
- } | null;
42458
- /**
42459
- * Praxis extension: source of a forked session; null for other sessions. Available only on /agent/v1.
42460
- */
42461
- forked_from?: {
42462
- /**
42463
- * Id of the parent session this session was forked from; it is left unchanged by the fork.
42464
- */
42465
- session_id: string;
42466
- /**
42467
- * message_id of the agent message in the parent session up to which the conversation was copied.
42468
- */
42469
- message_id: string;
42470
- } | null;
44544
+ readonly source: 'kit' | 'iframe' | 'hosted' | 'api' | 'automation' | null;
42471
44545
  };
42472
44546
  };
42473
44547
  export type SessionsArchiveResponse = SessionsArchiveResponses[keyof SessionsArchiveResponses];
@@ -42544,6 +44618,24 @@ export type SessionsEventsListResponses = {
42544
44618
  * A timestamp in RFC 3339 format
42545
44619
  */
42546
44620
  processed_at?: null | string;
44621
+ /**
44622
+ * Untrusted page context for this user message only. Resend on each turn when needed; never added to system instructions. The complete JSON value must be at most 4096 UTF-8 bytes; invalid values return 400 INVALID_PARAMS. Empty items are treated as absent. Available only on /agent/v1.
44623
+ */
44624
+ praxis_context?: {
44625
+ /**
44626
+ * Named page values supplied by the client for this turn.
44627
+ */
44628
+ items: Array<{
44629
+ /**
44630
+ * Page context key, such as lesson or section.
44631
+ */
44632
+ name: string;
44633
+ /**
44634
+ * Untrusted page value; escaped before inclusion in the user message.
44635
+ */
44636
+ value: string;
44637
+ }>;
44638
+ };
42547
44639
  /**
42548
44640
  * UI transcript message ID. Use the last assistant message in a successfully completed turn as the fork target.
42549
44641
  */
@@ -43177,7 +45269,34 @@ export type SessionsEventsSendData = {
43177
45269
  /**
43178
45270
  * Events to send to the `session`.
43179
45271
  */
43180
- events: Array<AgentManaged59 | AgentManaged71 | AgentManaged74 | AgentManaged250 | AgentManaged251 | AgentManaged252 | AgentManaged253 | {
45272
+ events: Array<{
45273
+ /**
45274
+ * Array of content blocks for the user message.
45275
+ */
45276
+ content: Array<AgentManaged60 | AgentManaged61 | AgentManaged65 | AgentManaged70>;
45277
+ /**
45278
+ * User message event carrying one nonempty text content block.
45279
+ */
45280
+ type: 'user.message';
45281
+ /**
45282
+ * Untrusted page context for this user message only. Resend on each turn when needed; never added to system instructions. The complete JSON value must be at most 4096 UTF-8 bytes; invalid values return 400 INVALID_PARAMS. Empty items are treated as absent. Available only on /agent/v1.
45283
+ */
45284
+ praxis_context?: {
45285
+ /**
45286
+ * Named page values supplied by the client for this turn.
45287
+ */
45288
+ items: Array<{
45289
+ /**
45290
+ * Page context key, such as lesson or section.
45291
+ */
45292
+ name: string;
45293
+ /**
45294
+ * Untrusted page value; escaped before inclusion in the user message.
45295
+ */
45296
+ value: string;
45297
+ }>;
45298
+ };
45299
+ } | AgentManaged71 | AgentManaged74 | AgentManaged250 | AgentManaged251 | AgentManaged252 | AgentManaged253 | {
43181
45300
  /**
43182
45301
  * Request to inject the queued user message named by event_id into the running turn.
43183
45302
  */
@@ -43239,7 +45358,42 @@ export type SessionsEventsSendResponses = {
43239
45358
  /**
43240
45359
  * Sent events
43241
45360
  */
43242
- data?: Array<AgentManaged185 | AgentManaged186 | AgentManaged187 | AgentManaged188 | AgentManaged238 | AgentManaged243 | AgentManaged247 | {
45361
+ data?: Array<{
45362
+ /**
45363
+ * Unique identifier for this event.
45364
+ */
45365
+ id: string;
45366
+ /**
45367
+ * Array of content blocks comprising the user message.
45368
+ */
45369
+ content: Array<AgentManaged60 | AgentManaged61 | AgentManaged65 | AgentManaged70>;
45370
+ /**
45371
+ * Always `user.message`. A message from the user to the agent, with content blocks.
45372
+ */
45373
+ type: 'user.message';
45374
+ /**
45375
+ * A timestamp in RFC 3339 format
45376
+ */
45377
+ processed_at?: null | string;
45378
+ /**
45379
+ * Untrusted page context for this user message only. Resend on each turn when needed; never added to system instructions. The complete JSON value must be at most 4096 UTF-8 bytes; invalid values return 400 INVALID_PARAMS. Empty items are treated as absent. Available only on /agent/v1.
45380
+ */
45381
+ praxis_context?: {
45382
+ /**
45383
+ * Named page values supplied by the client for this turn.
45384
+ */
45385
+ items: Array<{
45386
+ /**
45387
+ * Page context key, such as lesson or section.
45388
+ */
45389
+ name: string;
45390
+ /**
45391
+ * Untrusted page value; escaped before inclusion in the user message.
45392
+ */
45393
+ value: string;
45394
+ }>;
45395
+ };
45396
+ } | AgentManaged186 | AgentManaged187 | AgentManaged188 | AgentManaged238 | AgentManaged243 | AgentManaged247 | {
43243
45397
  /**
43244
45398
  * Event id, unique within the session. Use it to refer to this event, for example in user.tool_confirmation or user.steer.
43245
45399
  */
@@ -43471,6 +45625,24 @@ export type SessionsThreadsEventsListResponses = {
43471
45625
  * A timestamp in RFC 3339 format
43472
45626
  */
43473
45627
  processed_at?: null | string;
45628
+ /**
45629
+ * Untrusted page context for this user message only. Resend on each turn when needed; never added to system instructions. The complete JSON value must be at most 4096 UTF-8 bytes; invalid values return 400 INVALID_PARAMS. Empty items are treated as absent. Available only on /agent/v1.
45630
+ */
45631
+ praxis_context?: {
45632
+ /**
45633
+ * Named page values supplied by the client for this turn.
45634
+ */
45635
+ items: Array<{
45636
+ /**
45637
+ * Page context key, such as lesson or section.
45638
+ */
45639
+ name: string;
45640
+ /**
45641
+ * Untrusted page value; escaped before inclusion in the user message.
45642
+ */
45643
+ value: string;
45644
+ }>;
45645
+ };
43474
45646
  /**
43475
45647
  * UI transcript message ID. Use the last assistant message in a successfully completed turn as the fork target.
43476
45648
  */