@revoengine/sdk 1.6.6 → 1.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,13 +8,19 @@ Requirements: Node.js 22 or newer.
8
8
 
9
9
  Development and GitLab CI use Node.js 24.21.0. Run `nvm use` to select the checked-in `.nvmrc`.
10
10
 
11
- ## SDK 1.6.6 compatibility
11
+ ## SDK 1.6.8 compatibility
12
12
 
13
13
  This release synchronizes the complete public SDK contract with the current
14
14
  platform low-code declarations. Remote calls require a platform runtime that admits
15
15
  the bundled contract revision; publishing the SDK alone does not deploy that runtime.
16
16
  Use the SDK version supported by the target platform deployment until its contract is upgraded.
17
17
 
18
+ Storage declarations include physical-line reads, quote-disabled CSV dialects,
19
+ per-record byte limits, and the opt-in `onError: 'skipRow'` read policy. That policy
20
+ skips records with the wrong source column count and returns bounded locations in
21
+ `csvReport`; syntax and record-size errors still abort. The report describes the
22
+ whole source and must not be summed across pages.
23
+
18
24
  HTTP Storage requests/responses now use `requestType: 'storage'` and
19
25
  `responseType: 'storage'`, with flat Storage-only `source` / `target` objects.
20
26
  Legacy HTTP Files references and the old Storage `stream` mode are rejected.
@@ -30,7 +36,7 @@ Legacy SFTP helpers and the removed thread-goal methods are not exposed by the
30
36
  current SDK contract. Refer to the [transfer guide](https://docs.revoengine.com/low-code/sftp)
31
37
  for Secret formats and file-transfer examples.
32
38
 
33
- SDK 1.6.6 retains portable Component digest declarations and one readable-relation
39
+ This release retains portable Component digest declarations and one readable-relation
34
40
  contract for Databases, live Views, and Materialized Views. Use `api.exportDatabase()`
35
41
  for all three relation types. `api.getDatabaseViewData()` remains a deprecated
36
42
  read alias; `api.exportDatabaseView()` and separate REST View export operations
@@ -50,6 +56,14 @@ Remote MCP server configurations in this contract use public HTTPS destinations.
50
56
  Private-network access is not an accepted SDK setting; review the server URL,
51
57
  provider consent, Vault binding, and tool permissions before enabling a plugin.
52
58
 
59
+ SDK 1.6.8 adds `agents.createResponse()` and the saved Assistant conversation
60
+ contract: `instructions`, `contextMode` and text or validated JSON `responseFormat`.
61
+ The typed answer is in `output.text` or `output.json`; retain the returned thread
62
+ for an ordinary `agents.sendMessage()` continuation. Provider refusal, incomplete
63
+ output and invalid JSON do not become a successful parsed answer.
64
+ Native Assistant SSE handles and `watchMessage()` remain local to managed V8
65
+ Components and are excluded from the remote SDK contract.
66
+
53
67
  ## Choose your runtime
54
68
 
55
69
  | Environment | How to start | Authentication |
@@ -81,7 +95,7 @@ RevoEngine pins that version again in the deployment package and injects the
81
95
  runtime into the component entrypoint. Component code does not construct a
82
96
  `RevoClient`.
83
97
 
84
- The platform chooses the hosted package version; publishing SDK 1.6.6 does not
98
+ The platform chooses the hosted package version; publishing a new SDK does not
85
99
  upgrade existing hosted deployments or their generated package pins.
86
100
 
87
101
  Hosted user code receives neither a tenant API key nor the private runtime
@@ -1,9 +1,9 @@
1
1
  import * as node_worker_threads from 'node:worker_threads';
2
2
  import { Buffer as Buffer$1 } from 'node:buffer';
3
3
 
4
- declare const SDK_VERSION: "1.6.6";
4
+ declare const SDK_VERSION: "1.6.8";
5
5
  declare const PROTOCOL_VERSION: 1;
6
- declare const CONTRACT_REVISION: "d2b7e94d335d87dd070d2a97a043704b61b8c8d5c28435c20aceeda9581b70e4";
6
+ declare const CONTRACT_REVISION: "cda216e308d857954aa46b31185a8b653015dd1e3d84996bdf3a93745e72bd43";
7
7
  type RuntimeSurfaceName = 'api' | 'storage' | 'transport' | 'vault' | 'serviceAccount' | 'agents' | 'lowCode';
8
8
 
9
9
  // AUTO-GENERATED FILE. DO NOT EDIT DIRECTLY.
@@ -44,7 +44,7 @@ interface SwaggerAgentCheapTurnPolicyDto {
44
44
  }
45
45
  interface SwaggerAgentConfigDto {
46
46
  /** Supported assistant model used when the agent starts a thread. */
47
- "model"?: "gpt-6.1-sol" | "gpt-6-luna";
47
+ "model"?: "gpt-6.1-sol" | "gpt-6.1-terra" | "gpt-6-luna";
48
48
  /** Reasoning effort passed to assistant threads. */
49
49
  "reasoningEffort"?: "none" | "low" | "medium" | "high" | "xhigh";
50
50
  /** Durable execution-mode default used for agent-loop turns. Per-turn fast-path routing and prompt-tier selection are derived by runtime, not configured here. */
@@ -57,6 +57,10 @@ interface SwaggerAgentConfigDto {
57
57
  "persona"?: "friendly" | "pragmatic" | "professional" | "concise" | "calm" | "mentor" | "assertive";
58
58
  /** Additional per-agent system instructions persisted with the definition. Runtime policy still has higher priority. */
59
59
  "systemInstructions"?: string;
60
+ /** Context profile for new Agent threads. platform preserves the normal Agent context; minimal reduces automatic context while retaining mandatory policy and configured Agent instructions. Existing Agent tool and plugin admission is unchanged. Existing threads retain their saved profile on continuation and Resume. */
61
+ "contextMode"?: "platform" | "minimal";
62
+ /** Validated final-answer format for new Agent threads. Defaults to text. JSON may use the shared strict response schema contract. Existing threads retain their saved format on continuation and Resume; this field never replaces systemInstructions. */
63
+ "responseFormat"?: SwaggerAssistantResponseFormatDto;
60
64
  /** One persistent Agent memory shared by Memory settings and runtime memory tools, included in instructions on every turn. Limited to 20,000 assistant tokens. */
61
65
  "memory"?: string;
62
66
  /** Structured operator-owned Agent identity loaded on every autonomous turn. Learned memory cannot mutate this definition. */
@@ -400,6 +404,42 @@ interface SwaggerAgentReleaseRolloutPolicyDto {
400
404
  /** Optional admitted snapshot to roll back to when the current rollout is revoked. */
401
405
  "rollbackToSnapshotId"?: string;
402
406
  }
407
+ interface SwaggerAssistantOutputDto {
408
+ /** Validated final-answer format. */
409
+ "type": "text" | "json";
410
+ /** Complete validated answer text. This value is independent of bounded operator summaries. */
411
+ "text": string;
412
+ /** Complete parsed object for a validated JSON answer; absent for text answers. */
413
+ "json"?: Record<string, unknown>;
414
+ }
415
+ interface SwaggerAssistantResponseFormatDto {
416
+ /** Final answer format. JSON without a schema requires a JSON object; with a schema it uses strict Structured Outputs. Defaults to text. */
417
+ "type": "text" | "json";
418
+ /** Optional strict JSON Schema for a JSON object response. All object properties must be required and additionalProperties must be false. Only local schema references are allowed. Maximum 32 KiB. */
419
+ "schema"?: Record<string, unknown>;
420
+ /** Schema responses are always strict. Defaults to true when schema is supplied; false and strict without a schema are rejected. */
421
+ "strict"?: true;
422
+ }
423
+ interface SwaggerAssistantThreadlessResponseContextDto {
424
+ /** Current Revo UI component hint included in the response context. It does not automatically select tools or skills. */
425
+ "componentContext"?: "PREFERENCES" | "USERS" | "SERVICE_ACCOUNTS" | "GROUPS" | "ROLE_GROUPS" | "SECRETS" | "REVISIONS" | "DATABASES" | "DATABASE_OPERATIONS" | "DATABASE_VIEWS" | "DATA" | "DATA_ITEMS" | "ENDPOINTS" | "TEMPLATES" | "SCHEDULE" | "SCHEDULE_HISTORY" | "EVENTS" | "JOBS" | "AGENTS" | "AGENT_RUNS" | "AGENT_INBOX" | "AGENT_PLUGINS" | "AGENT_TERMINALS" | "WEBHOOKS" | "COMPONENTS" | "COMPONENT_ELEMENTS" | "EVENTS_HISTORY" | "USER_KEYS" | "FILES" | "STORAGE" | "REALTIME" | "LOGS" | "MONITORING" | "THREAD" | "SECURITY_SETTINGS" | "ME_SETTINGS" | "ME_KEYS" | "USER_DETAILS" | "PLAYGROUND" | "WEB_IDE";
426
+ /** UI-level intent hint for the lightweight response. */
427
+ "kind"?: "suggestion" | "code_refactor" | "code_explain" | "completion" | "generic";
428
+ /** Additional UI instruction for this lightweight response. */
429
+ "instruction"?: string;
430
+ /** Programming or content language hint, for example typescript. */
431
+ "language"?: string;
432
+ /** Optional file/component path currently shown in the UI. */
433
+ "filePath"?: string;
434
+ /** Current selected text/code from the UI. */
435
+ "selectedText"?: string;
436
+ /** Nearby text/code around the current selection. */
437
+ "surroundingText"?: string;
438
+ /** Optional exact platform refs already known by the UI. */
439
+ "resourceRefs"?: Array<string>;
440
+ /** Compatibility context tags. Currently do not affect response context or tool selection. */
441
+ "requestContext"?: Array<string>;
442
+ }
403
443
  interface SwaggerDatabaseDefinition {
404
444
  /** Column id, required only for update. */
405
445
  "databaseDefinitionId"?: string;
@@ -466,19 +506,19 @@ interface SwaggerDatabaseIndexExpressionDto {
466
506
  "fn"?: string;
467
507
  "args"?: Array<SwaggerDatabaseIndexExpressionDto>;
468
508
  "cast"?: string;
469
- "literal"?: Record<string, unknown>;
509
+ "literal"?: string | number | boolean | null;
470
510
  }
471
511
  interface SwaggerDatabaseIndexPredicateDto {
472
512
  /** Logical AND. */
473
- "and"?: Array<string>;
513
+ "and"?: Array<SwaggerDatabaseIndexPredicateDto>;
474
514
  /** Logical OR. */
475
- "or"?: Array<string>;
515
+ "or"?: Array<SwaggerDatabaseIndexPredicateDto>;
476
516
  /** Logical NOT. */
477
517
  "not"?: SwaggerDatabaseIndexPredicateDto;
478
518
  "column"?: string;
479
519
  "op"?: "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "like" | "ilike" | "in" | "between" | "isnull" | "notnull";
480
- "value"?: Record<string, unknown>;
481
- "values"?: Array<string>;
520
+ "value"?: string | number | boolean | null;
521
+ "values"?: Array<string | number | boolean | null>;
482
522
  }
483
523
  interface SwaggerDatabaseOptionsDto {
484
524
  "indexes"?: Array<SwaggerDatabaseIndexDefinitionDto>;
@@ -587,6 +627,8 @@ interface SwaggerStorageCellInputDto {
587
627
  "style"?: Record<string, unknown>;
588
628
  }
589
629
  interface SwaggerStorageCsvOptionsDto {
630
+ /** CSV read/index policy. abort rejects invalid records; skipRow skips only source field-count mismatches and reports their count and locations. Syntax and oversized-record errors always abort. */
631
+ "onError"?: "abort" | "skipRow";
590
632
  /** Output character encoding. Input encoding is detected when omitted. */
591
633
  "encoding"?: string;
592
634
  /** Emit a byte order mark at the start of the file. */
@@ -595,9 +637,11 @@ interface SwaggerStorageCsvOptionsDto {
595
637
  "delimiter"?: string;
596
638
  /** Record delimiter. */
597
639
  "recordDelimiter"?: "\n" | "\r" | "\r\n";
598
- /** Quote character. */
599
- "quote"?: string;
600
- /** Quote escape character. */
640
+ /** Quote character, default double quote. Set false to disable CSV quoting; quotes and backslashes then remain literal and escape is ignored. */
641
+ "quote"?: string | false;
642
+ /** Maximum source bytes in one logical CSV record, including multiline quoted fields. Defaults to 64 MiB; independent of callback/read batch size. Larger records reject indexing with STORAGE_CSV_INVALID and a RecordTooLarge diagnostic. */
643
+ "maxRecordBytes"?: number;
644
+ /** Quote escape character. Ignored when quote is false. */
601
645
  "escape"?: string;
602
646
  /** Prefix spreadsheet formula-like values to prevent CSV formula injection. */
603
647
  "escapeFormulae"?: boolean;
@@ -654,7 +698,7 @@ interface SwaggerStorageSheetTableDto {
654
698
  interface SwaggerStorageTabularSchemaPolicyDto {
655
699
  /** How missing sheets or columns and invalid declared values are handled. fallback retains imperfect data with diagnostics; strict fails structured indexing. Defaults to fallback. */
656
700
  "profile"?: "fallback" | "strict";
657
- /** How undeclared source columns are handled. allow retains them, strip omits them from structured rows, and reject fails indexing. Defaults to allow for fallback and reject for strict. The raw file is preserved. */
701
+ /** How undeclared source columns are handled. allow retains them, strip omits them from structured rows, and reject fails indexing. Defaults to allow for fallback and reject for strict. Already committed files retain their raw bytes; synchronous validation failures before publication do not create a readable entry. */
658
702
  "additionalProperties"?: "allow" | "strip" | "reject";
659
703
  }
660
704
  interface SwaggerUpdateServiceAccountAccessDto {
@@ -703,6 +747,42 @@ interface SwaggerWebhookRequestPatchDto {
703
747
  /** Explicit replacement of the whole body. Omitted body reuses the saved body. */
704
748
  "body"?: Record<string, unknown> | Array<unknown>;
705
749
  }
750
+ interface SwaggerAgentRunResultDto {
751
+ /** Complete validated terminal answer, independent of the bounded human-readable summary. */
752
+ "output"?: SwaggerAssistantOutputDto;
753
+ /** Bounded human-readable terminal summary. Use output.text or output.json for the complete answer. */
754
+ "summary"?: string;
755
+ }
756
+ interface AssistantThreadQuery {
757
+ /** Number of rows to skip before pagination starts. Parsed from a query-string integer. */
758
+ "skip"?: number;
759
+ /** Maximum number of rows to return. Parsed from a query-string integer. Most list endpoints default to 100 when omitted. */
760
+ "take"?: number;
761
+ /** Include the total count in the response envelope only when explicitly true. Omitted or false skips the count query. */
762
+ "count"?: boolean;
763
+ /** Filter tree as a JSON string or bracket-style query object. Supports and/or/not groups and field predicates with ops such as eq, ne, gt, gte, lt, lte, like, notLike, ilike, notILike, in, notIn, any, isNull, isNotNull, between, contains, containedBy, arrayHas, arrayHasAny, arrayHasAll, arrayContainedBy, jsonArrayHas, jsonArrayHasAny, jsonArrayHasAll, startsWith, endsWith, true, and false. Field names are allowed logical fields; relation fields use dot paths such as groups.groupId when exposed by the endpoint. */
764
+ "filter"?: string;
765
+ /** Sort definition as a JSON string, indexed array query object, array, or legacy CSV. JSON object values should be ASC or DESC. CSV supports descending fields with a leading dash, for example name,-lastUpdateAt. */
766
+ "sort"?: string;
767
+ /** Optional DISTINCT ON logical fields as a JSON array string, indexed array query object, array, or legacy CSV. Selected distinct fields are included in the projection. */
768
+ "distinct"?: string;
769
+ /** Optional field projection as a JSON array string, indexed array query object, array, or legacy CSV. String fields must be allowlisted logical fields. Advanced select items may use field, fn, raw, cast, coalesce, or case expressions when the endpoint enables dynamic projection. */
770
+ "fields"?: string;
771
+ /** Optional join definitions as a JSON string or bracket-style query object. This is only honored by endpoints that explicitly enable dynamic joins, such as dynamic database data reads. Each join has table, alias, type (left or inner), and an on condition. */
772
+ "joins"?: string;
773
+ /** Optional groupBy logical fields as a JSON array string, indexed array query object, array, or legacy CSV. Only honored when the endpoint enables dynamic grouping or already has grouped defaults. */
774
+ "groupBy"?: string;
775
+ /** Optional cast mapping as a JSON string or bracket-style query object. Keys are selected aliases or logical fields; values are database definition types such as TEXT, INTEGER, BIGINT, NUMERIC, BOOLEAN, DATE, TIMESTAMP, TIMESTAMPTZ, JSON, JSONB, or UUID where supported. */
776
+ "cast"?: string;
777
+ /** Optional CTE definitions as a JSON string or bracket-style query object. Only honored by endpoints that explicitly enable dynamic CTEs. */
778
+ "with"?: string;
779
+ /** Enable debug output for the request, including compiled SQL, bound params, and bounded EXPLAIN plans when the endpoint supports it. */
780
+ "debug"?: boolean;
781
+ /** Include technical response threads alongside conversations. Independent of deleted visibility. */
782
+ "includeResponses"?: boolean;
783
+ /** Include deleted owned threads. Independent of technical response visibility. */
784
+ "includeDeleted"?: boolean;
785
+ }
706
786
  interface AgentRunCancelInput {
707
787
  /** Optional cancellation reason for audit traces. */
708
788
  "reason"?: string;
@@ -808,14 +888,30 @@ interface ServiceAccountKeyCreateInput {
808
888
  "expireAt"?: string;
809
889
  }
810
890
  interface AssistantMessageInput {
891
+ /** Instructions persisted on this thread across follow-up messages, Resume, same-owner forks and compaction. Maximum 16 KiB UTF-8 and 16 KiB after safe instruction rendering. Supplements mandatory runtime and instance-global instructions; never grants tool permissions. Immutable after creation. */
892
+ "instructions"?: string;
893
+ /** Persisted context profile. platform preserves the normal Revo Assistant. minimal keeps instance-global and account standing instructions and safety, omits automatic memory and plugin discovery/preload, and admits only explicitly selected tools/plugins. Defaults to platform. Immutable after creation. */
894
+ "contextMode"?: "platform" | "minimal";
895
+ /** Persisted final-answer format, also enforced on browser follow-ups and Resume. Defaults to text. Immutable after creation. */
896
+ "responseFormat"?: SwaggerAssistantResponseFormatDto;
897
+ /** Per-turn approval policy. default requires approval for side-effecting tool calls, auto_review uses conditional safe auto-review, and full skips normal approval gates. */
898
+ "permissions"?: "default" | "auto_review" | "full";
899
+ /** Optional per-tool approval policy overrides. Runtime sanitizes keys and enum values before persisting them. */
900
+ "toolPermissions"?: Record<string, "default" | "auto_review" | "full">;
901
+ /** Optional allowlist of operational tool names for this turn. Omit to allow the gateway default surface; pass an empty array to admit no tools for direct-answer turns. */
902
+ "toolNames"?: Array<"ref_search" | "ref_describe" | "ref_apply" | "snapshot_get" | "snapshot_history" | "snapshot_diff" | "storage" | "skill_search" | "skill_load" | "memory_search" | "memory_load" | "memory_save" | "plan_update" | "code_search" | "code_read" | "code_exec" | "ops_investigate" | "platform_api_find_operation" | "dependency_graph" | "web_search" | "web_load" | "web_rich_lookup" | "wait" | "conversation_search" | "conversation_load" | "attachment_load" | "send_message" | "agent_handoff" | "agent_delegate" | "plugin_search" | "plugin_load" | "plugin_call" | "request_clarification" | "code_describe" | "generate_widget" | "terminal_exec" | "terminal" | "studio" | "tool_exec" | "tool_wait" | "tool_status" | "tool_cancel">;
903
+ /** Optional registry plugin ids attached to this assistant turn. */
904
+ "pluginIds"?: Array<string>;
905
+ /** Optional Studio session to work on in this conversation. Requires an enabled Studio feature and live editing membership. The binding persists across follow-up turns and does not share private conversation history. */
906
+ "studioSessionId"?: string;
811
907
  /** Finalized Storage files to link to this message. File access is checked on send and every read. */
812
908
  "storageEntryIds"?: Array<string>;
813
909
  /** Content of the message, validated up to 100000 tokens. */
814
910
  "content": string;
815
911
  /** Optional hidden draft user message id created before attachment uploads. When provided, the send operation finalizes that draft instead of creating a new user message. */
816
912
  "preflightMessageId"?: string;
817
- /** Optional assistant execution-model override. GPT-6 Luna is the default; GPT-6.1 Sol and GPT-6 Luna are supported. */
818
- "model"?: "gpt-6.1-sol" | "gpt-6-luna";
913
+ /** Optional assistant execution-model override. GPT-6 Luna is the default; GPT-6.1 Sol, GPT-6.1 Terra and GPT-6 Luna are supported. */
914
+ "model"?: "gpt-6.1-sol" | "gpt-6.1-terra" | "gpt-6-luna";
819
915
  /** Optional GPT-6 Luna Fast mode. Defaults to false and remains opt-in per thread. */
820
916
  "fastMode"?: boolean;
821
917
  /** Optional assistant reasoning effort override: none, low, medium, high, or xhigh. Defaults to medium. */
@@ -834,14 +930,6 @@ interface AssistantMessageInput {
834
930
  "executionMode"?: "interactive" | "execute" | "background" | "automation";
835
931
  /** Planning policy for the turn. standard lets the assistant use internal planning and optionally expose progress; review_required always creates a user-reviewed plan before execution. */
836
932
  "planningPolicy"?: "standard" | "review_required";
837
- /** Per-turn approval policy. default requires approval for side-effecting tool calls, auto_review uses conditional safe auto-review, and full skips normal approval gates. */
838
- "permissions"?: "default" | "auto_review" | "full";
839
- /** Optional per-tool approval policy overrides. Runtime sanitizes keys and enum values before persisting them. */
840
- "toolPermissions"?: Record<string, "default" | "auto_review" | "full">;
841
- /** Optional allowlist of operational tool names for this turn. Omit to allow the gateway default surface; pass an empty array to admit no tools for direct-answer turns. */
842
- "toolNames"?: Array<string>;
843
- /** Optional registry plugin ids attached to this assistant turn. */
844
- "pluginIds"?: Array<string>;
845
933
  /** Optional per-turn backend performance debugger. When true, payload build timing traces are persisted into assistant report artifacts, and local/test runtimes may persist hidden model-call snapshots for this turn. */
846
934
  "performanceDebugger"?: boolean;
847
935
  }
@@ -933,6 +1021,58 @@ interface StorageUploadSessionInput {
933
1021
  /** Explicit allowed user ids for the finalized entry. */
934
1022
  "users"?: Array<string>;
935
1023
  }
1024
+ interface AssistantResponseInput {
1025
+ /** Instructions persisted on this thread across follow-up messages, Resume, same-owner forks and compaction. Maximum 16 KiB UTF-8 and 16 KiB after safe instruction rendering. Supplements mandatory runtime and instance-global instructions; never grants tool permissions. Immutable after creation. */
1026
+ "instructions"?: string;
1027
+ /** Persisted context profile. platform preserves the normal Revo Assistant. minimal keeps instance-global and account standing instructions and safety, omits automatic memory and plugin discovery/preload, and admits only explicitly selected tools/plugins. Defaults to platform. Immutable after creation. */
1028
+ "contextMode"?: "platform" | "minimal";
1029
+ /** Persisted final-answer format, also enforced on browser follow-ups and Resume. Defaults to text. Immutable after creation. */
1030
+ "responseFormat"?: SwaggerAssistantResponseFormatDto;
1031
+ /** Per-turn approval policy. default requires approval for side-effecting tool calls, auto_review uses conditional safe auto-review, and full skips normal approval gates. */
1032
+ "permissions"?: "default" | "auto_review" | "full";
1033
+ /** Optional per-tool approval policy overrides. Runtime sanitizes keys and enum values before persisting them. */
1034
+ "toolPermissions"?: Record<string, "default" | "auto_review" | "full">;
1035
+ /** Optional allowlist of operational tool names for this turn. Omit to allow the gateway default surface; pass an empty array to admit no tools for direct-answer turns. */
1036
+ "toolNames"?: Array<"ref_search" | "ref_describe" | "ref_apply" | "snapshot_get" | "snapshot_history" | "snapshot_diff" | "storage" | "skill_search" | "skill_load" | "memory_search" | "memory_load" | "memory_save" | "plan_update" | "code_search" | "code_read" | "code_exec" | "ops_investigate" | "platform_api_find_operation" | "dependency_graph" | "web_search" | "web_load" | "web_rich_lookup" | "wait" | "conversation_search" | "conversation_load" | "attachment_load" | "send_message" | "agent_handoff" | "agent_delegate" | "plugin_search" | "plugin_load" | "plugin_call" | "request_clarification" | "code_describe" | "generate_widget" | "terminal_exec" | "terminal" | "studio" | "tool_exec" | "tool_wait" | "tool_status" | "tool_cancel">;
1037
+ /** Optional registry plugin ids attached to this assistant turn. */
1038
+ "pluginIds"?: Array<string>;
1039
+ /** Optional Studio session to work on in this conversation. Requires an enabled Studio feature and live editing membership. The binding persists across follow-up turns and does not share private conversation history. */
1040
+ "studioSessionId"?: string;
1041
+ /** Finalized Storage files to link to this message. File access is checked on send and every read. */
1042
+ "storageEntryIds"?: Array<string>;
1043
+ /** Content of the message, validated up to 100000 tokens. */
1044
+ "content": string;
1045
+ /** Optional hidden draft user message id created before attachment uploads. When provided, the send operation finalizes that draft instead of creating a new user message. */
1046
+ "preflightMessageId"?: string;
1047
+ /** Optional assistant execution-model override. GPT-6 Luna is the default; GPT-6.1 Sol, GPT-6.1 Terra and GPT-6 Luna are supported. */
1048
+ "model"?: "gpt-6.1-sol" | "gpt-6.1-terra" | "gpt-6-luna";
1049
+ /** Optional GPT-6 Luna Fast mode. Defaults to false and remains opt-in per thread. */
1050
+ "fastMode"?: boolean;
1051
+ /** Optional assistant reasoning effort override: none, low, medium, high, or xhigh. Defaults to medium. */
1052
+ "reasoningEffort"?: "none" | "low" | "medium" | "high" | "xhigh";
1053
+ /** Alias for reasoningEffort used by assistant preferences. Prefer reasoningEffort for new clients. */
1054
+ "reasoning"?: "none" | "low" | "medium" | "high" | "xhigh";
1055
+ /** Optional flag selecting deadline-bounded background provider recovery. On SSE routes it also allows the turn to continue after client disconnect. Defaults to false. */
1056
+ "backgroundProcessing"?: boolean;
1057
+ /** Optional flag for send-message endpoints. When true, an active streamed assistant turn for the thread is interrupted before appending this message. */
1058
+ "interruptActive"?: boolean;
1059
+ /** Internal steer flag set by steer endpoints. When true, the visible user message is preserved while the executor receives a wrapper telling it to apply the message as a correction or refinement to the interrupted task. */
1060
+ "steeringMode"?: boolean;
1061
+ /** Optional durable turn goal for non-plan execution. Agent runtime carries this goal across tool loops, compaction, and follow-up turns without forcing visible plan review. */
1062
+ "goal"?: string;
1063
+ /** Execution mode for the turn. Interactive may pause for approval or clarification. Background and automation should avoid user-blocking pauses. */
1064
+ "executionMode"?: "interactive" | "execute" | "background" | "automation";
1065
+ /** Planning policy for the turn. standard lets the assistant use internal planning and optionally expose progress; review_required always creates a user-reviewed plan before execution. */
1066
+ "planningPolicy"?: "standard" | "review_required";
1067
+ /** Optional per-turn backend performance debugger. When true, payload build timing traces are persisted into assistant report artifacts, and local/test runtimes may persist hidden model-call snapshots for this turn. */
1068
+ "performanceDebugger"?: boolean;
1069
+ /** Optional assistant runtime selector. v2 routes the request through agent-gateway. v1 is expired and rejected. */
1070
+ "version"?: "v1" | "v2";
1071
+ /** Structured UI context for lightweight, threadless assistant responses. */
1072
+ "context"?: SwaggerAssistantThreadlessResponseContextDto;
1073
+ /** Create an ordinary visible conversation when true. Otherwise retain a technical response thread excluded from default list/search results; includeResponses opts into reading it. Neither mode automatically deletes the thread or its evidence. Defaults to false. */
1074
+ "persistThread"?: boolean;
1075
+ }
936
1076
  interface DatabaseOperationInput {
937
1077
  /** Database ID/name, or view ID when viewAction is provided. */
938
1078
  "databaseName": string;
@@ -973,6 +1113,8 @@ interface AssistantForkMessageInput {
973
1113
  "version"?: "v1" | "v2";
974
1114
  /** Optional explicit title for the forked thread. When omitted, orchestration will generate the new thread title. */
975
1115
  "title"?: string;
1116
+ /** Bind an owned conversation fork to an OPEN Studio workspace under fresh editing access. A Studio-bound source requires a child whose parentSessionId is the original workspace. The source conversation and its private history remain unchanged. */
1117
+ "studioSessionId"?: string;
976
1118
  }
977
1119
  interface JobsBulkInput {
978
1120
  /** Existing platform filter tree. Exactly one of filter and resource IDs is required. */
@@ -1073,7 +1215,7 @@ interface AssistantActionResolutionInput {
1073
1215
  /** Optional flag selecting deadline-bounded background provider recovery. On the SSE route it also allows the resumed turn to continue after client disconnect. Streamed action resolution defaults this to true. */
1074
1216
  "backgroundProcessing"?: boolean;
1075
1217
  /** Optional assistant model override for the resumed turn after this action is resolved. */
1076
- "model"?: "gpt-6.1-sol" | "gpt-6-luna";
1218
+ "model"?: "gpt-6.1-sol" | "gpt-6.1-terra" | "gpt-6-luna";
1077
1219
  /** Optional Fast-mode override for the resumed turn. Available only on GPT-6 Luna. */
1078
1220
  "fastMode"?: boolean;
1079
1221
  /** Optional assistant reasoning effort override for the resumed turn: none, low, medium, high, or xhigh. */
@@ -1085,7 +1227,7 @@ interface AssistantActionResolutionInput {
1085
1227
  /** Planning policy override for the resumed turn after this action is resolved. */
1086
1228
  "planningPolicy"?: "standard" | "review_required";
1087
1229
  /** Optional operational tool names admitted for the resumed turn. Omit to keep the current thread admission; pass an empty array to admit no tools for direct-answer continuation. */
1088
- "toolNames"?: Array<string>;
1230
+ "toolNames"?: Array<"ref_search" | "ref_describe" | "ref_apply" | "snapshot_get" | "snapshot_history" | "snapshot_diff" | "storage" | "skill_search" | "skill_load" | "memory_search" | "memory_load" | "memory_save" | "plan_update" | "code_search" | "code_read" | "code_exec" | "ops_investigate" | "platform_api_find_operation" | "dependency_graph" | "web_search" | "web_load" | "web_rich_lookup" | "wait" | "conversation_search" | "conversation_load" | "attachment_load" | "send_message" | "agent_handoff" | "agent_delegate" | "plugin_search" | "plugin_load" | "plugin_call" | "request_clarification" | "code_describe" | "generate_widget" | "terminal_exec" | "terminal" | "studio" | "tool_exec" | "tool_wait" | "tool_status" | "tool_cancel">;
1089
1231
  /** Optional additional registry plugin ids attached to the resumed turn. */
1090
1232
  "pluginIds"?: Array<string>;
1091
1233
  }
@@ -1288,11 +1430,6 @@ interface AutomationOperation {
1288
1430
  skipped: number;
1289
1431
  failed: number;
1290
1432
  }
1291
- /**
1292
- * Canonical public low-code API declarations shared by Monaco and local editors.
1293
- * Lifecycle input DTOs are generated from Swagger in api.swagger-contracts.generated.d.ts.
1294
- * Edit this file for model guidance, then regenerate api.monaco.ts.
1295
- */
1296
1433
  /** Ordered, literal-safe updates. Repeated columns run top to bottom (maximum 100 operations).
1297
1434
  * NULL is preserved unless nulls: 'empty' is selected for text/array/JSON transforms.
1298
1435
  * insert.position is 1-based Unicode character position. replace replaces all exact matches.
@@ -1939,6 +2076,10 @@ interface StorageEntryView extends StorageEntry {
1939
2076
  breadcrumbs: StorageBreadcrumb[];
1940
2077
  }
1941
2078
  interface StorageExploreRequest {
2079
+ /** Disable implicit parent-folder scoping; ACL and namespace checks still apply. */
2080
+ flat?: boolean;
2081
+ filter?: SelectFilterNode;
2082
+ sort?: string[] | Record<string, SortDir>;
1942
2083
  parentStorageEntryId?: string;
1943
2084
  storageProviderConfigId?: string | null;
1944
2085
  term?: string;
@@ -2055,7 +2196,27 @@ interface StorageDocument {
2055
2196
  totalLines?: number;
2056
2197
  truncated?: boolean;
2057
2198
  }
2199
+ /** Whole-source CSV mismatch report. Repeated on pages; do not sum page reports. No raw values. */
2200
+ interface StorageCsvReadReport {
2201
+ skippedRows: number;
2202
+ diagnostics: Array<{
2203
+ code: string;
2204
+ recordNumber: number;
2205
+ lineStart: number;
2206
+ lineEnd: number;
2207
+ startByte: number;
2208
+ expectedFieldCount?: number;
2209
+ actualFieldCount?: number;
2210
+ message: string;
2211
+ }>;
2212
+ diagnosticsTruncated: boolean;
2213
+ }
2058
2214
  interface StorageFileReadOptions {
2215
+ /** CSV only. Default abort. skipRow drops wrong-width source records; syntax/size errors still abort. */
2216
+ onError?: 'abort' | 'skipRow';
2217
+ /** Physical lines include headers and the trailing empty line. Defaults to records. */
2218
+ mode?: 'records' | 'lines';
2219
+ separator?: string;
2059
2220
  batchNumber?: number;
2060
2221
  buffer?: boolean;
2061
2222
  start?: number;
@@ -2070,7 +2231,11 @@ interface StorageFileReadOptions {
2070
2231
  encoding?: string;
2071
2232
  delimiter?: string;
2072
2233
  recordDelimiter?: '\n' | '\r' | '\r\n';
2073
- quote?: string;
2234
+ /** One quote character (default double quote), or false for literal quotes/backslashes. */
2235
+ quote?: string | false;
2236
+ /** Maximum bytes in one logical CSV record; positive integer, default 64 MiB. Independent of read/callback size. */
2237
+ maxRecordBytes?: number;
2238
+ /** Quote escape character; ignored when quote is false. */
2074
2239
  escape?: string;
2075
2240
  /** XML record path such as `Orders/Order`; required for XML row reads. */
2076
2241
  recordPath?: string;
@@ -2086,11 +2251,18 @@ interface StorageFileReadOptions {
2086
2251
  }>;
2087
2252
  }
2088
2253
  interface StorageFileStatsOptions {
2254
+ /** CSV only. Default abort. skipRow drops wrong-width source records; syntax/size errors still abort. */
2255
+ onError?: 'abort' | 'skipRow';
2256
+ mode?: 'records' | 'lines';
2089
2257
  separator?: string;
2090
2258
  encoding?: string;
2091
2259
  delimiter?: string;
2092
2260
  recordDelimiter?: '\n' | '\r' | '\r\n';
2093
- quote?: string;
2261
+ /** One quote character (default double quote), or false for literal quotes/backslashes. */
2262
+ quote?: string | false;
2263
+ /** Maximum bytes in one logical CSV record; positive integer, default 64 MiB. Independent of read/callback size. */
2264
+ maxRecordBytes?: number;
2265
+ /** Quote escape character; ignored when quote is false. */
2094
2266
  escape?: string;
2095
2267
  headerRow?: number | null;
2096
2268
  reloadStats?: boolean;
@@ -2122,7 +2294,16 @@ interface StorageTabularSchemaResult {
2122
2294
  issues: StorageTabularSchemaIssue[];
2123
2295
  }
2124
2296
  interface StorageFileStats {
2297
+ /** Present for CSV indexed with onError: skipRow; describes the entire source. */
2298
+ csvReport?: StorageCsvReadReport;
2299
+ /** Legacy physical-window count, including the terminal empty window after a delimiter. */
2125
2300
  lineCount?: number;
2301
+ /** Actual physical lines, including headers, blanks and multiline CSV field lines; no terminal synthetic empty line. */
2302
+ physicalLineCount?: number;
2303
+ /** Empty physical lines, excluding the synthetic terminal empty line. */
2304
+ blankLineCount?: number;
2305
+ /** Whether the source ends in its detected or explicit record delimiter. */
2306
+ endsWithRecordDelimiter?: boolean;
2126
2307
  map?: LooseObject<number>;
2127
2308
  separator?: string;
2128
2309
  batches?: number;
@@ -2133,7 +2314,11 @@ interface StorageFileStats {
2133
2314
  bom?: boolean;
2134
2315
  delimiter?: string;
2135
2316
  recordDelimiter?: string;
2136
- quote?: string;
2317
+ /** One quote character (default double quote), or false for literal quotes/backslashes. */
2318
+ quote?: string | false;
2319
+ /** Maximum bytes in one logical CSV record; positive integer, default 64 MiB. Independent of read/callback size. */
2320
+ maxRecordBytes?: number;
2321
+ /** Quote escape character; ignored when quote is false. */
2137
2322
  escape?: string;
2138
2323
  rowCount?: number;
2139
2324
  headers?: StorageTabularColumn[];
@@ -2148,6 +2333,7 @@ interface StorageFileStats {
2148
2333
  }>;
2149
2334
  }
2150
2335
  interface StorageStructuredFileDataPage {
2336
+ csvReport?: StorageCsvReadReport;
2151
2337
  format: 'csv' | 'xlsx' | 'ndjson' | 'json-array' | 'xml';
2152
2338
  sheet: string | null;
2153
2339
  headers: StorageTabularColumn[];
@@ -2416,7 +2602,9 @@ interface ComponentExecuteRequest {
2416
2602
  */
2417
2603
  componentId: string;
2418
2604
  /**
2419
- * Optional exact component version. Omit to run the latest active version.
2605
+ * Optional exact component version. Omit to use the execution's active release.
2606
+ * A pinned Studio release rejects versions newer than its component binding.
2607
+ * Studio tests accept an explicit version only when it matches their captured source.
2420
2608
  */
2421
2609
  componentVersion?: number;
2422
2610
  /**
@@ -2691,6 +2879,10 @@ interface AgentConfig {
2691
2879
  workMode?: AgentWorkMode;
2692
2880
  persona?: AgentPersona;
2693
2881
  systemInstructions?: string;
2882
+ /** Profile for new Agent threads; defaults to platform. Mandatory Agent instructions and existing tool/plugin admission remain authoritative. */
2883
+ contextMode?: 'platform' | 'minimal';
2884
+ /** Final-answer contract for new Agent threads; defaults to text. Existing threads keep their saved contract on continuation and Resume. */
2885
+ responseFormat?: SwaggerAssistantResponseFormatDto;
2694
2886
  /** Persistent Agent Memory shared with memory tools and included in every instruction packet; at most 20,000 o200k_base tokens. */
2695
2887
  memory?: string;
2696
2888
  memoryPolicy?: AgentMemoryPolicy;
@@ -2800,7 +2992,8 @@ interface AgentRun {
2800
2992
  lastHeartbeatAt?: Date | string | null;
2801
2993
  checkpointSummary?: string | null;
2802
2994
  state?: Record<string, any>;
2803
- result?: Record<string, any> | null;
2995
+ /** Complete validated answer is in output; summary is bounded. Additional runtime result fields remain available. */
2996
+ result?: (Record<string, any> & SwaggerAgentRunResultDto) | null;
2804
2997
  error?: Record<string, any> | null;
2805
2998
  createdBy?: string;
2806
2999
  createdAt?: Date | string;
@@ -2936,6 +3129,12 @@ interface AssistantActionRequired {
2936
3129
  planningTransition?: AssistantPlanningTransition | null;
2937
3130
  }
2938
3131
  interface AssistantThread {
3132
+ /** conversation for ordinary chats; response for retained technical results hidden from the default conversation list. */
3133
+ kind?: 'conversation' | 'response';
3134
+ /** Immutable creation-time task contract, preserved by continuation, Resume and same-owner fork. */
3135
+ instructions?: string;
3136
+ contextMode?: 'platform' | 'minimal';
3137
+ responseFormat?: SwaggerAssistantResponseFormatDto;
2939
3138
  assistantThreadId: string;
2940
3139
  title: string;
2941
3140
  status: string;
@@ -3006,6 +3205,8 @@ interface AssistantSharedThreadResponse {
3006
3205
  }
3007
3206
  interface AssistantThreadResponse {
3008
3207
  thread: AssistantThread;
3208
+ /** Validated terminal answer for explicitly configured thread contracts. Absent while approval/clarification is required. */
3209
+ output?: SwaggerAssistantOutputDto;
3009
3210
  message?: AssistantMessage | null;
3010
3211
  assistantMessage?: AssistantMessage | null;
3011
3212
  noticeMessages?: AssistantMessage[];
@@ -3296,7 +3497,9 @@ interface RevoApi {
3296
3497
  currentUser(): LoggedUser;
3297
3498
  isDebug(): boolean;
3298
3499
  getCache(key: string): any;
3299
- setCache(key: string, value: any): void;
3500
+ setCache(key: string, value: any, options?: {
3501
+ reference?: boolean;
3502
+ }): void;
3300
3503
  getContext(): Context;
3301
3504
  getErrors(): ProcessLog[];
3302
3505
  getExecutionId(): string;
@@ -3330,10 +3533,10 @@ interface RevoApi {
3330
3533
  acquireIdempotencyKey(key: string, ttl: number, value?: any): Promise<boolean>;
3331
3534
  getIdempotencyKey(key: string): Promise<any>;
3332
3535
  releaseIdempotencyKey(key: string): Promise<void>;
3333
- concurrencyLimit(key: string, limit: number, ttl: number): Promise<boolean>;
3536
+ concurrencyLimit(key: string, limit: number, ttl: number, leaseOwnerId?: string): Promise<boolean>;
3334
3537
  rateLimit(key: string, limit: number, ttl: number): Promise<boolean>;
3335
3538
  releaseRateLimit(key: string): Promise<void>;
3336
- releaseConcurrencyLimit(key: string): Promise<void>;
3539
+ releaseConcurrencyLimit(key: string, leaseOwnerId?: string): Promise<void>;
3337
3540
  triggerEvent(name: string, message: any, options?: TriggerEventOptions): Promise<string>;
3338
3541
  triggerTarget(targetType: ExecutionTargetType, targetId: string, input?: Record<string, JsonValue>, options?: AutomationScheduleOptions): Promise<string>;
3339
3542
  triggerJob(templateIdOrName: string, templateInputs?: Record<string, JsonValue>, options?: AutomationScheduleOptions): Promise<string>;
@@ -3362,12 +3565,12 @@ interface RevoApi {
3362
3565
  responseType: 'storage';
3363
3566
  target: HttpStorageTargetRef;
3364
3567
  timeout?: number;
3365
- proxy?: false;
3568
+ proxy?: boolean;
3366
3569
  }): Promise<{
3367
3570
  status: number;
3368
3571
  statusText: string;
3369
3572
  time: number;
3370
- headers: LooseObject<string>;
3573
+ headers: LooseObject<string | string[]>;
3371
3574
  revo?: HttpRevoResponseScope;
3372
3575
  request: {
3373
3576
  config: HttpRequestInterface;
@@ -3390,7 +3593,7 @@ interface RevoApi {
3390
3593
  status: number;
3391
3594
  statusText: string;
3392
3595
  time: number;
3393
- headers: LooseObject<string>;
3596
+ headers: LooseObject<string | string[]>;
3394
3597
  revo?: HttpRevoResponseScope;
3395
3598
  data: any;
3396
3599
  storage?: {
@@ -3463,8 +3666,8 @@ interface RevoStorage {
3463
3666
  restoreEntry(namespace: string, storageEntryId: string, data: StorageRestoreInput): Promise<StorageEntryView>;
3464
3667
  deleteEntry(storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
3465
3668
  deleteEntry(namespace: string, storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
3466
- getDownload(storageEntryId: string, preview?: boolean): Promise<StorageDownload>;
3467
- getDownload(namespace: string, storageEntryId: string, preview?: boolean): Promise<StorageDownload>;
3669
+ getDownload(storageEntryId: string, preview?: boolean, ttlSeconds?: number): Promise<StorageDownload>;
3670
+ getDownload(namespace: string, storageEntryId: string, preview?: boolean, ttlSeconds?: number): Promise<StorageDownload>;
3468
3671
  getDocument(storageEntryId: string, options?: StorageDocumentReadOptions): Promise<StorageDocument>;
3469
3672
  getDocument(namespace: string, storageEntryId: string, options?: StorageDocumentReadOptions): Promise<StorageDocument>;
3470
3673
  }
@@ -3498,7 +3701,7 @@ interface RevoAgents {
3498
3701
  tickRun(agentRunId: string): Promise<AgentRun>;
3499
3702
  cancelRun(agentRunId: string, data?: AgentRunCancelInput): Promise<AgentRun>;
3500
3703
  reconcileRuns(): Promise<any>;
3501
- listThreads(query?: Record<string, any>): Promise<CollectionResult<AssistantThread>>;
3704
+ listThreads(query?: AssistantThreadQuery): Promise<CollectionResult<AssistantThread>>;
3502
3705
  getThread(assistantThreadId: string, options?: {
3503
3706
  hideDeleted?: boolean;
3504
3707
  }): Promise<AssistantThread>;
@@ -3512,6 +3715,7 @@ interface RevoAgents {
3512
3715
  getSharedThreadMessageArtifact(shareId: string, assistantMessageId: string, artifactId: string): Promise<Record<string, any>>;
3513
3716
  forkSharedThreadMessage(shareId: string, assistantMessageId: string, data?: AssistantForkMessageInput): Promise<AssistantThreadResponse>;
3514
3717
  createThread(data: AssistantMessageInput): Promise<AssistantThreadResponse>;
3718
+ createResponse(data: AssistantResponseInput): Promise<AssistantThreadResponse>;
3515
3719
  deleteThread(assistantThreadId: string): Promise<void>;
3516
3720
  restoreThread(assistantThreadId: string): Promise<void>;
3517
3721
  listThreadMessages(assistantThreadId: string, query?: Record<string, any>): Promise<CollectionResult<AssistantMessage>>;