@mesh-sync/worker-backend-client 4.0.21 → 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/README.md +474 -166
- package/dist/client.d.ts +85 -31
- package/dist/client.js +107 -41
- package/dist/types.d.ts +1477 -291
- package/dist/types.js +12 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -183,52 +183,6 @@ Used for:
|
|
|
183
183
|
|
|
184
184
|
|
|
185
185
|
|
|
186
|
-
### ekg-edge-batch-create-completed
|
|
187
|
-
|
|
188
|
-
**Description:** Completion event for EKG edge batch creation with propagation results.
|
|
189
|
-
|
|
190
|
-
**Method:** `client.ekgEdgeBatchCreateCompleted(data)`
|
|
191
|
-
|
|
192
|
-
**Payload Type:** `EkgEdgeBatchCreateCompletedMessage`
|
|
193
|
-
|
|
194
|
-
**Fields:**
|
|
195
|
-
|
|
196
|
-
- `requestId` (string) [✓]: Original request ID from ekg-edge-batch-create-request
|
|
197
|
-
|
|
198
|
-
- `success` (boolean) [✓]: Whether the batch operation succeeded
|
|
199
|
-
|
|
200
|
-
- `statistics` (object) [✓]: Batch operation statistics
|
|
201
|
-
|
|
202
|
-
- `conflicts` (array) [✗]: List of high-conflict edges requiring review
|
|
203
|
-
|
|
204
|
-
- `errors` (array) [✗]: Errors encountered during processing
|
|
205
|
-
|
|
206
|
-
- `graphMetrics` (object) [✗]: Overall graph state after this batch
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
### ekg-edge-batch-create-request
|
|
211
|
-
|
|
212
|
-
**Description:** Create multiple EKG edges with Dempster-Shafer mass functions. Triggered by metamodel detection completion.
|
|
213
|
-
|
|
214
|
-
**Method:** `client.ekgEdgeBatchCreateRequest(data)`
|
|
215
|
-
|
|
216
|
-
**Payload Type:** `EkgEdgeBatchCreateRequestMessage`
|
|
217
|
-
|
|
218
|
-
**Fields:**
|
|
219
|
-
|
|
220
|
-
- `requestId` (string) [✓]: Unique request ID for tracking (e.g., metamodel detection job ID)
|
|
221
|
-
|
|
222
|
-
- `source` (string) [✓]: Source of the edges: metamodel-heuristic, manual, taxonomy-import, etc.
|
|
223
|
-
|
|
224
|
-
- `edges` (array) [✓]: Batch of edges to create/update in the EKG
|
|
225
|
-
|
|
226
|
-
- `propagationOptions` (object) [✗]: Options for evidential edge propagation after edge creation
|
|
227
|
-
|
|
228
|
-
- `webhookUrl` (string) [✗]: Optional webhook URL for async completion notification
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
186
|
### etsy-analytics-sync-completed
|
|
233
187
|
|
|
234
188
|
**Description:** Contains synced analytics data for Etsy listings. Backend stores this in etsy_analytics_snapshots table and indexes to ELK.
|
|
@@ -464,63 +418,81 @@ Retry Configuration:
|
|
|
464
418
|
|
|
465
419
|
|
|
466
420
|
|
|
467
|
-
###
|
|
421
|
+
### ip-check-completed
|
|
468
422
|
|
|
469
|
-
**Description:** Contains
|
|
423
|
+
**Description:** Contains IP verification results including trademark risk, copyright risk, detected brands/franchises, and analysis confidence scores
|
|
470
424
|
|
|
471
|
-
**Method:** `client.
|
|
425
|
+
**Method:** `client.ipCheckCompleted(data)`
|
|
472
426
|
|
|
473
|
-
**Payload Type:** `
|
|
427
|
+
**Payload Type:** `IpCheckCompletedMessage`
|
|
474
428
|
|
|
475
429
|
**Fields:**
|
|
476
430
|
|
|
477
|
-
- `
|
|
431
|
+
- `modelId` (string) [✗]: Model UUID that was analyzed
|
|
478
432
|
|
|
479
|
-
- `
|
|
433
|
+
- `ownerId` (string) [✗]: Owner user ID
|
|
480
434
|
|
|
481
|
-
- `
|
|
435
|
+
- `entityType` (string) [✗]: Type of entity checked: 'model' or 'metamodel'
|
|
482
436
|
|
|
483
|
-
- `
|
|
437
|
+
- `status` (string) [✗]: Overall IP check outcome: 'clear', 'flagged', or 'error'
|
|
484
438
|
|
|
485
|
-
- `
|
|
439
|
+
- `trademarkRisk` (string) [✗]: Detected trademark infringement risk level: 'none', 'low', 'medium', 'high'
|
|
486
440
|
|
|
487
|
-
- `
|
|
441
|
+
- `copyrightRisk` (string) [✗]: Detected copyright infringement risk level: 'none', 'low', 'medium', 'high'
|
|
488
442
|
|
|
489
|
-
- `
|
|
443
|
+
- `matchedBrands` (array) [✗]: Brand names detected in model name or content
|
|
444
|
+
|
|
445
|
+
- `matchedFranchises` (array) [✗]: Franchise/character names detected
|
|
446
|
+
|
|
447
|
+
- `similarModelsCount` (integer) [✗]: Number of visually similar models found
|
|
448
|
+
|
|
449
|
+
- `confidence` (number) [✗]: Overall confidence score for the analysis (0.0-1.0)
|
|
450
|
+
|
|
451
|
+
- `riskScorePercent` (integer) [✗]: Risk score as 0-100 integer (FR-024: >70 HIGH, 40-70 MEDIUM, <40 LOW)
|
|
452
|
+
|
|
453
|
+
- `riskLevel` (string) [✗]: Overall risk level: 'none', 'low', 'medium', 'high'
|
|
454
|
+
|
|
455
|
+
- `recommendation` (string) [✗]: Recommended action: 'block' (HIGH risk), 'warn' (MEDIUM risk), 'allow' (LOW/NONE risk)
|
|
456
|
+
|
|
457
|
+
- `suggestedChanges` (object) [✗]: Suggested modifications to reduce IP risk
|
|
490
458
|
|
|
491
|
-
- `
|
|
459
|
+
- `heuristicResults` (object) [✗]: Detailed results from each heuristic check
|
|
492
460
|
|
|
493
|
-
- `
|
|
461
|
+
- `error` (object) [✗]: Error details if status is 'error'
|
|
494
462
|
|
|
463
|
+
- `processingDurationMs` (integer) [✗]: Total processing time in milliseconds
|
|
495
464
|
|
|
496
465
|
|
|
497
|
-
### marketplace-analytics-sync-request
|
|
498
466
|
|
|
499
|
-
|
|
467
|
+
### ip-check-request
|
|
500
468
|
|
|
501
|
-
**
|
|
469
|
+
**Description:** 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.
|
|
502
470
|
|
|
503
|
-
**
|
|
471
|
+
**Method:** `client.ipCheckRequest(data)`
|
|
472
|
+
|
|
473
|
+
**Payload Type:** `IpCheckRequestMessage`
|
|
504
474
|
|
|
505
475
|
**Fields:**
|
|
506
476
|
|
|
507
|
-
- `
|
|
477
|
+
- `modelId` (string) [✗]: Unique identifier for the model to analyze
|
|
508
478
|
|
|
509
|
-
- `
|
|
479
|
+
- `ownerId` (string) [✗]: User ID who owns the model
|
|
510
480
|
|
|
511
|
-
- `
|
|
481
|
+
- `entityType` (string) [✗]: Type of entity being checked: 'model' or 'metamodel'
|
|
512
482
|
|
|
513
|
-
- `
|
|
483
|
+
- `modelName` (string) [✗]: Name of the model for trademark/franchise text detection
|
|
514
484
|
|
|
515
|
-
- `
|
|
485
|
+
- `tags` (array) [✗]: Model tags for IP reference detection
|
|
516
486
|
|
|
517
|
-
- `
|
|
487
|
+
- `description` (string) [✗]: Model description for text-based IP analysis
|
|
518
488
|
|
|
519
|
-
- `
|
|
489
|
+
- `thumbnailUrl` (string) [✗]: URL to fetch the thumbnail image for visual analysis
|
|
520
490
|
|
|
521
|
-
- `
|
|
491
|
+
- `minioPath` (string) [✗]: Path to thumbnail in MinIO if stored internally
|
|
522
492
|
|
|
523
|
-
- `
|
|
493
|
+
- `additionalImageUrls` (array) [✗]: Optional additional images for more comprehensive analysis (e.g., 360° views)
|
|
494
|
+
|
|
495
|
+
- `analysisOptions` (object) [✗]: Optional analysis configuration
|
|
524
496
|
|
|
525
497
|
|
|
526
498
|
|
|
@@ -667,6 +639,41 @@ This is typically triggered after initial connection or periodically to keep mar
|
|
|
667
639
|
|
|
668
640
|
|
|
669
641
|
|
|
642
|
+
### marketplace-intelligence-completed
|
|
643
|
+
|
|
644
|
+
**Description:** Response from marketplace intelligence scraping.
|
|
645
|
+
Contains aggregated similarity data from marketplace searches.
|
|
646
|
+
|
|
647
|
+
Consumed by worker-backend to update pipeline context before
|
|
648
|
+
sellability analysis runs.
|
|
649
|
+
|
|
650
|
+
|
|
651
|
+
**Method:** `client.marketplaceIntelligenceCompleted(data)`
|
|
652
|
+
|
|
653
|
+
**Payload Type:** `MarketplaceIntelligenceCompletedMessage`
|
|
654
|
+
|
|
655
|
+
**Fields:**
|
|
656
|
+
|
|
657
|
+
- `modelId` (string) [✓]: UUID of the model that was researched
|
|
658
|
+
|
|
659
|
+
- `ownerId` (string) [✓]: UUID of the model owner
|
|
660
|
+
|
|
661
|
+
- `status` (string) [✓]: Result status
|
|
662
|
+
|
|
663
|
+
- `marketData` (object) [✗]: Aggregated market intelligence across all scraped marketplaces
|
|
664
|
+
|
|
665
|
+
- `marketplaceBreakdown` (array) [✗]: Results per marketplace
|
|
666
|
+
|
|
667
|
+
- `similarityScore` (number) [✗]: How saturated the market is for this model type (0=unique, 100=very common)
|
|
668
|
+
|
|
669
|
+
- `error` (object) [✗]: Error information if status is FAILED
|
|
670
|
+
|
|
671
|
+
- `analyzedAt` (string) [✗]: When the analysis completed
|
|
672
|
+
|
|
673
|
+
- `analysisVersion` (string) [✗]: Version of the intelligence collector
|
|
674
|
+
|
|
675
|
+
|
|
676
|
+
|
|
670
677
|
### marketplace-intelligence-event
|
|
671
678
|
|
|
672
679
|
**Description:** Public marketplace intelligence data scraped from external marketplaces.
|
|
@@ -712,6 +719,43 @@ Used for market research, pricing optimization, and trend detection.
|
|
|
712
719
|
|
|
713
720
|
|
|
714
721
|
|
|
722
|
+
### marketplace-intelligence-request
|
|
723
|
+
|
|
724
|
+
**Description:** Triggers automated marketplace scraping to find similar/competing listings
|
|
725
|
+
for a given model. This is a pipeline stage that runs after metadata generation
|
|
726
|
+
to inform sellability analysis with real market data.
|
|
727
|
+
|
|
728
|
+
The worker-analytic-collector (or marketplace-connectors worker) will:
|
|
729
|
+
1. Use model metadata (title, tags, category) to build search queries
|
|
730
|
+
2. Scrape connected marketplaces (Etsy, eBay, etc.) for similar listings
|
|
731
|
+
3. Emit marketplace-intelligence-event results for Elasticsearch indexing
|
|
732
|
+
4. Return aggregated similarity data to the pipeline context
|
|
733
|
+
|
|
734
|
+
Pipeline integration:
|
|
735
|
+
- Triggered after: metadata-generation (needs model title/tags/category)
|
|
736
|
+
- Results feed into: sellability-analysis (market positioning data)
|
|
737
|
+
|
|
738
|
+
|
|
739
|
+
**Method:** `client.marketplaceIntelligenceRequest(data)`
|
|
740
|
+
|
|
741
|
+
**Payload Type:** `MarketplaceIntelligenceRequestMessage`
|
|
742
|
+
|
|
743
|
+
**Fields:**
|
|
744
|
+
|
|
745
|
+
- `modelId` (string) [✓]: UUID of the model to research
|
|
746
|
+
|
|
747
|
+
- `ownerId` (string) [✓]: UUID of the model owner
|
|
748
|
+
|
|
749
|
+
- `searchContext` (object) [✗]: Model metadata used to build marketplace search queries
|
|
750
|
+
|
|
751
|
+
- `scrapingOptions` (object) [✗]: Configuration for the marketplace scraping
|
|
752
|
+
|
|
753
|
+
- `pipelineId` (string) [✗]: Pipeline execution ID for correlation
|
|
754
|
+
|
|
755
|
+
- `executionId` (string) [✗]: Pipeline execution UUID for correlation
|
|
756
|
+
|
|
757
|
+
|
|
758
|
+
|
|
715
759
|
### marketplace-listing-description-generation-completed
|
|
716
760
|
|
|
717
761
|
**Description:** Notifies backend that marketplace description generation completed. Contains generated description with metadata tracking (AI model, confidence, generation timestamp) and suggested price.
|
|
@@ -1017,76 +1061,6 @@ Includes bidirectional sync: - Pull: Fetch listings from marketplace to update l
|
|
|
1017
1061
|
|
|
1018
1062
|
|
|
1019
1063
|
|
|
1020
|
-
### marketplace-publish-listing-completed
|
|
1021
|
-
|
|
1022
|
-
**Description:** 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.).
|
|
1023
|
-
|
|
1024
|
-
**Method:** `client.marketplacePublishListingCompleted(data)`
|
|
1025
|
-
|
|
1026
|
-
**Payload Type:** `MarketplacePublishListingCompletedMessage`
|
|
1027
|
-
|
|
1028
|
-
**Fields:**
|
|
1029
|
-
|
|
1030
|
-
- `originalJobId` (string) [✗]: BullMQ job ID from original request
|
|
1031
|
-
|
|
1032
|
-
- `listingId` (string) [✗]: Internal marketplace_items UUID
|
|
1033
|
-
|
|
1034
|
-
- `metamodelId` (string) [✗]: UUID of the metamodel that was published
|
|
1035
|
-
|
|
1036
|
-
- `marketplaceProvider` (string) [✗]: Marketplace provider type (etsy, ebay, etc.)
|
|
1037
|
-
|
|
1038
|
-
- `materialName` (string) [✗]: Material variant name
|
|
1039
|
-
|
|
1040
|
-
- `status` (string) [✗]: Publication result (SUCCESS or FAILED)
|
|
1041
|
-
|
|
1042
|
-
- `externalListingId` (string) [✗]: External marketplace listing ID (only if status=SUCCESS)
|
|
1043
|
-
|
|
1044
|
-
- `externalListingUrl` (string) [✗]: URL to view listing on marketplace (only if status=SUCCESS)
|
|
1045
|
-
|
|
1046
|
-
- `externalFileId` (string) [✗]: External marketplace file ID (only if status=SUCCESS)
|
|
1047
|
-
|
|
1048
|
-
- `error` (object) [✗]: Error details (only if status=FAILED)
|
|
1049
|
-
|
|
1050
|
-
- `publishedAt` (string) [✗]: When the listing was created (ISO 8601, only if status=SUCCESS)
|
|
1051
|
-
|
|
1052
|
-
- `processingDuration` (integer) [✗]: Processing time in milliseconds
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
### marketplace-publish-listing-request
|
|
1057
|
-
|
|
1058
|
-
**Description:** 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.
|
|
1059
|
-
|
|
1060
|
-
**Method:** `client.marketplacePublishListingRequest(data)`
|
|
1061
|
-
|
|
1062
|
-
**Payload Type:** `MarketplacePublishListingRequestMessage`
|
|
1063
|
-
|
|
1064
|
-
**Fields:**
|
|
1065
|
-
|
|
1066
|
-
- `listingId` (string) [✗]: Internal marketplace_items table UUID
|
|
1067
|
-
|
|
1068
|
-
- `metamodelId` (string) [✗]: UUID of the metamodel being published
|
|
1069
|
-
|
|
1070
|
-
- `ownerId` (string) [✗]: UUID of the user who owns the metamodel
|
|
1071
|
-
|
|
1072
|
-
- `marketplaceProvider` (string) [✗]: Marketplace provider type (etsy, ebay, leboncoin, etc.)
|
|
1073
|
-
|
|
1074
|
-
- `marketplaceConnectionId` (string) [✗]: UUID of the marketplace connection configuration
|
|
1075
|
-
|
|
1076
|
-
- `materialVariant` (object) [✗]: Material-specific listing configuration
|
|
1077
|
-
|
|
1078
|
-
- `baseListingData` (object) [✗]: Common listing information shared across variants
|
|
1079
|
-
|
|
1080
|
-
- `publishOptions` (object) [✗]: Publishing configuration (marketplace-specific options)
|
|
1081
|
-
|
|
1082
|
-
- `marketplaceCredentials` (object) [✗]: Encrypted marketplace credentials (retrieved from marketplaceConnectionId)
|
|
1083
|
-
|
|
1084
|
-
- `fileMetadata` (object) [✗]: Digital file to upload
|
|
1085
|
-
|
|
1086
|
-
- `webhookUrl` (string) [✗]: Callback URL for completion notification
|
|
1087
|
-
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
1064
|
### media-batch-download-completed
|
|
1091
1065
|
|
|
1092
1066
|
**Description:** Notifies that a batch media download has been completed.
|
|
@@ -1323,7 +1297,7 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1323
1297
|
|
|
1324
1298
|
### model-finder-index-request
|
|
1325
1299
|
|
|
1326
|
-
**Description:**
|
|
1300
|
+
**Description:** DEPRECATED (2026-02-18) — FR-023 retired. Merge 3D rendering into worker-file-vectorize.
|
|
1327
1301
|
|
|
1328
1302
|
**Method:** `client.modelFinderIndexRequest(data)`
|
|
1329
1303
|
|
|
@@ -1339,7 +1313,7 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1339
1313
|
|
|
1340
1314
|
### model-finder-response
|
|
1341
1315
|
|
|
1342
|
-
**Description:**
|
|
1316
|
+
**Description:** DEPRECATED (2026-02-18) — FR-023 retired. Merge 3D rendering into worker-file-vectorize.
|
|
1343
1317
|
|
|
1344
1318
|
**Method:** `client.modelFinderResponse(data)`
|
|
1345
1319
|
|
|
@@ -1355,7 +1329,7 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1355
1329
|
|
|
1356
1330
|
### model-finder-search-request
|
|
1357
1331
|
|
|
1358
|
-
**Description:**
|
|
1332
|
+
**Description:** DEPRECATED (2026-02-18) — FR-023 retired. Merge 3D rendering into worker-file-vectorize.
|
|
1359
1333
|
|
|
1360
1334
|
**Method:** `client.modelFinderSearchRequest(data)`
|
|
1361
1335
|
|
|
@@ -1449,6 +1423,76 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1449
1423
|
|
|
1450
1424
|
|
|
1451
1425
|
|
|
1426
|
+
### model-print-analysis-completed
|
|
1427
|
+
|
|
1428
|
+
**Description:** Reports completion of 3D print analysis — contains estimation, printability, and cost breakdown per FR-022
|
|
1429
|
+
|
|
1430
|
+
**Method:** `client.modelPrintAnalysisCompleted(data)`
|
|
1431
|
+
|
|
1432
|
+
**Payload Type:** `ModelPrintAnalysisCompletedMessage`
|
|
1433
|
+
|
|
1434
|
+
**Fields:**
|
|
1435
|
+
|
|
1436
|
+
- `originalJobId` (string) [✗]: ID of the original analysis request job
|
|
1437
|
+
|
|
1438
|
+
- `modelId` (string) [✗]: UUID of the analysed model
|
|
1439
|
+
|
|
1440
|
+
- `status` (string) [✗]: Analysis result status
|
|
1441
|
+
|
|
1442
|
+
- `errorMessage` (string) [✗]: Error description when status is FAILED
|
|
1443
|
+
|
|
1444
|
+
- `material` (string) [✗]: Material type used for estimation
|
|
1445
|
+
|
|
1446
|
+
- `quality` (string) [✗]: Quality preset used
|
|
1447
|
+
|
|
1448
|
+
- `printTimeMinutes` (number) [✗]: Estimated total print time in minutes
|
|
1449
|
+
|
|
1450
|
+
- `materialGrams` (number) [✗]: Estimated material consumption in grams (body only)
|
|
1451
|
+
|
|
1452
|
+
- `needsSupport` (boolean) [✗]: Whether the model requires support structures
|
|
1453
|
+
|
|
1454
|
+
- `supportMaterialGrams` (number) [✗]: Estimated support material in grams
|
|
1455
|
+
|
|
1456
|
+
- `overhangPercentage` (number) [✗]: Percentage of surface area with overhangs > 45°
|
|
1457
|
+
|
|
1458
|
+
- `minWallThicknessMm` (number) [✗]: Thinnest detected wall in millimeters
|
|
1459
|
+
|
|
1460
|
+
- `solidVolumeCm3` (number) [✗]: Solid volume of the mesh in cm³
|
|
1461
|
+
|
|
1462
|
+
- `surfaceAreaCm2` (number) [✗]: Total surface area in cm²
|
|
1463
|
+
|
|
1464
|
+
- `boundingBox` (object) [✗]: Bounding box in millimeters
|
|
1465
|
+
|
|
1466
|
+
- `estimatedCostEUR` (number) [✗]: Total estimated production cost in EUR
|
|
1467
|
+
|
|
1468
|
+
- `costBreakdown` (object) [✗]: Granular cost breakdown per WF-009 MaterialCostCalculatorService
|
|
1469
|
+
|
|
1470
|
+
|
|
1471
|
+
|
|
1472
|
+
### model-print-analysis-request
|
|
1473
|
+
|
|
1474
|
+
**Description:** Triggers 3D print analysis for a model — estimates print time, material usage, support needs, and cost breakdown per FR-022
|
|
1475
|
+
|
|
1476
|
+
**Method:** `client.modelPrintAnalysisRequest(data)`
|
|
1477
|
+
|
|
1478
|
+
**Payload Type:** `ModelPrintAnalysisRequestMessage`
|
|
1479
|
+
|
|
1480
|
+
**Fields:**
|
|
1481
|
+
|
|
1482
|
+
- `modelId` (string) [✗]: UUID of the model to analyse
|
|
1483
|
+
|
|
1484
|
+
- `ownerId` (string) [✗]: UUID of the user who owns the model
|
|
1485
|
+
|
|
1486
|
+
- `material` (string) [✗]: Material type enum value (e.g. PLA, PETG, RESIN_STANDARD)
|
|
1487
|
+
|
|
1488
|
+
- `quality` (string) [✗]: Print quality preset
|
|
1489
|
+
|
|
1490
|
+
- `webhookUrl` (string) [✗]: URL called when analysis completes or fails
|
|
1491
|
+
|
|
1492
|
+
- `minioPath` (string) [✗]: Path to model in MinIO storage for geometry analysis (e.g. 'raw_models/{modelId}/original.glb')
|
|
1493
|
+
|
|
1494
|
+
|
|
1495
|
+
|
|
1452
1496
|
### model-sellability-analysis-completed
|
|
1453
1497
|
|
|
1454
1498
|
**Description:** Contains sellability analysis results including Etsy-specific recommendations, material pricing, and marketplace compatibility scores
|
|
@@ -1629,6 +1673,8 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1629
1673
|
|
|
1630
1674
|
- `recommendedOrientation` (object) [✗]: Recommended print orientation for minimal support material and best results
|
|
1631
1675
|
|
|
1676
|
+
- `slicerRecommendations` (object) [✗]: Slicer-derived recommended print settings based on model analysis (feeds into print job creation as defaults)
|
|
1677
|
+
|
|
1632
1678
|
- `originalUnit` (string) [✗]: Original file format unit detected from metadata or inferred from scale
|
|
1633
1679
|
|
|
1634
1680
|
- `formatVersion` (string) [✗]: File format version (e.g., 'STL Binary', 'OBJ v4', 'PLY 1.0')
|
|
@@ -1679,6 +1725,226 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1679
1725
|
|
|
1680
1726
|
|
|
1681
1727
|
|
|
1728
|
+
### slicing-fdm-request
|
|
1729
|
+
|
|
1730
|
+
**Description:** Request FDM slicing simulation via OrcaSlicer (preferred) or heuristic fallback. Accepts OrcaSlicer-compatible printer/process/filament JSON profiles.
|
|
1731
|
+
|
|
1732
|
+
**Method:** `client.slicingFdmRequest(data)`
|
|
1733
|
+
|
|
1734
|
+
**Payload Type:** `SlicingFdmRequestMessage`
|
|
1735
|
+
|
|
1736
|
+
**Fields:**
|
|
1737
|
+
|
|
1738
|
+
- `modelId` (string) [✗]: UUID of the model
|
|
1739
|
+
|
|
1740
|
+
- `storageItemId` (string) [✗]: UUID or path of the storage item to download the STL/3MF
|
|
1741
|
+
|
|
1742
|
+
- `profileId` (string) [✗]: UUID of the user's slicer profile from the database
|
|
1743
|
+
|
|
1744
|
+
- `profileName` (string) [✗]: Human-readable profile name (e.g. 'My Bambu X1C - PLA Fine')
|
|
1745
|
+
|
|
1746
|
+
- `printerProfile` (object) [✗]: OrcaSlicer printer profile JSON: nozzle_diameter, bed_shape, max speeds, acceleration, retraction
|
|
1747
|
+
|
|
1748
|
+
- `processProfile` (object) [✗]: OrcaSlicer process profile JSON: layer_height, sparse_infill_density, wall_loops, speeds, support settings
|
|
1749
|
+
|
|
1750
|
+
- `filamentProfile` (object) [✗]: OrcaSlicer filament profile JSON: filament_type, filament_density, temperature, flow_ratio, retraction
|
|
1751
|
+
|
|
1752
|
+
- `layerHeight` (number) [✗]: Override: layer height in mm (takes precedence over processProfile)
|
|
1753
|
+
|
|
1754
|
+
- `infillPercentage` (number) [✗]: Override: infill percentage (0-100)
|
|
1755
|
+
|
|
1756
|
+
- `nozzleDiameter` (number) [✗]: Override: nozzle diameter in mm
|
|
1757
|
+
|
|
1758
|
+
- `printSpeed` (number) [✗]: Override: outer wall print speed in mm/s
|
|
1759
|
+
|
|
1760
|
+
- `wallCount` (integer) [✗]: Override: number of wall loops / perimeters
|
|
1761
|
+
|
|
1762
|
+
- `supportEnabled` (boolean) [✗]: Override: generate support structures
|
|
1763
|
+
|
|
1764
|
+
- `materialDensity` (number) [✗]: Override: filament density in g/cm³ (default: 1.24 PLA)
|
|
1765
|
+
|
|
1766
|
+
- `webhookUrl` (string) [✗]: URL to POST the slicing result back to
|
|
1767
|
+
|
|
1768
|
+
|
|
1769
|
+
|
|
1770
|
+
### slicing-fdm-result
|
|
1771
|
+
|
|
1772
|
+
**Description:** Result of FDM slicing simulation from OrcaSlicer (toolpath) or heuristic fallback. Contains exact physical metrics for cost calculation.
|
|
1773
|
+
|
|
1774
|
+
**Method:** `client.slicingFdmResult(data)`
|
|
1775
|
+
|
|
1776
|
+
**Payload Type:** `SlicingFdmResultMessage`
|
|
1777
|
+
|
|
1778
|
+
**Fields:**
|
|
1779
|
+
|
|
1780
|
+
- `modelId` (string) [✗]: UUID of the model
|
|
1781
|
+
|
|
1782
|
+
- `status` (string) [✗]: Status of the simulation
|
|
1783
|
+
|
|
1784
|
+
- `printTimeHours` (number) [✗]: Exact print time in hours (from toolpath analysis)
|
|
1785
|
+
|
|
1786
|
+
- `materialWeightGrams` (number) [✗]: Total filament weight in grams (including supports)
|
|
1787
|
+
|
|
1788
|
+
- `materialVolumeCm3` (number) [✗]: Extruded material volume in cm³
|
|
1789
|
+
|
|
1790
|
+
- `maxZHeightMM` (number) [✗]: Maximum Z height in mm
|
|
1791
|
+
|
|
1792
|
+
- `supportMaterialWeightGrams` (number) [✗]: Support structure filament weight in grams
|
|
1793
|
+
|
|
1794
|
+
- `layerCount` (integer) [✗]: Total number of layers
|
|
1795
|
+
|
|
1796
|
+
- `totalExtrusionLengthMm` (number) [✗]: Total filament extrusion length in mm
|
|
1797
|
+
|
|
1798
|
+
- `slicingMethod` (string) [✗]: Engine that produced the result
|
|
1799
|
+
|
|
1800
|
+
- `slicerVersion` (string) [✗]: Version of the slicer engine used
|
|
1801
|
+
|
|
1802
|
+
- `profileUsed` (string) [✗]: Name or ID of the slicer profile used
|
|
1803
|
+
|
|
1804
|
+
- `errorCode` (string) [✗]: Error code if simulation failed
|
|
1805
|
+
|
|
1806
|
+
- `errorMessage` (string) [✗]: Error message if simulation failed
|
|
1807
|
+
|
|
1808
|
+
|
|
1809
|
+
|
|
1810
|
+
### slicing-sla-request
|
|
1811
|
+
|
|
1812
|
+
**Description:** Request SLA/MSLA slicing simulation via PySLM cross-sectional analysis. Accepts resin printer profile with exposure, lift, and layer parameters.
|
|
1813
|
+
|
|
1814
|
+
**Method:** `client.slicingSlaRequest(data)`
|
|
1815
|
+
|
|
1816
|
+
**Payload Type:** `SlicingSlaRequestMessage`
|
|
1817
|
+
|
|
1818
|
+
**Fields:**
|
|
1819
|
+
|
|
1820
|
+
- `modelId` (string) [✗]: UUID of the model
|
|
1821
|
+
|
|
1822
|
+
- `storageItemId` (string) [✗]: UUID or path of the storage item to download the STL/3MF
|
|
1823
|
+
|
|
1824
|
+
- `technology` (string) [✗]: SLA or MSLA
|
|
1825
|
+
|
|
1826
|
+
- `profileId` (string) [✗]: UUID of the user's slicer profile from the database
|
|
1827
|
+
|
|
1828
|
+
- `profileName` (string) [✗]: Human-readable profile name (e.g. 'Elegoo Mars 3 - Standard Grey')
|
|
1829
|
+
|
|
1830
|
+
- `layerHeight` (number) [✗]: Layer height in mm (default: 0.05)
|
|
1831
|
+
|
|
1832
|
+
- `exposureTime` (number) [✗]: Normal layer UV exposure time in seconds (default: 2.5)
|
|
1833
|
+
|
|
1834
|
+
- `bottomExposureTime` (number) [✗]: Bottom/burn-in layer exposure time in seconds (default: 30)
|
|
1835
|
+
|
|
1836
|
+
- `bottomLayers` (integer) [✗]: Number of bottom/burn-in layers (default: 5)
|
|
1837
|
+
|
|
1838
|
+
- `liftHeight` (number) [✗]: Platform lift height in mm between layers (default: 5.0)
|
|
1839
|
+
|
|
1840
|
+
- `liftSpeed` (number) [✗]: Platform lift speed in mm/min (default: 60)
|
|
1841
|
+
|
|
1842
|
+
- `retractSpeed` (number) [✗]: Platform retract speed in mm/min (default: 150)
|
|
1843
|
+
|
|
1844
|
+
- `resinDensity` (number) [✗]: Resin density in g/cm³ (default: 1.1)
|
|
1845
|
+
|
|
1846
|
+
- `supportEnabled` (boolean) [✗]: Generate support structures (default: true for SLA)
|
|
1847
|
+
|
|
1848
|
+
- `webhookUrl` (string) [✗]: URL to POST the slicing result back to
|
|
1849
|
+
|
|
1850
|
+
|
|
1851
|
+
|
|
1852
|
+
### slicing-sla-result
|
|
1853
|
+
|
|
1854
|
+
**Description:** Result of SLA/MSLA slicing simulation from PySLM cross-sectional analysis. Contains exact resin usage and print time metrics.
|
|
1855
|
+
|
|
1856
|
+
**Method:** `client.slicingSlaResult(data)`
|
|
1857
|
+
|
|
1858
|
+
**Payload Type:** `SlicingSlaResultMessage`
|
|
1859
|
+
|
|
1860
|
+
**Fields:**
|
|
1861
|
+
|
|
1862
|
+
- `modelId` (string) [✗]: UUID of the model
|
|
1863
|
+
|
|
1864
|
+
- `status` (string) [✗]: Status of the simulation
|
|
1865
|
+
|
|
1866
|
+
- `printTimeHours` (number) [✗]: Exact print time in hours (from cross-sectional analysis)
|
|
1867
|
+
|
|
1868
|
+
- `materialWeightGrams` (number) [✗]: Total resin weight in grams (including supports)
|
|
1869
|
+
|
|
1870
|
+
- `materialVolumeCm3` (number) [✗]: Cured resin volume in cm³ (from cross-sectional area integration)
|
|
1871
|
+
|
|
1872
|
+
- `maxZHeightMM` (number) [✗]: Maximum Z height in mm
|
|
1873
|
+
|
|
1874
|
+
- `supportMaterialWeightGrams` (number) [✗]: Support structure resin weight in grams
|
|
1875
|
+
|
|
1876
|
+
- `layerCount` (integer) [✗]: Total number of layers
|
|
1877
|
+
|
|
1878
|
+
- `maxCrossSectionAreaMm2` (number) [✗]: Maximum cross-sectional area in mm² (affects MSLA peel force)
|
|
1879
|
+
|
|
1880
|
+
- `slicingMethod` (string) [✗]: Engine that produced the result
|
|
1881
|
+
|
|
1882
|
+
- `slicerVersion` (string) [✗]: Version of PySLM / trimesh used
|
|
1883
|
+
|
|
1884
|
+
- `profileUsed` (string) [✗]: Name or ID of the slicer profile used
|
|
1885
|
+
|
|
1886
|
+
- `errorCode` (string) [✗]: Error code if simulation failed
|
|
1887
|
+
|
|
1888
|
+
- `errorMessage` (string) [✗]: Error message if simulation failed
|
|
1889
|
+
|
|
1890
|
+
|
|
1891
|
+
|
|
1892
|
+
### texture-generation-completed
|
|
1893
|
+
|
|
1894
|
+
**Description:** 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.
|
|
1895
|
+
|
|
1896
|
+
**Method:** `client.textureGenerationCompleted(data)`
|
|
1897
|
+
|
|
1898
|
+
**Payload Type:** `TextureGenerationCompletedMessage`
|
|
1899
|
+
|
|
1900
|
+
**Fields:**
|
|
1901
|
+
|
|
1902
|
+
- `jobId` (string) [✗]: The unique job identifier matching the original request.
|
|
1903
|
+
|
|
1904
|
+
- `modelId` (string) [✗]: The ID of the model that was textured.
|
|
1905
|
+
|
|
1906
|
+
- `tenantId` (string) [✗]: The tenant who owns the model.
|
|
1907
|
+
|
|
1908
|
+
- `status` (string) [✗]: The result status of the texture generation.
|
|
1909
|
+
|
|
1910
|
+
- `artifacts` (object) [✗]: S3 URLs of generated texture artifacts. Present only when status is 'completed'.
|
|
1911
|
+
|
|
1912
|
+
- `error` (object) [✗]: Error details. Present only when status is 'failed'.
|
|
1913
|
+
|
|
1914
|
+
- `metrics` (object) [✗]: Pipeline performance metrics.
|
|
1915
|
+
|
|
1916
|
+
- `creditReservationId` (string) [✗]: Credit reservation ID to confirm (on success) or release (on failure).
|
|
1917
|
+
|
|
1918
|
+
|
|
1919
|
+
|
|
1920
|
+
### texture-generation-request
|
|
1921
|
+
|
|
1922
|
+
**Description:** 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.
|
|
1923
|
+
|
|
1924
|
+
**Method:** `client.textureGenerationRequest(data)`
|
|
1925
|
+
|
|
1926
|
+
**Payload Type:** `TextureGenerationRequestMessage`
|
|
1927
|
+
|
|
1928
|
+
**Fields:**
|
|
1929
|
+
|
|
1930
|
+
- `jobId` (string) [✗]: Unique job identifier for tracking.
|
|
1931
|
+
|
|
1932
|
+
- `modelId` (string) [✗]: The unique identifier for the model to texture.
|
|
1933
|
+
|
|
1934
|
+
- `tenantId` (string) [✗]: The identifier of the tenant requesting the generation.
|
|
1935
|
+
|
|
1936
|
+
- `meshUrl` (string) [✗]: S3 URL to the source mesh file (GLB, OBJ, or STL).
|
|
1937
|
+
|
|
1938
|
+
- `prompt` (string) [✗]: Text description of the desired texture (1-500 characters). Example: 'weathered bronze with green patina'.
|
|
1939
|
+
|
|
1940
|
+
- `stylePreset` (string) [✗]: Style preset to guide the texture generation aesthetic.
|
|
1941
|
+
|
|
1942
|
+
- `resolution` (integer) [✗]: Output texture resolution (width = height in pixels).
|
|
1943
|
+
|
|
1944
|
+
- `creditReservationId` (string) [✗]: Credit reservation ID from the credit ledger. Must be confirmed on completion or released on failure.
|
|
1945
|
+
|
|
1946
|
+
|
|
1947
|
+
|
|
1682
1948
|
### thumbnail-generation-completed
|
|
1683
1949
|
|
|
1684
1950
|
**Description:** Handles thumbnail generation completed.
|
|
@@ -1701,6 +1967,8 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1701
1967
|
|
|
1702
1968
|
- `gltfPreviewPath` (string) [✗]: The path to the generated GLTF/GLB 3D preview file.
|
|
1703
1969
|
|
|
1970
|
+
- `animatedPreviewPath` (string) [✗]: The path to the generated animated MP4 preview file.
|
|
1971
|
+
|
|
1704
1972
|
- `errorMessage` (string) [✗]: An error message if the thumbnail generation failed.
|
|
1705
1973
|
|
|
1706
1974
|
- `storageLocation` (object) [✗]: The storage location of the model.
|
|
@@ -1761,6 +2029,8 @@ Used for:
|
|
|
1761
2029
|
|
|
1762
2030
|
**Fields:**
|
|
1763
2031
|
|
|
2032
|
+
- `eventVersion` (string) [✓]: Schema version for forward-compatible evolution
|
|
2033
|
+
|
|
1764
2034
|
- `eventType` (string) [✓]: Category of user engagement event
|
|
1765
2035
|
|
|
1766
2036
|
- `action` (string) [✓]: Specific user action performed
|
|
@@ -1769,7 +2039,7 @@ Used for:
|
|
|
1769
2039
|
|
|
1770
2040
|
- `userId` (string) [✓]: Unique identifier of the user
|
|
1771
2041
|
|
|
1772
|
-
- `userEmail` (string) [✗]: User's email
|
|
2042
|
+
- `userEmail` (string) [✗]: User's email — MUST be SHA-256 hashed at the producer side before publishing (GDPR/CNIL compliance). Never send raw email.
|
|
1773
2043
|
|
|
1774
2044
|
- `userCreatedAt` (string) [✗]: When the user account was created (for cohort analysis)
|
|
1775
2045
|
|
|
@@ -1777,7 +2047,9 @@ Used for:
|
|
|
1777
2047
|
|
|
1778
2048
|
- `sessionId` (string) [✗]: User session identifier for grouping actions
|
|
1779
2049
|
|
|
1780
|
-
- `requestId` (string) [✗]: Request ID for correlation with logs
|
|
2050
|
+
- `requestId` (string) [✗]: Request ID for correlation with backend logs
|
|
2051
|
+
|
|
2052
|
+
- `correlationId` (string) [✗]: Correlation ID to link engagement events across frontend and backend boundaries, and to pipeline traces
|
|
1781
2053
|
|
|
1782
2054
|
- `actionDetails` (object) [✗]: Additional context about the action
|
|
1783
2055
|
|
|
@@ -1969,12 +2241,6 @@ Used for:
|
|
|
1969
2241
|
- Compliance and audit trails
|
|
1970
2242
|
|
|
1971
2243
|
|
|
1972
|
-
- `ekgEdgeBatchCreateCompleted(data: EkgEdgeBatchCreateCompletedMessage): Promise<JobResponse>`
|
|
1973
|
-
- Completion event for EKG edge batch creation with propagation results.
|
|
1974
|
-
|
|
1975
|
-
- `ekgEdgeBatchCreateRequest(data: EkgEdgeBatchCreateRequestMessage): Promise<JobResponse>`
|
|
1976
|
-
- Create multiple EKG edges with Dempster-Shafer mass functions. Triggered by metamodel detection completion.
|
|
1977
|
-
|
|
1978
2244
|
- `etsyAnalyticsSyncCompleted(data: EtsyAnalyticsSyncCompletedMessage): Promise<JobResponse>`
|
|
1979
2245
|
- Contains synced analytics data for Etsy listings. Backend stores this in etsy_analytics_snapshots table and indexes to ELK.
|
|
1980
2246
|
|
|
@@ -2014,11 +2280,11 @@ Retry Configuration:
|
|
|
2014
2280
|
- `fileVectorizeRequest(data: FileVectorizeRequestMessage): Promise<JobResponse>`
|
|
2015
2281
|
- Request to generate a vector embedding for an image file using CLIP.
|
|
2016
2282
|
|
|
2017
|
-
- `
|
|
2018
|
-
- Contains
|
|
2283
|
+
- `ipCheckCompleted(data: IpCheckCompletedMessage): Promise<JobResponse>`
|
|
2284
|
+
- Contains IP verification results including trademark risk, copyright risk, detected brands/franchises, and analysis confidence scores
|
|
2019
2285
|
|
|
2020
|
-
- `
|
|
2021
|
-
-
|
|
2286
|
+
- `ipCheckRequest(data: IpCheckRequestMessage): Promise<JobResponse>`
|
|
2287
|
+
- 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.
|
|
2022
2288
|
|
|
2023
2289
|
- `marketplaceConnectionSyncCompleted(data: MarketplaceConnectionSyncCompletedMessage): Promise<JobResponse>`
|
|
2024
2290
|
- Notification that marketplace connection sync has completed. Contains updated connection metadata, profile information, and sync statistics.
|
|
@@ -2037,6 +2303,14 @@ This is typically triggered after initial connection or periodically to keep mar
|
|
|
2037
2303
|
- Requests rotation/refresh of marketplace connection credentials. This is used for: - OAuth token refresh when tokens are near expiry - API key rotation for enhanced security - Re-authentication after connection errors - Scheduled credential updates
|
|
2038
2304
|
|
|
2039
2305
|
|
|
2306
|
+
- `marketplaceIntelligenceCompleted(data: MarketplaceIntelligenceCompletedMessage): Promise<JobResponse>`
|
|
2307
|
+
- Response from marketplace intelligence scraping.
|
|
2308
|
+
Contains aggregated similarity data from marketplace searches.
|
|
2309
|
+
|
|
2310
|
+
Consumed by worker-backend to update pipeline context before
|
|
2311
|
+
sellability analysis runs.
|
|
2312
|
+
|
|
2313
|
+
|
|
2040
2314
|
- `marketplaceIntelligenceEvent(data: MarketplaceIntelligenceEventMessage): Promise<JobResponse>`
|
|
2041
2315
|
- Public marketplace intelligence data scraped from external marketplaces.
|
|
2042
2316
|
|
|
@@ -2055,6 +2329,22 @@ Consumed by worker-analytic-collector for Elasticsearch indexing.
|
|
|
2055
2329
|
Used for market research, pricing optimization, and trend detection.
|
|
2056
2330
|
|
|
2057
2331
|
|
|
2332
|
+
- `marketplaceIntelligenceRequest(data: MarketplaceIntelligenceRequestMessage): Promise<JobResponse>`
|
|
2333
|
+
- Triggers automated marketplace scraping to find similar/competing listings
|
|
2334
|
+
for a given model. This is a pipeline stage that runs after metadata generation
|
|
2335
|
+
to inform sellability analysis with real market data.
|
|
2336
|
+
|
|
2337
|
+
The worker-analytic-collector (or marketplace-connectors worker) will:
|
|
2338
|
+
1. Use model metadata (title, tags, category) to build search queries
|
|
2339
|
+
2. Scrape connected marketplaces (Etsy, eBay, etc.) for similar listings
|
|
2340
|
+
3. Emit marketplace-intelligence-event results for Elasticsearch indexing
|
|
2341
|
+
4. Return aggregated similarity data to the pipeline context
|
|
2342
|
+
|
|
2343
|
+
Pipeline integration:
|
|
2344
|
+
- Triggered after: metadata-generation (needs model title/tags/category)
|
|
2345
|
+
- Results feed into: sellability-analysis (market positioning data)
|
|
2346
|
+
|
|
2347
|
+
|
|
2058
2348
|
- `marketplaceListingDescriptionGenerationCompleted(data: MarketplaceListingDescriptionGenerationCompletedMessage): Promise<JobResponse>`
|
|
2059
2349
|
- Notifies backend that marketplace description generation completed. Contains generated description with metadata tracking (AI model, confidence, generation timestamp) and suggested price.
|
|
2060
2350
|
|
|
@@ -2088,12 +2378,6 @@ Includes bidirectional sync: - Pull: Fetch listings from marketplace to update l
|
|
|
2088
2378
|
- `marketplaceListingUpdateRequest(data: MarketplaceListingUpdateRequestMessage): Promise<JobResponse>`
|
|
2089
2379
|
- Request to update an existing listing on a marketplace (price, quantity, etc.)
|
|
2090
2380
|
|
|
2091
|
-
- `marketplacePublishListingCompleted(data: MarketplacePublishListingCompletedMessage): Promise<JobResponse>`
|
|
2092
|
-
- 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.).
|
|
2093
|
-
|
|
2094
|
-
- `marketplacePublishListingRequest(data: MarketplacePublishListingRequestMessage): Promise<JobResponse>`
|
|
2095
|
-
- 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.
|
|
2096
|
-
|
|
2097
2381
|
- `mediaBatchDownloadCompleted(data: MediaBatchDownloadCompletedMessage): Promise<JobResponse>`
|
|
2098
2382
|
- Notifies that a batch media download has been completed.
|
|
2099
2383
|
|
|
@@ -2128,13 +2412,13 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
2128
2412
|
- Handles model discovery scan requests events.
|
|
2129
2413
|
|
|
2130
2414
|
- `modelFinderIndexRequest(data: ModelFinderIndexRequestMessage): Promise<JobResponse>`
|
|
2131
|
-
-
|
|
2415
|
+
- DEPRECATED (2026-02-18) — FR-023 retired. Merge 3D rendering into worker-file-vectorize.
|
|
2132
2416
|
|
|
2133
2417
|
- `modelFinderResponse(data: ModelFinderResponseMessage): Promise<JobResponse>`
|
|
2134
|
-
-
|
|
2418
|
+
- DEPRECATED (2026-02-18) — FR-023 retired. Merge 3D rendering into worker-file-vectorize.
|
|
2135
2419
|
|
|
2136
2420
|
- `modelFinderSearchRequest(data: ModelFinderSearchRequestMessage): Promise<JobResponse>`
|
|
2137
|
-
-
|
|
2421
|
+
- DEPRECATED (2026-02-18) — FR-023 retired. Merge 3D rendering into worker-file-vectorize.
|
|
2138
2422
|
|
|
2139
2423
|
- `modelMetadataGenerationCompleted(data: ModelMetadataGenerationCompletedMessage): Promise<JobResponse>`
|
|
2140
2424
|
- Notifies backend that enriched marketplace metadata generation completed. Backend updates Model entity with generated description, tags, classification, etc.
|
|
@@ -2148,6 +2432,12 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
2148
2432
|
- `modelMetamodelDetectionRequest(data: ModelMetamodelDetectionRequestMessage): Promise<JobResponse>`
|
|
2149
2433
|
- Handles model metamodel detection requests.
|
|
2150
2434
|
|
|
2435
|
+
- `modelPrintAnalysisCompleted(data: ModelPrintAnalysisCompletedMessage): Promise<JobResponse>`
|
|
2436
|
+
- Reports completion of 3D print analysis — contains estimation, printability, and cost breakdown per FR-022
|
|
2437
|
+
|
|
2438
|
+
- `modelPrintAnalysisRequest(data: ModelPrintAnalysisRequestMessage): Promise<JobResponse>`
|
|
2439
|
+
- Triggers 3D print analysis for a model — estimates print time, material usage, support needs, and cost breakdown per FR-022
|
|
2440
|
+
|
|
2151
2441
|
- `modelSellabilityAnalysisCompleted(data: ModelSellabilityAnalysisCompletedMessage): Promise<JobResponse>`
|
|
2152
2442
|
- Contains sellability analysis results including Etsy-specific recommendations, material pricing, and marketplace compatibility scores
|
|
2153
2443
|
|
|
@@ -2166,6 +2456,24 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
2166
2456
|
- `modelTechnicalMetadataRequest(data: ModelTechnicalMetadataRequestMessage): Promise<JobResponse>`
|
|
2167
2457
|
- Triggers comprehensive technical analysis of a 3D model file to extract geometry, quality metrics, and print-readiness information
|
|
2168
2458
|
|
|
2459
|
+
- `slicingFdmRequest(data: SlicingFdmRequestMessage): Promise<JobResponse>`
|
|
2460
|
+
- Request FDM slicing simulation via OrcaSlicer (preferred) or heuristic fallback. Accepts OrcaSlicer-compatible printer/process/filament JSON profiles.
|
|
2461
|
+
|
|
2462
|
+
- `slicingFdmResult(data: SlicingFdmResultMessage): Promise<JobResponse>`
|
|
2463
|
+
- Result of FDM slicing simulation from OrcaSlicer (toolpath) or heuristic fallback. Contains exact physical metrics for cost calculation.
|
|
2464
|
+
|
|
2465
|
+
- `slicingSlaRequest(data: SlicingSlaRequestMessage): Promise<JobResponse>`
|
|
2466
|
+
- Request SLA/MSLA slicing simulation via PySLM cross-sectional analysis. Accepts resin printer profile with exposure, lift, and layer parameters.
|
|
2467
|
+
|
|
2468
|
+
- `slicingSlaResult(data: SlicingSlaResultMessage): Promise<JobResponse>`
|
|
2469
|
+
- Result of SLA/MSLA slicing simulation from PySLM cross-sectional analysis. Contains exact resin usage and print time metrics.
|
|
2470
|
+
|
|
2471
|
+
- `textureGenerationCompleted(data: TextureGenerationCompletedMessage): Promise<JobResponse>`
|
|
2472
|
+
- 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.
|
|
2473
|
+
|
|
2474
|
+
- `textureGenerationRequest(data: TextureGenerationRequestMessage): Promise<JobResponse>`
|
|
2475
|
+
- 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.
|
|
2476
|
+
|
|
2169
2477
|
- `thumbnailGenerationCompleted(data: ThumbnailGenerationCompletedMessage): Promise<JobResponse>`
|
|
2170
2478
|
- Handles thumbnail generation completed.
|
|
2171
2479
|
|