@bedolla/enrivision 0.1.1 → 0.1.3

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.
@@ -2,8 +2,9 @@
2
2
  * ANALYZE MEDIA TOOL
3
3
  *
4
4
  * Implements the `analyze_media` MCP tool:
5
- * - Validates local file path
6
- * - Streams the file to EnriProxy via resumable uploads
5
+ * - Validates local file paths or http(s) URLs
6
+ * - Materializes URL inputs via bounded downloads (temporary, owned cleanup)
7
+ * - Streams the bytes to EnriProxy via resumable uploads
7
8
  * - Triggers server-side analysis and returns text-only results
8
9
  *
9
10
  * @module tools/AnalyzeMediaTool
@@ -15,6 +16,7 @@ import { randomUUID } from "node:crypto";
15
16
  import { lookup as mimeLookup } from "mime-types";
16
17
  import { EnriProxyHttpError } from "../client/EnriProxyClient.js";
17
18
  import { assertHttpUrl, assertNonEmptyString, assertObject, optionalBoolean, optionalInt, optionalNumber, optionalString } from "../shared/validation.js";
19
+ import { MediaUrlFetcher } from "../shared/mediaUrlFetcher.js";
18
20
  import { computeTarSizeBytes, TarStream } from "../shared/tar.js";
19
21
  /**
20
22
  * Content type for EnriVision media-set archives (tar, no compression).
@@ -25,20 +27,26 @@ const ENRIVISION_MEDIA_SET_TAR_CONTENT_TYPE = "application/vnd.enrivision.media-
25
27
  */
26
28
  const ENRIVISION_MEDIA_SET_TAR_MANIFEST_NAME = "manifest.json";
27
29
  /**
28
- * MCP tool that uploads and analyzes local media.
30
+ * MCP tool that uploads and analyzes local or http(s) URL media.
29
31
  */
30
32
  export class AnalyzeMediaTool {
31
33
  /**
32
34
  * Tool dependencies.
33
35
  */
34
36
  deps;
37
+ /**
38
+ * Bounded http(s) media fetcher used when `path`/`paths` carry URLs.
39
+ */
40
+ urlFetcher;
35
41
  /**
36
42
  * Creates a new {@link AnalyzeMediaTool}.
37
43
  *
38
44
  * @param deps - Tool dependencies
45
+ * @param urlFetcher - Optional URL fetcher override for tests
39
46
  */
40
- constructor(deps) {
47
+ constructor(deps, urlFetcher = new MediaUrlFetcher()) {
41
48
  this.deps = deps;
49
+ this.urlFetcher = urlFetcher;
42
50
  }
43
51
  /**
44
52
  * Validates raw MCP tool arguments.
@@ -50,14 +58,14 @@ export class AnalyzeMediaTool {
50
58
  const obj = assertObject(raw, "arguments");
51
59
  const pathRaw = typeof obj["path"] === "string" ? obj["path"].trim() : "";
52
60
  const path = pathRaw ? pathRaw : undefined;
53
- if (path && !isAbsolute(path)) {
54
- throw new Error("path must be an absolute file path.");
61
+ if (path && !isAbsolute(path) && !MediaUrlFetcher.isHttpUrl(path)) {
62
+ throw new Error("path debe ser una ruta de archivo absoluta o una URL http(s).");
55
63
  }
56
64
  const pathsRaw = obj["paths"];
57
65
  let paths;
58
66
  if (typeof pathsRaw !== "undefined") {
59
67
  if (!Array.isArray(pathsRaw)) {
60
- throw new Error("paths must be an array of absolute file paths.");
68
+ throw new Error("paths debe ser un arreglo de rutas de archivo absolutas.");
61
69
  }
62
70
  const out = [];
63
71
  for (const item of pathsRaw) {
@@ -65,8 +73,8 @@ export class AnalyzeMediaTool {
65
73
  continue;
66
74
  }
67
75
  const p = item.trim();
68
- if (!isAbsolute(p)) {
69
- throw new Error("paths must contain only absolute file paths.");
76
+ if (!isAbsolute(p) && !MediaUrlFetcher.isHttpUrl(p)) {
77
+ throw new Error("paths debe contener sólo rutas de archivo absolutas o URLs http(s).");
70
78
  }
71
79
  out.push(p);
72
80
  }
@@ -75,7 +83,7 @@ export class AnalyzeMediaTool {
75
83
  }
76
84
  }
77
85
  if (!path && (!paths || paths.length === 0)) {
78
- throw new Error("Provide either 'path' or 'paths'.");
86
+ throw new Error("Proporcione 'path' o 'paths'.");
79
87
  }
80
88
  const context = optionalString(obj["context"]);
81
89
  const question = optionalString(obj["question"]);
@@ -88,7 +96,7 @@ export class AnalyzeMediaTool {
88
96
  ? analysisModeRaw
89
97
  : analysisModeRaw
90
98
  ? (() => {
91
- throw new Error("analysis_mode must be one of: auto|single|multipass.");
99
+ throw new Error("analysis_mode debe ser uno de: auto|single|multipass.");
92
100
  })()
93
101
  : undefined;
94
102
  const videoRaw = obj["video"];
@@ -162,63 +170,103 @@ export class AnalyzeMediaTool {
162
170
  const timeoutMs = this.deps.defaultTimeoutMs;
163
171
  const clientTraceId = `enrivision_${randomUUID()}`;
164
172
  const client = this.deps.createClient(serverUrl, apiKey, timeoutMs);
165
- const resolvedPaths = Array.isArray(params.paths) && params.paths.length > 0
173
+ const requestedPaths = Array.isArray(params.paths) && params.paths.length > 0
166
174
  ? [...params.paths]
167
175
  : typeof params.path === "string" && params.path.trim()
168
176
  ? [params.path.trim()]
169
177
  : [];
170
- if (resolvedPaths.length === 0) {
171
- throw new Error("Provide either 'path' or 'paths'.");
178
+ if (requestedPaths.length === 0) {
179
+ throw new Error("Proporcione 'path' o 'paths'.");
172
180
  }
173
- let uploadId;
174
- if (resolvedPaths.length > 1) {
175
- uploadId = await this.uploadImageSetAsMediaSetTar(client, resolvedPaths, timeoutMs, clientTraceId);
176
- }
177
- else {
178
- const singlePath = resolvedPaths[0];
179
- const fileSize = await this.assertReadableFile(singlePath);
180
- const filename = basename(singlePath);
181
- const contentType = this.detectMimeType(singlePath);
182
- const session = await client.createUploadSession({
183
- filename,
184
- sizeBytes: fileSize,
185
- contentType,
186
- clientTraceId
181
+ const materialized = [];
182
+ try {
183
+ const inputs = [];
184
+ for (const requested of requestedPaths) {
185
+ if (!MediaUrlFetcher.isHttpUrl(requested)) {
186
+ inputs.push({ localPath: requested });
187
+ continue;
188
+ }
189
+ const fetched = await this.urlFetcher.fetch(requested);
190
+ materialized.push(fetched);
191
+ inputs.push({ localPath: fetched.localPath, urlContentType: fetched.contentType });
192
+ }
193
+ let uploadId;
194
+ if (inputs.length > 1) {
195
+ uploadId = await this.uploadImageSetAsMediaSetTar(client, inputs, timeoutMs, clientTraceId);
196
+ }
197
+ else {
198
+ const single = inputs[0];
199
+ const fileSize = await this.assertReadableFile(single.localPath);
200
+ const filename = basename(single.localPath);
201
+ const contentType = this.resolveEffectiveContentType(single.localPath, single.urlContentType);
202
+ const session = await client.createUploadSession({
203
+ filename,
204
+ sizeBytes: fileSize,
205
+ contentType,
206
+ clientTraceId
207
+ });
208
+ const finalOffset = await this.uploadFileResumable(client, single.localPath, fileSize, session, timeoutMs);
209
+ if (finalOffset !== fileSize) {
210
+ throw new Error(`Subida incompleta: se enviaron ${finalOffset} de ${fileSize} bytes.`);
211
+ }
212
+ uploadId = session.upload_id;
213
+ }
214
+ const defaultLanguageRaw = typeof process.env["ENRIVISION_DEFAULT_LANGUAGE"] === "string"
215
+ ? process.env["ENRIVISION_DEFAULT_LANGUAGE"].trim()
216
+ : "";
217
+ const language = typeof params.language === "string" && params.language.trim()
218
+ ? params.language.trim()
219
+ : defaultLanguageRaw
220
+ ? defaultLanguageRaw
221
+ : undefined;
222
+ const analysis = await client.analyze({
223
+ uploadId,
224
+ context: params.context,
225
+ question: params.question,
226
+ language,
227
+ maxFrames: params.maxFrames,
228
+ transcribe: params.transcribe,
229
+ transcriptionLanguage: params.transcriptionLanguage,
230
+ analysisMode: params.analysisMode,
231
+ video: params.video,
232
+ document: params.document,
233
+ audio: params.audio,
234
+ images: params.images
187
235
  });
188
- const finalOffset = await this.uploadFileResumable(client, singlePath, fileSize, session, timeoutMs);
189
- if (finalOffset !== fileSize) {
190
- throw new Error(`Upload incomplete: sent ${finalOffset} of ${fileSize} bytes.`);
236
+ const extraction = this.stripInternalExtractionFields(analysis.extraction);
237
+ return {
238
+ analysis: analysis.analysis,
239
+ media_type: analysis.media_type,
240
+ extraction
241
+ };
242
+ }
243
+ finally {
244
+ for (const fetched of materialized) {
245
+ await fetched.cleanup();
191
246
  }
192
- uploadId = session.upload_id;
193
247
  }
194
- const defaultLanguageRaw = typeof process.env["ENRIVISION_DEFAULT_LANGUAGE"] === "string"
195
- ? process.env["ENRIVISION_DEFAULT_LANGUAGE"].trim()
196
- : "";
197
- const language = typeof params.language === "string" && params.language.trim()
198
- ? params.language.trim()
199
- : defaultLanguageRaw
200
- ? defaultLanguageRaw
201
- : undefined;
202
- const analysis = await client.analyze({
203
- uploadId,
204
- context: params.context,
205
- question: params.question,
206
- language,
207
- maxFrames: params.maxFrames,
208
- transcribe: params.transcribe,
209
- transcriptionLanguage: params.transcriptionLanguage,
210
- analysisMode: params.analysisMode,
211
- video: params.video,
212
- document: params.document,
213
- audio: params.audio,
214
- images: params.images
215
- });
216
- const extraction = this.stripInternalExtractionFields(analysis.extraction);
217
- return {
218
- analysis: analysis.analysis,
219
- media_type: analysis.media_type,
220
- extraction
221
- };
248
+ }
249
+ /**
250
+ * Resolves the upload content type for one media input.
251
+ *
252
+ * @remarks
253
+ * URL downloads keep their extension-derived type when the extension is
254
+ * recognized; otherwise the server-reported content type wins over the
255
+ * generic `application/octet-stream` fallback.
256
+ *
257
+ * @param localPath - Local file path (already materialized for URLs)
258
+ * @param urlContentType - Server-reported content type for downloaded URLs
259
+ * @returns Effective MIME type
260
+ */
261
+ resolveEffectiveContentType(localPath, urlContentType) {
262
+ const detected = this.detectMimeType(localPath);
263
+ if (detected !== "application/octet-stream") {
264
+ return detected;
265
+ }
266
+ if (urlContentType && urlContentType.trim() && urlContentType !== "application/octet-stream") {
267
+ return urlContentType.trim();
268
+ }
269
+ return detected;
222
270
  }
223
271
  /**
224
272
  * Removes internal identifiers (upload ids, routing-only values, etc.) from the
@@ -286,11 +334,11 @@ export class AnalyzeMediaTool {
286
334
  */
287
335
  async assertReadableFile(filePath) {
288
336
  if (!existsSync(filePath)) {
289
- throw new Error(`File not found: ${filePath}`);
337
+ throw new Error(`Archivo no encontrado: ${filePath}`);
290
338
  }
291
339
  const st = await stat(filePath);
292
340
  if (!st.isFile()) {
293
- throw new Error(`Not a file: ${filePath}`);
341
+ throw new Error(`No es un archivo: ${filePath}`);
294
342
  }
295
343
  // Ensure the file is readable.
296
344
  const handle = await open(filePath, "r");
@@ -323,30 +371,30 @@ export class AnalyzeMediaTool {
323
371
  * screenshot sets.
324
372
  *
325
373
  * @param client - EnriProxy client
326
- * @param filePaths - Absolute image file paths
374
+ * @param inputs - Resolved media inputs (local paths, URLs already materialized)
327
375
  * @param timeoutMs - Request timeout per HTTP request
328
376
  * @param clientTraceId - Client trace id for correlation
329
377
  * @returns Upload id for the created tar session
330
378
  */
331
- async uploadImageSetAsMediaSetTar(client, filePaths, timeoutMs, clientTraceId) {
332
- if (filePaths.length < 2) {
379
+ async uploadImageSetAsMediaSetTar(client, inputs, timeoutMs, clientTraceId) {
380
+ if (inputs.length < 2) {
333
381
  throw new Error("uploadImageSetAsMediaSetTar requires at least 2 file paths.");
334
382
  }
335
383
  const files = [];
336
- for (let i = 0; i < filePaths.length; i += 1) {
337
- const p = filePaths[i];
338
- const sizeBytes = await this.assertReadableFile(p);
339
- const filename = basename(p);
340
- const contentType = this.detectMimeType(p);
384
+ for (let i = 0; i < inputs.length; i += 1) {
385
+ const input = inputs[i];
386
+ const sizeBytes = await this.assertReadableFile(input.localPath);
387
+ const filename = basename(input.localPath);
388
+ const contentType = this.resolveEffectiveContentType(input.localPath, input.urlContentType);
341
389
  if (!contentType.toLowerCase().startsWith("image/")) {
342
- throw new Error(`paths must contain only image files. Not an image: ${p} (${contentType})`);
390
+ throw new Error(`paths debe contener sólo archivos de imagen. No es imagen: ${input.localPath} (${contentType})`);
343
391
  }
344
392
  const extRaw = extname(filename).toLowerCase();
345
393
  const ext = extRaw && /^[a-z0-9.]+$/.test(extRaw) ? extRaw : ".img";
346
394
  const entryName = `${String(i + 1).padStart(6, "0")}${ext}`;
347
395
  files.push({
348
396
  index: i + 1,
349
- path: p,
397
+ path: input.localPath,
350
398
  filename,
351
399
  sizeBytes,
352
400
  contentType,
@@ -416,11 +464,11 @@ export class AnalyzeMediaTool {
416
464
  }
417
465
  }
418
466
  if (!madeProgress) {
419
- throw new Error("Upload stalled: no progress while sending tar chunks.");
467
+ throw new Error("Subida estancada: no hubo progreso al enviar los fragmentos del tar.");
420
468
  }
421
469
  }
422
470
  if (offset !== tarSizeBytes) {
423
- throw new Error(`Upload incomplete: sent ${offset} of ${tarSizeBytes} bytes.`);
471
+ throw new Error(`Subida incompleta: se enviaron ${offset} de ${tarSizeBytes} bytes.`);
424
472
  }
425
473
  return session.upload_id;
426
474
  }
@@ -503,7 +551,7 @@ export class AnalyzeMediaTool {
503
551
  await new Promise((resolve) => setTimeout(resolve, backoffMs));
504
552
  }
505
553
  }
506
- throw new Error("Upload failed after retries.");
554
+ throw new Error("La subida falló tras los reintentos.");
507
555
  }
508
556
  }
509
557
  //# sourceMappingURL=AnalyzeMediaTool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyzeMediaTool.js","sourceRoot":"","sources":["../../src/tools/AnalyzeMediaTool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AnalyzeMediaTool.js","sourceRoot":"","sources":["../../src/tools/AnalyzeMediaTool.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAA0D,MAAM,8BAA8B,CAAC;AAC1H,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC1J,OAAO,EAAE,eAAe,EAA4B,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAiB,MAAM,kBAAkB,CAAC;AAEjF;;GAEG;AACH,MAAM,qCAAqC,GAAG,0CAA0C,CAAC;AAEzF;;GAEG;AACH,MAAM,sCAAsC,GAAG,eAAe,CAAC;AA8O/D;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAC3B;;OAEG;IACc,IAAI,CAAuB;IAE5C;;OAEG;IACc,UAAU,CAAkB;IAE7C;;;;;OAKG;IACH,YAAmB,IAA0B,EAAE,aAA8B,IAAI,eAAe,EAAE;QAChG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,WAAW,CAAC,GAAY;QAC7B,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;QAE3C,MAAM,OAAO,GAAG,OAAO,GAAG,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;QAC3C,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAClE,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAC;QACnF,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,KAA2B,CAAC;QAChC,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;YAC9E,CAAC;YACD,MAAM,GAAG,GAAa,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;gBAC5B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC7C,SAAS;gBACX,CAAC;gBACD,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBACpD,MAAM,IAAI,KAAK,CAAC,qEAAqE,CAAC,CAAC;gBACzF,CAAC;gBACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,CAAC;YACD,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACnB,KAAK,GAAG,GAAG,CAAC;YACd,CAAC;QACH,CAAC;QAED,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QACD,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;QACtD,MAAM,qBAAqB,GAAG,cAAc,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAE5E,MAAM,eAAe,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;QAC7D,MAAM,YAAY,GAChB,eAAe,KAAK,MAAM,IAAI,eAAe,KAAK,QAAQ,IAAI,eAAe,KAAK,WAAW;YAC3F,CAAC,CAAC,eAAe;YACjB,CAAC,CAAC,eAAe;gBACf,CAAC,CAAC,CAAC,GAAG,EAAE;oBACJ,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;gBAC3E,CAAC,CAAC,EAAE;gBACN,CAAC,CAAC,SAAS,CAAC;QAElB,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,KAAkD,CAAC;QACvD,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC1C,KAAK,GAAG;gBACN,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC;gBACzD,mBAAmB,EAAE,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;gBAC/D,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBACpD,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBAC3C,mBAAmB,EAAE,WAAW,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC;aAC9D,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC;QACpC,IAAI,QAAwD,CAAC;QAC7D,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,YAAY,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;YAChD,QAAQ,GAAG;gBACT,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBAChD,aAAa,EAAE,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBAChD,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC;gBACzD,yBAAyB,EAAE,WAAW,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;aAC1E,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9B,IAAI,KAAkD,CAAC;QACvD,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;YACpC,MAAM,CAAC,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC1C,KAAK,GAAG;gBACN,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC5C,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;gBACpD,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;aAC5C,CAAC;QACJ,CAAC;QAED,MAAM,SAAS,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,MAAoD,CAAC;QACzD,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC9C,MAAM,GAAG;gBACP,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBACpD,cAAc,EAAE,WAAW,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBACpD,YAAY,EAAE,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;aAChD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI;YACJ,KAAK;YACL,OAAO;YACP,QAAQ;YACR,QAAQ;YACR,SAAS;YACT,UAAU;YACV,qBAAqB;YACrB,YAAY;YACZ,KAAK;YACL,QAAQ;YACR,KAAK;YACL,MAAM;SACP,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAAC,MAA8B;QACjD,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;QAC7E,MAAM,MAAM,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC;QAClF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;QAE7C,MAAM,aAAa,GAAG,cAAc,UAAU,EAAE,EAAE,CAAC;QAEnD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAEpE,MAAM,cAAc,GAClB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YACpD,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;YACnB,CAAC,CAAC,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;gBACrD,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtB,CAAC,CAAC,EAAE,CAAC;QAEX,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,YAAY,GAA0B,EAAE,CAAC;QAE/C,IAAI,CAAC;YACH,MAAM,MAAM,GAAyB,EAAE,CAAC;YACxC,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE,CAAC;gBACvC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC;oBACtC,SAAS;gBACX,CAAC;gBACD,MAAM,OAAO,GAAwB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBAC5E,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,cAAc,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YACrF,CAAC;YAED,IAAI,QAAgB,CAAC;YAErB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,QAAQ,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAC/C,MAAM,EACN,MAAM,EACN,SAAS,EACT,aAAa,CACd,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBACjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;gBAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;gBAE9F,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC;oBAC/C,QAAQ;oBACR,SAAS,EAAE,QAAQ;oBACnB,WAAW;oBACX,aAAa;iBACd,CAAC,CAAC;gBAEH,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;gBAC3G,IAAI,WAAW,KAAK,QAAQ,EAAE,CAAC;oBAC7B,MAAM,IAAI,KAAK,CAAC,kCAAkC,WAAW,OAAO,QAAQ,SAAS,CAAC,CAAC;gBACzF,CAAC;gBAED,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;YAC/B,CAAC;YAED,MAAM,kBAAkB,GACtB,OAAO,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,KAAK,QAAQ;gBAC5D,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC,IAAI,EAAE;gBACnD,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,QAAQ,GACZ,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC3D,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE;gBACxB,CAAC,CAAC,kBAAkB;oBAClB,CAAC,CAAC,kBAAkB;oBACpB,CAAC,CAAC,SAAS,CAAC;YAElB,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;gBACpC,QAAQ;gBACR,OAAO,EAAE,MAAM,CAAC,OAAO;gBACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ;gBACR,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,UAAU,EAAE,MAAM,CAAC,UAAU;gBAC7B,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;gBACnD,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;YAEH,MAAM,UAAU,GAAG,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAE3E,OAAO;gBACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU;gBAC/B,UAAU;aACX,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,KAAK,MAAM,OAAO,IAAI,YAAY,EAAE,CAAC;gBACnC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;;;;;;OAWG;IACK,2BAA2B,CAAC,SAAiB,EAAE,cAAuB;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,QAAQ,KAAK,0BAA0B,EAAE,CAAC;YAC5C,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,IAAI,cAAc,IAAI,cAAc,CAAC,IAAI,EAAE,IAAI,cAAc,KAAK,0BAA0B,EAAE,CAAC;YAC7F,OAAO,cAAc,CAAC,IAAI,EAAE,CAAC;QAC/B,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACK,6BAA6B,CACnC,UAAmC;QAEnC,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACK,mBAAmB,CAAC,KAAc;QACxC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACxC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,MAAM,GAAG,KAAgC,CAAC;QAChD,MAAM,IAAI,GAA4B,EAAE,CAAC;QAEzC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;gBAC9C,SAAS;YACX,CAAC;YACD,IAAI,GAAG,KAAK,qBAAqB,EAAE,CAAC;gBAClC,SAAS;YACX,CAAC;YACD,IAAI,GAAG,KAAK,yBAAyB,IAAI,GAAG,KAAK,oBAAoB,EAAE,CAAC;gBACtE,SAAS;YACX,CAAC;YACD,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,IAAI,GAAG,KAAK,OAAO,EAAE,CAAC;gBACpB,SAAS;YACX,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;OAKG;IACK,aAAa,CAAC,KAAc;QAClC,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,OAAO,KAAgC,CAAC;QAC1C,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,kBAAkB,CAAC,QAAgB;QAC/C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,0BAA0B,QAAQ,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,EAAE,CAAC,CAAC;QACnD,CAAC;QAED,+BAA+B;QAC/B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC;YACH,OAAO,EAAE,CAAC,IAAI,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,cAAc,CAAC,QAAgB;QACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;QACtC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC;YACpD,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC;QACzB,CAAC;QACD,OAAO,0BAA0B,CAAC;IACpC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,KAAK,CAAC,2BAA2B,CACvC,MAAuB,EACvB,MAAyC,EACzC,SAAiB,EACjB,aAAqB;QAErB,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;QACjF,CAAC;QAED,MAAM,KAAK,GAON,EAAE,CAAC;QAER,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC;YACzB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;YAE5F,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,8DAA8D,KAAK,CAAC,SAAS,KAAK,WAAW,GAAG,CAAC,CAAC;YACpH,CAAC;YAED,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,MAAM,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YACpE,MAAM,SAAS,GAAG,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;YAE5D,KAAK,CAAC,IAAI,CAAC;gBACT,KAAK,EAAE,CAAC,GAAG,CAAC;gBACZ,IAAI,EAAE,KAAK,CAAC,SAAS;gBACrB,QAAQ;gBACR,SAAS;gBACT,WAAW;gBACX,SAAS;aACV,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG;YACf,IAAI,EAAE,sBAAsB;YAC5B,OAAO,EAAE,CAAC;YACV,UAAU,EAAE,WAAW;YACvB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvB,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,IAAI,EAAE,CAAC,CAAC,SAAS;gBACjB,QAAQ,EAAE,CAAC,CAAC,QAAQ;gBACpB,YAAY,EAAE,CAAC,CAAC,WAAW;gBAC3B,UAAU,EAAE,CAAC,CAAC,SAAS;aACxB,CAAC,CAAC;SACJ,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAEjD,MAAM,OAAO,GAAe;YAC1B;gBACE,IAAI,EAAE,sCAAsC;gBAC5C,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE;gBAClD,YAAY,EAAE,UAAU;aACzB;YACD,GAAG,KAAK,CAAC,GAAG,CACV,CAAC,CAAC,EAAY,EAAE,CAAC,CAAC;gBAChB,IAAI,EAAE,CAAC,CAAC,SAAS;gBACjB,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE;gBAC9D,YAAY,EAAE,UAAU;aACzB,CAAC,CACH;SACF,CAAC;QAEF,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,GAAG,CAAC,YAAY,EAAE,KAAK,YAAY,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,mBAAmB,CAAC;YAC/C,QAAQ,EAAE,0BAA0B;YACpC,SAAS,EAAE,YAAY;YACvB,WAAW,EAAE,qCAAqC;YAClD,aAAa;SACd,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACpE,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC7D,IAAI,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,YAAY,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,OAAO,MAAM,GAAG,YAAY,EAAE,CAAC;YAC7B,IAAI,YAAY,GAAG,KAAK,CAAC;YAEzB,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;gBAC/D,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBACvB,SAAS;gBACX,CAAC;gBAED,MAAM,cAAc,GAAG,MAAM,CAAC;gBAC9B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAChD,MAAM,EACN,OAAO,CAAC,SAAS,EACjB,cAAc,EACd,KAAK,EACL,SAAS,CACV,CAAC;gBAEF,MAAM,GAAG,UAAU,CAAC;gBACpB,YAAY,GAAG,IAAI,CAAC;gBAEpB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC;gBAC3D,OAAO,CAAC,KAAK,CAAC,sBAAsB,QAAQ,MAAM,MAAM,IAAI,YAAY,SAAS,CAAC,CAAC;gBAEnF,qEAAqE;gBACrE,IAAI,MAAM,KAAK,cAAc,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBAC7C,MAAM;gBACR,CAAC;gBAED,IAAI,MAAM,IAAI,YAAY,EAAE,CAAC;oBAC3B,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;QAED,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,OAAO,YAAY,SAAS,CAAC,CAAC;QACxF,CAAC;QAED,OAAO,OAAO,CAAC,SAAS,CAAC;IAC3B,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,mBAAmB,CAC/B,MAAuB,EACvB,QAAgB,EAChB,QAAgB,EAChB,OAAoC,EACpC,SAAiB;QAEjB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAEzC,IAAI,CAAC;YACH,IAAI,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAE7D,OAAO,MAAM,GAAG,QAAQ,EAAE,CAAC;gBACzB,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;gBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBAEhD,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC5C,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;gBAC5D,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,CAAC;oBACxB,MAAM;gBACR,CAAC;gBAED,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;gBAE7F,MAAM,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;gBAE9F,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,GAAG,CAAC,CAAC;gBACvD,OAAO,CAAC,KAAK,CAAC,sBAAsB,QAAQ,MAAM,MAAM,IAAI,QAAQ,SAAS,CAAC,CAAC;YACjF,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;gBAAS,CAAC;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACK,KAAK,CAAC,oBAAoB,CAChC,MAAuB,EACvB,QAAgB,EAChB,MAAc,EACd,KAAa,EACb,SAAiB;QAEjB,MAAM,WAAW,GAAG,CAAC,CAAC;QAEtB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC;gBACH,OAAO,MAAM,MAAM,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;YAChF,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAEvE,IAAI,KAAK,YAAY,kBAAkB,EAAE,CAAC;oBACxC,4EAA4E;oBAC5E,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;wBACzB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;wBACtD,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;4BACtB,OAAO,CAAC,KAAK,CAAC,8BAA8B,MAAM,OAAO,MAAM,GAAG,CAAC,CAAC;4BACpE,OAAO,MAAM,CAAC;wBAChB,CAAC;oBACH,CAAC;oBAED,qEAAqE;oBACrE,IACE,KAAK,CAAC,MAAM,KAAK,GAAG;wBACpB,KAAK,CAAC,MAAM,KAAK,GAAG;wBACpB,KAAK,CAAC,MAAM,KAAK,GAAG;wBACpB,KAAK,CAAC,MAAM,KAAK,GAAG;wBACpB,KAAK,CAAC,MAAM,KAAK,GAAG;wBACpB,KAAK,CAAC,MAAM,KAAK,GAAG,EACpB,CAAC;wBACD,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;gBAED,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;oBAC5B,MAAM,KAAK,CAAC;gBACd,CAAC;gBAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACnE,OAAO,CAAC,KAAK,CAAC,qBAAqB,OAAO,IAAI,WAAW,UAAU,SAAS,OAAO,OAAO,GAAG,CAAC,CAAC;gBAC/F,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bedolla/enrivision",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "MCP server that uploads local media to EnriProxy and returns server-side analysis (resumable uploads).",
5
5
  "keywords": [
6
6
  "mcp",
@@ -48,6 +48,7 @@
48
48
  "mime-types": "3.0.2"
49
49
  },
50
50
  "devDependencies": {
51
+ "@types/mime-types": "^3.0.1",
51
52
  "@types/node": "25.0.3",
52
53
  "typescript": "5.9.3",
53
54
  "vitest": "4.0.16"