@mesh-sync/worker-backend-client 4.0.19 → 4.0.24-pr.51.20260312132340

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/client.d.ts CHANGED
@@ -37,6 +37,14 @@ export declare class WorkerClient {
37
37
  * Get job status by job ID
38
38
  */
39
39
  getJobStatus(jobId: string): Promise<JobStatus>;
40
+ /**
41
+ * Request to trigger a manual market data collection job.
42
+ Used for ad-hoc scraping of specific queries on marketplaces.
43
+
44
+ * @param data - The message payload
45
+ * @returns Job response with job ID
46
+ */
47
+ analyticsCollectionRequest(data: types.AnalyticsCollectionRequestMessage): Promise<JobResponse>;
40
48
  /**
41
49
  * Centralized logging event for capturing all warn/error/failure logs from meshsync-backend.
42
50
  This event is sent to ELK for centralized monitoring, alerting, and debugging.
@@ -58,18 +66,6 @@ export declare class WorkerClient {
58
66
  * @returns Job response with job ID
59
67
  */
60
68
  backendLoggingEvent(data: types.BackendLoggingEventMessage): Promise<JobResponse>;
61
- /**
62
- * Completion event for EKG edge batch creation with propagation results.
63
- * @param data - The message payload
64
- * @returns Job response with job ID
65
- */
66
- ekgEdgeBatchCreateCompleted(data: types.EkgEdgeBatchCreateCompletedMessage): Promise<JobResponse>;
67
- /**
68
- * Create multiple EKG edges with Dempster-Shafer mass functions. Triggered by metamodel detection completion.
69
- * @param data - The message payload
70
- * @returns Job response with job ID
71
- */
72
- ekgEdgeBatchCreateRequest(data: types.EkgEdgeBatchCreateRequestMessage): Promise<JobResponse>;
73
69
  /**
74
70
  * Contains synced analytics data for Etsy listings. Backend stores this in etsy_analytics_snapshots table and indexes to ELK.
75
71
 
@@ -134,17 +130,17 @@ export declare class WorkerClient {
134
130
  */
135
131
  fileVectorizeRequest(data: types.FileVectorizeRequestMessage): Promise<JobResponse>;
136
132
  /**
137
- * Contains synced analytics data for marketplace listings. Backend stores this in marketplace_analytics_snapshots table and indexes to ELK. Works with any marketplace provider.
133
+ * Contains IP verification results including trademark risk, copyright risk, detected brands/franchises, and analysis confidence scores
138
134
  * @param data - The message payload
139
135
  * @returns Job response with job ID
140
136
  */
141
- marketplaceAnalyticsSyncCompleted(data: types.MarketplaceAnalyticsSyncCompletedMessage): Promise<JobResponse>;
137
+ ipCheckCompleted(data: types.IpCheckCompletedMessage): Promise<JobResponse>;
142
138
  /**
143
- * Syncs analytics data from marketplace API for one or more listings. Fetches views, favorites, sales, revenue, and traffic source data. Can sync: specific listings, all user listings, or shop-level analytics. Works with any marketplace provider that supports analytics (etsy, ebay, etc.).
139
+ * Triggers intellectual property verification analysis for a model thumbnail, detecting potential trademark and copyright issues using perceptual hashing, text analysis, and optional reverse image search.
144
140
  * @param data - The message payload
145
141
  * @returns Job response with job ID
146
142
  */
147
- marketplaceAnalyticsSyncRequest(data: types.MarketplaceAnalyticsSyncRequestMessage): Promise<JobResponse>;
143
+ ipCheckRequest(data: types.IpCheckRequestMessage): Promise<JobResponse>;
148
144
  /**
149
145
  * Notification that marketplace connection sync has completed. Contains updated connection metadata, profile information, and sync statistics.
150
146
 
@@ -174,6 +170,17 @@ export declare class WorkerClient {
174
170
  * @returns Job response with job ID
175
171
  */
176
172
  marketplaceCredentialRotationRequest(data: types.MarketplaceCredentialRotationRequestMessage): Promise<JobResponse>;
173
+ /**
174
+ * Response from marketplace intelligence scraping.
175
+ Contains aggregated similarity data from marketplace searches.
176
+
177
+ Consumed by worker-backend to update pipeline context before
178
+ sellability analysis runs.
179
+
180
+ * @param data - The message payload
181
+ * @returns Job response with job ID
182
+ */
183
+ marketplaceIntelligenceCompleted(data: types.MarketplaceIntelligenceCompletedMessage): Promise<JobResponse>;
177
184
  /**
178
185
  * Public marketplace intelligence data scraped from external marketplaces.
179
186
 
@@ -195,6 +202,25 @@ export declare class WorkerClient {
195
202
  * @returns Job response with job ID
196
203
  */
197
204
  marketplaceIntelligenceEvent(data: types.MarketplaceIntelligenceEventMessage): Promise<JobResponse>;
205
+ /**
206
+ * Triggers automated marketplace scraping to find similar/competing listings
207
+ for a given model. This is a pipeline stage that runs after metadata generation
208
+ to inform sellability analysis with real market data.
209
+
210
+ The worker-analytic-collector (or marketplace-connectors worker) will:
211
+ 1. Use model metadata (title, tags, category) to build search queries
212
+ 2. Scrape connected marketplaces (Etsy, eBay, etc.) for similar listings
213
+ 3. Emit marketplace-intelligence-event results for Elasticsearch indexing
214
+ 4. Return aggregated similarity data to the pipeline context
215
+
216
+ Pipeline integration:
217
+ - Triggered after: metadata-generation (needs model title/tags/category)
218
+ - Results feed into: sellability-analysis (market positioning data)
219
+
220
+ * @param data - The message payload
221
+ * @returns Job response with job ID
222
+ */
223
+ marketplaceIntelligenceRequest(data: types.MarketplaceIntelligenceRequestMessage): Promise<JobResponse>;
198
224
  /**
199
225
  * Notifies backend that marketplace description generation completed. Contains generated description with metadata tracking (AI model, confidence, generation timestamp) and suggested price.
200
226
  * @param data - The message payload
@@ -258,18 +284,6 @@ export declare class WorkerClient {
258
284
  * @returns Job response with job ID
259
285
  */
260
286
  marketplaceListingUpdateRequest(data: types.MarketplaceListingUpdateRequestMessage): Promise<JobResponse>;
261
- /**
262
- * Indicates completion of marketplace listing publication. Contains external listing ID and URL, or error details if failed. Works with any marketplace provider (etsy, ebay, etc.).
263
- * @param data - The message payload
264
- * @returns Job response with job ID
265
- */
266
- marketplacePublishListingCompleted(data: types.MarketplacePublishListingCompletedMessage): Promise<JobResponse>;
267
- /**
268
- * Publishes a single metamodel listing to a marketplace for a specific material variant. Creates listing, uploads digital file, and returns external listing ID. This message is enqueued for EACH material variant when publishing a metamodel. The marketplace type (etsy, ebay, etc.) is determined by the marketplaceProvider field.
269
- * @param data - The message payload
270
- * @returns Job response with job ID
271
- */
272
- marketplacePublishListingRequest(data: types.MarketplacePublishListingRequestMessage): Promise<JobResponse>;
273
287
  /**
274
288
  * Notifies that a batch media download has been completed.
275
289
  * @param data - The message payload
@@ -331,19 +345,19 @@ export declare class WorkerClient {
331
345
  */
332
346
  modelDiscoveryScanRequest(data: types.ModelDiscoveryScanRequestMessage): Promise<JobResponse>;
333
347
  /**
334
- * Request to index a 3D model for similarity search.
348
+ * DEPRECATED (2026-02-18) FR-023 retired. Merge 3D rendering into worker-file-vectorize.
335
349
  * @param data - The message payload
336
350
  * @returns Job response with job ID
337
351
  */
338
352
  modelFinderIndexRequest(data: types.ModelFinderIndexRequestMessage): Promise<JobResponse>;
339
353
  /**
340
- * Response containing search results from the model finder.
354
+ * DEPRECATED (2026-02-18) FR-023 retired. Merge 3D rendering into worker-file-vectorize.
341
355
  * @param data - The message payload
342
356
  * @returns Job response with job ID
343
357
  */
344
358
  modelFinderResponse(data: types.ModelFinderResponseMessage): Promise<JobResponse>;
345
359
  /**
346
- * Request to search for similar 3D models.
360
+ * DEPRECATED (2026-02-18) FR-023 retired. Merge 3D rendering into worker-file-vectorize.
347
361
  * @param data - The message payload
348
362
  * @returns Job response with job ID
349
363
  */
@@ -372,6 +386,18 @@ export declare class WorkerClient {
372
386
  * @returns Job response with job ID
373
387
  */
374
388
  modelMetamodelDetectionRequest(data: types.ModelMetamodelDetectionRequestMessage): Promise<JobResponse>;
389
+ /**
390
+ * Reports completion of 3D print analysis — contains estimation, printability, and cost breakdown per FR-022
391
+ * @param data - The message payload
392
+ * @returns Job response with job ID
393
+ */
394
+ modelPrintAnalysisCompleted(data: types.ModelPrintAnalysisCompletedMessage): Promise<JobResponse>;
395
+ /**
396
+ * Triggers 3D print analysis for a model — estimates print time, material usage, support needs, and cost breakdown per FR-022
397
+ * @param data - The message payload
398
+ * @returns Job response with job ID
399
+ */
400
+ modelPrintAnalysisRequest(data: types.ModelPrintAnalysisRequestMessage): Promise<JobResponse>;
375
401
  /**
376
402
  * Contains sellability analysis results including Etsy-specific recommendations, material pricing, and marketplace compatibility scores
377
403
  * @param data - The message payload
@@ -408,6 +434,42 @@ export declare class WorkerClient {
408
434
  * @returns Job response with job ID
409
435
  */
410
436
  modelTechnicalMetadataRequest(data: types.ModelTechnicalMetadataRequestMessage): Promise<JobResponse>;
437
+ /**
438
+ * Request FDM slicing simulation via OrcaSlicer (preferred) or heuristic fallback. Accepts OrcaSlicer-compatible printer/process/filament JSON profiles.
439
+ * @param data - The message payload
440
+ * @returns Job response with job ID
441
+ */
442
+ slicingFdmRequest(data: types.SlicingFdmRequestMessage): Promise<JobResponse>;
443
+ /**
444
+ * Result of FDM slicing simulation from OrcaSlicer (toolpath) or heuristic fallback. Contains exact physical metrics for cost calculation.
445
+ * @param data - The message payload
446
+ * @returns Job response with job ID
447
+ */
448
+ slicingFdmResult(data: types.SlicingFdmResultMessage): Promise<JobResponse>;
449
+ /**
450
+ * Request SLA/MSLA slicing simulation via PySLM cross-sectional analysis. Accepts resin printer profile with exposure, lift, and layer parameters.
451
+ * @param data - The message payload
452
+ * @returns Job response with job ID
453
+ */
454
+ slicingSlaRequest(data: types.SlicingSlaRequestMessage): Promise<JobResponse>;
455
+ /**
456
+ * Result of SLA/MSLA slicing simulation from PySLM cross-sectional analysis. Contains exact resin usage and print time metrics.
457
+ * @param data - The message payload
458
+ * @returns Job response with job ID
459
+ */
460
+ slicingSlaResult(data: types.SlicingSlaResultMessage): Promise<JobResponse>;
461
+ /**
462
+ * Emitted when AI texture generation completes (success or failure). Contains artifact S3 URLs on success, or error details on failure. The credit reservation should be confirmed (success) or released (failure) based on the status.
463
+ * @param data - The message payload
464
+ * @returns Job response with job ID
465
+ */
466
+ textureGenerationCompleted(data: types.TextureGenerationCompletedMessage): Promise<JobResponse>;
467
+ /**
468
+ * Request AI-powered texture generation for a 3D model. Requires a mesh file URL and a text prompt describing the desired texture. Credits are reserved before dispatch.
469
+ * @param data - The message payload
470
+ * @returns Job response with job ID
471
+ */
472
+ textureGenerationRequest(data: types.TextureGenerationRequestMessage): Promise<JobResponse>;
411
473
  /**
412
474
  * Handles thumbnail generation completed.
413
475
  * @param data - The message payload
package/dist/client.js CHANGED
@@ -60,6 +60,16 @@ export class WorkerClient {
60
60
  }
61
61
  return await response.json();
62
62
  }
63
+ /**
64
+ * Request to trigger a manual market data collection job.
65
+ Used for ad-hoc scraping of specific queries on marketplaces.
66
+
67
+ * @param data - The message payload
68
+ * @returns Job response with job ID
69
+ */
70
+ async analyticsCollectionRequest(data) {
71
+ return this.sendToQueue(types.MessageTypes.ANALYTICS_COLLECTION_REQUEST, data);
72
+ }
63
73
  /**
64
74
  * Centralized logging event for capturing all warn/error/failure logs from meshsync-backend.
65
75
  This event is sent to ELK for centralized monitoring, alerting, and debugging.
@@ -83,22 +93,6 @@ export class WorkerClient {
83
93
  async backendLoggingEvent(data) {
84
94
  return this.sendToQueue(types.MessageTypes.BACKEND_LOGGING_EVENT, data);
85
95
  }
86
- /**
87
- * Completion event for EKG edge batch creation with propagation results.
88
- * @param data - The message payload
89
- * @returns Job response with job ID
90
- */
91
- async ekgEdgeBatchCreateCompleted(data) {
92
- return this.sendToQueue(types.MessageTypes.EKG_EDGE_BATCH_CREATE_COMPLETED, data);
93
- }
94
- /**
95
- * Create multiple EKG edges with Dempster-Shafer mass functions. Triggered by metamodel detection completion.
96
- * @param data - The message payload
97
- * @returns Job response with job ID
98
- */
99
- async ekgEdgeBatchCreateRequest(data) {
100
- return this.sendToQueue(types.MessageTypes.EKG_EDGE_BATCH_CREATE_REQUEST, data);
101
- }
102
96
  /**
103
97
  * Contains synced analytics data for Etsy listings. Backend stores this in etsy_analytics_snapshots table and indexes to ELK.
104
98
 
@@ -179,20 +173,20 @@ export class WorkerClient {
179
173
  return this.sendToQueue(types.MessageTypes.FILE_VECTORIZE_REQUEST, data);
180
174
  }
181
175
  /**
182
- * Contains synced analytics data for marketplace listings. Backend stores this in marketplace_analytics_snapshots table and indexes to ELK. Works with any marketplace provider.
176
+ * Contains IP verification results including trademark risk, copyright risk, detected brands/franchises, and analysis confidence scores
183
177
  * @param data - The message payload
184
178
  * @returns Job response with job ID
185
179
  */
186
- async marketplaceAnalyticsSyncCompleted(data) {
187
- return this.sendToQueue(types.MessageTypes.MARKETPLACE_ANALYTICS_SYNC_COMPLETED, data);
180
+ async ipCheckCompleted(data) {
181
+ return this.sendToQueue(types.MessageTypes.IP_CHECK_COMPLETED, data);
188
182
  }
189
183
  /**
190
- * Syncs analytics data from marketplace API for one or more listings. Fetches views, favorites, sales, revenue, and traffic source data. Can sync: specific listings, all user listings, or shop-level analytics. Works with any marketplace provider that supports analytics (etsy, ebay, etc.).
184
+ * Triggers intellectual property verification analysis for a model thumbnail, detecting potential trademark and copyright issues using perceptual hashing, text analysis, and optional reverse image search.
191
185
  * @param data - The message payload
192
186
  * @returns Job response with job ID
193
187
  */
194
- async marketplaceAnalyticsSyncRequest(data) {
195
- return this.sendToQueue(types.MessageTypes.MARKETPLACE_ANALYTICS_SYNC_REQUEST, data);
188
+ async ipCheckRequest(data) {
189
+ return this.sendToQueue(types.MessageTypes.IP_CHECK_REQUEST, data);
196
190
  }
197
191
  /**
198
192
  * Notification that marketplace connection sync has completed. Contains updated connection metadata, profile information, and sync statistics.
@@ -231,6 +225,19 @@ export class WorkerClient {
231
225
  async marketplaceCredentialRotationRequest(data) {
232
226
  return this.sendToQueue(types.MessageTypes.MARKETPLACE_CREDENTIAL_ROTATION_REQUEST, data);
233
227
  }
228
+ /**
229
+ * Response from marketplace intelligence scraping.
230
+ Contains aggregated similarity data from marketplace searches.
231
+
232
+ Consumed by worker-backend to update pipeline context before
233
+ sellability analysis runs.
234
+
235
+ * @param data - The message payload
236
+ * @returns Job response with job ID
237
+ */
238
+ async marketplaceIntelligenceCompleted(data) {
239
+ return this.sendToQueue(types.MessageTypes.MARKETPLACE_INTELLIGENCE_COMPLETED, data);
240
+ }
234
241
  /**
235
242
  * Public marketplace intelligence data scraped from external marketplaces.
236
243
 
@@ -254,6 +261,27 @@ export class WorkerClient {
254
261
  async marketplaceIntelligenceEvent(data) {
255
262
  return this.sendToQueue(types.MessageTypes.MARKETPLACE_INTELLIGENCE_EVENT, data);
256
263
  }
264
+ /**
265
+ * Triggers automated marketplace scraping to find similar/competing listings
266
+ for a given model. This is a pipeline stage that runs after metadata generation
267
+ to inform sellability analysis with real market data.
268
+
269
+ The worker-analytic-collector (or marketplace-connectors worker) will:
270
+ 1. Use model metadata (title, tags, category) to build search queries
271
+ 2. Scrape connected marketplaces (Etsy, eBay, etc.) for similar listings
272
+ 3. Emit marketplace-intelligence-event results for Elasticsearch indexing
273
+ 4. Return aggregated similarity data to the pipeline context
274
+
275
+ Pipeline integration:
276
+ - Triggered after: metadata-generation (needs model title/tags/category)
277
+ - Results feed into: sellability-analysis (market positioning data)
278
+
279
+ * @param data - The message payload
280
+ * @returns Job response with job ID
281
+ */
282
+ async marketplaceIntelligenceRequest(data) {
283
+ return this.sendToQueue(types.MessageTypes.MARKETPLACE_INTELLIGENCE_REQUEST, data);
284
+ }
257
285
  /**
258
286
  * Notifies backend that marketplace description generation completed. Contains generated description with metadata tracking (AI model, confidence, generation timestamp) and suggested price.
259
287
  * @param data - The message payload
@@ -337,22 +365,6 @@ export class WorkerClient {
337
365
  async marketplaceListingUpdateRequest(data) {
338
366
  return this.sendToQueue(types.MessageTypes.MARKETPLACE_LISTING_UPDATE_REQUEST, data);
339
367
  }
340
- /**
341
- * Indicates completion of marketplace listing publication. Contains external listing ID and URL, or error details if failed. Works with any marketplace provider (etsy, ebay, etc.).
342
- * @param data - The message payload
343
- * @returns Job response with job ID
344
- */
345
- async marketplacePublishListingCompleted(data) {
346
- return this.sendToQueue(types.MessageTypes.MARKETPLACE_PUBLISH_LISTING_COMPLETED, data);
347
- }
348
- /**
349
- * Publishes a single metamodel listing to a marketplace for a specific material variant. Creates listing, uploads digital file, and returns external listing ID. This message is enqueued for EACH material variant when publishing a metamodel. The marketplace type (etsy, ebay, etc.) is determined by the marketplaceProvider field.
350
- * @param data - The message payload
351
- * @returns Job response with job ID
352
- */
353
- async marketplacePublishListingRequest(data) {
354
- return this.sendToQueue(types.MessageTypes.MARKETPLACE_PUBLISH_LISTING_REQUEST, data);
355
- }
356
368
  /**
357
369
  * Notifies that a batch media download has been completed.
358
370
  * @param data - The message payload
@@ -432,7 +444,7 @@ export class WorkerClient {
432
444
  return this.sendToQueue(types.MessageTypes.MODEL_DISCOVERY_SCAN_REQUEST, data);
433
445
  }
434
446
  /**
435
- * Request to index a 3D model for similarity search.
447
+ * DEPRECATED (2026-02-18) FR-023 retired. Merge 3D rendering into worker-file-vectorize.
436
448
  * @param data - The message payload
437
449
  * @returns Job response with job ID
438
450
  */
@@ -440,7 +452,7 @@ export class WorkerClient {
440
452
  return this.sendToQueue(types.MessageTypes.MODEL_FINDER_INDEX_REQUEST, data);
441
453
  }
442
454
  /**
443
- * Response containing search results from the model finder.
455
+ * DEPRECATED (2026-02-18) FR-023 retired. Merge 3D rendering into worker-file-vectorize.
444
456
  * @param data - The message payload
445
457
  * @returns Job response with job ID
446
458
  */
@@ -448,7 +460,7 @@ export class WorkerClient {
448
460
  return this.sendToQueue(types.MessageTypes.MODEL_FINDER_RESPONSE, data);
449
461
  }
450
462
  /**
451
- * Request to search for similar 3D models.
463
+ * DEPRECATED (2026-02-18) FR-023 retired. Merge 3D rendering into worker-file-vectorize.
452
464
  * @param data - The message payload
453
465
  * @returns Job response with job ID
454
466
  */
@@ -487,6 +499,22 @@ export class WorkerClient {
487
499
  async modelMetamodelDetectionRequest(data) {
488
500
  return this.sendToQueue(types.MessageTypes.MODEL_METAMODEL_DETECTION_REQUEST, data);
489
501
  }
502
+ /**
503
+ * Reports completion of 3D print analysis — contains estimation, printability, and cost breakdown per FR-022
504
+ * @param data - The message payload
505
+ * @returns Job response with job ID
506
+ */
507
+ async modelPrintAnalysisCompleted(data) {
508
+ return this.sendToQueue(types.MessageTypes.MODEL_PRINT_ANALYSIS_COMPLETED, data);
509
+ }
510
+ /**
511
+ * Triggers 3D print analysis for a model — estimates print time, material usage, support needs, and cost breakdown per FR-022
512
+ * @param data - The message payload
513
+ * @returns Job response with job ID
514
+ */
515
+ async modelPrintAnalysisRequest(data) {
516
+ return this.sendToQueue(types.MessageTypes.MODEL_PRINT_ANALYSIS_REQUEST, data);
517
+ }
490
518
  /**
491
519
  * Contains sellability analysis results including Etsy-specific recommendations, material pricing, and marketplace compatibility scores
492
520
  * @param data - The message payload
@@ -535,6 +563,54 @@ export class WorkerClient {
535
563
  async modelTechnicalMetadataRequest(data) {
536
564
  return this.sendToQueue(types.MessageTypes.MODEL_TECHNICAL_METADATA_REQUEST, data);
537
565
  }
566
+ /**
567
+ * Request FDM slicing simulation via OrcaSlicer (preferred) or heuristic fallback. Accepts OrcaSlicer-compatible printer/process/filament JSON profiles.
568
+ * @param data - The message payload
569
+ * @returns Job response with job ID
570
+ */
571
+ async slicingFdmRequest(data) {
572
+ return this.sendToQueue(types.MessageTypes.SLICING_FDM_REQUEST, data);
573
+ }
574
+ /**
575
+ * Result of FDM slicing simulation from OrcaSlicer (toolpath) or heuristic fallback. Contains exact physical metrics for cost calculation.
576
+ * @param data - The message payload
577
+ * @returns Job response with job ID
578
+ */
579
+ async slicingFdmResult(data) {
580
+ return this.sendToQueue(types.MessageTypes.SLICING_FDM_RESULT, data);
581
+ }
582
+ /**
583
+ * Request SLA/MSLA slicing simulation via PySLM cross-sectional analysis. Accepts resin printer profile with exposure, lift, and layer parameters.
584
+ * @param data - The message payload
585
+ * @returns Job response with job ID
586
+ */
587
+ async slicingSlaRequest(data) {
588
+ return this.sendToQueue(types.MessageTypes.SLICING_SLA_REQUEST, data);
589
+ }
590
+ /**
591
+ * Result of SLA/MSLA slicing simulation from PySLM cross-sectional analysis. Contains exact resin usage and print time metrics.
592
+ * @param data - The message payload
593
+ * @returns Job response with job ID
594
+ */
595
+ async slicingSlaResult(data) {
596
+ return this.sendToQueue(types.MessageTypes.SLICING_SLA_RESULT, data);
597
+ }
598
+ /**
599
+ * Emitted when AI texture generation completes (success or failure). Contains artifact S3 URLs on success, or error details on failure. The credit reservation should be confirmed (success) or released (failure) based on the status.
600
+ * @param data - The message payload
601
+ * @returns Job response with job ID
602
+ */
603
+ async textureGenerationCompleted(data) {
604
+ return this.sendToQueue(types.MessageTypes.TEXTURE_GENERATION_COMPLETED, data);
605
+ }
606
+ /**
607
+ * Request AI-powered texture generation for a 3D model. Requires a mesh file URL and a text prompt describing the desired texture. Credits are reserved before dispatch.
608
+ * @param data - The message payload
609
+ * @returns Job response with job ID
610
+ */
611
+ async textureGenerationRequest(data) {
612
+ return this.sendToQueue(types.MessageTypes.TEXTURE_GENERATION_REQUEST, data);
613
+ }
538
614
  /**
539
615
  * Handles thumbnail generation completed.
540
616
  * @param data - The message payload