@revoengine/sdk 2.0.0 → 4.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: "4.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: "55a2d6607e14cc2a6f7aef0d21d64a95e6d625d916d6e624bbecb4410716e79a";
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
+ /** Return only the complete estimated read plan without fetching records. count:true adds the count plan. Unsupported data sources reject diagnostic requests without executing the read. */
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
+ /** Return only the complete estimated read plan without fetching records. count:true adds the count plan. Unsupported data sources reject diagnostic requests without executing the read. */
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,22 +1685,24 @@ 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 {
1692
+ /** Preview the complete estimated read/count plans without fetching records. */
1693
+ debug?: boolean;
1181
1694
  /**
1182
1695
  * Selected output columns and computed fields.
1183
1696
  * If omitted, the ORM selects all root-table columns by default.
1184
1697
  */
1185
1698
  fields?: SelectItem[];
1186
1699
  /**
1187
- * Related tables to join.
1188
- * The backend resolves join definitions automatically.
1700
+ * Related databases, views, or materialized views to join.
1701
+ * The backend resolves each logical relation and its definition automatically.
1189
1702
  */
1190
1703
  joins?: SelectJoin[];
1191
1704
  /**
1192
1705
  * Recursive filter tree.
1193
- * Example:
1194
1706
  * { and: [{ field: 'status', op: 'eq', value: 'active' }] }
1195
1707
  */
1196
1708
  filter?: SelectFilterNode;
@@ -1208,7 +1720,9 @@ interface SelectInput {
1208
1720
  */
1209
1721
  cast?: Record<string, DatabaseDefinitionType>;
1210
1722
  /**
1211
- * Maximum number of rows to return.
1723
+ * getDatabaseData accepts a number (at most 100,000) or explicit null.
1724
+ * Omitting take uses 2,000 and logs one warning per execution.
1725
+ * Use walkDatabaseData for processing without a finite page.
1212
1726
  * The backend fetches one extra row internally to determine next-page availability.
1213
1727
  */
1214
1728
  take?: number;
@@ -1234,6 +1748,13 @@ interface DatabaseMutationRequest {
1234
1748
  /**
1235
1749
  * Normal data response returned by the ORM query execution layer.
1236
1750
  */
1751
+ /** Full estimated plans only; no data query, COUNT, SQL or bound params in the result. */
1752
+ interface DatabaseExplainResult {
1753
+ debug: {
1754
+ explain: string[];
1755
+ countExplain?: string[];
1756
+ };
1757
+ }
1237
1758
  interface GetDatabaseDataResponse<T = any> {
1238
1759
  data: T[];
1239
1760
  results: number;
@@ -1421,7 +1942,8 @@ interface Webhook {
1421
1942
  status: string;
1422
1943
  statusMessage: string;
1423
1944
  attempts: number;
1424
- maxAttempts: number;
1945
+ /** Additional retries: -1 unlimited, 0 no retry. */
1946
+ maxRetries: number;
1425
1947
  request: LooseObject<any>;
1426
1948
  response: LooseObject<any>;
1427
1949
  createdBy: string;
@@ -1436,7 +1958,8 @@ interface LogInterface {
1436
1958
  }
1437
1959
  interface TemplateFormData {
1438
1960
  key: string;
1439
- value?: string;
1961
+ /** Numbers and booleans are sent as text. Read credentials explicitly with vault.get/getAccessToken. */
1962
+ value?: string | number | boolean;
1440
1963
  /** Storage entry to append as this multipart part. Use this instead of value for binary content. */
1441
1964
  storageEntryId?: string;
1442
1965
  /** Storage namespace for storageEntryId. Defaults to explorer. */
@@ -1473,27 +1996,38 @@ interface HttpRequestOptionsInterface {
1473
1996
  /**
1474
1997
  * JSON handling is the default. `requestType: 'json'` and `responseType: 'json'` may be stated together
1475
1998
  * when an integration should expose an explicit, self-documenting JSON contract.
1999
+ * Use `buffer` explicitly for binary data: requests accept Buffer/Uint8Array and responses return Buffer.
2000
+ * `base64buffer` retains its string contract. Keep JSON as JSON; converting it to bytes is unnecessary.
1476
2001
  */
1477
2002
  //@default: 'json'
1478
- responseType?: 'json' | 'base64buffer' | 'document' | 'text' | 'storage';
2003
+ responseType?: 'json' | 'buffer' | 'base64buffer' | 'document' | 'text' | 'storage';
1479
2004
  //@default: 'json'
1480
- requestType?: 'json' | 'base64buffer' | 'form-data' | 'text' | 'storage';
2005
+ requestType?: 'json' | 'buffer' | 'base64buffer' | 'form-data' | 'text' | 'storage';
1481
2006
  //@default: false
1482
2007
  currentCredentials?: boolean;
1483
2008
  }
2009
+ interface HttpRevoResponseScope {
2010
+ sameInstance: boolean;
2011
+ operationId?: string;
2012
+ }
1484
2013
  interface HttpRequestInterface {
1485
2014
  url: string;
2015
+ /** Replaces complete `{name}` path segments with URL-encoded bound values. */
2016
+ pathParams?: Record<string, string>;
1486
2017
  method: 'POST' | 'PUT' | 'DELETE' | 'GET' | 'PATCH' | 'OPTIONS' | 'HEAD' | 'PURGE' | 'LINK' | 'UNLINK';
1487
2018
  timeout?: number;
2019
+ /** HTTP headers; use an explicitly awaited vault.get/getAccessToken result for credentials. */
1488
2020
  headers?: LooseObject<string>;
1489
2021
  params?: TemplateParameters[];
2022
+ /** Integration-owned payload. Credential values and provider echoes are caller-managed data. */
1490
2023
  data?: any;
1491
2024
  //@default: undefined
1492
2025
  formData?: TemplateFormData[];
1493
2026
  }
1494
2027
  interface TemplateParameters {
1495
2028
  key: string;
1496
- value: string | LooseObject<boolean | number | string>;
2029
+ /** Numbers and booleans are sent as text. Legacy plain maps retain '[object Object]' conversion; serialize structured queries explicitly. */
2030
+ value: string | number | boolean | LooseObject<boolean | number | string>;
1497
2031
  }
1498
2032
  interface ProcessLog {
1499
2033
  time: string;
@@ -1543,6 +2077,10 @@ interface StorageEntryView extends StorageEntry {
1543
2077
  breadcrumbs: StorageBreadcrumb[];
1544
2078
  }
1545
2079
  interface StorageExploreRequest {
2080
+ /** Disable implicit parent-folder scoping; ACL and namespace checks still apply. */
2081
+ flat?: boolean;
2082
+ filter?: SelectFilterNode;
2083
+ sort?: string[] | Record<string, SortDir>;
1546
2084
  parentStorageEntryId?: string;
1547
2085
  storageProviderConfigId?: string | null;
1548
2086
  term?: string;
@@ -1593,6 +2131,8 @@ interface StorageUploadSessionPart {
1593
2131
  interface StorageUploadPartResult {
1594
2132
  storageUploadSessionId: string;
1595
2133
  partNumber: number;
2134
+ /** UPLOADED after provider acceptance; RETRY_WAIT/UPLOADING remains durably queued by the platform. */
2135
+ status: 'UPLOADED' | 'UPLOADING' | 'RETRY_WAIT' | null;
1596
2136
  size: number;
1597
2137
  checksumMd5: string | null;
1598
2138
  }
@@ -1617,17 +2157,72 @@ interface StorageDownload {
1617
2157
  downloadUrl: string;
1618
2158
  preview: boolean;
1619
2159
  }
1620
- interface StorageTextReadOptions {
2160
+ type StorageDocumentFormat = 'auto' | 'text' | 'json' | 'xml';
2161
+ interface StorageDocumentReadOptions {
2162
+ /** Text line window; cannot be combined with byte ranges or JSON/XML/PDF/DOCX extraction. */
1621
2163
  startLine?: number | null;
1622
2164
  endLine?: number | null;
1623
2165
  maxChars?: number | null;
2166
+ /** Parser selection. Defaults to text; auto selects JSON/XML from MIME or extension. PDF/DOCX extract text; no byte ranges for binary documents. */
2167
+ format?: StorageDocumentFormat;
2168
+ /** Inclusive source byte offset. Only supported for plain text, not PDF/DOCX. */
2169
+ start?: number;
2170
+ /** Exclusive source byte offset. Only supported for plain text, not PDF/DOCX. */
2171
+ end?: number;
2172
+ }
2173
+ interface StorageDocument {
2174
+ storageEntryId: string;
2175
+ name: string;
2176
+ mimeType: string | null;
2177
+ size: number | null;
2178
+ format: Exclude<StorageDocumentFormat, 'auto'>;
2179
+ start?: number;
2180
+ end?: number;
2181
+ sourceBytes?: number;
2182
+ content?: string;
2183
+ document?: any;
2184
+ /** Present for bounded PDF/DOCX text extraction; no visual/OCR content is inferred. */
2185
+ extraction?: {
2186
+ sourceFormat: 'pdf' | 'docx';
2187
+ textOnly: true;
2188
+ truncated: boolean;
2189
+ totalPages: number | null;
2190
+ processedPages: number | null;
2191
+ mayRequireOcr: boolean;
2192
+ };
2193
+ /** Present for line-window reads instead of source byte offsets. */
2194
+ startLine?: number;
2195
+ endLine?: number;
2196
+ returnedLineCount?: number;
2197
+ totalLines?: number;
2198
+ truncated?: boolean;
2199
+ }
2200
+ /** Whole-source CSV mismatch report. Repeated on pages; do not sum page reports. No raw values. */
2201
+ interface StorageCsvReadReport {
2202
+ skippedRows: number;
2203
+ diagnostics: Array<{
2204
+ code: string;
2205
+ recordNumber: number;
2206
+ lineStart: number;
2207
+ lineEnd: number;
2208
+ startByte: number;
2209
+ expectedFieldCount?: number;
2210
+ actualFieldCount?: number;
2211
+ message: string;
2212
+ }>;
2213
+ diagnosticsTruncated: boolean;
1624
2214
  }
1625
2215
  interface StorageFileReadOptions {
2216
+ /** CSV only. Default abort. skipRow drops wrong-width source records; syntax/size errors still abort. */
2217
+ onError?: 'abort' | 'skipRow';
2218
+ /** Physical lines include headers and the trailing empty line. Defaults to records. */
2219
+ mode?: 'records' | 'lines';
2220
+ separator?: string;
1626
2221
  batchNumber?: number;
1627
2222
  buffer?: boolean;
1628
2223
  start?: number;
1629
2224
  end?: number;
1630
- /** Continue a structured CSV/XLSX read. Cursor restores sheet and batch position. */
2225
+ /** Continue a structured CSV/TSV, XLSX, NDJSON/JSONL, JSON-array, or XML read. Keep the opaque cursor unchanged. */
1631
2226
  cursor?: string;
1632
2227
  /** XLSX sheet name. The first visible sheet is used when omitted. */
1633
2228
  sheet?: string;
@@ -1637,8 +2232,14 @@ interface StorageFileReadOptions {
1637
2232
  encoding?: string;
1638
2233
  delimiter?: string;
1639
2234
  recordDelimiter?: '\n' | '\r' | '\r\n';
1640
- quote?: string;
2235
+ /** One quote character (default double quote), or false for literal quotes/backslashes. */
2236
+ quote?: string | false;
2237
+ /** Maximum bytes in one logical CSV record; positive integer, default 64 MiB. Independent of read/callback size. */
2238
+ maxRecordBytes?: number;
2239
+ /** Quote escape character; ignored when quote is false. */
1641
2240
  escape?: string;
2241
+ /** XML record path such as `Orders/Order`; required for XML row reads. */
2242
+ recordPath?: string;
1642
2243
  /** Rows per persisted storage index page. Defaults to 100,000 and cannot exceed 100,000. */
1643
2244
  batchSize?: number;
1644
2245
  /** Rows returned by this call. Defaults to the index page size and cannot exceed 100,000. */
@@ -1647,60 +2248,97 @@ interface StorageFileReadOptions {
1647
2248
  columns?: Array<string | {
1648
2249
  source: string;
1649
2250
  key?: string;
1650
- type?: 'string' | 'number' | 'boolean' | 'date';
2251
+ type?: StorageTabularColumnType;
1651
2252
  }>;
1652
2253
  }
1653
2254
  interface StorageFileStatsOptions {
2255
+ /** CSV only. Default abort. skipRow drops wrong-width source records; syntax/size errors still abort. */
2256
+ onError?: 'abort' | 'skipRow';
2257
+ mode?: 'records' | 'lines';
1654
2258
  separator?: string;
1655
2259
  encoding?: string;
1656
2260
  delimiter?: string;
1657
2261
  recordDelimiter?: '\n' | '\r' | '\r\n';
1658
- quote?: string;
2262
+ /** One quote character (default double quote), or false for literal quotes/backslashes. */
2263
+ quote?: string | false;
2264
+ /** Maximum bytes in one logical CSV record; positive integer, default 64 MiB. Independent of read/callback size. */
2265
+ maxRecordBytes?: number;
2266
+ /** Quote escape character; ignored when quote is false. */
1659
2267
  escape?: string;
1660
2268
  headerRow?: number | null;
1661
2269
  reloadStats?: boolean;
1662
2270
  batchSize?: number;
2271
+ /** XML record path such as `Orders/Order`; required for XML row stats. */
2272
+ recordPath?: string;
2273
+ }
2274
+ type StorageTabularColumnType = 'string' | 'number' | 'boolean' | 'date' | 'object';
2275
+ interface StorageTabularColumn {
2276
+ key: string;
2277
+ header: string;
2278
+ type?: StorageTabularColumnType;
2279
+ }
2280
+ interface StorageTabularSchemaIssue {
2281
+ code: 'SHEET_MISSING' | 'SHEET_UNDECLARED' | 'COLUMN_MISSING' | 'COLUMN_UNDECLARED' | 'COLUMN_KEY_DUPLICATE' | 'COLUMN_TYPE_FALLBACK';
2282
+ sheet: string;
2283
+ column?: string;
2284
+ declaredType?: StorageTabularColumnType;
2285
+ invalidRows?: number;
2286
+ sampleRows?: number[];
2287
+ }
2288
+ interface StorageTabularSchemaPolicy {
2289
+ profile: 'fallback' | 'strict';
2290
+ additionalProperties: 'allow' | 'strip' | 'reject';
2291
+ }
2292
+ interface StorageTabularSchemaResult {
2293
+ policy: StorageTabularSchemaPolicy;
2294
+ status: 'MATCHED' | 'FALLBACK' | 'FAILED';
2295
+ issues: StorageTabularSchemaIssue[];
1663
2296
  }
1664
2297
  interface StorageFileStats {
2298
+ /** Present for CSV indexed with onError: skipRow; describes the entire source. */
2299
+ csvReport?: StorageCsvReadReport;
2300
+ /** Legacy physical-window count, including the terminal empty window after a delimiter. */
1665
2301
  lineCount?: number;
2302
+ /** Actual physical lines, including headers, blanks and multiline CSV field lines; no terminal synthetic empty line. */
2303
+ physicalLineCount?: number;
2304
+ /** Empty physical lines, excluding the synthetic terminal empty line. */
2305
+ blankLineCount?: number;
2306
+ /** Whether the source ends in its detected or explicit record delimiter. */
2307
+ endsWithRecordDelimiter?: boolean;
1666
2308
  map?: LooseObject<number>;
1667
2309
  separator?: string;
1668
2310
  batches?: number;
1669
2311
  batchSize?: number;
1670
2312
  encoding?: string | null;
1671
- format?: 'csv' | 'xlsx';
2313
+ format?: 'csv' | 'xlsx' | 'ndjson' | 'json-array' | 'xml';
2314
+ columns?: StorageTabularColumn[];
1672
2315
  bom?: boolean;
1673
2316
  delimiter?: string;
1674
2317
  recordDelimiter?: string;
1675
- quote?: string;
2318
+ /** One quote character (default double quote), or false for literal quotes/backslashes. */
2319
+ quote?: string | false;
2320
+ /** Maximum bytes in one logical CSV record; positive integer, default 64 MiB. Independent of read/callback size. */
2321
+ maxRecordBytes?: number;
2322
+ /** Quote escape character; ignored when quote is false. */
1676
2323
  escape?: string;
1677
2324
  rowCount?: number;
1678
- headers?: Array<{
1679
- key: string;
1680
- header: string;
1681
- }>;
2325
+ headers?: StorageTabularColumn[];
2326
+ /** Present when an XLSX/CSV/TSV upload session declared table columns. */
2327
+ schema?: StorageTabularSchemaResult;
1682
2328
  sheets?: Array<{
1683
2329
  name: string;
1684
2330
  state: 'visible' | 'hidden' | 'veryHidden';
1685
2331
  rowCount: number;
1686
2332
  batches: number;
1687
- columns: Array<{
1688
- key: string;
1689
- header: string;
1690
- }>;
2333
+ columns: StorageTabularColumn[];
1691
2334
  }>;
1692
2335
  }
1693
2336
  interface StorageStructuredFileDataPage {
1694
- format: 'csv' | 'xlsx';
2337
+ csvReport?: StorageCsvReadReport;
2338
+ format: 'csv' | 'xlsx' | 'ndjson' | 'json-array' | 'xml';
1695
2339
  sheet: string | null;
1696
- headers: Array<{
1697
- key: string;
1698
- header: string;
1699
- }>;
1700
- columns: Array<{
1701
- key: string;
1702
- header: string;
1703
- }>;
2340
+ headers: StorageTabularColumn[];
2341
+ columns: StorageTabularColumn[];
1704
2342
  rows: Array<LooseObject<any>>;
1705
2343
  rowCount: number;
1706
2344
  totalRows: number;
@@ -1709,18 +2347,6 @@ interface StorageStructuredFileDataPage {
1709
2347
  next: boolean;
1710
2348
  nextCursor: string | null;
1711
2349
  }
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
2350
  interface LoggedUser {
1725
2351
  userId: string;
1726
2352
  name: string;
@@ -1732,8 +2358,9 @@ interface LoggedUser {
1732
2358
  phone: string;
1733
2359
  groups: string[];
1734
2360
  roles: string[];
1735
- metaData: LooseObject<any>;
1736
- advancedData: LooseObject<any>;
2361
+ metadata: LooseObject<any>;
2362
+ metadataAdvanced: LooseObject<any>;
2363
+ /** Avatar storage entry ID; `/me` separately returns a signed download URL. */
1737
2364
  avatar: string;
1738
2365
  platformAccess: boolean;
1739
2366
  }
@@ -1781,9 +2408,6 @@ interface Input {
1781
2408
  // Events
1782
2409
  type?: string;
1783
2410
  message?: any;
1784
- // Execution context.
1785
- excludeLibs?: string[];
1786
- includeLibs?: string[];
1787
2411
  }
1788
2412
  type JsonValue = string | number | boolean | null | JsonValue[] | {
1789
2413
  [key: string]: JsonValue;
@@ -1822,8 +2446,33 @@ interface ResourceItem extends BaseProperties {
1822
2446
  interface DatabaseDataActionResponse {
1823
2447
  requested: number;
1824
2448
  success: number;
2449
+ /** Present with conditional upsert options: actual INSERT/UPDATE count. success includes intentionally skipped rows in this mode. */
2450
+ affected?: number;
1825
2451
  elapsed: number;
1826
- data: any[];
2452
+ /** Omitted when the write is called with `return: false`. */
2453
+ data?: any[];
2454
+ }
2455
+ interface DatabaseDataWriteOptions {
2456
+ /** Defaults to true. false omits row payloads to reduce response overhead. */
2457
+ return?: boolean;
2458
+ /** With return enabled, return only primary keys. */
2459
+ onlyKeys?: boolean;
2460
+ }
2461
+ interface DatabaseUpsertOptions extends DatabaseDataWriteOptions {
2462
+ /** Defaults to true. Set false for the legacy full-replacement conflict behavior. */
2463
+ patch?: boolean;
2464
+ /**
2465
+ * Defaults to false. true compares supplied non-primary-key fields.
2466
+ * include or exclude selects the compared fields; the lists are mutually exclusive.
2467
+ * A difference writes every supplied PATCH field. Changes only to excluded fields are skipped.
2468
+ * Omitted fields remain unchanged; JSON uses stored text equality, JSONB uses structural equality.
2469
+ */
2470
+ skipUnchanged?: boolean | {
2471
+ include?: string[];
2472
+ exclude?: string[];
2473
+ };
2474
+ /** Structured predicate on current target values. Controls updates only; missing rows are inserted independently. */
2475
+ filter?: SelectFilterNode;
1827
2476
  }
1828
2477
  interface TruncateDatabaseOptions {
1829
2478
  /**
@@ -1858,21 +2507,27 @@ interface CloneDatabaseCompletedResponse {
1858
2507
  message: string;
1859
2508
  }
1860
2509
  type CloneDatabaseResponse = CloneDatabaseAcceptedResponse | CloneDatabaseCompletedResponse;
1861
- type ExportDatabaseOptions = Omit<SelectInput, 'from'> & {
2510
+ type ExportDatabaseOptions = Omit<SelectInput, 'from' | 'debug'> & {
1862
2511
  /**
1863
2512
  * false waits for final storage persistence and returns the completed response.
1864
2513
  * true starts a background export and returns the accepted response.
1865
2514
  * Default is false.
1866
2515
  */
1867
2516
  async?: boolean;
2517
+ /** Suppress the export completion/failure System notification. Defaults to true for low-code; set false to opt in. */
2518
+ skipNotification?: boolean;
1868
2519
  /** Output format. CSV is the default. XLSX validates the effective row count before starting. */
1869
- format?: 'csv' | 'xlsx';
2520
+ format?: 'csv' | 'tsv' | 'ndjson' | 'xlsx';
1870
2521
  /** Omit for private user storage, use ROOT, or provide an accessible explorer folder id. */
1871
2522
  storageDestination?: 'ROOT' | string;
1872
2523
  /** Dedicated output name. Omit for an automatic database-and-timestamp name using the selected extension. */
1873
2524
  fileName?: string;
1874
2525
  /** Whether the output entry is restricted. Default is true. */
1875
2526
  restricted?: boolean;
2527
+ /** Explicit allowed group ids for the output entry when restricted is true. */
2528
+ groups?: string[];
2529
+ /** Explicit allowed user ids for the output entry when restricted is true. */
2530
+ users?: string[];
1876
2531
  /** CSV delimiter. Default is a comma. */
1877
2532
  delimiter?: string;
1878
2533
  boolType?: 'emoji' | 'number' | 'boolean';
@@ -1881,14 +2536,32 @@ type ExportDatabaseOptions = Omit<SelectInput, 'from'> & {
1881
2536
  /** Omit for the destination default, null for no expiration. */
1882
2537
  retention?: StorageRetentionInput;
1883
2538
  };
2539
+ type ImportDatabaseOptions = {
2540
+ /** Suppress System messages; defaults to true in low-code. */
2541
+ skipNotification?: boolean;
2542
+ storageEntryId: string;
2543
+ format: 'csv' | 'tsv' | 'ndjson' | 'xlsx';
2544
+ mode: 'insert' | 'upsert';
2545
+ onError: 'abort' | 'skipRow';
2546
+ mapping?: {
2547
+ columns: Record<string, {
2548
+ databaseName: string;
2549
+ column: string;
2550
+ } | null>;
2551
+ nullMode?: 'escaped' | 'literal' | 'empty' | 'nullText';
2552
+ };
2553
+ /** Skips manual approval after the same full validation; ambiguous mapping still needs review. */
2554
+ autoCommit?: boolean;
2555
+ };
1884
2556
  interface ExportDatabaseAcceptedResponse {
1885
2557
  accepted: true;
1886
2558
  databaseId: string;
1887
2559
  exportId: string;
2560
+ jobId: string;
1888
2561
  storageNamespace: string;
1889
2562
  parentStorageEntryId: string | null;
1890
2563
  fileName: string;
1891
- format: 'csv' | 'xlsx';
2564
+ format: 'csv' | 'tsv' | 'ndjson' | 'xlsx';
1892
2565
  restricted: boolean;
1893
2566
  message: string;
1894
2567
  }
@@ -1897,16 +2570,25 @@ interface ExportDatabaseCompletedResponse {
1897
2570
  completed: true;
1898
2571
  databaseId: string;
1899
2572
  exportId: string;
2573
+ jobId: string;
1900
2574
  storageNamespace: string;
1901
2575
  parentStorageEntryId: string | null;
1902
2576
  fileName: string;
1903
- format: 'csv' | 'xlsx';
2577
+ format: 'csv' | 'tsv' | 'ndjson' | 'xlsx';
1904
2578
  restricted: boolean;
1905
2579
  storageEntryId: string;
1906
2580
  storageEntry: StorageEntryView;
1907
2581
  message: string;
1908
2582
  }
1909
2583
  type ExportDatabaseResponse = ExportDatabaseAcceptedResponse | ExportDatabaseCompletedResponse;
2584
+ interface DatabaseCountQuery extends Omit<SelectInput, 'take' | 'skip' | 'count' | 'sort' | 'debug'> {
2585
+ }
2586
+ /** Omitted take or explicit null selects 2,000 rows; omission warns once per execution. */
2587
+ interface DatabaseBoundedReadQuery extends Omit<SelectInput, 'take'> {
2588
+ take?: number | null;
2589
+ }
2590
+ interface DatabaseRowQuery extends Omit<SelectInput, 'take' | 'skip' | 'count' | 'debug'> {
2591
+ }
1910
2592
  interface Context {
1911
2593
  requestId: string;
1912
2594
  date: Date;
@@ -1919,12 +2601,18 @@ interface Context {
1919
2601
  targetId?: string;
1920
2602
  }
1921
2603
  interface ComponentExecuteRequest {
2604
+ /** Defaults to local: fresh isolate on the same host. Remote uses the Sandbox service. */
2605
+ options?: {
2606
+ executionHost?: 'local' | 'remote';
2607
+ };
1922
2608
  /**
1923
2609
  * Active executable component id to run in an isolated child execution.
1924
2610
  */
1925
2611
  componentId: string;
1926
2612
  /**
1927
- * Optional exact component version. Omit to run the latest active version.
2613
+ * Optional exact component version. Omit to use the execution's active release.
2614
+ * A pinned Studio release rejects versions newer than its component binding.
2615
+ * Studio tests accept an explicit version only when it matches their captured source.
1928
2616
  */
1929
2617
  componentVersion?: number;
1930
2618
  /**
@@ -1970,26 +2658,22 @@ interface InstanceData {
1970
2658
  id: string;
1971
2659
  };
1972
2660
  }
1973
- interface SFTPClient {
1974
- host: string;
1975
- port: number;
1976
- username: string;
1977
- password?: string;
1978
- privateKey?: string;
1979
- passphrase?: string;
1980
- }
1981
2661
  interface StorageFileTargetRequest extends Omit<StorageUploadSessionInput, 'replaceStorageEntryId' | 'uploadMode'> {
1982
2662
  name: string;
1983
2663
  }
1984
- type SFTPFileSourceRef = {
2664
+ /** Storage destination for transport.sftpImport. Uses the same namespace and ACL contract as storage.* and HTTP targets. */
2665
+ type SFTPImportStorage = (StorageFileTargetRequest & {
2666
+ namespace?: string;
2667
+ }) | {
1985
2668
  storageEntryId: string;
2669
+ namespace?: string;
2670
+ replace: true;
1986
2671
  };
1987
- type SFTPFileTargetRef = {
2672
+ /** Existing Storage file used by transport.sftpExport. */
2673
+ interface SFTPExportStorage {
1988
2674
  storageEntryId: string;
1989
- replace?: true;
1990
- } | {
1991
- storage: StorageFileTargetRequest;
1992
- };
2675
+ namespace?: string;
2676
+ }
1993
2677
  interface JWTHeader {
1994
2678
  alg: string | 'HS256' | 'HS384' | 'HS512' | 'RS256' | 'RS384' | 'RS512' | 'ES256' | 'ES384' | 'ES512' | 'PS256' | 'PS384' | 'PS512' | 'none';
1995
2679
  typ?: string | undefined;
@@ -2103,7 +2787,7 @@ interface AgentPluginSkillConfig {
2103
2787
  format?: 'markdown';
2104
2788
  content: string;
2105
2789
  pluginIds?: string[];
2106
- maxPromptChars?: number;
2790
+ maxPromptTokens?: number;
2107
2791
  }
2108
2792
  interface AgentPluginPackageMetadata {
2109
2793
  avatarUrl?: string | null;
@@ -2124,7 +2808,7 @@ interface AgentPluginPackageConfig {
2124
2808
  content: string;
2125
2809
  pluginIds?: string[];
2126
2810
  metadata?: AgentPluginPackageMetadata;
2127
- maxPromptChars?: number;
2811
+ maxPromptTokens?: number;
2128
2812
  }
2129
2813
  interface AgentPluginConfig {
2130
2814
  contractVersion?: 1;
@@ -2203,12 +2887,22 @@ interface AgentConfig {
2203
2887
  workMode?: AgentWorkMode;
2204
2888
  persona?: AgentPersona;
2205
2889
  systemInstructions?: string;
2890
+ /** Profile for new Agent threads; defaults to platform. Mandatory Agent instructions and existing tool/plugin admission remain authoritative. */
2891
+ contextMode?: 'platform' | 'minimal';
2892
+ /** Final-answer contract for new Agent threads; defaults to text. Existing threads keep their saved contract on continuation and Resume. */
2893
+ responseFormat?: SwaggerAssistantResponseFormatDto;
2894
+ /** Persistent Agent Memory shared with memory tools and included in every instruction packet; at most 20,000 o200k_base tokens. */
2895
+ memory?: string;
2206
2896
  memoryPolicy?: AgentMemoryPolicy;
2207
2897
  release?: AgentReleaseConfig;
2208
2898
  automation?: AgentAutomationPolicyConfig;
2209
2899
  cheapTurn?: AgentCheapTurnPolicy;
2210
2900
  toolNames?: string[];
2211
2901
  pluginIds?: string[];
2902
+ /** Attached or inherited default plugins to preload; at most 64 IDs, all within the effective Agent access set. */
2903
+ eagerPluginIds?: string[];
2904
+ /** Selected terminals narrow the historical execution service account's current ACL; at most 64 IDs, empty permits none. */
2905
+ agentTerminalIds?: string[];
2212
2906
  plugins?: AgentPluginConfig[];
2213
2907
  maxActiveRootRuns?: number;
2214
2908
  maxChildRuns?: number;
@@ -2306,7 +3000,8 @@ interface AgentRun {
2306
3000
  lastHeartbeatAt?: Date | string | null;
2307
3001
  checkpointSummary?: string | null;
2308
3002
  state?: Record<string, any>;
2309
- result?: Record<string, any> | null;
3003
+ /** Complete validated answer is in output; summary is bounded. Additional runtime result fields remain available. */
3004
+ result?: (Record<string, any> & SwaggerAgentRunResultDto) | null;
2310
3005
  error?: Record<string, any> | null;
2311
3006
  createdBy?: string;
2312
3007
  createdAt?: Date | string;
@@ -2442,6 +3137,12 @@ interface AssistantActionRequired {
2442
3137
  planningTransition?: AssistantPlanningTransition | null;
2443
3138
  }
2444
3139
  interface AssistantThread {
3140
+ /** conversation for ordinary chats; response for retained technical results hidden from the default conversation list. */
3141
+ kind?: 'conversation' | 'response';
3142
+ /** Immutable creation-time task contract, preserved by continuation, Resume and same-owner fork. */
3143
+ instructions?: string;
3144
+ contextMode?: 'platform' | 'minimal';
3145
+ responseFormat?: SwaggerAssistantResponseFormatDto;
2445
3146
  assistantThreadId: string;
2446
3147
  title: string;
2447
3148
  status: string;
@@ -2464,7 +3165,6 @@ interface AssistantThread {
2464
3165
  actionRequired?: AssistantActionRequired | null;
2465
3166
  executionPlan?: AssistantPublicExecutionPlan | null;
2466
3167
  workerProgress?: AssistantWorkerProgress[] | null;
2467
- goal?: AssistantThreadGoal | null;
2468
3168
  share?: AssistantThreadShare | null;
2469
3169
  createdBy?: string;
2470
3170
  createdAt?: Date | string;
@@ -2474,23 +3174,6 @@ interface AssistantThread {
2474
3174
  deletedAt?: Date | string | null;
2475
3175
  version?: number;
2476
3176
  }
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
3177
  interface AssistantMessage {
2495
3178
  assistantMessageId: string;
2496
3179
  assistantThreadId: string;
@@ -2507,7 +3190,6 @@ interface AssistantThreadState {
2507
3190
  actionRequired: AssistantActionRequired | null;
2508
3191
  executionPlan: AssistantPublicExecutionPlan | null;
2509
3192
  workerProgress?: AssistantWorkerProgress[] | null;
2510
- goal?: AssistantThreadGoal | null;
2511
3193
  }
2512
3194
  interface AssistantThreadShare {
2513
3195
  shareId: string;
@@ -2531,6 +3213,8 @@ interface AssistantSharedThreadResponse {
2531
3213
  }
2532
3214
  interface AssistantThreadResponse {
2533
3215
  thread: AssistantThread;
3216
+ /** Validated terminal answer for explicitly configured thread contracts. Absent while approval/clarification is required. */
3217
+ output?: SwaggerAssistantOutputDto;
2534
3218
  message?: AssistantMessage | null;
2535
3219
  assistantMessage?: AssistantMessage | null;
2536
3220
  noticeMessages?: AssistantMessage[];
@@ -2544,6 +3228,225 @@ interface AssistantThreadCompactionRequest {
2544
3228
  keepContext?: boolean;
2545
3229
  content?: string;
2546
3230
  }
3231
+ // ApiInterface
3232
+ /** Owner selection; omitted means instance. User scope uses the verified execution account. */
3233
+ interface SecretScopeOptions {
3234
+ scope?: 'instance' | 'user';
3235
+ }
3236
+ /** Null or omission selects NOW at write time. Numbers are Unix epoch milliseconds. */
3237
+ type SecretDate = string | Date | number | null;
3238
+ interface SecretRotateOptions extends SecretScopeOptions {
3239
+ validFrom?: SecretDate;
3240
+ }
3241
+ interface SecretGetOptions extends SecretRotateOptions {
3242
+ /** Exact validFrom timestamp. If both selectors are supplied they must agree. */
3243
+ version?: SecretDate;
3244
+ }
3245
+ interface SecretDeleteOptions extends SecretGetOptions {
3246
+ }
3247
+ interface SecretRevisionListOptions extends SecretScopeOptions {
3248
+ cursor?: string;
3249
+ limit?: number;
3250
+ }
3251
+ interface SecretProperties {
3252
+ category?: string | null;
3253
+ description?: string | null;
3254
+ /** Replacement JSON object, at most 16 KiB and 64 top-level keys. Backend keys are reserved. */
3255
+ metadata?: Record<string, unknown>;
3256
+ }
3257
+ interface SecretCreateInput extends SecretProperties {
3258
+ /** Nonempty text, at most 65,536 characters. */
3259
+ value: string;
3260
+ validFrom?: SecretDate;
3261
+ enabled?: boolean;
3262
+ }
3263
+ interface SecretRotateInput {
3264
+ value: string;
3265
+ }
3266
+ interface SecretUpdateInput extends SecretProperties {
3267
+ /** Parent metadata counter, distinct from a revision's timestamp version. */
3268
+ version: number;
3269
+ }
3270
+ /** Unified metadata-only parent. */
3271
+ interface Secret {
3272
+ name: string;
3273
+ scope: 'instance' | 'user';
3274
+ category: string | null;
3275
+ description: string | null;
3276
+ metadata: Record<string, unknown>;
3277
+ version: number;
3278
+ createdAt: string;
3279
+ updatedAt: string;
3280
+ }
3281
+ interface SecretRevision {
3282
+ name: string;
3283
+ scope: 'instance' | 'user';
3284
+ /** Stable version identity: the unique validFrom timestamp, normalized to ISO. */
3285
+ version: string;
3286
+ enabled: boolean;
3287
+ validFrom: string;
3288
+ createdAt: string;
3289
+ updatedAt: string;
3290
+ }
3291
+ interface SecretWithRevision extends Secret {
3292
+ revision: SecretRevision;
3293
+ }
3294
+ interface SecretValueRevision extends SecretRevision {
3295
+ value: string;
3296
+ }
3297
+ interface SecretWithValue extends Secret {
3298
+ revision: SecretValueRevision;
3299
+ }
3300
+ interface SecretRevisionPage {
3301
+ items: SecretRevision[];
3302
+ nextCursor: string | null;
3303
+ }
3304
+ interface VaultIntegrationConfig {
3305
+ resourceUrl: string;
3306
+ scopes: string[];
3307
+ issuer?: string;
3308
+ clientId?: string;
3309
+ clientSecret?: string;
3310
+ tenantId?: string;
3311
+ metadataScopeAliases?: Record<string, string>;
3312
+ }
3313
+ interface VaultConnectIntegrationInput extends VaultIntegrationConfig {
3314
+ /** Null creates a definition; otherwise use its exact revision from getIntegrationMetadata. */
3315
+ expectedRevision: string | null;
3316
+ }
3317
+ interface VaultAccessToken {
3318
+ accessToken: string;
3319
+ expiresAt: string;
3320
+ tokenType: 'Bearer';
3321
+ }
3322
+ interface VaultIntegrationMetadata {
3323
+ name: string;
3324
+ scope: 'instance' | 'user';
3325
+ revision: string | null;
3326
+ resourceUrl: string;
3327
+ issuer: string;
3328
+ scopes: string[];
3329
+ tenantId: string | null;
3330
+ metadataScopeAliases: Record<string, string>;
3331
+ clientId: string | null;
3332
+ hasClientSecret: boolean;
3333
+ registrationMode: 'dynamic_public' | 'byo_public' | 'byo_confidential';
3334
+ authorizationEndpoint: string;
3335
+ registrationEndpoint: string | null;
3336
+ }
3337
+ interface VaultIntegrationDiscovery {
3338
+ issuers: string[];
3339
+ requiresIssuerSelection: boolean;
3340
+ supportedScopes: string[];
3341
+ issuer?: string;
3342
+ authorizationEndpoint?: string;
3343
+ registrationEndpoint?: string | null;
3344
+ registrationMode?: 'dynamic_public' | 'byo_public' | 'byo_confidential';
3345
+ requiresClientId?: boolean;
3346
+ redirectUri?: string;
3347
+ }
3348
+ interface VaultIntegrationConnectResult {
3349
+ name: string;
3350
+ scope: 'instance' | 'user';
3351
+ revision: string;
3352
+ authorizationUrl: string;
3353
+ }
3354
+ /** Native Vault manager; one contract for instance and verified user ownership.
3355
+ * Instance access requires Secret roles and creator ownership or an administrator.
3356
+ * Secret values return only through get; getAccessToken returns an integration token. Automatic diagnostic previews suppress Secret values.
3357
+ * Writes with readOnly: true throw READ_ONLY_OPERATION_FORBIDDEN before performing the operation.
3358
+ * External provider credentials and OAuth connections have their own lifecycles.
3359
+ */
3360
+ /** Unique service-account name or ID; explicit selectors avoid ambiguity. */
3361
+ type ServiceAccountRef = string | {
3362
+ id: string;
3363
+ } | {
3364
+ name: string;
3365
+ };
3366
+ interface ServiceAccountRecord {
3367
+ userId: string;
3368
+ name: string;
3369
+ mail: string;
3370
+ serviceAccount: true;
3371
+ status: number;
3372
+ version: number;
3373
+ platformAccess: boolean;
3374
+ access: {
3375
+ restricted: boolean;
3376
+ users: Array<{
3377
+ userId: string;
3378
+ mail: string;
3379
+ name: string;
3380
+ }>;
3381
+ groups: Array<{
3382
+ groupId: string;
3383
+ name: string;
3384
+ }>;
3385
+ };
3386
+ memberships: {
3387
+ groups: string[];
3388
+ roleGroups: string[];
3389
+ };
3390
+ metadata: Record<string, any>;
3391
+ metadataAdvanced: Record<string, any>;
3392
+ }
3393
+ interface ServiceAccountKey {
3394
+ userKeyId: string;
3395
+ name: string;
3396
+ version: number;
3397
+ /** Masked credential label; never the usable credential. */
3398
+ key?: string;
3399
+ restricted: boolean;
3400
+ whitelist?: ServiceAccountKeyCreateInput['whitelist'];
3401
+ expireAt?: Date | null;
3402
+ metadata?: Record<string, any>;
3403
+ deletedAt?: Date | null;
3404
+ createdAt?: Date;
3405
+ lastUpdateAt?: Date;
3406
+ rotatedFromUserKeyId?: string | null;
3407
+ }
3408
+ /** Immutable credentials are revealed once by create/rotate only. */
3409
+ interface ServiceAccountKeyCreated extends ServiceAccountKey {
3410
+ secret: string;
3411
+ }
3412
+ interface ServiceAccountKeyRotated {
3413
+ newKey: ServiceAccountKeyCreated;
3414
+ previousKey: ServiceAccountKey;
3415
+ }
3416
+ interface RevoServiceAccount {
3417
+ get(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3418
+ list(query?: ServiceAccountQuery): Promise<CollectionResult<ServiceAccountRecord>>;
3419
+ create(input: ServiceAccountCreateInput): Promise<ServiceAccountRecord>;
3420
+ update(ref: ServiceAccountRef, input: ServiceAccountUpdateInput): Promise<ServiceAccountRecord>;
3421
+ delete(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3422
+ activate(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3423
+ disable(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3424
+ restore(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3425
+ enablePlatformAccess(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3426
+ disablePlatformAccess(ref: ServiceAccountRef): Promise<ServiceAccountRecord>;
3427
+ getKeys(ref: ServiceAccountRef, query?: ServiceAccountQuery): Promise<CollectionResult<ServiceAccountKey>>;
3428
+ getKey(ref: ServiceAccountRef, userKeyId: string): Promise<ServiceAccountKey>;
3429
+ createKey(ref: ServiceAccountRef, input: ServiceAccountKeyCreateInput): Promise<ServiceAccountKeyCreated>;
3430
+ updateKey(ref: ServiceAccountRef, userKeyId: string, input: ServiceAccountKeyUpdateInput): Promise<ServiceAccountKey>;
3431
+ rotateKey(ref: ServiceAccountRef, userKeyId: string, input: ServiceAccountKeyRotateInput): Promise<ServiceAccountKeyRotated>;
3432
+ revokeKey(ref: ServiceAccountRef, userKeyId: string): Promise<ServiceAccountKey>;
3433
+ }
3434
+ interface RevoVault$1 {
3435
+ get(name: string, options?: SecretGetOptions): Promise<SecretWithValue>;
3436
+ create(name: string, data: SecretCreateInput, options?: SecretScopeOptions): Promise<Secret | null>;
3437
+ update(name: string, data: SecretUpdateInput, options?: SecretScopeOptions): Promise<Secret | null>;
3438
+ delete(name: string, options?: SecretDeleteOptions): Promise<void | null>;
3439
+ rotate(name: string, data: SecretRotateInput, options?: SecretRotateOptions): Promise<SecretWithRevision | null>;
3440
+ listRevisions(name: string, options?: SecretRevisionListOptions): Promise<SecretRevisionPage>;
3441
+ getAccessToken(name: string, options?: SecretScopeOptions): Promise<VaultAccessToken>;
3442
+ getIntegrationMetadata(name: string, options?: SecretScopeOptions): Promise<VaultIntegrationMetadata>;
3443
+ discoverIntegration(name: string, data: VaultIntegrationConfig, options?: SecretScopeOptions): Promise<VaultIntegrationDiscovery>;
3444
+ connectIntegration(name: string, data: VaultConnectIntegrationInput, options?: SecretScopeOptions): Promise<VaultIntegrationConnectResult | null>;
3445
+ disconnectIntegration(name: string, options?: SecretScopeOptions): Promise<{
3446
+ name: string;
3447
+ disabled: boolean;
3448
+ } | null>;
3449
+ }
2547
3450
  interface RevoApi {
2548
3451
  createDatabase(data: DatabaseCreateInput): Promise<Database>;
2549
3452
  cloneDatabase<TAsync extends boolean = false>(name: string, options?: DatabaseCloneInput & {
@@ -2552,21 +3455,43 @@ interface RevoApi {
2552
3455
  exportDatabase<TAsync extends boolean = false>(name: string, options?: ExportDatabaseOptions & {
2553
3456
  async?: TAsync;
2554
3457
  }): 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>;
3458
+ startDatabaseOperation(name: string, options: Omit<DatabaseOperationInput, 'databaseName'>): Promise<{
3459
+ accepted: true;
3460
+ jobId: string;
3461
+ status: string;
3462
+ }>;
3463
+ importDatabase(name: string, options: ImportDatabaseOptions): Promise<{
3464
+ importId: string;
3465
+ jobId: string;
3466
+ status: string;
3467
+ }>;
3468
+ updateDatabaseImportMapping(importId: string, mapping: NonNullable<ImportDatabaseOptions['mapping']>): Promise<{
3469
+ importId: string;
3470
+ status: string;
3471
+ }>;
3472
+ commitDatabaseImport(importId: string): Promise<{
3473
+ importId: string;
3474
+ status: string;
3475
+ }>;
2558
3476
  updateDatabase(name: string, data: DatabaseUpdateInput): Promise<Database>;
2559
3477
  deleteDatabase(name: string): Promise<void>;
2560
3478
  restoreDatabase(name: string): Promise<void>;
2561
3479
  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>>;
3480
+ getDatabaseData<T = any>(name: string, request: DatabaseBoundedReadQuery & {
3481
+ debug: true;
3482
+ }): Promise<DatabaseExplainResult>;
3483
+ getDatabaseData<T = any>(name: string, request?: DatabaseBoundedReadQuery & {
3484
+ debug?: false;
3485
+ }): Promise<GetDatabaseDataResponse<T>>;
3486
+ getDatabaseData<T = any>(name: string, request: DatabaseBoundedReadQuery): Promise<GetDatabaseDataResponse<T> | DatabaseExplainResult>;
3487
+ getDatabaseDataRow<T = any>(name: string, query: DatabaseRowQuery): Promise<T | null>;
3488
+ countDatabase(name: string, query?: DatabaseCountQuery): Promise<number>;
2564
3489
  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>;
3490
+ insertDatabaseData(name: string, data: LooseObject<any>[], options?: DatabaseDataWriteOptions): Promise<DatabaseDataActionResponse>;
3491
+ upsertDatabaseData(name: string, data: LooseObject<any>[], options?: DatabaseUpsertOptions): Promise<DatabaseDataActionResponse>;
2567
3492
  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?: {
3493
+ deleteDatabaseData(name: string, data: LooseObject<any>[]): Promise<any>;
3494
+ updateDatabaseDataRequest(name: string, request: DatabaseMutationRequest, payload: DatabaseUpdateData, options?: {
2570
3495
  return?: boolean;
2571
3496
  onlyKeys?: boolean;
2572
3497
  }): Promise<{
@@ -2585,15 +3510,13 @@ interface RevoApi {
2585
3510
  queryDatabase(query: string, params?: any[]): Promise<any>;
2586
3511
  currentUser(): LoggedUser;
2587
3512
  isDebug(): boolean;
2588
- disableDebug(): void;
2589
- enableDebug(): void;
2590
3513
  getCache(key: string): any;
2591
- setCache(key: string, value: any): void;
3514
+ setCache(key: string, value: any, options?: {
3515
+ reference?: boolean;
3516
+ }): void;
2592
3517
  getContext(): Context;
2593
3518
  getErrors(): ProcessLog[];
2594
- getWarnings(): ProcessLog[];
2595
3519
  getExecutionId(): string;
2596
- getLogs(): LooseObject<any>[];
2597
3520
  getOperationId(): string;
2598
3521
  executeComponent<T = LooseObject<any>>(request: ComponentExecuteRequest): Promise<ComponentExecuteResult<T>>;
2599
3522
  input(name?: string): Input;
@@ -2601,12 +3524,8 @@ interface RevoApi {
2601
3524
  exit(): void;
2602
3525
  throw(code: number, body?: any): void;
2603
3526
  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>;
3527
+ getInstanceData(dataSource: 'Users' | 'Groups' | 'RoleGroups' | 'Keys' | 'Secrets' | 'SecretsData' | 'Templates' | 'Events' | 'Schedule' | 'Jobs' | 'Webhooks' | 'Components' | 'Logs' | 'EventsHistory' | 'Endpoints' | 'Databases' | 'DatabaseData', request?: InstanceData): Promise<any>;
2605
3528
  getInstanceDetails(): InstanceDetails;
2606
- getSecret(name: string): Promise<string>;
2607
- getSecrets(name: string[]): Promise<{
2608
- [key: string]: string;
2609
- }>;
2610
3529
  publishMessage(channel: string, message: any): Promise<void>;
2611
3530
  getInstanceCache(key: string): Promise<any>;
2612
3531
  setInstanceCache(key: string, value: any, seconds?: number): Promise<void>;
@@ -2624,24 +3543,45 @@ interface RevoApi {
2624
3543
  acquireIdempotencyKey(key: string, ttl: number, value?: any): Promise<boolean>;
2625
3544
  getIdempotencyKey(key: string): Promise<any>;
2626
3545
  releaseIdempotencyKey(key: string): Promise<void>;
2627
- concurrencyLimit(key: string, limit: number, ttl: number): Promise<boolean>;
3546
+ concurrencyLimit(key: string, limit: number, ttl: number, leaseOwnerId?: string): Promise<boolean>;
2628
3547
  rateLimit(key: string, limit: number, ttl: number): Promise<boolean>;
2629
3548
  releaseRateLimit(key: string): Promise<void>;
2630
- releaseConcurrencyLimit(key: string): Promise<void>;
3549
+ releaseConcurrencyLimit(key: string, leaseOwnerId?: string): Promise<void>;
2631
3550
  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>;
3551
+ triggerTarget(targetType: ExecutionTargetType, targetId: string, input?: Record<string, JsonValue>, options?: AutomationScheduleOptions): Promise<string>;
3552
+ triggerJob(templateIdOrName: string, templateInputs?: Record<string, JsonValue>, options?: AutomationScheduleOptions): Promise<string>;
2634
3553
  triggerWebhook(webhook: WebhookInput, options?: AutomationScheduleOptions): Promise<Webhook>;
3554
+ cancelJobs(input: JobsBulkInput): Promise<AutomationOperation>;
3555
+ retryJobs(input: JobsBulkInput): Promise<AutomationOperation>;
3556
+ deleteJobs(input: JobsBulkInput): Promise<AutomationOperation>;
3557
+ cancelWebhooks(input: WebhooksBulkInput): Promise<AutomationOperation>;
3558
+ retryWebhooks(input: WebhooksBulkInput): Promise<AutomationOperation>;
3559
+ deleteWebhooks(input: WebhooksBulkInput): Promise<AutomationOperation>;
3560
+ previewAutomationOperation(resource: 'jobs' | 'webhooks', action: 'cancel' | 'retry' | 'delete', input: JobsBulkInput | WebhooksBulkInput): Promise<{
3561
+ matched: number;
3562
+ eligible: number;
3563
+ }>;
3564
+ getAutomationOperation(operationId: string): Promise<AutomationOperation>;
3565
+ getAutomationOperationItems(operationId: string, after?: string): Promise<{
3566
+ data: Array<{
3567
+ resourceId: string;
3568
+ status: string;
3569
+ resultId: string | null;
3570
+ errorCode: string | null;
3571
+ }>;
3572
+ nextCursor: string | null;
3573
+ }>;
2635
3574
  httpCall(config: HttpRequestInterface, options: HttpRequestOptionsInterface & {
2636
3575
  responseType: 'storage';
2637
3576
  target: HttpStorageTargetRef;
2638
3577
  timeout?: number;
2639
- proxy?: false;
3578
+ proxy?: boolean;
2640
3579
  }): Promise<{
2641
3580
  status: number;
2642
3581
  statusText: string;
2643
3582
  time: number;
2644
- headers: LooseObject<string>;
3583
+ headers: LooseObject<string | string[]>;
3584
+ revo?: HttpRevoResponseScope;
2645
3585
  request: {
2646
3586
  config: HttpRequestInterface;
2647
3587
  options: HttpRequestOptionsInterface;
@@ -2663,7 +3603,8 @@ interface RevoApi {
2663
3603
  status: number;
2664
3604
  statusText: string;
2665
3605
  time: number;
2666
- headers: LooseObject<string>;
3606
+ headers: LooseObject<string | string[]>;
3607
+ revo?: HttpRevoResponseScope;
2667
3608
  data: any;
2668
3609
  storage?: {
2669
3610
  session: StorageUploadSession;
@@ -2679,43 +3620,74 @@ interface RevoApi {
2679
3620
  };
2680
3621
  };
2681
3622
  }>;
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
3623
  }
2689
3624
  interface RevoStorage {
2690
3625
  explore(query?: StorageExploreRequest): Promise<StorageExploreResult>;
3626
+ explore(namespace: string, query?: StorageExploreRequest): Promise<StorageExploreResult>;
2691
3627
  resolveFolderPath(path: string): Promise<StorageEntryView>;
3628
+ resolveFolderPath(path: string, namespace: string): Promise<StorageEntryView>;
2692
3629
  ensureFolderPath(path: string, options?: StorageEnsureFolderPathOptions): Promise<StorageEntryView>;
3630
+ ensureFolderPath(path: string, options: StorageEnsureFolderPathOptions | undefined, namespace: string): Promise<StorageEntryView>;
2693
3631
  getFile(storageEntryId: string, includeDeleted?: boolean): Promise<StorageEntryView>;
3632
+ getFile(namespace: string, storageEntryId: string, includeDeleted?: boolean): Promise<StorageEntryView>;
2694
3633
  getFileData(storageEntryId: string, options?: StorageFileReadOptions): Promise<StorageStructuredFileDataPage | string[] | string>;
3634
+ getFileData(namespace: string, storageEntryId: string, options?: StorageFileReadOptions): Promise<StorageStructuredFileDataPage | string[] | string>;
2695
3635
  getFileStats(storageEntryId: string, options?: StorageFileStatsOptions): Promise<StorageFileStats>;
3636
+ getFileStats(namespace: string, storageEntryId: string, options?: StorageFileStatsOptions): Promise<StorageFileStats>;
2696
3637
  getEntry(storageEntryId: string, includeDeleted?: boolean): Promise<StorageEntryView>;
3638
+ getEntry(namespace: string, storageEntryId: string, includeDeleted?: boolean): Promise<StorageEntryView>;
2697
3639
  createFolder(data: StorageFolderInput): Promise<StorageEntryView>;
2698
- putObject(data: StoragePutObjectInput): Promise<StorageEntryView>;
3640
+ createFolder(namespace: string, data: StorageFolderInput): Promise<StorageEntryView>;
3641
+ putObject(data: StorageBinaryPutObjectInput): Promise<StorageEntryView>;
3642
+ putObject(namespace: string, data: StorageBinaryPutObjectInput): Promise<StorageEntryView>;
2699
3643
  createUploadSession(data: StorageUploadSessionInput): Promise<{
2700
3644
  session: StorageUploadSession;
2701
3645
  upload: StorageUploadTarget;
2702
3646
  }>;
3647
+ createUploadSession(namespace: string, data: StorageUploadSessionInput): Promise<{
3648
+ session: StorageUploadSession;
3649
+ upload: StorageUploadTarget;
3650
+ }>;
2703
3651
  extendUploadSession(storageUploadSessionId: string): Promise<StorageUploadSession>;
3652
+ extendUploadSession(namespace: string, storageUploadSessionId: string): Promise<StorageUploadSession>;
2704
3653
  getUploadSession(storageUploadSessionId: string): Promise<StorageUploadSessionView>;
2705
- uploadPart(storageUploadSessionId: string, partNumber: number | StorageUploadPartInput, data?: StorageUploadPartInput): Promise<StorageUploadPartResult>;
3654
+ getUploadSession(namespace: string, storageUploadSessionId: string): Promise<StorageUploadSessionView>;
3655
+ uploadPart(storageUploadSessionId: string, partNumber: number | StorageBinaryUploadPartInput, data?: StorageBinaryUploadPartInput): Promise<StorageUploadPartResult>;
3656
+ uploadPart(namespace: string, storageUploadSessionId: string, partNumber: number | StorageBinaryUploadPartInput, data?: StorageBinaryUploadPartInput): Promise<StorageUploadPartResult>;
2706
3657
  finalizeUploadSession(storageUploadSessionId: string, data?: StorageUploadSessionFinalizeInput): Promise<{
2707
3658
  session: StorageUploadSession;
2708
3659
  entry: StorageEntryView;
2709
3660
  fileStats?: StorageFileStats;
2710
3661
  }>;
3662
+ finalizeUploadSession(namespace: string, storageUploadSessionId: string, data?: StorageUploadSessionFinalizeInput): Promise<{
3663
+ session: StorageUploadSession;
3664
+ entry: StorageEntryView;
3665
+ fileStats?: StorageFileStats;
3666
+ }>;
2711
3667
  abortUploadSession(storageUploadSessionId: string): Promise<StorageUploadSession>;
3668
+ abortUploadSession(namespace: string, storageUploadSessionId: string): Promise<StorageUploadSession>;
2712
3669
  updateEntry(storageEntryId: string, data: StorageEntryUpdateInput): Promise<StorageEntryView>;
3670
+ updateEntry(namespace: string, storageEntryId: string, data: StorageEntryUpdateInput): Promise<StorageEntryView>;
2713
3671
  moveEntry(storageEntryId: string, data: StorageEntryMoveInput): Promise<StorageEntryView>;
3672
+ moveEntry(namespace: string, storageEntryId: string, data: StorageEntryMoveInput): Promise<StorageEntryView>;
2714
3673
  archiveEntry(storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
3674
+ archiveEntry(namespace: string, storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
2715
3675
  restoreEntry(storageEntryId: string, data: StorageRestoreInput): Promise<StorageEntryView>;
3676
+ restoreEntry(namespace: string, storageEntryId: string, data: StorageRestoreInput): Promise<StorageEntryView>;
2716
3677
  deleteEntry(storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
2717
- getDownload(storageEntryId: string, preview?: boolean): Promise<StorageDownload>;
2718
- getText(storageEntryId: string, options?: StorageTextReadOptions): Promise<StorageTextContent>;
3678
+ deleteEntry(namespace: string, storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
3679
+ getDownload(storageEntryId: string, preview?: boolean, ttlSeconds?: number): Promise<StorageDownload>;
3680
+ getDownload(namespace: string, storageEntryId: string, preview?: boolean, ttlSeconds?: number): Promise<StorageDownload>;
3681
+ getDocument(storageEntryId: string, options?: StorageDocumentReadOptions): Promise<StorageDocument>;
3682
+ getDocument(namespace: string, storageEntryId: string, options?: StorageDocumentReadOptions): Promise<StorageDocument>;
3683
+ }
3684
+ interface RevoTransport {
3685
+ sftpImport(path: string, storage: SFTPImportStorage, secretNameOrId: string): Promise<{
3686
+ session: StorageUploadSession;
3687
+ entry: StorageEntryView;
3688
+ }>;
3689
+ sftpExport(path: string, storage: SFTPExportStorage, secretNameOrId: string): Promise<void>;
3690
+ sftpCommands(commands: any[], secretNameOrId: string): Promise<any>;
2719
3691
  }
2720
3692
  interface RevoAgents {
2721
3693
  list(): Promise<Agent[]>;
@@ -2739,16 +3711,11 @@ interface RevoAgents {
2739
3711
  tickRun(agentRunId: string): Promise<AgentRun>;
2740
3712
  cancelRun(agentRunId: string, data?: AgentRunCancelInput): Promise<AgentRun>;
2741
3713
  reconcileRuns(): Promise<any>;
2742
- listThreads(query?: Record<string, any>): Promise<CollectionResult<AssistantThread>>;
3714
+ listThreads(query?: AssistantThreadQuery): Promise<CollectionResult<AssistantThread>>;
2743
3715
  getThread(assistantThreadId: string, options?: {
2744
3716
  hideDeleted?: boolean;
2745
3717
  }): Promise<AssistantThread>;
2746
3718
  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
3719
  getThreadShare(assistantThreadId: string): Promise<AssistantThreadShare | null>;
2753
3720
  enableThreadShare(assistantThreadId: string): Promise<AssistantThreadShare>;
2754
3721
  disableThreadShare(assistantThreadId: string): Promise<AssistantThreadShare>;
@@ -2758,6 +3725,7 @@ interface RevoAgents {
2758
3725
  getSharedThreadMessageArtifact(shareId: string, assistantMessageId: string, artifactId: string): Promise<Record<string, any>>;
2759
3726
  forkSharedThreadMessage(shareId: string, assistantMessageId: string, data?: AssistantForkMessageInput): Promise<AssistantThreadResponse>;
2760
3727
  createThread(data: AssistantMessageInput): Promise<AssistantThreadResponse>;
3728
+ createResponse(data: AssistantResponseInput): Promise<AssistantThreadResponse>;
2761
3729
  deleteThread(assistantThreadId: string): Promise<void>;
2762
3730
  restoreThread(assistantThreadId: string): Promise<void>;
2763
3731
  listThreadMessages(assistantThreadId: string, query?: Record<string, any>): Promise<CollectionResult<AssistantMessage>>;
@@ -2774,8 +3742,8 @@ interface RevoAgents {
2774
3742
  }
2775
3743
  interface RevoUtils {
2776
3744
  sleep(ms: number): Promise<void>;
2777
- aesDecrypt(encrypted: string, passphrase: string): string;
2778
- aesEncrypt(payload: string, passphrase: string): string;
3745
+ aesDecrypt(encrypted: string, passphrase: string): Promise<string>;
3746
+ aesEncrypt(payload: string, passphrase: string): Promise<string>;
2779
3747
  compareHash(password: string | undefined, hash: string | undefined): Promise<boolean>;
2780
3748
  isBase64(input: any): boolean;
2781
3749
  decodeBase64(base64String: string): string;
@@ -2801,7 +3769,7 @@ interface RevoUtils {
2801
3769
  randomInt(min?: number, max?: number): number;
2802
3770
  randomString(length?: number, alphabet?: string): string;
2803
3771
  otp(length?: number): string;
2804
- validate(payload: any, schema: ValidatorSchemaInput): ValidationResult<any>;
3772
+ validate(payload: any, schema: ValidatorSchemaInput): Promise<ValidationResult<any>>;
2805
3773
  jwtDecode(token: string, options?: {
2806
3774
  complete?: boolean;
2807
3775
  json?: boolean;
@@ -2843,18 +3811,27 @@ interface RevoUtils {
2843
3811
  maxAge?: string | number;
2844
3812
  allowInvalidAsymmetricKeyTypes?: boolean;
2845
3813
  }): any;
2846
- rsaDecrypt(privateKey: string, payload: string, passphrase?: string): string;
2847
- rsaEncrypt(publicKey: string, payload: string): string;
3814
+ rsaDecrypt(privateKey: string, payload: string, passphrase?: string): Promise<string>;
3815
+ rsaEncrypt(publicKey: string, payload: string): Promise<string>;
2848
3816
  rsaGeneratePair(config?: {
2849
3817
  modulusLength?: number;
2850
3818
  passphrase?: string;
2851
- }): {
3819
+ }): Promise<{
2852
3820
  publicKey: string;
2853
3821
  privateKey: string;
2854
- };
2855
- rsaSign(privateKey: string, payload: string, passphrase?: string): string;
2856
- rsaVerify(publicKey: string, payload: string, signature: string): boolean;
3822
+ }>;
3823
+ rsaSign(privateKey: string, payload: string, passphrase?: string): Promise<string>;
3824
+ rsaVerify(publicKey: string, payload: string, signature: string): Promise<boolean>;
2857
3825
  }
3826
+ /** Low-code byte payloads; REST JSON callers retain the base64 option. */
3827
+ /** Text arrays retain their existing joining rules; bytes are snapshotted before asynchronous upload. */
3828
+ type StorageBinaryPutObjectInput = Omit<StoragePutObjectInput, 'data'> & {
3829
+ data: string | string[] | Uint8Array | Buffer;
3830
+ };
3831
+ /** Bytes need no base64 encoding. One call remains one logical part, including retry/checksum/finalize. */
3832
+ type StorageBinaryUploadPartInput = Omit<StorageUploadPartInput, 'data'> & {
3833
+ data?: string | string[] | Uint8Array | Buffer;
3834
+ };
2858
3835
  /**
2859
3836
  * Source language for an ad-hoc low-code execution.
2860
3837
  */
@@ -2862,6 +3839,8 @@ type LowCodeLanguage = 'javascript' | 'typescript';
2862
3839
  interface LowCodeExecuteOptions {
2863
3840
  /** Defaults to TypeScript. */
2864
3841
  language?: LowCodeLanguage;
3842
+ /** Restrict platform writes for this execution. Inherits the hosted runtime mode when omitted. */
3843
+ readOnly?: boolean;
2865
3844
  /** Input exposed through api.input() inside the low-code execution. */
2866
3845
  inputs?: any;
2867
3846
  /** Maximum execution time in milliseconds. Defaults to 60 seconds. */
@@ -2873,6 +3852,15 @@ interface RevoLowCode {
2873
3852
  execute<T = LooseObject<any>>(code: string, options?: LowCodeExecuteOptions): Promise<ComponentExecuteResult<T>>;
2874
3853
  }
2875
3854
 
3855
+ type VaultReadResult = Awaited<ReturnType<RevoVault$1['get']>>;
3856
+ /** Wire decoding returns a full Node.js Buffer, extending the portable low-code type. */
3857
+ type RevoVault = Omit<RevoVault$1, 'get'> & {
3858
+ get(...args: Parameters<RevoVault$1['get']>): Promise<Omit<VaultReadResult, 'revision'> & {
3859
+ revision: Omit<VaultReadResult['revision'], 'value'> & {
3860
+ value: Buffer$1;
3861
+ };
3862
+ }>;
3863
+ };
2876
3864
  type RevoExecute = RevoLowCode['execute'];
2877
3865
  type RevoExecuteOptions = NonNullable<Parameters<RevoExecute>[1]>;
2878
3866
  type RevoExecutionDefaults = Omit<RevoExecuteOptions, 'inputs'>;
@@ -2960,6 +3948,9 @@ interface RevoRuntime {
2960
3948
  readonly api: RevoApi;
2961
3949
  readonly utils: RevoUtils;
2962
3950
  readonly storage: RevoStorage;
3951
+ readonly vault: RevoVault;
3952
+ readonly serviceAccount: RevoServiceAccount;
3953
+ readonly transport: RevoTransport;
2963
3954
  readonly agents: RevoAgents;
2964
3955
  readonly execute: RevoExecute;
2965
3956
  readonly batch: RevoBatchController;
@@ -3057,4 +4048,4 @@ declare class RevoHttpResponseError extends RevoError {
3057
4048
  constructor(statusCode: number, body?: unknown);
3058
4049
  }
3059
4050
 
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 };
4051
+ 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 };