@revoengine/sdk 2.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,10 @@
1
1
  import * as node_worker_threads from 'node:worker_threads';
2
+ import { Buffer as Buffer$1 } from 'node:buffer';
2
3
 
3
- declare const SDK_VERSION: "2.0.0";
4
+ declare const SDK_VERSION: "3.0.0";
4
5
  declare const PROTOCOL_VERSION: 1;
5
- declare const CONTRACT_REVISION: "c507295175722cca486af351473cc859b0d5d04c69e12dbc1f149f6b0282012d";
6
- type RuntimeSurfaceName = 'api' | 'storage' | 'agents' | 'lowCode';
6
+ declare const CONTRACT_REVISION: "a8b45833ea1fa202798a2c8c009e07955b31c0cce159767844f96b9ca85b500a";
7
+ type RuntimeSurfaceName = 'api' | 'storage' | 'transport' | 'vault' | 'serviceAccount' | 'agents' | 'lowCode';
7
8
 
8
9
  // AUTO-GENERATED FILE. DO NOT EDIT DIRECTLY.
9
10
  // Sources: api.swagger-contracts.generated.d.ts, api.public.d.ts
@@ -43,9 +44,9 @@ interface SwaggerAgentCheapTurnPolicyDto {
43
44
  }
44
45
  interface SwaggerAgentConfigDto {
45
46
  /** Supported assistant model used when the agent starts a thread. */
46
- "model"?: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna";
47
+ "model"?: "gpt-6.1-sol" | "gpt-6.1-terra" | "gpt-6-luna";
47
48
  /** Reasoning effort passed to assistant threads. */
48
- "reasoningEffort"?: "low" | "medium" | "high" | "xhigh";
49
+ "reasoningEffort"?: "none" | "low" | "medium" | "high" | "xhigh";
49
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. */
50
51
  "executionMode"?: "interactive" | "execute" | "background" | "automation";
51
52
  /** Durable planning policy default used for agent-loop turns. standard executes normally; review_required creates a reviewed plan before interactive execution. */
@@ -56,6 +57,12 @@ interface SwaggerAgentConfigDto {
56
57
  "persona"?: "friendly" | "pragmatic" | "professional" | "concise" | "calm" | "mentor" | "assertive";
57
58
  /** Additional per-agent system instructions persisted with the definition. Runtime policy still has higher priority. */
58
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;
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. */
65
+ "memory"?: string;
59
66
  /** Structured operator-owned Agent identity loaded on every autonomous turn. Learned memory cannot mutate this definition. */
60
67
  "definition"?: SwaggerAgentDefinitionDto;
61
68
  /** Durable cross-run memory defaults such as recall budget, retained summary size, and retention horizon. */
@@ -70,6 +77,10 @@ interface SwaggerAgentConfigDto {
70
77
  "toolNames"?: Array<string>;
71
78
  /** Default registry plugin ids attached to this agent. These are the agent-owned baseline attachments applied to every run unless additional runtime plugin ids are supplied. */
72
79
  "pluginIds"?: Array<string>;
80
+ /** Attached or inherited default registry plugin IDs to load eagerly. IDs outside the effective Agent plugin access set are rejected. */
81
+ "eagerPluginIds"?: Array<string>;
82
+ /** Selected terminal IDs available to this Agent. An empty selection permits no terminals. Each use also requires the historical execution service account and its current terminal/workspace ACL. */
83
+ "agentTerminalIds"?: Array<string>;
73
84
  /** Primary plugin contract surface. Plugins are provider-governed and define the executable agent-plugin surface. */
74
85
  "plugins"?: Array<SwaggerAgentPluginConfigDto>;
75
86
  /** Maximum number of concurrently admitted root runs for this agent. Additional root runs remain queued until capacity is released. */
@@ -108,11 +119,13 @@ interface SwaggerAgentPluginApprovalConfigDto {
108
119
  "mode"?: "none" | "always" | "conditional";
109
120
  /** Safety tier enforced for approval and mutation governance. */
110
121
  "safetyTier"?: "read" | "write" | "destructive" | "external" | "execute";
122
+ /** Required for conditional mode: a verifiable constraint RevoShield must confirm in addition to user authorization. */
123
+ "condition"?: string;
111
124
  }
112
125
  interface SwaggerAgentPluginComponentToolConfigDto {
113
126
  /** Whether this component-backed tool is enabled for runtime selection and execution. */
114
127
  "enabled"?: boolean;
115
- /** Whether this component-backed tool is deferred behind discovery instead of eagerly exposed. */
128
+ /** Whether this exact expanded component action is deferred behind plugin discovery/loading instead of eagerly exposed. */
116
129
  "deferLoading"?: boolean;
117
130
  /** Explicit local tool alias exposed to the runtime when set. */
118
131
  "alias"?: string;
@@ -126,7 +139,7 @@ interface SwaggerAgentPluginComponentToolConfigDto {
126
139
  "inputs"?: Record<string, unknown>;
127
140
  /** Named component result to return when the component executor supports result popping. */
128
141
  "popResult"?: string;
129
- /** Strict structured input schema exposed for this tool. The component receives matching arguments under api.input().agentTool.args. Must be an object schema with additionalProperties=false and descriptions on every declared property. */
142
+ /** Strict model-facing input schema for this exact action. The component receives matching arguments under api.input().agentTool.args and must explicitly translate them when a downstream provider uses a different wire shape. Must be an object schema with additionalProperties=false and descriptions on every declared property. */
130
143
  "inputSchema"?: Record<string, unknown>;
131
144
  /** Structured output schema expected from this tool. */
132
145
  "outputSchema"?: Record<string, unknown>;
@@ -148,18 +161,18 @@ interface SwaggerAgentPluginComponentToolConfigDto {
148
161
  interface SwaggerAgentPluginComponentToolsetDto {
149
162
  /** Default governance and loading policy for component-backed tools. */
150
163
  "defaultConfig"?: SwaggerAgentPluginComponentToolConfigDto;
151
- /** Component-backed tools keyed by stable capability name. */
164
+ /** Component-backed actions keyed by stable capability name. Every entry expands into a separate executable tool; alias is its exact local model-visible action name when set. */
152
165
  "tools"?: Record<string, unknown>;
153
166
  }
154
167
  interface SwaggerAgentPluginConfigDto {
155
168
  /** Plugin contract version for the governed runtime surface. */
156
169
  "contractVersion"?: number;
157
170
  /** Stable plugin id used by the agent runtime. */
158
- "id"?: string;
171
+ "id": string;
159
172
  /** Plugin execution provider kind. */
160
173
  "kind"?: "tools" | "mcp_server" | "skill" | "package";
161
174
  /** Operator-facing plugin name. */
162
- "name"?: string;
175
+ "name": string;
163
176
  /** Optional plugin description. */
164
177
  "description"?: string;
165
178
  /** Canonical English routing metadata used for planner and fallback matching. Operator-facing name and description may remain localized. */
@@ -168,6 +181,8 @@ interface SwaggerAgentPluginConfigDto {
168
181
  "executionMode"?: "sync" | "background";
169
182
  /** Component id executed when this plugin runs. */
170
183
  "componentId"?: string;
184
+ /** Portable component revision digest. */
185
+ "componentDigest"?: string;
171
186
  /** Optional fixed component version. */
172
187
  "componentVersion"?: number;
173
188
  /** Multiple governed tool contracts backed by the same component implementation. */
@@ -207,9 +222,11 @@ interface SwaggerAgentPluginConfigDto {
207
222
  }
208
223
  interface SwaggerAgentPluginMcpConfigDto {
209
224
  /** Remote MCP transport supported by the SaaS runtime. */
210
- "transport"?: "streamable_http" | "sse";
211
- /** Absolute HTTPS endpoint for the remote MCP server. */
212
- "url"?: string;
225
+ "transport": "streamable_http" | "sse";
226
+ /** Absolute public HTTPS MCP endpoint URL. Private and localhost destinations are blocked at connection time. */
227
+ "url": string;
228
+ /** Public HTTPS network policy. Legacy private values are restricted to public HTTPS at execution time. */
229
+ "networkAccess"?: "public";
213
230
  /** Manifest cache time-to-live in milliseconds. */
214
231
  "manifestTtlMs"?: number;
215
232
  /** Connection and handshake timeout in milliseconds. */
@@ -233,7 +250,9 @@ interface SwaggerAgentPluginMcpConfigDto {
233
250
  }
234
251
  interface SwaggerAgentPluginMcpHeaderBindingDto {
235
252
  /** Header name sent to the remote MCP server. */
236
- "name"?: string;
253
+ "name": string;
254
+ /** Vault BoundValue resolved for the executing user, organization, or instance after an explicit grant. */
255
+ "vault"?: SwaggerAgentPluginMcpVaultRefDto;
237
256
  /** Secret id containing the header value. */
238
257
  "secretId"?: string;
239
258
  /** Optional secret data revision id when the binding should pin a specific secret revision. */
@@ -246,7 +265,7 @@ interface SwaggerAgentPluginMcpHeaderBindingDto {
246
265
  interface SwaggerAgentPluginMcpToolConfigDto {
247
266
  /** Whether the tool is enabled for runtime selection and execution. */
248
267
  "enabled"?: boolean;
249
- /** Whether the tool is deferred behind discovery instead of eagerly exposed. */
268
+ /** Whether the remote tool schema is deferred behind plugin discovery/loading instead of eagerly exposed. The manifest tool remains known by remote name; alias changes only its local exposed name. */
250
269
  "deferLoading"?: boolean;
251
270
  /** Explicit local tool alias exposed to the runtime when set. */
252
271
  "alias"?: string;
@@ -266,22 +285,36 @@ interface SwaggerAgentPluginMcpToolConfigDto {
266
285
  interface SwaggerAgentPluginMcpToolsetDto {
267
286
  /** Default governance and loading policy for tools discovered from this MCP server. */
268
287
  "defaultConfig"?: SwaggerAgentPluginMcpToolConfigDto;
269
- /** Per-remote-tool overrides keyed by remote tool name. */
288
+ /** Per-remote-tool overrides keyed by exact remote manifest tool name, never by local alias or plugin registry id. */
270
289
  "configs"?: Record<string, unknown>;
271
290
  }
291
+ interface SwaggerAgentPluginMcpVaultRefDto {
292
+ /** Opaque Vault reference marker. */
293
+ "__revoBoundValue": "vault-v1";
294
+ /** Credential requirement name declared by the plugin. */
295
+ "name": string;
296
+ /** Credential owner scope. */
297
+ "scope": "instance" | "user" | "organization";
298
+ /** Vault value source. */
299
+ "source": "secret" | "integration";
300
+ /** Literal text prepended to the resolved value. */
301
+ "prefix": string;
302
+ /** Literal text appended to the resolved value. */
303
+ "suffix": string;
304
+ }
272
305
  interface SwaggerAgentPluginPackageConfigDto {
273
306
  /** Stable package identity used across internal catalogs and future community marketplace publishing. */
274
307
  "externalId": string;
275
308
  /** Package content format. Markdown is the only supported v1 format. */
276
309
  "format"?: "markdown";
277
310
  /** Markdown instruction content loaded into the assistant runtime when the package is attached. */
278
- "content"?: string;
279
- /** Registry plugin ids declared as package dependencies. */
311
+ "content": string;
312
+ /** Exact direct registry plugin UUIDs exposed lazily when this package is loaded. Dependencies may be skill, tools, or MCP plugins, never packages. */
280
313
  "pluginIds"?: Array<string>;
281
314
  /** Disabled marketplace-facing package metadata reserved for catalog publishing. */
282
315
  "metadata"?: SwaggerAgentPluginPackageMetadataDto;
283
- /** Maximum number of package content characters allowed into one prompt. */
284
- "maxPromptChars"?: number;
316
+ /** Maximum number of package content tokens allowed into one prompt. Defaults to 10000. */
317
+ "maxPromptTokens"?: number;
285
318
  }
286
319
  interface SwaggerAgentPluginPackageMetadataDto {
287
320
  /** Package avatar or icon URL shown in package catalogs. */
@@ -317,11 +350,11 @@ interface SwaggerAgentPluginSkillConfigDto {
317
350
  /** Skill content format. Markdown is the only supported v1 format. */
318
351
  "format"?: "markdown";
319
352
  /** Markdown instruction content loaded into the assistant runtime when the plugin is attached. */
320
- "content"?: string;
321
- /** Registry plugin ids declared as one-level skill dependencies. */
353
+ "content": string;
354
+ /** Exact registry plugin UUIDs exposed lazily when this skill is loaded. Dependencies may be skill, tools, or MCP plugins, never packages. */
322
355
  "pluginIds"?: Array<string>;
323
- /** Maximum number of skill content characters allowed into one prompt. */
324
- "maxPromptChars"?: number;
356
+ /** Maximum number of skill content tokens allowed into one prompt. Defaults to 10000. */
357
+ "maxPromptTokens"?: number;
325
358
  }
326
359
  interface SwaggerAgentPolicyDto {
327
360
  /** Default approval mode applied to agent tool calls when no per-tool override exists. */
@@ -371,6 +404,42 @@ interface SwaggerAgentReleaseRolloutPolicyDto {
371
404
  /** Optional admitted snapshot to roll back to when the current rollout is revoked. */
372
405
  "rollbackToSnapshotId"?: string;
373
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" | "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
+ }
374
443
  interface SwaggerDatabaseDefinition {
375
444
  /** Column id, required only for update. */
376
445
  "databaseDefinitionId"?: string;
@@ -379,7 +448,7 @@ interface SwaggerDatabaseDefinition {
379
448
  /** Description. */
380
449
  "desc"?: string | null;
381
450
  /** Optional column metadata. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use. */
382
- "metadata"?: Record<string, unknown>;
451
+ "metadata"?: Record<string, unknown> | null;
383
452
  /** You need to specify type [SMALLINT,INTEGER,BIGINT,REAL,DOUBLE PRECISION,NUMERIC,JSON,JSONB,TEXT,UUID,DATE,TIME,TIMETZ,TIMESTAMP,TIMESTAMPTZ,BOOLEAN]. */
384
453
  "type": "SMALLINT" | "INTEGER" | "BIGINT" | "REAL" | "DOUBLE PRECISION" | "NUMERIC" | "JSON" | "JSONB" | "TEXT" | "UUID" | "DATE" | "TIME" | "TIMETZ" | "TIMESTAMP" | "TIMESTAMPTZ" | "BOOLEAN";
385
454
  /** Provide if this column is primary key. */
@@ -413,6 +482,80 @@ interface SwaggerDatabaseDefinitionForeignReferences {
413
482
  /** You need to specify what happen on update of referenced table data, "none" will raise an error if there are records existing in this table that reference it. */
414
483
  "onDelete": "none" | "cascade" | "restrict" | "default" | "null";
415
484
  }
485
+ interface SwaggerDatabaseIndexColumnDto {
486
+ "name"?: string;
487
+ /** function(col) / cast / expression are not raw SQL; only safe structured input is allowed */
488
+ "expression"?: SwaggerDatabaseIndexExpressionDto;
489
+ "order"?: "ASC" | "DESC";
490
+ "nulls"?: "FIRST" | "LAST";
491
+ "collation"?: string;
492
+ "opclass"?: string;
493
+ }
494
+ interface SwaggerDatabaseIndexDefinitionDto {
495
+ "name"?: string;
496
+ "using"?: "btree" | "hash" | "gist" | "spgist" | "gin" | "brin";
497
+ "columns": Array<SwaggerDatabaseIndexColumnDto>;
498
+ "where"?: SwaggerDatabaseIndexPredicateDto;
499
+ "include"?: Array<string>;
500
+ "unique"?: boolean;
501
+ }
502
+ interface SwaggerDatabaseIndexExpressionDto {
503
+ /** Column reference. */
504
+ "column"?: string;
505
+ /** Safe function name. */
506
+ "fn"?: string;
507
+ "args"?: Array<SwaggerDatabaseIndexExpressionDto>;
508
+ "cast"?: string;
509
+ "literal"?: string | number | boolean | null;
510
+ }
511
+ interface SwaggerDatabaseIndexPredicateDto {
512
+ /** Logical AND. */
513
+ "and"?: Array<SwaggerDatabaseIndexPredicateDto>;
514
+ /** Logical OR. */
515
+ "or"?: Array<SwaggerDatabaseIndexPredicateDto>;
516
+ /** Logical NOT. */
517
+ "not"?: SwaggerDatabaseIndexPredicateDto;
518
+ "column"?: string;
519
+ "op"?: "eq" | "ne" | "gt" | "gte" | "lt" | "lte" | "like" | "ilike" | "in" | "between" | "isnull" | "notnull";
520
+ "value"?: string | number | boolean | null;
521
+ "values"?: Array<string | number | boolean | null>;
522
+ }
523
+ interface SwaggerDatabaseOptionsDto {
524
+ "indexes"?: Array<SwaggerDatabaseIndexDefinitionDto>;
525
+ }
526
+ interface SwaggerDatabaseViewActionExecuteDto {
527
+ "action": "UPDATE" | "DELETE";
528
+ "targetDatabaseId": string;
529
+ "keyMapping": Record<string, unknown>;
530
+ "mutationToken": string;
531
+ "data"?: Record<string, unknown> | Array<{
532
+ "column": string;
533
+ "op": "set" | "setNull" | "add" | "subtract" | "multiply" | "divide" | "abs" | "floor" | "ceil" | "sqrt" | "round" | "pow" | "toggle" | "addInterval" | "subtractInterval" | "truncate" | "prepend" | "append" | "insert" | "replace" | "trim" | "lower" | "upper" | "mergeJson" | "setJsonPath" | "removeJsonPath" | "addItems" | "removeItems";
534
+ "value"?: unknown | null;
535
+ "position"?: number;
536
+ "search"?: string;
537
+ "path"?: Array<string>;
538
+ "create"?: boolean;
539
+ "unit"?: string;
540
+ "nulls"?: "preserve" | "empty";
541
+ }>;
542
+ "return"?: boolean;
543
+ "onlyKeys"?: boolean;
544
+ }
545
+ interface SwaggerDeleteDatabaseRequestDto {
546
+ /** Filter object or array of filter objects. */
547
+ "filter": Record<string, unknown>;
548
+ /** Join definition for filtering. */
549
+ "join"?: Record<string, unknown>;
550
+ /** Limit of affected rows. */
551
+ "take"?: number;
552
+ /** Offset of affected rows. */
553
+ "skip"?: number;
554
+ /** Return updated rows. */
555
+ "return"?: boolean;
556
+ /** Return only primary keys (reduces payload). */
557
+ "onlyKeys"?: boolean;
558
+ }
416
559
  interface SwaggerPartitionDefinition {
417
560
  /** Partition type. */
418
561
  "type"?: "LIST" | "RANGE" | "HASH";
@@ -423,9 +566,9 @@ interface SwaggerPartitionDefinition {
423
566
  /** For LIST partitioning: array of values. For RANGE partitioning: not used. */
424
567
  "values"?: Array<string>;
425
568
  /** For RANGE partitioning: starting value (use "MINVALUE" for unbounded start). */
426
- "from"?: Record<string, unknown>;
569
+ "from"?: string | number | boolean | Record<string, unknown> | Array<unknown> | null;
427
570
  /** For RANGE partitioning: ending value (use "MAXVALUE" for unbounded end). */
428
- "to"?: Record<string, unknown>;
571
+ "to"?: string | number | boolean | Record<string, unknown> | Array<unknown> | null;
429
572
  /**
430
573
  The modulus value for a HASH partition.
431
574
  Required only when the partition type is HASH.
@@ -441,6 +584,36 @@ interface SwaggerPartitionDefinition {
441
584
  */
442
585
  "remainder"?: number;
443
586
  }
587
+ interface SwaggerServiceAccountAccessDto {
588
+ /** Restrict management access to explicitly assigned users and groups. */
589
+ "restricted": boolean;
590
+ /** User UUID/email references or {id}/{mail}. No implicit creator/self access after creation. */
591
+ "users"?: Array<string | {
592
+ "id": string;
593
+ } | {
594
+ "mail": string;
595
+ }>;
596
+ /** Exact group name/UUID references or {id}/{name}. */
597
+ "groups"?: Array<string | {
598
+ "id": string;
599
+ } | {
600
+ "name": string;
601
+ }>;
602
+ }
603
+ interface SwaggerServiceAccountMembershipsDto {
604
+ /** Execution group memberships. Requires USER_ADMIN or INSTANCE_ADMIN. */
605
+ "groups"?: Array<string | {
606
+ "id": string;
607
+ } | {
608
+ "name": string;
609
+ }>;
610
+ /** Assigned active role groups. Delegators may assign only their own active groups without INSTANCE_ADMIN. */
611
+ "roleGroups"?: Array<string | {
612
+ "id": string;
613
+ } | {
614
+ "name": string;
615
+ }>;
616
+ }
444
617
  interface SwaggerStorageCellInputDto {
445
618
  /** A1 cell address. */
446
619
  "address": string;
@@ -448,12 +621,14 @@ interface SwaggerStorageCellInputDto {
448
621
  "value"?: string | number | boolean | Record<string, unknown> | Array<unknown> | null;
449
622
  /** Excel formula without a leading equals sign. */
450
623
  "formula"?: string;
451
- /** Cached formula result. ExcelJS does not calculate formulas. Supports JSON-compatible strings, numbers, booleans, arrays, objects, and null. */
624
+ /** Cached formula result. Formulas are not calculated by this operation. Supports JSON-compatible strings, numbers, booleans, arrays, objects, and null. */
452
625
  "result"?: string | number | boolean | Record<string, unknown> | Array<unknown> | null;
453
- /** ExcelJS-compatible declarative cell style. */
626
+ /** Declarative cell style for XLSX output. */
454
627
  "style"?: Record<string, unknown>;
455
628
  }
456
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";
457
632
  /** Output character encoding. Input encoding is detected when omitted. */
458
633
  "encoding"?: string;
459
634
  /** Emit a byte order mark at the start of the file. */
@@ -462,9 +637,11 @@ interface SwaggerStorageCsvOptionsDto {
462
637
  "delimiter"?: string;
463
638
  /** Record delimiter. */
464
639
  "recordDelimiter"?: "\n" | "\r" | "\r\n";
465
- /** Quote character. */
466
- "quote"?: string;
467
- /** 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. */
468
645
  "escape"?: string;
469
646
  /** Prefix spreadsheet formula-like values to prevent CSV formula injection. */
470
647
  "escapeFormulae"?: boolean;
@@ -480,19 +657,19 @@ interface SwaggerStorageSheetColumnDto {
480
657
  "key": string;
481
658
  /** Visible header. Defaults to key. */
482
659
  "header"?: string;
483
- /** Logical value type retained in XLSX fileStats and used by typed row producers. */
484
- "type"?: "string" | "number" | "boolean" | "date";
660
+ /** Logical value type retained in XLSX/CSV/TSV fileStats and used by typed row producers and getFileData reads. Object parses a JSON object or array from text. Without a declared type, imported tabular values remain strings; XLSX styles never infer a type. */
661
+ "type"?: "string" | "number" | "boolean" | "date" | "object";
485
662
  /** Column width in Excel character units. */
486
663
  "width"?: number;
487
664
  /** Hide the worksheet column. */
488
665
  "hidden"?: boolean;
489
- /** ExcelJS-compatible declarative column style. */
666
+ /** Declarative column style for XLSX output. */
490
667
  "style"?: Record<string, unknown>;
491
668
  }
492
669
  interface SwaggerStorageSheetDataPartDto {
493
670
  /** Target worksheet name. */
494
671
  "sheet": string;
495
- /** Rows represented as keyed objects or positional value arrays. In writeMode "direct", append row-only payloads to worksheets declared at session creation. */
672
+ /** Rows represented as keyed objects or positional value arrays. In writeMode "direct", append row-only payloads to worksheets declared at session creation. In writeMode "staged", row payloads remain independently retryable until finalize. */
496
673
  "rows"?: Array<Record<string, unknown> | Array<unknown>>;
497
674
  /** Sparse cells addressed independently from table rows. Supported in writeMode "staged"; direct XLSX parts must be row-only. */
498
675
  "cells"?: Array<SwaggerStorageCellInputDto>;
@@ -515,9 +692,43 @@ interface SwaggerStorageSheetTableDto {
515
692
  "header"?: boolean;
516
693
  /** Add an auto-filter to the table header. */
517
694
  "autoFilter"?: boolean;
518
- /** Stable column order. Required for every worksheet in writeMode "direct"; optional in "staged" mode, where keys may be inferred from appended rows. */
695
+ /** Stable XLSX/CSV/TSV column order, keys, headers, and logical types. Required for every logical sheet in writeMode "direct"; optional in "staged" mode, where keys may be inferred from appended rows. */
519
696
  "columns"?: Array<SwaggerStorageSheetColumnDto>;
520
697
  }
698
+ interface SwaggerStorageTabularSchemaPolicyDto {
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. */
700
+ "profile"?: "fallback" | "strict";
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. */
702
+ "additionalProperties"?: "allow" | "strip" | "reject";
703
+ }
704
+ interface SwaggerUpdateServiceAccountAccessDto {
705
+ /** Restrict management access to explicitly assigned users and groups. */
706
+ "restricted"?: boolean;
707
+ /** User UUID/email references or {id}/{mail}. No implicit creator/self access after creation. */
708
+ "users"?: Array<string | {
709
+ "id": string;
710
+ } | {
711
+ "mail": string;
712
+ }>;
713
+ /** Exact group name/UUID references or {id}/{name}. */
714
+ "groups"?: Array<string | {
715
+ "id": string;
716
+ } | {
717
+ "name": string;
718
+ }>;
719
+ }
720
+ interface SwaggerUserKeyWhitelistDto {
721
+ /** You need to provide name of the user. */
722
+ "name": string;
723
+ /** You need to provide type of whitelist IP,IP_SUBNET,RANGE. */
724
+ "type": string;
725
+ /** Provide a single address, a CIDR network or an address range. */
726
+ "value": string;
727
+ }
728
+ interface SwaggerWebhookMapPatchDto {
729
+ "set"?: Record<string, string>;
730
+ "remove"?: Array<string>;
731
+ }
521
732
  interface SwaggerWebhookRequestDetailsDto {
522
733
  "url": string;
523
734
  "method": "POST" | "GET" | "HEAD" | "PUT" | "DELETE" | "PATCH" | "OPTIONS";
@@ -526,37 +737,83 @@ interface SwaggerWebhookRequestDetailsDto {
526
737
  /** Headers. */
527
738
  "headers"?: Record<string, unknown>;
528
739
  }
740
+ interface SwaggerWebhookRequestPatchDto {
741
+ "url"?: string;
742
+ "method"?: "POST" | "GET" | "HEAD" | "PUT" | "DELETE" | "PATCH" | "OPTIONS";
743
+ "headers"?: SwaggerWebhookMapPatchDto;
744
+ "query"?: SwaggerWebhookMapPatchDto;
745
+ /** Additional request paths to mask in the new attempt. Existing masks are always preserved. */
746
+ "maskDetails"?: Array<string>;
747
+ /** Explicit replacement of the whole body. Omitted body reuses the saved body. */
748
+ "body"?: Record<string, unknown> | Array<unknown>;
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
+ }
529
786
  interface AgentRunCancelInput {
530
787
  /** Optional cancellation reason for audit traces. */
531
788
  "reason"?: string;
532
789
  }
533
790
  interface DatabaseCloneInput {
534
791
  /** Replacement user metadata for the root clone only. Omit to inherit source metadata; pass {} to clear user metadata. Maximum 16 KiB and 64 top-level keys. Keys starting with "__" are reserved for backend use. */
535
- "metadata"?: Record<string, unknown>;
792
+ "metadata"?: Record<string, unknown> | null;
536
793
  /** Optional audit override. Defaults to the source logical table setting. */
537
- "audit"?: boolean;
794
+ "audit"?: boolean | null;
538
795
  /** Optional target root database name. Defaults to the source database name with "_Clone" suffix. */
539
- "name"?: string;
796
+ "name"?: string | null;
540
797
  /** Suffix used for automatically generated clone names. Defaults to "Clone". */
541
- "suffix"?: string;
798
+ "suffix"?: string | null;
542
799
  /** Whether to copy existing rows/items into the clone. Defaults to false. */
543
- "includeItems"?: boolean;
800
+ "includeItems"?: boolean | null;
544
801
  /** Alias for includeItems. Defaults to false. */
545
- "includeData"?: boolean;
802
+ "includeData"?: boolean | null;
546
803
  /** Whether to clone connected table partitions. Defaults to true. */
547
- "includePartitions"?: boolean;
804
+ "includePartitions"?: boolean | null;
548
805
  /** Optional cloned database category override. */
549
- "category"?: string;
806
+ "category"?: string | null;
550
807
  /** Optional cloned database description override. */
551
- "desc"?: string;
808
+ "desc"?: string | null;
552
809
  /** Optional cloned database tags override. */
553
- "tags"?: Array<string>;
810
+ "tags"?: Array<string> | null;
554
811
  /** Optional cloned database restricted flag override. */
555
- "restricted"?: boolean;
812
+ "restricted"?: boolean | null;
556
813
  /** Optional cloned database group access override. */
557
- "groups"?: Array<string>;
814
+ "groups"?: Array<string> | null;
558
815
  /** Optional cloned database user access override. */
559
- "users"?: Array<string>;
816
+ "users"?: Array<string> | null;
560
817
  }
561
818
  interface AgentCreateInput {
562
819
  /** Stable display name of the agent. */
@@ -570,7 +827,7 @@ interface AgentCreateInput {
570
827
  /** Owner type, typically USER or GROUP. */
571
828
  "ownerType"?: string;
572
829
  /** Optional resource metadata. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use. */
573
- "metadata"?: Record<string, unknown>;
830
+ "metadata"?: Record<string, unknown> | null;
574
831
  /** Persisted agent identity and runtime defaults such as model, persona, custom system instructions, memory policy, planning mode, and loop limits. Per-turn prompt tier, fast-path eligibility, and route telemetry are derived by runtime and are not accepted here. */
575
832
  "config"?: SwaggerAgentConfigDto;
576
833
  /** Persisted policy constraints such as tool allowlists, agent plugins, and delegation ceilings. Runtime-only route metadata is not configured here. */
@@ -600,9 +857,9 @@ interface DatabaseCreateInput {
600
857
  /** Description. */
601
858
  "desc"?: string;
602
859
  /** Optional resource metadata. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use. */
603
- "metadata"?: Record<string, unknown>;
860
+ "metadata"?: Record<string, unknown> | null;
604
861
  /** Provide if access should be restricted. */
605
- "restricted": boolean;
862
+ "restricted"?: boolean;
606
863
  /** Provide which groups should have access to it, once restricted is true. */
607
864
  "groups"?: Array<string>;
608
865
  /** Provide which users should have access to it, once restricted is true. */
@@ -615,18 +872,52 @@ interface DatabaseCreateInput {
615
872
  "parentDatabaseId"?: string;
616
873
  /** Partition configuration. */
617
874
  "partition"?: SwaggerPartitionDefinition;
875
+ /** Advanced structured table options, including composite, expression, covering, and partial indexes. */
876
+ "options"?: SwaggerDatabaseOptionsDto;
877
+ }
878
+ interface ServiceAccountKeyCreateInput {
879
+ /** You need to provide name of the user. */
880
+ "name": string;
881
+ /** Optional resource metadata. Top-level keys starting with "__" are reserved for backend use. */
882
+ "metadata"?: Record<string, unknown> | null;
883
+ /** You can provide if key should be whitelisted. */
884
+ "restricted": boolean;
885
+ /** Use an empty array or null when restricted is false; provide at least one complete entry when restricted is true. */
886
+ "whitelist"?: Array<SwaggerUserKeyWhitelistDto> | null;
887
+ /** Optional API key expiration timestamp. When provided, it must be at least four hours in the future. */
888
+ "expireAt"?: string;
618
889
  }
619
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;
907
+ /** Finalized Storage files to link to this message. File access is checked on send and every read. */
908
+ "storageEntryIds"?: Array<string>;
620
909
  /** Content of the message, validated up to 100000 tokens. */
621
910
  "content": string;
622
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. */
623
912
  "preflightMessageId"?: string;
624
- /** Optional assistant execution-model override. GPT-5.6 Luna is the default; GPT-5.6 Sol, Terra, and Luna are supported. */
625
- "model"?: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna";
626
- /** Optional assistant reasoning effort override: low, medium, high, or xhigh. Defaults to low. */
627
- "reasoningEffort"?: "low" | "medium" | "high" | "xhigh";
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";
915
+ /** Optional GPT-6 Luna Fast mode. Defaults to false and remains opt-in per thread. */
916
+ "fastMode"?: boolean;
917
+ /** Optional assistant reasoning effort override: none, low, medium, high, or xhigh. Defaults to medium. */
918
+ "reasoningEffort"?: "none" | "low" | "medium" | "high" | "xhigh";
628
919
  /** Alias for reasoningEffort used by assistant preferences. Prefer reasoningEffort for new clients. */
629
- "reasoning"?: "low" | "medium" | "high" | "xhigh";
920
+ "reasoning"?: "none" | "low" | "medium" | "high" | "xhigh";
630
921
  /** Optional flag selecting deadline-bounded background provider recovery. On SSE routes it also allows the turn to continue after client disconnect. Defaults to false. */
631
922
  "backgroundProcessing"?: boolean;
632
923
  /** Optional flag for send-message endpoints. When true, an active streamed assistant turn for the thread is interrupted before appending this message. */
@@ -639,26 +930,28 @@ interface AssistantMessageInput {
639
930
  "executionMode"?: "interactive" | "execute" | "background" | "automation";
640
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. */
641
932
  "planningPolicy"?: "standard" | "review_required";
642
- /** 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. */
643
- "permissions"?: "default" | "auto_review" | "full";
644
- /** Optional per-tool approval policy overrides. Runtime sanitizes keys and enum values before persisting them. */
645
- "toolPermissions"?: Record<string, "default" | "auto_review" | "full">;
646
- /** 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. */
647
- "toolNames"?: Array<string>;
648
- /** Optional registry plugin ids attached to this assistant turn. */
649
- "pluginIds"?: Array<string>;
650
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. */
651
934
  "performanceDebugger"?: boolean;
652
935
  }
936
+ interface ServiceAccountCreateInput {
937
+ "access"?: SwaggerServiceAccountAccessDto;
938
+ "memberships"?: SwaggerServiceAccountMembershipsDto;
939
+ /** You need to provide name of the user. */
940
+ "name": string;
941
+ /** Custom service-account metadata. Top-level keys starting with "__" are reserved for backend use. Maximum 16 KiB of UTF-8 JSON and 64 top-level keys. */
942
+ "metadata"?: Record<string, unknown> | null;
943
+ /** Extended account data with separate permissions. Same JSON format as Metadata. Maximum 16 KiB of UTF-8 JSON and 64 top-level keys. */
944
+ "metadataAdvanced"?: Record<string, unknown> | null;
945
+ }
653
946
  interface StorageFolderInput {
654
947
  /** Folder name. */
655
948
  "name": string;
656
949
  /** Parent folder id. Omit for root. */
657
950
  "parentStorageEntryId"?: string;
658
- /** Optional provider config id for root-level folders. Omit for the internal/default provider. Ignored when parentStorageEntryId is provided. */
951
+ /** Optional registered Storage destination for root-level folders. Omit to use the default destination. Ignored when parentStorageEntryId is provided. */
659
952
  "storageProviderConfigId"?: string;
660
953
  /** Folder metadata. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use. */
661
- "metadata"?: Record<string, unknown>;
954
+ "metadata"?: Record<string, unknown> | null;
662
955
  /** Optional external reference id. */
663
956
  "refId"?: string;
664
957
  /** Optional external reference type. */
@@ -677,7 +970,7 @@ interface StorageUploadSessionInput {
677
970
  "retention"?: SwaggerStorageRetentionDto | null;
678
971
  /** Parent folder id. Required for create mode when uploading into a folder. */
679
972
  "parentStorageEntryId"?: string;
680
- /** Optional provider config id for root-level uploads. Omit for the internal/default provider. Ignored when parentStorageEntryId is provided or when replacing an existing file. */
973
+ /** Optional registered Storage destination for a root-level upload. Omit to use the default destination. Ignored when parentStorageEntryId is provided or when replacing an existing file. */
681
974
  "storageProviderConfigId"?: string;
682
975
  /** Existing storage entry id to replace instead of creating a new file. */
683
976
  "replaceStorageEntryId"?: string;
@@ -695,18 +988,22 @@ interface StorageUploadSessionInput {
695
988
  COLD: Compliance snapshots, historic imports, and retained evidence that is rarely opened.
696
989
  FROZEN: Deep archive or legal-hold data kept mainly for audit or recovery obligations. */
697
990
  "tier"?: "HOT" | "WARM" | "COLD" | "FROZEN";
698
- /** Upload mode. Use "direct" for provider resumable uploads, "chunked" for explicit numbered parts, and "incremental" for server-assigned part numbering by default. Incremental sessions can still re-upload a specific part number when repairing an upload. */
991
+ /** Byte-transfer mode. Use "direct" when the client sends the complete file to the returned temporary upload target, "chunked" for explicit numbered parts, and "incremental" for server-assigned part numbering by default. Incremental sessions can still re-upload a specific part number when repairing an upload. */
699
992
  "uploadMode"?: "direct" | "chunked" | "incremental";
700
993
  /** Post-finalize compute mode for this upload session. Defaults to sync for XLSX and text/* sessions and none for other binary sessions; an explicit value always overrides the default. */
701
994
  "computeStats"?: "none" | "sync" | "async";
702
- /** Structured file materialization mode. Use "direct" for a predeclared CSV/XLSX layout and one-pass finalization. For direct XLSX, declare every worksheet and its table.columns before the first append, and send row-only parts. The default "staged" mode preserves inferred columns, sparse cells, formulas, dynamic worksheets, and existing integration behavior. */
995
+ /** Independent validation and undeclared-column policies for an uploaded XLSX, CSV, or TSV. Defaults to fallback validation with additional columns allowed; strict validation defaults to rejecting additional columns. The raw file is preserved. */
996
+ "schemaPolicy"?: SwaggerStorageTabularSchemaPolicyDto;
997
+ /** Structured file write mode. Use "direct" for a predeclared CSV/XLSX layout with row-only XLSX parts. Use the default "staged" mode for independent requests that may be retried, replaced, reordered, or use inferred columns, sparse cells, formulas, or dynamic worksheets. For direct XLSX, declare every worksheet and its table.columns before the first append. */
703
998
  "writeMode"?: "staged" | "direct";
704
- /** CSV dialect used when row payloads are appended to a text/csv session. */
999
+ /** CSV/TSV dialect used when row payloads are appended or direct uploaded bytes are indexed. */
705
1000
  "csv"?: SwaggerStorageCsvOptionsDto;
706
- /** Workbook worksheet layout. XLSX is inferred from contentTypeHint. In writeMode "direct", declare every worksheet here and configure table.columns for each one. */
1001
+ /** Shared tabular layout. XLSX accepts multiple worksheets; CSV/TSV accepts one logical sheet used for column keys, types, and schema diagnostics. In writeMode "direct", configure table.columns for every declared sheet. */
707
1002
  "sheets"?: Array<SwaggerStorageSheetOptionsDto>;
708
1003
  /** File metadata. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use. */
709
- "metadata"?: Record<string, unknown>;
1004
+ "metadata"?: Record<string, unknown> | null;
1005
+ /** Suppress Storage lifecycle events for the finalized file. Omit to preserve the existing setting on replacement; false explicitly enables events. */
1006
+ "ignoreEvent"?: boolean;
710
1007
  /** Optional external reference id. */
711
1008
  "refId"?: string;
712
1009
  /** Optional external reference type. */
@@ -720,9 +1017,90 @@ interface StorageUploadSessionInput {
720
1017
  /** Explicit allowed user ids for the finalized entry. */
721
1018
  "users"?: Array<string>;
722
1019
  }
1020
+ interface AssistantResponseInput {
1021
+ /** 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. */
1022
+ "instructions"?: string;
1023
+ /** 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. */
1024
+ "contextMode"?: "platform" | "minimal";
1025
+ /** Persisted final-answer format, also enforced on browser follow-ups and Resume. Defaults to text. Immutable after creation. */
1026
+ "responseFormat"?: SwaggerAssistantResponseFormatDto;
1027
+ /** 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. */
1028
+ "permissions"?: "default" | "auto_review" | "full";
1029
+ /** Optional per-tool approval policy overrides. Runtime sanitizes keys and enum values before persisting them. */
1030
+ "toolPermissions"?: Record<string, "default" | "auto_review" | "full">;
1031
+ /** 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. */
1032
+ "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">;
1033
+ /** Optional registry plugin ids attached to this assistant turn. */
1034
+ "pluginIds"?: Array<string>;
1035
+ /** 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. */
1036
+ "studioSessionId"?: string;
1037
+ /** Finalized Storage files to link to this message. File access is checked on send and every read. */
1038
+ "storageEntryIds"?: Array<string>;
1039
+ /** Content of the message, validated up to 100000 tokens. */
1040
+ "content": string;
1041
+ /** 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. */
1042
+ "preflightMessageId"?: string;
1043
+ /** 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. */
1044
+ "model"?: "gpt-6.1-sol" | "gpt-6.1-terra" | "gpt-6-luna";
1045
+ /** Optional GPT-6 Luna Fast mode. Defaults to false and remains opt-in per thread. */
1046
+ "fastMode"?: boolean;
1047
+ /** Optional assistant reasoning effort override: none, low, medium, high, or xhigh. Defaults to medium. */
1048
+ "reasoningEffort"?: "none" | "low" | "medium" | "high" | "xhigh";
1049
+ /** Alias for reasoningEffort used by assistant preferences. Prefer reasoningEffort for new clients. */
1050
+ "reasoning"?: "none" | "low" | "medium" | "high" | "xhigh";
1051
+ /** Optional flag selecting deadline-bounded background provider recovery. On SSE routes it also allows the turn to continue after client disconnect. Defaults to false. */
1052
+ "backgroundProcessing"?: boolean;
1053
+ /** Optional flag for send-message endpoints. When true, an active streamed assistant turn for the thread is interrupted before appending this message. */
1054
+ "interruptActive"?: boolean;
1055
+ /** 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. */
1056
+ "steeringMode"?: boolean;
1057
+ /** 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. */
1058
+ "goal"?: string;
1059
+ /** Execution mode for the turn. Interactive may pause for approval or clarification. Background and automation should avoid user-blocking pauses. */
1060
+ "executionMode"?: "interactive" | "execute" | "background" | "automation";
1061
+ /** 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. */
1062
+ "planningPolicy"?: "standard" | "review_required";
1063
+ /** 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. */
1064
+ "performanceDebugger"?: boolean;
1065
+ /** Optional assistant runtime selector. v2 routes the request through agent-gateway. v1 is expired and rejected. */
1066
+ "version"?: "v1" | "v2";
1067
+ /** Structured UI context for lightweight, threadless assistant responses. */
1068
+ "context"?: SwaggerAssistantThreadlessResponseContextDto;
1069
+ /** 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. */
1070
+ "persistThread"?: boolean;
1071
+ }
1072
+ interface DatabaseOperationInput {
1073
+ /** Database ID/name, or view ID when viewAction is provided. */
1074
+ "databaseName": string;
1075
+ "action": "UPDATE" | "DELETE" | "TRUNCATE";
1076
+ /** Filtered selection. Returning rows is not supported in background operations. */
1077
+ "request"?: SwaggerDeleteDatabaseRequestDto;
1078
+ "data"?: Record<string, unknown> | Array<{
1079
+ "column": string;
1080
+ "op": "set" | "setNull" | "add" | "subtract" | "multiply" | "divide" | "abs" | "floor" | "ceil" | "sqrt" | "round" | "pow" | "toggle" | "addInterval" | "subtractInterval" | "truncate" | "prepend" | "append" | "insert" | "replace" | "trim" | "lower" | "upper" | "mergeJson" | "setJsonPath" | "removeJsonPath" | "addItems" | "removeItems";
1081
+ "value"?: unknown | null;
1082
+ "position"?: number;
1083
+ "search"?: string;
1084
+ "path"?: Array<string>;
1085
+ "create"?: boolean;
1086
+ "unit"?: string;
1087
+ "nulls"?: "preserve" | "empty";
1088
+ }>;
1089
+ /** Reviewed view mutation. The preview token is validated at admission. */
1090
+ "viewAction"?: SwaggerDatabaseViewActionExecuteDto;
1091
+ "restartIdentity"?: boolean;
1092
+ /** Suppress the terminal System message. Low-code defaults this to true. */
1093
+ "skipNotification"?: boolean;
1094
+ /** Actor-scoped admission key. Reusing it with a different request is rejected. */
1095
+ "idempotencyKey"?: string;
1096
+ }
723
1097
  interface StorageUploadSessionFinalizeInput {
1098
+ /** Expected contiguous multipart count (parts 1..N). Use this to fence distributed uploads against missing parts. */
1099
+ "expectedPartCount"?: number;
1100
+ /** Expected explicit multipart numbers. Use for sparse distributed uploads; cannot be combined with expectedPartCount. */
1101
+ "expectedPartNumbers"?: Array<number>;
724
1102
  /** Optional metadata replacement at finalize time. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use. */
725
- "metadata"?: Record<string, unknown>;
1103
+ "metadata"?: Record<string, unknown> | null;
726
1104
  /** Optional post-finalize compute mode. */
727
1105
  "computeStats"?: "none" | "sync" | "async";
728
1106
  }
@@ -731,6 +1109,15 @@ interface AssistantForkMessageInput {
731
1109
  "version"?: "v1" | "v2";
732
1110
  /** Optional explicit title for the forked thread. When omitted, orchestration will generate the new thread title. */
733
1111
  "title"?: string;
1112
+ /** 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. */
1113
+ "studioSessionId"?: string;
1114
+ }
1115
+ interface JobsBulkInput {
1116
+ /** Existing platform filter tree. Exactly one of filter and resource IDs is required. */
1117
+ "filter"?: Record<string, unknown>;
1118
+ /** Caller-generated key: repeated admission returns the same operation. Maximum 200 characters. */
1119
+ "idempotencyKey"?: string;
1120
+ "jobIds"?: Array<string>;
734
1121
  }
735
1122
  interface StorageEntryMoveInput {
736
1123
  /** Destination parent folder id. Omit or pass null for root. */
@@ -738,14 +1125,14 @@ interface StorageEntryMoveInput {
738
1125
  /** Optional destination provider config id for root-level moves. Omit for the internal/default provider. Ignored when parentStorageEntryId is provided. */
739
1126
  "storageProviderConfigId"?: string;
740
1127
  /** Current entity version. */
741
- "version"?: number;
1128
+ "version": number;
742
1129
  }
743
1130
  interface StoragePutObjectInput {
744
1131
  /** File retention. Omit for the caller default, or set null for no expiration. */
745
1132
  "retention"?: SwaggerStorageRetentionDto | null;
746
1133
  /** Parent folder id. Omit for root. */
747
1134
  "parentStorageEntryId"?: string;
748
- /** Optional provider config id for root-level writes. */
1135
+ /** Optional registered Storage destination for root-level writes. Omit to use the default destination. */
749
1136
  "storageProviderConfigId"?: string;
750
1137
  /** Existing file entry id to replace. */
751
1138
  "replaceStorageEntryId"?: string;
@@ -772,7 +1159,9 @@ interface StoragePutObjectInput {
772
1159
  /** Optional external reference version. */
773
1160
  "refVer"?: number;
774
1161
  /** Entry metadata. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use. */
775
- "metadata"?: Record<string, unknown>;
1162
+ "metadata"?: Record<string, unknown> | null;
1163
+ /** Suppress Storage lifecycle events for this file. Omit to preserve the existing setting on replacement; false explicitly enables events. */
1164
+ "ignoreEvent"?: boolean;
776
1165
  /** Logical storage lifecycle tier. Select only when creating a new file or upload session; existing files keep their tier.
777
1166
  HOT: Active files used in live workflows, previews, and frequent downloads.
778
1167
  WARM: Completed or less-active business files that are still occasionally accessed.
@@ -780,7 +1169,35 @@ interface StoragePutObjectInput {
780
1169
  FROZEN: Deep archive or legal-hold data kept mainly for audit or recovery obligations. */
781
1170
  "tier"?: "HOT" | "WARM" | "COLD" | "FROZEN";
782
1171
  }
1172
+ interface ServiceAccountQuery {
1173
+ /** Number of rows to skip before pagination starts. Parsed from a query-string integer. */
1174
+ "skip"?: number;
1175
+ /** Maximum number of rows to return. Parsed from a query-string integer. Most list endpoints default to 100 when omitted. */
1176
+ "take"?: number;
1177
+ /** Include the total count in the response envelope only when explicitly true. Omitted or false skips the count query. */
1178
+ "count"?: boolean;
1179
+ /** 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. */
1180
+ "filter"?: string;
1181
+ /** 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. */
1182
+ "sort"?: string;
1183
+ /** 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. */
1184
+ "distinct"?: string;
1185
+ /** 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. */
1186
+ "fields"?: string;
1187
+ /** 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. */
1188
+ "joins"?: string;
1189
+ /** 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. */
1190
+ "groupBy"?: string;
1191
+ /** 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. */
1192
+ "cast"?: string;
1193
+ /** Optional CTE definitions as a JSON string or bracket-style query object. Only honored by endpoints that explicitly enable dynamic CTEs. */
1194
+ "with"?: string;
1195
+ /** Enable debug output for the request, including compiled SQL, bound params, and bounded EXPLAIN plans when the endpoint supports it. */
1196
+ "debug"?: boolean;
1197
+ }
783
1198
  interface AssistantActionResolutionInput {
1199
+ /** Finalized Storage files linked to this action response. */
1200
+ "storageEntryIds"?: Array<string>;
784
1201
  /** Optimistic action version used as the idempotency key together with the action id. */
785
1202
  "actionVersion"?: number;
786
1203
  /** Resolution decision for the pending action. */
@@ -794,17 +1211,19 @@ interface AssistantActionResolutionInput {
794
1211
  /** 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. */
795
1212
  "backgroundProcessing"?: boolean;
796
1213
  /** Optional assistant model override for the resumed turn after this action is resolved. */
797
- "model"?: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna";
798
- /** Optional assistant reasoning effort override for the resumed turn: low, medium, high, or xhigh. */
799
- "reasoningEffort"?: "low" | "medium" | "high" | "xhigh";
1214
+ "model"?: "gpt-6.1-sol" | "gpt-6.1-terra" | "gpt-6-luna";
1215
+ /** Optional Fast-mode override for the resumed turn. Available only on GPT-6 Luna. */
1216
+ "fastMode"?: boolean;
1217
+ /** Optional assistant reasoning effort override for the resumed turn: none, low, medium, high, or xhigh. */
1218
+ "reasoningEffort"?: "none" | "low" | "medium" | "high" | "xhigh";
800
1219
  /** Alias for reasoningEffort used by assistant preferences. Prefer reasoningEffort for new clients. */
801
- "reasoning"?: "low" | "medium" | "high" | "xhigh";
1220
+ "reasoning"?: "none" | "low" | "medium" | "high" | "xhigh";
802
1221
  /** Execution mode override for the resumed turn after this action is resolved. */
803
1222
  "executionMode"?: "interactive" | "execute" | "background" | "automation";
804
1223
  /** Planning policy override for the resumed turn after this action is resolved. */
805
1224
  "planningPolicy"?: "standard" | "review_required";
806
1225
  /** 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. */
807
- "toolNames"?: Array<string>;
1226
+ "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">;
808
1227
  /** Optional additional registry plugin ids attached to the resumed turn. */
809
1228
  "pluginIds"?: Array<string>;
810
1229
  }
@@ -814,9 +1233,21 @@ interface StorageRestoreInput {
814
1233
  /** Required for TTL-expired entries. Use null to restore without another expiration. */
815
1234
  "retention"?: SwaggerStorageRetentionDto | null;
816
1235
  }
1236
+ interface ServiceAccountKeyRotateInput {
1237
+ /** Current API key version. */
1238
+ "version": number;
1239
+ /** Old-key overlap in milliseconds. Zero revokes the old key immediately. Existing expiration is never extended. */
1240
+ "gracePeriodMs"?: number;
1241
+ /** New-key ISO expiration, at least four hours ahead. Omission inherits the current expiration; null creates a key without expiration. */
1242
+ "expireAt"?: string | null;
1243
+ /** Authenticator confirmation for personal accounts. */
1244
+ "code"?: string;
1245
+ }
817
1246
  interface AgentRunInput {
818
1247
  /** Instruction or mission passed to the root agent run. */
819
1248
  "instruction": string;
1249
+ /** Readable Agent-workspace storage entries attached to the first conversation message. */
1250
+ "storageEntryIds"?: Array<string>;
820
1251
  /** Optional trigger type such as REQUEST, EVENT, or SCHEDULE. */
821
1252
  "triggerType"?: string;
822
1253
  /** Optional external reference type for correlation. */
@@ -848,7 +1279,7 @@ interface AgentUpdateInput {
848
1279
  /** Updated owner type. */
849
1280
  "ownerType"?: string;
850
1281
  /** Replacement resource metadata. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use. */
851
- "metadata"?: Record<string, unknown>;
1282
+ "metadata"?: Record<string, unknown> | null;
852
1283
  /** Replacement persisted agent identity and runtime defaults. Fast-path routing, prompt tier, and per-turn telemetry stay runtime-derived. */
853
1284
  "config"?: SwaggerAgentConfigDto;
854
1285
  /** Replacement persisted policy constraints. Execution-time route metadata stays derived from the current turn. */
@@ -880,7 +1311,9 @@ interface DatabaseUpdateInput {
880
1311
  /** Description. */
881
1312
  "desc"?: string;
882
1313
  /** Replacement resource metadata. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use. */
883
- "metadata"?: Record<string, unknown>;
1314
+ "metadata"?: Record<string, unknown> | null;
1315
+ /** Replacement advanced structured table options. */
1316
+ "options"?: SwaggerDatabaseOptionsDto;
884
1317
  /** Provide if access should be restricted. */
885
1318
  "restricted"?: boolean;
886
1319
  /** Provide which groups should have access to it, once restricted is true. */
@@ -892,13 +1325,39 @@ interface DatabaseUpdateInput {
892
1325
  /** Provide current version. */
893
1326
  "version": number;
894
1327
  }
1328
+ interface ServiceAccountKeyUpdateInput {
1329
+ /** You need to provide name of the user. */
1330
+ "name"?: string;
1331
+ /** Replacement resource metadata. Top-level keys starting with "__" are reserved for backend use. */
1332
+ "metadata"?: Record<string, unknown> | null;
1333
+ /** You can provide if key should be whitelisted. */
1334
+ "restricted"?: boolean;
1335
+ /** Use an empty array or null when restricted is false; provide at least one complete entry when setting restricted to true. */
1336
+ "whitelist"?: Array<SwaggerUserKeyWhitelistDto> | null;
1337
+ /** Current API key version used for optimistic concurrency control. */
1338
+ "version": number;
1339
+ /** Optional six-character confirmation code when required by the account policy. */
1340
+ "code"?: string;
1341
+ }
1342
+ interface ServiceAccountUpdateInput {
1343
+ "memberships"?: SwaggerServiceAccountMembershipsDto;
1344
+ /** You need to provide name of the user. */
1345
+ "name"?: string;
1346
+ /** Custom service-account metadata. Top-level keys starting with "__" are reserved for backend use. Maximum 16 KiB of UTF-8 JSON and 64 top-level keys. */
1347
+ "metadata"?: Record<string, unknown> | null;
1348
+ /** Extended account data with separate permissions. Same JSON format as Metadata. Maximum 16 KiB of UTF-8 JSON and 64 top-level keys. */
1349
+ "metadataAdvanced"?: Record<string, unknown> | null;
1350
+ "access"?: SwaggerUpdateServiceAccountAccessDto;
1351
+ /** Current account version for optimistic concurrency. */
1352
+ "version": number;
1353
+ }
895
1354
  interface StorageEntryUpdateInput {
896
1355
  /** Replacement file retention. Omit to preserve, or set null to clear expiration. */
897
1356
  "retention"?: SwaggerStorageRetentionDto | null;
898
1357
  /** New display name. */
899
1358
  "name"?: string;
900
1359
  /** Metadata replacement. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use. */
901
- "metadata"?: Record<string, unknown>;
1360
+ "metadata"?: Record<string, unknown> | null;
902
1361
  /** Whether this entry is restricted to the provided users/groups. */
903
1362
  "restricted"?: boolean;
904
1363
  /** Explicit allowed group ids. */
@@ -906,21 +1365,7 @@ interface StorageEntryUpdateInput {
906
1365
  /** Explicit allowed user ids. */
907
1366
  "users"?: Array<string>;
908
1367
  /** Current entity version. */
909
- "version"?: number;
910
- }
911
- interface AssistantThreadGoalInput {
912
- /** Durable thread-level objective used to validate assistant completion across turns, tool loops, approval resumes, and compaction. */
913
- "objective": string;
914
- /** Optional concrete criteria the goal reviewer should require before marking the goal satisfied. */
915
- "successCriteria"?: Array<string>;
916
- /** Optional exclusions that should not be treated as required work for this goal. */
917
- "nonGoals"?: Array<string>;
918
- /** Optional evidence the reviewer should expect, such as tests, lint, screenshots, API results, or changed resources. */
919
- "requiredEvidence"?: Array<string>;
920
- /** Optional validation commands or checks relevant to this goal. */
921
- "validationCommands"?: Array<string>;
922
- /** Optional concise definition of done used by the reviewer when evaluating candidate completion. */
923
- "doneDefinition"?: string;
1368
+ "version": number;
924
1369
  }
925
1370
  interface AssistantThreadTitleInput {
926
1371
  /** New user-defined title for the thread. */
@@ -931,9 +1376,9 @@ interface StorageUploadPartInput {
931
1376
  "data"?: string | Array<string>;
932
1377
  /** Payload encoding. */
933
1378
  "dataEncoding"?: "utf8" | "base64";
934
- /** Rows represented as keyed objects or positional value arrays for a single-sheet CSV or XLSX session. The target sheet is inferred. */
1379
+ /** Rows represented as keyed objects or positional value arrays for a single-sheet CSV or XLSX session. The target sheet is inferred. Direct XLSX sessions require the declared row schema; staged sessions support retryable independent requests. */
935
1380
  "rows"?: Array<Record<string, unknown> | Array<unknown>>;
936
- /** Rows and optional sparse cells for one or more declared XLSX worksheets. In writeMode "direct", each worksheet must have configured table.columns and every part must be row-only. */
1381
+ /** Rows and optional sparse cells for one or more declared XLSX worksheets. In writeMode "direct", each worksheet must have configured table.columns and every part must be row-only; staged mode supports sparse cells and replacement or out-of-order parts. */
937
1382
  "sheets"?: Array<SwaggerStorageSheetDataPartDto>;
938
1383
  }
939
1384
  interface WebhookInput {
@@ -945,8 +1390,10 @@ interface WebhookInput {
945
1390
  "proxy"?: boolean;
946
1391
  /** Save entire request. */
947
1392
  "saveDetails"?: boolean;
948
- /** Max attempts. */
949
- "maxAttempts"?: number;
1393
+ /** Stop delivery on a supported attempt status. Processing of delivery logs is asynchronous. */
1394
+ "stopOnStatuses"?: Array<"UNAUTHENTICATED">;
1395
+ /** Additional retries after the first request: -1 unlimited, 0 no retry, N up to N retries. */
1396
+ "maxRetries"?: number;
950
1397
  /** Provide data */
951
1398
  "request"?: SwaggerWebhookRequestDetailsDto;
952
1399
  /** Mask request details. */
@@ -954,13 +1401,44 @@ interface WebhookInput {
954
1401
  /** Override creator. */
955
1402
  "createdBy"?: string;
956
1403
  /** Optional key/value metadata for grouping and querying webhooks. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use. */
957
- "metadata"?: Record<string, unknown>;
958
- }
959
- /**
960
- * Canonical public low-code API declarations shared by Monaco and local editors.
961
- * Lifecycle input DTOs are generated from Swagger in api.swagger-contracts.generated.d.ts.
962
- * Edit this file for model guidance, then regenerate api.monaco.ts.
1404
+ "metadata"?: Record<string, unknown> | null;
1405
+ }
1406
+ interface WebhooksBulkInput {
1407
+ /** Existing platform filter tree. Exactly one of filter and resource IDs is required. */
1408
+ "filter"?: Record<string, unknown>;
1409
+ /** Caller-generated key: repeated admission returns the same operation. Maximum 200 characters. */
1410
+ "idempotencyKey"?: string;
1411
+ "webhookIds"?: Array<string>;
1412
+ /** Only allowed for retry. Missing masked values must be supplied explicitly. */
1413
+ "requestPatch"?: SwaggerWebhookRequestPatchDto;
1414
+ }
1415
+ interface AutomationOperation {
1416
+ operationId: string;
1417
+ resource: 'jobs' | 'webhooks';
1418
+ action: 'cancel' | 'retry' | 'delete';
1419
+ status: 'PENDING' | 'PROCESSING' | 'FINISHED' | 'ERROR';
1420
+ total: number;
1421
+ processed: number;
1422
+ skipped: number;
1423
+ failed: number;
1424
+ }
1425
+ /** Ordered, literal-safe updates. Repeated columns run top to bottom (maximum 100 operations).
1426
+ * NULL is preserved unless nulls: 'empty' is selected for text/array/JSON transforms.
1427
+ * insert.position is 1-based Unicode character position. replace replaces all exact matches.
1428
+ * JSON paths use string arrays; setJsonPath creates the final property only, not missing parents.
963
1429
  */
1430
+ interface DatabaseUpdateOperation {
1431
+ column: string;
1432
+ op: 'set' | 'setNull' | 'add' | 'subtract' | 'multiply' | 'divide' | 'abs' | 'floor' | 'ceil' | 'sqrt' | 'round' | 'pow' | 'toggle' | 'addInterval' | 'subtractInterval' | 'truncate' | 'prepend' | 'append' | 'insert' | 'replace' | 'trim' | 'lower' | 'upper' | 'mergeJson' | 'setJsonPath' | 'removeJsonPath' | 'addItems' | 'removeItems';
1433
+ value?: unknown;
1434
+ position?: number;
1435
+ search?: string;
1436
+ path?: string[];
1437
+ create?: boolean;
1438
+ unit?: string;
1439
+ nulls?: 'preserve' | 'empty';
1440
+ }
1441
+ type DatabaseUpdateData = Record<string, any> | DatabaseUpdateOperation[];
964
1442
  /**
965
1443
  * Supported database column types used by schema metadata and casts.
966
1444
  */
@@ -978,11 +1456,33 @@ type ExecutionTargetType = 'JOB_TEMPLATE' | 'AGENT' | (string & {});
978
1456
  /**
979
1457
  * Supported payload validator types for util.validate().
980
1458
  */
981
- type ValidatorType = 'string' | 'number' | 'boolean' | 'object' | 'array' | 'date' | 'any';
1459
+ type ValidatorType = 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array' | 'date' | 'any';
982
1460
  interface ValidatorProperty {
983
1461
  type: ValidatorType;
984
1462
  required?: boolean;
1463
+ nullable?: boolean;
1464
+ empty?: 'allow' | 'reject';
1465
+ integer?: boolean;
1466
+ finite?: boolean;
1467
+ safeInteger?: boolean;
1468
+ exclusiveMin?: number;
1469
+ exclusiveMax?: number;
1470
+ /** Exact allowed values; prefer this to regex alternatives for a finite set. */
1471
+ enum?: any[];
1472
+ /** One exact allowed value; prefer this to a literal-matching regex. */
1473
+ const?: any;
1474
+ additionalProperties?: 'allow' | 'strip' | 'reject';
1475
+ format?: 'date' | 'time' | 'date-time';
1476
+ timezone?: boolean;
1477
+ /**
1478
+ * String pattern for constraints not expressible with enum, const, type, length or format rules.
1479
+ * Prefer those explicit rules when equivalent. Even one simple regex can roughly double
1480
+ * Endpoint guard preparation time or more for small requests; actual cost varies.
1481
+ * Preserve the accepted-value contract when replacing a pattern; bound string length with max.
1482
+ */
985
1483
  regex?: string;
1484
+ /** JavaScript regular expression flags, for example i or u. */
1485
+ regexFlags?: string;
986
1486
  min?: number;
987
1487
  max?: number;
988
1488
  objectSchema?: ValidatorObject[];
@@ -993,6 +1493,9 @@ interface ValidatorObject {
993
1493
  schema: ValidatorProperty;
994
1494
  }
995
1495
  interface ValidatorSchemaInput {
1496
+ /** Existing schemas default to legacy; use strict for new schemas. */
1497
+ profile?: 'legacy' | 'strict';
1498
+ additionalProperties?: 'allow' | 'strip' | 'reject';
996
1499
  whitelist?: boolean;
997
1500
  whitelistErrors?: boolean;
998
1501
  schema: ValidatorProperty;
@@ -1000,6 +1503,12 @@ interface ValidatorSchemaInput {
1000
1503
  interface ValidationResult<T = any> {
1001
1504
  valid: boolean;
1002
1505
  errors: string[];
1506
+ issues: Array<{
1507
+ code: string;
1508
+ path: string;
1509
+ message: string;
1510
+ params?: Record<string, any>;
1511
+ }>;
1003
1512
  value: T;
1004
1513
  }
1005
1514
  /**
@@ -1165,7 +1674,8 @@ interface SelectJoinOn {
1165
1674
  }
1166
1675
  /**
1167
1676
  * Join definition.
1168
- * If alias is omitted, the backend defaults it to the join table name.
1677
+ * `table` is the logical name of a database, view, or materialized view.
1678
+ * If alias is omitted, the backend defaults it to that logical relation name.
1169
1679
  */
1170
1680
  interface SelectJoin {
1171
1681
  alias?: string;
@@ -1175,7 +1685,8 @@ interface SelectJoin {
1175
1685
  }
1176
1686
  /**
1177
1687
  * Public structured input accepted by api.getDatabaseData(name, options).
1178
- * The backend injects the source table schema automatically based on the name argument.
1688
+ * The backend resolves databases, views, and materialized views by logical name
1689
+ * and injects their physical relation and schema metadata automatically.
1179
1690
  */
1180
1691
  interface SelectInput {
1181
1692
  /**
@@ -1184,13 +1695,12 @@ interface SelectInput {
1184
1695
  */
1185
1696
  fields?: SelectItem[];
1186
1697
  /**
1187
- * Related tables to join.
1188
- * The backend resolves join definitions automatically.
1698
+ * Related databases, views, or materialized views to join.
1699
+ * The backend resolves each logical relation and its definition automatically.
1189
1700
  */
1190
1701
  joins?: SelectJoin[];
1191
1702
  /**
1192
1703
  * Recursive filter tree.
1193
- * Example:
1194
1704
  * { and: [{ field: 'status', op: 'eq', value: 'active' }] }
1195
1705
  */
1196
1706
  filter?: SelectFilterNode;
@@ -1208,7 +1718,9 @@ interface SelectInput {
1208
1718
  */
1209
1719
  cast?: Record<string, DatabaseDefinitionType>;
1210
1720
  /**
1211
- * Maximum number of rows to return.
1721
+ * getDatabaseData accepts a number (at most 100,000) or explicit null.
1722
+ * Omitting take uses 2,000 and logs one warning per execution.
1723
+ * Use walkDatabaseData for processing without a finite page.
1212
1724
  * The backend fetches one extra row internally to determine next-page availability.
1213
1725
  */
1214
1726
  take?: number;
@@ -1421,7 +1933,8 @@ interface Webhook {
1421
1933
  status: string;
1422
1934
  statusMessage: string;
1423
1935
  attempts: number;
1424
- maxAttempts: number;
1936
+ /** Additional retries: -1 unlimited, 0 no retry. */
1937
+ maxRetries: number;
1425
1938
  request: LooseObject<any>;
1426
1939
  response: LooseObject<any>;
1427
1940
  createdBy: string;
@@ -1436,7 +1949,8 @@ interface LogInterface {
1436
1949
  }
1437
1950
  interface TemplateFormData {
1438
1951
  key: string;
1439
- value?: string;
1952
+ /** Numbers and booleans are sent as text. Read credentials explicitly with vault.get/getAccessToken. */
1953
+ value?: string | number | boolean;
1440
1954
  /** Storage entry to append as this multipart part. Use this instead of value for binary content. */
1441
1955
  storageEntryId?: string;
1442
1956
  /** Storage namespace for storageEntryId. Defaults to explorer. */
@@ -1473,27 +1987,38 @@ interface HttpRequestOptionsInterface {
1473
1987
  /**
1474
1988
  * JSON handling is the default. `requestType: 'json'` and `responseType: 'json'` may be stated together
1475
1989
  * when an integration should expose an explicit, self-documenting JSON contract.
1990
+ * Use `buffer` explicitly for binary data: requests accept Buffer/Uint8Array and responses return Buffer.
1991
+ * `base64buffer` retains its string contract. Keep JSON as JSON; converting it to bytes is unnecessary.
1476
1992
  */
1477
1993
  //@default: 'json'
1478
- responseType?: 'json' | 'base64buffer' | 'document' | 'text' | 'storage';
1994
+ responseType?: 'json' | 'buffer' | 'base64buffer' | 'document' | 'text' | 'storage';
1479
1995
  //@default: 'json'
1480
- requestType?: 'json' | 'base64buffer' | 'form-data' | 'text' | 'storage';
1996
+ requestType?: 'json' | 'buffer' | 'base64buffer' | 'form-data' | 'text' | 'storage';
1481
1997
  //@default: false
1482
1998
  currentCredentials?: boolean;
1483
1999
  }
2000
+ interface HttpRevoResponseScope {
2001
+ sameInstance: boolean;
2002
+ operationId?: string;
2003
+ }
1484
2004
  interface HttpRequestInterface {
1485
2005
  url: string;
2006
+ /** Replaces complete `{name}` path segments with URL-encoded bound values. */
2007
+ pathParams?: Record<string, string>;
1486
2008
  method: 'POST' | 'PUT' | 'DELETE' | 'GET' | 'PATCH' | 'OPTIONS' | 'HEAD' | 'PURGE' | 'LINK' | 'UNLINK';
1487
2009
  timeout?: number;
2010
+ /** HTTP headers; use an explicitly awaited vault.get/getAccessToken result for credentials. */
1488
2011
  headers?: LooseObject<string>;
1489
2012
  params?: TemplateParameters[];
2013
+ /** Integration-owned payload. Credential values and provider echoes are caller-managed data. */
1490
2014
  data?: any;
1491
2015
  //@default: undefined
1492
2016
  formData?: TemplateFormData[];
1493
2017
  }
1494
2018
  interface TemplateParameters {
1495
2019
  key: string;
1496
- value: string | LooseObject<boolean | number | string>;
2020
+ /** Numbers and booleans are sent as text. Legacy plain maps retain '[object Object]' conversion; serialize structured queries explicitly. */
2021
+ value: string | number | boolean | LooseObject<boolean | number | string>;
1497
2022
  }
1498
2023
  interface ProcessLog {
1499
2024
  time: string;
@@ -1543,6 +2068,10 @@ interface StorageEntryView extends StorageEntry {
1543
2068
  breadcrumbs: StorageBreadcrumb[];
1544
2069
  }
1545
2070
  interface StorageExploreRequest {
2071
+ /** Disable implicit parent-folder scoping; ACL and namespace checks still apply. */
2072
+ flat?: boolean;
2073
+ filter?: SelectFilterNode;
2074
+ sort?: string[] | Record<string, SortDir>;
1546
2075
  parentStorageEntryId?: string;
1547
2076
  storageProviderConfigId?: string | null;
1548
2077
  term?: string;
@@ -1593,6 +2122,8 @@ interface StorageUploadSessionPart {
1593
2122
  interface StorageUploadPartResult {
1594
2123
  storageUploadSessionId: string;
1595
2124
  partNumber: number;
2125
+ /** UPLOADED after provider acceptance; RETRY_WAIT/UPLOADING remains durably queued by the platform. */
2126
+ status: 'UPLOADED' | 'UPLOADING' | 'RETRY_WAIT' | null;
1596
2127
  size: number;
1597
2128
  checksumMd5: string | null;
1598
2129
  }
@@ -1617,17 +2148,72 @@ interface StorageDownload {
1617
2148
  downloadUrl: string;
1618
2149
  preview: boolean;
1619
2150
  }
1620
- interface StorageTextReadOptions {
2151
+ type StorageDocumentFormat = 'auto' | 'text' | 'json' | 'xml';
2152
+ interface StorageDocumentReadOptions {
2153
+ /** Text line window; cannot be combined with byte ranges or JSON/XML/PDF/DOCX extraction. */
1621
2154
  startLine?: number | null;
1622
2155
  endLine?: number | null;
1623
2156
  maxChars?: number | null;
2157
+ /** Parser selection. Defaults to text; auto selects JSON/XML from MIME or extension. PDF/DOCX extract text; no byte ranges for binary documents. */
2158
+ format?: StorageDocumentFormat;
2159
+ /** Inclusive source byte offset. Only supported for plain text, not PDF/DOCX. */
2160
+ start?: number;
2161
+ /** Exclusive source byte offset. Only supported for plain text, not PDF/DOCX. */
2162
+ end?: number;
2163
+ }
2164
+ interface StorageDocument {
2165
+ storageEntryId: string;
2166
+ name: string;
2167
+ mimeType: string | null;
2168
+ size: number | null;
2169
+ format: Exclude<StorageDocumentFormat, 'auto'>;
2170
+ start?: number;
2171
+ end?: number;
2172
+ sourceBytes?: number;
2173
+ content?: string;
2174
+ document?: any;
2175
+ /** Present for bounded PDF/DOCX text extraction; no visual/OCR content is inferred. */
2176
+ extraction?: {
2177
+ sourceFormat: 'pdf' | 'docx';
2178
+ textOnly: true;
2179
+ truncated: boolean;
2180
+ totalPages: number | null;
2181
+ processedPages: number | null;
2182
+ mayRequireOcr: boolean;
2183
+ };
2184
+ /** Present for line-window reads instead of source byte offsets. */
2185
+ startLine?: number;
2186
+ endLine?: number;
2187
+ returnedLineCount?: number;
2188
+ totalLines?: number;
2189
+ truncated?: boolean;
2190
+ }
2191
+ /** Whole-source CSV mismatch report. Repeated on pages; do not sum page reports. No raw values. */
2192
+ interface StorageCsvReadReport {
2193
+ skippedRows: number;
2194
+ diagnostics: Array<{
2195
+ code: string;
2196
+ recordNumber: number;
2197
+ lineStart: number;
2198
+ lineEnd: number;
2199
+ startByte: number;
2200
+ expectedFieldCount?: number;
2201
+ actualFieldCount?: number;
2202
+ message: string;
2203
+ }>;
2204
+ diagnosticsTruncated: boolean;
1624
2205
  }
1625
2206
  interface StorageFileReadOptions {
2207
+ /** CSV only. Default abort. skipRow drops wrong-width source records; syntax/size errors still abort. */
2208
+ onError?: 'abort' | 'skipRow';
2209
+ /** Physical lines include headers and the trailing empty line. Defaults to records. */
2210
+ mode?: 'records' | 'lines';
2211
+ separator?: string;
1626
2212
  batchNumber?: number;
1627
2213
  buffer?: boolean;
1628
2214
  start?: number;
1629
2215
  end?: number;
1630
- /** Continue a structured CSV/XLSX read. Cursor restores sheet and batch position. */
2216
+ /** Continue a structured CSV/TSV, XLSX, NDJSON/JSONL, JSON-array, or XML read. Keep the opaque cursor unchanged. */
1631
2217
  cursor?: string;
1632
2218
  /** XLSX sheet name. The first visible sheet is used when omitted. */
1633
2219
  sheet?: string;
@@ -1637,8 +2223,14 @@ interface StorageFileReadOptions {
1637
2223
  encoding?: string;
1638
2224
  delimiter?: string;
1639
2225
  recordDelimiter?: '\n' | '\r' | '\r\n';
1640
- quote?: string;
2226
+ /** One quote character (default double quote), or false for literal quotes/backslashes. */
2227
+ quote?: string | false;
2228
+ /** Maximum bytes in one logical CSV record; positive integer, default 64 MiB. Independent of read/callback size. */
2229
+ maxRecordBytes?: number;
2230
+ /** Quote escape character; ignored when quote is false. */
1641
2231
  escape?: string;
2232
+ /** XML record path such as `Orders/Order`; required for XML row reads. */
2233
+ recordPath?: string;
1642
2234
  /** Rows per persisted storage index page. Defaults to 100,000 and cannot exceed 100,000. */
1643
2235
  batchSize?: number;
1644
2236
  /** Rows returned by this call. Defaults to the index page size and cannot exceed 100,000. */
@@ -1647,60 +2239,97 @@ interface StorageFileReadOptions {
1647
2239
  columns?: Array<string | {
1648
2240
  source: string;
1649
2241
  key?: string;
1650
- type?: 'string' | 'number' | 'boolean' | 'date';
2242
+ type?: StorageTabularColumnType;
1651
2243
  }>;
1652
2244
  }
1653
2245
  interface StorageFileStatsOptions {
2246
+ /** CSV only. Default abort. skipRow drops wrong-width source records; syntax/size errors still abort. */
2247
+ onError?: 'abort' | 'skipRow';
2248
+ mode?: 'records' | 'lines';
1654
2249
  separator?: string;
1655
2250
  encoding?: string;
1656
2251
  delimiter?: string;
1657
2252
  recordDelimiter?: '\n' | '\r' | '\r\n';
1658
- quote?: string;
2253
+ /** One quote character (default double quote), or false for literal quotes/backslashes. */
2254
+ quote?: string | false;
2255
+ /** Maximum bytes in one logical CSV record; positive integer, default 64 MiB. Independent of read/callback size. */
2256
+ maxRecordBytes?: number;
2257
+ /** Quote escape character; ignored when quote is false. */
1659
2258
  escape?: string;
1660
2259
  headerRow?: number | null;
1661
2260
  reloadStats?: boolean;
1662
2261
  batchSize?: number;
2262
+ /** XML record path such as `Orders/Order`; required for XML row stats. */
2263
+ recordPath?: string;
2264
+ }
2265
+ type StorageTabularColumnType = 'string' | 'number' | 'boolean' | 'date' | 'object';
2266
+ interface StorageTabularColumn {
2267
+ key: string;
2268
+ header: string;
2269
+ type?: StorageTabularColumnType;
2270
+ }
2271
+ interface StorageTabularSchemaIssue {
2272
+ code: 'SHEET_MISSING' | 'SHEET_UNDECLARED' | 'COLUMN_MISSING' | 'COLUMN_UNDECLARED' | 'COLUMN_KEY_DUPLICATE' | 'COLUMN_TYPE_FALLBACK';
2273
+ sheet: string;
2274
+ column?: string;
2275
+ declaredType?: StorageTabularColumnType;
2276
+ invalidRows?: number;
2277
+ sampleRows?: number[];
2278
+ }
2279
+ interface StorageTabularSchemaPolicy {
2280
+ profile: 'fallback' | 'strict';
2281
+ additionalProperties: 'allow' | 'strip' | 'reject';
2282
+ }
2283
+ interface StorageTabularSchemaResult {
2284
+ policy: StorageTabularSchemaPolicy;
2285
+ status: 'MATCHED' | 'FALLBACK' | 'FAILED';
2286
+ issues: StorageTabularSchemaIssue[];
1663
2287
  }
1664
2288
  interface StorageFileStats {
2289
+ /** Present for CSV indexed with onError: skipRow; describes the entire source. */
2290
+ csvReport?: StorageCsvReadReport;
2291
+ /** Legacy physical-window count, including the terminal empty window after a delimiter. */
1665
2292
  lineCount?: number;
2293
+ /** Actual physical lines, including headers, blanks and multiline CSV field lines; no terminal synthetic empty line. */
2294
+ physicalLineCount?: number;
2295
+ /** Empty physical lines, excluding the synthetic terminal empty line. */
2296
+ blankLineCount?: number;
2297
+ /** Whether the source ends in its detected or explicit record delimiter. */
2298
+ endsWithRecordDelimiter?: boolean;
1666
2299
  map?: LooseObject<number>;
1667
2300
  separator?: string;
1668
2301
  batches?: number;
1669
2302
  batchSize?: number;
1670
2303
  encoding?: string | null;
1671
- format?: 'csv' | 'xlsx';
2304
+ format?: 'csv' | 'xlsx' | 'ndjson' | 'json-array' | 'xml';
2305
+ columns?: StorageTabularColumn[];
1672
2306
  bom?: boolean;
1673
2307
  delimiter?: string;
1674
2308
  recordDelimiter?: string;
1675
- quote?: string;
2309
+ /** One quote character (default double quote), or false for literal quotes/backslashes. */
2310
+ quote?: string | false;
2311
+ /** Maximum bytes in one logical CSV record; positive integer, default 64 MiB. Independent of read/callback size. */
2312
+ maxRecordBytes?: number;
2313
+ /** Quote escape character; ignored when quote is false. */
1676
2314
  escape?: string;
1677
2315
  rowCount?: number;
1678
- headers?: Array<{
1679
- key: string;
1680
- header: string;
1681
- }>;
2316
+ headers?: StorageTabularColumn[];
2317
+ /** Present when an XLSX/CSV/TSV upload session declared table columns. */
2318
+ schema?: StorageTabularSchemaResult;
1682
2319
  sheets?: Array<{
1683
2320
  name: string;
1684
2321
  state: 'visible' | 'hidden' | 'veryHidden';
1685
2322
  rowCount: number;
1686
2323
  batches: number;
1687
- columns: Array<{
1688
- key: string;
1689
- header: string;
1690
- }>;
2324
+ columns: StorageTabularColumn[];
1691
2325
  }>;
1692
2326
  }
1693
2327
  interface StorageStructuredFileDataPage {
1694
- format: 'csv' | 'xlsx';
2328
+ csvReport?: StorageCsvReadReport;
2329
+ format: 'csv' | 'xlsx' | 'ndjson' | 'json-array' | 'xml';
1695
2330
  sheet: string | null;
1696
- headers: Array<{
1697
- key: string;
1698
- header: string;
1699
- }>;
1700
- columns: Array<{
1701
- key: string;
1702
- header: string;
1703
- }>;
2331
+ headers: StorageTabularColumn[];
2332
+ columns: StorageTabularColumn[];
1704
2333
  rows: Array<LooseObject<any>>;
1705
2334
  rowCount: number;
1706
2335
  totalRows: number;
@@ -1709,18 +2338,6 @@ interface StorageStructuredFileDataPage {
1709
2338
  next: boolean;
1710
2339
  nextCursor: string | null;
1711
2340
  }
1712
- interface StorageTextContent {
1713
- storageEntryId: string;
1714
- name: string;
1715
- mimeType: string | null;
1716
- size: number | null;
1717
- content: string;
1718
- startLine: number;
1719
- endLine: number;
1720
- returnedLineCount: number;
1721
- totalLines: number;
1722
- truncated: boolean;
1723
- }
1724
2341
  interface LoggedUser {
1725
2342
  userId: string;
1726
2343
  name: string;
@@ -1732,8 +2349,9 @@ interface LoggedUser {
1732
2349
  phone: string;
1733
2350
  groups: string[];
1734
2351
  roles: string[];
1735
- metaData: LooseObject<any>;
1736
- advancedData: LooseObject<any>;
2352
+ metadata: LooseObject<any>;
2353
+ metadataAdvanced: LooseObject<any>;
2354
+ /** Avatar storage entry ID; `/me` separately returns a signed download URL. */
1737
2355
  avatar: string;
1738
2356
  platformAccess: boolean;
1739
2357
  }
@@ -1823,7 +2441,18 @@ interface DatabaseDataActionResponse {
1823
2441
  requested: number;
1824
2442
  success: number;
1825
2443
  elapsed: number;
1826
- data: any[];
2444
+ /** Omitted when the write is called with `return: false`. */
2445
+ data?: any[];
2446
+ }
2447
+ interface DatabaseDataWriteOptions {
2448
+ /** Defaults to true, preserving the legacy full-row response. */
2449
+ return?: boolean;
2450
+ /** With return enabled, return only primary keys. */
2451
+ onlyKeys?: boolean;
2452
+ }
2453
+ interface DatabaseUpsertOptions extends DatabaseDataWriteOptions {
2454
+ /** Defaults to true. Set false for the legacy full-replacement conflict behavior. */
2455
+ patch?: boolean;
1827
2456
  }
1828
2457
  interface TruncateDatabaseOptions {
1829
2458
  /**
@@ -1865,14 +2494,20 @@ type ExportDatabaseOptions = Omit<SelectInput, 'from'> & {
1865
2494
  * Default is false.
1866
2495
  */
1867
2496
  async?: boolean;
2497
+ /** Suppress the export completion/failure System notification. Defaults to true for low-code; set false to opt in. */
2498
+ skipNotification?: boolean;
1868
2499
  /** Output format. CSV is the default. XLSX validates the effective row count before starting. */
1869
- format?: 'csv' | 'xlsx';
2500
+ format?: 'csv' | 'tsv' | 'ndjson' | 'xlsx';
1870
2501
  /** Omit for private user storage, use ROOT, or provide an accessible explorer folder id. */
1871
2502
  storageDestination?: 'ROOT' | string;
1872
2503
  /** Dedicated output name. Omit for an automatic database-and-timestamp name using the selected extension. */
1873
2504
  fileName?: string;
1874
2505
  /** Whether the output entry is restricted. Default is true. */
1875
2506
  restricted?: boolean;
2507
+ /** Explicit allowed group ids for the output entry when restricted is true. */
2508
+ groups?: string[];
2509
+ /** Explicit allowed user ids for the output entry when restricted is true. */
2510
+ users?: string[];
1876
2511
  /** CSV delimiter. Default is a comma. */
1877
2512
  delimiter?: string;
1878
2513
  boolType?: 'emoji' | 'number' | 'boolean';
@@ -1881,14 +2516,32 @@ type ExportDatabaseOptions = Omit<SelectInput, 'from'> & {
1881
2516
  /** Omit for the destination default, null for no expiration. */
1882
2517
  retention?: StorageRetentionInput;
1883
2518
  };
2519
+ type ImportDatabaseOptions = {
2520
+ /** Suppress System messages; defaults to true in low-code. */
2521
+ skipNotification?: boolean;
2522
+ storageEntryId: string;
2523
+ format: 'csv' | 'tsv' | 'ndjson' | 'xlsx';
2524
+ mode: 'insert' | 'upsert';
2525
+ onError: 'abort' | 'skipRow';
2526
+ mapping?: {
2527
+ columns: Record<string, {
2528
+ databaseName: string;
2529
+ column: string;
2530
+ } | null>;
2531
+ nullMode?: 'escaped' | 'literal' | 'empty' | 'nullText';
2532
+ };
2533
+ /** Skips manual approval after the same full validation; ambiguous mapping still needs review. */
2534
+ autoCommit?: boolean;
2535
+ };
1884
2536
  interface ExportDatabaseAcceptedResponse {
1885
2537
  accepted: true;
1886
2538
  databaseId: string;
1887
2539
  exportId: string;
2540
+ jobId: string;
1888
2541
  storageNamespace: string;
1889
2542
  parentStorageEntryId: string | null;
1890
2543
  fileName: string;
1891
- format: 'csv' | 'xlsx';
2544
+ format: 'csv' | 'tsv' | 'ndjson' | 'xlsx';
1892
2545
  restricted: boolean;
1893
2546
  message: string;
1894
2547
  }
@@ -1897,16 +2550,25 @@ interface ExportDatabaseCompletedResponse {
1897
2550
  completed: true;
1898
2551
  databaseId: string;
1899
2552
  exportId: string;
2553
+ jobId: string;
1900
2554
  storageNamespace: string;
1901
2555
  parentStorageEntryId: string | null;
1902
2556
  fileName: string;
1903
- format: 'csv' | 'xlsx';
2557
+ format: 'csv' | 'tsv' | 'ndjson' | 'xlsx';
1904
2558
  restricted: boolean;
1905
2559
  storageEntryId: string;
1906
2560
  storageEntry: StorageEntryView;
1907
2561
  message: string;
1908
2562
  }
1909
2563
  type ExportDatabaseResponse = ExportDatabaseAcceptedResponse | ExportDatabaseCompletedResponse;
2564
+ interface DatabaseCountQuery extends Omit<SelectInput, 'take' | 'skip' | 'count' | 'sort'> {
2565
+ }
2566
+ /** Omitted take or explicit null selects 2,000 rows; omission warns once per execution. */
2567
+ interface DatabaseBoundedReadQuery extends Omit<SelectInput, 'take'> {
2568
+ take?: number | null;
2569
+ }
2570
+ interface DatabaseRowQuery extends Omit<SelectInput, 'take' | 'skip' | 'count'> {
2571
+ }
1910
2572
  interface Context {
1911
2573
  requestId: string;
1912
2574
  date: Date;
@@ -1919,12 +2581,18 @@ interface Context {
1919
2581
  targetId?: string;
1920
2582
  }
1921
2583
  interface ComponentExecuteRequest {
2584
+ /** Defaults to local: fresh isolate on the same host. Remote uses the Sandbox service. */
2585
+ options?: {
2586
+ executionHost?: 'local' | 'remote';
2587
+ };
1922
2588
  /**
1923
2589
  * Active executable component id to run in an isolated child execution.
1924
2590
  */
1925
2591
  componentId: string;
1926
2592
  /**
1927
- * Optional exact component version. Omit to run the latest active version.
2593
+ * Optional exact component version. Omit to use the execution's active release.
2594
+ * A pinned Studio release rejects versions newer than its component binding.
2595
+ * Studio tests accept an explicit version only when it matches their captured source.
1928
2596
  */
1929
2597
  componentVersion?: number;
1930
2598
  /**
@@ -1970,26 +2638,22 @@ interface InstanceData {
1970
2638
  id: string;
1971
2639
  };
1972
2640
  }
1973
- interface SFTPClient {
1974
- host: string;
1975
- port: number;
1976
- username: string;
1977
- password?: string;
1978
- privateKey?: string;
1979
- passphrase?: string;
1980
- }
1981
2641
  interface StorageFileTargetRequest extends Omit<StorageUploadSessionInput, 'replaceStorageEntryId' | 'uploadMode'> {
1982
2642
  name: string;
1983
2643
  }
1984
- type SFTPFileSourceRef = {
2644
+ /** Storage destination for transport.sftpImport. Uses the same namespace and ACL contract as storage.* and HTTP targets. */
2645
+ type SFTPImportStorage = (StorageFileTargetRequest & {
2646
+ namespace?: string;
2647
+ }) | {
1985
2648
  storageEntryId: string;
2649
+ namespace?: string;
2650
+ replace: true;
1986
2651
  };
1987
- type SFTPFileTargetRef = {
2652
+ /** Existing Storage file used by transport.sftpExport. */
2653
+ interface SFTPExportStorage {
1988
2654
  storageEntryId: string;
1989
- replace?: true;
1990
- } | {
1991
- storage: StorageFileTargetRequest;
1992
- };
2655
+ namespace?: string;
2656
+ }
1993
2657
  interface JWTHeader {
1994
2658
  alg: string | 'HS256' | 'HS384' | 'HS512' | 'RS256' | 'RS384' | 'RS512' | 'ES256' | 'ES384' | 'ES512' | 'PS256' | 'PS384' | 'PS512' | 'none';
1995
2659
  typ?: string | undefined;
@@ -2103,7 +2767,7 @@ interface AgentPluginSkillConfig {
2103
2767
  format?: 'markdown';
2104
2768
  content: string;
2105
2769
  pluginIds?: string[];
2106
- maxPromptChars?: number;
2770
+ maxPromptTokens?: number;
2107
2771
  }
2108
2772
  interface AgentPluginPackageMetadata {
2109
2773
  avatarUrl?: string | null;
@@ -2124,7 +2788,7 @@ interface AgentPluginPackageConfig {
2124
2788
  content: string;
2125
2789
  pluginIds?: string[];
2126
2790
  metadata?: AgentPluginPackageMetadata;
2127
- maxPromptChars?: number;
2791
+ maxPromptTokens?: number;
2128
2792
  }
2129
2793
  interface AgentPluginConfig {
2130
2794
  contractVersion?: 1;
@@ -2203,12 +2867,22 @@ interface AgentConfig {
2203
2867
  workMode?: AgentWorkMode;
2204
2868
  persona?: AgentPersona;
2205
2869
  systemInstructions?: string;
2870
+ /** Profile for new Agent threads; defaults to platform. Mandatory Agent instructions and existing tool/plugin admission remain authoritative. */
2871
+ contextMode?: 'platform' | 'minimal';
2872
+ /** Final-answer contract for new Agent threads; defaults to text. Existing threads keep their saved contract on continuation and Resume. */
2873
+ responseFormat?: SwaggerAssistantResponseFormatDto;
2874
+ /** Persistent Agent Memory shared with memory tools and included in every instruction packet; at most 20,000 o200k_base tokens. */
2875
+ memory?: string;
2206
2876
  memoryPolicy?: AgentMemoryPolicy;
2207
2877
  release?: AgentReleaseConfig;
2208
2878
  automation?: AgentAutomationPolicyConfig;
2209
2879
  cheapTurn?: AgentCheapTurnPolicy;
2210
2880
  toolNames?: string[];
2211
2881
  pluginIds?: string[];
2882
+ /** Attached or inherited default plugins to preload; at most 64 IDs, all within the effective Agent access set. */
2883
+ eagerPluginIds?: string[];
2884
+ /** Selected terminals narrow the historical execution service account's current ACL; at most 64 IDs, empty permits none. */
2885
+ agentTerminalIds?: string[];
2212
2886
  plugins?: AgentPluginConfig[];
2213
2887
  maxActiveRootRuns?: number;
2214
2888
  maxChildRuns?: number;
@@ -2306,7 +2980,8 @@ interface AgentRun {
2306
2980
  lastHeartbeatAt?: Date | string | null;
2307
2981
  checkpointSummary?: string | null;
2308
2982
  state?: Record<string, any>;
2309
- result?: Record<string, any> | null;
2983
+ /** Complete validated answer is in output; summary is bounded. Additional runtime result fields remain available. */
2984
+ result?: (Record<string, any> & SwaggerAgentRunResultDto) | null;
2310
2985
  error?: Record<string, any> | null;
2311
2986
  createdBy?: string;
2312
2987
  createdAt?: Date | string;
@@ -2442,6 +3117,12 @@ interface AssistantActionRequired {
2442
3117
  planningTransition?: AssistantPlanningTransition | null;
2443
3118
  }
2444
3119
  interface AssistantThread {
3120
+ /** conversation for ordinary chats; response for retained technical results hidden from the default conversation list. */
3121
+ kind?: 'conversation' | 'response';
3122
+ /** Immutable creation-time task contract, preserved by continuation, Resume and same-owner fork. */
3123
+ instructions?: string;
3124
+ contextMode?: 'platform' | 'minimal';
3125
+ responseFormat?: SwaggerAssistantResponseFormatDto;
2445
3126
  assistantThreadId: string;
2446
3127
  title: string;
2447
3128
  status: string;
@@ -2464,7 +3145,6 @@ interface AssistantThread {
2464
3145
  actionRequired?: AssistantActionRequired | null;
2465
3146
  executionPlan?: AssistantPublicExecutionPlan | null;
2466
3147
  workerProgress?: AssistantWorkerProgress[] | null;
2467
- goal?: AssistantThreadGoal | null;
2468
3148
  share?: AssistantThreadShare | null;
2469
3149
  createdBy?: string;
2470
3150
  createdAt?: Date | string;
@@ -2474,23 +3154,6 @@ interface AssistantThread {
2474
3154
  deletedAt?: Date | string | null;
2475
3155
  version?: number;
2476
3156
  }
2477
- interface AssistantThreadGoal {
2478
- version: 1;
2479
- assistantThreadId: string;
2480
- revision: number;
2481
- status: 'active' | 'paused' | 'completed' | 'blocked' | 'cleared';
2482
- objective: string | null;
2483
- source: 'user' | 'api' | 'message' | 'system';
2484
- createdAt: string;
2485
- updatedAt: string;
2486
- updatedBy: string | null;
2487
- validation: {
2488
- status: 'satisfied' | 'unsatisfied' | 'partial' | 'skipped';
2489
- reviewedAt: string;
2490
- rationale: string | null;
2491
- evidenceRefs?: string[];
2492
- } | null;
2493
- }
2494
3157
  interface AssistantMessage {
2495
3158
  assistantMessageId: string;
2496
3159
  assistantThreadId: string;
@@ -2507,7 +3170,6 @@ interface AssistantThreadState {
2507
3170
  actionRequired: AssistantActionRequired | null;
2508
3171
  executionPlan: AssistantPublicExecutionPlan | null;
2509
3172
  workerProgress?: AssistantWorkerProgress[] | null;
2510
- goal?: AssistantThreadGoal | null;
2511
3173
  }
2512
3174
  interface AssistantThreadShare {
2513
3175
  shareId: string;
@@ -2531,6 +3193,8 @@ interface AssistantSharedThreadResponse {
2531
3193
  }
2532
3194
  interface AssistantThreadResponse {
2533
3195
  thread: AssistantThread;
3196
+ /** Validated terminal answer for explicitly configured thread contracts. Absent while approval/clarification is required. */
3197
+ output?: SwaggerAssistantOutputDto;
2534
3198
  message?: AssistantMessage | null;
2535
3199
  assistantMessage?: AssistantMessage | null;
2536
3200
  noticeMessages?: AssistantMessage[];
@@ -2544,6 +3208,225 @@ interface AssistantThreadCompactionRequest {
2544
3208
  keepContext?: boolean;
2545
3209
  content?: string;
2546
3210
  }
3211
+ // ApiInterface
3212
+ /** Owner selection; omitted means instance. User scope uses the verified execution account. */
3213
+ interface SecretScopeOptions {
3214
+ scope?: 'instance' | 'user';
3215
+ }
3216
+ /** Null or omission selects NOW at write time. Numbers are Unix epoch milliseconds. */
3217
+ type SecretDate = string | Date | number | null;
3218
+ interface SecretRotateOptions extends SecretScopeOptions {
3219
+ validFrom?: SecretDate;
3220
+ }
3221
+ interface SecretGetOptions extends SecretRotateOptions {
3222
+ /** Exact validFrom timestamp. If both selectors are supplied they must agree. */
3223
+ version?: SecretDate;
3224
+ }
3225
+ interface SecretDeleteOptions extends SecretGetOptions {
3226
+ }
3227
+ interface SecretRevisionListOptions extends SecretScopeOptions {
3228
+ cursor?: string;
3229
+ limit?: number;
3230
+ }
3231
+ interface SecretProperties {
3232
+ category?: string | null;
3233
+ description?: string | null;
3234
+ /** Replacement JSON object, at most 16 KiB and 64 top-level keys. Backend keys are reserved. */
3235
+ metadata?: Record<string, unknown>;
3236
+ }
3237
+ interface SecretCreateInput extends SecretProperties {
3238
+ /** Nonempty text, at most 65,536 characters. */
3239
+ value: string;
3240
+ validFrom?: SecretDate;
3241
+ enabled?: boolean;
3242
+ }
3243
+ interface SecretRotateInput {
3244
+ value: string;
3245
+ }
3246
+ interface SecretUpdateInput extends SecretProperties {
3247
+ /** Parent metadata counter, distinct from a revision's timestamp version. */
3248
+ version: number;
3249
+ }
3250
+ /** Unified metadata-only parent. */
3251
+ interface Secret {
3252
+ name: string;
3253
+ scope: 'instance' | 'user';
3254
+ category: string | null;
3255
+ description: string | null;
3256
+ metadata: Record<string, unknown>;
3257
+ version: number;
3258
+ createdAt: string;
3259
+ updatedAt: string;
3260
+ }
3261
+ interface SecretRevision {
3262
+ name: string;
3263
+ scope: 'instance' | 'user';
3264
+ /** Stable version identity: the unique validFrom timestamp, normalized to ISO. */
3265
+ version: string;
3266
+ enabled: boolean;
3267
+ validFrom: string;
3268
+ createdAt: string;
3269
+ updatedAt: string;
3270
+ }
3271
+ interface SecretWithRevision extends Secret {
3272
+ revision: SecretRevision;
3273
+ }
3274
+ interface SecretValueRevision extends SecretRevision {
3275
+ value: string;
3276
+ }
3277
+ interface SecretWithValue extends Secret {
3278
+ revision: SecretValueRevision;
3279
+ }
3280
+ interface SecretRevisionPage {
3281
+ items: SecretRevision[];
3282
+ nextCursor: string | null;
3283
+ }
3284
+ interface VaultIntegrationConfig {
3285
+ resourceUrl: string;
3286
+ scopes: string[];
3287
+ issuer?: string;
3288
+ clientId?: string;
3289
+ clientSecret?: string;
3290
+ tenantId?: string;
3291
+ metadataScopeAliases?: Record<string, string>;
3292
+ }
3293
+ interface VaultConnectIntegrationInput extends VaultIntegrationConfig {
3294
+ /** Null creates a definition; otherwise use its exact revision from getIntegrationMetadata. */
3295
+ expectedRevision: string | null;
3296
+ }
3297
+ interface VaultAccessToken {
3298
+ accessToken: string;
3299
+ expiresAt: string;
3300
+ tokenType: 'Bearer';
3301
+ }
3302
+ interface VaultIntegrationMetadata {
3303
+ name: string;
3304
+ scope: 'instance' | 'user';
3305
+ revision: string | null;
3306
+ resourceUrl: string;
3307
+ issuer: string;
3308
+ scopes: string[];
3309
+ tenantId: string | null;
3310
+ metadataScopeAliases: Record<string, string>;
3311
+ clientId: string | null;
3312
+ hasClientSecret: boolean;
3313
+ registrationMode: 'dynamic_public' | 'byo_public' | 'byo_confidential';
3314
+ authorizationEndpoint: string;
3315
+ registrationEndpoint: string | null;
3316
+ }
3317
+ interface VaultIntegrationDiscovery {
3318
+ issuers: string[];
3319
+ requiresIssuerSelection: boolean;
3320
+ supportedScopes: string[];
3321
+ issuer?: string;
3322
+ authorizationEndpoint?: string;
3323
+ registrationEndpoint?: string | null;
3324
+ registrationMode?: 'dynamic_public' | 'byo_public' | 'byo_confidential';
3325
+ requiresClientId?: boolean;
3326
+ redirectUri?: string;
3327
+ }
3328
+ interface VaultIntegrationConnectResult {
3329
+ name: string;
3330
+ scope: 'instance' | 'user';
3331
+ revision: string;
3332
+ authorizationUrl: string;
3333
+ }
3334
+ /** Native Vault manager; one contract for instance and verified user ownership.
3335
+ * Instance access requires Secret roles and creator ownership or an administrator.
3336
+ * Secret values return only through get; getAccessToken returns an integration token. Automatic diagnostic previews suppress Secret values.
3337
+ * Writes with readOnly: true throw READ_ONLY_OPERATION_FORBIDDEN before performing the operation.
3338
+ * External provider credentials and OAuth connections have their own lifecycles.
3339
+ */
3340
+ /** Unique service-account name or ID; explicit selectors avoid ambiguity. */
3341
+ type ServiceAccountRef = string | {
3342
+ id: string;
3343
+ } | {
3344
+ name: string;
3345
+ };
3346
+ interface ServiceAccountRecord {
3347
+ userId: string;
3348
+ name: string;
3349
+ mail: string;
3350
+ serviceAccount: true;
3351
+ status: number;
3352
+ version: number;
3353
+ platformAccess: boolean;
3354
+ access: {
3355
+ restricted: boolean;
3356
+ users: Array<{
3357
+ userId: string;
3358
+ mail: string;
3359
+ name: string;
3360
+ }>;
3361
+ groups: Array<{
3362
+ groupId: string;
3363
+ name: string;
3364
+ }>;
3365
+ };
3366
+ memberships: {
3367
+ groups: string[];
3368
+ roleGroups: string[];
3369
+ };
3370
+ metadata: Record<string, any>;
3371
+ metadataAdvanced: Record<string, any>;
3372
+ }
3373
+ interface ServiceAccountKey {
3374
+ userKeyId: string;
3375
+ name: string;
3376
+ version: number;
3377
+ /** Masked credential label; never the usable credential. */
3378
+ key?: string;
3379
+ restricted: boolean;
3380
+ whitelist?: ServiceAccountKeyCreateInput['whitelist'];
3381
+ expireAt?: Date | null;
3382
+ metadata?: Record<string, any>;
3383
+ deletedAt?: Date | null;
3384
+ createdAt?: Date;
3385
+ lastUpdateAt?: Date;
3386
+ rotatedFromUserKeyId?: string | null;
3387
+ }
3388
+ /** Immutable credentials are revealed once by create/rotate only. */
3389
+ interface ServiceAccountKeyCreated extends ServiceAccountKey {
3390
+ secret: string;
3391
+ }
3392
+ interface ServiceAccountKeyRotated {
3393
+ newKey: ServiceAccountKeyCreated;
3394
+ previousKey: ServiceAccountKey;
3395
+ }
3396
+ interface RevoServiceAccount {
3397
+ get(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3398
+ list(query?: ServiceAccountQuery): Promise<CollectionResult<ServiceAccountRecord>>;
3399
+ create(input: ServiceAccountCreateInput): Promise<ServiceAccountRecord>;
3400
+ update(ref: ServiceAccountRef, input: ServiceAccountUpdateInput): Promise<ServiceAccountRecord>;
3401
+ delete(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3402
+ activate(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3403
+ disable(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3404
+ restore(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3405
+ enablePlatformAccess(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3406
+ disablePlatformAccess(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3407
+ getKeys(ref: ServiceAccountRef, query?: ServiceAccountQuery): Promise<CollectionResult<ServiceAccountKey>>;
3408
+ getKey(ref: ServiceAccountRef, userKeyId: string): Promise<ServiceAccountKey>;
3409
+ createKey(ref: ServiceAccountRef, input: ServiceAccountKeyCreateInput): Promise<ServiceAccountKeyCreated>;
3410
+ updateKey(ref: ServiceAccountRef, userKeyId: string, input: ServiceAccountKeyUpdateInput): Promise<ServiceAccountKey>;
3411
+ rotateKey(ref: ServiceAccountRef, userKeyId: string, input: ServiceAccountKeyRotateInput): Promise<ServiceAccountKeyRotated>;
3412
+ revokeKey(ref: ServiceAccountRef, userKeyId: string): Promise<ServiceAccountKey>;
3413
+ }
3414
+ interface RevoVault$1 {
3415
+ get(name: string, options?: SecretGetOptions): Promise<SecretWithValue>;
3416
+ create(name: string, data: SecretCreateInput, options?: SecretScopeOptions): Promise<Secret | null>;
3417
+ update(name: string, data: SecretUpdateInput, options?: SecretScopeOptions): Promise<Secret | null>;
3418
+ delete(name: string, options?: SecretDeleteOptions): Promise<void | null>;
3419
+ rotate(name: string, data: SecretRotateInput, options?: SecretRotateOptions): Promise<SecretWithRevision | null>;
3420
+ listRevisions(name: string, options?: SecretRevisionListOptions): Promise<SecretRevisionPage>;
3421
+ getAccessToken(name: string, options?: SecretScopeOptions): Promise<VaultAccessToken>;
3422
+ getIntegrationMetadata(name: string, options?: SecretScopeOptions): Promise<VaultIntegrationMetadata>;
3423
+ discoverIntegration(name: string, data: VaultIntegrationConfig, options?: SecretScopeOptions): Promise<VaultIntegrationDiscovery>;
3424
+ connectIntegration(name: string, data: VaultConnectIntegrationInput, options?: SecretScopeOptions): Promise<VaultIntegrationConnectResult | null>;
3425
+ disconnectIntegration(name: string, options?: SecretScopeOptions): Promise<{
3426
+ name: string;
3427
+ disabled: boolean;
3428
+ } | null>;
3429
+ }
2547
3430
  interface RevoApi {
2548
3431
  createDatabase(data: DatabaseCreateInput): Promise<Database>;
2549
3432
  cloneDatabase<TAsync extends boolean = false>(name: string, options?: DatabaseCloneInput & {
@@ -2552,21 +3435,37 @@ interface RevoApi {
2552
3435
  exportDatabase<TAsync extends boolean = false>(name: string, options?: ExportDatabaseOptions & {
2553
3436
  async?: TAsync;
2554
3437
  }): Promise<TAsync extends true ? ExportDatabaseAcceptedResponse : TAsync extends false ? ExportDatabaseCompletedResponse : ExportDatabaseResponse>;
2555
- exportDatabaseView<TAsync extends boolean = false>(name: string, options?: ExportDatabaseOptions & {
2556
- async?: TAsync;
2557
- }): Promise<TAsync extends true ? ExportDatabaseAcceptedResponse : TAsync extends false ? ExportDatabaseCompletedResponse : ExportDatabaseResponse>;
3438
+ startDatabaseOperation(name: string, options: Omit<DatabaseOperationInput, 'databaseName'>): Promise<{
3439
+ accepted: true;
3440
+ jobId: string;
3441
+ status: string;
3442
+ }>;
3443
+ importDatabase(name: string, options: ImportDatabaseOptions): Promise<{
3444
+ importId: string;
3445
+ jobId: string;
3446
+ status: string;
3447
+ }>;
3448
+ updateDatabaseImportMapping(importId: string, mapping: NonNullable<ImportDatabaseOptions['mapping']>): Promise<{
3449
+ importId: string;
3450
+ status: string;
3451
+ }>;
3452
+ commitDatabaseImport(importId: string): Promise<{
3453
+ importId: string;
3454
+ status: string;
3455
+ }>;
2558
3456
  updateDatabase(name: string, data: DatabaseUpdateInput): Promise<Database>;
2559
3457
  deleteDatabase(name: string): Promise<void>;
2560
3458
  restoreDatabase(name: string): Promise<void>;
2561
3459
  truncateDatabase(name: string, options?: TruncateDatabaseOptions): Promise<void>;
2562
- getDatabaseData<T = any>(name: string, request?: SelectInput): Promise<GetDatabaseDataResponse<T>>;
2563
- getDatabaseViewData<T = any>(name: string, request?: SelectInput): Promise<GetDatabaseDataResponse<T>>;
3460
+ getDatabaseData<T = any>(name: string, request?: DatabaseBoundedReadQuery): Promise<GetDatabaseDataResponse<T>>;
3461
+ getDatabaseDataRow<T = any>(name: string, query: DatabaseRowQuery): Promise<T | null>;
3462
+ countDatabase(name: string, query?: DatabaseCountQuery): Promise<number>;
2564
3463
  getDatabaseAudit(name: string, query?: DatabaseAuditQuery): Promise<DatabaseAuditResponse>;
2565
- insertDatabaseData(name: string, data: LooseObject<any>[]): Promise<DatabaseDataActionResponse>;
2566
- upsertDatabaseData(name: string, data: LooseObject<any>[]): Promise<DatabaseDataActionResponse>;
3464
+ insertDatabaseData(name: string, data: LooseObject<any>[], options?: DatabaseDataWriteOptions): Promise<DatabaseDataActionResponse>;
3465
+ upsertDatabaseData(name: string, data: LooseObject<any>[], options?: DatabaseUpsertOptions): Promise<DatabaseDataActionResponse>;
2567
3466
  updateDatabaseData(name: string, oldObject: LooseObject<any>, newObject: LooseObject<any>): Promise<ResourceItem>;
2568
- deleteDatabaseData(name: string, data: ResourceItem[]): Promise<any>;
2569
- updateDatabaseDataRequest(name: string, request: DatabaseMutationRequest, payload: Record<string, any>, options?: {
3467
+ deleteDatabaseData(name: string, data: LooseObject<any>[]): Promise<any>;
3468
+ updateDatabaseDataRequest(name: string, request: DatabaseMutationRequest, payload: DatabaseUpdateData, options?: {
2570
3469
  return?: boolean;
2571
3470
  onlyKeys?: boolean;
2572
3471
  }): Promise<{
@@ -2585,15 +3484,13 @@ interface RevoApi {
2585
3484
  queryDatabase(query: string, params?: any[]): Promise<any>;
2586
3485
  currentUser(): LoggedUser;
2587
3486
  isDebug(): boolean;
2588
- disableDebug(): void;
2589
- enableDebug(): void;
2590
3487
  getCache(key: string): any;
2591
- setCache(key: string, value: any): void;
3488
+ setCache(key: string, value: any, options?: {
3489
+ reference?: boolean;
3490
+ }): void;
2592
3491
  getContext(): Context;
2593
3492
  getErrors(): ProcessLog[];
2594
- getWarnings(): ProcessLog[];
2595
3493
  getExecutionId(): string;
2596
- getLogs(): LooseObject<any>[];
2597
3494
  getOperationId(): string;
2598
3495
  executeComponent<T = LooseObject<any>>(request: ComponentExecuteRequest): Promise<ComponentExecuteResult<T>>;
2599
3496
  input(name?: string): Input;
@@ -2601,12 +3498,8 @@ interface RevoApi {
2601
3498
  exit(): void;
2602
3499
  throw(code: number, body?: any): void;
2603
3500
  getCurrentInstance(): string;
2604
- getInstanceData(dataSource: 'Users' | 'Groups' | 'RoleGroups' | 'Keys' | 'Secrets' | 'SecretsData' | 'Templates' | 'Events' | 'Schedule' | 'Jobs' | 'Webhooks' | 'Components' | 'Logs' | 'Files' | 'EventsHistory' | 'Endpoints' | 'Databases' | 'DatabaseData', request?: InstanceData): Promise<any>;
3501
+ getInstanceData(dataSource: 'Users' | 'Groups' | 'RoleGroups' | 'Keys' | 'Secrets' | 'SecretsData' | 'Templates' | 'Events' | 'Schedule' | 'Jobs' | 'Webhooks' | 'Components' | 'Logs' | 'EventsHistory' | 'Endpoints' | 'Databases' | 'DatabaseData', request?: InstanceData): Promise<any>;
2605
3502
  getInstanceDetails(): InstanceDetails;
2606
- getSecret(name: string): Promise<string>;
2607
- getSecrets(name: string[]): Promise<{
2608
- [key: string]: string;
2609
- }>;
2610
3503
  publishMessage(channel: string, message: any): Promise<void>;
2611
3504
  getInstanceCache(key: string): Promise<any>;
2612
3505
  setInstanceCache(key: string, value: any, seconds?: number): Promise<void>;
@@ -2624,24 +3517,45 @@ interface RevoApi {
2624
3517
  acquireIdempotencyKey(key: string, ttl: number, value?: any): Promise<boolean>;
2625
3518
  getIdempotencyKey(key: string): Promise<any>;
2626
3519
  releaseIdempotencyKey(key: string): Promise<void>;
2627
- concurrencyLimit(key: string, limit: number, ttl: number): Promise<boolean>;
3520
+ concurrencyLimit(key: string, limit: number, ttl: number, leaseOwnerId?: string): Promise<boolean>;
2628
3521
  rateLimit(key: string, limit: number, ttl: number): Promise<boolean>;
2629
3522
  releaseRateLimit(key: string): Promise<void>;
2630
- releaseConcurrencyLimit(key: string): Promise<void>;
3523
+ releaseConcurrencyLimit(key: string, leaseOwnerId?: string): Promise<void>;
2631
3524
  triggerEvent(name: string, message: any, options?: TriggerEventOptions): Promise<string>;
2632
- triggerTarget(targetType: ExecutionTargetType, targetId: string, input?: any, options?: AutomationScheduleOptions): Promise<string>;
2633
- triggerJob(templateId: string, input?: any, options?: AutomationScheduleOptions): Promise<string>;
3525
+ triggerTarget(targetType: ExecutionTargetType, targetId: string, input?: Record<string, JsonValue>, options?: AutomationScheduleOptions): Promise<string>;
3526
+ triggerJob(templateIdOrName: string, templateInputs?: Record<string, JsonValue>, options?: AutomationScheduleOptions): Promise<string>;
2634
3527
  triggerWebhook(webhook: WebhookInput, options?: AutomationScheduleOptions): Promise<Webhook>;
3528
+ cancelJobs(input: JobsBulkInput): Promise<AutomationOperation>;
3529
+ retryJobs(input: JobsBulkInput): Promise<AutomationOperation>;
3530
+ deleteJobs(input: JobsBulkInput): Promise<AutomationOperation>;
3531
+ cancelWebhooks(input: WebhooksBulkInput): Promise<AutomationOperation>;
3532
+ retryWebhooks(input: WebhooksBulkInput): Promise<AutomationOperation>;
3533
+ deleteWebhooks(input: WebhooksBulkInput): Promise<AutomationOperation>;
3534
+ previewAutomationOperation(resource: 'jobs' | 'webhooks', action: 'cancel' | 'retry' | 'delete', input: JobsBulkInput | WebhooksBulkInput): Promise<{
3535
+ matched: number;
3536
+ eligible: number;
3537
+ }>;
3538
+ getAutomationOperation(operationId: string): Promise<AutomationOperation>;
3539
+ getAutomationOperationItems(operationId: string, after?: string): Promise<{
3540
+ data: Array<{
3541
+ resourceId: string;
3542
+ status: string;
3543
+ resultId: string | null;
3544
+ errorCode: string | null;
3545
+ }>;
3546
+ nextCursor: string | null;
3547
+ }>;
2635
3548
  httpCall(config: HttpRequestInterface, options: HttpRequestOptionsInterface & {
2636
3549
  responseType: 'storage';
2637
3550
  target: HttpStorageTargetRef;
2638
3551
  timeout?: number;
2639
- proxy?: false;
3552
+ proxy?: boolean;
2640
3553
  }): Promise<{
2641
3554
  status: number;
2642
3555
  statusText: string;
2643
3556
  time: number;
2644
- headers: LooseObject<string>;
3557
+ headers: LooseObject<string | string[]>;
3558
+ revo?: HttpRevoResponseScope;
2645
3559
  request: {
2646
3560
  config: HttpRequestInterface;
2647
3561
  options: HttpRequestOptionsInterface;
@@ -2663,7 +3577,8 @@ interface RevoApi {
2663
3577
  status: number;
2664
3578
  statusText: string;
2665
3579
  time: number;
2666
- headers: LooseObject<string>;
3580
+ headers: LooseObject<string | string[]>;
3581
+ revo?: HttpRevoResponseScope;
2667
3582
  data: any;
2668
3583
  storage?: {
2669
3584
  session: StorageUploadSession;
@@ -2679,43 +3594,74 @@ interface RevoApi {
2679
3594
  };
2680
3595
  };
2681
3596
  }>;
2682
- sftpExec(commands: any[], config: SFTPClient): Promise<any>;
2683
- sftpPut(source: SFTPFileSourceRef, path: string, config: SFTPClient): Promise<void>;
2684
- sftpGet(target: SFTPFileTargetRef, path: string, config: SFTPClient): Promise<void | {
2685
- session: StorageUploadSession;
2686
- entry: StorageEntryView;
2687
- }>;
2688
3597
  }
2689
3598
  interface RevoStorage {
2690
3599
  explore(query?: StorageExploreRequest): Promise<StorageExploreResult>;
3600
+ explore(namespace: string, query?: StorageExploreRequest): Promise<StorageExploreResult>;
2691
3601
  resolveFolderPath(path: string): Promise<StorageEntryView>;
3602
+ resolveFolderPath(path: string, namespace: string): Promise<StorageEntryView>;
2692
3603
  ensureFolderPath(path: string, options?: StorageEnsureFolderPathOptions): Promise<StorageEntryView>;
3604
+ ensureFolderPath(path: string, options: StorageEnsureFolderPathOptions | undefined, namespace: string): Promise<StorageEntryView>;
2693
3605
  getFile(storageEntryId: string, includeDeleted?: boolean): Promise<StorageEntryView>;
3606
+ getFile(namespace: string, storageEntryId: string, includeDeleted?: boolean): Promise<StorageEntryView>;
2694
3607
  getFileData(storageEntryId: string, options?: StorageFileReadOptions): Promise<StorageStructuredFileDataPage | string[] | string>;
3608
+ getFileData(namespace: string, storageEntryId: string, options?: StorageFileReadOptions): Promise<StorageStructuredFileDataPage | string[] | string>;
2695
3609
  getFileStats(storageEntryId: string, options?: StorageFileStatsOptions): Promise<StorageFileStats>;
3610
+ getFileStats(namespace: string, storageEntryId: string, options?: StorageFileStatsOptions): Promise<StorageFileStats>;
2696
3611
  getEntry(storageEntryId: string, includeDeleted?: boolean): Promise<StorageEntryView>;
3612
+ getEntry(namespace: string, storageEntryId: string, includeDeleted?: boolean): Promise<StorageEntryView>;
2697
3613
  createFolder(data: StorageFolderInput): Promise<StorageEntryView>;
2698
- putObject(data: StoragePutObjectInput): Promise<StorageEntryView>;
3614
+ createFolder(namespace: string, data: StorageFolderInput): Promise<StorageEntryView>;
3615
+ putObject(data: StorageBinaryPutObjectInput): Promise<StorageEntryView>;
3616
+ putObject(namespace: string, data: StorageBinaryPutObjectInput): Promise<StorageEntryView>;
2699
3617
  createUploadSession(data: StorageUploadSessionInput): Promise<{
2700
3618
  session: StorageUploadSession;
2701
3619
  upload: StorageUploadTarget;
2702
3620
  }>;
3621
+ createUploadSession(namespace: string, data: StorageUploadSessionInput): Promise<{
3622
+ session: StorageUploadSession;
3623
+ upload: StorageUploadTarget;
3624
+ }>;
2703
3625
  extendUploadSession(storageUploadSessionId: string): Promise<StorageUploadSession>;
3626
+ extendUploadSession(namespace: string, storageUploadSessionId: string): Promise<StorageUploadSession>;
2704
3627
  getUploadSession(storageUploadSessionId: string): Promise<StorageUploadSessionView>;
2705
- uploadPart(storageUploadSessionId: string, partNumber: number | StorageUploadPartInput, data?: StorageUploadPartInput): Promise<StorageUploadPartResult>;
3628
+ getUploadSession(namespace: string, storageUploadSessionId: string): Promise<StorageUploadSessionView>;
3629
+ uploadPart(storageUploadSessionId: string, partNumber: number | StorageBinaryUploadPartInput, data?: StorageBinaryUploadPartInput): Promise<StorageUploadPartResult>;
3630
+ uploadPart(namespace: string, storageUploadSessionId: string, partNumber: number | StorageBinaryUploadPartInput, data?: StorageBinaryUploadPartInput): Promise<StorageUploadPartResult>;
2706
3631
  finalizeUploadSession(storageUploadSessionId: string, data?: StorageUploadSessionFinalizeInput): Promise<{
2707
3632
  session: StorageUploadSession;
2708
3633
  entry: StorageEntryView;
2709
3634
  fileStats?: StorageFileStats;
2710
3635
  }>;
3636
+ finalizeUploadSession(namespace: string, storageUploadSessionId: string, data?: StorageUploadSessionFinalizeInput): Promise<{
3637
+ session: StorageUploadSession;
3638
+ entry: StorageEntryView;
3639
+ fileStats?: StorageFileStats;
3640
+ }>;
2711
3641
  abortUploadSession(storageUploadSessionId: string): Promise<StorageUploadSession>;
3642
+ abortUploadSession(namespace: string, storageUploadSessionId: string): Promise<StorageUploadSession>;
2712
3643
  updateEntry(storageEntryId: string, data: StorageEntryUpdateInput): Promise<StorageEntryView>;
3644
+ updateEntry(namespace: string, storageEntryId: string, data: StorageEntryUpdateInput): Promise<StorageEntryView>;
2713
3645
  moveEntry(storageEntryId: string, data: StorageEntryMoveInput): Promise<StorageEntryView>;
3646
+ moveEntry(namespace: string, storageEntryId: string, data: StorageEntryMoveInput): Promise<StorageEntryView>;
2714
3647
  archiveEntry(storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
3648
+ archiveEntry(namespace: string, storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
2715
3649
  restoreEntry(storageEntryId: string, data: StorageRestoreInput): Promise<StorageEntryView>;
3650
+ restoreEntry(namespace: string, storageEntryId: string, data: StorageRestoreInput): Promise<StorageEntryView>;
2716
3651
  deleteEntry(storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
2717
- getDownload(storageEntryId: string, preview?: boolean): Promise<StorageDownload>;
2718
- getText(storageEntryId: string, options?: StorageTextReadOptions): Promise<StorageTextContent>;
3652
+ deleteEntry(namespace: string, storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
3653
+ getDownload(storageEntryId: string, preview?: boolean, ttlSeconds?: number): Promise<StorageDownload>;
3654
+ getDownload(namespace: string, storageEntryId: string, preview?: boolean, ttlSeconds?: number): Promise<StorageDownload>;
3655
+ getDocument(storageEntryId: string, options?: StorageDocumentReadOptions): Promise<StorageDocument>;
3656
+ getDocument(namespace: string, storageEntryId: string, options?: StorageDocumentReadOptions): Promise<StorageDocument>;
3657
+ }
3658
+ interface RevoTransport {
3659
+ sftpImport(path: string, storage: SFTPImportStorage, secretNameOrId: string): Promise<{
3660
+ session: StorageUploadSession;
3661
+ entry: StorageEntryView;
3662
+ }>;
3663
+ sftpExport(path: string, storage: SFTPExportStorage, secretNameOrId: string): Promise<void>;
3664
+ sftpCommands(commands: any[], secretNameOrId: string): Promise<any>;
2719
3665
  }
2720
3666
  interface RevoAgents {
2721
3667
  list(): Promise<Agent[]>;
@@ -2739,16 +3685,11 @@ interface RevoAgents {
2739
3685
  tickRun(agentRunId: string): Promise<AgentRun>;
2740
3686
  cancelRun(agentRunId: string, data?: AgentRunCancelInput): Promise<AgentRun>;
2741
3687
  reconcileRuns(): Promise<any>;
2742
- listThreads(query?: Record<string, any>): Promise<CollectionResult<AssistantThread>>;
3688
+ listThreads(query?: AssistantThreadQuery): Promise<CollectionResult<AssistantThread>>;
2743
3689
  getThread(assistantThreadId: string, options?: {
2744
3690
  hideDeleted?: boolean;
2745
3691
  }): Promise<AssistantThread>;
2746
3692
  getThreadState(assistantThreadId: string): Promise<AssistantThreadState>;
2747
- getThreadGoal(assistantThreadId: string): Promise<AssistantThreadGoal | null>;
2748
- setThreadGoal(assistantThreadId: string, data: AssistantThreadGoalInput): Promise<AssistantThreadGoal>;
2749
- pauseThreadGoal(assistantThreadId: string): Promise<AssistantThreadGoal>;
2750
- resumeThreadGoal(assistantThreadId: string): Promise<AssistantThreadGoal>;
2751
- clearThreadGoal(assistantThreadId: string): Promise<AssistantThreadGoal>;
2752
3693
  getThreadShare(assistantThreadId: string): Promise<AssistantThreadShare | null>;
2753
3694
  enableThreadShare(assistantThreadId: string): Promise<AssistantThreadShare>;
2754
3695
  disableThreadShare(assistantThreadId: string): Promise<AssistantThreadShare>;
@@ -2758,6 +3699,7 @@ interface RevoAgents {
2758
3699
  getSharedThreadMessageArtifact(shareId: string, assistantMessageId: string, artifactId: string): Promise<Record<string, any>>;
2759
3700
  forkSharedThreadMessage(shareId: string, assistantMessageId: string, data?: AssistantForkMessageInput): Promise<AssistantThreadResponse>;
2760
3701
  createThread(data: AssistantMessageInput): Promise<AssistantThreadResponse>;
3702
+ createResponse(data: AssistantResponseInput): Promise<AssistantThreadResponse>;
2761
3703
  deleteThread(assistantThreadId: string): Promise<void>;
2762
3704
  restoreThread(assistantThreadId: string): Promise<void>;
2763
3705
  listThreadMessages(assistantThreadId: string, query?: Record<string, any>): Promise<CollectionResult<AssistantMessage>>;
@@ -2774,8 +3716,8 @@ interface RevoAgents {
2774
3716
  }
2775
3717
  interface RevoUtils {
2776
3718
  sleep(ms: number): Promise<void>;
2777
- aesDecrypt(encrypted: string, passphrase: string): string;
2778
- aesEncrypt(payload: string, passphrase: string): string;
3719
+ aesDecrypt(encrypted: string, passphrase: string): Promise<string>;
3720
+ aesEncrypt(payload: string, passphrase: string): Promise<string>;
2779
3721
  compareHash(password: string | undefined, hash: string | undefined): Promise<boolean>;
2780
3722
  isBase64(input: any): boolean;
2781
3723
  decodeBase64(base64String: string): string;
@@ -2801,7 +3743,7 @@ interface RevoUtils {
2801
3743
  randomInt(min?: number, max?: number): number;
2802
3744
  randomString(length?: number, alphabet?: string): string;
2803
3745
  otp(length?: number): string;
2804
- validate(payload: any, schema: ValidatorSchemaInput): ValidationResult<any>;
3746
+ validate(payload: any, schema: ValidatorSchemaInput): Promise<ValidationResult<any>>;
2805
3747
  jwtDecode(token: string, options?: {
2806
3748
  complete?: boolean;
2807
3749
  json?: boolean;
@@ -2843,18 +3785,27 @@ interface RevoUtils {
2843
3785
  maxAge?: string | number;
2844
3786
  allowInvalidAsymmetricKeyTypes?: boolean;
2845
3787
  }): any;
2846
- rsaDecrypt(privateKey: string, payload: string, passphrase?: string): string;
2847
- rsaEncrypt(publicKey: string, payload: string): string;
3788
+ rsaDecrypt(privateKey: string, payload: string, passphrase?: string): Promise<string>;
3789
+ rsaEncrypt(publicKey: string, payload: string): Promise<string>;
2848
3790
  rsaGeneratePair(config?: {
2849
3791
  modulusLength?: number;
2850
3792
  passphrase?: string;
2851
- }): {
3793
+ }): Promise<{
2852
3794
  publicKey: string;
2853
3795
  privateKey: string;
2854
- };
2855
- rsaSign(privateKey: string, payload: string, passphrase?: string): string;
2856
- rsaVerify(publicKey: string, payload: string, signature: string): boolean;
3796
+ }>;
3797
+ rsaSign(privateKey: string, payload: string, passphrase?: string): Promise<string>;
3798
+ rsaVerify(publicKey: string, payload: string, signature: string): Promise<boolean>;
2857
3799
  }
3800
+ /** Low-code byte payloads; REST JSON callers retain the base64 option. */
3801
+ /** Text arrays retain their existing joining rules; bytes are snapshotted before asynchronous upload. */
3802
+ type StorageBinaryPutObjectInput = Omit<StoragePutObjectInput, 'data'> & {
3803
+ data: string | string[] | Uint8Array | Buffer;
3804
+ };
3805
+ /** Bytes need no base64 encoding. One call remains one logical part, including retry/checksum/finalize. */
3806
+ type StorageBinaryUploadPartInput = Omit<StorageUploadPartInput, 'data'> & {
3807
+ data?: string | string[] | Uint8Array | Buffer;
3808
+ };
2858
3809
  /**
2859
3810
  * Source language for an ad-hoc low-code execution.
2860
3811
  */
@@ -2862,6 +3813,8 @@ type LowCodeLanguage = 'javascript' | 'typescript';
2862
3813
  interface LowCodeExecuteOptions {
2863
3814
  /** Defaults to TypeScript. */
2864
3815
  language?: LowCodeLanguage;
3816
+ /** Restrict platform writes for this execution. Inherits the hosted runtime mode when omitted. */
3817
+ readOnly?: boolean;
2865
3818
  /** Input exposed through api.input() inside the low-code execution. */
2866
3819
  inputs?: any;
2867
3820
  /** Maximum execution time in milliseconds. Defaults to 60 seconds. */
@@ -2873,6 +3826,15 @@ interface RevoLowCode {
2873
3826
  execute<T = LooseObject<any>>(code: string, options?: LowCodeExecuteOptions): Promise<ComponentExecuteResult<T>>;
2874
3827
  }
2875
3828
 
3829
+ type VaultReadResult = Awaited<ReturnType<RevoVault$1['get']>>;
3830
+ /** Wire decoding returns a full Node.js Buffer, extending the portable low-code type. */
3831
+ type RevoVault = Omit<RevoVault$1, 'get'> & {
3832
+ get(...args: Parameters<RevoVault$1['get']>): Promise<Omit<VaultReadResult, 'revision'> & {
3833
+ revision: Omit<VaultReadResult['revision'], 'value'> & {
3834
+ value: Buffer$1;
3835
+ };
3836
+ }>;
3837
+ };
2876
3838
  type RevoExecute = RevoLowCode['execute'];
2877
3839
  type RevoExecuteOptions = NonNullable<Parameters<RevoExecute>[1]>;
2878
3840
  type RevoExecutionDefaults = Omit<RevoExecuteOptions, 'inputs'>;
@@ -2960,6 +3922,9 @@ interface RevoRuntime {
2960
3922
  readonly api: RevoApi;
2961
3923
  readonly utils: RevoUtils;
2962
3924
  readonly storage: RevoStorage;
3925
+ readonly vault: RevoVault;
3926
+ readonly serviceAccount: RevoServiceAccount;
3927
+ readonly transport: RevoTransport;
2963
3928
  readonly agents: RevoAgents;
2964
3929
  readonly execute: RevoExecute;
2965
3930
  readonly batch: RevoBatchController;
@@ -3057,4 +4022,4 @@ declare class RevoHttpResponseError extends RevoError {
3057
4022
  constructor(statusCode: number, body?: unknown);
3058
4023
  }
3059
4024
 
3060
- export { RevoTransportError as A, type BatchFailureMode as B, CONTRACT_REVISION as C, type RuntimeBatchRequest as D, type RuntimeBatchResponse as E, type RuntimeCall as F, type RuntimeCallResult as G, type HostedRuntimeBootstrap as H, type SerializedRevoError as I, PROTOCOL_VERSION as P, type RevoRuntime as R, SDK_VERSION as S, RevoExecutionExit as a, RevoHttpResponseError as b, type RevoRuntimeBridgeRequest as c, type RevoRuntimeBridgeResponse as d, type RevoRuntimeBridgeTransportError as e, type RevoStandaloneApi as f, type RevoUtils as g, type RevoStorage as h, type RevoAgents as i, type RevoExecute as j, type RevoBatchController as k, type RevoClientOptions as l, type RevoApi as m, RevoAuthenticationError as n, RevoBatchConfigurationError as o, RevoBatchLimitError as p, type RevoBatchLimits as q, type RevoBatchOptions as r, RevoConfigurationError as s, RevoError as t, type RevoExecuteOptions as u, type RevoExecutionDefaults as v, RevoPermissionDeniedError as w, RevoProtocolError as x, RevoRemoteError as y, RevoRuntimeContextUnavailableError as z };
4025
+ export { RevoProtocolError as A, type BatchFailureMode as B, CONTRACT_REVISION as C, RevoRemoteError as D, RevoRuntimeContextUnavailableError as E, RevoTransportError as F, type RuntimeBatchRequest as G, type HostedRuntimeBootstrap as H, type RuntimeBatchResponse as I, type RuntimeCall as J, type RuntimeCallResult as K, type SerializedRevoError as L, PROTOCOL_VERSION as P, type RevoRuntime as R, SDK_VERSION as S, RevoExecutionExit as a, RevoHttpResponseError as b, type RevoRuntimeBridgeRequest as c, type RevoRuntimeBridgeResponse as d, type RevoRuntimeBridgeTransportError as e, type RevoStandaloneApi as f, type RevoUtils as g, type RevoStorage as h, type RevoVault as i, type RevoServiceAccount as j, type RevoTransport as k, type RevoAgents as l, type RevoExecute as m, type RevoBatchController as n, type RevoClientOptions as o, type RevoApi as p, RevoAuthenticationError as q, RevoBatchConfigurationError as r, RevoBatchLimitError as s, type RevoBatchLimits as t, type RevoBatchOptions as u, RevoConfigurationError as v, RevoError as w, type RevoExecuteOptions as x, type RevoExecutionDefaults as y, RevoPermissionDeniedError as z };