@squidcloud/client 1.0.477 → 1.0.479
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/internal-common/src/public-types/ai-agent.public-types.d.ts +51 -12
- package/dist/internal-common/src/public-types/ai-common.public-types.d.ts +2 -2
- package/dist/internal-common/src/public-types/ai-knowledge-base.public-types.d.ts +38 -7
- package/dist/internal-common/src/public-types/ai-query.public-types.d.ts +45 -0
- package/dist/internal-common/src/public-types/backend.public-types.d.ts +1 -1
- package/dist/internal-common/src/public-types/extraction.public-types.d.ts +31 -0
- package/dist/internal-common/src/public-types/integration.public-types.d.ts +1 -1
- package/dist/internal-common/src/public-types/metadata-filter.public-types.d.ts +27 -10
- package/dist/internal-common/src/public-types/query.public-types.d.ts +5 -2
- package/dist/internal-common/src/public-utils/id-utils.d.ts +1 -4
- package/dist/typescript-client/src/ai-client.d.ts +13 -2
- package/dist/typescript-client/src/ai-knowledge-base/ai-knowledge-base-client-reference.d.ts +3 -1
- package/dist/typescript-client/src/execute-function-options.d.ts +1 -2
- package/dist/typescript-client/src/public-types.d.ts +1 -0
- package/dist/typescript-client/src/query/join-query-builder.factory.d.ts +1 -6
- package/dist/typescript-client/src/query/query-builder.factory.d.ts +1 -6
- package/dist/typescript-client/src/query/query.types.d.ts +7 -0
- package/dist/typescript-client/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/dist/internal-common/src/metric-name.d.ts +0 -14
- package/dist/internal-common/src/public-types-backend/api-call.public-context.d.ts +0 -30
- package/dist/internal-common/src/public-types-backend/mutation.public-context.d.ts +0 -148
- package/dist/internal-common/src/public-types-backend/native-query.public-context.d.ts +0 -72
- package/dist/internal-common/src/public-types-backend/query.public-context.d.ts +0 -190
- package/dist/internal-common/src/types/ai-agent.types.d.ts +0 -242
- package/dist/internal-common/src/types/ai-knowledge-base.types.d.ts +0 -202
- package/dist/internal-common/src/types/ai-matchmaking.types.d.ts +0 -59
- package/dist/internal-common/src/types/backend-function.types.d.ts +0 -1
- package/dist/internal-common/src/types/communication.types.d.ts +0 -1
- package/dist/internal-common/src/types/document.types.d.ts +0 -1
- package/dist/internal-common/src/types/file.types.d.ts +0 -6
- package/dist/internal-common/src/types/headers.types.d.ts +0 -17
- package/dist/internal-common/src/types/management-api-key.types.d.ts +0 -92
- package/dist/internal-common/src/types/mutation.types.d.ts +0 -1
- package/dist/internal-common/src/types/notification.types.d.ts +0 -5
- package/dist/internal-common/src/types/observability.types.d.ts +0 -163
- package/dist/internal-common/src/types/query.types.d.ts +0 -15
- package/dist/internal-common/src/types/secret.types.d.ts +0 -7
- package/dist/internal-common/src/types/socket.types.d.ts +0 -1
- package/dist/internal-common/src/types/stage.d.ts +0 -9
- package/dist/internal-common/src/types/time-units.d.ts +0 -1
- package/dist/internal-common/src/types/url-shortener.types.d.ts +0 -45
- package/dist/internal-common/src/utils/array.d.ts +0 -7
- package/dist/internal-common/src/utils/e2e-test-utils.d.ts +0 -2
- package/dist/internal-common/src/utils/file-utils.d.ts +0 -2
- package/dist/internal-common/src/utils/global.utils.d.ts +0 -1
- package/dist/internal-common/src/utils/http.d.ts +0 -11
- package/dist/internal-common/src/utils/lock.manager.d.ts +0 -14
- package/dist/internal-common/src/utils/metric-utils.d.ts +0 -4
- package/dist/internal-common/src/utils/metrics.types.d.ts +0 -7
- package/dist/internal-common/src/utils/object.d.ts +0 -86
- package/dist/internal-common/src/utils/serialization.d.ts +0 -18
- package/dist/internal-common/src/utils/squid.constants.d.ts +0 -6
- package/dist/internal-common/src/utils/trace-id-generator.d.ts +0 -1
- package/dist/internal-common/src/utils/validation.d.ts +0 -19
- package/dist/internal-common/src/websocket.impl.d.ts +0 -26
|
@@ -61,7 +61,11 @@ export interface GptImageOptions extends BaseAiGenerateImageOptions {
|
|
|
61
61
|
/** The number of images to generate; defaults to 1. */
|
|
62
62
|
numberOfImagesToGenerate?: number;
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Base options shared by all OpenAI audio transcription models.
|
|
66
|
+
* @category AI
|
|
67
|
+
*/
|
|
68
|
+
export interface BaseOpenAiAudioTranscribeOptions extends BaseAiAudioTranscribeOptions {
|
|
65
69
|
/** Specifies the model for audio transcription. */
|
|
66
70
|
modelName: OpenAiAudioTranscriptionModelName;
|
|
67
71
|
/** The temperature for sampling during transcription; defaults to model-specific value. */
|
|
@@ -423,15 +427,17 @@ export interface BaseAiChatOptions {
|
|
|
423
427
|
/** The context ID to use for the request. If not provided, the agent's default context will be used. */
|
|
424
428
|
memoryOptions?: AiAgentMemoryOptions;
|
|
425
429
|
/**
|
|
426
|
-
* Names a
|
|
427
|
-
* runs in
|
|
428
|
-
* one ask persist and are visible to later asks reusing the same id —
|
|
430
|
+
* Names a persistent working directory for CLI-backed agents (`claude-code`, `codex`). When set, the
|
|
431
|
+
* agent runs in a directory keyed by this id, synced across pod replicas via the shared workspace
|
|
432
|
+
* server, so files created in one ask persist and are visible to later asks reusing the same id —
|
|
433
|
+
* including across providers.
|
|
429
434
|
*
|
|
430
435
|
* Pass the same id consistently for a conversation; changing it points the agent at a different
|
|
431
436
|
* directory (and, for Claude Code, starts a fresh transcript). Must match `[A-Za-z0-9_-]` (1-200 chars).
|
|
432
|
-
* Ignored by non-CLI agents and when
|
|
437
|
+
* Ignored by non-CLI agents and when the workspace server is unconfigured (falls back to a pod-local,
|
|
438
|
+
* non-synced, ephemeral dir).
|
|
433
439
|
*/
|
|
434
|
-
|
|
440
|
+
workspaceId?: string;
|
|
435
441
|
/** Whether to disable the whole context for the request. Default to false. */
|
|
436
442
|
disableContext?: boolean;
|
|
437
443
|
/**
|
|
@@ -799,9 +805,16 @@ export interface AiAgentContext {
|
|
|
799
805
|
* @category AI
|
|
800
806
|
*/
|
|
801
807
|
export type AgentContextRequest = TextContextRequest | FileContextRequest;
|
|
802
|
-
|
|
808
|
+
/**
|
|
809
|
+
* Base fields shared by all agent context requests.
|
|
810
|
+
* @category AI
|
|
811
|
+
*/
|
|
812
|
+
export interface BaseContextRequest {
|
|
813
|
+
/** The unique identifier of the context item. */
|
|
803
814
|
contextId: string;
|
|
815
|
+
/** The type of the context content. */
|
|
804
816
|
type: AiKnowledgeBaseContextType;
|
|
817
|
+
/** Optional metadata associated with the context item. */
|
|
805
818
|
metadata?: AiContextMetadata;
|
|
806
819
|
}
|
|
807
820
|
/**
|
|
@@ -824,6 +837,14 @@ export interface UpsertContextStatusSuccess extends BaseUpsertContextStatus {
|
|
|
824
837
|
/** Whether the context upsert was successful or got an error. */
|
|
825
838
|
status: 'success';
|
|
826
839
|
}
|
|
840
|
+
/**
|
|
841
|
+
* Machine-readable code identifying a specific upsert failure reason.
|
|
842
|
+
*
|
|
843
|
+
* `DUPLICATE_CONTENT` means the request omitted a contextId and its content is
|
|
844
|
+
* byte-identical to an existing context in the same knowledge base.
|
|
845
|
+
* @category AI
|
|
846
|
+
*/
|
|
847
|
+
export type UpsertContextErrorCode = 'DUPLICATE_CONTENT';
|
|
827
848
|
/**
|
|
828
849
|
* Status of an individual context item after it failed to upsert.
|
|
829
850
|
*
|
|
@@ -835,6 +856,8 @@ export interface UpsertContextStatusError extends BaseUpsertContextStatus {
|
|
|
835
856
|
status: 'error';
|
|
836
857
|
/** Reason the upsert failed. */
|
|
837
858
|
errorMessage: string;
|
|
859
|
+
/** Machine-readable code for the failure, when one applies. */
|
|
860
|
+
errorCode?: UpsertContextErrorCode;
|
|
838
861
|
}
|
|
839
862
|
/**
|
|
840
863
|
* Status of an individual context item after attempting to upsert it.
|
|
@@ -981,6 +1004,12 @@ export interface UserAiAskResponse {
|
|
|
981
1004
|
cacheWriteInputTokens?: number;
|
|
982
1005
|
/** Total request cost in USD as reported by the provider. Only set by providers that compute it (e.g. claude-code). */
|
|
983
1006
|
totalCostUsd?: number;
|
|
1007
|
+
/**
|
|
1008
|
+
* True when the run succeeded but persisting its workspace (push) failed, so the working-directory
|
|
1009
|
+
* changes made during this ask may not survive to the next one. Only ever set for workspace-backed CLI
|
|
1010
|
+
* agents; absent otherwise.
|
|
1011
|
+
*/
|
|
1012
|
+
workspacePushFailed?: boolean;
|
|
984
1013
|
}
|
|
985
1014
|
/** Represents an annotation in the AI response. */
|
|
986
1015
|
export type AiAnnotation = AiFileAnnotation;
|
|
@@ -1002,10 +1031,21 @@ export type AiSessionContext = {
|
|
|
1002
1031
|
/** The ID of the job associated with the session. */
|
|
1003
1032
|
jobId: JobId;
|
|
1004
1033
|
/**
|
|
1005
|
-
*
|
|
1006
|
-
*
|
|
1007
|
-
|
|
1008
|
-
|
|
1034
|
+
* ID of the status update that triggered this session (e.g. the agent's "Calling AI Function"
|
|
1035
|
+
* event). Status updates emitted on behalf of this session nest under it in the status feed.
|
|
1036
|
+
*/
|
|
1037
|
+
parentStatusUpdateId?: string;
|
|
1038
|
+
/**
|
|
1039
|
+
* Whether the invoking agent has audit logging enabled. Sub-agents working on behalf of this
|
|
1040
|
+
* session gate their own audit-log writes on it, keeping one job's audit trail consistent.
|
|
1041
|
+
*/
|
|
1042
|
+
auditLog?: boolean;
|
|
1043
|
+
/**
|
|
1044
|
+
* The chat timeout (in milliseconds) the root chat request explicitly set. Present only when
|
|
1045
|
+
* the root request passed `timeoutMs`. Nested AI operations (e.g. AI-query stages spawned by a
|
|
1046
|
+
* tool call) budget against it so a long-running parent chat is not silently capped by the
|
|
1047
|
+
* nested defaults; explicitly configured per-stage `aiOptions.timeoutMs` is more specific and
|
|
1048
|
+
* takes precedence over it.
|
|
1009
1049
|
*/
|
|
1010
1050
|
timeoutMs?: number;
|
|
1011
1051
|
};
|
|
@@ -1160,4 +1200,3 @@ export interface ListChatModelsResponse {
|
|
|
1160
1200
|
/** All chat models available to the application. */
|
|
1161
1201
|
models: Array<ModelIdSpec>;
|
|
1162
1202
|
}
|
|
1163
|
-
export {};
|
|
@@ -24,7 +24,7 @@ export type AiFileProviderType = Extract<AiProviderType, 'openai' | 'gemini' | '
|
|
|
24
24
|
* Public OpenAI chat model names (active models only).
|
|
25
25
|
* @category AI
|
|
26
26
|
*/
|
|
27
|
-
export declare const OPENAI_CHAT_MODEL_NAMES: readonly ["gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.5", "gpt-5.5-pro"];
|
|
27
|
+
export declare const OPENAI_CHAT_MODEL_NAMES: readonly ["gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.5", "gpt-5.5-pro", "gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna"];
|
|
28
28
|
/**
|
|
29
29
|
* Public Gemini chat model names (active models only).
|
|
30
30
|
* @category AI
|
|
@@ -44,7 +44,7 @@ export declare const ANTHROPIC_CHAT_MODEL_NAMES: readonly ["claude-haiku-4-5-202
|
|
|
44
44
|
* The supported AI model names.
|
|
45
45
|
* @category AI
|
|
46
46
|
*/
|
|
47
|
-
export declare const VENDOR_AI_CHAT_MODEL_NAMES: readonly ["gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.5", "gpt-5.5-pro", "claude-haiku-4-5-20251001", "claude-opus-4-8", "claude-sonnet-5", "gemini-3.1-pro", "gemini-3.5-flash", "gemini-3.1-flash-lite", "grok-4.3", "grok-4-1-fast-reasoning", "grok-4-1-fast-non-reasoning"];
|
|
47
|
+
export declare const VENDOR_AI_CHAT_MODEL_NAMES: readonly ["gpt-5.4-mini", "gpt-5.4-nano", "gpt-5.5", "gpt-5.5-pro", "gpt-5.6-sol", "gpt-5.6-terra", "gpt-5.6-luna", "claude-haiku-4-5-20251001", "claude-opus-4-8", "claude-sonnet-5", "gemini-3.1-pro", "gemini-3.5-flash", "gemini-3.1-flash-lite", "grok-4.3", "grok-4-1-fast-reasoning", "grok-4-1-fast-non-reasoning"];
|
|
48
48
|
/** Checks if the given model name is a global AI chat model name. */
|
|
49
49
|
export declare function isVendorAiChatModelName(modelName: unknown): modelName is VendorAiChatModelName;
|
|
50
50
|
/**
|
|
@@ -211,6 +211,11 @@ export interface AiKnowledgeBaseContext {
|
|
|
211
211
|
* user-supplied values are preserved; consumers can also use this to caveat extracted values.
|
|
212
212
|
*/
|
|
213
213
|
autoExtractedMetadataFields?: string[];
|
|
214
|
+
/**
|
|
215
|
+
* SHA-256 (hex) of the source bytes (file) or UTF-8 text this context was ingested from. Powers
|
|
216
|
+
* content-level dedup on upsert. Absent on legacy contexts ingested before hashing was introduced.
|
|
217
|
+
*/
|
|
218
|
+
contentHash?: string;
|
|
214
219
|
/** Original request configuration for how the context content was processed. */
|
|
215
220
|
requestConfig?: AgentContextRequest;
|
|
216
221
|
}
|
|
@@ -222,9 +227,16 @@ export type AiKnowledgeBaseContextType = 'text' | 'file';
|
|
|
222
227
|
* @category AI
|
|
223
228
|
*/
|
|
224
229
|
export type AiKnowledgeBaseContextRequest = AiKnowledgeBaseTextContextRequest | AiKnowledgeBaseFileContextRequest;
|
|
225
|
-
|
|
226
|
-
|
|
230
|
+
/**
|
|
231
|
+
* Base fields shared by all knowledge base context requests.
|
|
232
|
+
* @category AI
|
|
233
|
+
*/
|
|
234
|
+
export interface BaseAiKnowledgeBaseContextRequest {
|
|
235
|
+
/** The unique identifier of the context item. */
|
|
236
|
+
contextId?: string;
|
|
237
|
+
/** The type of the context content. */
|
|
227
238
|
type: AiKnowledgeBaseContextType;
|
|
239
|
+
/** Optional metadata associated with the context item. */
|
|
228
240
|
metadata?: AiContextMetadata;
|
|
229
241
|
}
|
|
230
242
|
/**
|
|
@@ -255,8 +267,13 @@ export type AiKnowledgeBaseTextFormat = 'auto' | 'markdown' | 'html' | 'plain';
|
|
|
255
267
|
* @category AI
|
|
256
268
|
*/
|
|
257
269
|
export interface AiKnowledgeBaseTextContextRequest extends BaseAiKnowledgeBaseContextRequest {
|
|
258
|
-
/**
|
|
259
|
-
|
|
270
|
+
/**
|
|
271
|
+
* The id of the context. Optional: when omitted, the server generates one and rejects the upload if
|
|
272
|
+
* another context in the knowledge base already holds identical content (content-level dedup). Provide
|
|
273
|
+
* an explicit id to address a specific context — that overwrites it unconditionally and allows duplicate
|
|
274
|
+
* content across different ids.
|
|
275
|
+
*/
|
|
276
|
+
contextId?: AiContextId;
|
|
260
277
|
/** Specifies the context type as 'text'. */
|
|
261
278
|
type: 'text';
|
|
262
279
|
/** A title for the text context. */
|
|
@@ -291,8 +308,13 @@ export interface AiKnowledgeBaseTextContextRequest extends BaseAiKnowledgeBaseCo
|
|
|
291
308
|
* @category AI
|
|
292
309
|
*/
|
|
293
310
|
export interface AiKnowledgeBaseFileContextRequest extends BaseAiKnowledgeBaseContextRequest {
|
|
294
|
-
/**
|
|
295
|
-
|
|
311
|
+
/**
|
|
312
|
+
* The id of the context. Optional: when omitted, the server generates one and rejects the upload if
|
|
313
|
+
* another context in the knowledge base already holds identical content (content-level dedup). Provide
|
|
314
|
+
* an explicit id to address a specific context — that overwrites it unconditionally and allows duplicate
|
|
315
|
+
* content across different ids.
|
|
316
|
+
*/
|
|
317
|
+
contextId?: AiContextId;
|
|
296
318
|
/** Specifies the context type as 'file'. */
|
|
297
319
|
type: 'file';
|
|
298
320
|
/** Whether to extract images from the file; defaults to false. */
|
|
@@ -403,6 +425,16 @@ export interface UpsertKnowledgeBaseContextResponse {
|
|
|
403
425
|
export interface UpsertKnowledgeBaseContextsResponse {
|
|
404
426
|
/** List of the upsert status of each item sent in the request. */
|
|
405
427
|
failures: Array<UpsertContextStatusError>;
|
|
428
|
+
/**
|
|
429
|
+
* The context id of every request in the batch, positionally aligned with the `contextRequests` array
|
|
430
|
+
* that was sent — `contextIds[i]` is the id of the i-th request. Each entry is the caller-supplied id,
|
|
431
|
+
* or the id the server generated when the request omitted one, and is present regardless of whether that
|
|
432
|
+
* request succeeded or failed. Lets a caller that upserts without a contextId learn the assigned id.
|
|
433
|
+
*
|
|
434
|
+
* Optional because a newer client talking to an older core (which predates this field) receives it as
|
|
435
|
+
* `undefined` at runtime — callers must handle its absence rather than trust it is always populated.
|
|
436
|
+
*/
|
|
437
|
+
contextIds?: Array<AiContextId>;
|
|
406
438
|
}
|
|
407
439
|
/**
|
|
408
440
|
* Request structure for searching an AiKnowledgeBase
|
|
@@ -568,4 +600,3 @@ export interface GeneratedMetadataFieldDescription {
|
|
|
568
600
|
/** The AI-generated description for the field. */
|
|
569
601
|
description: string;
|
|
570
602
|
}
|
|
571
|
-
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AiAgentMemoryOptions, AiChatOptions, AiFileUrl, AiSessionContext } from './ai-agent.public-types';
|
|
2
|
+
import { AiChatModelName } from './ai-common.public-types';
|
|
2
3
|
import { ApiOptions } from './api-client.public-types';
|
|
3
4
|
import { AiAgentId, IntegrationId } from './communication.public-types';
|
|
4
5
|
import { PartialBy } from './typescript.public-types';
|
|
@@ -201,3 +202,47 @@ export interface ExecuteAiApiResponse {
|
|
|
201
202
|
/** Indicates whether the API request execution was successful. */
|
|
202
203
|
success: boolean;
|
|
203
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* Options for executing an AI-powered query over spreadsheet files.
|
|
207
|
+
* @category AI
|
|
208
|
+
*/
|
|
209
|
+
export interface AiSpreadsheetQueryOptions {
|
|
210
|
+
/**
|
|
211
|
+
* Extra instructions honored when composing the answer (e.g. formatting rules or domain
|
|
212
|
+
* conventions of the calling agent).
|
|
213
|
+
*/
|
|
214
|
+
instructions?: string;
|
|
215
|
+
/** Overrides the model used to answer the query. */
|
|
216
|
+
model?: AiChatModelName;
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Request for executing an AI-powered query over spreadsheet files.
|
|
220
|
+
* @category AI
|
|
221
|
+
*/
|
|
222
|
+
export interface ExecuteAiSpreadsheetQueryRequest {
|
|
223
|
+
/** Natural language question to answer using the spreadsheet data. */
|
|
224
|
+
prompt: string;
|
|
225
|
+
/** The spreadsheet files to query. */
|
|
226
|
+
files: Array<AiFileUrl>;
|
|
227
|
+
/** Optional query options. */
|
|
228
|
+
options?: AiSpreadsheetQueryOptions;
|
|
229
|
+
/** Optional session context for status updates and tracing. */
|
|
230
|
+
sessionContext?: AiSessionContext;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Response from executing an AI-powered query over spreadsheet files.
|
|
234
|
+
* @category AI
|
|
235
|
+
*/
|
|
236
|
+
export interface ExecuteAiSpreadsheetQueryResponse {
|
|
237
|
+
/** AI-generated answer computed from the spreadsheet data. */
|
|
238
|
+
answer: string;
|
|
239
|
+
/** Indicates whether the query execution was successful. */
|
|
240
|
+
success: boolean;
|
|
241
|
+
/**
|
|
242
|
+
* All Python code executed to produce the answer, in execution order. Each step ran as its own
|
|
243
|
+
* sandbox script; multiple steps are joined with `# --- Step N ---` separators.
|
|
244
|
+
*/
|
|
245
|
+
executedCode?: string;
|
|
246
|
+
/** Files produced while answering (e.g. charts or exports emitted by the executed code). */
|
|
247
|
+
files?: Array<AiFileUrl>;
|
|
248
|
+
}
|
|
@@ -17,7 +17,7 @@ export type FunctionName = string;
|
|
|
17
17
|
*/
|
|
18
18
|
export interface AiFunctionIdWithContext {
|
|
19
19
|
/**
|
|
20
|
-
* The ID of the AI function as described in
|
|
20
|
+
* The ID of the AI function as described in the `@aiFunction` decorator.
|
|
21
21
|
* Historically named as 'name' because AI function name is the default value for 'ID'.
|
|
22
22
|
*/
|
|
23
23
|
name: AiFunctionId;
|
|
@@ -105,6 +105,32 @@ export interface ExtractDataFromDocumentPage {
|
|
|
105
105
|
*/
|
|
106
106
|
images: Array<ExtractDataFromDocumentImage>;
|
|
107
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Structural information about one sheet of a spreadsheet file.
|
|
110
|
+
*/
|
|
111
|
+
export interface SpreadsheetSheetInfo {
|
|
112
|
+
/**
|
|
113
|
+
* The sheet name.
|
|
114
|
+
*/
|
|
115
|
+
name: string;
|
|
116
|
+
/**
|
|
117
|
+
* Number of data rows in the sheet (excluding the header row).
|
|
118
|
+
*/
|
|
119
|
+
rowCount: number;
|
|
120
|
+
/**
|
|
121
|
+
* Number of columns in the sheet.
|
|
122
|
+
*/
|
|
123
|
+
columnCount: number;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Structural information about a parseable spreadsheet document.
|
|
127
|
+
*/
|
|
128
|
+
export interface SpreadsheetDocumentInfo {
|
|
129
|
+
/**
|
|
130
|
+
* The sheets of the spreadsheet, in workbook order.
|
|
131
|
+
*/
|
|
132
|
+
sheets: Array<SpreadsheetSheetInfo>;
|
|
133
|
+
}
|
|
108
134
|
/**
|
|
109
135
|
* The full result of extracting data from a document, including all pages and any extracted images.
|
|
110
136
|
*/
|
|
@@ -122,6 +148,11 @@ export interface ExtractDataFromDocumentResponse {
|
|
|
122
148
|
* extractor was able to read it.
|
|
123
149
|
*/
|
|
124
150
|
documentMetadata?: DocumentMetadata;
|
|
151
|
+
/**
|
|
152
|
+
* Structural information about the sheets when the document is a parseable spreadsheet
|
|
153
|
+
* (best-effort). Presence marks the document for the spreadsheet summary-embedding lane.
|
|
154
|
+
*/
|
|
155
|
+
spreadsheet?: SpreadsheetDocumentInfo;
|
|
125
156
|
}
|
|
126
157
|
/**
|
|
127
158
|
* Create PDF request type.
|
|
@@ -4,7 +4,7 @@ export declare const INTEGRATION_TYPES: readonly ["active_directory", "ai_agents
|
|
|
4
4
|
/**
|
|
5
5
|
* @category Database
|
|
6
6
|
*/
|
|
7
|
-
export declare const DATA_INTEGRATION_TYPES: readonly ["bigquery", "built_in_db", "clickhouse", "cockroach", "dynamodb", "mongo", "mssql", "databricks", "mysql", "oracledb", "postgres", "
|
|
7
|
+
export declare const DATA_INTEGRATION_TYPES: readonly ["bigquery", "built_in_db", "clickhouse", "cockroach", "dynamodb", "mongo", "mssql", "databricks", "mysql", "oracledb", "postgres", "snowflake", "elasticsearch", "legend"];
|
|
8
8
|
/**
|
|
9
9
|
* @category Auth
|
|
10
10
|
*/
|
|
@@ -12,31 +12,49 @@
|
|
|
12
12
|
export type MetadataValue = number | string | boolean | undefined;
|
|
13
13
|
/** Array of metadata values (used by `$in` / `$nin`). */
|
|
14
14
|
export type MetadataValueArray = MetadataValue[];
|
|
15
|
-
|
|
15
|
+
/** Matches when the field equals the given value. */
|
|
16
|
+
export interface MetadataEqFilter {
|
|
17
|
+
/** The value the field must equal. */
|
|
16
18
|
$eq: MetadataValue;
|
|
17
19
|
}
|
|
18
|
-
|
|
20
|
+
/** Matches when the field does not equal the given value. */
|
|
21
|
+
export interface MetadataNeFilter {
|
|
22
|
+
/** The value the field must not equal. */
|
|
19
23
|
$ne: MetadataValue;
|
|
20
24
|
}
|
|
21
|
-
|
|
25
|
+
/** Matches when the field is greater than the given value. */
|
|
26
|
+
export interface MetadataGtFilter {
|
|
27
|
+
/** The value the field must be greater than. */
|
|
22
28
|
$gt: number;
|
|
23
29
|
}
|
|
24
|
-
|
|
30
|
+
/** Matches when the field is greater than or equal to the given value. */
|
|
31
|
+
export interface MetadataGteFilter {
|
|
32
|
+
/** The value the field must be greater than or equal to. */
|
|
25
33
|
$gte: number;
|
|
26
34
|
}
|
|
27
|
-
|
|
35
|
+
/** Matches when the field is less than the given value. */
|
|
36
|
+
export interface MetadataLtFilter {
|
|
37
|
+
/** The value the field must be less than. */
|
|
28
38
|
$lt: number;
|
|
29
39
|
}
|
|
30
|
-
|
|
40
|
+
/** Matches when the field is less than or equal to the given value. */
|
|
41
|
+
export interface MetadataLteFilter {
|
|
42
|
+
/** The value the field must be less than or equal to. */
|
|
31
43
|
$lte: number;
|
|
32
44
|
}
|
|
33
|
-
|
|
45
|
+
/** Matches when the field value is one of the given values. */
|
|
46
|
+
export interface MetadataInFilter {
|
|
47
|
+
/** The values the field must be one of. */
|
|
34
48
|
$in: MetadataValueArray;
|
|
35
49
|
}
|
|
36
|
-
|
|
50
|
+
/** Matches when the field value is not one of the given values. */
|
|
51
|
+
export interface MetadataNinFilter {
|
|
52
|
+
/** The values the field must not be one of. */
|
|
37
53
|
$nin: MetadataValueArray;
|
|
38
54
|
}
|
|
39
|
-
|
|
55
|
+
/** Matches based on whether the field exists. */
|
|
56
|
+
export interface MetadataExistsFilter {
|
|
57
|
+
/** Whether the field must exist. */
|
|
40
58
|
$exists: boolean;
|
|
41
59
|
}
|
|
42
60
|
/** A single-field operator: one of `$eq`, `$ne`, `$gt`, `$gte`, `$lt`, `$lte`, `$in`, `$nin`, `$exists`. */
|
|
@@ -82,4 +100,3 @@ export interface MetadataOrFilter {
|
|
|
82
100
|
* ```
|
|
83
101
|
*/
|
|
84
102
|
export type MetadataFilter = MetadataFieldFilter | MetadataAndFilter | MetadataOrFilter;
|
|
85
|
-
export {};
|
|
@@ -60,7 +60,11 @@ export interface CompositeCondition<Doc extends DocumentData = any> {
|
|
|
60
60
|
/** An array of simple conditions with restricted operators for composite evaluation. */
|
|
61
61
|
fields: Array<SimpleCondition<Doc, Paths<Doc>, CompositeConditionOperator>>;
|
|
62
62
|
}
|
|
63
|
-
|
|
63
|
+
/**
|
|
64
|
+
* Set of operators supported by `CompositeCondition`.
|
|
65
|
+
* @category Database
|
|
66
|
+
*/
|
|
67
|
+
export type CompositeConditionOperator = '>=' | '<=' | '>' | '<';
|
|
64
68
|
/**
|
|
65
69
|
* Set of operators supported by `DocIdCondition`.
|
|
66
70
|
* @category Database
|
|
@@ -143,4 +147,3 @@ export interface LimitBy<Doc extends DocumentData = any> {
|
|
|
143
147
|
/** Indicates whether to reverse the sort order for this limit. */
|
|
144
148
|
reverseSort: boolean;
|
|
145
149
|
}
|
|
146
|
-
export {};
|
|
@@ -19,10 +19,7 @@ export declare const DEFAULT_SHORT_ID_LENGTH = 18;
|
|
|
19
19
|
export declare function generateShortId(length?: number, prefix?: string, prefixToAvoid?: string): string;
|
|
20
20
|
/**
|
|
21
21
|
* Generates a set of unique IDs under the same behavior as `generateShortId`.
|
|
22
|
-
*
|
|
23
|
-
* @param length The length of the ID to be generated. Default is 18.
|
|
24
|
-
* @param prefix The prefix of the generated ID. Default is an empty string.
|
|
25
|
-
* @param count The number of IDs to be generated.
|
|
22
|
+
* See `GenerateShortIdsOptions` for the available options.
|
|
26
23
|
*/
|
|
27
24
|
export declare function generateShortIds({ count, length, prefix }: GenerateShortIdsOptions): string[];
|
|
28
25
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import { AiFunctionMetadata } from '../../internal-common/src/public-types/ai-function.public-types';
|
|
3
|
-
import { AiQueryOptions, AiQueryResponse, ExecuteAiApiResponse } from '../../internal-common/src/public-types/ai-query.public-types';
|
|
3
|
+
import { AiQueryOptions, AiQueryResponse, AiSpreadsheetQueryOptions, ExecuteAiApiResponse, ExecuteAiSpreadsheetQueryResponse } from '../../internal-common/src/public-types/ai-query.public-types';
|
|
4
4
|
import { AiAgentClientOptions } from './agent/ai-agent-client';
|
|
5
5
|
import { AiAgentReference } from './agent/ai-agent-client-reference';
|
|
6
6
|
import { AiAudioClient } from './ai-audio-client';
|
|
@@ -8,7 +8,7 @@ import { AiFilesClient } from './ai-files-client';
|
|
|
8
8
|
import { AiImageClient } from './ai-image-client';
|
|
9
9
|
import { AiKnowledgeBaseReference } from './ai-knowledge-base/ai-knowledge-base-client-reference';
|
|
10
10
|
import { AiMatchMakingClient } from './ai-matchmaking-client';
|
|
11
|
-
import { AiAgent, AiAgentApiIntegrationOptions, AiAgentId, AiFileProviderType, AiKnowledgeBase, AiKnowledgeBaseId, AiProviderType, AiSessionContext, AiStatusMessage, ApplicationAiSettings, IntegrationId, JobId, ListChatModelsRequest, ModelIdSpec, SecretKey } from './public-types';
|
|
11
|
+
import { AiAgent, AiAgentApiIntegrationOptions, AiAgentId, AiFileProviderType, AiFileUrl, AiKnowledgeBase, AiKnowledgeBaseId, AiProviderType, AiSessionContext, AiStatusMessage, ApplicationAiSettings, IntegrationId, JobId, ListChatModelsRequest, ModelIdSpec, SecretKey } from './public-types';
|
|
12
12
|
/**
|
|
13
13
|
* AiClient class serves as a facade for interacting with different AI services.
|
|
14
14
|
* It provides simplified access to AI chatbot and assistant functionalities
|
|
@@ -121,6 +121,17 @@ export declare class AiClient {
|
|
|
121
121
|
* @returns Promise resolving to the API call result with answer and execution details
|
|
122
122
|
*/
|
|
123
123
|
executeAiApiCall(integrationId: IntegrationId, prompt: string, options?: AiAgentApiIntegrationOptions, sessionContext?: AiSessionContext): Promise<ExecuteAiApiResponse>;
|
|
124
|
+
/**
|
|
125
|
+
* Executes an AI-powered query over spreadsheet files. The AI lists sheets and runs Python code
|
|
126
|
+
* against the actual files in a sandbox to compute the answer.
|
|
127
|
+
*
|
|
128
|
+
* @param prompt - Natural language question to answer using the spreadsheet data
|
|
129
|
+
* @param files - The spreadsheet files to query
|
|
130
|
+
* @param options - Optional query options (extra instructions, model override)
|
|
131
|
+
* @param sessionContext - Optional session context for status updates and tracing
|
|
132
|
+
* @returns Promise resolving to the computed answer and execution details
|
|
133
|
+
*/
|
|
134
|
+
executeAiSpreadsheetQuery(prompt: string, files: Array<AiFileUrl>, options?: AiSpreadsheetQueryOptions, sessionContext?: AiSessionContext): Promise<ExecuteAiSpreadsheetQueryResponse>;
|
|
124
135
|
/**
|
|
125
136
|
* Returns name of the secret that stores API key for the given AI provider type.
|
|
126
137
|
* This API key is used for all requests to the AI provider done from the application.
|
package/dist/typescript-client/src/ai-knowledge-base/ai-knowledge-base-client-reference.d.ts
CHANGED
|
@@ -66,7 +66,9 @@ export declare class AiKnowledgeBaseReference {
|
|
|
66
66
|
*/
|
|
67
67
|
upsertContext(contextRequest: AiKnowledgeBaseContextRequest, file?: File): Promise<UpsertKnowledgeBaseContextResponse>;
|
|
68
68
|
/**
|
|
69
|
-
* Adds or updates multiple contexts.
|
|
69
|
+
* Adds or updates multiple contexts. A context request may omit its `contextId`; when it does, the server
|
|
70
|
+
* generates one and rejects the request if identical content already exists in the knowledge base
|
|
71
|
+
* (content-level dedup). Requests that carry an explicit `contextId` overwrite that context unconditionally.
|
|
70
72
|
*/
|
|
71
73
|
upsertContexts(contextRequests: Array<AiKnowledgeBaseContextRequest>, files?: Array<File>): Promise<UpsertKnowledgeBaseContextsResponse>;
|
|
72
74
|
/**
|
|
@@ -48,7 +48,7 @@ export interface ExecuteFunctionCachedResult<T> {
|
|
|
48
48
|
cacheTimeMillis: number;
|
|
49
49
|
}
|
|
50
50
|
/** Options for `LastUsedValueExecuteFunctionCache`. */
|
|
51
|
-
interface LastUsedValueExecuteFunctionCacheOptions {
|
|
51
|
+
export interface LastUsedValueExecuteFunctionCacheOptions {
|
|
52
52
|
/** Argument equality comparator. */
|
|
53
53
|
argsComparator: ExecuteFunctionArgsComparator;
|
|
54
54
|
/** Validity duration in milliseconds. */
|
|
@@ -70,4 +70,3 @@ export interface ConcurrentCallDeduplicationOptions {
|
|
|
70
70
|
/** Comparator to determine if concurrent calls are equivalent. */
|
|
71
71
|
argsComparator: ExecuteFunctionArgsComparator;
|
|
72
72
|
}
|
|
73
|
-
export {};
|
|
@@ -20,6 +20,7 @@ export * from '../../internal-common/src/public-types/extraction.public-types';
|
|
|
20
20
|
export * from '../../internal-common/src/public-types/http-status.public-types';
|
|
21
21
|
export * from '../../internal-common/src/public-types/integration.public-types';
|
|
22
22
|
export * from '../../internal-common/src/public-types/job.public-types';
|
|
23
|
+
export * from '../../internal-common/src/public-types/metadata-filter.public-types';
|
|
23
24
|
export * from '../../internal-common/src/public-types/metric.public-types';
|
|
24
25
|
export * from '../../internal-common/src/public-types/openapi.public-types';
|
|
25
26
|
export * from '../../internal-common/src/public-types/query.public-types';
|
|
@@ -3,12 +3,8 @@ import { DocumentReference } from '../document-reference';
|
|
|
3
3
|
import { Alias, DOC_ID_FIELD, DocIdOrDocIdObj, DocumentData, FieldName, FieldSort, Operator, PrimitiveFieldType, Query, SerializedJoinQuery, SimpleCondition } from '../public-types';
|
|
4
4
|
import { Pagination, PaginationOptions } from './pagination';
|
|
5
5
|
import { BaseQueryBuilder, HasDereference, QueryBuilder } from './query-builder.factory';
|
|
6
|
+
import { ProjectedResult } from './query.types';
|
|
6
7
|
import { SnapshotEmitter } from './snapshot-emitter';
|
|
7
|
-
/** Result type after projection: only the selected fields.
|
|
8
|
-
* Note: __docId__ and PKs are still returned at runtime, but not included in the type.
|
|
9
|
-
* Users must explicitly project fields they want in the type.
|
|
10
|
-
*/
|
|
11
|
-
type ProjectedResult<T, K extends keyof T> = Pick<T, K>;
|
|
12
8
|
/**
|
|
13
9
|
* Represents the result of a join query where each property is a document reference,
|
|
14
10
|
* grouped by alias instead of containing DocumentData.
|
|
@@ -325,4 +321,3 @@ export declare class GroupedJoin<Aliases extends Record<Alias, Alias[]>, ReturnT
|
|
|
325
321
|
paginate(options?: Partial<PaginationOptions>): Pagination<Grouped<Aliases, WithDocumentReferences<ReturnType>, RootAlias>>;
|
|
326
322
|
private groupData;
|
|
327
323
|
}
|
|
328
|
-
export {};
|
|
@@ -2,12 +2,8 @@ import { Observable } from 'rxjs';
|
|
|
2
2
|
import { DocumentReference } from '../document-reference';
|
|
3
3
|
import { DOC_ID_FIELD, DocIdOrDocIdObj, DocumentData, FieldName, FieldSort, Operator, PrimitiveFieldType, Query, QueryDeleteResult, SerializedSimpleQuery, SimpleCondition } from '../public-types';
|
|
4
4
|
import { Pagination, PaginationOptions } from './pagination';
|
|
5
|
+
import { ProjectedResult } from './query.types';
|
|
5
6
|
import { SnapshotEmitter } from './snapshot-emitter';
|
|
6
|
-
/** Result type after projection: only the selected fields.
|
|
7
|
-
* Note: __docId__ and PKs are still returned at runtime, but not included in the type.
|
|
8
|
-
* Users must explicitly project fields they want in the type.
|
|
9
|
-
*/
|
|
10
|
-
type ProjectedResult<T, K extends keyof T> = Pick<T, K>;
|
|
11
7
|
/**
|
|
12
8
|
* Interface used solely for inheritDoc
|
|
13
9
|
* @category Database
|
|
@@ -275,4 +271,3 @@ export declare class Changes<DocumentType extends DocumentData> {
|
|
|
275
271
|
/** The actual document data that was deleted from the query result */
|
|
276
272
|
readonly deletes: Array<DocumentType>;
|
|
277
273
|
}
|
|
278
|
-
export {};
|
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { Alias, SquidDocument } from '../public-types';
|
|
2
2
|
/** Two transactions cannot run in parallel - this mutex is used for blocking a second transaction. */
|
|
3
3
|
export declare const RUN_IN_TRANSACTION_MUTEX = "dataManager_runInTransaction";
|
|
4
|
+
/**
|
|
5
|
+
* Result type after projection: only the selected fields.
|
|
6
|
+
* Note: __docId__ and PKs are still returned at runtime, but not included in the type.
|
|
7
|
+
* Users must explicitly project fields they want in the type.
|
|
8
|
+
* @category Database
|
|
9
|
+
*/
|
|
10
|
+
export type ProjectedResult<T, K extends keyof T> = Pick<T, K>;
|
|
4
11
|
/**
|
|
5
12
|
* Represents a collection of documents associated with a specific alias
|
|
6
13
|
* in a query, typically used in joined query results.
|
package/package.json
CHANGED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Names of the Squid metrics.
|
|
3
|
-
*
|
|
4
|
-
* This list and its Kotlin counterpart (MetricName.kt) may diverge:
|
|
5
|
-
* each side declares only the metrics that its own backend emits.
|
|
6
|
-
* However, metrics emitted by both backends MUST use identical names on both sides —
|
|
7
|
-
* otherwise dashboards and metric queries that mix data from both sources will break.
|
|
8
|
-
*
|
|
9
|
-
* See MetricName.kt for documentation on each value.
|
|
10
|
-
*/
|
|
11
|
-
export declare const ALL_SQUID_METRIC_NAMES: readonly ["squid_functionExecution_count", "squid_functionExecution_time", "squid_aiChatbotContext_size", "squid_aiChatbotChatInputTokens_count", "squid_aiChatbotChatOutputTokens_count", "squid_aiChatbotChatReasoningTokens_count", "squid_aiChatbotChatCacheReadInputTokens_count", "squid_aiChatbotChatCacheWriteInputTokens_count", "squid_aiChatbotChatCostUsd_count", "squid_aiChatbotChatOutcome_count", "squid_aiImageGeneration_count", "squid_aiImageGeneration_time", "squid_aiRemoveBackground_count", "squid_aiRemoveBackground_time", "squid_aiAudioTranscribe_count", "squid_aiAudioTranscribe_time", "squid_aiAudioCreateSpeech_count", "squid_aiAudioCreateSpeech_time", "squid_aiIntegrationData_count", "squid_aiIntegrationData_time", "squid_aiIntegrationApi_count", "squid_aiIntegrationApi_time", "squid_apiControllerCall_count", "squid_apiControllerCall_time", "squid_aiContextUpsert_count", "squid_aiContextDelete_count", "squid_codeInitialization_count", "squid_codeInitialization_time", "squid_deleteApiKey_count", "squid_deleteApiKey_time", "squid_deleteSecret_count", "squid_deleteSecret_time", "squid_discoverGraphQLConnectionSchema_count", "squid_discoverGraphQLConnectionSchema_time", "squid_discoverOpenApiSchema_count", "squid_discoverOpenApiSchema_time", "squid_discoverOpenApiSchemaFromFile_count", "squid_discoverOpenApiSchemaFromFile_time", "squid_executeBackendFunction_count", "squid_executeBackendFunction_time", "squid_apiControllerCall_count", "squid_apiControllerCall_time", "squid_getAiChatbotProfiles_count", "squid_getAiChatbotProfiles_time", "squid_getAllApiKeys_count", "squid_getAllApiKeys_time", "squid_getAllSecrets_count", "squid_getAllSecrets_time", "squid_getAppApiKey_count", "squid_getAppApiKey_time", "squid_getSecret_count", "squid_getSecret_time", "squid_graphql_count", "squid_graphql_time", "squid_graphqlQuery_count", "squid_graphqlQuery_time", "squid_integrationCount_value", "squid_mutate_count", "squid_mutate_time", "squid_metricQuery_count", "squid_metricQuery_time", "squid_metricReport_count", "squid_metricReport_time", "squid_nativeQuery_count", "squid_nativeQuery_time", "squid_openapi_count", "squid_openapi_time", "squid_produceTopicMessage_count", "squid_produceTopicMessage_time", "squid_query_count", "squid_query_time", "squid_registerQuery_count", "squid_registerQuery_time", "squid_rerankChunks_count", "squid_rerankChunks_time", "squid_schedulerJob_count", "squid_schedulerJob_time", "squid_eventHandler_count", "squid_eventHandler_time", "squid_schema_size", "squid_secrets_entries", "squid_storageDeleteFiles_count", "squid_storageDeleteFiles_time", "squid_storageGetDownloadUrl_count", "squid_storageGetDownloadUrl_time", "squid_storageGetFileMetadata_count", "squid_storageGetFileMetadata_time", "squid_storageListDirectoryContents_count", "squid_storageListDirectoryContents_time", "squid_storageUploadFile_count", "squid_storageUploadFile_time", "squid_subscribeToTopic_count", "squid_subscribeToTopic_time", "squid_testGraphQLConnection_count", "squid_testGraphQLConnection_time", "squid_testAgentProtocolConnection_count", "squid_testAgentProtocolConnection_time", "squid_trigger_count", "squid_trigger_time", "squid_upsertApiKey_count", "squid_upsertApiKey_time", "squid_upsertSecret_count", "squid_upsertSecret_time", "squid_vectorChunks_count", "squid_vectorChunks_time", "squid_webhook_count", "squid_webhook_time", "squid_acquireLock_count", "squid_acquireLock_time", "squid_releaseLock_count", "squid_releaseLock_time"];
|
|
12
|
-
export type MetricName = (typeof ALL_SQUID_METRIC_NAMES)[number];
|
|
13
|
-
/** Common prefix for all Squid metrics. */
|
|
14
|
-
export declare const SQUID_METRIC_NAME_PREFIX = "squid_";
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ApiOptions } from '../public-types/api-client.public-types';
|
|
2
|
-
import { ApiEndpointId, HttpMethod } from '../public-types/api.public-types';
|
|
3
|
-
import { IntegrationId } from '../public-types/communication.public-types';
|
|
4
|
-
/** The headers of an API call. */
|
|
5
|
-
export type ApiHeaders = Record<string, string | number | boolean>;
|
|
6
|
-
/** The context of an API call. */
|
|
7
|
-
export declare class ApiCallContext {
|
|
8
|
-
readonly integrationId: IntegrationId;
|
|
9
|
-
readonly endpointId: ApiEndpointId;
|
|
10
|
-
readonly url: string;
|
|
11
|
-
readonly method: HttpMethod;
|
|
12
|
-
readonly body: unknown;
|
|
13
|
-
readonly options: ApiOptions;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Represents a request to call an API through a specified integration and endpoint.
|
|
17
|
-
* Includes optional method override and additional request options.
|
|
18
|
-
*/
|
|
19
|
-
export interface CallApiRequest<BodyType = any> {
|
|
20
|
-
/** The identifier of the integration through which the API is called. */
|
|
21
|
-
integrationId: IntegrationId;
|
|
22
|
-
/** Target API endpoint to invoke. */
|
|
23
|
-
endpointId: ApiEndpointId;
|
|
24
|
-
/** Optional request payload. */
|
|
25
|
-
body?: BodyType;
|
|
26
|
-
/** Optional HTTP method override. Default is POST. */
|
|
27
|
-
overrideMethod?: HttpMethod;
|
|
28
|
-
/** Additional request options. */
|
|
29
|
-
options: ApiOptions;
|
|
30
|
-
}
|