@revoengine/sdk 1.0.0 → 1.5.5

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,9 @@
1
1
  import * as node_worker_threads from 'node:worker_threads';
2
2
 
3
- declare const SDK_VERSION: "1.0.0";
3
+ declare const SDK_VERSION: "1.5.5";
4
4
  declare const PROTOCOL_VERSION: 1;
5
- declare const CONTRACT_REVISION: "a88e3ddff38d91762aa4c771955343e986039cebb04e4347fd257bd96f65bf5c";
6
- type RuntimeSurfaceName = 'api' | 'storage' | 'agents';
5
+ declare const CONTRACT_REVISION: "b98c007dbeaf81bb88ab29f6b4b699e85a4f8b1eb5a36f08701ec1cbd553089f";
6
+ type RuntimeSurfaceName = 'api' | 'storage' | 'agents' | 'lowCode';
7
7
 
8
8
  // AUTO-GENERATED FILE. DO NOT EDIT DIRECTLY.
9
9
  // Sources: api.swagger-contracts.generated.d.ts, api.public.d.ts
@@ -43,7 +43,7 @@ interface SwaggerAgentCheapTurnPolicyDto {
43
43
  }
44
44
  interface SwaggerAgentConfigDto {
45
45
  /** Supported assistant model used when the agent starts a thread. */
46
- "model"?: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna" | "gpt-5.4-nano";
46
+ "model"?: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna";
47
47
  /** Reasoning effort passed to assistant threads. */
48
48
  "reasoningEffort"?: "low" | "medium" | "high" | "xhigh";
49
49
  /** 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. */
@@ -56,6 +56,8 @@ interface SwaggerAgentConfigDto {
56
56
  "persona"?: "friendly" | "pragmatic" | "professional" | "concise" | "calm" | "mentor" | "assertive";
57
57
  /** Additional per-agent system instructions persisted with the definition. Runtime policy still has higher priority. */
58
58
  "systemInstructions"?: string;
59
+ /** Structured operator-owned Agent identity loaded on every autonomous turn. Learned memory cannot mutate this definition. */
60
+ "definition"?: SwaggerAgentDefinitionDto;
59
61
  /** Durable cross-run memory defaults such as recall budget, retained summary size, and retention horizon. */
60
62
  "memoryPolicy"?: SwaggerAgentMemoryPolicyDto;
61
63
  /** Release metadata and rollout controls for governed agent capabilities. */
@@ -81,6 +83,18 @@ interface SwaggerAgentConfigDto {
81
83
  /** How the parent reacts when one delegated child fails. */
82
84
  "childFailureMode"?: "fail_parent" | "merge_partial";
83
85
  }
86
+ interface SwaggerAgentDefinitionDto {
87
+ /** Stable operator-owned identity of the Agent. */
88
+ "identity"?: string;
89
+ /** Stable operator-owned mission of the Agent. */
90
+ "mission"?: string;
91
+ /** Responsibilities owned by the Agent. */
92
+ "responsibilities"?: Array<string>;
93
+ /** Operator-owned principles applied on every Agent turn. */
94
+ "operatingPrinciples"?: Array<string>;
95
+ /** Persistent completion criteria for the Agent role. */
96
+ "successCriteria"?: Array<string>;
97
+ }
84
98
  interface SwaggerAgentMemoryPolicyDto {
85
99
  /** Whether the runtime may load and persist durable cross-run memory for this agent. */
86
100
  "enabled"?: boolean;
@@ -94,6 +108,8 @@ interface SwaggerAgentPluginApprovalConfigDto {
94
108
  "mode"?: "none" | "always" | "conditional";
95
109
  /** Safety tier enforced for approval and mutation governance. */
96
110
  "safetyTier"?: "read" | "write" | "destructive" | "external" | "execute";
111
+ /** Required for conditional mode: a verifiable constraint RevoShield must confirm in addition to user authorization. */
112
+ "condition"?: string;
97
113
  }
98
114
  interface SwaggerAgentPluginComponentToolConfigDto {
99
115
  /** Whether this component-backed tool is enabled for runtime selection and execution. */
@@ -364,6 +380,8 @@ interface SwaggerDatabaseDefinition {
364
380
  "name": string;
365
381
  /** Description. */
366
382
  "desc"?: string | null;
383
+ /** 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. */
384
+ "metadata"?: Record<string, unknown>;
367
385
  /** You need to specify type [SMALLINT,INTEGER,BIGINT,REAL,DOUBLE PRECISION,NUMERIC,JSON,JSONB,TEXT,UUID,DATE,TIME,TIMETZ,TIMESTAMP,TIMESTAMPTZ,BOOLEAN]. */
368
386
  "type": "SMALLINT" | "INTEGER" | "BIGINT" | "REAL" | "DOUBLE PRECISION" | "NUMERIC" | "JSON" | "JSONB" | "TEXT" | "UUID" | "DATE" | "TIME" | "TIMETZ" | "TIMESTAMP" | "TIMESTAMPTZ" | "BOOLEAN";
369
387
  /** Provide if this column is primary key. */
@@ -425,12 +443,83 @@ interface SwaggerPartitionDefinition {
425
443
  */
426
444
  "remainder"?: number;
427
445
  }
446
+ interface SwaggerStorageCellInputDto {
447
+ /** A1 cell address. */
448
+ "address": string;
449
+ /** Literal cell value. Supports JSON-compatible strings, numbers, booleans, arrays, objects, and null. */
450
+ "value"?: string | number | boolean | Record<string, unknown> | Array<unknown> | null;
451
+ /** Excel formula without a leading equals sign. */
452
+ "formula"?: string;
453
+ /** Cached formula result. ExcelJS does not calculate formulas. Supports JSON-compatible strings, numbers, booleans, arrays, objects, and null. */
454
+ "result"?: string | number | boolean | Record<string, unknown> | Array<unknown> | null;
455
+ /** Declarative cell style for XLSX output. */
456
+ "style"?: Record<string, unknown>;
457
+ }
458
+ interface SwaggerStorageCsvOptionsDto {
459
+ /** Output character encoding. Input encoding is detected when omitted. */
460
+ "encoding"?: string;
461
+ /** Emit a byte order mark at the start of the file. */
462
+ "bom"?: boolean;
463
+ /** Column delimiter. */
464
+ "delimiter"?: string;
465
+ /** Record delimiter. */
466
+ "recordDelimiter"?: "\n" | "\r" | "\r\n";
467
+ /** Quote character. */
468
+ "quote"?: string;
469
+ /** Quote escape character. */
470
+ "escape"?: string;
471
+ /** Prefix spreadsheet formula-like values to prevent CSV formula injection. */
472
+ "escapeFormulae"?: boolean;
473
+ }
428
474
  interface SwaggerStorageRetentionDto {
429
475
  /** Positive lifetime in seconds. The lifetime starts when the file is finalized. */
430
476
  "ttlSeconds"?: number;
431
477
  /** Absolute future expiration timestamp in ISO 8601 format. */
432
478
  "expiresAt"?: string;
433
479
  }
480
+ interface SwaggerStorageSheetColumnDto {
481
+ /** Object key used when appending row objects. */
482
+ "key": string;
483
+ /** Visible header. Defaults to key. */
484
+ "header"?: string;
485
+ /** Logical value type retained in XLSX fileStats and used by typed row producers and getFileData reads. Without a declared type, imported XLSX values remain strings; styles never infer a type. */
486
+ "type"?: "string" | "number" | "boolean" | "date";
487
+ /** Column width in Excel character units. */
488
+ "width"?: number;
489
+ /** Hide the worksheet column. */
490
+ "hidden"?: boolean;
491
+ /** Declarative column style for XLSX output. */
492
+ "style"?: Record<string, unknown>;
493
+ }
494
+ interface SwaggerStorageSheetDataPartDto {
495
+ /** Target worksheet name. */
496
+ "sheet": string;
497
+ /** 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. */
498
+ "rows"?: Array<Record<string, unknown> | Array<unknown>>;
499
+ /** Sparse cells addressed independently from table rows. Supported in writeMode "staged"; direct XLSX parts must be row-only. */
500
+ "cells"?: Array<SwaggerStorageCellInputDto>;
501
+ }
502
+ interface SwaggerStorageSheetFreezeDto {
503
+ "rows"?: number;
504
+ "columns"?: number;
505
+ }
506
+ interface SwaggerStorageSheetOptionsDto {
507
+ /** Worksheet name. */
508
+ "name": string;
509
+ "state"?: "visible" | "hidden" | "veryHidden";
510
+ "table"?: SwaggerStorageSheetTableDto;
511
+ "freeze"?: SwaggerStorageSheetFreezeDto;
512
+ }
513
+ interface SwaggerStorageSheetTableDto {
514
+ /** Top-left table cell. */
515
+ "origin"?: string;
516
+ /** Write a header row. */
517
+ "header"?: boolean;
518
+ /** Add an auto-filter to the table header. */
519
+ "autoFilter"?: boolean;
520
+ /** Stable column order. Required for every worksheet in writeMode "direct"; optional in "staged" mode, where keys may be inferred from appended rows. */
521
+ "columns"?: Array<SwaggerStorageSheetColumnDto>;
522
+ }
434
523
  interface SwaggerWebhookRequestDetailsDto {
435
524
  "url": string;
436
525
  "method": "POST" | "GET" | "HEAD" | "PUT" | "DELETE" | "PATCH" | "OPTIONS";
@@ -444,6 +533,8 @@ interface AgentRunCancelInput {
444
533
  "reason"?: string;
445
534
  }
446
535
  interface DatabaseCloneInput {
536
+ /** 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. */
537
+ "metadata"?: Record<string, unknown>;
447
538
  /** Optional audit override. Defaults to the source logical table setting. */
448
539
  "audit"?: boolean;
449
540
  /** Optional target root database name. Defaults to the source database name with "_Clone" suffix. */
@@ -480,7 +571,7 @@ interface AgentCreateInput {
480
571
  "ownerId"?: string;
481
572
  /** Owner type, typically USER or GROUP. */
482
573
  "ownerType"?: string;
483
- /** Optional resource metadata. Top-level keys starting with "__" are reserved for backend use. */
574
+ /** 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. */
484
575
  "metadata"?: Record<string, unknown>;
485
576
  /** 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. */
486
577
  "config"?: SwaggerAgentConfigDto;
@@ -496,8 +587,8 @@ interface AgentInboxItemCreateInput {
496
587
  "payload"?: Record<string, unknown>;
497
588
  /** Queue priority. Higher values are claimed first. */
498
589
  "priority"?: number;
499
- /** Optional ISO timestamp after which the inbox item becomes claimable. */
500
- "availableAt"?: string;
590
+ /** Optional claim deadline within 30 days of acceptance. The inbox item is recorded immediately. */
591
+ "scheduleFor"?: string | number;
501
592
  /** Optional de-duplication key unique per agent among non-terminal inbox items. */
502
593
  "dedupeKey"?: string;
503
594
  }
@@ -510,7 +601,7 @@ interface DatabaseCreateInput {
510
601
  "category"?: string;
511
602
  /** Description. */
512
603
  "desc"?: string;
513
- /** Optional resource metadata. Top-level keys starting with "__" are reserved for backend use. */
604
+ /** 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. */
514
605
  "metadata"?: Record<string, unknown>;
515
606
  /** Provide if access should be restricted. */
516
607
  "restricted": boolean;
@@ -522,16 +613,22 @@ interface DatabaseCreateInput {
522
613
  "definition"?: Array<SwaggerDatabaseDefinition>;
523
614
  /** Name. */
524
615
  "parent"?: string;
616
+ /** Expected immutable ID of the parent selected by name. Requires parent; rejects a stale selection after rename or name reuse. */
617
+ "parentDatabaseId"?: string;
525
618
  /** Partition configuration. */
526
619
  "partition"?: SwaggerPartitionDefinition;
527
620
  }
528
621
  interface AssistantMessageInput {
622
+ /** Finalized Storage files to link to this message. File access is checked on send and every read. */
623
+ "storageEntryIds"?: Array<string>;
529
624
  /** Content of the message, validated up to 100000 tokens. */
530
625
  "content": string;
531
626
  /** 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. */
532
627
  "preflightMessageId"?: string;
533
- /** Optional assistant execution-model override. GPT-5.6 Luna is the default; Sol, Terra, Luna, and GPT-5.4 Nano are supported. */
534
- "model"?: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna" | "gpt-5.4-nano";
628
+ /** Optional assistant execution-model override. GPT-5.6 Luna is the default; GPT-5.6 Sol, Terra, and Luna are supported. */
629
+ "model"?: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna";
630
+ /** Optional GPT-5.6 Luna Fast mode. The backend rejects enabling it for any other model. Defaults to false and remains opt-in per thread. */
631
+ "fastMode"?: boolean;
535
632
  /** Optional assistant reasoning effort override: low, medium, high, or xhigh. Defaults to low. */
536
633
  "reasoningEffort"?: "low" | "medium" | "high" | "xhigh";
537
634
  /** Alias for reasoningEffort used by assistant preferences. Prefer reasoningEffort for new clients. */
@@ -566,7 +663,7 @@ interface StorageFolderInput {
566
663
  "parentStorageEntryId"?: string;
567
664
  /** Optional provider config id for root-level folders. Omit for the internal/default provider. Ignored when parentStorageEntryId is provided. */
568
665
  "storageProviderConfigId"?: string;
569
- /** Folder metadata. Top-level keys starting with "__" are reserved for backend use. */
666
+ /** 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. */
570
667
  "metadata"?: Record<string, unknown>;
571
668
  /** Optional external reference id. */
572
669
  "refId"?: string;
@@ -606,9 +703,15 @@ interface StorageUploadSessionInput {
606
703
  "tier"?: "HOT" | "WARM" | "COLD" | "FROZEN";
607
704
  /** 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. */
608
705
  "uploadMode"?: "direct" | "chunked" | "incremental";
609
- /** Default post-finalize compute mode for this upload session. */
706
+ /** 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. */
610
707
  "computeStats"?: "none" | "sync" | "async";
611
- /** File metadata. Top-level keys starting with "__" are reserved for backend use. */
708
+ /** 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. */
709
+ "writeMode"?: "staged" | "direct";
710
+ /** CSV dialect used when row payloads are appended to a text/csv session. */
711
+ "csv"?: SwaggerStorageCsvOptionsDto;
712
+ /** Workbook worksheet layout. XLSX is inferred from contentTypeHint. In writeMode "direct", declare every worksheet here and configure table.columns for each one. */
713
+ "sheets"?: Array<SwaggerStorageSheetOptionsDto>;
714
+ /** 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. */
612
715
  "metadata"?: Record<string, unknown>;
613
716
  /** Optional external reference id. */
614
717
  "refId"?: string;
@@ -624,7 +727,11 @@ interface StorageUploadSessionInput {
624
727
  "users"?: Array<string>;
625
728
  }
626
729
  interface StorageUploadSessionFinalizeInput {
627
- /** Optional metadata replacement at finalize time. Top-level keys starting with "__" are reserved for backend use. */
730
+ /** Expected contiguous multipart count (parts 1..N). Use this to fence distributed uploads against missing parts. */
731
+ "expectedPartCount"?: number;
732
+ /** Expected explicit multipart numbers. Use for sparse distributed uploads; cannot be combined with expectedPartCount. */
733
+ "expectedPartNumbers"?: Array<number>;
734
+ /** 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. */
628
735
  "metadata"?: Record<string, unknown>;
629
736
  /** Optional post-finalize compute mode. */
630
737
  "computeStats"?: "none" | "sync" | "async";
@@ -660,7 +767,7 @@ interface StoragePutObjectInput {
660
767
  "dataEncoding"?: "utf8" | "base64";
661
768
  /** Mime type of the object. */
662
769
  "mimeType"?: string;
663
- /** Optional post-write compute mode. */
770
+ /** Post-write compute mode. Defaults to sync for text/* objects and none for other binary objects; an explicit value always overrides the default. */
664
771
  "computeStats"?: "none" | "sync" | "async";
665
772
  /** Whether the finalized entry should be restricted. */
666
773
  "restricted"?: boolean;
@@ -674,7 +781,7 @@ interface StoragePutObjectInput {
674
781
  "refType"?: string;
675
782
  /** Optional external reference version. */
676
783
  "refVer"?: number;
677
- /** Entry metadata. Top-level keys starting with "__" are reserved for backend use. */
784
+ /** 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. */
678
785
  "metadata"?: Record<string, unknown>;
679
786
  /** Logical storage lifecycle tier. Select only when creating a new file or upload session; existing files keep their tier.
680
787
  HOT: Active files used in live workflows, previews, and frequent downloads.
@@ -684,6 +791,10 @@ interface StoragePutObjectInput {
684
791
  "tier"?: "HOT" | "WARM" | "COLD" | "FROZEN";
685
792
  }
686
793
  interface AssistantActionResolutionInput {
794
+ /** Finalized Storage files linked to this action response. */
795
+ "storageEntryIds"?: Array<string>;
796
+ /** Optimistic action version used as the idempotency key together with the action id. */
797
+ "actionVersion"?: number;
687
798
  /** Resolution decision for the pending action. */
688
799
  "decision": "approve" | "approve_all_for_turn" | "reject" | "submit";
689
800
  /** Optional approval item id when resolving one item from a multi-approval action. */
@@ -695,7 +806,9 @@ interface AssistantActionResolutionInput {
695
806
  /** 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. */
696
807
  "backgroundProcessing"?: boolean;
697
808
  /** Optional assistant model override for the resumed turn after this action is resolved. */
698
- "model"?: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna" | "gpt-5.4-nano";
809
+ "model"?: "gpt-5.6-sol" | "gpt-5.6-terra" | "gpt-5.6-luna";
810
+ /** Optional GPT-5.6 Luna Fast-mode override for the resumed turn. The backend rejects enabling it for any other model. */
811
+ "fastMode"?: boolean;
699
812
  /** Optional assistant reasoning effort override for the resumed turn: low, medium, high, or xhigh. */
700
813
  "reasoningEffort"?: "low" | "medium" | "high" | "xhigh";
701
814
  /** Alias for reasoningEffort used by assistant preferences. Prefer reasoningEffort for new clients. */
@@ -724,8 +837,8 @@ interface AgentRunInput {
724
837
  "triggerRefType"?: string;
725
838
  /** Optional external reference id for correlation. */
726
839
  "triggerRefId"?: string;
727
- /** Optional delay before the first tick is scheduled. */
728
- "delaySeconds"?: number;
840
+ /** Optional first-dispatch deadline, from acceptance through 30 days ahead. The run is recorded immediately. */
841
+ "scheduleFor"?: string | number;
729
842
  /** Optional run-scoped state merged into the initial supervisor state. */
730
843
  "state"?: Record<string, unknown>;
731
844
  /** Optional registry plugin ids attached for this run. */
@@ -748,7 +861,7 @@ interface AgentUpdateInput {
748
861
  "ownerId"?: string;
749
862
  /** Updated owner type. */
750
863
  "ownerType"?: string;
751
- /** Replacement resource metadata. Top-level keys starting with "__" are reserved for backend use. */
864
+ /** 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. */
752
865
  "metadata"?: Record<string, unknown>;
753
866
  /** Replacement persisted agent identity and runtime defaults. Fast-path routing, prompt tier, and per-turn telemetry stay runtime-derived. */
754
867
  "config"?: SwaggerAgentConfigDto;
@@ -766,8 +879,8 @@ interface AgentInboxItemUpdateInput {
766
879
  "payload"?: Record<string, unknown>;
767
880
  /** Queue priority. Higher values are claimed first. */
768
881
  "priority"?: number;
769
- /** Optional ISO timestamp after which the inbox item becomes claimable. */
770
- "availableAt"?: string;
882
+ /** Optional updated claim deadline within 30 days of this request. */
883
+ "scheduleFor"?: string | number;
771
884
  /** Optional de-duplication key unique per agent among non-terminal inbox items. */
772
885
  "dedupeKey"?: string;
773
886
  }
@@ -780,7 +893,7 @@ interface DatabaseUpdateInput {
780
893
  "category"?: string;
781
894
  /** Description. */
782
895
  "desc"?: string;
783
- /** Replacement resource metadata. Top-level keys starting with "__" are reserved for backend use. */
896
+ /** 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. */
784
897
  "metadata"?: Record<string, unknown>;
785
898
  /** Provide if access should be restricted. */
786
899
  "restricted"?: boolean;
@@ -798,7 +911,7 @@ interface StorageEntryUpdateInput {
798
911
  "retention"?: SwaggerStorageRetentionDto | null;
799
912
  /** New display name. */
800
913
  "name"?: string;
801
- /** Metadata replacement. Top-level keys starting with "__" are reserved for backend use. */
914
+ /** 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. */
802
915
  "metadata"?: Record<string, unknown>;
803
916
  /** Whether this entry is restricted to the provided users/groups. */
804
917
  "restricted"?: boolean;
@@ -829,9 +942,13 @@ interface AssistantThreadTitleInput {
829
942
  }
830
943
  interface StorageUploadPartInput {
831
944
  /** Part payload. Use base64 for binary payloads. */
832
- "data": string | Array<string>;
945
+ "data"?: string | Array<string>;
833
946
  /** Payload encoding. */
834
947
  "dataEncoding"?: "utf8" | "base64";
948
+ /** 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. */
949
+ "rows"?: Array<Record<string, unknown> | Array<unknown>>;
950
+ /** 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. */
951
+ "sheets"?: Array<SwaggerStorageSheetDataPartDto>;
835
952
  }
836
953
  interface WebhookInput {
837
954
  /** Optional Id of webhook. */
@@ -850,7 +967,7 @@ interface WebhookInput {
850
967
  "maskDetails"?: Array<string>;
851
968
  /** Override creator. */
852
969
  "createdBy"?: string;
853
- /** Optional key/value metadata for grouping and querying webhooks. Top-level keys starting with "__" are reserved for backend use. */
970
+ /** 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. */
854
971
  "metadata"?: Record<string, unknown>;
855
972
  }
856
973
  /**
@@ -858,6 +975,23 @@ interface WebhookInput {
858
975
  * Lifecycle input DTOs are generated from Swagger in api.swagger-contracts.generated.d.ts.
859
976
  * Edit this file for model guidance, then regenerate api.monaco.ts.
860
977
  */
978
+ /** Ordered, literal-safe updates. Repeated columns run top to bottom (maximum 100 operations).
979
+ * NULL is preserved unless nulls: 'empty' is selected for text/array/JSON transforms.
980
+ * insert.position is 1-based Unicode character position. replace replaces all exact matches.
981
+ * JSON paths use string arrays; setJsonPath creates the final property only, not missing parents.
982
+ */
983
+ interface DatabaseUpdateOperation {
984
+ column: string;
985
+ 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';
986
+ value?: unknown;
987
+ position?: number;
988
+ search?: string;
989
+ path?: string[];
990
+ create?: boolean;
991
+ unit?: string;
992
+ nulls?: 'preserve' | 'empty';
993
+ }
994
+ type DatabaseUpdateData = Record<string, any> | DatabaseUpdateOperation[];
861
995
  /**
862
996
  * Supported database column types used by schema metadata and casts.
863
997
  */
@@ -875,11 +1009,33 @@ type ExecutionTargetType = 'JOB_TEMPLATE' | 'AGENT' | (string & {});
875
1009
  /**
876
1010
  * Supported payload validator types for util.validate().
877
1011
  */
878
- type ValidatorType = 'string' | 'number' | 'boolean' | 'object' | 'array' | 'date' | 'any';
1012
+ type ValidatorType = 'string' | 'number' | 'integer' | 'boolean' | 'object' | 'array' | 'date' | 'any';
879
1013
  interface ValidatorProperty {
880
1014
  type: ValidatorType;
881
1015
  required?: boolean;
1016
+ nullable?: boolean;
1017
+ empty?: 'allow' | 'reject';
1018
+ integer?: boolean;
1019
+ finite?: boolean;
1020
+ safeInteger?: boolean;
1021
+ exclusiveMin?: number;
1022
+ exclusiveMax?: number;
1023
+ /** Exact allowed values; prefer this to regex alternatives for a finite set. */
1024
+ enum?: any[];
1025
+ /** One exact allowed value; prefer this to a literal-matching regex. */
1026
+ const?: any;
1027
+ additionalProperties?: 'allow' | 'strip' | 'reject';
1028
+ format?: 'date' | 'time' | 'date-time';
1029
+ timezone?: boolean;
1030
+ /**
1031
+ * String pattern for constraints not expressible with enum, const, type, length or format rules.
1032
+ * Prefer those explicit rules when equivalent. Even one simple regex can roughly double
1033
+ * Endpoint guard preparation time or more for small requests; actual cost varies.
1034
+ * Preserve the accepted-value contract when replacing a pattern; bound string length with max.
1035
+ */
882
1036
  regex?: string;
1037
+ /** JavaScript regular expression flags, for example i or u. */
1038
+ regexFlags?: string;
883
1039
  min?: number;
884
1040
  max?: number;
885
1041
  objectSchema?: ValidatorObject[];
@@ -890,6 +1046,9 @@ interface ValidatorObject {
890
1046
  schema: ValidatorProperty;
891
1047
  }
892
1048
  interface ValidatorSchemaInput {
1049
+ /** Existing schemas default to legacy; use strict for new schemas. */
1050
+ profile?: 'legacy' | 'strict';
1051
+ additionalProperties?: 'allow' | 'strip' | 'reject';
893
1052
  whitelist?: boolean;
894
1053
  whitelistErrors?: boolean;
895
1054
  schema: ValidatorProperty;
@@ -897,6 +1056,12 @@ interface ValidatorSchemaInput {
897
1056
  interface ValidationResult<T = any> {
898
1057
  valid: boolean;
899
1058
  errors: string[];
1059
+ issues: Array<{
1060
+ code: string;
1061
+ path: string;
1062
+ message: string;
1063
+ params?: Record<string, any>;
1064
+ }>;
900
1065
  value: T;
901
1066
  }
902
1067
  /**
@@ -1087,7 +1252,6 @@ interface SelectInput {
1087
1252
  joins?: SelectJoin[];
1088
1253
  /**
1089
1254
  * Recursive filter tree.
1090
- * Example:
1091
1255
  * { and: [{ field: 'status', op: 'eq', value: 'active' }] }
1092
1256
  */
1093
1257
  filter?: SelectFilterNode;
@@ -1105,7 +1269,9 @@ interface SelectInput {
1105
1269
  */
1106
1270
  cast?: Record<string, DatabaseDefinitionType>;
1107
1271
  /**
1108
- * Maximum number of rows to return.
1272
+ * getDatabaseData accepts a number (at most 100,000) or explicit null.
1273
+ * Omitting take uses 2,000 and logs one warning per execution.
1274
+ * Use walkDatabaseData for processing without a finite page.
1109
1275
  * The backend fetches one extra row internally to determine next-page availability.
1110
1276
  */
1111
1277
  take?: number;
@@ -1139,30 +1305,98 @@ interface GetDatabaseDataResponse<T = any> {
1139
1305
  cache?: any;
1140
1306
  }
1141
1307
  interface BufferConstructor {
1142
- new (arg: number | string | number[] | string[] | ArrayBuffer | Uint8Array | Record<string, unknown>, encoding?: 'utf-8' | 'utf8'): Buffer;
1143
- from(input: number | string | number[] | string[] | ArrayBuffer | Uint8Array | Record<string, unknown>, encodingOrOffset?: 'utf-8' | 'utf8' | number, length?: number): Buffer;
1144
- alloc(size: number): Buffer;
1308
+ new (value: string | number | number[] | Uint8Array | ArrayBuffer, encoding?: string): Buffer;
1309
+ from(array: any[]): Buffer;
1310
+ from(arrayBuffer: ArrayBufferLike, byteOffset?: number, length?: number): Buffer;
1311
+ from(buffer: Buffer | Uint8Array): Buffer;
1312
+ from(str: string, encoding?: string): Buffer;
1313
+ isBuffer(obj: any): obj is Buffer;
1314
+ isEncoding(encoding: string): boolean;
1315
+ byteLength(string: string, encoding?: string): number;
1316
+ concat(list: readonly Uint8Array[], totalLength?: number): Buffer;
1317
+ compare(buf1: Buffer, buf2: Buffer): number;
1318
+ alloc(size: number, fill?: string | Buffer | number, encoding?: string): Buffer;
1145
1319
  allocUnsafe(size: number): Buffer;
1146
- byteLength(input: string | number | boolean | null | undefined, encoding?: 'utf-8' | 'utf8'): number;
1320
+ allocUnsafeSlow(size: number): Buffer;
1147
1321
  }
1148
- /**
1149
- * Minimal UTF-8 Buffer compatibility exposed by the isolated V8 runtime.
1150
- *
1151
- * This is not the full Node.js Buffer API. For base64, base64url, hex,
1152
- * hashing, signatures, or random bytes, prefer the matching util.* helper.
1153
- */
1154
- interface Buffer extends Uint8Array {
1155
- toString(encoding?: 'utf-8' | 'utf8'): string;
1322
+ /** Browser Buffer 5.7.1, without other Node.js globals. */
1323
+ interface Buffer extends Uint8Array<ArrayBuffer> {
1156
1324
  inspect(): string;
1325
+ write(string: string, offset?: number, length?: number, encoding?: string): number;
1326
+ toString(encoding?: string, start?: number, end?: number): string;
1327
+ toJSON(): {
1328
+ type: 'Buffer';
1329
+ data: any[];
1330
+ };
1331
+ equals(otherBuffer: Buffer): boolean;
1332
+ compare(otherBuffer: Buffer, targetStart?: number, targetEnd?: number, sourceStart?: number, sourceEnd?: number): number;
1333
+ copy(targetBuffer: Buffer, targetStart?: number, sourceStart?: number, sourceEnd?: number): number;
1334
+ slice(start?: number, end?: number): Buffer;
1335
+ writeUIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
1336
+ writeUIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
1337
+ writeIntLE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
1338
+ writeIntBE(value: number, offset: number, byteLength: number, noAssert?: boolean): number;
1339
+ readUIntLE(offset: number, byteLength: number, noAssert?: boolean): number;
1340
+ readUIntBE(offset: number, byteLength: number, noAssert?: boolean): number;
1341
+ readIntLE(offset: number, byteLength: number, noAssert?: boolean): number;
1342
+ readIntBE(offset: number, byteLength: number, noAssert?: boolean): number;
1343
+ readUInt8(offset: number, noAssert?: boolean): number;
1344
+ readUInt16LE(offset: number, noAssert?: boolean): number;
1345
+ readUInt16BE(offset: number, noAssert?: boolean): number;
1346
+ readUInt32LE(offset: number, noAssert?: boolean): number;
1347
+ readUInt32BE(offset: number, noAssert?: boolean): number;
1348
+ readInt8(offset: number, noAssert?: boolean): number;
1349
+ readInt16LE(offset: number, noAssert?: boolean): number;
1350
+ readInt16BE(offset: number, noAssert?: boolean): number;
1351
+ readInt32LE(offset: number, noAssert?: boolean): number;
1352
+ readInt32BE(offset: number, noAssert?: boolean): number;
1353
+ readFloatLE(offset: number, noAssert?: boolean): number;
1354
+ readFloatBE(offset: number, noAssert?: boolean): number;
1355
+ readDoubleLE(offset: number, noAssert?: boolean): number;
1356
+ readDoubleBE(offset: number, noAssert?: boolean): number;
1357
+ reverse(): this;
1358
+ swap16(): Buffer;
1359
+ swap32(): Buffer;
1360
+ swap64(): Buffer;
1361
+ writeUInt8(value: number, offset: number, noAssert?: boolean): number;
1362
+ writeUInt16LE(value: number, offset: number, noAssert?: boolean): number;
1363
+ writeUInt16BE(value: number, offset: number, noAssert?: boolean): number;
1364
+ writeUInt32LE(value: number, offset: number, noAssert?: boolean): number;
1365
+ writeUInt32BE(value: number, offset: number, noAssert?: boolean): number;
1366
+ writeInt8(value: number, offset: number, noAssert?: boolean): number;
1367
+ writeInt16LE(value: number, offset: number, noAssert?: boolean): number;
1368
+ writeInt16BE(value: number, offset: number, noAssert?: boolean): number;
1369
+ writeInt32LE(value: number, offset: number, noAssert?: boolean): number;
1370
+ writeInt32BE(value: number, offset: number, noAssert?: boolean): number;
1371
+ writeFloatLE(value: number, offset: number, noAssert?: boolean): number;
1372
+ writeFloatBE(value: number, offset: number, noAssert?: boolean): number;
1373
+ writeDoubleLE(value: number, offset: number, noAssert?: boolean): number;
1374
+ writeDoubleBE(value: number, offset: number, noAssert?: boolean): number;
1375
+ fill(value: any, offset?: number, end?: number, encoding?: string): this;
1376
+ indexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number;
1377
+ lastIndexOf(value: string | number | Buffer, byteOffset?: number, encoding?: string): number;
1378
+ includes(value: string | number | Buffer, byteOffset?: number, encoding?: string): boolean;
1157
1379
  }
1158
1380
  declare var Buffer: BufferConstructor;
1159
1381
  interface LooseObject<T> {
1160
1382
  [key: string]: T;
1161
1383
  }
1384
+ /** Absolute automation execution time. Numeric values are Unix timestamps in milliseconds. */
1385
+ type AutomationScheduleFor = Date | string | number;
1386
+ interface AutomationScheduleOptions {
1387
+ /** Absolute time as Date, ISO 8601 date-time, or Unix timestamp in milliseconds. Maximum horizon: 30 days. */
1388
+ scheduleFor?: AutomationScheduleFor;
1389
+ }
1390
+ interface TriggerEventOptions extends AutomationScheduleOptions {
1391
+ /** Searchable event metadata (max 16 KiB and 64 top-level keys). Top-level keys starting with "__" are reserved. */
1392
+ metadata?: LooseObject<unknown>;
1393
+ }
1162
1394
  interface DatabaseDefinition {
1163
1395
  databaseDefinitionId?: string;
1164
1396
  name: string;
1165
1397
  desc: string | null;
1398
+ /** Optional column metadata (max 16 KiB and 64 top-level keys). Top-level keys starting with "__" are reserved. */
1399
+ metadata?: Record<string, unknown>;
1166
1400
  type: 'SMALLINT' | 'INTEGER' | 'BIGINT' | 'REAL' | 'DOUBLE PRECISION' | 'NUMERIC' | 'JSON' | 'JSONB' | 'TEXT' | 'TIME' | 'DATE' | 'TIMETZ' | 'TIMESTAMP' | 'TIMESTAMPTZ' | 'BOOLEAN';
1167
1401
  isPrimaryKey: boolean;
1168
1402
  isArray: boolean;
@@ -1175,6 +1409,10 @@ interface DatabaseDefinition {
1175
1409
  interface Database extends BaseProperties {
1176
1410
  databaseId?: string;
1177
1411
  name: string;
1412
+ parent?: string | null;
1413
+ master?: string | null;
1414
+ parentDatabaseId?: string | null;
1415
+ masterDatabaseId?: string | null;
1178
1416
  category: string | null;
1179
1417
  desc: string | null;
1180
1418
  restricted: boolean;
@@ -1275,7 +1513,7 @@ interface HttpStorageSourceRef {
1275
1513
  }
1276
1514
  type HttpStorageTargetRef =
1277
1515
  /** Creates a new Storage entry and writes the complete HTTP response into it. */
1278
- (Omit<StorageUploadSessionInput, 'replaceStorageEntryId' | 'uploadMode'> & {
1516
+ (Omit<StorageUploadSessionInput, 'replaceStorageEntryId' | 'replaceExpectedVersion' | 'uploadMode'> & {
1279
1517
  name: string;
1280
1518
  namespace?: string;
1281
1519
  })
@@ -1287,6 +1525,8 @@ type HttpStorageTargetRef =
1287
1525
  contentTypeHint?: string;
1288
1526
  computeStats?: 'none' | 'sync' | 'async';
1289
1527
  metadata?: LooseObject<any>;
1528
+ } | {
1529
+ storageUploadSessionId: string;
1290
1530
  };
1291
1531
  interface HttpRequestOptionsInterface {
1292
1532
  //@default: undefined
@@ -1298,9 +1538,9 @@ interface HttpRequestOptionsInterface {
1298
1538
  * when an integration should expose an explicit, self-documenting JSON contract.
1299
1539
  */
1300
1540
  //@default: 'json'
1301
- responseType?: 'json' | 'base64buffer' | 'document' | 'text' | 'stream';
1541
+ responseType?: 'json' | 'base64buffer' | 'document' | 'text' | 'storage';
1302
1542
  //@default: 'json'
1303
- requestType?: 'json' | 'base64buffer' | 'form-data' | 'text' | 'stream';
1543
+ requestType?: 'json' | 'base64buffer' | 'form-data' | 'text' | 'storage';
1304
1544
  //@default: false
1305
1545
  currentCredentials?: boolean;
1306
1546
  }
@@ -1440,21 +1680,88 @@ interface StorageDownload {
1440
1680
  downloadUrl: string;
1441
1681
  preview: boolean;
1442
1682
  }
1443
- interface StorageTextReadOptions {
1683
+ type StorageDocumentFormat = 'auto' | 'text' | 'json' | 'xml';
1684
+ interface StorageDocumentReadOptions {
1685
+ /** Text line window; cannot be combined with byte ranges or JSON/XML/PDF/DOCX extraction. */
1444
1686
  startLine?: number | null;
1445
1687
  endLine?: number | null;
1446
1688
  maxChars?: number | null;
1689
+ /** Parser selection. Defaults to text; auto selects JSON/XML from MIME or extension. PDF/DOCX extract text; no byte ranges for binary documents. */
1690
+ format?: StorageDocumentFormat;
1691
+ /** Inclusive source byte offset. Only supported for plain text, not PDF/DOCX. */
1692
+ start?: number;
1693
+ /** Exclusive source byte offset. Only supported for plain text, not PDF/DOCX. */
1694
+ end?: number;
1695
+ }
1696
+ interface StorageDocument {
1697
+ storageEntryId: string;
1698
+ name: string;
1699
+ mimeType: string | null;
1700
+ size: number | null;
1701
+ format: Exclude<StorageDocumentFormat, 'auto'>;
1702
+ start?: number;
1703
+ end?: number;
1704
+ sourceBytes?: number;
1705
+ content?: string;
1706
+ document?: any;
1707
+ /** Present for bounded PDF/DOCX text extraction; no visual/OCR content is inferred. */
1708
+ extraction?: {
1709
+ sourceFormat: 'pdf' | 'docx';
1710
+ textOnly: true;
1711
+ truncated: boolean;
1712
+ totalPages: number | null;
1713
+ processedPages: number | null;
1714
+ mayRequireOcr: boolean;
1715
+ };
1716
+ /** Present for line-window reads instead of source byte offsets. */
1717
+ startLine?: number;
1718
+ endLine?: number;
1719
+ returnedLineCount?: number;
1720
+ totalLines?: number;
1721
+ truncated?: boolean;
1447
1722
  }
1448
1723
  interface StorageFileReadOptions {
1449
1724
  batchNumber?: number;
1450
1725
  buffer?: boolean;
1451
1726
  start?: number;
1452
1727
  end?: number;
1728
+ /** Continue a structured CSV/XLSX read. Cursor restores sheet and batch position. */
1729
+ cursor?: string;
1730
+ /** XLSX sheet name. The first visible sheet is used when omitted. */
1731
+ sheet?: string;
1732
+ /** One-based source header row. Pass null when the file has no header. */
1733
+ headerRow?: number | null;
1734
+ /** Override CSV source encoding when auto-detection is not sufficient. */
1735
+ encoding?: string;
1736
+ delimiter?: string;
1737
+ recordDelimiter?: '\n' | '\r' | '\r\n';
1738
+ quote?: string;
1739
+ escape?: string;
1740
+ /** XML record path such as `Orders/Order`; required for XML row reads. */
1741
+ recordPath?: string;
1742
+ /** Rows per persisted storage index page. Defaults to 100,000 and cannot exceed 100,000. */
1743
+ batchSize?: number;
1744
+ /** Rows returned by this call. Defaults to the index page size and cannot exceed 100,000. */
1745
+ limit?: number;
1746
+ /** Optional structured projection. Omit to return every source column. */
1747
+ columns?: Array<string | {
1748
+ source: string;
1749
+ key?: string;
1750
+ type?: 'string' | 'number' | 'boolean' | 'date';
1751
+ }>;
1453
1752
  }
1454
1753
  interface StorageFileStatsOptions {
1455
1754
  separator?: string;
1755
+ encoding?: string;
1756
+ delimiter?: string;
1757
+ recordDelimiter?: '\n' | '\r' | '\r\n';
1758
+ quote?: string;
1759
+ escape?: string;
1760
+ headerRow?: number | null;
1456
1761
  reloadStats?: boolean;
1457
1762
  batchSize?: number;
1763
+ /** XML record path such as `Orders/Order`; required for XML row stats. */
1764
+ recordPath?: string;
1458
1765
  }
1459
1766
  interface StorageFileStats {
1460
1767
  lineCount?: number;
@@ -1463,18 +1770,50 @@ interface StorageFileStats {
1463
1770
  batches?: number;
1464
1771
  batchSize?: number;
1465
1772
  encoding?: string | null;
1773
+ format?: 'csv' | 'xlsx' | 'ndjson' | 'json-array' | 'xml';
1774
+ columns?: Array<{
1775
+ key: string;
1776
+ header: string;
1777
+ }>;
1778
+ bom?: boolean;
1779
+ delimiter?: string;
1780
+ recordDelimiter?: string;
1781
+ quote?: string;
1782
+ escape?: string;
1783
+ rowCount?: number;
1784
+ headers?: Array<{
1785
+ key: string;
1786
+ header: string;
1787
+ }>;
1788
+ sheets?: Array<{
1789
+ name: string;
1790
+ state: 'visible' | 'hidden' | 'veryHidden';
1791
+ rowCount: number;
1792
+ batches: number;
1793
+ columns: Array<{
1794
+ key: string;
1795
+ header: string;
1796
+ }>;
1797
+ }>;
1466
1798
  }
1467
- interface StorageTextContent {
1468
- storageEntryId: string;
1469
- name: string;
1470
- mimeType: string | null;
1471
- size: number | null;
1472
- content: string;
1473
- startLine: number;
1474
- endLine: number;
1475
- returnedLineCount: number;
1476
- totalLines: number;
1477
- truncated: boolean;
1799
+ interface StorageStructuredFileDataPage {
1800
+ format: 'csv' | 'xlsx' | 'ndjson' | 'json-array' | 'xml';
1801
+ sheet: string | null;
1802
+ headers: Array<{
1803
+ key: string;
1804
+ header: string;
1805
+ }>;
1806
+ columns: Array<{
1807
+ key: string;
1808
+ header: string;
1809
+ }>;
1810
+ rows: Array<LooseObject<any>>;
1811
+ rowCount: number;
1812
+ totalRows: number;
1813
+ batchNumber: number;
1814
+ batchSize: number;
1815
+ next: boolean;
1816
+ nextCursor: string | null;
1478
1817
  }
1479
1818
  interface LoggedUser {
1480
1819
  userId: string;
@@ -1487,8 +1826,13 @@ interface LoggedUser {
1487
1826
  phone: string;
1488
1827
  groups: string[];
1489
1828
  roles: string[];
1829
+ metadata: LooseObject<any>;
1830
+ /** @deprecated Use metadata instead. */
1490
1831
  metaData: LooseObject<any>;
1832
+ metadataAdvanced: LooseObject<any>;
1833
+ /** @deprecated Use metadataAdvanced instead. */
1491
1834
  advancedData: LooseObject<any>;
1835
+ /** Avatar storage entry ID; `/me` separately returns a signed download URL. */
1492
1836
  avatar: string;
1493
1837
  platformAccess: boolean;
1494
1838
  }
@@ -1521,7 +1865,7 @@ interface AgentToolInput {
1521
1865
  }
1522
1866
  interface Input {
1523
1867
  templateId: string;
1524
- templateInputs: LooseObject<any>;
1868
+ templateInputs: Record<string, JsonValue>;
1525
1869
  /**
1526
1870
  * Present when this component is executed as an agent plugin component tool.
1527
1871
  */
@@ -1540,6 +1884,9 @@ interface Input {
1540
1884
  excludeLibs?: string[];
1541
1885
  includeLibs?: string[];
1542
1886
  }
1887
+ type JsonValue = string | number | boolean | null | JsonValue[] | {
1888
+ [key: string]: JsonValue;
1889
+ };
1543
1890
  interface InstanceDetails {
1544
1891
  id: string;
1545
1892
  organizationId: string;
@@ -1575,7 +1922,18 @@ interface DatabaseDataActionResponse {
1575
1922
  requested: number;
1576
1923
  success: number;
1577
1924
  elapsed: number;
1578
- data: any[];
1925
+ /** Omitted when the write is called with `return: false`. */
1926
+ data?: any[];
1927
+ }
1928
+ interface DatabaseDataWriteOptions {
1929
+ /** Defaults to true, preserving the legacy full-row response. */
1930
+ return?: boolean;
1931
+ /** With return enabled, return only primary keys. */
1932
+ onlyKeys?: boolean;
1933
+ }
1934
+ interface DatabaseUpsertOptions extends DatabaseDataWriteOptions {
1935
+ /** Defaults to true. Set false for the legacy full-replacement conflict behavior. */
1936
+ patch?: boolean;
1579
1937
  }
1580
1938
  interface TruncateDatabaseOptions {
1581
1939
  /**
@@ -1617,12 +1975,20 @@ type ExportDatabaseOptions = Omit<SelectInput, 'from'> & {
1617
1975
  * Default is false.
1618
1976
  */
1619
1977
  async?: boolean;
1978
+ /** Suppress the export completion/failure System notification for this low-code call. */
1979
+ skipNotification?: boolean;
1980
+ /** Output format. CSV is the default. XLSX validates the effective row count before starting. */
1981
+ format?: 'csv' | 'xlsx';
1620
1982
  /** Omit for private user storage, use ROOT, or provide an accessible explorer folder id. */
1621
1983
  storageDestination?: 'ROOT' | string;
1622
- /** Dedicated output name. Omit for an automatic database-and-timestamp CSV name. */
1984
+ /** Dedicated output name. Omit for an automatic database-and-timestamp name using the selected extension. */
1623
1985
  fileName?: string;
1624
1986
  /** Whether the output entry is restricted. Default is true. */
1625
1987
  restricted?: boolean;
1988
+ /** Explicit allowed group ids for the output entry when restricted is true. */
1989
+ groups?: string[];
1990
+ /** Explicit allowed user ids for the output entry when restricted is true. */
1991
+ users?: string[];
1626
1992
  /** CSV delimiter. Default is a comma. */
1627
1993
  delimiter?: string;
1628
1994
  boolType?: 'emoji' | 'number' | 'boolean';
@@ -1638,6 +2004,7 @@ interface ExportDatabaseAcceptedResponse {
1638
2004
  storageNamespace: string;
1639
2005
  parentStorageEntryId: string | null;
1640
2006
  fileName: string;
2007
+ format: 'csv' | 'xlsx';
1641
2008
  restricted: boolean;
1642
2009
  message: string;
1643
2010
  }
@@ -1649,12 +2016,21 @@ interface ExportDatabaseCompletedResponse {
1649
2016
  storageNamespace: string;
1650
2017
  parentStorageEntryId: string | null;
1651
2018
  fileName: string;
2019
+ format: 'csv' | 'xlsx';
1652
2020
  restricted: boolean;
1653
2021
  storageEntryId: string;
1654
2022
  storageEntry: StorageEntryView;
1655
2023
  message: string;
1656
2024
  }
1657
2025
  type ExportDatabaseResponse = ExportDatabaseAcceptedResponse | ExportDatabaseCompletedResponse;
2026
+ interface DatabaseCountQuery extends Omit<SelectInput, 'take' | 'skip' | 'count' | 'sort'> {
2027
+ }
2028
+ /** Omitted take or explicit null selects 2,000 rows; omission warns once per execution. */
2029
+ interface DatabaseBoundedReadQuery extends Omit<SelectInput, 'take'> {
2030
+ take?: number | null;
2031
+ }
2032
+ interface DatabaseRowQuery extends Omit<SelectInput, 'take' | 'skip' | 'count'> {
2033
+ }
1658
2034
  interface Context {
1659
2035
  requestId: string;
1660
2036
  date: Date;
@@ -1667,6 +2043,10 @@ interface Context {
1667
2043
  targetId?: string;
1668
2044
  }
1669
2045
  interface ComponentExecuteRequest {
2046
+ /** Defaults to local: fresh isolate on the same host. Remote uses the Sandbox service. */
2047
+ options?: {
2048
+ executionHost?: 'local' | 'remote';
2049
+ };
1670
2050
  /**
1671
2051
  * Active executable component id to run in an isolated child execution.
1672
2052
  */
@@ -2016,7 +2396,7 @@ interface AgentInboxItem {
2016
2396
  result?: Record<string, any> | null;
2017
2397
  error?: Record<string, any> | null;
2018
2398
  priority?: number;
2019
- availableAt?: Date | string;
2399
+ scheduledFor?: Date | string;
2020
2400
  claimedByRunId?: string | null;
2021
2401
  leaseToken?: string | null;
2022
2402
  leaseExpiresAt?: Date | string | null;
@@ -2294,27 +2674,29 @@ interface AssistantThreadCompactionRequest {
2294
2674
  }
2295
2675
  interface RevoApi {
2296
2676
  createDatabase(data: DatabaseCreateInput): Promise<Database>;
2297
- cloneDatabase<TAsync extends boolean = false>(databaseIdOrName: string, options?: DatabaseCloneInput & {
2677
+ cloneDatabase<TAsync extends boolean = false>(name: string, options?: DatabaseCloneInput & {
2298
2678
  async?: TAsync;
2299
2679
  }): Promise<TAsync extends true ? CloneDatabaseAcceptedResponse : TAsync extends false ? CloneDatabaseCompletedResponse : CloneDatabaseResponse>;
2300
- exportDatabase<TAsync extends boolean = false>(databaseIdOrName: string, options?: ExportDatabaseOptions & {
2680
+ exportDatabase<TAsync extends boolean = false>(name: string, options?: ExportDatabaseOptions & {
2301
2681
  async?: TAsync;
2302
2682
  }): Promise<TAsync extends true ? ExportDatabaseAcceptedResponse : TAsync extends false ? ExportDatabaseCompletedResponse : ExportDatabaseResponse>;
2303
- exportDatabaseView<TAsync extends boolean = false>(databaseViewIdOrName: string, options?: ExportDatabaseOptions & {
2683
+ exportDatabaseView<TAsync extends boolean = false>(name: string, options?: ExportDatabaseOptions & {
2304
2684
  async?: TAsync;
2305
2685
  }): Promise<TAsync extends true ? ExportDatabaseAcceptedResponse : TAsync extends false ? ExportDatabaseCompletedResponse : ExportDatabaseResponse>;
2306
- updateDatabase(databaseId: string, data: DatabaseUpdateInput): Promise<Database>;
2307
- deleteDatabase(databaseId: string): Promise<void>;
2308
- restoreDatabase(databaseId: string): Promise<void>;
2309
- truncateDatabase(databaseId: string, options?: TruncateDatabaseOptions): Promise<void>;
2310
- getDatabaseData<T = any>(name: string, request?: SelectInput): Promise<GetDatabaseDataResponse<T>>;
2686
+ updateDatabase(name: string, data: DatabaseUpdateInput): Promise<Database>;
2687
+ deleteDatabase(name: string): Promise<void>;
2688
+ restoreDatabase(name: string): Promise<void>;
2689
+ truncateDatabase(name: string, options?: TruncateDatabaseOptions): Promise<void>;
2690
+ getDatabaseData<T = any>(name: string, request?: DatabaseBoundedReadQuery): Promise<GetDatabaseDataResponse<T>>;
2691
+ getDatabaseDataRow<T = any>(name: string, query: DatabaseRowQuery): Promise<T | null>;
2692
+ countDatabase(name: string, query?: DatabaseCountQuery): Promise<number>;
2311
2693
  getDatabaseViewData<T = any>(name: string, request?: SelectInput): Promise<GetDatabaseDataResponse<T>>;
2312
2694
  getDatabaseAudit(name: string, query?: DatabaseAuditQuery): Promise<DatabaseAuditResponse>;
2313
- insertDatabaseData(name: string, data: LooseObject<any>[]): Promise<DatabaseDataActionResponse>;
2314
- upsertDatabaseData(name: string, data: LooseObject<any>[]): Promise<DatabaseDataActionResponse>;
2695
+ insertDatabaseData(name: string, data: LooseObject<any>[], options?: DatabaseDataWriteOptions): Promise<DatabaseDataActionResponse>;
2696
+ upsertDatabaseData(name: string, data: LooseObject<any>[], options?: DatabaseUpsertOptions): Promise<DatabaseDataActionResponse>;
2315
2697
  updateDatabaseData(name: string, oldObject: LooseObject<any>, newObject: LooseObject<any>): Promise<ResourceItem>;
2316
2698
  deleteDatabaseData(name: string, data: ResourceItem[]): Promise<any>;
2317
- updateDatabaseDataRequest(name: string, request: DatabaseMutationRequest, payload: Record<string, any>, options?: {
2699
+ updateDatabaseDataRequest(name: string, request: DatabaseMutationRequest, payload: DatabaseUpdateData, options?: {
2318
2700
  return?: boolean;
2319
2701
  onlyKeys?: boolean;
2320
2702
  }): Promise<{
@@ -2376,10 +2758,34 @@ interface RevoApi {
2376
2758
  rateLimit(key: string, limit: number, ttl: number): Promise<boolean>;
2377
2759
  releaseRateLimit(key: string): Promise<void>;
2378
2760
  releaseConcurrencyLimit(key: string): Promise<void>;
2379
- triggerEvent(name: string, message: any, scheduleDate?: Date): Promise<string>;
2380
- triggerTarget(targetType: ExecutionTargetType, targetId: string, input?: any, scheduleDate?: Date): Promise<string>;
2381
- triggerJob(templateId: string, input?: any, scheduleDate?: Date): Promise<string>;
2382
- triggerWebhook(webhook: WebhookInput, scheduleDate?: Date): Promise<Webhook>;
2761
+ triggerEvent(name: string, message: any, options?: TriggerEventOptions): Promise<string>;
2762
+ triggerTarget(targetType: ExecutionTargetType, targetId: string, input?: Record<string, JsonValue>, options?: AutomationScheduleOptions): Promise<string>;
2763
+ triggerJob(templateIdOrName: string, templateInputs?: Record<string, JsonValue>, options?: AutomationScheduleOptions): Promise<string>;
2764
+ triggerWebhook(webhook: WebhookInput, options?: AutomationScheduleOptions): Promise<Webhook>;
2765
+ httpCall(config: HttpRequestInterface, options: HttpRequestOptionsInterface & {
2766
+ responseType: 'storage';
2767
+ target: HttpStorageTargetRef;
2768
+ timeout?: number;
2769
+ proxy?: false;
2770
+ }): Promise<{
2771
+ status: number;
2772
+ statusText: string;
2773
+ time: number;
2774
+ headers: LooseObject<string>;
2775
+ request: {
2776
+ config: HttpRequestInterface;
2777
+ options: HttpRequestOptionsInterface;
2778
+ };
2779
+ } & ({
2780
+ data: undefined;
2781
+ storage: {
2782
+ session: StorageUploadSession;
2783
+ entry: StorageEntryView;
2784
+ };
2785
+ } | {
2786
+ data: string;
2787
+ storage?: undefined;
2788
+ })>;
2383
2789
  httpCall(config: HttpRequestInterface, options?: HttpRequestOptionsInterface & {
2384
2790
  timeout?: number;
2385
2791
  proxy?: boolean;
@@ -2412,33 +2818,63 @@ interface RevoApi {
2412
2818
  }
2413
2819
  interface RevoStorage {
2414
2820
  explore(query?: StorageExploreRequest): Promise<StorageExploreResult>;
2821
+ explore(namespace: string, query?: StorageExploreRequest): Promise<StorageExploreResult>;
2415
2822
  resolveFolderPath(path: string): Promise<StorageEntryView>;
2823
+ resolveFolderPath(path: string, namespace: string): Promise<StorageEntryView>;
2416
2824
  ensureFolderPath(path: string, options?: StorageEnsureFolderPathOptions): Promise<StorageEntryView>;
2825
+ ensureFolderPath(path: string, options: StorageEnsureFolderPathOptions | undefined, namespace: string): Promise<StorageEntryView>;
2417
2826
  getFile(storageEntryId: string, includeDeleted?: boolean): Promise<StorageEntryView>;
2418
- getFileData(storageEntryId: string, options?: StorageFileReadOptions): Promise<any>;
2827
+ getFile(namespace: string, storageEntryId: string, includeDeleted?: boolean): Promise<StorageEntryView>;
2828
+ getFileData(storageEntryId: string, options?: StorageFileReadOptions): Promise<StorageStructuredFileDataPage | string[] | string>;
2829
+ getFileData(namespace: string, storageEntryId: string, options?: StorageFileReadOptions): Promise<StorageStructuredFileDataPage | string[] | string>;
2419
2830
  getFileStats(storageEntryId: string, options?: StorageFileStatsOptions): Promise<StorageFileStats>;
2831
+ getFileStats(namespace: string, storageEntryId: string, options?: StorageFileStatsOptions): Promise<StorageFileStats>;
2420
2832
  getEntry(storageEntryId: string, includeDeleted?: boolean): Promise<StorageEntryView>;
2833
+ getEntry(namespace: string, storageEntryId: string, includeDeleted?: boolean): Promise<StorageEntryView>;
2421
2834
  createFolder(data: StorageFolderInput): Promise<StorageEntryView>;
2835
+ createFolder(namespace: string, data: StorageFolderInput): Promise<StorageEntryView>;
2422
2836
  putObject(data: StoragePutObjectInput): Promise<StorageEntryView>;
2837
+ putObject(namespace: string, data: StoragePutObjectInput): Promise<StorageEntryView>;
2423
2838
  createUploadSession(data: StorageUploadSessionInput): Promise<{
2424
2839
  session: StorageUploadSession;
2425
2840
  upload: StorageUploadTarget;
2426
2841
  }>;
2842
+ createUploadSession(namespace: string, data: StorageUploadSessionInput): Promise<{
2843
+ session: StorageUploadSession;
2844
+ upload: StorageUploadTarget;
2845
+ }>;
2427
2846
  extendUploadSession(storageUploadSessionId: string): Promise<StorageUploadSession>;
2847
+ extendUploadSession(namespace: string, storageUploadSessionId: string): Promise<StorageUploadSession>;
2428
2848
  getUploadSession(storageUploadSessionId: string): Promise<StorageUploadSessionView>;
2849
+ getUploadSession(namespace: string, storageUploadSessionId: string): Promise<StorageUploadSessionView>;
2429
2850
  uploadPart(storageUploadSessionId: string, partNumber: number | StorageUploadPartInput, data?: StorageUploadPartInput): Promise<StorageUploadPartResult>;
2851
+ uploadPart(namespace: string, storageUploadSessionId: string, partNumber: number | StorageUploadPartInput, data?: StorageUploadPartInput): Promise<StorageUploadPartResult>;
2430
2852
  finalizeUploadSession(storageUploadSessionId: string, data?: StorageUploadSessionFinalizeInput): Promise<{
2431
2853
  session: StorageUploadSession;
2432
2854
  entry: StorageEntryView;
2855
+ fileStats?: StorageFileStats;
2856
+ }>;
2857
+ finalizeUploadSession(namespace: string, storageUploadSessionId: string, data?: StorageUploadSessionFinalizeInput): Promise<{
2858
+ session: StorageUploadSession;
2859
+ entry: StorageEntryView;
2860
+ fileStats?: StorageFileStats;
2433
2861
  }>;
2434
2862
  abortUploadSession(storageUploadSessionId: string): Promise<StorageUploadSession>;
2863
+ abortUploadSession(namespace: string, storageUploadSessionId: string): Promise<StorageUploadSession>;
2435
2864
  updateEntry(storageEntryId: string, data: StorageEntryUpdateInput): Promise<StorageEntryView>;
2865
+ updateEntry(namespace: string, storageEntryId: string, data: StorageEntryUpdateInput): Promise<StorageEntryView>;
2436
2866
  moveEntry(storageEntryId: string, data: StorageEntryMoveInput): Promise<StorageEntryView>;
2867
+ moveEntry(namespace: string, storageEntryId: string, data: StorageEntryMoveInput): Promise<StorageEntryView>;
2437
2868
  archiveEntry(storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
2869
+ archiveEntry(namespace: string, storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
2438
2870
  restoreEntry(storageEntryId: string, data: StorageRestoreInput): Promise<StorageEntryView>;
2871
+ restoreEntry(namespace: string, storageEntryId: string, data: StorageRestoreInput): Promise<StorageEntryView>;
2439
2872
  deleteEntry(storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
2873
+ deleteEntry(namespace: string, storageEntryId: string, data: StorageVersionInput): Promise<StorageEntryView>;
2440
2874
  getDownload(storageEntryId: string, preview?: boolean): Promise<StorageDownload>;
2441
- getText(storageEntryId: string, options?: StorageTextReadOptions): Promise<StorageTextContent>;
2875
+ getDownload(namespace: string, storageEntryId: string, preview?: boolean): Promise<StorageDownload>;
2876
+ getDocument(storageEntryId: string, options?: StorageDocumentReadOptions): Promise<StorageDocument>;
2877
+ getDocument(namespace: string, storageEntryId: string, options?: StorageDocumentReadOptions): Promise<StorageDocument>;
2442
2878
  }
2443
2879
  interface RevoAgents {
2444
2880
  list(): Promise<Agent[]>;
@@ -2497,8 +2933,8 @@ interface RevoAgents {
2497
2933
  }
2498
2934
  interface RevoUtils {
2499
2935
  sleep(ms: number): Promise<void>;
2500
- aesDecrypt(encrypted: string, passphrase: string): string;
2501
- aesEncrypt(payload: string, passphrase: string): string;
2936
+ aesDecrypt(encrypted: string, passphrase: string): Promise<string>;
2937
+ aesEncrypt(payload: string, passphrase: string): Promise<string>;
2502
2938
  compareHash(password: string | undefined, hash: string | undefined): Promise<boolean>;
2503
2939
  isBase64(input: any): boolean;
2504
2940
  decodeBase64(base64String: string): string;
@@ -2524,7 +2960,7 @@ interface RevoUtils {
2524
2960
  randomInt(min?: number, max?: number): number;
2525
2961
  randomString(length?: number, alphabet?: string): string;
2526
2962
  otp(length?: number): string;
2527
- validate(payload: any, schema: ValidatorSchemaInput): ValidationResult<any>;
2963
+ validate(payload: any, schema: ValidatorSchemaInput): Promise<ValidationResult<any>>;
2528
2964
  jwtDecode(token: string, options?: {
2529
2965
  complete?: boolean;
2530
2966
  json?: boolean;
@@ -2566,19 +3002,39 @@ interface RevoUtils {
2566
3002
  maxAge?: string | number;
2567
3003
  allowInvalidAsymmetricKeyTypes?: boolean;
2568
3004
  }): any;
2569
- rsaDecrypt(privateKey: string, payload: string, passphrase?: string): string;
2570
- rsaEncrypt(publicKey: string, payload: string): string;
3005
+ rsaDecrypt(privateKey: string, payload: string, passphrase?: string): Promise<string>;
3006
+ rsaEncrypt(publicKey: string, payload: string): Promise<string>;
2571
3007
  rsaGeneratePair(config?: {
2572
3008
  modulusLength?: number;
2573
3009
  passphrase?: string;
2574
- }): {
3010
+ }): Promise<{
2575
3011
  publicKey: string;
2576
3012
  privateKey: string;
2577
- };
2578
- rsaSign(privateKey: string, payload: string, passphrase?: string): string;
2579
- rsaVerify(publicKey: string, payload: string, signature: string): boolean;
3013
+ }>;
3014
+ rsaSign(privateKey: string, payload: string, passphrase?: string): Promise<string>;
3015
+ rsaVerify(publicKey: string, payload: string, signature: string): Promise<boolean>;
3016
+ }
3017
+ /**
3018
+ * Source language for an ad-hoc low-code execution.
3019
+ */
3020
+ type LowCodeLanguage = 'javascript' | 'typescript';
3021
+ interface LowCodeExecuteOptions {
3022
+ /** Defaults to TypeScript. */
3023
+ language?: LowCodeLanguage;
3024
+ /** Input exposed through api.input() inside the low-code execution. */
3025
+ inputs?: any;
3026
+ /** Maximum execution time in milliseconds. Defaults to 60 seconds. */
3027
+ timeoutMs?: number;
3028
+ /** Optional isolate memory limit in MB. */
3029
+ memory?: number;
3030
+ }
3031
+ interface RevoLowCode {
3032
+ execute<T = LooseObject<any>>(code: string, options?: LowCodeExecuteOptions): Promise<ComponentExecuteResult<T>>;
2580
3033
  }
2581
3034
 
3035
+ type RevoExecute = RevoLowCode['execute'];
3036
+ type RevoExecuteOptions = NonNullable<Parameters<RevoExecute>[1]>;
3037
+ type RevoExecutionDefaults = Omit<RevoExecuteOptions, 'inputs'>;
2582
3038
  type StandaloneProfileMethod = 'currentUser' | 'getCurrentInstance' | 'getInstanceDetails';
2583
3039
  type AsyncMethod<Method> = Method extends (...args: infer Args) => infer Result ? (...args: Args) => Promise<Awaited<Result>> : never;
2584
3040
  /**
@@ -2602,6 +3058,7 @@ interface RevoClientOptions {
2602
3058
  fetch?: typeof fetch;
2603
3059
  requestTimeoutMs?: number;
2604
3060
  batch?: RevoBatchOptions;
3061
+ executionDefaults?: RevoExecutionDefaults;
2605
3062
  }
2606
3063
  interface RevoBatchLimits {
2607
3064
  maxCalls: number;
@@ -2663,6 +3120,7 @@ interface RevoRuntime {
2663
3120
  readonly utils: RevoUtils;
2664
3121
  readonly storage: RevoStorage;
2665
3122
  readonly agents: RevoAgents;
3123
+ readonly execute: RevoExecute;
2666
3124
  readonly batch: RevoBatchController;
2667
3125
  }
2668
3126
  interface HostedRuntimeBootstrap {
@@ -2680,6 +3138,7 @@ interface HostedRuntimeBootstrap {
2680
3138
  deadlineMs?: number;
2681
3139
  legacyApi?: Readonly<Record<string, unknown>>;
2682
3140
  batch?: RevoBatchOptions;
3141
+ executionDefaults?: RevoExecutionDefaults;
2683
3142
  }
2684
3143
  interface RevoRuntimeBridgeRequest {
2685
3144
  type: 'revo-runtime-call';
@@ -2757,4 +3216,4 @@ declare class RevoHttpResponseError extends RevoError {
2757
3216
  constructor(statusCode: number, body?: unknown);
2758
3217
  }
2759
3218
 
2760
- export { type RuntimeCall as A, type BatchFailureMode as B, CONTRACT_REVISION as C, type RuntimeCallResult as D, type SerializedRevoError as E, type HostedRuntimeBootstrap as H, 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 RevoBatchController as j, type RevoClientOptions as k, type RevoApi as l, RevoAuthenticationError as m, RevoBatchConfigurationError as n, RevoBatchLimitError as o, type RevoBatchLimits as p, type RevoBatchOptions as q, RevoConfigurationError as r, RevoError as s, RevoPermissionDeniedError as t, RevoProtocolError as u, RevoRemoteError as v, RevoRuntimeContextUnavailableError as w, RevoTransportError as x, type RuntimeBatchRequest as y, type RuntimeBatchResponse as z };
3219
+ 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 };