@nice2dev/ui-tools 1.0.10
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/README.md +36 -0
- package/dist/access-control.d.ts +726 -0
- package/dist/access-control.d.ts.map +1 -0
- package/dist/accessibility-i18n.d.ts +1017 -0
- package/dist/accessibility-i18n.d.ts.map +1 -0
- package/dist/ai-assistant.d.ts +263 -0
- package/dist/ai-assistant.d.ts.map +1 -0
- package/dist/ai-playgrounds.d.ts +842 -0
- package/dist/ai-playgrounds.d.ts.map +1 -0
- package/dist/alerting-incidents.d.ts +558 -0
- package/dist/alerting-incidents.d.ts.map +1 -0
- package/dist/api-designer.d.ts +1568 -0
- package/dist/api-designer.d.ts.map +1 -0
- package/dist/api-testing.d.ts +1146 -0
- package/dist/api-testing.d.ts.map +1 -0
- package/dist/apm-profiling.d.ts +656 -0
- package/dist/apm-profiling.d.ts.map +1 -0
- package/dist/artifacts.d.ts +421 -0
- package/dist/artifacts.d.ts.map +1 -0
- package/dist/audit-compliance.d.ts +752 -0
- package/dist/audit-compliance.d.ts.map +1 -0
- package/dist/certificates.d.ts +256 -0
- package/dist/certificates.d.ts.map +1 -0
- package/dist/chart-builder.d.ts +1404 -0
- package/dist/chart-builder.d.ts.map +1 -0
- package/dist/cloud-instances.d.ts +169 -0
- package/dist/cloud-instances.d.ts.map +1 -0
- package/dist/config-management.d.ts +350 -0
- package/dist/config-management.d.ts.map +1 -0
- package/dist/containers.d.ts +256 -0
- package/dist/containers.d.ts.map +1 -0
- package/dist/dashboard-designer.d.ts +1238 -0
- package/dist/dashboard-designer.d.ts.map +1 -0
- package/dist/data-management.d.ts +496 -0
- package/dist/data-management.d.ts.map +1 -0
- package/dist/data-pipeline.d.ts +1105 -0
- package/dist/data-pipeline.d.ts.map +1 -0
- package/dist/data-warehouse.d.ts +1097 -0
- package/dist/data-warehouse.d.ts.map +1 -0
- package/dist/dataset-management.d.ts +782 -0
- package/dist/dataset-management.d.ts.map +1 -0
- package/dist/db-adapters.d.ts +704 -0
- package/dist/db-adapters.d.ts.map +1 -0
- package/dist/db-admin.d.ts +699 -0
- package/dist/db-admin.d.ts.map +1 -0
- package/dist/db-designer.d.ts +366 -0
- package/dist/db-designer.d.ts.map +1 -0
- package/dist/debugger.d.ts +356 -0
- package/dist/debugger.d.ts.map +1 -0
- package/dist/device-management.d.ts +871 -0
- package/dist/device-management.d.ts.map +1 -0
- package/dist/distributed-tracing.d.ts +427 -0
- package/dist/distributed-tracing.d.ts.map +1 -0
- package/dist/dns-management.d.ts +215 -0
- package/dist/dns-management.d.ts.map +1 -0
- package/dist/download-manager.d.ts +271 -0
- package/dist/download-manager.d.ts.map +1 -0
- package/dist/download-torrent.d.ts +1062 -0
- package/dist/download-torrent.d.ts.map +1 -0
- package/dist/edge-computing.d.ts +720 -0
- package/dist/edge-computing.d.ts.map +1 -0
- package/dist/education.d.ts +1135 -0
- package/dist/education.d.ts.map +1 -0
- package/dist/email-template.d.ts +1141 -0
- package/dist/email-template.d.ts.map +1 -0
- package/dist/erp-enterprise.d.ts +1270 -0
- package/dist/erp-enterprise.d.ts.map +1 -0
- package/dist/form-builder.d.ts +1117 -0
- package/dist/form-builder.d.ts.map +1 -0
- package/dist/game-engine-advanced.d.ts +1049 -0
- package/dist/game-engine-advanced.d.ts.map +1 -0
- package/dist/git.d.ts +415 -0
- package/dist/git.d.ts.map +1 -0
- package/dist/hardware-integration.d.ts +966 -0
- package/dist/hardware-integration.d.ts.map +1 -0
- package/dist/iac.d.ts +318 -0
- package/dist/iac.d.ts.map +1 -0
- package/dist/icon-tools.d.ts +1023 -0
- package/dist/icon-tools.d.ts.map +1 -0
- package/dist/ide.d.ts +322 -0
- package/dist/ide.d.ts.map +1 -0
- package/dist/index.cjs +2 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +176 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.mjs +1887 -0
- package/dist/index.mjs.map +1 -0
- package/dist/integration-platform.d.ts +857 -0
- package/dist/integration-platform.d.ts.map +1 -0
- package/dist/kubernetes.d.ts +278 -0
- package/dist/kubernetes.d.ts.map +1 -0
- package/dist/life-management.d.ts +1132 -0
- package/dist/life-management.d.ts.map +1 -0
- package/dist/log-management.d.ts +473 -0
- package/dist/log-management.d.ts.map +1 -0
- package/dist/mathematics.d.ts +870 -0
- package/dist/mathematics.d.ts.map +1 -0
- package/dist/message-queue.d.ts +1006 -0
- package/dist/message-queue.d.ts.map +1 -0
- package/dist/metrics-dashboard.d.ts +596 -0
- package/dist/metrics-dashboard.d.ts.map +1 -0
- package/dist/mobile-components.d.ts +766 -0
- package/dist/mobile-components.d.ts.map +1 -0
- package/dist/model-deployment.d.ts +787 -0
- package/dist/model-deployment.d.ts.map +1 -0
- package/dist/model-registry.d.ts +740 -0
- package/dist/model-registry.d.ts.map +1 -0
- package/dist/model-training.d.ts +706 -0
- package/dist/model-training.d.ts.map +1 -0
- package/dist/network-config.d.ts +334 -0
- package/dist/network-config.d.ts.map +1 -0
- package/dist/network-monitoring.d.ts +291 -0
- package/dist/network-monitoring.d.ts.map +1 -0
- package/dist/pdf-tools.d.ts +1003 -0
- package/dist/pdf-tools.d.ts.map +1 -0
- package/dist/pipelines.d.ts +250 -0
- package/dist/pipelines.d.ts.map +1 -0
- package/dist/remote-desktop.d.ts +207 -0
- package/dist/remote-desktop.d.ts.map +1 -0
- package/dist/report-designer.d.ts +1153 -0
- package/dist/report-designer.d.ts.map +1 -0
- package/dist/scada-industrial.d.ts +848 -0
- package/dist/scada-industrial.d.ts.map +1 -0
- package/dist/scientific-research.d.ts +1149 -0
- package/dist/scientific-research.d.ts.map +1 -0
- package/dist/secret-management.d.ts +617 -0
- package/dist/secret-management.d.ts.map +1 -0
- package/dist/security-scanning.d.ts +714 -0
- package/dist/security-scanning.d.ts.map +1 -0
- package/dist/self-service-analytics.d.ts +1208 -0
- package/dist/self-service-analytics.d.ts.map +1 -0
- package/dist/sensor-dashboard.d.ts +845 -0
- package/dist/sensor-dashboard.d.ts.map +1 -0
- package/dist/server-management.d.ts +331 -0
- package/dist/server-management.d.ts.map +1 -0
- package/dist/smart-home.d.ts +861 -0
- package/dist/smart-home.d.ts.map +1 -0
- package/dist/spreadsheet.d.ts +1043 -0
- package/dist/spreadsheet.d.ts.map +1 -0
- package/dist/sql-editor.d.ts +402 -0
- package/dist/sql-editor.d.ts.map +1 -0
- package/dist/terminal.d.ts +245 -0
- package/dist/terminal.d.ts.map +1 -0
- package/dist/testing-qa.d.ts +1013 -0
- package/dist/testing-qa.d.ts.map +1 -0
- package/dist/torrent-client.d.ts +298 -0
- package/dist/torrent-client.d.ts.map +1 -0
- package/dist/traceless.d.ts +759 -0
- package/dist/traceless.d.ts.map +1 -0
- package/dist/virtual-machines.d.ts +199 -0
- package/dist/virtual-machines.d.ts.map +1 -0
- package/dist/visual-scripting.d.ts +381 -0
- package/dist/visual-scripting.d.ts.map +1 -0
- package/dist/word-processor.d.ts +1124 -0
- package/dist/word-processor.d.ts.map +1 -0
- package/dist/workspace.d.ts +333 -0
- package/dist/workspace.d.ts.map +1 -0
- package/package.json +62 -0
|
@@ -0,0 +1,787 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file model-deployment.ts
|
|
3
|
+
* @module @nice2dev/ui-tools
|
|
4
|
+
* @description PRO-18.4 — Model Deployment
|
|
5
|
+
*
|
|
6
|
+
* Types for ML model deployment: REST API serving, batch inference,
|
|
7
|
+
* real-time inference, edge deployment, scaling, traffic splitting.
|
|
8
|
+
*/
|
|
9
|
+
/** Deployment target */
|
|
10
|
+
export type DeploymentTarget = 'rest_api' | 'grpc' | 'batch' | 'streaming' | 'edge' | 'serverless' | 'embedded';
|
|
11
|
+
/** Deployment status */
|
|
12
|
+
export type MLDeploymentStatus = 'pending' | 'creating' | 'updating' | 'running' | 'scaling' | 'stopping' | 'stopped' | 'failed' | 'degraded';
|
|
13
|
+
/** Serving runtime */
|
|
14
|
+
export type ServingRuntime = 'triton' | 'tensorflow_serving' | 'torchserve' | 'onnx_runtime' | 'seldon' | 'kserve' | 'bentoml' | 'mlflow' | 'custom';
|
|
15
|
+
/** Instance type */
|
|
16
|
+
export type MLInstanceType = 'cpu_small' | 'cpu_medium' | 'cpu_large' | 'gpu_t4' | 'gpu_v100' | 'gpu_a100' | 'inf1' | 'inferentia' | 'custom';
|
|
17
|
+
/** ML deployment config */
|
|
18
|
+
export interface MLDeploymentConfig {
|
|
19
|
+
/** Theme */
|
|
20
|
+
theme?: DeploymentTheme;
|
|
21
|
+
/** Features */
|
|
22
|
+
features?: DeploymentFeatures;
|
|
23
|
+
/** Default serving config */
|
|
24
|
+
defaultServing?: ServingDefaults;
|
|
25
|
+
/** Monitoring config */
|
|
26
|
+
monitoring?: DeploymentMonitoringConfig;
|
|
27
|
+
}
|
|
28
|
+
/** Deployment theme */
|
|
29
|
+
export interface DeploymentTheme {
|
|
30
|
+
name?: string;
|
|
31
|
+
colors?: DeploymentColors;
|
|
32
|
+
}
|
|
33
|
+
/** Deployment colors */
|
|
34
|
+
export interface DeploymentColors {
|
|
35
|
+
running?: string;
|
|
36
|
+
stopped?: string;
|
|
37
|
+
failed?: string;
|
|
38
|
+
scaling?: string;
|
|
39
|
+
}
|
|
40
|
+
/** Deployment features */
|
|
41
|
+
export interface DeploymentFeatures {
|
|
42
|
+
restApi?: boolean;
|
|
43
|
+
batchInference?: boolean;
|
|
44
|
+
realTimeInference?: boolean;
|
|
45
|
+
edgeDeployment?: boolean;
|
|
46
|
+
autoScaling?: boolean;
|
|
47
|
+
trafficSplitting?: boolean;
|
|
48
|
+
canaryDeployment?: boolean;
|
|
49
|
+
loadTesting?: boolean;
|
|
50
|
+
}
|
|
51
|
+
/** Serving defaults */
|
|
52
|
+
export interface ServingDefaults {
|
|
53
|
+
runtime?: ServingRuntime;
|
|
54
|
+
instanceType?: MLInstanceType;
|
|
55
|
+
minReplicas?: number;
|
|
56
|
+
maxReplicas?: number;
|
|
57
|
+
timeout?: number;
|
|
58
|
+
}
|
|
59
|
+
/** Deployment monitoring config */
|
|
60
|
+
export interface DeploymentMonitoringConfig {
|
|
61
|
+
enabled?: boolean;
|
|
62
|
+
metrics?: string[];
|
|
63
|
+
alerts?: DeploymentAlertConfig[];
|
|
64
|
+
logging?: DeploymentLoggingConfig;
|
|
65
|
+
}
|
|
66
|
+
/** Deployment alert config */
|
|
67
|
+
export interface DeploymentAlertConfig {
|
|
68
|
+
metric: string;
|
|
69
|
+
condition: 'above' | 'below';
|
|
70
|
+
threshold: number;
|
|
71
|
+
duration?: number;
|
|
72
|
+
action?: string;
|
|
73
|
+
}
|
|
74
|
+
/** Deployment logging config */
|
|
75
|
+
export interface DeploymentLoggingConfig {
|
|
76
|
+
level?: 'debug' | 'info' | 'warning' | 'error';
|
|
77
|
+
logRequests?: boolean;
|
|
78
|
+
logResponses?: boolean;
|
|
79
|
+
sampleRate?: number;
|
|
80
|
+
}
|
|
81
|
+
/** Model deployment */
|
|
82
|
+
export interface ModelDeployment {
|
|
83
|
+
id: string;
|
|
84
|
+
name: string;
|
|
85
|
+
description?: string;
|
|
86
|
+
modelId: string;
|
|
87
|
+
modelVersion: string;
|
|
88
|
+
target: DeploymentTarget;
|
|
89
|
+
status: MLDeploymentStatus;
|
|
90
|
+
config: DeploymentConfiguration;
|
|
91
|
+
endpoint?: EndpointInfo;
|
|
92
|
+
metrics?: DeploymentMetrics;
|
|
93
|
+
replicas?: ReplicaInfo[];
|
|
94
|
+
events?: DeploymentEvent[];
|
|
95
|
+
createdAt: Date;
|
|
96
|
+
updatedAt?: Date;
|
|
97
|
+
createdBy?: string;
|
|
98
|
+
}
|
|
99
|
+
/** Deployment configuration */
|
|
100
|
+
export interface DeploymentConfiguration {
|
|
101
|
+
runtime: ServingRuntime;
|
|
102
|
+
instanceType: MLInstanceType;
|
|
103
|
+
compute?: ComputeConfiguration;
|
|
104
|
+
serving?: ServingConfiguration;
|
|
105
|
+
scaling?: ScalingConfiguration;
|
|
106
|
+
traffic?: TrafficConfiguration;
|
|
107
|
+
security?: SecurityConfiguration;
|
|
108
|
+
observability?: ObservabilityConfiguration;
|
|
109
|
+
}
|
|
110
|
+
/** Compute configuration */
|
|
111
|
+
export interface ComputeConfiguration {
|
|
112
|
+
cpu?: number;
|
|
113
|
+
memory?: number;
|
|
114
|
+
gpu?: number;
|
|
115
|
+
gpuType?: string;
|
|
116
|
+
accelerator?: AcceleratorConfig;
|
|
117
|
+
spot?: boolean;
|
|
118
|
+
preemptible?: boolean;
|
|
119
|
+
}
|
|
120
|
+
/** Accelerator config */
|
|
121
|
+
export interface AcceleratorConfig {
|
|
122
|
+
type: 'nvidia-gpu' | 'google-tpu' | 'aws-inferentia' | 'custom';
|
|
123
|
+
count: number;
|
|
124
|
+
memory?: number;
|
|
125
|
+
}
|
|
126
|
+
/** Serving configuration */
|
|
127
|
+
export interface ServingConfiguration {
|
|
128
|
+
modelPath?: string;
|
|
129
|
+
modelFormat?: string;
|
|
130
|
+
batchSize?: number;
|
|
131
|
+
maxBatchDelay?: number;
|
|
132
|
+
timeout?: number;
|
|
133
|
+
maxConcurrency?: number;
|
|
134
|
+
preprocessing?: PreprocessingConfig;
|
|
135
|
+
postprocessing?: PostprocessingConfig;
|
|
136
|
+
ensemble?: EnsembleConfig;
|
|
137
|
+
}
|
|
138
|
+
/** Preprocessing config */
|
|
139
|
+
export interface PreprocessingConfig {
|
|
140
|
+
enabled: boolean;
|
|
141
|
+
script?: string;
|
|
142
|
+
config?: Record<string, unknown>;
|
|
143
|
+
}
|
|
144
|
+
/** Postprocessing config */
|
|
145
|
+
export interface PostprocessingConfig {
|
|
146
|
+
enabled: boolean;
|
|
147
|
+
script?: string;
|
|
148
|
+
config?: Record<string, unknown>;
|
|
149
|
+
}
|
|
150
|
+
/** Ensemble config */
|
|
151
|
+
export interface EnsembleConfig {
|
|
152
|
+
enabled: boolean;
|
|
153
|
+
models: EnsembleMember[];
|
|
154
|
+
strategy: 'parallel' | 'sequential' | 'voting';
|
|
155
|
+
aggregation?: 'mean' | 'max' | 'voting' | 'custom';
|
|
156
|
+
}
|
|
157
|
+
/** Ensemble member */
|
|
158
|
+
export interface EnsembleMember {
|
|
159
|
+
name: string;
|
|
160
|
+
modelPath: string;
|
|
161
|
+
weight?: number;
|
|
162
|
+
version?: string;
|
|
163
|
+
}
|
|
164
|
+
/** Scaling configuration */
|
|
165
|
+
export interface ScalingConfiguration {
|
|
166
|
+
minReplicas: number;
|
|
167
|
+
maxReplicas: number;
|
|
168
|
+
targetConcurrency?: number;
|
|
169
|
+
targetLatency?: number;
|
|
170
|
+
targetCpuUtilization?: number;
|
|
171
|
+
targetMemoryUtilization?: number;
|
|
172
|
+
scaleDownDelay?: number;
|
|
173
|
+
scaleUpRate?: number;
|
|
174
|
+
scaleDownRate?: number;
|
|
175
|
+
}
|
|
176
|
+
/** Traffic configuration */
|
|
177
|
+
export interface TrafficConfiguration {
|
|
178
|
+
type: 'all' | 'canary' | 'shadow' | 'ab_test';
|
|
179
|
+
routes?: TrafficRoute[];
|
|
180
|
+
canary?: CanaryConfig;
|
|
181
|
+
shadow?: ShadowTrafficConfig;
|
|
182
|
+
}
|
|
183
|
+
/** Traffic route */
|
|
184
|
+
export interface TrafficRoute {
|
|
185
|
+
version: string;
|
|
186
|
+
weight: number;
|
|
187
|
+
headers?: Record<string, string>;
|
|
188
|
+
}
|
|
189
|
+
/** Canary config */
|
|
190
|
+
export interface CanaryConfig {
|
|
191
|
+
steps: CanaryStep[];
|
|
192
|
+
analysis?: CanaryAnalysis;
|
|
193
|
+
rollbackThreshold?: number;
|
|
194
|
+
}
|
|
195
|
+
/** Canary step */
|
|
196
|
+
export interface CanaryStep {
|
|
197
|
+
weight: number;
|
|
198
|
+
duration: number;
|
|
199
|
+
metrics?: string[];
|
|
200
|
+
}
|
|
201
|
+
/** Canary analysis */
|
|
202
|
+
export interface CanaryAnalysis {
|
|
203
|
+
metrics: CanaryMetric[];
|
|
204
|
+
interval?: number;
|
|
205
|
+
threshold?: number;
|
|
206
|
+
}
|
|
207
|
+
/** Canary metric */
|
|
208
|
+
export interface CanaryMetric {
|
|
209
|
+
name: string;
|
|
210
|
+
threshold: number;
|
|
211
|
+
operator: 'lt' | 'gt' | 'lte' | 'gte';
|
|
212
|
+
}
|
|
213
|
+
/** Shadow traffic config */
|
|
214
|
+
export interface ShadowTrafficConfig {
|
|
215
|
+
percentage: number;
|
|
216
|
+
targetDeployment: string;
|
|
217
|
+
compareMetrics?: string[];
|
|
218
|
+
}
|
|
219
|
+
/** Security configuration */
|
|
220
|
+
export interface SecurityConfiguration {
|
|
221
|
+
authentication?: AuthenticationConfig;
|
|
222
|
+
authorization?: AuthorizationConfig;
|
|
223
|
+
encryption?: EncryptionConfig;
|
|
224
|
+
rateLimit?: RateLimitConfig;
|
|
225
|
+
}
|
|
226
|
+
/** Authentication config */
|
|
227
|
+
export interface AuthenticationConfig {
|
|
228
|
+
enabled: boolean;
|
|
229
|
+
type: 'api_key' | 'jwt' | 'oauth2' | 'mtls' | 'custom';
|
|
230
|
+
config?: Record<string, unknown>;
|
|
231
|
+
}
|
|
232
|
+
/** Authorization config */
|
|
233
|
+
export interface AuthorizationConfig {
|
|
234
|
+
enabled: boolean;
|
|
235
|
+
type: 'rbac' | 'abac' | 'custom';
|
|
236
|
+
policies?: AuthorizationPolicy[];
|
|
237
|
+
}
|
|
238
|
+
/** Authorization policy */
|
|
239
|
+
export interface AuthorizationPolicy {
|
|
240
|
+
name: string;
|
|
241
|
+
subjects?: string[];
|
|
242
|
+
resources?: string[];
|
|
243
|
+
actions?: string[];
|
|
244
|
+
conditions?: Record<string, unknown>;
|
|
245
|
+
}
|
|
246
|
+
/** Encryption config */
|
|
247
|
+
export interface EncryptionConfig {
|
|
248
|
+
inTransit: boolean;
|
|
249
|
+
atRest?: boolean;
|
|
250
|
+
kmsKey?: string;
|
|
251
|
+
}
|
|
252
|
+
/** Rate limit config */
|
|
253
|
+
export interface RateLimitConfig {
|
|
254
|
+
enabled: boolean;
|
|
255
|
+
requestsPerSecond?: number;
|
|
256
|
+
requestsPerMinute?: number;
|
|
257
|
+
burstSize?: number;
|
|
258
|
+
}
|
|
259
|
+
/** Observability configuration */
|
|
260
|
+
export interface ObservabilityConfiguration {
|
|
261
|
+
metrics?: MetricsConfig;
|
|
262
|
+
logging?: LoggingConfig;
|
|
263
|
+
tracing?: TracingConfig;
|
|
264
|
+
}
|
|
265
|
+
/** Metrics config */
|
|
266
|
+
export interface MetricsConfig {
|
|
267
|
+
enabled: boolean;
|
|
268
|
+
exporters?: MetricsExporter[];
|
|
269
|
+
customMetrics?: CustomMetric[];
|
|
270
|
+
}
|
|
271
|
+
/** Metrics exporter */
|
|
272
|
+
export interface MetricsExporter {
|
|
273
|
+
type: 'prometheus' | 'cloudwatch' | 'datadog' | 'custom';
|
|
274
|
+
config?: Record<string, unknown>;
|
|
275
|
+
}
|
|
276
|
+
/** Custom metric */
|
|
277
|
+
export interface CustomMetric {
|
|
278
|
+
name: string;
|
|
279
|
+
type: 'counter' | 'gauge' | 'histogram';
|
|
280
|
+
labels?: string[];
|
|
281
|
+
}
|
|
282
|
+
/** Logging config */
|
|
283
|
+
export interface LoggingConfig {
|
|
284
|
+
enabled: boolean;
|
|
285
|
+
level: 'debug' | 'info' | 'warning' | 'error';
|
|
286
|
+
format?: 'json' | 'text';
|
|
287
|
+
destination?: string;
|
|
288
|
+
}
|
|
289
|
+
/** Tracing config */
|
|
290
|
+
export interface TracingConfig {
|
|
291
|
+
enabled: boolean;
|
|
292
|
+
sampleRate?: number;
|
|
293
|
+
exporter?: 'jaeger' | 'zipkin' | 'otlp' | 'xray';
|
|
294
|
+
}
|
|
295
|
+
/** Endpoint info */
|
|
296
|
+
export interface EndpointInfo {
|
|
297
|
+
url: string;
|
|
298
|
+
protocol: 'http' | 'https' | 'grpc';
|
|
299
|
+
paths?: EndpointPath[];
|
|
300
|
+
healthCheck?: string;
|
|
301
|
+
documentation?: string;
|
|
302
|
+
schema?: EndpointSchema;
|
|
303
|
+
}
|
|
304
|
+
/** Endpoint path */
|
|
305
|
+
export interface EndpointPath {
|
|
306
|
+
path: string;
|
|
307
|
+
method: 'GET' | 'POST' | 'PUT' | 'DELETE';
|
|
308
|
+
description?: string;
|
|
309
|
+
}
|
|
310
|
+
/** Endpoint schema */
|
|
311
|
+
export interface EndpointSchema {
|
|
312
|
+
input: SchemaDefinition;
|
|
313
|
+
output: SchemaDefinition;
|
|
314
|
+
}
|
|
315
|
+
/** Schema definition */
|
|
316
|
+
export interface SchemaDefinition {
|
|
317
|
+
type: string;
|
|
318
|
+
properties?: Record<string, PropertyDefinition>;
|
|
319
|
+
required?: string[];
|
|
320
|
+
example?: unknown;
|
|
321
|
+
}
|
|
322
|
+
/** Property definition */
|
|
323
|
+
export interface PropertyDefinition {
|
|
324
|
+
type: string;
|
|
325
|
+
description?: string;
|
|
326
|
+
format?: string;
|
|
327
|
+
items?: PropertyDefinition;
|
|
328
|
+
default?: unknown;
|
|
329
|
+
}
|
|
330
|
+
/** Deployment metrics */
|
|
331
|
+
export interface DeploymentMetrics {
|
|
332
|
+
requests: RequestMetrics;
|
|
333
|
+
latency: LatencyMetrics;
|
|
334
|
+
throughput: ThroughputMetrics;
|
|
335
|
+
errors: ErrorMetrics;
|
|
336
|
+
resources: ResourceMetrics;
|
|
337
|
+
model?: ModelInferenceMetrics;
|
|
338
|
+
}
|
|
339
|
+
/** Request metrics */
|
|
340
|
+
export interface RequestMetrics {
|
|
341
|
+
total: number;
|
|
342
|
+
successful: number;
|
|
343
|
+
failed: number;
|
|
344
|
+
rate: number;
|
|
345
|
+
timeline?: TimelineData;
|
|
346
|
+
}
|
|
347
|
+
/** Latency metrics */
|
|
348
|
+
export interface LatencyMetrics {
|
|
349
|
+
mean: number;
|
|
350
|
+
p50: number;
|
|
351
|
+
p90: number;
|
|
352
|
+
p95: number;
|
|
353
|
+
p99: number;
|
|
354
|
+
max: number;
|
|
355
|
+
timeline?: TimelineData;
|
|
356
|
+
}
|
|
357
|
+
/** Throughput metrics */
|
|
358
|
+
export interface ThroughputMetrics {
|
|
359
|
+
requestsPerSecond: number;
|
|
360
|
+
batchesPerSecond?: number;
|
|
361
|
+
samplesPerSecond?: number;
|
|
362
|
+
timeline?: TimelineData;
|
|
363
|
+
}
|
|
364
|
+
/** Error metrics */
|
|
365
|
+
export interface ErrorMetrics {
|
|
366
|
+
rate: number;
|
|
367
|
+
byType: Record<string, number>;
|
|
368
|
+
byCode: Record<number, number>;
|
|
369
|
+
recent?: RecentError[];
|
|
370
|
+
}
|
|
371
|
+
/** Recent error */
|
|
372
|
+
export interface RecentError {
|
|
373
|
+
timestamp: Date;
|
|
374
|
+
code: number;
|
|
375
|
+
message: string;
|
|
376
|
+
count: number;
|
|
377
|
+
}
|
|
378
|
+
/** Resource metrics */
|
|
379
|
+
export interface ResourceMetrics {
|
|
380
|
+
cpu: UsageMetrics;
|
|
381
|
+
memory: UsageMetrics;
|
|
382
|
+
gpu?: GPUUsageMetrics;
|
|
383
|
+
network?: NetworkUsageMetrics;
|
|
384
|
+
}
|
|
385
|
+
/** Usage metrics */
|
|
386
|
+
export interface UsageMetrics {
|
|
387
|
+
current: number;
|
|
388
|
+
average: number;
|
|
389
|
+
peak: number;
|
|
390
|
+
limit?: number;
|
|
391
|
+
timeline?: TimelineData;
|
|
392
|
+
}
|
|
393
|
+
/** GPU usage metrics */
|
|
394
|
+
export interface GPUUsageMetrics {
|
|
395
|
+
utilization: number;
|
|
396
|
+
memory: number;
|
|
397
|
+
temperature?: number;
|
|
398
|
+
power?: number;
|
|
399
|
+
}
|
|
400
|
+
/** Network usage metrics */
|
|
401
|
+
export interface NetworkUsageMetrics {
|
|
402
|
+
inbound: number;
|
|
403
|
+
outbound: number;
|
|
404
|
+
}
|
|
405
|
+
/** Model inference metrics */
|
|
406
|
+
export interface ModelInferenceMetrics {
|
|
407
|
+
inferenceTime: LatencyMetrics;
|
|
408
|
+
preprocessTime?: LatencyMetrics;
|
|
409
|
+
postprocessTime?: LatencyMetrics;
|
|
410
|
+
batchSize?: DistributionMetrics;
|
|
411
|
+
}
|
|
412
|
+
/** Distribution metrics */
|
|
413
|
+
export interface DistributionMetrics {
|
|
414
|
+
mean: number;
|
|
415
|
+
std: number;
|
|
416
|
+
min: number;
|
|
417
|
+
max: number;
|
|
418
|
+
histogram?: HistogramBin[];
|
|
419
|
+
}
|
|
420
|
+
/** Histogram bin */
|
|
421
|
+
export interface HistogramBin {
|
|
422
|
+
low: number;
|
|
423
|
+
high: number;
|
|
424
|
+
count: number;
|
|
425
|
+
}
|
|
426
|
+
/** Timeline data */
|
|
427
|
+
export interface TimelineData {
|
|
428
|
+
timestamps: Date[];
|
|
429
|
+
values: number[];
|
|
430
|
+
}
|
|
431
|
+
/** Replica info */
|
|
432
|
+
export interface ReplicaInfo {
|
|
433
|
+
id: string;
|
|
434
|
+
status: ReplicaStatus;
|
|
435
|
+
host?: string;
|
|
436
|
+
port?: number;
|
|
437
|
+
metrics?: ReplicaMetrics;
|
|
438
|
+
startTime?: Date;
|
|
439
|
+
lastHeartbeat?: Date;
|
|
440
|
+
}
|
|
441
|
+
/** Replica status */
|
|
442
|
+
export type ReplicaStatus = 'pending' | 'starting' | 'ready' | 'not_ready' | 'terminating' | 'failed';
|
|
443
|
+
/** Replica metrics */
|
|
444
|
+
export interface ReplicaMetrics {
|
|
445
|
+
requestCount: number;
|
|
446
|
+
errorCount: number;
|
|
447
|
+
latency: number;
|
|
448
|
+
cpu: number;
|
|
449
|
+
memory: number;
|
|
450
|
+
}
|
|
451
|
+
/** Deployment event */
|
|
452
|
+
export interface DeploymentEvent {
|
|
453
|
+
id: string;
|
|
454
|
+
timestamp: Date;
|
|
455
|
+
type: DeploymentEventType;
|
|
456
|
+
message: string;
|
|
457
|
+
severity: 'info' | 'warning' | 'error';
|
|
458
|
+
metadata?: Record<string, unknown>;
|
|
459
|
+
}
|
|
460
|
+
/** Deployment event type */
|
|
461
|
+
export type DeploymentEventType = 'created' | 'updated' | 'scaled' | 'rolled_back' | 'traffic_shifted' | 'health_check_failed' | 'health_check_passed' | 'replica_started' | 'replica_stopped' | 'error' | 'warning';
|
|
462
|
+
/** Batch inference job */
|
|
463
|
+
export interface BatchInferenceJob {
|
|
464
|
+
id: string;
|
|
465
|
+
name: string;
|
|
466
|
+
modelId: string;
|
|
467
|
+
modelVersion: string;
|
|
468
|
+
status: BatchJobStatus;
|
|
469
|
+
config: BatchJobConfig;
|
|
470
|
+
progress?: BatchJobProgress;
|
|
471
|
+
result?: BatchJobResult;
|
|
472
|
+
createdAt: Date;
|
|
473
|
+
startedAt?: Date;
|
|
474
|
+
completedAt?: Date;
|
|
475
|
+
}
|
|
476
|
+
/** Batch job status */
|
|
477
|
+
export type BatchJobStatus = 'pending' | 'preparing' | 'running' | 'completing' | 'completed' | 'failed' | 'cancelled';
|
|
478
|
+
/** Batch job config */
|
|
479
|
+
export interface BatchJobConfig {
|
|
480
|
+
input: BatchInput;
|
|
481
|
+
output: BatchOutput;
|
|
482
|
+
compute: BatchCompute;
|
|
483
|
+
options?: BatchOptions;
|
|
484
|
+
}
|
|
485
|
+
/** Batch input */
|
|
486
|
+
export interface BatchInput {
|
|
487
|
+
source: 's3' | 'gcs' | 'azure' | 'local';
|
|
488
|
+
path: string;
|
|
489
|
+
format: 'csv' | 'json' | 'jsonl' | 'parquet' | 'tfrecord';
|
|
490
|
+
schema?: SchemaDefinition;
|
|
491
|
+
}
|
|
492
|
+
/** Batch output */
|
|
493
|
+
export interface BatchOutput {
|
|
494
|
+
destination: 's3' | 'gcs' | 'azure' | 'local';
|
|
495
|
+
path: string;
|
|
496
|
+
format: 'csv' | 'json' | 'jsonl' | 'parquet';
|
|
497
|
+
includeInput?: boolean;
|
|
498
|
+
}
|
|
499
|
+
/** Batch compute */
|
|
500
|
+
export interface BatchCompute {
|
|
501
|
+
instanceType: MLInstanceType;
|
|
502
|
+
instanceCount: number;
|
|
503
|
+
maxRuntime?: number;
|
|
504
|
+
}
|
|
505
|
+
/** Batch options */
|
|
506
|
+
export interface BatchOptions {
|
|
507
|
+
batchSize?: number;
|
|
508
|
+
maxConcurrency?: number;
|
|
509
|
+
retries?: number;
|
|
510
|
+
failOnError?: boolean;
|
|
511
|
+
shuffle?: boolean;
|
|
512
|
+
}
|
|
513
|
+
/** Batch job progress */
|
|
514
|
+
export interface BatchJobProgress {
|
|
515
|
+
totalRecords: number;
|
|
516
|
+
processedRecords: number;
|
|
517
|
+
failedRecords: number;
|
|
518
|
+
percentage: number;
|
|
519
|
+
estimatedTimeRemaining?: number;
|
|
520
|
+
}
|
|
521
|
+
/** Batch job result */
|
|
522
|
+
export interface BatchJobResult {
|
|
523
|
+
recordsProcessed: number;
|
|
524
|
+
recordsFailed: number;
|
|
525
|
+
outputPath: string;
|
|
526
|
+
outputSize: number;
|
|
527
|
+
duration: number;
|
|
528
|
+
errors?: BatchError[];
|
|
529
|
+
}
|
|
530
|
+
/** Batch error */
|
|
531
|
+
export interface BatchError {
|
|
532
|
+
recordIndex?: number;
|
|
533
|
+
message: string;
|
|
534
|
+
count: number;
|
|
535
|
+
}
|
|
536
|
+
/** Edge model deployment */
|
|
537
|
+
export interface EdgeModelDeployment {
|
|
538
|
+
id: string;
|
|
539
|
+
name: string;
|
|
540
|
+
modelId: string;
|
|
541
|
+
modelVersion: string;
|
|
542
|
+
targetFormat: EdgeModelFormat;
|
|
543
|
+
status: EdgeDeploymentStatus;
|
|
544
|
+
config: EdgeDeploymentConfig;
|
|
545
|
+
devices?: EdgeDeviceDeployment[];
|
|
546
|
+
createdAt: Date;
|
|
547
|
+
}
|
|
548
|
+
/** Edge model format */
|
|
549
|
+
export type EdgeModelFormat = 'tflite' | 'coreml' | 'onnx' | 'openvino' | 'tensorrt' | 'nnapi' | 'edgetpu' | 'custom';
|
|
550
|
+
/** Edge deployment status */
|
|
551
|
+
export type EdgeDeploymentStatus = 'converting' | 'optimizing' | 'ready' | 'deploying' | 'deployed' | 'failed';
|
|
552
|
+
/** Edge deployment config */
|
|
553
|
+
export interface EdgeDeploymentConfig {
|
|
554
|
+
optimization: EdgeOptimizationConfig;
|
|
555
|
+
targets: EdgeTarget[];
|
|
556
|
+
updatePolicy?: EdgeUpdatePolicy;
|
|
557
|
+
}
|
|
558
|
+
/** Edge optimization config */
|
|
559
|
+
export interface EdgeOptimizationConfig {
|
|
560
|
+
quantization?: QuantizationConfig;
|
|
561
|
+
pruning?: PruningConfig;
|
|
562
|
+
compilation?: CompilationConfig;
|
|
563
|
+
}
|
|
564
|
+
/** Quantization config */
|
|
565
|
+
export interface QuantizationConfig {
|
|
566
|
+
enabled: boolean;
|
|
567
|
+
type: 'int8' | 'fp16' | 'dynamic' | 'static';
|
|
568
|
+
calibrationData?: string;
|
|
569
|
+
}
|
|
570
|
+
/** Pruning config */
|
|
571
|
+
export interface PruningConfig {
|
|
572
|
+
enabled: boolean;
|
|
573
|
+
sparsity: number;
|
|
574
|
+
method: 'magnitude' | 'structured' | 'movement';
|
|
575
|
+
}
|
|
576
|
+
/** Compilation config */
|
|
577
|
+
export interface CompilationConfig {
|
|
578
|
+
enabled: boolean;
|
|
579
|
+
target?: string;
|
|
580
|
+
optimizationLevel?: number;
|
|
581
|
+
}
|
|
582
|
+
/** Edge target */
|
|
583
|
+
export interface EdgeTarget {
|
|
584
|
+
platform: 'android' | 'ios' | 'linux' | 'windows' | 'rtos' | 'mcu';
|
|
585
|
+
architecture: 'arm64' | 'armv7' | 'x86_64' | 'x86' | 'custom';
|
|
586
|
+
accelerator?: 'gpu' | 'npu' | 'dsp' | 'tpu' | 'none';
|
|
587
|
+
}
|
|
588
|
+
/** Edge update policy */
|
|
589
|
+
export interface EdgeUpdatePolicy {
|
|
590
|
+
type: 'manual' | 'automatic' | 'scheduled';
|
|
591
|
+
schedule?: string;
|
|
592
|
+
rolloutStrategy?: 'all' | 'canary' | 'staged';
|
|
593
|
+
rollbackOnFailure?: boolean;
|
|
594
|
+
}
|
|
595
|
+
/** Edge device deployment */
|
|
596
|
+
export interface EdgeDeviceDeployment {
|
|
597
|
+
deviceId: string;
|
|
598
|
+
deviceName?: string;
|
|
599
|
+
status: 'pending' | 'downloading' | 'installing' | 'running' | 'failed';
|
|
600
|
+
version: string;
|
|
601
|
+
lastUpdate?: Date;
|
|
602
|
+
metrics?: EdgeDeviceMetrics;
|
|
603
|
+
}
|
|
604
|
+
/** Edge device metrics */
|
|
605
|
+
export interface EdgeDeviceMetrics {
|
|
606
|
+
inferenceCount: number;
|
|
607
|
+
averageLatency: number;
|
|
608
|
+
errorRate: number;
|
|
609
|
+
lastInference?: Date;
|
|
610
|
+
}
|
|
611
|
+
/** Load test */
|
|
612
|
+
export interface MLLoadTest {
|
|
613
|
+
id: string;
|
|
614
|
+
name: string;
|
|
615
|
+
deploymentId: string;
|
|
616
|
+
status: LoadTestStatus;
|
|
617
|
+
config: LoadTestConfig;
|
|
618
|
+
results?: LoadTestResults;
|
|
619
|
+
createdAt: Date;
|
|
620
|
+
startedAt?: Date;
|
|
621
|
+
completedAt?: Date;
|
|
622
|
+
}
|
|
623
|
+
/** Load test status */
|
|
624
|
+
export type LoadTestStatus = 'pending' | 'running' | 'completed' | 'failed' | 'cancelled';
|
|
625
|
+
/** Load test config */
|
|
626
|
+
export interface LoadTestConfig {
|
|
627
|
+
duration: number;
|
|
628
|
+
rampUp?: number;
|
|
629
|
+
concurrency: ConcurrencyConfig;
|
|
630
|
+
requests: LoadTestRequests;
|
|
631
|
+
thresholds?: LoadTestThreshold[];
|
|
632
|
+
}
|
|
633
|
+
/** Concurrency config */
|
|
634
|
+
export interface ConcurrencyConfig {
|
|
635
|
+
type: 'constant' | 'ramp' | 'step' | 'spike';
|
|
636
|
+
users: number;
|
|
637
|
+
maxUsers?: number;
|
|
638
|
+
stepSize?: number;
|
|
639
|
+
stepDuration?: number;
|
|
640
|
+
}
|
|
641
|
+
/** Load test requests */
|
|
642
|
+
export interface LoadTestRequests {
|
|
643
|
+
endpoint: string;
|
|
644
|
+
method: 'POST' | 'GET';
|
|
645
|
+
payload?: unknown;
|
|
646
|
+
payloadFile?: string;
|
|
647
|
+
headers?: Record<string, string>;
|
|
648
|
+
}
|
|
649
|
+
/** Load test threshold */
|
|
650
|
+
export interface LoadTestThreshold {
|
|
651
|
+
metric: 'latency_p95' | 'latency_p99' | 'error_rate' | 'throughput';
|
|
652
|
+
operator: 'lt' | 'gt' | 'lte' | 'gte';
|
|
653
|
+
value: number;
|
|
654
|
+
}
|
|
655
|
+
/** Load test results */
|
|
656
|
+
export interface LoadTestResults {
|
|
657
|
+
summary: LoadTestSummary;
|
|
658
|
+
timeline: LoadTestTimeline;
|
|
659
|
+
latencyDistribution: LatencyDistribution;
|
|
660
|
+
errorAnalysis?: ErrorAnalysis;
|
|
661
|
+
passed: boolean;
|
|
662
|
+
}
|
|
663
|
+
/** Load test summary */
|
|
664
|
+
export interface LoadTestSummary {
|
|
665
|
+
totalRequests: number;
|
|
666
|
+
successfulRequests: number;
|
|
667
|
+
failedRequests: number;
|
|
668
|
+
requestsPerSecond: number;
|
|
669
|
+
latencyMean: number;
|
|
670
|
+
latencyP50: number;
|
|
671
|
+
latencyP95: number;
|
|
672
|
+
latencyP99: number;
|
|
673
|
+
errorRate: number;
|
|
674
|
+
}
|
|
675
|
+
/** Load test timeline */
|
|
676
|
+
export interface LoadTestTimeline {
|
|
677
|
+
timestamps: Date[];
|
|
678
|
+
requests: number[];
|
|
679
|
+
latency: number[];
|
|
680
|
+
errors: number[];
|
|
681
|
+
concurrency: number[];
|
|
682
|
+
}
|
|
683
|
+
/** Latency distribution */
|
|
684
|
+
export interface LatencyDistribution {
|
|
685
|
+
buckets: number[];
|
|
686
|
+
counts: number[];
|
|
687
|
+
percentiles: Record<number, number>;
|
|
688
|
+
}
|
|
689
|
+
/** Error analysis */
|
|
690
|
+
export interface ErrorAnalysis {
|
|
691
|
+
byType: Record<string, number>;
|
|
692
|
+
byCode: Record<number, number>;
|
|
693
|
+
samples: ErrorSample[];
|
|
694
|
+
}
|
|
695
|
+
/** Error sample */
|
|
696
|
+
export interface ErrorSample {
|
|
697
|
+
timestamp: Date;
|
|
698
|
+
code: number;
|
|
699
|
+
message: string;
|
|
700
|
+
request?: unknown;
|
|
701
|
+
}
|
|
702
|
+
/** Triton config */
|
|
703
|
+
export interface TritonConfig {
|
|
704
|
+
modelRepository: string;
|
|
705
|
+
strictModelConfig?: boolean;
|
|
706
|
+
backends?: TritonBackend[];
|
|
707
|
+
httpPort?: number;
|
|
708
|
+
grpcPort?: number;
|
|
709
|
+
metricsPort?: number;
|
|
710
|
+
optimization?: TritonOptimization;
|
|
711
|
+
}
|
|
712
|
+
/** Triton backend */
|
|
713
|
+
export interface TritonBackend {
|
|
714
|
+
name: string;
|
|
715
|
+
version?: string;
|
|
716
|
+
platforms?: string[];
|
|
717
|
+
}
|
|
718
|
+
/** Triton optimization */
|
|
719
|
+
export interface TritonOptimization {
|
|
720
|
+
dynamicBatching?: DynamicBatchingConfig;
|
|
721
|
+
instanceGroup?: InstanceGroupConfig[];
|
|
722
|
+
tensorRT?: TensorRTConfig;
|
|
723
|
+
}
|
|
724
|
+
/** Dynamic batching config */
|
|
725
|
+
export interface DynamicBatchingConfig {
|
|
726
|
+
preferredBatchSize?: number[];
|
|
727
|
+
maxQueueDelayMicroseconds?: number;
|
|
728
|
+
}
|
|
729
|
+
/** Instance group config */
|
|
730
|
+
export interface InstanceGroupConfig {
|
|
731
|
+
count: number;
|
|
732
|
+
kind: 'cpu' | 'gpu';
|
|
733
|
+
gpus?: number[];
|
|
734
|
+
}
|
|
735
|
+
/** TensorRT config */
|
|
736
|
+
export interface TensorRTConfig {
|
|
737
|
+
enabled: boolean;
|
|
738
|
+
precision: 'fp32' | 'fp16' | 'int8';
|
|
739
|
+
maxWorkspaceSize?: number;
|
|
740
|
+
}
|
|
741
|
+
/** TensorFlow Serving config */
|
|
742
|
+
export interface TFServingConfig {
|
|
743
|
+
modelBasePath: string;
|
|
744
|
+
modelName: string;
|
|
745
|
+
restPort?: number;
|
|
746
|
+
grpcPort?: number;
|
|
747
|
+
batching?: TFBatchingConfig;
|
|
748
|
+
}
|
|
749
|
+
/** TF batching config */
|
|
750
|
+
export interface TFBatchingConfig {
|
|
751
|
+
maxBatchSize: number;
|
|
752
|
+
batchTimeoutMicros: number;
|
|
753
|
+
numBatchThreads?: number;
|
|
754
|
+
}
|
|
755
|
+
/** TorchServe config */
|
|
756
|
+
export interface TorchServeConfig {
|
|
757
|
+
modelStore: string;
|
|
758
|
+
models?: TorchServeModel[];
|
|
759
|
+
inferencePort?: number;
|
|
760
|
+
managementPort?: number;
|
|
761
|
+
metricsPort?: number;
|
|
762
|
+
}
|
|
763
|
+
/** TorchServe model */
|
|
764
|
+
export interface TorchServeModel {
|
|
765
|
+
modelName: string;
|
|
766
|
+
version?: string;
|
|
767
|
+
minWorkers?: number;
|
|
768
|
+
maxWorkers?: number;
|
|
769
|
+
batchSize?: number;
|
|
770
|
+
maxBatchDelay?: number;
|
|
771
|
+
}
|
|
772
|
+
/** ONNX Runtime config */
|
|
773
|
+
export interface ONNXRuntimeConfig {
|
|
774
|
+
modelPath: string;
|
|
775
|
+
providers?: ONNXProvider[];
|
|
776
|
+
sessionOptions?: ONNXSessionOptions;
|
|
777
|
+
}
|
|
778
|
+
/** ONNX provider */
|
|
779
|
+
export type ONNXProvider = 'CPUExecutionProvider' | 'CUDAExecutionProvider' | 'TensorrtExecutionProvider' | 'OpenVINOExecutionProvider' | 'CoreMLExecutionProvider';
|
|
780
|
+
/** ONNX session options */
|
|
781
|
+
export interface ONNXSessionOptions {
|
|
782
|
+
intraOpNumThreads?: number;
|
|
783
|
+
interOpNumThreads?: number;
|
|
784
|
+
graphOptimizationLevel?: 'disabled' | 'basic' | 'extended' | 'all';
|
|
785
|
+
executionMode?: 'sequential' | 'parallel';
|
|
786
|
+
}
|
|
787
|
+
//# sourceMappingURL=model-deployment.d.ts.map
|