@objectstack/service-ai 5.2.0 → 6.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -1,11 +1,12 @@
1
- import { AIToolDefinition, ToolCallPart, ToolResultPart, IAIService, IAIConversationService, LLMAdapter, Logger, ModelMessage, AIRequestOptions, AIResult, TextStreamPart, ToolSet, ChatWithToolsOptions, AIConversation, IDataEngine, IMetadataService } from '@objectstack/spec/contracts';
1
+ import { AIToolDefinition, ToolCallPart, ToolResultPart, IDataEngine, Logger, IAIService, IAIConversationService, LLMAdapter, ModelMessage, AIRequestOptions, AIResult, GenerateObjectOptions, AIObjectResult, TextStreamPart, ToolSet, ChatWithToolsOptions, AIConversation, IMetadataService } from '@objectstack/spec/contracts';
2
2
  export { LLMAdapter } from '@objectstack/spec/contracts';
3
+ import { z } from 'zod';
4
+ import * as AI from '@objectstack/spec/ai';
5
+ import { Tool, Skill, Agent } from '@objectstack/spec/ai';
3
6
  import { Plugin, PluginContext } from '@objectstack/core';
4
7
  import { LanguageModelV2 } from '@ai-sdk/provider';
5
8
  import { TextStreamPart as TextStreamPart$1, ToolSet as ToolSet$1 } from 'ai';
6
- import { Tool, Skill, Agent } from '@objectstack/spec/ai';
7
9
  import { InstalledPackage } from '@objectstack/spec/kernel';
8
- import { z } from 'zod';
9
10
  import * as _objectstack_spec_data from '@objectstack/spec/data';
10
11
 
11
12
  /**
@@ -71,6 +72,175 @@ declare class ToolRegistry {
71
72
  clear(): void;
72
73
  }
73
74
 
75
+ /**
76
+ * ModelRegistry — In-memory runtime registry for AI models.
77
+ *
78
+ * Provides:
79
+ * - Model lookup by id
80
+ * - Default model resolution
81
+ * - Token-based cost estimation
82
+ *
83
+ * Populated from `objectstack.config.ts` at boot. Pure in-memory by design —
84
+ * suitable for serverless / edge runtimes. Persistent registries should be
85
+ * implemented as a wrapper that hydrates this registry at start time.
86
+ *
87
+ * @example
88
+ * ```ts
89
+ * const registry = new ModelRegistry({
90
+ * models: [{
91
+ * id: 'gpt-4o',
92
+ * name: 'GPT-4o',
93
+ * version: '2024-08-06',
94
+ * provider: 'openai',
95
+ * capabilities: { textGeneration: true, functionCalling: true },
96
+ * limits: { maxTokens: 128000, contextWindow: 128000 },
97
+ * pricing: { inputCostPer1kTokens: 0.0025, outputCostPer1kTokens: 0.01 },
98
+ * }],
99
+ * defaultModelId: 'gpt-4o',
100
+ * });
101
+ * const cost = registry.estimateCost('gpt-4o', { promptTokens: 1000, completionTokens: 500 });
102
+ * ```
103
+ */
104
+ declare class ModelRegistry {
105
+ private readonly models;
106
+ private defaultModelId?;
107
+ constructor(config?: ModelRegistryConfig);
108
+ /** Register or replace a model. */
109
+ register(model: AI.ModelConfig): void;
110
+ /** Look up a model by id. */
111
+ get(id: string): AI.ModelConfig | undefined;
112
+ /** Look up a model by id, throwing if missing. */
113
+ getOrThrow(id: string): AI.ModelConfig;
114
+ /** Resolve the default model (explicit > first registered > undefined). */
115
+ getDefault(): AI.ModelConfig | undefined;
116
+ /** Set the default model id (must already be registered). */
117
+ setDefault(id: string): void;
118
+ /** All registered models. */
119
+ list(): AI.ModelConfig[];
120
+ /** Number of registered models. */
121
+ get size(): number;
122
+ /**
123
+ * Estimate cost in the model's currency (defaults to USD).
124
+ *
125
+ * Returns `undefined` when the model is unknown or has no pricing data.
126
+ * Costs are computed as `(tokens / 1000) * pricePer1kTokens` for input and
127
+ * output independently, then summed.
128
+ */
129
+ estimateCost(modelId: string, usage: TokenUsage): CostEstimate | undefined;
130
+ }
131
+ /** Token usage shape (mirrors `AIResult['usage']`). */
132
+ interface TokenUsage {
133
+ promptTokens: number;
134
+ completionTokens: number;
135
+ totalTokens?: number;
136
+ }
137
+ /** Cost estimate returned by {@link ModelRegistry.estimateCost}. */
138
+ interface CostEstimate {
139
+ /** Cost attributable to prompt/input tokens. */
140
+ inputCost: number;
141
+ /** Cost attributable to completion/output tokens. */
142
+ outputCost: number;
143
+ /** `inputCost + outputCost`. */
144
+ totalCost: number;
145
+ /** ISO 4217 currency code. */
146
+ currency: string;
147
+ }
148
+ /** Configuration for {@link ModelRegistry}. */
149
+ interface ModelRegistryConfig {
150
+ /** Models to register at construction. */
151
+ models?: AI.ModelConfig[];
152
+ /** Default model id (must appear in `models`). */
153
+ defaultModelId?: string;
154
+ }
155
+ /**
156
+ * Compute cost from pricing + usage. Exported for direct use when a registry
157
+ * is not in scope (e.g. tests or one-off calculations).
158
+ */
159
+ declare function computeCost(pricing: AI.ModelPricing, usage: TokenUsage): CostEstimate;
160
+
161
+ /**
162
+ * The operation that produced a trace.
163
+ */
164
+ type TraceOperation = 'chat' | 'complete' | 'stream_chat' | 'chat_with_tools' | 'generate_object' | 'embed';
165
+ /**
166
+ * Data captured for every LLM invocation.
167
+ *
168
+ * Token counts default to 0 when the adapter does not report usage.
169
+ * Cost fields are populated only when a {@link ModelRegistry} can resolve
170
+ * pricing for the reported model.
171
+ */
172
+ interface TraceEvent {
173
+ operation: TraceOperation;
174
+ adapter: string;
175
+ model?: string;
176
+ agentId?: string;
177
+ conversationId?: string;
178
+ promptTokens: number;
179
+ completionTokens: number;
180
+ totalTokens: number;
181
+ latencyMs: number;
182
+ status: 'success' | 'error';
183
+ error?: string;
184
+ cost?: CostEstimate;
185
+ metadata?: Record<string, unknown>;
186
+ }
187
+ /**
188
+ * TraceRecorder — Records {@link TraceEvent}s.
189
+ *
190
+ * Implementations are expected to be non-throwing — a tracing failure must
191
+ * never crash an AI call. The default {@link ObjectQLTraceRecorder} swallows
192
+ * errors and logs at `warn`.
193
+ */
194
+ interface TraceRecorder {
195
+ record(event: TraceEvent): Promise<void> | void;
196
+ }
197
+ /** Discard all traces. Default when no data engine is wired. */
198
+ declare class NullTraceRecorder implements TraceRecorder {
199
+ record(_event: TraceEvent): void;
200
+ }
201
+ /**
202
+ * ObjectQLTraceRecorder — Persists traces via {@link IDataEngine}.
203
+ *
204
+ * Writes one row per call to the `ai_traces` object. Failures are logged
205
+ * but never propagated.
206
+ *
207
+ * @example
208
+ * ```ts
209
+ * const recorder = new ObjectQLTraceRecorder(dataEngine, { logger });
210
+ * ```
211
+ */
212
+ declare class ObjectQLTraceRecorder implements TraceRecorder {
213
+ private readonly engine;
214
+ private readonly logger?;
215
+ constructor(engine: IDataEngine, options?: {
216
+ logger?: Logger;
217
+ });
218
+ record(event: TraceEvent): Promise<void>;
219
+ }
220
+ /**
221
+ * Helper: build a {@link TraceEvent} from a measured call.
222
+ *
223
+ * Resolves cost via the optional {@link ModelRegistry} when the model is
224
+ * reported and pricing is available.
225
+ */
226
+ declare function buildTraceEvent(input: {
227
+ operation: TraceOperation;
228
+ adapter: string;
229
+ model?: string;
230
+ agentId?: string;
231
+ conversationId?: string;
232
+ usage?: {
233
+ promptTokens: number;
234
+ completionTokens: number;
235
+ totalTokens: number;
236
+ };
237
+ latencyMs: number;
238
+ status: 'success' | 'error';
239
+ error?: string;
240
+ registry?: ModelRegistry;
241
+ metadata?: Record<string, unknown>;
242
+ }): TraceEvent;
243
+
74
244
  /**
75
245
  * Configuration for AIService.
76
246
  */
@@ -83,6 +253,10 @@ interface AIServiceConfig {
83
253
  toolRegistry?: ToolRegistry;
84
254
  /** Conversation service (defaults to InMemoryConversationService). */
85
255
  conversationService?: IAIConversationService;
256
+ /** Model registry for pricing + default model resolution. Optional. */
257
+ modelRegistry?: ModelRegistry;
258
+ /** Trace recorder for per-call observability. Defaults to no-op. */
259
+ traceRecorder?: TraceRecorder;
86
260
  }
87
261
  /**
88
262
  * AIService — Unified AI capability service.
@@ -104,11 +278,34 @@ declare class AIService implements IAIService {
104
278
  private readonly logger;
105
279
  readonly toolRegistry: ToolRegistry;
106
280
  readonly conversationService: IAIConversationService;
281
+ readonly modelRegistry?: ModelRegistry;
282
+ readonly traceRecorder: TraceRecorder;
107
283
  constructor(config?: AIServiceConfig);
108
284
  /** The name of the active LLM adapter. */
109
285
  get adapterName(): string;
286
+ /**
287
+ * Run an adapter call and emit a trace event.
288
+ *
289
+ * Records both success and failure. Tracing failures never escape — the
290
+ * recorder is expected to be defensive.
291
+ */
292
+ private instrument;
110
293
  chat(messages: ModelMessage[], options?: AIRequestOptions): Promise<AIResult>;
111
294
  complete(prompt: string, options?: AIRequestOptions): Promise<AIResult>;
295
+ /**
296
+ * Generate a strongly-typed object validated against a Zod schema.
297
+ *
298
+ * Delegates to the adapter's `generateObject` when supported; throws a
299
+ * descriptive error when the adapter does not implement structured output.
300
+ *
301
+ * @example
302
+ * ```ts
303
+ * import { z } from 'zod';
304
+ * const Schema = z.object({ name: z.string(), priority: z.number().int() });
305
+ * const { object } = await ai.generateObject(messages, Schema);
306
+ * ```
307
+ */
308
+ generateObject<T>(messages: ModelMessage[], schema: z.ZodType<T>, options?: GenerateObjectOptions): Promise<AIObjectResult<T>>;
112
309
  streamChat(messages: ModelMessage[], options?: AIRequestOptions): AsyncIterable<TextStreamPart<ToolSet>>;
113
310
  embed(input: string | string[], model?: string): Promise<number[][]>;
114
311
  listModels(): Promise<string[]>;
@@ -148,6 +345,22 @@ interface AIServicePluginOptions {
148
345
  debug?: boolean;
149
346
  /** Explicit conversation service override. When set, auto-detection is skipped. */
150
347
  conversationService?: IAIConversationService;
348
+ /**
349
+ * Models to register in the runtime {@link ModelRegistry}.
350
+ *
351
+ * Used for default-model resolution and cost attribution in traces.
352
+ * If omitted, the registry starts empty and trace `cost_*` fields are null.
353
+ */
354
+ models?: AI.ModelConfig[];
355
+ /** Default model id (must appear in `models`). */
356
+ defaultModelId?: string;
357
+ /**
358
+ * Explicit trace recorder override. When set, auto-detection
359
+ * of {@link ObjectQLTraceRecorder} is skipped.
360
+ *
361
+ * Set to `null` to disable tracing entirely.
362
+ */
363
+ traceRecorder?: TraceRecorder | null;
151
364
  }
152
365
  /**
153
366
  * AIServicePlugin — Kernel plugin for the unified AI capability service.
@@ -211,6 +424,22 @@ declare class MemoryLLMAdapter implements LLMAdapter {
211
424
  streamChat(messages: ModelMessage[], _options?: AIRequestOptions): AsyncIterable<TextStreamPart<ToolSet>>;
212
425
  embed(input: string | string[]): Promise<number[][]>;
213
426
  listModels(): Promise<string[]>;
427
+ /**
428
+ * Heuristic structured-output for testing & demos — NOT a real LLM.
429
+ *
430
+ * Strategy:
431
+ * 1. Extract candidate object names from the system messages by matching
432
+ * schema-context headers (`### name — Label`) emitted by
433
+ * {@link SchemaRetriever.renderSnippet}.
434
+ * 2. Pick the candidate whose tokens overlap most with the last user
435
+ * message (falls back to the first candidate).
436
+ * 3. Try `schema.safeParse({ objectName, limit: 20 })` — this satisfies the
437
+ * `QueryPlanSchema` used by the built-in `query_data` tool.
438
+ * 4. If that fails, fall back to `schema.safeParse({})` for schemas that
439
+ * accept defaults.
440
+ * 5. Otherwise throw with a clear message — the demo needs a real provider.
441
+ */
442
+ generateObject<T = unknown>(messages: ModelMessage[], schema: z.ZodType<T>, options?: GenerateObjectOptions): Promise<AIObjectResult<T>>;
214
443
  }
215
444
 
216
445
  /**
@@ -236,6 +465,7 @@ declare class VercelLLMAdapter implements LLMAdapter {
236
465
  complete(prompt: string, options?: AIRequestOptions): Promise<AIResult>;
237
466
  streamChat(messages: ModelMessage[], options?: AIRequestOptions): AsyncIterable<TextStreamPart<ToolSet>>;
238
467
  embed(_input: string | string[]): Promise<number[][]>;
468
+ generateObject<T>(messages: ModelMessage[], schema: z.ZodType<T>, options?: GenerateObjectOptions): Promise<AIObjectResult<T>>;
239
469
  listModels(): Promise<string[]>;
240
470
  }
241
471
  /**
@@ -1053,7 +1283,7 @@ declare const AiConversationObject: Omit<{
1053
1283
  abstract: boolean;
1054
1284
  datasource: string;
1055
1285
  fields: Record<string, {
1056
- type: "number" | "boolean" | "file" | "text" | "json" | "code" | "avatar" | "vector" | "date" | "tags" | "datetime" | "signature" | "progress" | "url" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "color" | "rating" | "slider" | "qrcode";
1286
+ type: "number" | "boolean" | "file" | "text" | "json" | "tags" | "currency" | "code" | "avatar" | "vector" | "date" | "datetime" | "signature" | "progress" | "url" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "color" | "rating" | "slider" | "qrcode";
1057
1287
  required: boolean;
1058
1288
  searchable: boolean;
1059
1289
  multiple: boolean;
@@ -2977,7 +3207,7 @@ declare const AiMessageObject: Omit<{
2977
3207
  abstract: boolean;
2978
3208
  datasource: string;
2979
3209
  fields: Record<string, {
2980
- type: "number" | "boolean" | "file" | "text" | "json" | "code" | "avatar" | "vector" | "date" | "tags" | "datetime" | "signature" | "progress" | "url" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "color" | "rating" | "slider" | "qrcode";
3210
+ type: "number" | "boolean" | "file" | "text" | "json" | "tags" | "currency" | "code" | "avatar" | "vector" | "date" | "datetime" | "signature" | "progress" | "url" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "color" | "rating" | "slider" | "qrcode";
2981
3211
  required: boolean;
2982
3212
  searchable: boolean;
2983
3213
  multiple: boolean;
@@ -4884,6 +5114,4015 @@ declare const AiMessageObject: Omit<{
4884
5114
  };
4885
5115
  }, "fields">;
4886
5116
 
5117
+ /**
5118
+ * ai_traces — AI Call Trace Object
5119
+ *
5120
+ * Records every LLM call made through the {@link AIService} for observability,
5121
+ * cost attribution, and debugging.
5122
+ *
5123
+ * One row per `chat()` / `complete()` invocation (tool-call loops produce
5124
+ * multiple rows). Persisted via {@link ObjectQLTraceRecorder} when a data
5125
+ * engine is available; otherwise traces are no-op.
5126
+ *
5127
+ * @namespace ai
5128
+ */
5129
+ declare const AiTraceObject: Omit<{
5130
+ name: string;
5131
+ active: boolean;
5132
+ isSystem: boolean;
5133
+ abstract: boolean;
5134
+ datasource: string;
5135
+ fields: Record<string, {
5136
+ type: "number" | "boolean" | "file" | "text" | "json" | "tags" | "currency" | "code" | "avatar" | "vector" | "date" | "datetime" | "signature" | "progress" | "url" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "color" | "rating" | "slider" | "qrcode";
5137
+ required: boolean;
5138
+ searchable: boolean;
5139
+ multiple: boolean;
5140
+ unique: boolean;
5141
+ deleteBehavior: "set_null" | "cascade" | "restrict";
5142
+ auditTrail: boolean;
5143
+ hidden: boolean;
5144
+ readonly: boolean;
5145
+ sortable: boolean;
5146
+ index: boolean;
5147
+ externalId: boolean;
5148
+ name?: string | undefined;
5149
+ label?: string | undefined;
5150
+ description?: string | undefined;
5151
+ format?: string | undefined;
5152
+ columnName?: string | undefined;
5153
+ defaultValue?: unknown;
5154
+ maxLength?: number | undefined;
5155
+ minLength?: number | undefined;
5156
+ precision?: number | undefined;
5157
+ scale?: number | undefined;
5158
+ min?: number | undefined;
5159
+ max?: number | undefined;
5160
+ options?: {
5161
+ label: string;
5162
+ value: string;
5163
+ color?: string | undefined;
5164
+ default?: boolean | undefined;
5165
+ }[] | undefined;
5166
+ reference?: string | undefined;
5167
+ referenceFilters?: string[] | undefined;
5168
+ writeRequiresMasterRead?: boolean | undefined;
5169
+ expression?: {
5170
+ dialect: "cel" | "js" | "cron" | "template";
5171
+ source?: string | undefined;
5172
+ ast?: unknown;
5173
+ meta?: {
5174
+ rationale?: string | undefined;
5175
+ generatedBy?: string | undefined;
5176
+ } | undefined;
5177
+ } | {
5178
+ dialect: "cel" | "js" | "cron" | "template";
5179
+ source?: string | undefined;
5180
+ ast?: unknown;
5181
+ meta?: {
5182
+ rationale?: string | undefined;
5183
+ generatedBy?: string | undefined;
5184
+ } | undefined;
5185
+ } | undefined;
5186
+ summaryOperations?: {
5187
+ object: string;
5188
+ field: string;
5189
+ function: "min" | "max" | "count" | "sum" | "avg";
5190
+ } | undefined;
5191
+ language?: string | undefined;
5192
+ theme?: string | undefined;
5193
+ lineNumbers?: boolean | undefined;
5194
+ maxRating?: number | undefined;
5195
+ allowHalf?: boolean | undefined;
5196
+ displayMap?: boolean | undefined;
5197
+ allowGeocoding?: boolean | undefined;
5198
+ addressFormat?: "us" | "uk" | "international" | undefined;
5199
+ colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
5200
+ allowAlpha?: boolean | undefined;
5201
+ presetColors?: string[] | undefined;
5202
+ step?: number | undefined;
5203
+ showValue?: boolean | undefined;
5204
+ marks?: Record<string, string> | undefined;
5205
+ barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
5206
+ qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
5207
+ displayValue?: boolean | undefined;
5208
+ allowScanning?: boolean | undefined;
5209
+ currencyConfig?: {
5210
+ precision: number;
5211
+ currencyMode: "dynamic" | "fixed";
5212
+ defaultCurrency: string;
5213
+ } | undefined;
5214
+ vectorConfig?: {
5215
+ dimensions: number;
5216
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
5217
+ normalized: boolean;
5218
+ indexed: boolean;
5219
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
5220
+ } | undefined;
5221
+ fileAttachmentConfig?: {
5222
+ virusScan: boolean;
5223
+ virusScanOnUpload: boolean;
5224
+ quarantineOnThreat: boolean;
5225
+ allowMultiple: boolean;
5226
+ allowReplace: boolean;
5227
+ allowDelete: boolean;
5228
+ requireUpload: boolean;
5229
+ extractMetadata: boolean;
5230
+ extractText: boolean;
5231
+ versioningEnabled: boolean;
5232
+ publicRead: boolean;
5233
+ presignedUrlExpiry: number;
5234
+ minSize?: number | undefined;
5235
+ maxSize?: number | undefined;
5236
+ allowedTypes?: string[] | undefined;
5237
+ blockedTypes?: string[] | undefined;
5238
+ allowedMimeTypes?: string[] | undefined;
5239
+ blockedMimeTypes?: string[] | undefined;
5240
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
5241
+ storageProvider?: string | undefined;
5242
+ storageBucket?: string | undefined;
5243
+ storagePrefix?: string | undefined;
5244
+ imageValidation?: {
5245
+ generateThumbnails: boolean;
5246
+ preserveMetadata: boolean;
5247
+ autoRotate: boolean;
5248
+ minWidth?: number | undefined;
5249
+ maxWidth?: number | undefined;
5250
+ minHeight?: number | undefined;
5251
+ maxHeight?: number | undefined;
5252
+ aspectRatio?: string | undefined;
5253
+ thumbnailSizes?: {
5254
+ name: string;
5255
+ width: number;
5256
+ height: number;
5257
+ crop: boolean;
5258
+ }[] | undefined;
5259
+ } | undefined;
5260
+ maxVersions?: number | undefined;
5261
+ } | undefined;
5262
+ encryptionConfig?: {
5263
+ enabled: boolean;
5264
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
5265
+ keyManagement: {
5266
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
5267
+ keyId?: string | undefined;
5268
+ rotationPolicy?: {
5269
+ enabled: boolean;
5270
+ frequencyDays: number;
5271
+ retainOldVersions: number;
5272
+ autoRotate: boolean;
5273
+ } | undefined;
5274
+ };
5275
+ scope: "field" | "database" | "record" | "table";
5276
+ deterministicEncryption: boolean;
5277
+ searchableEncryption: boolean;
5278
+ } | undefined;
5279
+ maskingRule?: {
5280
+ field: string;
5281
+ strategy: "redact" | "partial" | "hash" | "tokenize" | "randomize" | "nullify" | "substitute";
5282
+ preserveFormat: boolean;
5283
+ preserveLength: boolean;
5284
+ pattern?: string | undefined;
5285
+ roles?: string[] | undefined;
5286
+ exemptRoles?: string[] | undefined;
5287
+ } | undefined;
5288
+ dependencies?: string[] | undefined;
5289
+ cached?: {
5290
+ enabled: boolean;
5291
+ ttl: number;
5292
+ invalidateOn: string[];
5293
+ } | undefined;
5294
+ dataQuality?: {
5295
+ uniqueness: boolean;
5296
+ completeness: number;
5297
+ accuracy?: {
5298
+ source: string;
5299
+ threshold: number;
5300
+ } | undefined;
5301
+ } | undefined;
5302
+ group?: string | undefined;
5303
+ conditionalRequired?: {
5304
+ dialect: "cel" | "js" | "cron" | "template";
5305
+ source?: string | undefined;
5306
+ ast?: unknown;
5307
+ meta?: {
5308
+ rationale?: string | undefined;
5309
+ generatedBy?: string | undefined;
5310
+ } | undefined;
5311
+ } | {
5312
+ dialect: "cel" | "js" | "cron" | "template";
5313
+ source?: string | undefined;
5314
+ ast?: unknown;
5315
+ meta?: {
5316
+ rationale?: string | undefined;
5317
+ generatedBy?: string | undefined;
5318
+ } | undefined;
5319
+ } | undefined;
5320
+ system?: boolean | undefined;
5321
+ inlineHelpText?: string | undefined;
5322
+ trackFeedHistory?: boolean | undefined;
5323
+ caseSensitive?: boolean | undefined;
5324
+ autonumberFormat?: string | undefined;
5325
+ }>;
5326
+ label?: string | undefined;
5327
+ pluralLabel?: string | undefined;
5328
+ description?: string | undefined;
5329
+ icon?: string | undefined;
5330
+ tags?: string[] | undefined;
5331
+ managedBy?: "system" | "config" | "platform" | "append-only" | "better-auth" | undefined;
5332
+ userActions?: {
5333
+ create?: boolean | undefined;
5334
+ import?: boolean | undefined;
5335
+ edit?: boolean | undefined;
5336
+ delete?: boolean | undefined;
5337
+ exportCsv?: boolean | undefined;
5338
+ } | undefined;
5339
+ systemFields?: false | {
5340
+ tenant?: boolean | undefined;
5341
+ owner?: boolean | undefined;
5342
+ audit?: boolean | undefined;
5343
+ } | undefined;
5344
+ indexes?: {
5345
+ fields: string[];
5346
+ type: "hash" | "btree" | "gin" | "gist" | "fulltext";
5347
+ unique: boolean;
5348
+ name?: string | undefined;
5349
+ partial?: string | undefined;
5350
+ }[] | undefined;
5351
+ fieldGroups?: {
5352
+ key: string;
5353
+ label: string;
5354
+ defaultExpanded: boolean;
5355
+ icon?: string | undefined;
5356
+ description?: string | undefined;
5357
+ visibleOn?: {
5358
+ dialect: "cel" | "js" | "cron" | "template";
5359
+ source?: string | undefined;
5360
+ ast?: unknown;
5361
+ meta?: {
5362
+ rationale?: string | undefined;
5363
+ generatedBy?: string | undefined;
5364
+ } | undefined;
5365
+ } | {
5366
+ dialect: "cel" | "js" | "cron" | "template";
5367
+ source?: string | undefined;
5368
+ ast?: unknown;
5369
+ meta?: {
5370
+ rationale?: string | undefined;
5371
+ generatedBy?: string | undefined;
5372
+ } | undefined;
5373
+ } | undefined;
5374
+ }[] | undefined;
5375
+ tenancy?: {
5376
+ enabled: boolean;
5377
+ strategy: "hybrid" | "shared" | "isolated";
5378
+ tenantField: string;
5379
+ crossTenantAccess: boolean;
5380
+ } | undefined;
5381
+ softDelete?: {
5382
+ enabled: boolean;
5383
+ field: string;
5384
+ cascadeDelete: boolean;
5385
+ } | undefined;
5386
+ versioning?: {
5387
+ enabled: boolean;
5388
+ strategy: "delta" | "snapshot" | "event-sourcing";
5389
+ versionField: string;
5390
+ retentionDays?: number | undefined;
5391
+ } | undefined;
5392
+ partitioning?: {
5393
+ enabled: boolean;
5394
+ strategy: "hash" | "list" | "range";
5395
+ key: string;
5396
+ interval?: string | undefined;
5397
+ } | undefined;
5398
+ cdc?: {
5399
+ enabled: boolean;
5400
+ events: ("delete" | "update" | "insert")[];
5401
+ destination: string;
5402
+ } | undefined;
5403
+ validations?: _objectstack_spec_data.BaseValidationRuleShape[] | undefined;
5404
+ stateMachines?: Record<string, {
5405
+ id: string;
5406
+ initial: string;
5407
+ states: Record<string, StateNodeConfig>;
5408
+ description?: string | undefined;
5409
+ contextSchema?: Record<string, unknown> | undefined;
5410
+ on?: Record<string, string | {
5411
+ target?: string | undefined;
5412
+ cond?: string | {
5413
+ type: string;
5414
+ params?: Record<string, unknown> | undefined;
5415
+ } | undefined;
5416
+ actions?: (string | {
5417
+ type: string;
5418
+ params?: Record<string, unknown> | undefined;
5419
+ })[] | undefined;
5420
+ description?: string | undefined;
5421
+ } | {
5422
+ target?: string | undefined;
5423
+ cond?: string | {
5424
+ type: string;
5425
+ params?: Record<string, unknown> | undefined;
5426
+ } | undefined;
5427
+ actions?: (string | {
5428
+ type: string;
5429
+ params?: Record<string, unknown> | undefined;
5430
+ })[] | undefined;
5431
+ description?: string | undefined;
5432
+ }[]> | undefined;
5433
+ }> | undefined;
5434
+ displayNameField?: string | undefined;
5435
+ recordName?: {
5436
+ type: "text" | "autonumber";
5437
+ displayFormat?: string | undefined;
5438
+ startNumber?: number | undefined;
5439
+ } | undefined;
5440
+ titleFormat?: {
5441
+ dialect: "cel" | "js" | "cron" | "template";
5442
+ source?: string | undefined;
5443
+ ast?: unknown;
5444
+ meta?: {
5445
+ rationale?: string | undefined;
5446
+ generatedBy?: string | undefined;
5447
+ } | undefined;
5448
+ } | {
5449
+ dialect: "cel" | "js" | "cron" | "template";
5450
+ source?: string | undefined;
5451
+ ast?: unknown;
5452
+ meta?: {
5453
+ rationale?: string | undefined;
5454
+ generatedBy?: string | undefined;
5455
+ } | undefined;
5456
+ } | undefined;
5457
+ compactLayout?: string[] | undefined;
5458
+ listViews?: Record<string, {
5459
+ type: "map" | "kanban" | "calendar" | "gantt" | "gallery" | "timeline" | "chart" | "grid";
5460
+ columns: string[] | {
5461
+ field: string;
5462
+ label?: string | undefined;
5463
+ width?: number | undefined;
5464
+ align?: "left" | "center" | "right" | undefined;
5465
+ hidden?: boolean | undefined;
5466
+ sortable?: boolean | undefined;
5467
+ resizable?: boolean | undefined;
5468
+ wrap?: boolean | undefined;
5469
+ type?: string | undefined;
5470
+ pinned?: "left" | "right" | undefined;
5471
+ summary?: "none" | "min" | "max" | "count" | "sum" | "avg" | "count_empty" | "count_filled" | "count_unique" | "percent_empty" | "percent_filled" | undefined;
5472
+ link?: boolean | undefined;
5473
+ action?: string | undefined;
5474
+ }[];
5475
+ name?: string | undefined;
5476
+ label?: string | undefined;
5477
+ data?: {
5478
+ provider: "object";
5479
+ object: string;
5480
+ } | {
5481
+ provider: "api";
5482
+ read?: {
5483
+ url: string;
5484
+ method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
5485
+ headers?: Record<string, string> | undefined;
5486
+ params?: Record<string, unknown> | undefined;
5487
+ body?: unknown;
5488
+ } | undefined;
5489
+ write?: {
5490
+ url: string;
5491
+ method: "GET" | "POST" | "DELETE" | "PATCH" | "PUT";
5492
+ headers?: Record<string, string> | undefined;
5493
+ params?: Record<string, unknown> | undefined;
5494
+ body?: unknown;
5495
+ } | undefined;
5496
+ } | {
5497
+ provider: "value";
5498
+ items: unknown[];
5499
+ } | undefined;
5500
+ filter?: {
5501
+ field: string;
5502
+ operator: string;
5503
+ value?: string | number | boolean | (string | number)[] | null | undefined;
5504
+ }[] | undefined;
5505
+ sort?: string | {
5506
+ field: string;
5507
+ order: "asc" | "desc";
5508
+ }[] | undefined;
5509
+ searchableFields?: string[] | undefined;
5510
+ filterableFields?: string[] | undefined;
5511
+ resizable?: boolean | undefined;
5512
+ striped?: boolean | undefined;
5513
+ bordered?: boolean | undefined;
5514
+ compactToolbar?: boolean | undefined;
5515
+ selection?: {
5516
+ type: "none" | "multiple" | "single";
5517
+ } | undefined;
5518
+ navigation?: {
5519
+ mode: "none" | "split" | "page" | "modal" | "drawer" | "popover" | "new_window";
5520
+ preventNavigation: boolean;
5521
+ openNewTab: boolean;
5522
+ view?: string | undefined;
5523
+ width?: string | number | undefined;
5524
+ } | undefined;
5525
+ pagination?: {
5526
+ pageSize: number;
5527
+ pageSizeOptions?: number[] | undefined;
5528
+ } | undefined;
5529
+ kanban?: {
5530
+ groupByField: string;
5531
+ columns: string[];
5532
+ summarizeField?: string | undefined;
5533
+ } | undefined;
5534
+ calendar?: {
5535
+ startDateField: string;
5536
+ titleField: string;
5537
+ endDateField?: string | undefined;
5538
+ colorField?: string | undefined;
5539
+ } | undefined;
5540
+ gantt?: {
5541
+ startDateField: string;
5542
+ endDateField: string;
5543
+ titleField: string;
5544
+ progressField?: string | undefined;
5545
+ dependenciesField?: string | undefined;
5546
+ } | undefined;
5547
+ gallery?: {
5548
+ coverFit: "cover" | "contain";
5549
+ cardSize: "small" | "medium" | "large";
5550
+ coverField?: string | undefined;
5551
+ titleField?: string | undefined;
5552
+ visibleFields?: string[] | undefined;
5553
+ } | undefined;
5554
+ timeline?: {
5555
+ startDateField: string;
5556
+ titleField: string;
5557
+ scale: "day" | "week" | "month" | "quarter" | "year" | "hour";
5558
+ endDateField?: string | undefined;
5559
+ groupByField?: string | undefined;
5560
+ colorField?: string | undefined;
5561
+ } | undefined;
5562
+ chart?: {
5563
+ chartType: "bar" | "line" | "pie" | "area" | "scatter";
5564
+ xAxisField: string;
5565
+ yAxisFields: string[];
5566
+ aggregation?: "min" | "max" | "count" | "sum" | "avg" | undefined;
5567
+ groupByField?: string | undefined;
5568
+ } | undefined;
5569
+ description?: string | undefined;
5570
+ sharing?: {
5571
+ type: "personal" | "collaborative";
5572
+ lockedBy?: string | undefined;
5573
+ } | undefined;
5574
+ rowHeight?: "medium" | "short" | "compact" | "tall" | "extra_tall" | undefined;
5575
+ grouping?: {
5576
+ fields: {
5577
+ field: string;
5578
+ order: "asc" | "desc";
5579
+ collapsed: boolean;
5580
+ }[];
5581
+ } | undefined;
5582
+ rowColor?: {
5583
+ field: string;
5584
+ colors?: Record<string, string> | undefined;
5585
+ } | undefined;
5586
+ hiddenFields?: string[] | undefined;
5587
+ fieldOrder?: string[] | undefined;
5588
+ rowActions?: string[] | undefined;
5589
+ bulkActions?: string[] | undefined;
5590
+ bulkActionDefs?: Record<string, any>[] | undefined;
5591
+ virtualScroll?: boolean | undefined;
5592
+ conditionalFormatting?: {
5593
+ condition: {
5594
+ dialect: "cel" | "js" | "cron" | "template";
5595
+ source?: string | undefined;
5596
+ ast?: unknown;
5597
+ meta?: {
5598
+ rationale?: string | undefined;
5599
+ generatedBy?: string | undefined;
5600
+ } | undefined;
5601
+ } | {
5602
+ dialect: "cel" | "js" | "cron" | "template";
5603
+ source?: string | undefined;
5604
+ ast?: unknown;
5605
+ meta?: {
5606
+ rationale?: string | undefined;
5607
+ generatedBy?: string | undefined;
5608
+ } | undefined;
5609
+ };
5610
+ style: Record<string, string>;
5611
+ }[] | undefined;
5612
+ inlineEdit?: boolean | undefined;
5613
+ exportOptions?: ("json" | "csv" | "xlsx" | "pdf")[] | undefined;
5614
+ userActions?: {
5615
+ sort: boolean;
5616
+ search: boolean;
5617
+ filter: boolean;
5618
+ rowHeight: boolean;
5619
+ addRecordForm: boolean;
5620
+ buttons?: string[] | undefined;
5621
+ } | undefined;
5622
+ appearance?: {
5623
+ showDescription: boolean;
5624
+ allowedVisualizations?: ("map" | "kanban" | "calendar" | "gantt" | "gallery" | "timeline" | "grid")[] | undefined;
5625
+ } | undefined;
5626
+ tabs?: {
5627
+ name: string;
5628
+ pinned: boolean;
5629
+ isDefault: boolean;
5630
+ visible: boolean;
5631
+ label?: string | undefined;
5632
+ icon?: string | undefined;
5633
+ view?: string | undefined;
5634
+ filter?: {
5635
+ field: string;
5636
+ operator: string;
5637
+ value?: string | number | boolean | (string | number)[] | null | undefined;
5638
+ }[] | undefined;
5639
+ order?: number | undefined;
5640
+ }[] | undefined;
5641
+ addRecord?: {
5642
+ enabled: boolean;
5643
+ position: "top" | "bottom" | "both";
5644
+ mode: "modal" | "form" | "inline";
5645
+ formView?: string | undefined;
5646
+ } | undefined;
5647
+ showRecordCount?: boolean | undefined;
5648
+ allowPrinting?: boolean | undefined;
5649
+ emptyState?: {
5650
+ title?: string | undefined;
5651
+ message?: string | undefined;
5652
+ icon?: string | undefined;
5653
+ } | undefined;
5654
+ aria?: {
5655
+ ariaLabel?: string | undefined;
5656
+ ariaDescribedBy?: string | undefined;
5657
+ role?: string | undefined;
5658
+ } | undefined;
5659
+ responsive?: {
5660
+ breakpoint?: "md" | "xs" | "sm" | "lg" | "xl" | "2xl" | undefined;
5661
+ hiddenOn?: ("md" | "xs" | "sm" | "lg" | "xl" | "2xl")[] | undefined;
5662
+ columns?: {
5663
+ xs?: number | undefined;
5664
+ sm?: number | undefined;
5665
+ md?: number | undefined;
5666
+ lg?: number | undefined;
5667
+ xl?: number | undefined;
5668
+ '2xl'?: number | undefined;
5669
+ } | undefined;
5670
+ order?: {
5671
+ xs?: number | undefined;
5672
+ sm?: number | undefined;
5673
+ md?: number | undefined;
5674
+ lg?: number | undefined;
5675
+ xl?: number | undefined;
5676
+ '2xl'?: number | undefined;
5677
+ } | undefined;
5678
+ } | undefined;
5679
+ performance?: {
5680
+ lazyLoad?: boolean | undefined;
5681
+ virtualScroll?: {
5682
+ enabled: boolean;
5683
+ itemHeight?: number | undefined;
5684
+ overscan?: number | undefined;
5685
+ } | undefined;
5686
+ cacheStrategy?: "none" | "cache-first" | "network-first" | "stale-while-revalidate" | undefined;
5687
+ prefetch?: boolean | undefined;
5688
+ pageSize?: number | undefined;
5689
+ debounceMs?: number | undefined;
5690
+ } | undefined;
5691
+ }> | undefined;
5692
+ defaultDetailForm?: string | undefined;
5693
+ search?: {
5694
+ fields: string[];
5695
+ displayFields?: string[] | undefined;
5696
+ filters?: string[] | undefined;
5697
+ } | undefined;
5698
+ enable?: {
5699
+ trackHistory: boolean;
5700
+ searchable: boolean;
5701
+ apiEnabled: boolean;
5702
+ files: boolean;
5703
+ feeds: boolean;
5704
+ activities: boolean;
5705
+ trash: boolean;
5706
+ mru: boolean;
5707
+ clone: boolean;
5708
+ apiMethods?: ("search" | "upsert" | "create" | "import" | "delete" | "list" | "get" | "update" | "history" | "bulk" | "aggregate" | "restore" | "purge" | "export")[] | undefined;
5709
+ } | undefined;
5710
+ recordTypes?: string[] | undefined;
5711
+ sharingModel?: "private" | "read" | "full" | "read_write" | undefined;
5712
+ keyPrefix?: string | undefined;
5713
+ detail?: {
5714
+ [x: string]: unknown;
5715
+ renderViaSchema?: boolean | undefined;
5716
+ hideReferenceRail?: boolean | undefined;
5717
+ hideRelatedTab?: boolean | undefined;
5718
+ } | undefined;
5719
+ actions?: {
5720
+ name: string;
5721
+ label: string;
5722
+ type: "url" | "flow" | "api" | "script" | "modal" | "form";
5723
+ refreshAfter: boolean;
5724
+ objectName?: string | undefined;
5725
+ icon?: string | undefined;
5726
+ locations?: ("list_toolbar" | "list_item" | "record_header" | "record_more" | "record_related" | "global_nav")[] | undefined;
5727
+ component?: "action:button" | "action:icon" | "action:menu" | "action:group" | undefined;
5728
+ target?: string | undefined;
5729
+ body?: {
5730
+ language: "expression";
5731
+ source: string;
5732
+ } | {
5733
+ language: "js";
5734
+ source: string;
5735
+ capabilities: ("api.read" | "api.write" | "crypto.uuid" | "crypto.hash" | "log")[];
5736
+ timeoutMs?: number | undefined;
5737
+ memoryMb?: number | undefined;
5738
+ } | undefined;
5739
+ execute?: string | undefined;
5740
+ params?: {
5741
+ required: boolean;
5742
+ name?: string | undefined;
5743
+ field?: string | undefined;
5744
+ objectOverride?: string | undefined;
5745
+ label?: string | undefined;
5746
+ type?: "number" | "boolean" | "date" | "file" | "code" | "datetime" | "signature" | "progress" | "url" | "text" | "textarea" | "email" | "phone" | "password" | "markdown" | "html" | "richtext" | "currency" | "percent" | "time" | "toggle" | "select" | "multiselect" | "radio" | "checkboxes" | "lookup" | "master_detail" | "tree" | "image" | "avatar" | "video" | "audio" | "formula" | "summary" | "autonumber" | "location" | "address" | "json" | "color" | "rating" | "slider" | "qrcode" | "tags" | "vector" | undefined;
5747
+ options?: {
5748
+ label: string;
5749
+ value: string;
5750
+ }[] | undefined;
5751
+ placeholder?: string | undefined;
5752
+ helpText?: string | undefined;
5753
+ defaultValue?: unknown;
5754
+ defaultFromRow?: boolean | undefined;
5755
+ }[] | undefined;
5756
+ variant?: "link" | "primary" | "secondary" | "danger" | "ghost" | undefined;
5757
+ confirmText?: string | undefined;
5758
+ successMessage?: string | undefined;
5759
+ visible?: {
5760
+ dialect: "cel" | "js" | "cron" | "template";
5761
+ source?: string | undefined;
5762
+ ast?: unknown;
5763
+ meta?: {
5764
+ rationale?: string | undefined;
5765
+ generatedBy?: string | undefined;
5766
+ } | undefined;
5767
+ } | undefined;
5768
+ disabled?: boolean | {
5769
+ dialect: "cel" | "js" | "cron" | "template";
5770
+ source?: string | undefined;
5771
+ ast?: unknown;
5772
+ meta?: {
5773
+ rationale?: string | undefined;
5774
+ generatedBy?: string | undefined;
5775
+ } | undefined;
5776
+ } | undefined;
5777
+ shortcut?: string | undefined;
5778
+ bulkEnabled?: boolean | undefined;
5779
+ recordIdParam?: string | undefined;
5780
+ recordIdField?: string | undefined;
5781
+ bodyShape?: "flat" | {
5782
+ wrap: string;
5783
+ } | undefined;
5784
+ method?: "POST" | "PATCH" | "PUT" | "DELETE" | undefined;
5785
+ bodyExtra?: Record<string, unknown> | undefined;
5786
+ mode?: "custom" | "delete" | "create" | "edit" | undefined;
5787
+ timeout?: number | undefined;
5788
+ aria?: {
5789
+ ariaLabel?: string | undefined;
5790
+ ariaDescribedBy?: string | undefined;
5791
+ role?: string | undefined;
5792
+ } | undefined;
5793
+ }[] | undefined;
5794
+ }, "fields"> & Pick<{
5795
+ readonly name: "ai_traces";
5796
+ readonly label: "AI Trace";
5797
+ readonly pluralLabel: "AI Traces";
5798
+ readonly icon: "activity";
5799
+ readonly isSystem: true;
5800
+ readonly description: "Per-call LLM invocation trace with token usage and cost";
5801
+ readonly fields: {
5802
+ readonly id: {
5803
+ readonly readonly?: boolean | undefined;
5804
+ readonly format?: string | undefined;
5805
+ readonly options?: {
5806
+ label: string;
5807
+ value: string;
5808
+ color?: string | undefined;
5809
+ default?: boolean | undefined;
5810
+ }[] | undefined;
5811
+ readonly description?: string | undefined;
5812
+ readonly label?: string | undefined;
5813
+ readonly name?: string | undefined;
5814
+ readonly precision?: number | undefined;
5815
+ readonly required?: boolean | undefined;
5816
+ readonly multiple?: boolean | undefined;
5817
+ readonly dependencies?: string[] | undefined;
5818
+ readonly theme?: string | undefined;
5819
+ readonly externalId?: boolean | undefined;
5820
+ readonly system?: boolean | undefined;
5821
+ readonly min?: number | undefined;
5822
+ readonly max?: number | undefined;
5823
+ readonly group?: string | undefined;
5824
+ readonly encryptionConfig?: {
5825
+ enabled: boolean;
5826
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
5827
+ keyManagement: {
5828
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
5829
+ keyId?: string | undefined;
5830
+ rotationPolicy?: {
5831
+ enabled: boolean;
5832
+ frequencyDays: number;
5833
+ retainOldVersions: number;
5834
+ autoRotate: boolean;
5835
+ } | undefined;
5836
+ };
5837
+ scope: "record" | "field" | "table" | "database";
5838
+ deterministicEncryption: boolean;
5839
+ searchableEncryption: boolean;
5840
+ } | undefined;
5841
+ readonly columnName?: string | undefined;
5842
+ readonly searchable?: boolean | undefined;
5843
+ readonly unique?: boolean | undefined;
5844
+ readonly defaultValue?: unknown;
5845
+ readonly maxLength?: number | undefined;
5846
+ readonly minLength?: number | undefined;
5847
+ readonly scale?: number | undefined;
5848
+ readonly reference?: string | undefined;
5849
+ readonly referenceFilters?: string[] | undefined;
5850
+ readonly writeRequiresMasterRead?: boolean | undefined;
5851
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
5852
+ readonly expression?: {
5853
+ dialect: "cel" | "js" | "cron" | "template";
5854
+ source?: string | undefined;
5855
+ ast?: unknown;
5856
+ meta?: {
5857
+ rationale?: string | undefined;
5858
+ generatedBy?: string | undefined;
5859
+ } | undefined;
5860
+ } | undefined;
5861
+ readonly summaryOperations?: {
5862
+ object: string;
5863
+ field: string;
5864
+ function: "min" | "max" | "count" | "sum" | "avg";
5865
+ } | undefined;
5866
+ readonly language?: string | undefined;
5867
+ readonly lineNumbers?: boolean | undefined;
5868
+ readonly maxRating?: number | undefined;
5869
+ readonly allowHalf?: boolean | undefined;
5870
+ readonly displayMap?: boolean | undefined;
5871
+ readonly allowGeocoding?: boolean | undefined;
5872
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
5873
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
5874
+ readonly allowAlpha?: boolean | undefined;
5875
+ readonly presetColors?: string[] | undefined;
5876
+ readonly step?: number | undefined;
5877
+ readonly showValue?: boolean | undefined;
5878
+ readonly marks?: Record<string, string> | undefined;
5879
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
5880
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
5881
+ readonly displayValue?: boolean | undefined;
5882
+ readonly allowScanning?: boolean | undefined;
5883
+ readonly currencyConfig?: {
5884
+ precision: number;
5885
+ currencyMode: "fixed" | "dynamic";
5886
+ defaultCurrency: string;
5887
+ } | undefined;
5888
+ readonly vectorConfig?: {
5889
+ dimensions: number;
5890
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
5891
+ normalized: boolean;
5892
+ indexed: boolean;
5893
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
5894
+ } | undefined;
5895
+ readonly fileAttachmentConfig?: {
5896
+ virusScan: boolean;
5897
+ virusScanOnUpload: boolean;
5898
+ quarantineOnThreat: boolean;
5899
+ allowMultiple: boolean;
5900
+ allowReplace: boolean;
5901
+ allowDelete: boolean;
5902
+ requireUpload: boolean;
5903
+ extractMetadata: boolean;
5904
+ extractText: boolean;
5905
+ versioningEnabled: boolean;
5906
+ publicRead: boolean;
5907
+ presignedUrlExpiry: number;
5908
+ minSize?: number | undefined;
5909
+ maxSize?: number | undefined;
5910
+ allowedTypes?: string[] | undefined;
5911
+ blockedTypes?: string[] | undefined;
5912
+ allowedMimeTypes?: string[] | undefined;
5913
+ blockedMimeTypes?: string[] | undefined;
5914
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
5915
+ storageProvider?: string | undefined;
5916
+ storageBucket?: string | undefined;
5917
+ storagePrefix?: string | undefined;
5918
+ imageValidation?: {
5919
+ generateThumbnails: boolean;
5920
+ preserveMetadata: boolean;
5921
+ autoRotate: boolean;
5922
+ minWidth?: number | undefined;
5923
+ maxWidth?: number | undefined;
5924
+ minHeight?: number | undefined;
5925
+ maxHeight?: number | undefined;
5926
+ aspectRatio?: string | undefined;
5927
+ thumbnailSizes?: {
5928
+ name: string;
5929
+ width: number;
5930
+ height: number;
5931
+ crop: boolean;
5932
+ }[] | undefined;
5933
+ } | undefined;
5934
+ maxVersions?: number | undefined;
5935
+ } | undefined;
5936
+ readonly maskingRule?: {
5937
+ field: string;
5938
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
5939
+ preserveFormat: boolean;
5940
+ preserveLength: boolean;
5941
+ pattern?: string | undefined;
5942
+ roles?: string[] | undefined;
5943
+ exemptRoles?: string[] | undefined;
5944
+ } | undefined;
5945
+ readonly auditTrail?: boolean | undefined;
5946
+ readonly cached?: {
5947
+ enabled: boolean;
5948
+ ttl: number;
5949
+ invalidateOn: string[];
5950
+ } | undefined;
5951
+ readonly dataQuality?: {
5952
+ uniqueness: boolean;
5953
+ completeness: number;
5954
+ accuracy?: {
5955
+ source: string;
5956
+ threshold: number;
5957
+ } | undefined;
5958
+ } | undefined;
5959
+ readonly conditionalRequired?: {
5960
+ dialect: "cel" | "js" | "cron" | "template";
5961
+ source?: string | undefined;
5962
+ ast?: unknown;
5963
+ meta?: {
5964
+ rationale?: string | undefined;
5965
+ generatedBy?: string | undefined;
5966
+ } | undefined;
5967
+ } | undefined;
5968
+ readonly hidden?: boolean | undefined;
5969
+ readonly sortable?: boolean | undefined;
5970
+ readonly inlineHelpText?: string | undefined;
5971
+ readonly trackFeedHistory?: boolean | undefined;
5972
+ readonly caseSensitive?: boolean | undefined;
5973
+ readonly autonumberFormat?: string | undefined;
5974
+ readonly index?: boolean | undefined;
5975
+ readonly type: "text";
5976
+ };
5977
+ readonly conversation_id: {
5978
+ readonly readonly?: boolean | undefined;
5979
+ readonly format?: string | undefined;
5980
+ readonly options?: {
5981
+ label: string;
5982
+ value: string;
5983
+ color?: string | undefined;
5984
+ default?: boolean | undefined;
5985
+ }[] | undefined;
5986
+ readonly description?: string | undefined;
5987
+ readonly label?: string | undefined;
5988
+ readonly name?: string | undefined;
5989
+ readonly precision?: number | undefined;
5990
+ readonly required?: boolean | undefined;
5991
+ readonly multiple?: boolean | undefined;
5992
+ readonly dependencies?: string[] | undefined;
5993
+ readonly theme?: string | undefined;
5994
+ readonly externalId?: boolean | undefined;
5995
+ readonly system?: boolean | undefined;
5996
+ readonly min?: number | undefined;
5997
+ readonly max?: number | undefined;
5998
+ readonly group?: string | undefined;
5999
+ readonly encryptionConfig?: {
6000
+ enabled: boolean;
6001
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
6002
+ keyManagement: {
6003
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
6004
+ keyId?: string | undefined;
6005
+ rotationPolicy?: {
6006
+ enabled: boolean;
6007
+ frequencyDays: number;
6008
+ retainOldVersions: number;
6009
+ autoRotate: boolean;
6010
+ } | undefined;
6011
+ };
6012
+ scope: "record" | "field" | "table" | "database";
6013
+ deterministicEncryption: boolean;
6014
+ searchableEncryption: boolean;
6015
+ } | undefined;
6016
+ readonly columnName?: string | undefined;
6017
+ readonly searchable?: boolean | undefined;
6018
+ readonly unique?: boolean | undefined;
6019
+ readonly defaultValue?: unknown;
6020
+ readonly maxLength?: number | undefined;
6021
+ readonly minLength?: number | undefined;
6022
+ readonly scale?: number | undefined;
6023
+ reference: string;
6024
+ readonly referenceFilters?: string[] | undefined;
6025
+ readonly writeRequiresMasterRead?: boolean | undefined;
6026
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
6027
+ readonly expression?: {
6028
+ dialect: "cel" | "js" | "cron" | "template";
6029
+ source?: string | undefined;
6030
+ ast?: unknown;
6031
+ meta?: {
6032
+ rationale?: string | undefined;
6033
+ generatedBy?: string | undefined;
6034
+ } | undefined;
6035
+ } | undefined;
6036
+ readonly summaryOperations?: {
6037
+ object: string;
6038
+ field: string;
6039
+ function: "min" | "max" | "count" | "sum" | "avg";
6040
+ } | undefined;
6041
+ readonly language?: string | undefined;
6042
+ readonly lineNumbers?: boolean | undefined;
6043
+ readonly maxRating?: number | undefined;
6044
+ readonly allowHalf?: boolean | undefined;
6045
+ readonly displayMap?: boolean | undefined;
6046
+ readonly allowGeocoding?: boolean | undefined;
6047
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
6048
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
6049
+ readonly allowAlpha?: boolean | undefined;
6050
+ readonly presetColors?: string[] | undefined;
6051
+ readonly step?: number | undefined;
6052
+ readonly showValue?: boolean | undefined;
6053
+ readonly marks?: Record<string, string> | undefined;
6054
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
6055
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
6056
+ readonly displayValue?: boolean | undefined;
6057
+ readonly allowScanning?: boolean | undefined;
6058
+ readonly currencyConfig?: {
6059
+ precision: number;
6060
+ currencyMode: "fixed" | "dynamic";
6061
+ defaultCurrency: string;
6062
+ } | undefined;
6063
+ readonly vectorConfig?: {
6064
+ dimensions: number;
6065
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
6066
+ normalized: boolean;
6067
+ indexed: boolean;
6068
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
6069
+ } | undefined;
6070
+ readonly fileAttachmentConfig?: {
6071
+ virusScan: boolean;
6072
+ virusScanOnUpload: boolean;
6073
+ quarantineOnThreat: boolean;
6074
+ allowMultiple: boolean;
6075
+ allowReplace: boolean;
6076
+ allowDelete: boolean;
6077
+ requireUpload: boolean;
6078
+ extractMetadata: boolean;
6079
+ extractText: boolean;
6080
+ versioningEnabled: boolean;
6081
+ publicRead: boolean;
6082
+ presignedUrlExpiry: number;
6083
+ minSize?: number | undefined;
6084
+ maxSize?: number | undefined;
6085
+ allowedTypes?: string[] | undefined;
6086
+ blockedTypes?: string[] | undefined;
6087
+ allowedMimeTypes?: string[] | undefined;
6088
+ blockedMimeTypes?: string[] | undefined;
6089
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
6090
+ storageProvider?: string | undefined;
6091
+ storageBucket?: string | undefined;
6092
+ storagePrefix?: string | undefined;
6093
+ imageValidation?: {
6094
+ generateThumbnails: boolean;
6095
+ preserveMetadata: boolean;
6096
+ autoRotate: boolean;
6097
+ minWidth?: number | undefined;
6098
+ maxWidth?: number | undefined;
6099
+ minHeight?: number | undefined;
6100
+ maxHeight?: number | undefined;
6101
+ aspectRatio?: string | undefined;
6102
+ thumbnailSizes?: {
6103
+ name: string;
6104
+ width: number;
6105
+ height: number;
6106
+ crop: boolean;
6107
+ }[] | undefined;
6108
+ } | undefined;
6109
+ maxVersions?: number | undefined;
6110
+ } | undefined;
6111
+ readonly maskingRule?: {
6112
+ field: string;
6113
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
6114
+ preserveFormat: boolean;
6115
+ preserveLength: boolean;
6116
+ pattern?: string | undefined;
6117
+ roles?: string[] | undefined;
6118
+ exemptRoles?: string[] | undefined;
6119
+ } | undefined;
6120
+ readonly auditTrail?: boolean | undefined;
6121
+ readonly cached?: {
6122
+ enabled: boolean;
6123
+ ttl: number;
6124
+ invalidateOn: string[];
6125
+ } | undefined;
6126
+ readonly dataQuality?: {
6127
+ uniqueness: boolean;
6128
+ completeness: number;
6129
+ accuracy?: {
6130
+ source: string;
6131
+ threshold: number;
6132
+ } | undefined;
6133
+ } | undefined;
6134
+ readonly conditionalRequired?: {
6135
+ dialect: "cel" | "js" | "cron" | "template";
6136
+ source?: string | undefined;
6137
+ ast?: unknown;
6138
+ meta?: {
6139
+ rationale?: string | undefined;
6140
+ generatedBy?: string | undefined;
6141
+ } | undefined;
6142
+ } | undefined;
6143
+ readonly hidden?: boolean | undefined;
6144
+ readonly sortable?: boolean | undefined;
6145
+ readonly inlineHelpText?: string | undefined;
6146
+ readonly trackFeedHistory?: boolean | undefined;
6147
+ readonly caseSensitive?: boolean | undefined;
6148
+ readonly autonumberFormat?: string | undefined;
6149
+ readonly index?: boolean | undefined;
6150
+ readonly type: "lookup";
6151
+ };
6152
+ readonly agent_id: {
6153
+ readonly readonly?: boolean | undefined;
6154
+ readonly format?: string | undefined;
6155
+ readonly options?: {
6156
+ label: string;
6157
+ value: string;
6158
+ color?: string | undefined;
6159
+ default?: boolean | undefined;
6160
+ }[] | undefined;
6161
+ readonly description?: string | undefined;
6162
+ readonly label?: string | undefined;
6163
+ readonly name?: string | undefined;
6164
+ readonly precision?: number | undefined;
6165
+ readonly required?: boolean | undefined;
6166
+ readonly multiple?: boolean | undefined;
6167
+ readonly dependencies?: string[] | undefined;
6168
+ readonly theme?: string | undefined;
6169
+ readonly externalId?: boolean | undefined;
6170
+ readonly system?: boolean | undefined;
6171
+ readonly min?: number | undefined;
6172
+ readonly max?: number | undefined;
6173
+ readonly group?: string | undefined;
6174
+ readonly encryptionConfig?: {
6175
+ enabled: boolean;
6176
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
6177
+ keyManagement: {
6178
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
6179
+ keyId?: string | undefined;
6180
+ rotationPolicy?: {
6181
+ enabled: boolean;
6182
+ frequencyDays: number;
6183
+ retainOldVersions: number;
6184
+ autoRotate: boolean;
6185
+ } | undefined;
6186
+ };
6187
+ scope: "record" | "field" | "table" | "database";
6188
+ deterministicEncryption: boolean;
6189
+ searchableEncryption: boolean;
6190
+ } | undefined;
6191
+ readonly columnName?: string | undefined;
6192
+ readonly searchable?: boolean | undefined;
6193
+ readonly unique?: boolean | undefined;
6194
+ readonly defaultValue?: unknown;
6195
+ readonly maxLength?: number | undefined;
6196
+ readonly minLength?: number | undefined;
6197
+ readonly scale?: number | undefined;
6198
+ readonly reference?: string | undefined;
6199
+ readonly referenceFilters?: string[] | undefined;
6200
+ readonly writeRequiresMasterRead?: boolean | undefined;
6201
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
6202
+ readonly expression?: {
6203
+ dialect: "cel" | "js" | "cron" | "template";
6204
+ source?: string | undefined;
6205
+ ast?: unknown;
6206
+ meta?: {
6207
+ rationale?: string | undefined;
6208
+ generatedBy?: string | undefined;
6209
+ } | undefined;
6210
+ } | undefined;
6211
+ readonly summaryOperations?: {
6212
+ object: string;
6213
+ field: string;
6214
+ function: "min" | "max" | "count" | "sum" | "avg";
6215
+ } | undefined;
6216
+ readonly language?: string | undefined;
6217
+ readonly lineNumbers?: boolean | undefined;
6218
+ readonly maxRating?: number | undefined;
6219
+ readonly allowHalf?: boolean | undefined;
6220
+ readonly displayMap?: boolean | undefined;
6221
+ readonly allowGeocoding?: boolean | undefined;
6222
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
6223
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
6224
+ readonly allowAlpha?: boolean | undefined;
6225
+ readonly presetColors?: string[] | undefined;
6226
+ readonly step?: number | undefined;
6227
+ readonly showValue?: boolean | undefined;
6228
+ readonly marks?: Record<string, string> | undefined;
6229
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
6230
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
6231
+ readonly displayValue?: boolean | undefined;
6232
+ readonly allowScanning?: boolean | undefined;
6233
+ readonly currencyConfig?: {
6234
+ precision: number;
6235
+ currencyMode: "fixed" | "dynamic";
6236
+ defaultCurrency: string;
6237
+ } | undefined;
6238
+ readonly vectorConfig?: {
6239
+ dimensions: number;
6240
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
6241
+ normalized: boolean;
6242
+ indexed: boolean;
6243
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
6244
+ } | undefined;
6245
+ readonly fileAttachmentConfig?: {
6246
+ virusScan: boolean;
6247
+ virusScanOnUpload: boolean;
6248
+ quarantineOnThreat: boolean;
6249
+ allowMultiple: boolean;
6250
+ allowReplace: boolean;
6251
+ allowDelete: boolean;
6252
+ requireUpload: boolean;
6253
+ extractMetadata: boolean;
6254
+ extractText: boolean;
6255
+ versioningEnabled: boolean;
6256
+ publicRead: boolean;
6257
+ presignedUrlExpiry: number;
6258
+ minSize?: number | undefined;
6259
+ maxSize?: number | undefined;
6260
+ allowedTypes?: string[] | undefined;
6261
+ blockedTypes?: string[] | undefined;
6262
+ allowedMimeTypes?: string[] | undefined;
6263
+ blockedMimeTypes?: string[] | undefined;
6264
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
6265
+ storageProvider?: string | undefined;
6266
+ storageBucket?: string | undefined;
6267
+ storagePrefix?: string | undefined;
6268
+ imageValidation?: {
6269
+ generateThumbnails: boolean;
6270
+ preserveMetadata: boolean;
6271
+ autoRotate: boolean;
6272
+ minWidth?: number | undefined;
6273
+ maxWidth?: number | undefined;
6274
+ minHeight?: number | undefined;
6275
+ maxHeight?: number | undefined;
6276
+ aspectRatio?: string | undefined;
6277
+ thumbnailSizes?: {
6278
+ name: string;
6279
+ width: number;
6280
+ height: number;
6281
+ crop: boolean;
6282
+ }[] | undefined;
6283
+ } | undefined;
6284
+ maxVersions?: number | undefined;
6285
+ } | undefined;
6286
+ readonly maskingRule?: {
6287
+ field: string;
6288
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
6289
+ preserveFormat: boolean;
6290
+ preserveLength: boolean;
6291
+ pattern?: string | undefined;
6292
+ roles?: string[] | undefined;
6293
+ exemptRoles?: string[] | undefined;
6294
+ } | undefined;
6295
+ readonly auditTrail?: boolean | undefined;
6296
+ readonly cached?: {
6297
+ enabled: boolean;
6298
+ ttl: number;
6299
+ invalidateOn: string[];
6300
+ } | undefined;
6301
+ readonly dataQuality?: {
6302
+ uniqueness: boolean;
6303
+ completeness: number;
6304
+ accuracy?: {
6305
+ source: string;
6306
+ threshold: number;
6307
+ } | undefined;
6308
+ } | undefined;
6309
+ readonly conditionalRequired?: {
6310
+ dialect: "cel" | "js" | "cron" | "template";
6311
+ source?: string | undefined;
6312
+ ast?: unknown;
6313
+ meta?: {
6314
+ rationale?: string | undefined;
6315
+ generatedBy?: string | undefined;
6316
+ } | undefined;
6317
+ } | undefined;
6318
+ readonly hidden?: boolean | undefined;
6319
+ readonly sortable?: boolean | undefined;
6320
+ readonly inlineHelpText?: string | undefined;
6321
+ readonly trackFeedHistory?: boolean | undefined;
6322
+ readonly caseSensitive?: boolean | undefined;
6323
+ readonly autonumberFormat?: string | undefined;
6324
+ readonly index?: boolean | undefined;
6325
+ readonly type: "text";
6326
+ };
6327
+ readonly operation: {
6328
+ readonly readonly?: boolean | undefined;
6329
+ readonly format?: string | undefined;
6330
+ options: {
6331
+ label: string;
6332
+ value: string;
6333
+ color?: string | undefined;
6334
+ default?: boolean | undefined;
6335
+ }[];
6336
+ readonly description?: string | undefined;
6337
+ readonly label?: string | undefined;
6338
+ readonly name?: string | undefined;
6339
+ readonly precision?: number | undefined;
6340
+ readonly required?: boolean | undefined;
6341
+ readonly multiple?: boolean | undefined;
6342
+ readonly dependencies?: string[] | undefined;
6343
+ readonly theme?: string | undefined;
6344
+ readonly externalId?: boolean | undefined;
6345
+ readonly system?: boolean | undefined;
6346
+ readonly min?: number | undefined;
6347
+ readonly max?: number | undefined;
6348
+ readonly group?: string | undefined;
6349
+ readonly encryptionConfig?: {
6350
+ enabled: boolean;
6351
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
6352
+ keyManagement: {
6353
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
6354
+ keyId?: string | undefined;
6355
+ rotationPolicy?: {
6356
+ enabled: boolean;
6357
+ frequencyDays: number;
6358
+ retainOldVersions: number;
6359
+ autoRotate: boolean;
6360
+ } | undefined;
6361
+ };
6362
+ scope: "record" | "field" | "table" | "database";
6363
+ deterministicEncryption: boolean;
6364
+ searchableEncryption: boolean;
6365
+ } | undefined;
6366
+ readonly columnName?: string | undefined;
6367
+ readonly searchable?: boolean | undefined;
6368
+ readonly unique?: boolean | undefined;
6369
+ readonly defaultValue?: unknown;
6370
+ readonly maxLength?: number | undefined;
6371
+ readonly minLength?: number | undefined;
6372
+ readonly scale?: number | undefined;
6373
+ readonly reference?: string | undefined;
6374
+ readonly referenceFilters?: string[] | undefined;
6375
+ readonly writeRequiresMasterRead?: boolean | undefined;
6376
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
6377
+ readonly expression?: {
6378
+ dialect: "cel" | "js" | "cron" | "template";
6379
+ source?: string | undefined;
6380
+ ast?: unknown;
6381
+ meta?: {
6382
+ rationale?: string | undefined;
6383
+ generatedBy?: string | undefined;
6384
+ } | undefined;
6385
+ } | undefined;
6386
+ readonly summaryOperations?: {
6387
+ object: string;
6388
+ field: string;
6389
+ function: "min" | "max" | "count" | "sum" | "avg";
6390
+ } | undefined;
6391
+ readonly language?: string | undefined;
6392
+ readonly lineNumbers?: boolean | undefined;
6393
+ readonly maxRating?: number | undefined;
6394
+ readonly allowHalf?: boolean | undefined;
6395
+ readonly displayMap?: boolean | undefined;
6396
+ readonly allowGeocoding?: boolean | undefined;
6397
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
6398
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
6399
+ readonly allowAlpha?: boolean | undefined;
6400
+ readonly presetColors?: string[] | undefined;
6401
+ readonly step?: number | undefined;
6402
+ readonly showValue?: boolean | undefined;
6403
+ readonly marks?: Record<string, string> | undefined;
6404
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
6405
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
6406
+ readonly displayValue?: boolean | undefined;
6407
+ readonly allowScanning?: boolean | undefined;
6408
+ readonly currencyConfig?: {
6409
+ precision: number;
6410
+ currencyMode: "fixed" | "dynamic";
6411
+ defaultCurrency: string;
6412
+ } | undefined;
6413
+ readonly vectorConfig?: {
6414
+ dimensions: number;
6415
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
6416
+ normalized: boolean;
6417
+ indexed: boolean;
6418
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
6419
+ } | undefined;
6420
+ readonly fileAttachmentConfig?: {
6421
+ virusScan: boolean;
6422
+ virusScanOnUpload: boolean;
6423
+ quarantineOnThreat: boolean;
6424
+ allowMultiple: boolean;
6425
+ allowReplace: boolean;
6426
+ allowDelete: boolean;
6427
+ requireUpload: boolean;
6428
+ extractMetadata: boolean;
6429
+ extractText: boolean;
6430
+ versioningEnabled: boolean;
6431
+ publicRead: boolean;
6432
+ presignedUrlExpiry: number;
6433
+ minSize?: number | undefined;
6434
+ maxSize?: number | undefined;
6435
+ allowedTypes?: string[] | undefined;
6436
+ blockedTypes?: string[] | undefined;
6437
+ allowedMimeTypes?: string[] | undefined;
6438
+ blockedMimeTypes?: string[] | undefined;
6439
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
6440
+ storageProvider?: string | undefined;
6441
+ storageBucket?: string | undefined;
6442
+ storagePrefix?: string | undefined;
6443
+ imageValidation?: {
6444
+ generateThumbnails: boolean;
6445
+ preserveMetadata: boolean;
6446
+ autoRotate: boolean;
6447
+ minWidth?: number | undefined;
6448
+ maxWidth?: number | undefined;
6449
+ minHeight?: number | undefined;
6450
+ maxHeight?: number | undefined;
6451
+ aspectRatio?: string | undefined;
6452
+ thumbnailSizes?: {
6453
+ name: string;
6454
+ width: number;
6455
+ height: number;
6456
+ crop: boolean;
6457
+ }[] | undefined;
6458
+ } | undefined;
6459
+ maxVersions?: number | undefined;
6460
+ } | undefined;
6461
+ readonly maskingRule?: {
6462
+ field: string;
6463
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
6464
+ preserveFormat: boolean;
6465
+ preserveLength: boolean;
6466
+ pattern?: string | undefined;
6467
+ roles?: string[] | undefined;
6468
+ exemptRoles?: string[] | undefined;
6469
+ } | undefined;
6470
+ readonly auditTrail?: boolean | undefined;
6471
+ readonly cached?: {
6472
+ enabled: boolean;
6473
+ ttl: number;
6474
+ invalidateOn: string[];
6475
+ } | undefined;
6476
+ readonly dataQuality?: {
6477
+ uniqueness: boolean;
6478
+ completeness: number;
6479
+ accuracy?: {
6480
+ source: string;
6481
+ threshold: number;
6482
+ } | undefined;
6483
+ } | undefined;
6484
+ readonly conditionalRequired?: {
6485
+ dialect: "cel" | "js" | "cron" | "template";
6486
+ source?: string | undefined;
6487
+ ast?: unknown;
6488
+ meta?: {
6489
+ rationale?: string | undefined;
6490
+ generatedBy?: string | undefined;
6491
+ } | undefined;
6492
+ } | undefined;
6493
+ readonly hidden?: boolean | undefined;
6494
+ readonly sortable?: boolean | undefined;
6495
+ readonly inlineHelpText?: string | undefined;
6496
+ readonly trackFeedHistory?: boolean | undefined;
6497
+ readonly caseSensitive?: boolean | undefined;
6498
+ readonly autonumberFormat?: string | undefined;
6499
+ readonly index?: boolean | undefined;
6500
+ readonly type: "select";
6501
+ };
6502
+ readonly model: {
6503
+ readonly readonly?: boolean | undefined;
6504
+ readonly format?: string | undefined;
6505
+ readonly options?: {
6506
+ label: string;
6507
+ value: string;
6508
+ color?: string | undefined;
6509
+ default?: boolean | undefined;
6510
+ }[] | undefined;
6511
+ readonly description?: string | undefined;
6512
+ readonly label?: string | undefined;
6513
+ readonly name?: string | undefined;
6514
+ readonly precision?: number | undefined;
6515
+ readonly required?: boolean | undefined;
6516
+ readonly multiple?: boolean | undefined;
6517
+ readonly dependencies?: string[] | undefined;
6518
+ readonly theme?: string | undefined;
6519
+ readonly externalId?: boolean | undefined;
6520
+ readonly system?: boolean | undefined;
6521
+ readonly min?: number | undefined;
6522
+ readonly max?: number | undefined;
6523
+ readonly group?: string | undefined;
6524
+ readonly encryptionConfig?: {
6525
+ enabled: boolean;
6526
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
6527
+ keyManagement: {
6528
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
6529
+ keyId?: string | undefined;
6530
+ rotationPolicy?: {
6531
+ enabled: boolean;
6532
+ frequencyDays: number;
6533
+ retainOldVersions: number;
6534
+ autoRotate: boolean;
6535
+ } | undefined;
6536
+ };
6537
+ scope: "record" | "field" | "table" | "database";
6538
+ deterministicEncryption: boolean;
6539
+ searchableEncryption: boolean;
6540
+ } | undefined;
6541
+ readonly columnName?: string | undefined;
6542
+ readonly searchable?: boolean | undefined;
6543
+ readonly unique?: boolean | undefined;
6544
+ readonly defaultValue?: unknown;
6545
+ readonly maxLength?: number | undefined;
6546
+ readonly minLength?: number | undefined;
6547
+ readonly scale?: number | undefined;
6548
+ readonly reference?: string | undefined;
6549
+ readonly referenceFilters?: string[] | undefined;
6550
+ readonly writeRequiresMasterRead?: boolean | undefined;
6551
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
6552
+ readonly expression?: {
6553
+ dialect: "cel" | "js" | "cron" | "template";
6554
+ source?: string | undefined;
6555
+ ast?: unknown;
6556
+ meta?: {
6557
+ rationale?: string | undefined;
6558
+ generatedBy?: string | undefined;
6559
+ } | undefined;
6560
+ } | undefined;
6561
+ readonly summaryOperations?: {
6562
+ object: string;
6563
+ field: string;
6564
+ function: "min" | "max" | "count" | "sum" | "avg";
6565
+ } | undefined;
6566
+ readonly language?: string | undefined;
6567
+ readonly lineNumbers?: boolean | undefined;
6568
+ readonly maxRating?: number | undefined;
6569
+ readonly allowHalf?: boolean | undefined;
6570
+ readonly displayMap?: boolean | undefined;
6571
+ readonly allowGeocoding?: boolean | undefined;
6572
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
6573
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
6574
+ readonly allowAlpha?: boolean | undefined;
6575
+ readonly presetColors?: string[] | undefined;
6576
+ readonly step?: number | undefined;
6577
+ readonly showValue?: boolean | undefined;
6578
+ readonly marks?: Record<string, string> | undefined;
6579
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
6580
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
6581
+ readonly displayValue?: boolean | undefined;
6582
+ readonly allowScanning?: boolean | undefined;
6583
+ readonly currencyConfig?: {
6584
+ precision: number;
6585
+ currencyMode: "fixed" | "dynamic";
6586
+ defaultCurrency: string;
6587
+ } | undefined;
6588
+ readonly vectorConfig?: {
6589
+ dimensions: number;
6590
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
6591
+ normalized: boolean;
6592
+ indexed: boolean;
6593
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
6594
+ } | undefined;
6595
+ readonly fileAttachmentConfig?: {
6596
+ virusScan: boolean;
6597
+ virusScanOnUpload: boolean;
6598
+ quarantineOnThreat: boolean;
6599
+ allowMultiple: boolean;
6600
+ allowReplace: boolean;
6601
+ allowDelete: boolean;
6602
+ requireUpload: boolean;
6603
+ extractMetadata: boolean;
6604
+ extractText: boolean;
6605
+ versioningEnabled: boolean;
6606
+ publicRead: boolean;
6607
+ presignedUrlExpiry: number;
6608
+ minSize?: number | undefined;
6609
+ maxSize?: number | undefined;
6610
+ allowedTypes?: string[] | undefined;
6611
+ blockedTypes?: string[] | undefined;
6612
+ allowedMimeTypes?: string[] | undefined;
6613
+ blockedMimeTypes?: string[] | undefined;
6614
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
6615
+ storageProvider?: string | undefined;
6616
+ storageBucket?: string | undefined;
6617
+ storagePrefix?: string | undefined;
6618
+ imageValidation?: {
6619
+ generateThumbnails: boolean;
6620
+ preserveMetadata: boolean;
6621
+ autoRotate: boolean;
6622
+ minWidth?: number | undefined;
6623
+ maxWidth?: number | undefined;
6624
+ minHeight?: number | undefined;
6625
+ maxHeight?: number | undefined;
6626
+ aspectRatio?: string | undefined;
6627
+ thumbnailSizes?: {
6628
+ name: string;
6629
+ width: number;
6630
+ height: number;
6631
+ crop: boolean;
6632
+ }[] | undefined;
6633
+ } | undefined;
6634
+ maxVersions?: number | undefined;
6635
+ } | undefined;
6636
+ readonly maskingRule?: {
6637
+ field: string;
6638
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
6639
+ preserveFormat: boolean;
6640
+ preserveLength: boolean;
6641
+ pattern?: string | undefined;
6642
+ roles?: string[] | undefined;
6643
+ exemptRoles?: string[] | undefined;
6644
+ } | undefined;
6645
+ readonly auditTrail?: boolean | undefined;
6646
+ readonly cached?: {
6647
+ enabled: boolean;
6648
+ ttl: number;
6649
+ invalidateOn: string[];
6650
+ } | undefined;
6651
+ readonly dataQuality?: {
6652
+ uniqueness: boolean;
6653
+ completeness: number;
6654
+ accuracy?: {
6655
+ source: string;
6656
+ threshold: number;
6657
+ } | undefined;
6658
+ } | undefined;
6659
+ readonly conditionalRequired?: {
6660
+ dialect: "cel" | "js" | "cron" | "template";
6661
+ source?: string | undefined;
6662
+ ast?: unknown;
6663
+ meta?: {
6664
+ rationale?: string | undefined;
6665
+ generatedBy?: string | undefined;
6666
+ } | undefined;
6667
+ } | undefined;
6668
+ readonly hidden?: boolean | undefined;
6669
+ readonly sortable?: boolean | undefined;
6670
+ readonly inlineHelpText?: string | undefined;
6671
+ readonly trackFeedHistory?: boolean | undefined;
6672
+ readonly caseSensitive?: boolean | undefined;
6673
+ readonly autonumberFormat?: string | undefined;
6674
+ readonly index?: boolean | undefined;
6675
+ readonly type: "text";
6676
+ };
6677
+ readonly adapter: {
6678
+ readonly readonly?: boolean | undefined;
6679
+ readonly format?: string | undefined;
6680
+ readonly options?: {
6681
+ label: string;
6682
+ value: string;
6683
+ color?: string | undefined;
6684
+ default?: boolean | undefined;
6685
+ }[] | undefined;
6686
+ readonly description?: string | undefined;
6687
+ readonly label?: string | undefined;
6688
+ readonly name?: string | undefined;
6689
+ readonly precision?: number | undefined;
6690
+ readonly required?: boolean | undefined;
6691
+ readonly multiple?: boolean | undefined;
6692
+ readonly dependencies?: string[] | undefined;
6693
+ readonly theme?: string | undefined;
6694
+ readonly externalId?: boolean | undefined;
6695
+ readonly system?: boolean | undefined;
6696
+ readonly min?: number | undefined;
6697
+ readonly max?: number | undefined;
6698
+ readonly group?: string | undefined;
6699
+ readonly encryptionConfig?: {
6700
+ enabled: boolean;
6701
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
6702
+ keyManagement: {
6703
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
6704
+ keyId?: string | undefined;
6705
+ rotationPolicy?: {
6706
+ enabled: boolean;
6707
+ frequencyDays: number;
6708
+ retainOldVersions: number;
6709
+ autoRotate: boolean;
6710
+ } | undefined;
6711
+ };
6712
+ scope: "record" | "field" | "table" | "database";
6713
+ deterministicEncryption: boolean;
6714
+ searchableEncryption: boolean;
6715
+ } | undefined;
6716
+ readonly columnName?: string | undefined;
6717
+ readonly searchable?: boolean | undefined;
6718
+ readonly unique?: boolean | undefined;
6719
+ readonly defaultValue?: unknown;
6720
+ readonly maxLength?: number | undefined;
6721
+ readonly minLength?: number | undefined;
6722
+ readonly scale?: number | undefined;
6723
+ readonly reference?: string | undefined;
6724
+ readonly referenceFilters?: string[] | undefined;
6725
+ readonly writeRequiresMasterRead?: boolean | undefined;
6726
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
6727
+ readonly expression?: {
6728
+ dialect: "cel" | "js" | "cron" | "template";
6729
+ source?: string | undefined;
6730
+ ast?: unknown;
6731
+ meta?: {
6732
+ rationale?: string | undefined;
6733
+ generatedBy?: string | undefined;
6734
+ } | undefined;
6735
+ } | undefined;
6736
+ readonly summaryOperations?: {
6737
+ object: string;
6738
+ field: string;
6739
+ function: "min" | "max" | "count" | "sum" | "avg";
6740
+ } | undefined;
6741
+ readonly language?: string | undefined;
6742
+ readonly lineNumbers?: boolean | undefined;
6743
+ readonly maxRating?: number | undefined;
6744
+ readonly allowHalf?: boolean | undefined;
6745
+ readonly displayMap?: boolean | undefined;
6746
+ readonly allowGeocoding?: boolean | undefined;
6747
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
6748
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
6749
+ readonly allowAlpha?: boolean | undefined;
6750
+ readonly presetColors?: string[] | undefined;
6751
+ readonly step?: number | undefined;
6752
+ readonly showValue?: boolean | undefined;
6753
+ readonly marks?: Record<string, string> | undefined;
6754
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
6755
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
6756
+ readonly displayValue?: boolean | undefined;
6757
+ readonly allowScanning?: boolean | undefined;
6758
+ readonly currencyConfig?: {
6759
+ precision: number;
6760
+ currencyMode: "fixed" | "dynamic";
6761
+ defaultCurrency: string;
6762
+ } | undefined;
6763
+ readonly vectorConfig?: {
6764
+ dimensions: number;
6765
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
6766
+ normalized: boolean;
6767
+ indexed: boolean;
6768
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
6769
+ } | undefined;
6770
+ readonly fileAttachmentConfig?: {
6771
+ virusScan: boolean;
6772
+ virusScanOnUpload: boolean;
6773
+ quarantineOnThreat: boolean;
6774
+ allowMultiple: boolean;
6775
+ allowReplace: boolean;
6776
+ allowDelete: boolean;
6777
+ requireUpload: boolean;
6778
+ extractMetadata: boolean;
6779
+ extractText: boolean;
6780
+ versioningEnabled: boolean;
6781
+ publicRead: boolean;
6782
+ presignedUrlExpiry: number;
6783
+ minSize?: number | undefined;
6784
+ maxSize?: number | undefined;
6785
+ allowedTypes?: string[] | undefined;
6786
+ blockedTypes?: string[] | undefined;
6787
+ allowedMimeTypes?: string[] | undefined;
6788
+ blockedMimeTypes?: string[] | undefined;
6789
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
6790
+ storageProvider?: string | undefined;
6791
+ storageBucket?: string | undefined;
6792
+ storagePrefix?: string | undefined;
6793
+ imageValidation?: {
6794
+ generateThumbnails: boolean;
6795
+ preserveMetadata: boolean;
6796
+ autoRotate: boolean;
6797
+ minWidth?: number | undefined;
6798
+ maxWidth?: number | undefined;
6799
+ minHeight?: number | undefined;
6800
+ maxHeight?: number | undefined;
6801
+ aspectRatio?: string | undefined;
6802
+ thumbnailSizes?: {
6803
+ name: string;
6804
+ width: number;
6805
+ height: number;
6806
+ crop: boolean;
6807
+ }[] | undefined;
6808
+ } | undefined;
6809
+ maxVersions?: number | undefined;
6810
+ } | undefined;
6811
+ readonly maskingRule?: {
6812
+ field: string;
6813
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
6814
+ preserveFormat: boolean;
6815
+ preserveLength: boolean;
6816
+ pattern?: string | undefined;
6817
+ roles?: string[] | undefined;
6818
+ exemptRoles?: string[] | undefined;
6819
+ } | undefined;
6820
+ readonly auditTrail?: boolean | undefined;
6821
+ readonly cached?: {
6822
+ enabled: boolean;
6823
+ ttl: number;
6824
+ invalidateOn: string[];
6825
+ } | undefined;
6826
+ readonly dataQuality?: {
6827
+ uniqueness: boolean;
6828
+ completeness: number;
6829
+ accuracy?: {
6830
+ source: string;
6831
+ threshold: number;
6832
+ } | undefined;
6833
+ } | undefined;
6834
+ readonly conditionalRequired?: {
6835
+ dialect: "cel" | "js" | "cron" | "template";
6836
+ source?: string | undefined;
6837
+ ast?: unknown;
6838
+ meta?: {
6839
+ rationale?: string | undefined;
6840
+ generatedBy?: string | undefined;
6841
+ } | undefined;
6842
+ } | undefined;
6843
+ readonly hidden?: boolean | undefined;
6844
+ readonly sortable?: boolean | undefined;
6845
+ readonly inlineHelpText?: string | undefined;
6846
+ readonly trackFeedHistory?: boolean | undefined;
6847
+ readonly caseSensitive?: boolean | undefined;
6848
+ readonly autonumberFormat?: string | undefined;
6849
+ readonly index?: boolean | undefined;
6850
+ readonly type: "text";
6851
+ };
6852
+ readonly prompt_tokens: {
6853
+ readonly readonly?: boolean | undefined;
6854
+ readonly format?: string | undefined;
6855
+ readonly options?: {
6856
+ label: string;
6857
+ value: string;
6858
+ color?: string | undefined;
6859
+ default?: boolean | undefined;
6860
+ }[] | undefined;
6861
+ readonly description?: string | undefined;
6862
+ readonly label?: string | undefined;
6863
+ readonly name?: string | undefined;
6864
+ readonly precision?: number | undefined;
6865
+ readonly required?: boolean | undefined;
6866
+ readonly multiple?: boolean | undefined;
6867
+ readonly dependencies?: string[] | undefined;
6868
+ readonly theme?: string | undefined;
6869
+ readonly externalId?: boolean | undefined;
6870
+ readonly system?: boolean | undefined;
6871
+ readonly min?: number | undefined;
6872
+ readonly max?: number | undefined;
6873
+ readonly group?: string | undefined;
6874
+ readonly encryptionConfig?: {
6875
+ enabled: boolean;
6876
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
6877
+ keyManagement: {
6878
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
6879
+ keyId?: string | undefined;
6880
+ rotationPolicy?: {
6881
+ enabled: boolean;
6882
+ frequencyDays: number;
6883
+ retainOldVersions: number;
6884
+ autoRotate: boolean;
6885
+ } | undefined;
6886
+ };
6887
+ scope: "record" | "field" | "table" | "database";
6888
+ deterministicEncryption: boolean;
6889
+ searchableEncryption: boolean;
6890
+ } | undefined;
6891
+ readonly columnName?: string | undefined;
6892
+ readonly searchable?: boolean | undefined;
6893
+ readonly unique?: boolean | undefined;
6894
+ readonly defaultValue?: unknown;
6895
+ readonly maxLength?: number | undefined;
6896
+ readonly minLength?: number | undefined;
6897
+ readonly scale?: number | undefined;
6898
+ readonly reference?: string | undefined;
6899
+ readonly referenceFilters?: string[] | undefined;
6900
+ readonly writeRequiresMasterRead?: boolean | undefined;
6901
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
6902
+ readonly expression?: {
6903
+ dialect: "cel" | "js" | "cron" | "template";
6904
+ source?: string | undefined;
6905
+ ast?: unknown;
6906
+ meta?: {
6907
+ rationale?: string | undefined;
6908
+ generatedBy?: string | undefined;
6909
+ } | undefined;
6910
+ } | undefined;
6911
+ readonly summaryOperations?: {
6912
+ object: string;
6913
+ field: string;
6914
+ function: "min" | "max" | "count" | "sum" | "avg";
6915
+ } | undefined;
6916
+ readonly language?: string | undefined;
6917
+ readonly lineNumbers?: boolean | undefined;
6918
+ readonly maxRating?: number | undefined;
6919
+ readonly allowHalf?: boolean | undefined;
6920
+ readonly displayMap?: boolean | undefined;
6921
+ readonly allowGeocoding?: boolean | undefined;
6922
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
6923
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
6924
+ readonly allowAlpha?: boolean | undefined;
6925
+ readonly presetColors?: string[] | undefined;
6926
+ readonly step?: number | undefined;
6927
+ readonly showValue?: boolean | undefined;
6928
+ readonly marks?: Record<string, string> | undefined;
6929
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
6930
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
6931
+ readonly displayValue?: boolean | undefined;
6932
+ readonly allowScanning?: boolean | undefined;
6933
+ readonly currencyConfig?: {
6934
+ precision: number;
6935
+ currencyMode: "fixed" | "dynamic";
6936
+ defaultCurrency: string;
6937
+ } | undefined;
6938
+ readonly vectorConfig?: {
6939
+ dimensions: number;
6940
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
6941
+ normalized: boolean;
6942
+ indexed: boolean;
6943
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
6944
+ } | undefined;
6945
+ readonly fileAttachmentConfig?: {
6946
+ virusScan: boolean;
6947
+ virusScanOnUpload: boolean;
6948
+ quarantineOnThreat: boolean;
6949
+ allowMultiple: boolean;
6950
+ allowReplace: boolean;
6951
+ allowDelete: boolean;
6952
+ requireUpload: boolean;
6953
+ extractMetadata: boolean;
6954
+ extractText: boolean;
6955
+ versioningEnabled: boolean;
6956
+ publicRead: boolean;
6957
+ presignedUrlExpiry: number;
6958
+ minSize?: number | undefined;
6959
+ maxSize?: number | undefined;
6960
+ allowedTypes?: string[] | undefined;
6961
+ blockedTypes?: string[] | undefined;
6962
+ allowedMimeTypes?: string[] | undefined;
6963
+ blockedMimeTypes?: string[] | undefined;
6964
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
6965
+ storageProvider?: string | undefined;
6966
+ storageBucket?: string | undefined;
6967
+ storagePrefix?: string | undefined;
6968
+ imageValidation?: {
6969
+ generateThumbnails: boolean;
6970
+ preserveMetadata: boolean;
6971
+ autoRotate: boolean;
6972
+ minWidth?: number | undefined;
6973
+ maxWidth?: number | undefined;
6974
+ minHeight?: number | undefined;
6975
+ maxHeight?: number | undefined;
6976
+ aspectRatio?: string | undefined;
6977
+ thumbnailSizes?: {
6978
+ name: string;
6979
+ width: number;
6980
+ height: number;
6981
+ crop: boolean;
6982
+ }[] | undefined;
6983
+ } | undefined;
6984
+ maxVersions?: number | undefined;
6985
+ } | undefined;
6986
+ readonly maskingRule?: {
6987
+ field: string;
6988
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
6989
+ preserveFormat: boolean;
6990
+ preserveLength: boolean;
6991
+ pattern?: string | undefined;
6992
+ roles?: string[] | undefined;
6993
+ exemptRoles?: string[] | undefined;
6994
+ } | undefined;
6995
+ readonly auditTrail?: boolean | undefined;
6996
+ readonly cached?: {
6997
+ enabled: boolean;
6998
+ ttl: number;
6999
+ invalidateOn: string[];
7000
+ } | undefined;
7001
+ readonly dataQuality?: {
7002
+ uniqueness: boolean;
7003
+ completeness: number;
7004
+ accuracy?: {
7005
+ source: string;
7006
+ threshold: number;
7007
+ } | undefined;
7008
+ } | undefined;
7009
+ readonly conditionalRequired?: {
7010
+ dialect: "cel" | "js" | "cron" | "template";
7011
+ source?: string | undefined;
7012
+ ast?: unknown;
7013
+ meta?: {
7014
+ rationale?: string | undefined;
7015
+ generatedBy?: string | undefined;
7016
+ } | undefined;
7017
+ } | undefined;
7018
+ readonly hidden?: boolean | undefined;
7019
+ readonly sortable?: boolean | undefined;
7020
+ readonly inlineHelpText?: string | undefined;
7021
+ readonly trackFeedHistory?: boolean | undefined;
7022
+ readonly caseSensitive?: boolean | undefined;
7023
+ readonly autonumberFormat?: string | undefined;
7024
+ readonly index?: boolean | undefined;
7025
+ readonly type: "number";
7026
+ };
7027
+ readonly completion_tokens: {
7028
+ readonly readonly?: boolean | undefined;
7029
+ readonly format?: string | undefined;
7030
+ readonly options?: {
7031
+ label: string;
7032
+ value: string;
7033
+ color?: string | undefined;
7034
+ default?: boolean | undefined;
7035
+ }[] | undefined;
7036
+ readonly description?: string | undefined;
7037
+ readonly label?: string | undefined;
7038
+ readonly name?: string | undefined;
7039
+ readonly precision?: number | undefined;
7040
+ readonly required?: boolean | undefined;
7041
+ readonly multiple?: boolean | undefined;
7042
+ readonly dependencies?: string[] | undefined;
7043
+ readonly theme?: string | undefined;
7044
+ readonly externalId?: boolean | undefined;
7045
+ readonly system?: boolean | undefined;
7046
+ readonly min?: number | undefined;
7047
+ readonly max?: number | undefined;
7048
+ readonly group?: string | undefined;
7049
+ readonly encryptionConfig?: {
7050
+ enabled: boolean;
7051
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
7052
+ keyManagement: {
7053
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
7054
+ keyId?: string | undefined;
7055
+ rotationPolicy?: {
7056
+ enabled: boolean;
7057
+ frequencyDays: number;
7058
+ retainOldVersions: number;
7059
+ autoRotate: boolean;
7060
+ } | undefined;
7061
+ };
7062
+ scope: "record" | "field" | "table" | "database";
7063
+ deterministicEncryption: boolean;
7064
+ searchableEncryption: boolean;
7065
+ } | undefined;
7066
+ readonly columnName?: string | undefined;
7067
+ readonly searchable?: boolean | undefined;
7068
+ readonly unique?: boolean | undefined;
7069
+ readonly defaultValue?: unknown;
7070
+ readonly maxLength?: number | undefined;
7071
+ readonly minLength?: number | undefined;
7072
+ readonly scale?: number | undefined;
7073
+ readonly reference?: string | undefined;
7074
+ readonly referenceFilters?: string[] | undefined;
7075
+ readonly writeRequiresMasterRead?: boolean | undefined;
7076
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
7077
+ readonly expression?: {
7078
+ dialect: "cel" | "js" | "cron" | "template";
7079
+ source?: string | undefined;
7080
+ ast?: unknown;
7081
+ meta?: {
7082
+ rationale?: string | undefined;
7083
+ generatedBy?: string | undefined;
7084
+ } | undefined;
7085
+ } | undefined;
7086
+ readonly summaryOperations?: {
7087
+ object: string;
7088
+ field: string;
7089
+ function: "min" | "max" | "count" | "sum" | "avg";
7090
+ } | undefined;
7091
+ readonly language?: string | undefined;
7092
+ readonly lineNumbers?: boolean | undefined;
7093
+ readonly maxRating?: number | undefined;
7094
+ readonly allowHalf?: boolean | undefined;
7095
+ readonly displayMap?: boolean | undefined;
7096
+ readonly allowGeocoding?: boolean | undefined;
7097
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
7098
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
7099
+ readonly allowAlpha?: boolean | undefined;
7100
+ readonly presetColors?: string[] | undefined;
7101
+ readonly step?: number | undefined;
7102
+ readonly showValue?: boolean | undefined;
7103
+ readonly marks?: Record<string, string> | undefined;
7104
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
7105
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
7106
+ readonly displayValue?: boolean | undefined;
7107
+ readonly allowScanning?: boolean | undefined;
7108
+ readonly currencyConfig?: {
7109
+ precision: number;
7110
+ currencyMode: "fixed" | "dynamic";
7111
+ defaultCurrency: string;
7112
+ } | undefined;
7113
+ readonly vectorConfig?: {
7114
+ dimensions: number;
7115
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
7116
+ normalized: boolean;
7117
+ indexed: boolean;
7118
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
7119
+ } | undefined;
7120
+ readonly fileAttachmentConfig?: {
7121
+ virusScan: boolean;
7122
+ virusScanOnUpload: boolean;
7123
+ quarantineOnThreat: boolean;
7124
+ allowMultiple: boolean;
7125
+ allowReplace: boolean;
7126
+ allowDelete: boolean;
7127
+ requireUpload: boolean;
7128
+ extractMetadata: boolean;
7129
+ extractText: boolean;
7130
+ versioningEnabled: boolean;
7131
+ publicRead: boolean;
7132
+ presignedUrlExpiry: number;
7133
+ minSize?: number | undefined;
7134
+ maxSize?: number | undefined;
7135
+ allowedTypes?: string[] | undefined;
7136
+ blockedTypes?: string[] | undefined;
7137
+ allowedMimeTypes?: string[] | undefined;
7138
+ blockedMimeTypes?: string[] | undefined;
7139
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
7140
+ storageProvider?: string | undefined;
7141
+ storageBucket?: string | undefined;
7142
+ storagePrefix?: string | undefined;
7143
+ imageValidation?: {
7144
+ generateThumbnails: boolean;
7145
+ preserveMetadata: boolean;
7146
+ autoRotate: boolean;
7147
+ minWidth?: number | undefined;
7148
+ maxWidth?: number | undefined;
7149
+ minHeight?: number | undefined;
7150
+ maxHeight?: number | undefined;
7151
+ aspectRatio?: string | undefined;
7152
+ thumbnailSizes?: {
7153
+ name: string;
7154
+ width: number;
7155
+ height: number;
7156
+ crop: boolean;
7157
+ }[] | undefined;
7158
+ } | undefined;
7159
+ maxVersions?: number | undefined;
7160
+ } | undefined;
7161
+ readonly maskingRule?: {
7162
+ field: string;
7163
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
7164
+ preserveFormat: boolean;
7165
+ preserveLength: boolean;
7166
+ pattern?: string | undefined;
7167
+ roles?: string[] | undefined;
7168
+ exemptRoles?: string[] | undefined;
7169
+ } | undefined;
7170
+ readonly auditTrail?: boolean | undefined;
7171
+ readonly cached?: {
7172
+ enabled: boolean;
7173
+ ttl: number;
7174
+ invalidateOn: string[];
7175
+ } | undefined;
7176
+ readonly dataQuality?: {
7177
+ uniqueness: boolean;
7178
+ completeness: number;
7179
+ accuracy?: {
7180
+ source: string;
7181
+ threshold: number;
7182
+ } | undefined;
7183
+ } | undefined;
7184
+ readonly conditionalRequired?: {
7185
+ dialect: "cel" | "js" | "cron" | "template";
7186
+ source?: string | undefined;
7187
+ ast?: unknown;
7188
+ meta?: {
7189
+ rationale?: string | undefined;
7190
+ generatedBy?: string | undefined;
7191
+ } | undefined;
7192
+ } | undefined;
7193
+ readonly hidden?: boolean | undefined;
7194
+ readonly sortable?: boolean | undefined;
7195
+ readonly inlineHelpText?: string | undefined;
7196
+ readonly trackFeedHistory?: boolean | undefined;
7197
+ readonly caseSensitive?: boolean | undefined;
7198
+ readonly autonumberFormat?: string | undefined;
7199
+ readonly index?: boolean | undefined;
7200
+ readonly type: "number";
7201
+ };
7202
+ readonly total_tokens: {
7203
+ readonly readonly?: boolean | undefined;
7204
+ readonly format?: string | undefined;
7205
+ readonly options?: {
7206
+ label: string;
7207
+ value: string;
7208
+ color?: string | undefined;
7209
+ default?: boolean | undefined;
7210
+ }[] | undefined;
7211
+ readonly description?: string | undefined;
7212
+ readonly label?: string | undefined;
7213
+ readonly name?: string | undefined;
7214
+ readonly precision?: number | undefined;
7215
+ readonly required?: boolean | undefined;
7216
+ readonly multiple?: boolean | undefined;
7217
+ readonly dependencies?: string[] | undefined;
7218
+ readonly theme?: string | undefined;
7219
+ readonly externalId?: boolean | undefined;
7220
+ readonly system?: boolean | undefined;
7221
+ readonly min?: number | undefined;
7222
+ readonly max?: number | undefined;
7223
+ readonly group?: string | undefined;
7224
+ readonly encryptionConfig?: {
7225
+ enabled: boolean;
7226
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
7227
+ keyManagement: {
7228
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
7229
+ keyId?: string | undefined;
7230
+ rotationPolicy?: {
7231
+ enabled: boolean;
7232
+ frequencyDays: number;
7233
+ retainOldVersions: number;
7234
+ autoRotate: boolean;
7235
+ } | undefined;
7236
+ };
7237
+ scope: "record" | "field" | "table" | "database";
7238
+ deterministicEncryption: boolean;
7239
+ searchableEncryption: boolean;
7240
+ } | undefined;
7241
+ readonly columnName?: string | undefined;
7242
+ readonly searchable?: boolean | undefined;
7243
+ readonly unique?: boolean | undefined;
7244
+ readonly defaultValue?: unknown;
7245
+ readonly maxLength?: number | undefined;
7246
+ readonly minLength?: number | undefined;
7247
+ readonly scale?: number | undefined;
7248
+ readonly reference?: string | undefined;
7249
+ readonly referenceFilters?: string[] | undefined;
7250
+ readonly writeRequiresMasterRead?: boolean | undefined;
7251
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
7252
+ readonly expression?: {
7253
+ dialect: "cel" | "js" | "cron" | "template";
7254
+ source?: string | undefined;
7255
+ ast?: unknown;
7256
+ meta?: {
7257
+ rationale?: string | undefined;
7258
+ generatedBy?: string | undefined;
7259
+ } | undefined;
7260
+ } | undefined;
7261
+ readonly summaryOperations?: {
7262
+ object: string;
7263
+ field: string;
7264
+ function: "min" | "max" | "count" | "sum" | "avg";
7265
+ } | undefined;
7266
+ readonly language?: string | undefined;
7267
+ readonly lineNumbers?: boolean | undefined;
7268
+ readonly maxRating?: number | undefined;
7269
+ readonly allowHalf?: boolean | undefined;
7270
+ readonly displayMap?: boolean | undefined;
7271
+ readonly allowGeocoding?: boolean | undefined;
7272
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
7273
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
7274
+ readonly allowAlpha?: boolean | undefined;
7275
+ readonly presetColors?: string[] | undefined;
7276
+ readonly step?: number | undefined;
7277
+ readonly showValue?: boolean | undefined;
7278
+ readonly marks?: Record<string, string> | undefined;
7279
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
7280
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
7281
+ readonly displayValue?: boolean | undefined;
7282
+ readonly allowScanning?: boolean | undefined;
7283
+ readonly currencyConfig?: {
7284
+ precision: number;
7285
+ currencyMode: "fixed" | "dynamic";
7286
+ defaultCurrency: string;
7287
+ } | undefined;
7288
+ readonly vectorConfig?: {
7289
+ dimensions: number;
7290
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
7291
+ normalized: boolean;
7292
+ indexed: boolean;
7293
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
7294
+ } | undefined;
7295
+ readonly fileAttachmentConfig?: {
7296
+ virusScan: boolean;
7297
+ virusScanOnUpload: boolean;
7298
+ quarantineOnThreat: boolean;
7299
+ allowMultiple: boolean;
7300
+ allowReplace: boolean;
7301
+ allowDelete: boolean;
7302
+ requireUpload: boolean;
7303
+ extractMetadata: boolean;
7304
+ extractText: boolean;
7305
+ versioningEnabled: boolean;
7306
+ publicRead: boolean;
7307
+ presignedUrlExpiry: number;
7308
+ minSize?: number | undefined;
7309
+ maxSize?: number | undefined;
7310
+ allowedTypes?: string[] | undefined;
7311
+ blockedTypes?: string[] | undefined;
7312
+ allowedMimeTypes?: string[] | undefined;
7313
+ blockedMimeTypes?: string[] | undefined;
7314
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
7315
+ storageProvider?: string | undefined;
7316
+ storageBucket?: string | undefined;
7317
+ storagePrefix?: string | undefined;
7318
+ imageValidation?: {
7319
+ generateThumbnails: boolean;
7320
+ preserveMetadata: boolean;
7321
+ autoRotate: boolean;
7322
+ minWidth?: number | undefined;
7323
+ maxWidth?: number | undefined;
7324
+ minHeight?: number | undefined;
7325
+ maxHeight?: number | undefined;
7326
+ aspectRatio?: string | undefined;
7327
+ thumbnailSizes?: {
7328
+ name: string;
7329
+ width: number;
7330
+ height: number;
7331
+ crop: boolean;
7332
+ }[] | undefined;
7333
+ } | undefined;
7334
+ maxVersions?: number | undefined;
7335
+ } | undefined;
7336
+ readonly maskingRule?: {
7337
+ field: string;
7338
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
7339
+ preserveFormat: boolean;
7340
+ preserveLength: boolean;
7341
+ pattern?: string | undefined;
7342
+ roles?: string[] | undefined;
7343
+ exemptRoles?: string[] | undefined;
7344
+ } | undefined;
7345
+ readonly auditTrail?: boolean | undefined;
7346
+ readonly cached?: {
7347
+ enabled: boolean;
7348
+ ttl: number;
7349
+ invalidateOn: string[];
7350
+ } | undefined;
7351
+ readonly dataQuality?: {
7352
+ uniqueness: boolean;
7353
+ completeness: number;
7354
+ accuracy?: {
7355
+ source: string;
7356
+ threshold: number;
7357
+ } | undefined;
7358
+ } | undefined;
7359
+ readonly conditionalRequired?: {
7360
+ dialect: "cel" | "js" | "cron" | "template";
7361
+ source?: string | undefined;
7362
+ ast?: unknown;
7363
+ meta?: {
7364
+ rationale?: string | undefined;
7365
+ generatedBy?: string | undefined;
7366
+ } | undefined;
7367
+ } | undefined;
7368
+ readonly hidden?: boolean | undefined;
7369
+ readonly sortable?: boolean | undefined;
7370
+ readonly inlineHelpText?: string | undefined;
7371
+ readonly trackFeedHistory?: boolean | undefined;
7372
+ readonly caseSensitive?: boolean | undefined;
7373
+ readonly autonumberFormat?: string | undefined;
7374
+ readonly index?: boolean | undefined;
7375
+ readonly type: "number";
7376
+ };
7377
+ readonly input_cost: {
7378
+ readonly readonly?: boolean | undefined;
7379
+ readonly format?: string | undefined;
7380
+ readonly options?: {
7381
+ label: string;
7382
+ value: string;
7383
+ color?: string | undefined;
7384
+ default?: boolean | undefined;
7385
+ }[] | undefined;
7386
+ readonly description?: string | undefined;
7387
+ readonly label?: string | undefined;
7388
+ readonly name?: string | undefined;
7389
+ readonly precision?: number | undefined;
7390
+ readonly required?: boolean | undefined;
7391
+ readonly multiple?: boolean | undefined;
7392
+ readonly dependencies?: string[] | undefined;
7393
+ readonly theme?: string | undefined;
7394
+ readonly externalId?: boolean | undefined;
7395
+ readonly system?: boolean | undefined;
7396
+ readonly min?: number | undefined;
7397
+ readonly max?: number | undefined;
7398
+ readonly group?: string | undefined;
7399
+ readonly encryptionConfig?: {
7400
+ enabled: boolean;
7401
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
7402
+ keyManagement: {
7403
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
7404
+ keyId?: string | undefined;
7405
+ rotationPolicy?: {
7406
+ enabled: boolean;
7407
+ frequencyDays: number;
7408
+ retainOldVersions: number;
7409
+ autoRotate: boolean;
7410
+ } | undefined;
7411
+ };
7412
+ scope: "record" | "field" | "table" | "database";
7413
+ deterministicEncryption: boolean;
7414
+ searchableEncryption: boolean;
7415
+ } | undefined;
7416
+ readonly columnName?: string | undefined;
7417
+ readonly searchable?: boolean | undefined;
7418
+ readonly unique?: boolean | undefined;
7419
+ readonly defaultValue?: unknown;
7420
+ readonly maxLength?: number | undefined;
7421
+ readonly minLength?: number | undefined;
7422
+ readonly scale?: number | undefined;
7423
+ readonly reference?: string | undefined;
7424
+ readonly referenceFilters?: string[] | undefined;
7425
+ readonly writeRequiresMasterRead?: boolean | undefined;
7426
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
7427
+ readonly expression?: {
7428
+ dialect: "cel" | "js" | "cron" | "template";
7429
+ source?: string | undefined;
7430
+ ast?: unknown;
7431
+ meta?: {
7432
+ rationale?: string | undefined;
7433
+ generatedBy?: string | undefined;
7434
+ } | undefined;
7435
+ } | undefined;
7436
+ readonly summaryOperations?: {
7437
+ object: string;
7438
+ field: string;
7439
+ function: "min" | "max" | "count" | "sum" | "avg";
7440
+ } | undefined;
7441
+ readonly language?: string | undefined;
7442
+ readonly lineNumbers?: boolean | undefined;
7443
+ readonly maxRating?: number | undefined;
7444
+ readonly allowHalf?: boolean | undefined;
7445
+ readonly displayMap?: boolean | undefined;
7446
+ readonly allowGeocoding?: boolean | undefined;
7447
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
7448
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
7449
+ readonly allowAlpha?: boolean | undefined;
7450
+ readonly presetColors?: string[] | undefined;
7451
+ readonly step?: number | undefined;
7452
+ readonly showValue?: boolean | undefined;
7453
+ readonly marks?: Record<string, string> | undefined;
7454
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
7455
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
7456
+ readonly displayValue?: boolean | undefined;
7457
+ readonly allowScanning?: boolean | undefined;
7458
+ readonly currencyConfig?: {
7459
+ precision: number;
7460
+ currencyMode: "fixed" | "dynamic";
7461
+ defaultCurrency: string;
7462
+ } | undefined;
7463
+ readonly vectorConfig?: {
7464
+ dimensions: number;
7465
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
7466
+ normalized: boolean;
7467
+ indexed: boolean;
7468
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
7469
+ } | undefined;
7470
+ readonly fileAttachmentConfig?: {
7471
+ virusScan: boolean;
7472
+ virusScanOnUpload: boolean;
7473
+ quarantineOnThreat: boolean;
7474
+ allowMultiple: boolean;
7475
+ allowReplace: boolean;
7476
+ allowDelete: boolean;
7477
+ requireUpload: boolean;
7478
+ extractMetadata: boolean;
7479
+ extractText: boolean;
7480
+ versioningEnabled: boolean;
7481
+ publicRead: boolean;
7482
+ presignedUrlExpiry: number;
7483
+ minSize?: number | undefined;
7484
+ maxSize?: number | undefined;
7485
+ allowedTypes?: string[] | undefined;
7486
+ blockedTypes?: string[] | undefined;
7487
+ allowedMimeTypes?: string[] | undefined;
7488
+ blockedMimeTypes?: string[] | undefined;
7489
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
7490
+ storageProvider?: string | undefined;
7491
+ storageBucket?: string | undefined;
7492
+ storagePrefix?: string | undefined;
7493
+ imageValidation?: {
7494
+ generateThumbnails: boolean;
7495
+ preserveMetadata: boolean;
7496
+ autoRotate: boolean;
7497
+ minWidth?: number | undefined;
7498
+ maxWidth?: number | undefined;
7499
+ minHeight?: number | undefined;
7500
+ maxHeight?: number | undefined;
7501
+ aspectRatio?: string | undefined;
7502
+ thumbnailSizes?: {
7503
+ name: string;
7504
+ width: number;
7505
+ height: number;
7506
+ crop: boolean;
7507
+ }[] | undefined;
7508
+ } | undefined;
7509
+ maxVersions?: number | undefined;
7510
+ } | undefined;
7511
+ readonly maskingRule?: {
7512
+ field: string;
7513
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
7514
+ preserveFormat: boolean;
7515
+ preserveLength: boolean;
7516
+ pattern?: string | undefined;
7517
+ roles?: string[] | undefined;
7518
+ exemptRoles?: string[] | undefined;
7519
+ } | undefined;
7520
+ readonly auditTrail?: boolean | undefined;
7521
+ readonly cached?: {
7522
+ enabled: boolean;
7523
+ ttl: number;
7524
+ invalidateOn: string[];
7525
+ } | undefined;
7526
+ readonly dataQuality?: {
7527
+ uniqueness: boolean;
7528
+ completeness: number;
7529
+ accuracy?: {
7530
+ source: string;
7531
+ threshold: number;
7532
+ } | undefined;
7533
+ } | undefined;
7534
+ readonly conditionalRequired?: {
7535
+ dialect: "cel" | "js" | "cron" | "template";
7536
+ source?: string | undefined;
7537
+ ast?: unknown;
7538
+ meta?: {
7539
+ rationale?: string | undefined;
7540
+ generatedBy?: string | undefined;
7541
+ } | undefined;
7542
+ } | undefined;
7543
+ readonly hidden?: boolean | undefined;
7544
+ readonly sortable?: boolean | undefined;
7545
+ readonly inlineHelpText?: string | undefined;
7546
+ readonly trackFeedHistory?: boolean | undefined;
7547
+ readonly caseSensitive?: boolean | undefined;
7548
+ readonly autonumberFormat?: string | undefined;
7549
+ readonly index?: boolean | undefined;
7550
+ readonly type: "number";
7551
+ };
7552
+ readonly output_cost: {
7553
+ readonly readonly?: boolean | undefined;
7554
+ readonly format?: string | undefined;
7555
+ readonly options?: {
7556
+ label: string;
7557
+ value: string;
7558
+ color?: string | undefined;
7559
+ default?: boolean | undefined;
7560
+ }[] | undefined;
7561
+ readonly description?: string | undefined;
7562
+ readonly label?: string | undefined;
7563
+ readonly name?: string | undefined;
7564
+ readonly precision?: number | undefined;
7565
+ readonly required?: boolean | undefined;
7566
+ readonly multiple?: boolean | undefined;
7567
+ readonly dependencies?: string[] | undefined;
7568
+ readonly theme?: string | undefined;
7569
+ readonly externalId?: boolean | undefined;
7570
+ readonly system?: boolean | undefined;
7571
+ readonly min?: number | undefined;
7572
+ readonly max?: number | undefined;
7573
+ readonly group?: string | undefined;
7574
+ readonly encryptionConfig?: {
7575
+ enabled: boolean;
7576
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
7577
+ keyManagement: {
7578
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
7579
+ keyId?: string | undefined;
7580
+ rotationPolicy?: {
7581
+ enabled: boolean;
7582
+ frequencyDays: number;
7583
+ retainOldVersions: number;
7584
+ autoRotate: boolean;
7585
+ } | undefined;
7586
+ };
7587
+ scope: "record" | "field" | "table" | "database";
7588
+ deterministicEncryption: boolean;
7589
+ searchableEncryption: boolean;
7590
+ } | undefined;
7591
+ readonly columnName?: string | undefined;
7592
+ readonly searchable?: boolean | undefined;
7593
+ readonly unique?: boolean | undefined;
7594
+ readonly defaultValue?: unknown;
7595
+ readonly maxLength?: number | undefined;
7596
+ readonly minLength?: number | undefined;
7597
+ readonly scale?: number | undefined;
7598
+ readonly reference?: string | undefined;
7599
+ readonly referenceFilters?: string[] | undefined;
7600
+ readonly writeRequiresMasterRead?: boolean | undefined;
7601
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
7602
+ readonly expression?: {
7603
+ dialect: "cel" | "js" | "cron" | "template";
7604
+ source?: string | undefined;
7605
+ ast?: unknown;
7606
+ meta?: {
7607
+ rationale?: string | undefined;
7608
+ generatedBy?: string | undefined;
7609
+ } | undefined;
7610
+ } | undefined;
7611
+ readonly summaryOperations?: {
7612
+ object: string;
7613
+ field: string;
7614
+ function: "min" | "max" | "count" | "sum" | "avg";
7615
+ } | undefined;
7616
+ readonly language?: string | undefined;
7617
+ readonly lineNumbers?: boolean | undefined;
7618
+ readonly maxRating?: number | undefined;
7619
+ readonly allowHalf?: boolean | undefined;
7620
+ readonly displayMap?: boolean | undefined;
7621
+ readonly allowGeocoding?: boolean | undefined;
7622
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
7623
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
7624
+ readonly allowAlpha?: boolean | undefined;
7625
+ readonly presetColors?: string[] | undefined;
7626
+ readonly step?: number | undefined;
7627
+ readonly showValue?: boolean | undefined;
7628
+ readonly marks?: Record<string, string> | undefined;
7629
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
7630
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
7631
+ readonly displayValue?: boolean | undefined;
7632
+ readonly allowScanning?: boolean | undefined;
7633
+ readonly currencyConfig?: {
7634
+ precision: number;
7635
+ currencyMode: "fixed" | "dynamic";
7636
+ defaultCurrency: string;
7637
+ } | undefined;
7638
+ readonly vectorConfig?: {
7639
+ dimensions: number;
7640
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
7641
+ normalized: boolean;
7642
+ indexed: boolean;
7643
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
7644
+ } | undefined;
7645
+ readonly fileAttachmentConfig?: {
7646
+ virusScan: boolean;
7647
+ virusScanOnUpload: boolean;
7648
+ quarantineOnThreat: boolean;
7649
+ allowMultiple: boolean;
7650
+ allowReplace: boolean;
7651
+ allowDelete: boolean;
7652
+ requireUpload: boolean;
7653
+ extractMetadata: boolean;
7654
+ extractText: boolean;
7655
+ versioningEnabled: boolean;
7656
+ publicRead: boolean;
7657
+ presignedUrlExpiry: number;
7658
+ minSize?: number | undefined;
7659
+ maxSize?: number | undefined;
7660
+ allowedTypes?: string[] | undefined;
7661
+ blockedTypes?: string[] | undefined;
7662
+ allowedMimeTypes?: string[] | undefined;
7663
+ blockedMimeTypes?: string[] | undefined;
7664
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
7665
+ storageProvider?: string | undefined;
7666
+ storageBucket?: string | undefined;
7667
+ storagePrefix?: string | undefined;
7668
+ imageValidation?: {
7669
+ generateThumbnails: boolean;
7670
+ preserveMetadata: boolean;
7671
+ autoRotate: boolean;
7672
+ minWidth?: number | undefined;
7673
+ maxWidth?: number | undefined;
7674
+ minHeight?: number | undefined;
7675
+ maxHeight?: number | undefined;
7676
+ aspectRatio?: string | undefined;
7677
+ thumbnailSizes?: {
7678
+ name: string;
7679
+ width: number;
7680
+ height: number;
7681
+ crop: boolean;
7682
+ }[] | undefined;
7683
+ } | undefined;
7684
+ maxVersions?: number | undefined;
7685
+ } | undefined;
7686
+ readonly maskingRule?: {
7687
+ field: string;
7688
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
7689
+ preserveFormat: boolean;
7690
+ preserveLength: boolean;
7691
+ pattern?: string | undefined;
7692
+ roles?: string[] | undefined;
7693
+ exemptRoles?: string[] | undefined;
7694
+ } | undefined;
7695
+ readonly auditTrail?: boolean | undefined;
7696
+ readonly cached?: {
7697
+ enabled: boolean;
7698
+ ttl: number;
7699
+ invalidateOn: string[];
7700
+ } | undefined;
7701
+ readonly dataQuality?: {
7702
+ uniqueness: boolean;
7703
+ completeness: number;
7704
+ accuracy?: {
7705
+ source: string;
7706
+ threshold: number;
7707
+ } | undefined;
7708
+ } | undefined;
7709
+ readonly conditionalRequired?: {
7710
+ dialect: "cel" | "js" | "cron" | "template";
7711
+ source?: string | undefined;
7712
+ ast?: unknown;
7713
+ meta?: {
7714
+ rationale?: string | undefined;
7715
+ generatedBy?: string | undefined;
7716
+ } | undefined;
7717
+ } | undefined;
7718
+ readonly hidden?: boolean | undefined;
7719
+ readonly sortable?: boolean | undefined;
7720
+ readonly inlineHelpText?: string | undefined;
7721
+ readonly trackFeedHistory?: boolean | undefined;
7722
+ readonly caseSensitive?: boolean | undefined;
7723
+ readonly autonumberFormat?: string | undefined;
7724
+ readonly index?: boolean | undefined;
7725
+ readonly type: "number";
7726
+ };
7727
+ readonly total_cost: {
7728
+ readonly readonly?: boolean | undefined;
7729
+ readonly format?: string | undefined;
7730
+ readonly options?: {
7731
+ label: string;
7732
+ value: string;
7733
+ color?: string | undefined;
7734
+ default?: boolean | undefined;
7735
+ }[] | undefined;
7736
+ readonly description?: string | undefined;
7737
+ readonly label?: string | undefined;
7738
+ readonly name?: string | undefined;
7739
+ readonly precision?: number | undefined;
7740
+ readonly required?: boolean | undefined;
7741
+ readonly multiple?: boolean | undefined;
7742
+ readonly dependencies?: string[] | undefined;
7743
+ readonly theme?: string | undefined;
7744
+ readonly externalId?: boolean | undefined;
7745
+ readonly system?: boolean | undefined;
7746
+ readonly min?: number | undefined;
7747
+ readonly max?: number | undefined;
7748
+ readonly group?: string | undefined;
7749
+ readonly encryptionConfig?: {
7750
+ enabled: boolean;
7751
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
7752
+ keyManagement: {
7753
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
7754
+ keyId?: string | undefined;
7755
+ rotationPolicy?: {
7756
+ enabled: boolean;
7757
+ frequencyDays: number;
7758
+ retainOldVersions: number;
7759
+ autoRotate: boolean;
7760
+ } | undefined;
7761
+ };
7762
+ scope: "record" | "field" | "table" | "database";
7763
+ deterministicEncryption: boolean;
7764
+ searchableEncryption: boolean;
7765
+ } | undefined;
7766
+ readonly columnName?: string | undefined;
7767
+ readonly searchable?: boolean | undefined;
7768
+ readonly unique?: boolean | undefined;
7769
+ readonly defaultValue?: unknown;
7770
+ readonly maxLength?: number | undefined;
7771
+ readonly minLength?: number | undefined;
7772
+ readonly scale?: number | undefined;
7773
+ readonly reference?: string | undefined;
7774
+ readonly referenceFilters?: string[] | undefined;
7775
+ readonly writeRequiresMasterRead?: boolean | undefined;
7776
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
7777
+ readonly expression?: {
7778
+ dialect: "cel" | "js" | "cron" | "template";
7779
+ source?: string | undefined;
7780
+ ast?: unknown;
7781
+ meta?: {
7782
+ rationale?: string | undefined;
7783
+ generatedBy?: string | undefined;
7784
+ } | undefined;
7785
+ } | undefined;
7786
+ readonly summaryOperations?: {
7787
+ object: string;
7788
+ field: string;
7789
+ function: "min" | "max" | "count" | "sum" | "avg";
7790
+ } | undefined;
7791
+ readonly language?: string | undefined;
7792
+ readonly lineNumbers?: boolean | undefined;
7793
+ readonly maxRating?: number | undefined;
7794
+ readonly allowHalf?: boolean | undefined;
7795
+ readonly displayMap?: boolean | undefined;
7796
+ readonly allowGeocoding?: boolean | undefined;
7797
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
7798
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
7799
+ readonly allowAlpha?: boolean | undefined;
7800
+ readonly presetColors?: string[] | undefined;
7801
+ readonly step?: number | undefined;
7802
+ readonly showValue?: boolean | undefined;
7803
+ readonly marks?: Record<string, string> | undefined;
7804
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
7805
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
7806
+ readonly displayValue?: boolean | undefined;
7807
+ readonly allowScanning?: boolean | undefined;
7808
+ readonly currencyConfig?: {
7809
+ precision: number;
7810
+ currencyMode: "fixed" | "dynamic";
7811
+ defaultCurrency: string;
7812
+ } | undefined;
7813
+ readonly vectorConfig?: {
7814
+ dimensions: number;
7815
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
7816
+ normalized: boolean;
7817
+ indexed: boolean;
7818
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
7819
+ } | undefined;
7820
+ readonly fileAttachmentConfig?: {
7821
+ virusScan: boolean;
7822
+ virusScanOnUpload: boolean;
7823
+ quarantineOnThreat: boolean;
7824
+ allowMultiple: boolean;
7825
+ allowReplace: boolean;
7826
+ allowDelete: boolean;
7827
+ requireUpload: boolean;
7828
+ extractMetadata: boolean;
7829
+ extractText: boolean;
7830
+ versioningEnabled: boolean;
7831
+ publicRead: boolean;
7832
+ presignedUrlExpiry: number;
7833
+ minSize?: number | undefined;
7834
+ maxSize?: number | undefined;
7835
+ allowedTypes?: string[] | undefined;
7836
+ blockedTypes?: string[] | undefined;
7837
+ allowedMimeTypes?: string[] | undefined;
7838
+ blockedMimeTypes?: string[] | undefined;
7839
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
7840
+ storageProvider?: string | undefined;
7841
+ storageBucket?: string | undefined;
7842
+ storagePrefix?: string | undefined;
7843
+ imageValidation?: {
7844
+ generateThumbnails: boolean;
7845
+ preserveMetadata: boolean;
7846
+ autoRotate: boolean;
7847
+ minWidth?: number | undefined;
7848
+ maxWidth?: number | undefined;
7849
+ minHeight?: number | undefined;
7850
+ maxHeight?: number | undefined;
7851
+ aspectRatio?: string | undefined;
7852
+ thumbnailSizes?: {
7853
+ name: string;
7854
+ width: number;
7855
+ height: number;
7856
+ crop: boolean;
7857
+ }[] | undefined;
7858
+ } | undefined;
7859
+ maxVersions?: number | undefined;
7860
+ } | undefined;
7861
+ readonly maskingRule?: {
7862
+ field: string;
7863
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
7864
+ preserveFormat: boolean;
7865
+ preserveLength: boolean;
7866
+ pattern?: string | undefined;
7867
+ roles?: string[] | undefined;
7868
+ exemptRoles?: string[] | undefined;
7869
+ } | undefined;
7870
+ readonly auditTrail?: boolean | undefined;
7871
+ readonly cached?: {
7872
+ enabled: boolean;
7873
+ ttl: number;
7874
+ invalidateOn: string[];
7875
+ } | undefined;
7876
+ readonly dataQuality?: {
7877
+ uniqueness: boolean;
7878
+ completeness: number;
7879
+ accuracy?: {
7880
+ source: string;
7881
+ threshold: number;
7882
+ } | undefined;
7883
+ } | undefined;
7884
+ readonly conditionalRequired?: {
7885
+ dialect: "cel" | "js" | "cron" | "template";
7886
+ source?: string | undefined;
7887
+ ast?: unknown;
7888
+ meta?: {
7889
+ rationale?: string | undefined;
7890
+ generatedBy?: string | undefined;
7891
+ } | undefined;
7892
+ } | undefined;
7893
+ readonly hidden?: boolean | undefined;
7894
+ readonly sortable?: boolean | undefined;
7895
+ readonly inlineHelpText?: string | undefined;
7896
+ readonly trackFeedHistory?: boolean | undefined;
7897
+ readonly caseSensitive?: boolean | undefined;
7898
+ readonly autonumberFormat?: string | undefined;
7899
+ readonly index?: boolean | undefined;
7900
+ readonly type: "number";
7901
+ };
7902
+ readonly currency: {
7903
+ readonly readonly?: boolean | undefined;
7904
+ readonly format?: string | undefined;
7905
+ readonly options?: {
7906
+ label: string;
7907
+ value: string;
7908
+ color?: string | undefined;
7909
+ default?: boolean | undefined;
7910
+ }[] | undefined;
7911
+ readonly description?: string | undefined;
7912
+ readonly label?: string | undefined;
7913
+ readonly name?: string | undefined;
7914
+ readonly precision?: number | undefined;
7915
+ readonly required?: boolean | undefined;
7916
+ readonly multiple?: boolean | undefined;
7917
+ readonly dependencies?: string[] | undefined;
7918
+ readonly theme?: string | undefined;
7919
+ readonly externalId?: boolean | undefined;
7920
+ readonly system?: boolean | undefined;
7921
+ readonly min?: number | undefined;
7922
+ readonly max?: number | undefined;
7923
+ readonly group?: string | undefined;
7924
+ readonly encryptionConfig?: {
7925
+ enabled: boolean;
7926
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
7927
+ keyManagement: {
7928
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
7929
+ keyId?: string | undefined;
7930
+ rotationPolicy?: {
7931
+ enabled: boolean;
7932
+ frequencyDays: number;
7933
+ retainOldVersions: number;
7934
+ autoRotate: boolean;
7935
+ } | undefined;
7936
+ };
7937
+ scope: "record" | "field" | "table" | "database";
7938
+ deterministicEncryption: boolean;
7939
+ searchableEncryption: boolean;
7940
+ } | undefined;
7941
+ readonly columnName?: string | undefined;
7942
+ readonly searchable?: boolean | undefined;
7943
+ readonly unique?: boolean | undefined;
7944
+ readonly defaultValue?: unknown;
7945
+ readonly maxLength?: number | undefined;
7946
+ readonly minLength?: number | undefined;
7947
+ readonly scale?: number | undefined;
7948
+ readonly reference?: string | undefined;
7949
+ readonly referenceFilters?: string[] | undefined;
7950
+ readonly writeRequiresMasterRead?: boolean | undefined;
7951
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
7952
+ readonly expression?: {
7953
+ dialect: "cel" | "js" | "cron" | "template";
7954
+ source?: string | undefined;
7955
+ ast?: unknown;
7956
+ meta?: {
7957
+ rationale?: string | undefined;
7958
+ generatedBy?: string | undefined;
7959
+ } | undefined;
7960
+ } | undefined;
7961
+ readonly summaryOperations?: {
7962
+ object: string;
7963
+ field: string;
7964
+ function: "min" | "max" | "count" | "sum" | "avg";
7965
+ } | undefined;
7966
+ readonly language?: string | undefined;
7967
+ readonly lineNumbers?: boolean | undefined;
7968
+ readonly maxRating?: number | undefined;
7969
+ readonly allowHalf?: boolean | undefined;
7970
+ readonly displayMap?: boolean | undefined;
7971
+ readonly allowGeocoding?: boolean | undefined;
7972
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
7973
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
7974
+ readonly allowAlpha?: boolean | undefined;
7975
+ readonly presetColors?: string[] | undefined;
7976
+ readonly step?: number | undefined;
7977
+ readonly showValue?: boolean | undefined;
7978
+ readonly marks?: Record<string, string> | undefined;
7979
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
7980
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
7981
+ readonly displayValue?: boolean | undefined;
7982
+ readonly allowScanning?: boolean | undefined;
7983
+ readonly currencyConfig?: {
7984
+ precision: number;
7985
+ currencyMode: "fixed" | "dynamic";
7986
+ defaultCurrency: string;
7987
+ } | undefined;
7988
+ readonly vectorConfig?: {
7989
+ dimensions: number;
7990
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
7991
+ normalized: boolean;
7992
+ indexed: boolean;
7993
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
7994
+ } | undefined;
7995
+ readonly fileAttachmentConfig?: {
7996
+ virusScan: boolean;
7997
+ virusScanOnUpload: boolean;
7998
+ quarantineOnThreat: boolean;
7999
+ allowMultiple: boolean;
8000
+ allowReplace: boolean;
8001
+ allowDelete: boolean;
8002
+ requireUpload: boolean;
8003
+ extractMetadata: boolean;
8004
+ extractText: boolean;
8005
+ versioningEnabled: boolean;
8006
+ publicRead: boolean;
8007
+ presignedUrlExpiry: number;
8008
+ minSize?: number | undefined;
8009
+ maxSize?: number | undefined;
8010
+ allowedTypes?: string[] | undefined;
8011
+ blockedTypes?: string[] | undefined;
8012
+ allowedMimeTypes?: string[] | undefined;
8013
+ blockedMimeTypes?: string[] | undefined;
8014
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
8015
+ storageProvider?: string | undefined;
8016
+ storageBucket?: string | undefined;
8017
+ storagePrefix?: string | undefined;
8018
+ imageValidation?: {
8019
+ generateThumbnails: boolean;
8020
+ preserveMetadata: boolean;
8021
+ autoRotate: boolean;
8022
+ minWidth?: number | undefined;
8023
+ maxWidth?: number | undefined;
8024
+ minHeight?: number | undefined;
8025
+ maxHeight?: number | undefined;
8026
+ aspectRatio?: string | undefined;
8027
+ thumbnailSizes?: {
8028
+ name: string;
8029
+ width: number;
8030
+ height: number;
8031
+ crop: boolean;
8032
+ }[] | undefined;
8033
+ } | undefined;
8034
+ maxVersions?: number | undefined;
8035
+ } | undefined;
8036
+ readonly maskingRule?: {
8037
+ field: string;
8038
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
8039
+ preserveFormat: boolean;
8040
+ preserveLength: boolean;
8041
+ pattern?: string | undefined;
8042
+ roles?: string[] | undefined;
8043
+ exemptRoles?: string[] | undefined;
8044
+ } | undefined;
8045
+ readonly auditTrail?: boolean | undefined;
8046
+ readonly cached?: {
8047
+ enabled: boolean;
8048
+ ttl: number;
8049
+ invalidateOn: string[];
8050
+ } | undefined;
8051
+ readonly dataQuality?: {
8052
+ uniqueness: boolean;
8053
+ completeness: number;
8054
+ accuracy?: {
8055
+ source: string;
8056
+ threshold: number;
8057
+ } | undefined;
8058
+ } | undefined;
8059
+ readonly conditionalRequired?: {
8060
+ dialect: "cel" | "js" | "cron" | "template";
8061
+ source?: string | undefined;
8062
+ ast?: unknown;
8063
+ meta?: {
8064
+ rationale?: string | undefined;
8065
+ generatedBy?: string | undefined;
8066
+ } | undefined;
8067
+ } | undefined;
8068
+ readonly hidden?: boolean | undefined;
8069
+ readonly sortable?: boolean | undefined;
8070
+ readonly inlineHelpText?: string | undefined;
8071
+ readonly trackFeedHistory?: boolean | undefined;
8072
+ readonly caseSensitive?: boolean | undefined;
8073
+ readonly autonumberFormat?: string | undefined;
8074
+ readonly index?: boolean | undefined;
8075
+ readonly type: "text";
8076
+ };
8077
+ readonly latency_ms: {
8078
+ readonly readonly?: boolean | undefined;
8079
+ readonly format?: string | undefined;
8080
+ readonly options?: {
8081
+ label: string;
8082
+ value: string;
8083
+ color?: string | undefined;
8084
+ default?: boolean | undefined;
8085
+ }[] | undefined;
8086
+ readonly description?: string | undefined;
8087
+ readonly label?: string | undefined;
8088
+ readonly name?: string | undefined;
8089
+ readonly precision?: number | undefined;
8090
+ readonly required?: boolean | undefined;
8091
+ readonly multiple?: boolean | undefined;
8092
+ readonly dependencies?: string[] | undefined;
8093
+ readonly theme?: string | undefined;
8094
+ readonly externalId?: boolean | undefined;
8095
+ readonly system?: boolean | undefined;
8096
+ readonly min?: number | undefined;
8097
+ readonly max?: number | undefined;
8098
+ readonly group?: string | undefined;
8099
+ readonly encryptionConfig?: {
8100
+ enabled: boolean;
8101
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
8102
+ keyManagement: {
8103
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
8104
+ keyId?: string | undefined;
8105
+ rotationPolicy?: {
8106
+ enabled: boolean;
8107
+ frequencyDays: number;
8108
+ retainOldVersions: number;
8109
+ autoRotate: boolean;
8110
+ } | undefined;
8111
+ };
8112
+ scope: "record" | "field" | "table" | "database";
8113
+ deterministicEncryption: boolean;
8114
+ searchableEncryption: boolean;
8115
+ } | undefined;
8116
+ readonly columnName?: string | undefined;
8117
+ readonly searchable?: boolean | undefined;
8118
+ readonly unique?: boolean | undefined;
8119
+ readonly defaultValue?: unknown;
8120
+ readonly maxLength?: number | undefined;
8121
+ readonly minLength?: number | undefined;
8122
+ readonly scale?: number | undefined;
8123
+ readonly reference?: string | undefined;
8124
+ readonly referenceFilters?: string[] | undefined;
8125
+ readonly writeRequiresMasterRead?: boolean | undefined;
8126
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
8127
+ readonly expression?: {
8128
+ dialect: "cel" | "js" | "cron" | "template";
8129
+ source?: string | undefined;
8130
+ ast?: unknown;
8131
+ meta?: {
8132
+ rationale?: string | undefined;
8133
+ generatedBy?: string | undefined;
8134
+ } | undefined;
8135
+ } | undefined;
8136
+ readonly summaryOperations?: {
8137
+ object: string;
8138
+ field: string;
8139
+ function: "min" | "max" | "count" | "sum" | "avg";
8140
+ } | undefined;
8141
+ readonly language?: string | undefined;
8142
+ readonly lineNumbers?: boolean | undefined;
8143
+ readonly maxRating?: number | undefined;
8144
+ readonly allowHalf?: boolean | undefined;
8145
+ readonly displayMap?: boolean | undefined;
8146
+ readonly allowGeocoding?: boolean | undefined;
8147
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
8148
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
8149
+ readonly allowAlpha?: boolean | undefined;
8150
+ readonly presetColors?: string[] | undefined;
8151
+ readonly step?: number | undefined;
8152
+ readonly showValue?: boolean | undefined;
8153
+ readonly marks?: Record<string, string> | undefined;
8154
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
8155
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
8156
+ readonly displayValue?: boolean | undefined;
8157
+ readonly allowScanning?: boolean | undefined;
8158
+ readonly currencyConfig?: {
8159
+ precision: number;
8160
+ currencyMode: "fixed" | "dynamic";
8161
+ defaultCurrency: string;
8162
+ } | undefined;
8163
+ readonly vectorConfig?: {
8164
+ dimensions: number;
8165
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
8166
+ normalized: boolean;
8167
+ indexed: boolean;
8168
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
8169
+ } | undefined;
8170
+ readonly fileAttachmentConfig?: {
8171
+ virusScan: boolean;
8172
+ virusScanOnUpload: boolean;
8173
+ quarantineOnThreat: boolean;
8174
+ allowMultiple: boolean;
8175
+ allowReplace: boolean;
8176
+ allowDelete: boolean;
8177
+ requireUpload: boolean;
8178
+ extractMetadata: boolean;
8179
+ extractText: boolean;
8180
+ versioningEnabled: boolean;
8181
+ publicRead: boolean;
8182
+ presignedUrlExpiry: number;
8183
+ minSize?: number | undefined;
8184
+ maxSize?: number | undefined;
8185
+ allowedTypes?: string[] | undefined;
8186
+ blockedTypes?: string[] | undefined;
8187
+ allowedMimeTypes?: string[] | undefined;
8188
+ blockedMimeTypes?: string[] | undefined;
8189
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
8190
+ storageProvider?: string | undefined;
8191
+ storageBucket?: string | undefined;
8192
+ storagePrefix?: string | undefined;
8193
+ imageValidation?: {
8194
+ generateThumbnails: boolean;
8195
+ preserveMetadata: boolean;
8196
+ autoRotate: boolean;
8197
+ minWidth?: number | undefined;
8198
+ maxWidth?: number | undefined;
8199
+ minHeight?: number | undefined;
8200
+ maxHeight?: number | undefined;
8201
+ aspectRatio?: string | undefined;
8202
+ thumbnailSizes?: {
8203
+ name: string;
8204
+ width: number;
8205
+ height: number;
8206
+ crop: boolean;
8207
+ }[] | undefined;
8208
+ } | undefined;
8209
+ maxVersions?: number | undefined;
8210
+ } | undefined;
8211
+ readonly maskingRule?: {
8212
+ field: string;
8213
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
8214
+ preserveFormat: boolean;
8215
+ preserveLength: boolean;
8216
+ pattern?: string | undefined;
8217
+ roles?: string[] | undefined;
8218
+ exemptRoles?: string[] | undefined;
8219
+ } | undefined;
8220
+ readonly auditTrail?: boolean | undefined;
8221
+ readonly cached?: {
8222
+ enabled: boolean;
8223
+ ttl: number;
8224
+ invalidateOn: string[];
8225
+ } | undefined;
8226
+ readonly dataQuality?: {
8227
+ uniqueness: boolean;
8228
+ completeness: number;
8229
+ accuracy?: {
8230
+ source: string;
8231
+ threshold: number;
8232
+ } | undefined;
8233
+ } | undefined;
8234
+ readonly conditionalRequired?: {
8235
+ dialect: "cel" | "js" | "cron" | "template";
8236
+ source?: string | undefined;
8237
+ ast?: unknown;
8238
+ meta?: {
8239
+ rationale?: string | undefined;
8240
+ generatedBy?: string | undefined;
8241
+ } | undefined;
8242
+ } | undefined;
8243
+ readonly hidden?: boolean | undefined;
8244
+ readonly sortable?: boolean | undefined;
8245
+ readonly inlineHelpText?: string | undefined;
8246
+ readonly trackFeedHistory?: boolean | undefined;
8247
+ readonly caseSensitive?: boolean | undefined;
8248
+ readonly autonumberFormat?: string | undefined;
8249
+ readonly index?: boolean | undefined;
8250
+ readonly type: "number";
8251
+ };
8252
+ readonly status: {
8253
+ readonly readonly?: boolean | undefined;
8254
+ readonly format?: string | undefined;
8255
+ options: {
8256
+ label: string;
8257
+ value: string;
8258
+ color?: string | undefined;
8259
+ default?: boolean | undefined;
8260
+ }[];
8261
+ readonly description?: string | undefined;
8262
+ readonly label?: string | undefined;
8263
+ readonly name?: string | undefined;
8264
+ readonly precision?: number | undefined;
8265
+ readonly required?: boolean | undefined;
8266
+ readonly multiple?: boolean | undefined;
8267
+ readonly dependencies?: string[] | undefined;
8268
+ readonly theme?: string | undefined;
8269
+ readonly externalId?: boolean | undefined;
8270
+ readonly system?: boolean | undefined;
8271
+ readonly min?: number | undefined;
8272
+ readonly max?: number | undefined;
8273
+ readonly group?: string | undefined;
8274
+ readonly encryptionConfig?: {
8275
+ enabled: boolean;
8276
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
8277
+ keyManagement: {
8278
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
8279
+ keyId?: string | undefined;
8280
+ rotationPolicy?: {
8281
+ enabled: boolean;
8282
+ frequencyDays: number;
8283
+ retainOldVersions: number;
8284
+ autoRotate: boolean;
8285
+ } | undefined;
8286
+ };
8287
+ scope: "record" | "field" | "table" | "database";
8288
+ deterministicEncryption: boolean;
8289
+ searchableEncryption: boolean;
8290
+ } | undefined;
8291
+ readonly columnName?: string | undefined;
8292
+ readonly searchable?: boolean | undefined;
8293
+ readonly unique?: boolean | undefined;
8294
+ readonly defaultValue?: unknown;
8295
+ readonly maxLength?: number | undefined;
8296
+ readonly minLength?: number | undefined;
8297
+ readonly scale?: number | undefined;
8298
+ readonly reference?: string | undefined;
8299
+ readonly referenceFilters?: string[] | undefined;
8300
+ readonly writeRequiresMasterRead?: boolean | undefined;
8301
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
8302
+ readonly expression?: {
8303
+ dialect: "cel" | "js" | "cron" | "template";
8304
+ source?: string | undefined;
8305
+ ast?: unknown;
8306
+ meta?: {
8307
+ rationale?: string | undefined;
8308
+ generatedBy?: string | undefined;
8309
+ } | undefined;
8310
+ } | undefined;
8311
+ readonly summaryOperations?: {
8312
+ object: string;
8313
+ field: string;
8314
+ function: "min" | "max" | "count" | "sum" | "avg";
8315
+ } | undefined;
8316
+ readonly language?: string | undefined;
8317
+ readonly lineNumbers?: boolean | undefined;
8318
+ readonly maxRating?: number | undefined;
8319
+ readonly allowHalf?: boolean | undefined;
8320
+ readonly displayMap?: boolean | undefined;
8321
+ readonly allowGeocoding?: boolean | undefined;
8322
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
8323
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
8324
+ readonly allowAlpha?: boolean | undefined;
8325
+ readonly presetColors?: string[] | undefined;
8326
+ readonly step?: number | undefined;
8327
+ readonly showValue?: boolean | undefined;
8328
+ readonly marks?: Record<string, string> | undefined;
8329
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
8330
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
8331
+ readonly displayValue?: boolean | undefined;
8332
+ readonly allowScanning?: boolean | undefined;
8333
+ readonly currencyConfig?: {
8334
+ precision: number;
8335
+ currencyMode: "fixed" | "dynamic";
8336
+ defaultCurrency: string;
8337
+ } | undefined;
8338
+ readonly vectorConfig?: {
8339
+ dimensions: number;
8340
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
8341
+ normalized: boolean;
8342
+ indexed: boolean;
8343
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
8344
+ } | undefined;
8345
+ readonly fileAttachmentConfig?: {
8346
+ virusScan: boolean;
8347
+ virusScanOnUpload: boolean;
8348
+ quarantineOnThreat: boolean;
8349
+ allowMultiple: boolean;
8350
+ allowReplace: boolean;
8351
+ allowDelete: boolean;
8352
+ requireUpload: boolean;
8353
+ extractMetadata: boolean;
8354
+ extractText: boolean;
8355
+ versioningEnabled: boolean;
8356
+ publicRead: boolean;
8357
+ presignedUrlExpiry: number;
8358
+ minSize?: number | undefined;
8359
+ maxSize?: number | undefined;
8360
+ allowedTypes?: string[] | undefined;
8361
+ blockedTypes?: string[] | undefined;
8362
+ allowedMimeTypes?: string[] | undefined;
8363
+ blockedMimeTypes?: string[] | undefined;
8364
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
8365
+ storageProvider?: string | undefined;
8366
+ storageBucket?: string | undefined;
8367
+ storagePrefix?: string | undefined;
8368
+ imageValidation?: {
8369
+ generateThumbnails: boolean;
8370
+ preserveMetadata: boolean;
8371
+ autoRotate: boolean;
8372
+ minWidth?: number | undefined;
8373
+ maxWidth?: number | undefined;
8374
+ minHeight?: number | undefined;
8375
+ maxHeight?: number | undefined;
8376
+ aspectRatio?: string | undefined;
8377
+ thumbnailSizes?: {
8378
+ name: string;
8379
+ width: number;
8380
+ height: number;
8381
+ crop: boolean;
8382
+ }[] | undefined;
8383
+ } | undefined;
8384
+ maxVersions?: number | undefined;
8385
+ } | undefined;
8386
+ readonly maskingRule?: {
8387
+ field: string;
8388
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
8389
+ preserveFormat: boolean;
8390
+ preserveLength: boolean;
8391
+ pattern?: string | undefined;
8392
+ roles?: string[] | undefined;
8393
+ exemptRoles?: string[] | undefined;
8394
+ } | undefined;
8395
+ readonly auditTrail?: boolean | undefined;
8396
+ readonly cached?: {
8397
+ enabled: boolean;
8398
+ ttl: number;
8399
+ invalidateOn: string[];
8400
+ } | undefined;
8401
+ readonly dataQuality?: {
8402
+ uniqueness: boolean;
8403
+ completeness: number;
8404
+ accuracy?: {
8405
+ source: string;
8406
+ threshold: number;
8407
+ } | undefined;
8408
+ } | undefined;
8409
+ readonly conditionalRequired?: {
8410
+ dialect: "cel" | "js" | "cron" | "template";
8411
+ source?: string | undefined;
8412
+ ast?: unknown;
8413
+ meta?: {
8414
+ rationale?: string | undefined;
8415
+ generatedBy?: string | undefined;
8416
+ } | undefined;
8417
+ } | undefined;
8418
+ readonly hidden?: boolean | undefined;
8419
+ readonly sortable?: boolean | undefined;
8420
+ readonly inlineHelpText?: string | undefined;
8421
+ readonly trackFeedHistory?: boolean | undefined;
8422
+ readonly caseSensitive?: boolean | undefined;
8423
+ readonly autonumberFormat?: string | undefined;
8424
+ readonly index?: boolean | undefined;
8425
+ readonly type: "select";
8426
+ };
8427
+ readonly error: {
8428
+ readonly readonly?: boolean | undefined;
8429
+ readonly format?: string | undefined;
8430
+ readonly options?: {
8431
+ label: string;
8432
+ value: string;
8433
+ color?: string | undefined;
8434
+ default?: boolean | undefined;
8435
+ }[] | undefined;
8436
+ readonly description?: string | undefined;
8437
+ readonly label?: string | undefined;
8438
+ readonly name?: string | undefined;
8439
+ readonly precision?: number | undefined;
8440
+ readonly required?: boolean | undefined;
8441
+ readonly multiple?: boolean | undefined;
8442
+ readonly dependencies?: string[] | undefined;
8443
+ readonly theme?: string | undefined;
8444
+ readonly externalId?: boolean | undefined;
8445
+ readonly system?: boolean | undefined;
8446
+ readonly min?: number | undefined;
8447
+ readonly max?: number | undefined;
8448
+ readonly group?: string | undefined;
8449
+ readonly encryptionConfig?: {
8450
+ enabled: boolean;
8451
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
8452
+ keyManagement: {
8453
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
8454
+ keyId?: string | undefined;
8455
+ rotationPolicy?: {
8456
+ enabled: boolean;
8457
+ frequencyDays: number;
8458
+ retainOldVersions: number;
8459
+ autoRotate: boolean;
8460
+ } | undefined;
8461
+ };
8462
+ scope: "record" | "field" | "table" | "database";
8463
+ deterministicEncryption: boolean;
8464
+ searchableEncryption: boolean;
8465
+ } | undefined;
8466
+ readonly columnName?: string | undefined;
8467
+ readonly searchable?: boolean | undefined;
8468
+ readonly unique?: boolean | undefined;
8469
+ readonly defaultValue?: unknown;
8470
+ readonly maxLength?: number | undefined;
8471
+ readonly minLength?: number | undefined;
8472
+ readonly scale?: number | undefined;
8473
+ readonly reference?: string | undefined;
8474
+ readonly referenceFilters?: string[] | undefined;
8475
+ readonly writeRequiresMasterRead?: boolean | undefined;
8476
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
8477
+ readonly expression?: {
8478
+ dialect: "cel" | "js" | "cron" | "template";
8479
+ source?: string | undefined;
8480
+ ast?: unknown;
8481
+ meta?: {
8482
+ rationale?: string | undefined;
8483
+ generatedBy?: string | undefined;
8484
+ } | undefined;
8485
+ } | undefined;
8486
+ readonly summaryOperations?: {
8487
+ object: string;
8488
+ field: string;
8489
+ function: "min" | "max" | "count" | "sum" | "avg";
8490
+ } | undefined;
8491
+ readonly language?: string | undefined;
8492
+ readonly lineNumbers?: boolean | undefined;
8493
+ readonly maxRating?: number | undefined;
8494
+ readonly allowHalf?: boolean | undefined;
8495
+ readonly displayMap?: boolean | undefined;
8496
+ readonly allowGeocoding?: boolean | undefined;
8497
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
8498
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
8499
+ readonly allowAlpha?: boolean | undefined;
8500
+ readonly presetColors?: string[] | undefined;
8501
+ readonly step?: number | undefined;
8502
+ readonly showValue?: boolean | undefined;
8503
+ readonly marks?: Record<string, string> | undefined;
8504
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
8505
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
8506
+ readonly displayValue?: boolean | undefined;
8507
+ readonly allowScanning?: boolean | undefined;
8508
+ readonly currencyConfig?: {
8509
+ precision: number;
8510
+ currencyMode: "fixed" | "dynamic";
8511
+ defaultCurrency: string;
8512
+ } | undefined;
8513
+ readonly vectorConfig?: {
8514
+ dimensions: number;
8515
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
8516
+ normalized: boolean;
8517
+ indexed: boolean;
8518
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
8519
+ } | undefined;
8520
+ readonly fileAttachmentConfig?: {
8521
+ virusScan: boolean;
8522
+ virusScanOnUpload: boolean;
8523
+ quarantineOnThreat: boolean;
8524
+ allowMultiple: boolean;
8525
+ allowReplace: boolean;
8526
+ allowDelete: boolean;
8527
+ requireUpload: boolean;
8528
+ extractMetadata: boolean;
8529
+ extractText: boolean;
8530
+ versioningEnabled: boolean;
8531
+ publicRead: boolean;
8532
+ presignedUrlExpiry: number;
8533
+ minSize?: number | undefined;
8534
+ maxSize?: number | undefined;
8535
+ allowedTypes?: string[] | undefined;
8536
+ blockedTypes?: string[] | undefined;
8537
+ allowedMimeTypes?: string[] | undefined;
8538
+ blockedMimeTypes?: string[] | undefined;
8539
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
8540
+ storageProvider?: string | undefined;
8541
+ storageBucket?: string | undefined;
8542
+ storagePrefix?: string | undefined;
8543
+ imageValidation?: {
8544
+ generateThumbnails: boolean;
8545
+ preserveMetadata: boolean;
8546
+ autoRotate: boolean;
8547
+ minWidth?: number | undefined;
8548
+ maxWidth?: number | undefined;
8549
+ minHeight?: number | undefined;
8550
+ maxHeight?: number | undefined;
8551
+ aspectRatio?: string | undefined;
8552
+ thumbnailSizes?: {
8553
+ name: string;
8554
+ width: number;
8555
+ height: number;
8556
+ crop: boolean;
8557
+ }[] | undefined;
8558
+ } | undefined;
8559
+ maxVersions?: number | undefined;
8560
+ } | undefined;
8561
+ readonly maskingRule?: {
8562
+ field: string;
8563
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
8564
+ preserveFormat: boolean;
8565
+ preserveLength: boolean;
8566
+ pattern?: string | undefined;
8567
+ roles?: string[] | undefined;
8568
+ exemptRoles?: string[] | undefined;
8569
+ } | undefined;
8570
+ readonly auditTrail?: boolean | undefined;
8571
+ readonly cached?: {
8572
+ enabled: boolean;
8573
+ ttl: number;
8574
+ invalidateOn: string[];
8575
+ } | undefined;
8576
+ readonly dataQuality?: {
8577
+ uniqueness: boolean;
8578
+ completeness: number;
8579
+ accuracy?: {
8580
+ source: string;
8581
+ threshold: number;
8582
+ } | undefined;
8583
+ } | undefined;
8584
+ readonly conditionalRequired?: {
8585
+ dialect: "cel" | "js" | "cron" | "template";
8586
+ source?: string | undefined;
8587
+ ast?: unknown;
8588
+ meta?: {
8589
+ rationale?: string | undefined;
8590
+ generatedBy?: string | undefined;
8591
+ } | undefined;
8592
+ } | undefined;
8593
+ readonly hidden?: boolean | undefined;
8594
+ readonly sortable?: boolean | undefined;
8595
+ readonly inlineHelpText?: string | undefined;
8596
+ readonly trackFeedHistory?: boolean | undefined;
8597
+ readonly caseSensitive?: boolean | undefined;
8598
+ readonly autonumberFormat?: string | undefined;
8599
+ readonly index?: boolean | undefined;
8600
+ readonly type: "textarea";
8601
+ };
8602
+ readonly metadata: {
8603
+ readonly readonly?: boolean | undefined;
8604
+ readonly format?: string | undefined;
8605
+ readonly options?: {
8606
+ label: string;
8607
+ value: string;
8608
+ color?: string | undefined;
8609
+ default?: boolean | undefined;
8610
+ }[] | undefined;
8611
+ readonly description?: string | undefined;
8612
+ readonly label?: string | undefined;
8613
+ readonly name?: string | undefined;
8614
+ readonly precision?: number | undefined;
8615
+ readonly required?: boolean | undefined;
8616
+ readonly multiple?: boolean | undefined;
8617
+ readonly dependencies?: string[] | undefined;
8618
+ readonly theme?: string | undefined;
8619
+ readonly externalId?: boolean | undefined;
8620
+ readonly system?: boolean | undefined;
8621
+ readonly min?: number | undefined;
8622
+ readonly max?: number | undefined;
8623
+ readonly group?: string | undefined;
8624
+ readonly encryptionConfig?: {
8625
+ enabled: boolean;
8626
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
8627
+ keyManagement: {
8628
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
8629
+ keyId?: string | undefined;
8630
+ rotationPolicy?: {
8631
+ enabled: boolean;
8632
+ frequencyDays: number;
8633
+ retainOldVersions: number;
8634
+ autoRotate: boolean;
8635
+ } | undefined;
8636
+ };
8637
+ scope: "record" | "field" | "table" | "database";
8638
+ deterministicEncryption: boolean;
8639
+ searchableEncryption: boolean;
8640
+ } | undefined;
8641
+ readonly columnName?: string | undefined;
8642
+ readonly searchable?: boolean | undefined;
8643
+ readonly unique?: boolean | undefined;
8644
+ readonly defaultValue?: unknown;
8645
+ readonly maxLength?: number | undefined;
8646
+ readonly minLength?: number | undefined;
8647
+ readonly scale?: number | undefined;
8648
+ readonly reference?: string | undefined;
8649
+ readonly referenceFilters?: string[] | undefined;
8650
+ readonly writeRequiresMasterRead?: boolean | undefined;
8651
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
8652
+ readonly expression?: {
8653
+ dialect: "cel" | "js" | "cron" | "template";
8654
+ source?: string | undefined;
8655
+ ast?: unknown;
8656
+ meta?: {
8657
+ rationale?: string | undefined;
8658
+ generatedBy?: string | undefined;
8659
+ } | undefined;
8660
+ } | undefined;
8661
+ readonly summaryOperations?: {
8662
+ object: string;
8663
+ field: string;
8664
+ function: "min" | "max" | "count" | "sum" | "avg";
8665
+ } | undefined;
8666
+ readonly language?: string | undefined;
8667
+ readonly lineNumbers?: boolean | undefined;
8668
+ readonly maxRating?: number | undefined;
8669
+ readonly allowHalf?: boolean | undefined;
8670
+ readonly displayMap?: boolean | undefined;
8671
+ readonly allowGeocoding?: boolean | undefined;
8672
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
8673
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
8674
+ readonly allowAlpha?: boolean | undefined;
8675
+ readonly presetColors?: string[] | undefined;
8676
+ readonly step?: number | undefined;
8677
+ readonly showValue?: boolean | undefined;
8678
+ readonly marks?: Record<string, string> | undefined;
8679
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
8680
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
8681
+ readonly displayValue?: boolean | undefined;
8682
+ readonly allowScanning?: boolean | undefined;
8683
+ readonly currencyConfig?: {
8684
+ precision: number;
8685
+ currencyMode: "fixed" | "dynamic";
8686
+ defaultCurrency: string;
8687
+ } | undefined;
8688
+ readonly vectorConfig?: {
8689
+ dimensions: number;
8690
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
8691
+ normalized: boolean;
8692
+ indexed: boolean;
8693
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
8694
+ } | undefined;
8695
+ readonly fileAttachmentConfig?: {
8696
+ virusScan: boolean;
8697
+ virusScanOnUpload: boolean;
8698
+ quarantineOnThreat: boolean;
8699
+ allowMultiple: boolean;
8700
+ allowReplace: boolean;
8701
+ allowDelete: boolean;
8702
+ requireUpload: boolean;
8703
+ extractMetadata: boolean;
8704
+ extractText: boolean;
8705
+ versioningEnabled: boolean;
8706
+ publicRead: boolean;
8707
+ presignedUrlExpiry: number;
8708
+ minSize?: number | undefined;
8709
+ maxSize?: number | undefined;
8710
+ allowedTypes?: string[] | undefined;
8711
+ blockedTypes?: string[] | undefined;
8712
+ allowedMimeTypes?: string[] | undefined;
8713
+ blockedMimeTypes?: string[] | undefined;
8714
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
8715
+ storageProvider?: string | undefined;
8716
+ storageBucket?: string | undefined;
8717
+ storagePrefix?: string | undefined;
8718
+ imageValidation?: {
8719
+ generateThumbnails: boolean;
8720
+ preserveMetadata: boolean;
8721
+ autoRotate: boolean;
8722
+ minWidth?: number | undefined;
8723
+ maxWidth?: number | undefined;
8724
+ minHeight?: number | undefined;
8725
+ maxHeight?: number | undefined;
8726
+ aspectRatio?: string | undefined;
8727
+ thumbnailSizes?: {
8728
+ name: string;
8729
+ width: number;
8730
+ height: number;
8731
+ crop: boolean;
8732
+ }[] | undefined;
8733
+ } | undefined;
8734
+ maxVersions?: number | undefined;
8735
+ } | undefined;
8736
+ readonly maskingRule?: {
8737
+ field: string;
8738
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
8739
+ preserveFormat: boolean;
8740
+ preserveLength: boolean;
8741
+ pattern?: string | undefined;
8742
+ roles?: string[] | undefined;
8743
+ exemptRoles?: string[] | undefined;
8744
+ } | undefined;
8745
+ readonly auditTrail?: boolean | undefined;
8746
+ readonly cached?: {
8747
+ enabled: boolean;
8748
+ ttl: number;
8749
+ invalidateOn: string[];
8750
+ } | undefined;
8751
+ readonly dataQuality?: {
8752
+ uniqueness: boolean;
8753
+ completeness: number;
8754
+ accuracy?: {
8755
+ source: string;
8756
+ threshold: number;
8757
+ } | undefined;
8758
+ } | undefined;
8759
+ readonly conditionalRequired?: {
8760
+ dialect: "cel" | "js" | "cron" | "template";
8761
+ source?: string | undefined;
8762
+ ast?: unknown;
8763
+ meta?: {
8764
+ rationale?: string | undefined;
8765
+ generatedBy?: string | undefined;
8766
+ } | undefined;
8767
+ } | undefined;
8768
+ readonly hidden?: boolean | undefined;
8769
+ readonly sortable?: boolean | undefined;
8770
+ readonly inlineHelpText?: string | undefined;
8771
+ readonly trackFeedHistory?: boolean | undefined;
8772
+ readonly caseSensitive?: boolean | undefined;
8773
+ readonly autonumberFormat?: string | undefined;
8774
+ readonly index?: boolean | undefined;
8775
+ readonly type: "textarea";
8776
+ };
8777
+ readonly created_at: {
8778
+ readonly readonly?: boolean | undefined;
8779
+ readonly format?: string | undefined;
8780
+ readonly options?: {
8781
+ label: string;
8782
+ value: string;
8783
+ color?: string | undefined;
8784
+ default?: boolean | undefined;
8785
+ }[] | undefined;
8786
+ readonly description?: string | undefined;
8787
+ readonly label?: string | undefined;
8788
+ readonly name?: string | undefined;
8789
+ readonly precision?: number | undefined;
8790
+ readonly required?: boolean | undefined;
8791
+ readonly multiple?: boolean | undefined;
8792
+ readonly dependencies?: string[] | undefined;
8793
+ readonly theme?: string | undefined;
8794
+ readonly externalId?: boolean | undefined;
8795
+ readonly system?: boolean | undefined;
8796
+ readonly min?: number | undefined;
8797
+ readonly max?: number | undefined;
8798
+ readonly group?: string | undefined;
8799
+ readonly encryptionConfig?: {
8800
+ enabled: boolean;
8801
+ algorithm: "aes-256-gcm" | "aes-256-cbc" | "chacha20-poly1305";
8802
+ keyManagement: {
8803
+ provider: "local" | "aws-kms" | "azure-key-vault" | "gcp-kms" | "hashicorp-vault";
8804
+ keyId?: string | undefined;
8805
+ rotationPolicy?: {
8806
+ enabled: boolean;
8807
+ frequencyDays: number;
8808
+ retainOldVersions: number;
8809
+ autoRotate: boolean;
8810
+ } | undefined;
8811
+ };
8812
+ scope: "record" | "field" | "table" | "database";
8813
+ deterministicEncryption: boolean;
8814
+ searchableEncryption: boolean;
8815
+ } | undefined;
8816
+ readonly columnName?: string | undefined;
8817
+ readonly searchable?: boolean | undefined;
8818
+ readonly unique?: boolean | undefined;
8819
+ readonly defaultValue?: unknown;
8820
+ readonly maxLength?: number | undefined;
8821
+ readonly minLength?: number | undefined;
8822
+ readonly scale?: number | undefined;
8823
+ readonly reference?: string | undefined;
8824
+ readonly referenceFilters?: string[] | undefined;
8825
+ readonly writeRequiresMasterRead?: boolean | undefined;
8826
+ readonly deleteBehavior?: "set_null" | "cascade" | "restrict" | undefined;
8827
+ readonly expression?: {
8828
+ dialect: "cel" | "js" | "cron" | "template";
8829
+ source?: string | undefined;
8830
+ ast?: unknown;
8831
+ meta?: {
8832
+ rationale?: string | undefined;
8833
+ generatedBy?: string | undefined;
8834
+ } | undefined;
8835
+ } | undefined;
8836
+ readonly summaryOperations?: {
8837
+ object: string;
8838
+ field: string;
8839
+ function: "min" | "max" | "count" | "sum" | "avg";
8840
+ } | undefined;
8841
+ readonly language?: string | undefined;
8842
+ readonly lineNumbers?: boolean | undefined;
8843
+ readonly maxRating?: number | undefined;
8844
+ readonly allowHalf?: boolean | undefined;
8845
+ readonly displayMap?: boolean | undefined;
8846
+ readonly allowGeocoding?: boolean | undefined;
8847
+ readonly addressFormat?: "us" | "uk" | "international" | undefined;
8848
+ readonly colorFormat?: "hex" | "rgb" | "rgba" | "hsl" | undefined;
8849
+ readonly allowAlpha?: boolean | undefined;
8850
+ readonly presetColors?: string[] | undefined;
8851
+ readonly step?: number | undefined;
8852
+ readonly showValue?: boolean | undefined;
8853
+ readonly marks?: Record<string, string> | undefined;
8854
+ readonly barcodeFormat?: "qr" | "ean13" | "ean8" | "code128" | "code39" | "upca" | "upce" | undefined;
8855
+ readonly qrErrorCorrection?: "L" | "M" | "Q" | "H" | undefined;
8856
+ readonly displayValue?: boolean | undefined;
8857
+ readonly allowScanning?: boolean | undefined;
8858
+ readonly currencyConfig?: {
8859
+ precision: number;
8860
+ currencyMode: "fixed" | "dynamic";
8861
+ defaultCurrency: string;
8862
+ } | undefined;
8863
+ readonly vectorConfig?: {
8864
+ dimensions: number;
8865
+ distanceMetric: "cosine" | "euclidean" | "dotProduct" | "manhattan";
8866
+ normalized: boolean;
8867
+ indexed: boolean;
8868
+ indexType?: "flat" | "hnsw" | "ivfflat" | undefined;
8869
+ } | undefined;
8870
+ readonly fileAttachmentConfig?: {
8871
+ virusScan: boolean;
8872
+ virusScanOnUpload: boolean;
8873
+ quarantineOnThreat: boolean;
8874
+ allowMultiple: boolean;
8875
+ allowReplace: boolean;
8876
+ allowDelete: boolean;
8877
+ requireUpload: boolean;
8878
+ extractMetadata: boolean;
8879
+ extractText: boolean;
8880
+ versioningEnabled: boolean;
8881
+ publicRead: boolean;
8882
+ presignedUrlExpiry: number;
8883
+ minSize?: number | undefined;
8884
+ maxSize?: number | undefined;
8885
+ allowedTypes?: string[] | undefined;
8886
+ blockedTypes?: string[] | undefined;
8887
+ allowedMimeTypes?: string[] | undefined;
8888
+ blockedMimeTypes?: string[] | undefined;
8889
+ virusScanProvider?: "custom" | "clamav" | "virustotal" | "metadefender" | undefined;
8890
+ storageProvider?: string | undefined;
8891
+ storageBucket?: string | undefined;
8892
+ storagePrefix?: string | undefined;
8893
+ imageValidation?: {
8894
+ generateThumbnails: boolean;
8895
+ preserveMetadata: boolean;
8896
+ autoRotate: boolean;
8897
+ minWidth?: number | undefined;
8898
+ maxWidth?: number | undefined;
8899
+ minHeight?: number | undefined;
8900
+ maxHeight?: number | undefined;
8901
+ aspectRatio?: string | undefined;
8902
+ thumbnailSizes?: {
8903
+ name: string;
8904
+ width: number;
8905
+ height: number;
8906
+ crop: boolean;
8907
+ }[] | undefined;
8908
+ } | undefined;
8909
+ maxVersions?: number | undefined;
8910
+ } | undefined;
8911
+ readonly maskingRule?: {
8912
+ field: string;
8913
+ strategy: "partial" | "hash" | "redact" | "tokenize" | "randomize" | "nullify" | "substitute";
8914
+ preserveFormat: boolean;
8915
+ preserveLength: boolean;
8916
+ pattern?: string | undefined;
8917
+ roles?: string[] | undefined;
8918
+ exemptRoles?: string[] | undefined;
8919
+ } | undefined;
8920
+ readonly auditTrail?: boolean | undefined;
8921
+ readonly cached?: {
8922
+ enabled: boolean;
8923
+ ttl: number;
8924
+ invalidateOn: string[];
8925
+ } | undefined;
8926
+ readonly dataQuality?: {
8927
+ uniqueness: boolean;
8928
+ completeness: number;
8929
+ accuracy?: {
8930
+ source: string;
8931
+ threshold: number;
8932
+ } | undefined;
8933
+ } | undefined;
8934
+ readonly conditionalRequired?: {
8935
+ dialect: "cel" | "js" | "cron" | "template";
8936
+ source?: string | undefined;
8937
+ ast?: unknown;
8938
+ meta?: {
8939
+ rationale?: string | undefined;
8940
+ generatedBy?: string | undefined;
8941
+ } | undefined;
8942
+ } | undefined;
8943
+ readonly hidden?: boolean | undefined;
8944
+ readonly sortable?: boolean | undefined;
8945
+ readonly inlineHelpText?: string | undefined;
8946
+ readonly trackFeedHistory?: boolean | undefined;
8947
+ readonly caseSensitive?: boolean | undefined;
8948
+ readonly autonumberFormat?: string | undefined;
8949
+ readonly index?: boolean | undefined;
8950
+ readonly type: "datetime";
8951
+ };
8952
+ };
8953
+ readonly indexes: [{
8954
+ readonly fields: ["conversation_id"];
8955
+ }, {
8956
+ readonly fields: ["agent_id"];
8957
+ }, {
8958
+ readonly fields: ["model"];
8959
+ }, {
8960
+ readonly fields: ["status"];
8961
+ }, {
8962
+ readonly fields: ["created_at"];
8963
+ }];
8964
+ readonly enable: {
8965
+ readonly trackHistory: false;
8966
+ readonly searchable: false;
8967
+ readonly apiEnabled: true;
8968
+ readonly apiMethods: ["get", "list"];
8969
+ readonly trash: false;
8970
+ readonly mru: false;
8971
+ };
8972
+ }, "fields">;
8973
+
8974
+ /**
8975
+ * SchemaRetriever — Keyword-based metadata retrieval for AI prompts.
8976
+ *
8977
+ * Given a free-text query (typically the user's last message), surfaces the
8978
+ * most relevant `object` definitions and renders a compact schema snippet
8979
+ * suitable for injection into the system prompt.
8980
+ *
8981
+ * v1 strategy is intentionally simple:
8982
+ * - Tokenise the query into lower-case alphanumeric terms
8983
+ * - Score each registered object by counting term hits against its name,
8984
+ * label, field names, and field labels
8985
+ * - Return the top `limit` matches above the score threshold
8986
+ *
8987
+ * This does *not* use embeddings — for v1 the user-defined object catalogue
8988
+ * is small enough (< 1000 objects in practice) that a single linear scan
8989
+ * over already-cached metadata is faster than a vector round-trip and
8990
+ * eliminates the need for a vector store.
8991
+ *
8992
+ * Future versions can swap in {@link IAIService.embed} backed retrieval
8993
+ * behind the same `retrieve()` shape.
8994
+ *
8995
+ * @example
8996
+ * ```ts
8997
+ * const retriever = new SchemaRetriever(metadataService);
8998
+ * const hits = await retriever.retrieve('how many open tasks are due this week?');
8999
+ * const snippet = SchemaRetriever.renderSnippet(hits);
9000
+ * // snippet:
9001
+ * // ## Schema context (auto-injected)
9002
+ * // ### task — Project Task
9003
+ * // - id: text
9004
+ * // - title: text
9005
+ * // - status: select(open|in_progress|done)
9006
+ * // - due_date: date
9007
+ * ```
9008
+ */
9009
+ declare class SchemaRetriever {
9010
+ private readonly metadata;
9011
+ private readonly options;
9012
+ constructor(metadata: IMetadataService, options?: SchemaRetrieverOptions);
9013
+ /**
9014
+ * Find object definitions whose name/label/fields match terms in the query.
9015
+ *
9016
+ * Returns matches sorted by score (descending) capped at `limit`. When
9017
+ * the query yields no matches, returns an empty array — callers may
9018
+ * fall back to a generic "describe what data exists" tool call.
9019
+ */
9020
+ retrieve(query: string): Promise<SchemaHit[]>;
9021
+ /**
9022
+ * Render hits as a compact Markdown schema snippet.
9023
+ *
9024
+ * Designed to be appended to the system message — every line carries
9025
+ * exactly the information a model needs to choose object/field names
9026
+ * for query construction.
9027
+ */
9028
+ static renderSnippet(hits: SchemaHit[], maxFieldsPerObject?: number): string;
9029
+ }
9030
+ /** A scored retrieval result. */
9031
+ interface SchemaHit {
9032
+ object: ObjectShape;
9033
+ score: number;
9034
+ }
9035
+ /** Options for {@link SchemaRetriever}. */
9036
+ interface SchemaRetrieverOptions {
9037
+ /** Maximum number of objects to return (default: 3). */
9038
+ limit?: number;
9039
+ /** Minimum score required to include an object (default: 1). */
9040
+ minScore?: number;
9041
+ /** Maximum fields rendered per object in the snippet (default: 12). */
9042
+ maxFieldsPerObject?: number;
9043
+ }
9044
+ /** Minimal shape of an object definition we care about. */
9045
+ interface ObjectShape {
9046
+ name: string;
9047
+ label?: string;
9048
+ pluralLabel?: string;
9049
+ description?: string;
9050
+ fields?: Record<string, FieldShape>;
9051
+ }
9052
+ /** Minimal shape of a field definition. */
9053
+ interface FieldShape {
9054
+ type?: string;
9055
+ label?: string;
9056
+ options?: unknown;
9057
+ reference?: string;
9058
+ }
9059
+
9060
+ /**
9061
+ * Context for the `query_data` tool.
9062
+ *
9063
+ * Wires together the three services it needs:
9064
+ * - {@link IAIService} for structured-output generation of the ObjectQL query
9065
+ * - {@link IMetadataService} for schema discovery
9066
+ * - {@link IDataEngine} for actually executing the resolved query
9067
+ */
9068
+ interface QueryDataToolContext {
9069
+ ai: IAIService;
9070
+ metadata: IMetadataService;
9071
+ dataEngine: IDataEngine;
9072
+ /** Maximum number of records returned per call (default: 100). */
9073
+ maxLimit?: number;
9074
+ }
9075
+ /**
9076
+ * Zod schema used to constrain the LLM's structured output.
9077
+ *
9078
+ * Kept small and strict — every property is documented so providers like
9079
+ * OpenAI Structured Outputs and Anthropic Tool Use can render high-quality
9080
+ * prompts from the schema metadata.
9081
+ */
9082
+ declare const QueryPlanSchema: z.ZodObject<{
9083
+ objectName: z.ZodString;
9084
+ where: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
9085
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
9086
+ orderBy: z.ZodOptional<z.ZodArray<z.ZodObject<{
9087
+ field: z.ZodString;
9088
+ order: z.ZodEnum<{
9089
+ asc: "asc";
9090
+ desc: "desc";
9091
+ }>;
9092
+ }, z.core.$strip>>>;
9093
+ limit: z.ZodOptional<z.ZodNumber>;
9094
+ }, z.core.$strip>;
9095
+ /** Strongly-typed query plan inferred from the LLM. */
9096
+ type QueryPlan = z.infer<typeof QueryPlanSchema>;
9097
+ /**
9098
+ * Tool definition advertised to the LLM in the outer tool-call loop.
9099
+ *
9100
+ * The model invokes this tool with a single `request` argument — a
9101
+ * paraphrased question. The handler then performs:
9102
+ * 1. Schema retrieval (keyword match on the metadata catalogue)
9103
+ * 2. Structured-output generation of an ObjectQL plan (via Zod schema)
9104
+ * 3. Execution of that plan against the data engine
9105
+ * 4. Returns the results as JSON for the model to summarise.
9106
+ *
9107
+ * This collapses what used to be "schema retriever middleware + NLQ service"
9108
+ * into one tool, fully consistent with the platform's tool-calling pattern.
9109
+ */
9110
+ declare const QUERY_DATA_TOOL: AIToolDefinition;
9111
+ /**
9112
+ * Create a handler for the `query_data` tool.
9113
+ *
9114
+ * The handler is intentionally stateless — every call performs a fresh
9115
+ * schema lookup so newly registered objects are picked up immediately.
9116
+ */
9117
+ declare function createQueryDataHandler(ctx: QueryDataToolContext): ToolHandler;
9118
+ /**
9119
+ * Register the `query_data` tool on the given {@link ToolRegistry}.
9120
+ *
9121
+ * Typically called from {@link AIServicePlugin.start} once the AI, metadata,
9122
+ * and data services are all available.
9123
+ */
9124
+ declare function registerQueryDataTool(registry: ToolRegistry, context: QueryDataToolContext): void;
9125
+
4887
9126
  /**
4888
9127
  * Minimal HTTP handler abstraction so routes stay framework-agnostic.
4889
9128
  *
@@ -5010,4 +9249,4 @@ declare function buildAssistantRoutes(aiService: AIService, agentRuntime: AgentR
5010
9249
  */
5011
9250
  declare function buildToolRoutes(aiService: AIService, logger: Logger): RouteDefinition[];
5012
9251
 
5013
- export { AIService, type AIServiceConfig, AIServicePlugin, type AIServicePluginOptions, type AgentChatContext, AgentRuntime, AiConversationObject, AiMessageObject, DATA_CHAT_AGENT, DATA_TOOL_DEFINITIONS, type DataToolContext, type IConversationService, type IPackageRegistry, InMemoryConversationService, METADATA_ASSISTANT_AGENT, METADATA_TOOL_DEFINITIONS, MemoryLLMAdapter, type MetadataToolContext, ObjectQLConversationService, PACKAGE_TOOL_DEFINITIONS, type PackageToolContext, type RouteDefinition, type RouteRequest, type RouteResponse, type RouteUserContext, type SkillContext, SkillRegistry, type SkillSummary, type ToolExecutionResult, type ToolHandler, ToolRegistry, VercelLLMAdapter, type VercelLLMAdapterConfig, addFieldTool, buildAIRoutes, buildAgentRoutes, buildAssistantRoutes, buildToolRoutes, createObjectTool, createPackageTool, deleteFieldTool, describeObjectTool, encodeStreamPart, encodeVercelDataStream, getActivePackageTool, getPackageTool, listObjectsTool, listPackagesTool, modifyFieldTool, registerDataTools, registerMetadataTools, registerPackageTools, setActivePackageTool };
9252
+ export { AIService, type AIServiceConfig, AIServicePlugin, type AIServicePluginOptions, type AgentChatContext, AgentRuntime, AiConversationObject, AiMessageObject, AiTraceObject, type CostEstimate, DATA_CHAT_AGENT, DATA_TOOL_DEFINITIONS, type DataToolContext, type FieldShape, type IConversationService, type IPackageRegistry, InMemoryConversationService, METADATA_ASSISTANT_AGENT, METADATA_TOOL_DEFINITIONS, MemoryLLMAdapter, type MetadataToolContext, ModelRegistry, type ModelRegistryConfig, NullTraceRecorder, ObjectQLConversationService, ObjectQLTraceRecorder, type ObjectShape, PACKAGE_TOOL_DEFINITIONS, type PackageToolContext, QUERY_DATA_TOOL, type QueryDataToolContext, type QueryPlan, type RouteDefinition, type RouteRequest, type RouteResponse, type RouteUserContext, type SchemaHit, SchemaRetriever, type SchemaRetrieverOptions, type SkillContext, SkillRegistry, type SkillSummary, type TokenUsage, type ToolExecutionResult, type ToolHandler, ToolRegistry, type TraceEvent, type TraceOperation, type TraceRecorder, VercelLLMAdapter, type VercelLLMAdapterConfig, addFieldTool, buildAIRoutes, buildAgentRoutes, buildAssistantRoutes, buildToolRoutes, buildTraceEvent, computeCost, createObjectTool, createPackageTool, createQueryDataHandler, deleteFieldTool, describeObjectTool, encodeStreamPart, encodeVercelDataStream, getActivePackageTool, getPackageTool, listObjectsTool, listPackagesTool, modifyFieldTool, registerDataTools, registerMetadataTools, registerPackageTools, registerQueryDataTool, setActivePackageTool };