@mesh-sync/worker-backend-client 4.0.19 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +533 -52
- package/dist/client.d.ts +98 -12
- package/dist/client.js +124 -16
- package/dist/types.d.ts +396 -34
- package/dist/types.js +13 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -100,6 +100,26 @@ await client.sendToQueue(MessageTypes.FILE_DOWNLOAD_REQUEST, {
|
|
|
100
100
|
## Available Message Types
|
|
101
101
|
|
|
102
102
|
|
|
103
|
+
### analytics-collection-request
|
|
104
|
+
|
|
105
|
+
**Description:** Request to trigger a manual market data collection job.
|
|
106
|
+
Used for ad-hoc scraping of specific queries on marketplaces.
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
**Method:** `client.analyticsCollectionRequest(data)`
|
|
110
|
+
|
|
111
|
+
**Payload Type:** `AnalyticsCollectionRequestMessage`
|
|
112
|
+
|
|
113
|
+
**Fields:**
|
|
114
|
+
|
|
115
|
+
- `marketplace` (string) [✗]: The marketplace to scrape (etsy, ebay, etc.)
|
|
116
|
+
|
|
117
|
+
- `query` (string) [✓]: The search query to use
|
|
118
|
+
|
|
119
|
+
- `options` (object) [✗]: Collection options (pages, filters, etc.)
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
103
123
|
### backend-logging-event
|
|
104
124
|
|
|
105
125
|
**Description:** Centralized logging event for capturing all warn/error/failure logs from meshsync-backend.
|
|
@@ -163,52 +183,6 @@ Used for:
|
|
|
163
183
|
|
|
164
184
|
|
|
165
185
|
|
|
166
|
-
### ekg-edge-batch-create-completed
|
|
167
|
-
|
|
168
|
-
**Description:** Completion event for EKG edge batch creation with propagation results.
|
|
169
|
-
|
|
170
|
-
**Method:** `client.ekgEdgeBatchCreateCompleted(data)`
|
|
171
|
-
|
|
172
|
-
**Payload Type:** `EkgEdgeBatchCreateCompletedMessage`
|
|
173
|
-
|
|
174
|
-
**Fields:**
|
|
175
|
-
|
|
176
|
-
- `requestId` (string) [✓]: Original request ID from ekg-edge-batch-create-request
|
|
177
|
-
|
|
178
|
-
- `success` (boolean) [✓]: Whether the batch operation succeeded
|
|
179
|
-
|
|
180
|
-
- `statistics` (object) [✓]: Batch operation statistics
|
|
181
|
-
|
|
182
|
-
- `conflicts` (array) [✗]: List of high-conflict edges requiring review
|
|
183
|
-
|
|
184
|
-
- `errors` (array) [✗]: Errors encountered during processing
|
|
185
|
-
|
|
186
|
-
- `graphMetrics` (object) [✗]: Overall graph state after this batch
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
### ekg-edge-batch-create-request
|
|
191
|
-
|
|
192
|
-
**Description:** Create multiple EKG edges with Dempster-Shafer mass functions. Triggered by metamodel detection completion.
|
|
193
|
-
|
|
194
|
-
**Method:** `client.ekgEdgeBatchCreateRequest(data)`
|
|
195
|
-
|
|
196
|
-
**Payload Type:** `EkgEdgeBatchCreateRequestMessage`
|
|
197
|
-
|
|
198
|
-
**Fields:**
|
|
199
|
-
|
|
200
|
-
- `requestId` (string) [✓]: Unique request ID for tracking (e.g., metamodel detection job ID)
|
|
201
|
-
|
|
202
|
-
- `source` (string) [✓]: Source of the edges: metamodel-heuristic, manual, taxonomy-import, etc.
|
|
203
|
-
|
|
204
|
-
- `edges` (array) [✓]: Batch of edges to create/update in the EKG
|
|
205
|
-
|
|
206
|
-
- `propagationOptions` (object) [✗]: Options for evidential edge propagation after edge creation
|
|
207
|
-
|
|
208
|
-
- `webhookUrl` (string) [✗]: Optional webhook URL for async completion notification
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
186
|
### etsy-analytics-sync-completed
|
|
213
187
|
|
|
214
188
|
**Description:** Contains synced analytics data for Etsy listings. Backend stores this in etsy_analytics_snapshots table and indexes to ELK.
|
|
@@ -444,6 +418,84 @@ Retry Configuration:
|
|
|
444
418
|
|
|
445
419
|
|
|
446
420
|
|
|
421
|
+
### ip-check-completed
|
|
422
|
+
|
|
423
|
+
**Description:** Contains IP verification results including trademark risk, copyright risk, detected brands/franchises, and analysis confidence scores
|
|
424
|
+
|
|
425
|
+
**Method:** `client.ipCheckCompleted(data)`
|
|
426
|
+
|
|
427
|
+
**Payload Type:** `IpCheckCompletedMessage`
|
|
428
|
+
|
|
429
|
+
**Fields:**
|
|
430
|
+
|
|
431
|
+
- `modelId` (string) [✗]: Model UUID that was analyzed
|
|
432
|
+
|
|
433
|
+
- `ownerId` (string) [✗]: Owner user ID
|
|
434
|
+
|
|
435
|
+
- `entityType` (string) [✗]: Type of entity checked: 'model' or 'metamodel'
|
|
436
|
+
|
|
437
|
+
- `status` (string) [✗]: Overall IP check outcome: 'clear', 'flagged', or 'error'
|
|
438
|
+
|
|
439
|
+
- `trademarkRisk` (string) [✗]: Detected trademark infringement risk level: 'none', 'low', 'medium', 'high'
|
|
440
|
+
|
|
441
|
+
- `copyrightRisk` (string) [✗]: Detected copyright infringement risk level: 'none', 'low', 'medium', 'high'
|
|
442
|
+
|
|
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
|
|
458
|
+
|
|
459
|
+
- `heuristicResults` (object) [✗]: Detailed results from each heuristic check
|
|
460
|
+
|
|
461
|
+
- `error` (object) [✗]: Error details if status is 'error'
|
|
462
|
+
|
|
463
|
+
- `processingDurationMs` (integer) [✗]: Total processing time in milliseconds
|
|
464
|
+
|
|
465
|
+
|
|
466
|
+
|
|
467
|
+
### ip-check-request
|
|
468
|
+
|
|
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.
|
|
470
|
+
|
|
471
|
+
**Method:** `client.ipCheckRequest(data)`
|
|
472
|
+
|
|
473
|
+
**Payload Type:** `IpCheckRequestMessage`
|
|
474
|
+
|
|
475
|
+
**Fields:**
|
|
476
|
+
|
|
477
|
+
- `modelId` (string) [✗]: Unique identifier for the model to analyze
|
|
478
|
+
|
|
479
|
+
- `ownerId` (string) [✗]: User ID who owns the model
|
|
480
|
+
|
|
481
|
+
- `entityType` (string) [✗]: Type of entity being checked: 'model' or 'metamodel'
|
|
482
|
+
|
|
483
|
+
- `modelName` (string) [✗]: Name of the model for trademark/franchise text detection
|
|
484
|
+
|
|
485
|
+
- `tags` (array) [✗]: Model tags for IP reference detection
|
|
486
|
+
|
|
487
|
+
- `description` (string) [✗]: Model description for text-based IP analysis
|
|
488
|
+
|
|
489
|
+
- `thumbnailUrl` (string) [✗]: URL to fetch the thumbnail image for visual analysis
|
|
490
|
+
|
|
491
|
+
- `minioPath` (string) [✗]: Path to thumbnail in MinIO if stored internally
|
|
492
|
+
|
|
493
|
+
- `additionalImageUrls` (array) [✗]: Optional additional images for more comprehensive analysis (e.g., 360° views)
|
|
494
|
+
|
|
495
|
+
- `analysisOptions` (object) [✗]: Optional analysis configuration
|
|
496
|
+
|
|
497
|
+
|
|
498
|
+
|
|
447
499
|
### marketplace-analytics-sync-completed
|
|
448
500
|
|
|
449
501
|
**Description:** Contains synced analytics data for marketplace listings. Backend stores this in marketplace_analytics_snapshots table and indexes to ELK. Works with any marketplace provider.
|
|
@@ -647,6 +699,41 @@ This is typically triggered after initial connection or periodically to keep mar
|
|
|
647
699
|
|
|
648
700
|
|
|
649
701
|
|
|
702
|
+
### marketplace-intelligence-completed
|
|
703
|
+
|
|
704
|
+
**Description:** Response from marketplace intelligence scraping.
|
|
705
|
+
Contains aggregated similarity data from marketplace searches.
|
|
706
|
+
|
|
707
|
+
Consumed by worker-backend to update pipeline context before
|
|
708
|
+
sellability analysis runs.
|
|
709
|
+
|
|
710
|
+
|
|
711
|
+
**Method:** `client.marketplaceIntelligenceCompleted(data)`
|
|
712
|
+
|
|
713
|
+
**Payload Type:** `MarketplaceIntelligenceCompletedMessage`
|
|
714
|
+
|
|
715
|
+
**Fields:**
|
|
716
|
+
|
|
717
|
+
- `modelId` (string) [✓]: UUID of the model that was researched
|
|
718
|
+
|
|
719
|
+
- `ownerId` (string) [✓]: UUID of the model owner
|
|
720
|
+
|
|
721
|
+
- `status` (string) [✓]: Result status
|
|
722
|
+
|
|
723
|
+
- `marketData` (object) [✗]: Aggregated market intelligence across all scraped marketplaces
|
|
724
|
+
|
|
725
|
+
- `marketplaceBreakdown` (array) [✗]: Results per marketplace
|
|
726
|
+
|
|
727
|
+
- `similarityScore` (number) [✗]: How saturated the market is for this model type (0=unique, 100=very common)
|
|
728
|
+
|
|
729
|
+
- `error` (object) [✗]: Error information if status is FAILED
|
|
730
|
+
|
|
731
|
+
- `analyzedAt` (string) [✗]: When the analysis completed
|
|
732
|
+
|
|
733
|
+
- `analysisVersion` (string) [✗]: Version of the intelligence collector
|
|
734
|
+
|
|
735
|
+
|
|
736
|
+
|
|
650
737
|
### marketplace-intelligence-event
|
|
651
738
|
|
|
652
739
|
**Description:** Public marketplace intelligence data scraped from external marketplaces.
|
|
@@ -692,6 +779,43 @@ Used for market research, pricing optimization, and trend detection.
|
|
|
692
779
|
|
|
693
780
|
|
|
694
781
|
|
|
782
|
+
### marketplace-intelligence-request
|
|
783
|
+
|
|
784
|
+
**Description:** Triggers automated marketplace scraping to find similar/competing listings
|
|
785
|
+
for a given model. This is a pipeline stage that runs after metadata generation
|
|
786
|
+
to inform sellability analysis with real market data.
|
|
787
|
+
|
|
788
|
+
The worker-analytic-collector (or marketplace-connectors worker) will:
|
|
789
|
+
1. Use model metadata (title, tags, category) to build search queries
|
|
790
|
+
2. Scrape connected marketplaces (Etsy, eBay, etc.) for similar listings
|
|
791
|
+
3. Emit marketplace-intelligence-event results for Elasticsearch indexing
|
|
792
|
+
4. Return aggregated similarity data to the pipeline context
|
|
793
|
+
|
|
794
|
+
Pipeline integration:
|
|
795
|
+
- Triggered after: metadata-generation (needs model title/tags/category)
|
|
796
|
+
- Results feed into: sellability-analysis (market positioning data)
|
|
797
|
+
|
|
798
|
+
|
|
799
|
+
**Method:** `client.marketplaceIntelligenceRequest(data)`
|
|
800
|
+
|
|
801
|
+
**Payload Type:** `MarketplaceIntelligenceRequestMessage`
|
|
802
|
+
|
|
803
|
+
**Fields:**
|
|
804
|
+
|
|
805
|
+
- `modelId` (string) [✓]: UUID of the model to research
|
|
806
|
+
|
|
807
|
+
- `ownerId` (string) [✓]: UUID of the model owner
|
|
808
|
+
|
|
809
|
+
- `searchContext` (object) [✗]: Model metadata used to build marketplace search queries
|
|
810
|
+
|
|
811
|
+
- `scrapingOptions` (object) [✗]: Configuration for the marketplace scraping
|
|
812
|
+
|
|
813
|
+
- `pipelineId` (string) [✗]: Pipeline execution ID for correlation
|
|
814
|
+
|
|
815
|
+
- `executionId` (string) [✗]: Pipeline execution UUID for correlation
|
|
816
|
+
|
|
817
|
+
|
|
818
|
+
|
|
695
819
|
### marketplace-listing-description-generation-completed
|
|
696
820
|
|
|
697
821
|
**Description:** Notifies backend that marketplace description generation completed. Contains generated description with metadata tracking (AI model, confidence, generation timestamp) and suggested price.
|
|
@@ -1429,6 +1553,76 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1429
1553
|
|
|
1430
1554
|
|
|
1431
1555
|
|
|
1556
|
+
### model-print-analysis-completed
|
|
1557
|
+
|
|
1558
|
+
**Description:** Reports completion of 3D print analysis — contains estimation, printability, and cost breakdown per FR-022
|
|
1559
|
+
|
|
1560
|
+
**Method:** `client.modelPrintAnalysisCompleted(data)`
|
|
1561
|
+
|
|
1562
|
+
**Payload Type:** `ModelPrintAnalysisCompletedMessage`
|
|
1563
|
+
|
|
1564
|
+
**Fields:**
|
|
1565
|
+
|
|
1566
|
+
- `originalJobId` (string) [✗]: ID of the original analysis request job
|
|
1567
|
+
|
|
1568
|
+
- `modelId` (string) [✗]: UUID of the analysed model
|
|
1569
|
+
|
|
1570
|
+
- `status` (string) [✗]: Analysis result status
|
|
1571
|
+
|
|
1572
|
+
- `errorMessage` (string) [✗]: Error description when status is FAILED
|
|
1573
|
+
|
|
1574
|
+
- `material` (string) [✗]: Material type used for estimation
|
|
1575
|
+
|
|
1576
|
+
- `quality` (string) [✗]: Quality preset used
|
|
1577
|
+
|
|
1578
|
+
- `printTimeMinutes` (number) [✗]: Estimated total print time in minutes
|
|
1579
|
+
|
|
1580
|
+
- `materialGrams` (number) [✗]: Estimated material consumption in grams (body only)
|
|
1581
|
+
|
|
1582
|
+
- `needsSupport` (boolean) [✗]: Whether the model requires support structures
|
|
1583
|
+
|
|
1584
|
+
- `supportMaterialGrams` (number) [✗]: Estimated support material in grams
|
|
1585
|
+
|
|
1586
|
+
- `overhangPercentage` (number) [✗]: Percentage of surface area with overhangs > 45°
|
|
1587
|
+
|
|
1588
|
+
- `minWallThicknessMm` (number) [✗]: Thinnest detected wall in millimeters
|
|
1589
|
+
|
|
1590
|
+
- `solidVolumeCm3` (number) [✗]: Solid volume of the mesh in cm³
|
|
1591
|
+
|
|
1592
|
+
- `surfaceAreaCm2` (number) [✗]: Total surface area in cm²
|
|
1593
|
+
|
|
1594
|
+
- `boundingBox` (object) [✗]: Bounding box in millimeters
|
|
1595
|
+
|
|
1596
|
+
- `estimatedCostEUR` (number) [✗]: Total estimated production cost in EUR
|
|
1597
|
+
|
|
1598
|
+
- `costBreakdown` (object) [✗]: Granular cost breakdown per WF-009 MaterialCostCalculatorService
|
|
1599
|
+
|
|
1600
|
+
|
|
1601
|
+
|
|
1602
|
+
### model-print-analysis-request
|
|
1603
|
+
|
|
1604
|
+
**Description:** Triggers 3D print analysis for a model — estimates print time, material usage, support needs, and cost breakdown per FR-022
|
|
1605
|
+
|
|
1606
|
+
**Method:** `client.modelPrintAnalysisRequest(data)`
|
|
1607
|
+
|
|
1608
|
+
**Payload Type:** `ModelPrintAnalysisRequestMessage`
|
|
1609
|
+
|
|
1610
|
+
**Fields:**
|
|
1611
|
+
|
|
1612
|
+
- `modelId` (string) [✗]: UUID of the model to analyse
|
|
1613
|
+
|
|
1614
|
+
- `ownerId` (string) [✗]: UUID of the user who owns the model
|
|
1615
|
+
|
|
1616
|
+
- `material` (string) [✗]: Material type enum value (e.g. PLA, PETG, RESIN_STANDARD)
|
|
1617
|
+
|
|
1618
|
+
- `quality` (string) [✗]: Print quality preset
|
|
1619
|
+
|
|
1620
|
+
- `webhookUrl` (string) [✗]: URL called when analysis completes or fails
|
|
1621
|
+
|
|
1622
|
+
- `minioPath` (string) [✗]: Path to model in MinIO storage for geometry analysis (e.g. 'raw_models/{modelId}/original.glb')
|
|
1623
|
+
|
|
1624
|
+
|
|
1625
|
+
|
|
1432
1626
|
### model-sellability-analysis-completed
|
|
1433
1627
|
|
|
1434
1628
|
**Description:** Contains sellability analysis results including Etsy-specific recommendations, material pricing, and marketplace compatibility scores
|
|
@@ -1609,6 +1803,8 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1609
1803
|
|
|
1610
1804
|
- `recommendedOrientation` (object) [✗]: Recommended print orientation for minimal support material and best results
|
|
1611
1805
|
|
|
1806
|
+
- `slicerRecommendations` (object) [✗]: Slicer-derived recommended print settings based on model analysis (feeds into print job creation as defaults)
|
|
1807
|
+
|
|
1612
1808
|
- `originalUnit` (string) [✗]: Original file format unit detected from metadata or inferred from scale
|
|
1613
1809
|
|
|
1614
1810
|
- `formatVersion` (string) [✗]: File format version (e.g., 'STL Binary', 'OBJ v4', 'PLY 1.0')
|
|
@@ -1659,6 +1855,236 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1659
1855
|
|
|
1660
1856
|
|
|
1661
1857
|
|
|
1858
|
+
### slicing-fdm-request
|
|
1859
|
+
|
|
1860
|
+
**Description:** Request FDM slicing simulation via OrcaSlicer (preferred) or heuristic fallback. Accepts OrcaSlicer-compatible printer/process/filament JSON profiles.
|
|
1861
|
+
|
|
1862
|
+
**Method:** `client.slicingFdmRequest(data)`
|
|
1863
|
+
|
|
1864
|
+
**Payload Type:** `SlicingFdmRequestMessage`
|
|
1865
|
+
|
|
1866
|
+
**Fields:**
|
|
1867
|
+
|
|
1868
|
+
- `modelId` (string) [✗]: UUID of the model
|
|
1869
|
+
|
|
1870
|
+
- `storageItemId` (string) [✗]: UUID or path of the storage item to download the STL/3MF
|
|
1871
|
+
|
|
1872
|
+
- `profileId` (string) [✗]: UUID of the user's slicer profile from the database
|
|
1873
|
+
|
|
1874
|
+
- `profileName` (string) [✗]: Human-readable profile name (e.g. 'My Bambu X1C - PLA Fine')
|
|
1875
|
+
|
|
1876
|
+
- `printerProfile` (object) [✗]: OrcaSlicer printer profile JSON: nozzle_diameter, bed_shape, max speeds, acceleration, retraction
|
|
1877
|
+
|
|
1878
|
+
- `processProfile` (object) [✗]: OrcaSlicer process profile JSON: layer_height, sparse_infill_density, wall_loops, speeds, support settings
|
|
1879
|
+
|
|
1880
|
+
- `filamentProfile` (object) [✗]: OrcaSlicer filament profile JSON: filament_type, filament_density, temperature, flow_ratio, retraction
|
|
1881
|
+
|
|
1882
|
+
- `layerHeight` (number) [✗]: Override: layer height in mm (takes precedence over processProfile)
|
|
1883
|
+
|
|
1884
|
+
- `infillPercentage` (number) [✗]: Override: infill percentage (0-100)
|
|
1885
|
+
|
|
1886
|
+
- `nozzleDiameter` (number) [✗]: Override: nozzle diameter in mm
|
|
1887
|
+
|
|
1888
|
+
- `printSpeed` (number) [✗]: Override: outer wall print speed in mm/s
|
|
1889
|
+
|
|
1890
|
+
- `wallCount` (integer) [✗]: Override: number of wall loops / perimeters
|
|
1891
|
+
|
|
1892
|
+
- `supportEnabled` (boolean) [✗]: Override: generate support structures
|
|
1893
|
+
|
|
1894
|
+
- `materialDensity` (number) [✗]: Override: filament density in g/cm³ (default: 1.24 PLA)
|
|
1895
|
+
|
|
1896
|
+
- `webhookUrl` (string) [✗]: URL to POST the slicing result back to
|
|
1897
|
+
|
|
1898
|
+
|
|
1899
|
+
|
|
1900
|
+
### slicing-fdm-result
|
|
1901
|
+
|
|
1902
|
+
**Description:** Result of FDM slicing simulation from OrcaSlicer (toolpath) or heuristic fallback. Contains exact physical metrics for cost calculation.
|
|
1903
|
+
|
|
1904
|
+
**Method:** `client.slicingFdmResult(data)`
|
|
1905
|
+
|
|
1906
|
+
**Payload Type:** `SlicingFdmResultMessage`
|
|
1907
|
+
|
|
1908
|
+
**Fields:**
|
|
1909
|
+
|
|
1910
|
+
- `modelId` (string) [✗]: UUID of the model
|
|
1911
|
+
|
|
1912
|
+
- `status` (string) [✗]: Status of the simulation
|
|
1913
|
+
|
|
1914
|
+
- `printTimeHours` (number) [✗]: Exact print time in hours (from toolpath analysis)
|
|
1915
|
+
|
|
1916
|
+
- `materialWeightGrams` (number) [✗]: Total filament weight in grams (including supports)
|
|
1917
|
+
|
|
1918
|
+
- `materialVolumeCm3` (number) [✗]: Extruded material volume in cm³
|
|
1919
|
+
|
|
1920
|
+
- `maxZHeightMM` (number) [✗]: Maximum Z height in mm
|
|
1921
|
+
|
|
1922
|
+
- `supportMaterialWeightGrams` (number) [✗]: Support structure filament weight in grams
|
|
1923
|
+
|
|
1924
|
+
- `layerCount` (integer) [✗]: Total number of layers
|
|
1925
|
+
|
|
1926
|
+
- `totalExtrusionLengthMm` (number) [✗]: Total filament extrusion length in mm
|
|
1927
|
+
|
|
1928
|
+
- `slicingMethod` (string) [✗]: Engine that produced the result
|
|
1929
|
+
|
|
1930
|
+
- `slicerVersion` (string) [✗]: Version of the slicer engine used
|
|
1931
|
+
|
|
1932
|
+
- `profileUsed` (string) [✗]: Name or ID of the slicer profile used
|
|
1933
|
+
|
|
1934
|
+
- `errorCode` (string) [✗]: Error code if simulation failed
|
|
1935
|
+
|
|
1936
|
+
- `errorMessage` (string) [✗]: Error message if simulation failed
|
|
1937
|
+
|
|
1938
|
+
|
|
1939
|
+
|
|
1940
|
+
### slicing-simulation-request
|
|
1941
|
+
|
|
1942
|
+
**Description:** DEPRECATED: Use slicing-fdm-request or slicing-sla-request instead. Unified contract kept for backward compatibility only.
|
|
1943
|
+
|
|
1944
|
+
**Method:** `client.slicingSimulationRequest(data)`
|
|
1945
|
+
|
|
1946
|
+
**Payload Type:** `SlicingSimulationRequestMessage`
|
|
1947
|
+
|
|
1948
|
+
**Fields:**
|
|
1949
|
+
|
|
1950
|
+
- `modelId` (string) [✗]: UUID of the model
|
|
1951
|
+
|
|
1952
|
+
- `storageItemId` (string) [✗]: UUID or path of the storage item to download the STL/3MF
|
|
1953
|
+
|
|
1954
|
+
- `technology` (string) [✗]: Printing technology: FDM, SLA, MSLA, SLS
|
|
1955
|
+
|
|
1956
|
+
- `slicerProfile` (object) [✗]: Complete slicer profile with user settings. For FDM: OrcaSlicer-compatible JSON profiles. For SLA: exposure/lift parameters.
|
|
1957
|
+
|
|
1958
|
+
- `slicerConfig` (object) [✗]: DEPRECATED: Legacy simple config format. Use slicerProfile instead.
|
|
1959
|
+
|
|
1960
|
+
- `slicerProfileId` (string) [✗]: DEPRECATED: UUID of the slicer profile. Use slicerProfile.profileId instead.
|
|
1961
|
+
|
|
1962
|
+
- `webhookUrl` (string) [✗]: URL to POST the slicing result back to
|
|
1963
|
+
|
|
1964
|
+
|
|
1965
|
+
|
|
1966
|
+
### slicing-simulation-result
|
|
1967
|
+
|
|
1968
|
+
**Description:** DEPRECATED: Use slicing-fdm-result or slicing-sla-result instead. Unified contract kept for backward compatibility only.
|
|
1969
|
+
|
|
1970
|
+
**Method:** `client.slicingSimulationResult(data)`
|
|
1971
|
+
|
|
1972
|
+
**Payload Type:** `SlicingSimulationResultMessage`
|
|
1973
|
+
|
|
1974
|
+
**Fields:**
|
|
1975
|
+
|
|
1976
|
+
- `modelId` (string) [✗]: UUID of the model
|
|
1977
|
+
|
|
1978
|
+
- `status` (string) [✗]: Status of the simulation
|
|
1979
|
+
|
|
1980
|
+
- `printTimeHours` (number) [✗]: Exact print time in hours (from toolpath or cross-sectional analysis)
|
|
1981
|
+
|
|
1982
|
+
- `materialWeightGrams` (number) [✗]: Total material weight in grams (filament or resin, including supports)
|
|
1983
|
+
|
|
1984
|
+
- `materialVolumeCm3` (number) [✗]: Material volume in cm³
|
|
1985
|
+
|
|
1986
|
+
- `maxZHeightMM` (number) [✗]: Maximum Z height in mm
|
|
1987
|
+
|
|
1988
|
+
- `supportMaterialWeightGrams` (number) [✗]: Support structure material weight in grams
|
|
1989
|
+
|
|
1990
|
+
- `layerCount` (integer) [✗]: Total number of layers
|
|
1991
|
+
|
|
1992
|
+
- `totalExtrusionLengthMm` (number) [✗]: Total filament extrusion length in mm (FDM only)
|
|
1993
|
+
|
|
1994
|
+
- `slicingMethod` (string) [✗]: Engine that produced the result: orcaslicer_toolpath, pyslm_cross_section, heuristic_volumetric
|
|
1995
|
+
|
|
1996
|
+
- `slicerVersion` (string) [✗]: Version of the slicer engine used
|
|
1997
|
+
|
|
1998
|
+
- `profileUsed` (string) [✗]: Name or ID of the slicer profile used
|
|
1999
|
+
|
|
2000
|
+
- `errorCode` (string) [✗]: Error code if simulation failed
|
|
2001
|
+
|
|
2002
|
+
- `errorMessage` (string) [✗]: Error message if simulation failed
|
|
2003
|
+
|
|
2004
|
+
|
|
2005
|
+
|
|
2006
|
+
### slicing-sla-request
|
|
2007
|
+
|
|
2008
|
+
**Description:** Request SLA/MSLA slicing simulation via PySLM cross-sectional analysis. Accepts resin printer profile with exposure, lift, and layer parameters.
|
|
2009
|
+
|
|
2010
|
+
**Method:** `client.slicingSlaRequest(data)`
|
|
2011
|
+
|
|
2012
|
+
**Payload Type:** `SlicingSlaRequestMessage`
|
|
2013
|
+
|
|
2014
|
+
**Fields:**
|
|
2015
|
+
|
|
2016
|
+
- `modelId` (string) [✗]: UUID of the model
|
|
2017
|
+
|
|
2018
|
+
- `storageItemId` (string) [✗]: UUID or path of the storage item to download the STL/3MF
|
|
2019
|
+
|
|
2020
|
+
- `technology` (string) [✗]: SLA or MSLA
|
|
2021
|
+
|
|
2022
|
+
- `profileId` (string) [✗]: UUID of the user's slicer profile from the database
|
|
2023
|
+
|
|
2024
|
+
- `profileName` (string) [✗]: Human-readable profile name (e.g. 'Elegoo Mars 3 - Standard Grey')
|
|
2025
|
+
|
|
2026
|
+
- `layerHeight` (number) [✗]: Layer height in mm (default: 0.05)
|
|
2027
|
+
|
|
2028
|
+
- `exposureTime` (number) [✗]: Normal layer UV exposure time in seconds (default: 2.5)
|
|
2029
|
+
|
|
2030
|
+
- `bottomExposureTime` (number) [✗]: Bottom/burn-in layer exposure time in seconds (default: 30)
|
|
2031
|
+
|
|
2032
|
+
- `bottomLayers` (integer) [✗]: Number of bottom/burn-in layers (default: 5)
|
|
2033
|
+
|
|
2034
|
+
- `liftHeight` (number) [✗]: Platform lift height in mm between layers (default: 5.0)
|
|
2035
|
+
|
|
2036
|
+
- `liftSpeed` (number) [✗]: Platform lift speed in mm/min (default: 60)
|
|
2037
|
+
|
|
2038
|
+
- `retractSpeed` (number) [✗]: Platform retract speed in mm/min (default: 150)
|
|
2039
|
+
|
|
2040
|
+
- `resinDensity` (number) [✗]: Resin density in g/cm³ (default: 1.1)
|
|
2041
|
+
|
|
2042
|
+
- `supportEnabled` (boolean) [✗]: Generate support structures (default: true for SLA)
|
|
2043
|
+
|
|
2044
|
+
- `webhookUrl` (string) [✗]: URL to POST the slicing result back to
|
|
2045
|
+
|
|
2046
|
+
|
|
2047
|
+
|
|
2048
|
+
### slicing-sla-result
|
|
2049
|
+
|
|
2050
|
+
**Description:** Result of SLA/MSLA slicing simulation from PySLM cross-sectional analysis. Contains exact resin usage and print time metrics.
|
|
2051
|
+
|
|
2052
|
+
**Method:** `client.slicingSlaResult(data)`
|
|
2053
|
+
|
|
2054
|
+
**Payload Type:** `SlicingSlaResultMessage`
|
|
2055
|
+
|
|
2056
|
+
**Fields:**
|
|
2057
|
+
|
|
2058
|
+
- `modelId` (string) [✗]: UUID of the model
|
|
2059
|
+
|
|
2060
|
+
- `status` (string) [✗]: Status of the simulation
|
|
2061
|
+
|
|
2062
|
+
- `printTimeHours` (number) [✗]: Exact print time in hours (from cross-sectional analysis)
|
|
2063
|
+
|
|
2064
|
+
- `materialWeightGrams` (number) [✗]: Total resin weight in grams (including supports)
|
|
2065
|
+
|
|
2066
|
+
- `materialVolumeCm3` (number) [✗]: Cured resin volume in cm³ (from cross-sectional area integration)
|
|
2067
|
+
|
|
2068
|
+
- `maxZHeightMM` (number) [✗]: Maximum Z height in mm
|
|
2069
|
+
|
|
2070
|
+
- `supportMaterialWeightGrams` (number) [✗]: Support structure resin weight in grams
|
|
2071
|
+
|
|
2072
|
+
- `layerCount` (integer) [✗]: Total number of layers
|
|
2073
|
+
|
|
2074
|
+
- `maxCrossSectionAreaMm2` (number) [✗]: Maximum cross-sectional area in mm² (affects MSLA peel force)
|
|
2075
|
+
|
|
2076
|
+
- `slicingMethod` (string) [✗]: Engine that produced the result
|
|
2077
|
+
|
|
2078
|
+
- `slicerVersion` (string) [✗]: Version of PySLM / trimesh used
|
|
2079
|
+
|
|
2080
|
+
- `profileUsed` (string) [✗]: Name or ID of the slicer profile used
|
|
2081
|
+
|
|
2082
|
+
- `errorCode` (string) [✗]: Error code if simulation failed
|
|
2083
|
+
|
|
2084
|
+
- `errorMessage` (string) [✗]: Error message if simulation failed
|
|
2085
|
+
|
|
2086
|
+
|
|
2087
|
+
|
|
1662
2088
|
### thumbnail-generation-completed
|
|
1663
2089
|
|
|
1664
2090
|
**Description:** Handles thumbnail generation completed.
|
|
@@ -1681,6 +2107,8 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1681
2107
|
|
|
1682
2108
|
- `gltfPreviewPath` (string) [✗]: The path to the generated GLTF/GLB 3D preview file.
|
|
1683
2109
|
|
|
2110
|
+
- `animatedPreviewPath` (string) [✗]: The path to the generated animated MP4 preview file.
|
|
2111
|
+
|
|
1684
2112
|
- `errorMessage` (string) [✗]: An error message if the thumbnail generation failed.
|
|
1685
2113
|
|
|
1686
2114
|
- `storageLocation` (object) [✗]: The storage location of the model.
|
|
@@ -1926,6 +2354,11 @@ new WorkerClient(config: WorkerClientConfig)
|
|
|
1926
2354
|
- Get the current status of a job
|
|
1927
2355
|
|
|
1928
2356
|
|
|
2357
|
+
- `analyticsCollectionRequest(data: AnalyticsCollectionRequestMessage): Promise<JobResponse>`
|
|
2358
|
+
- Request to trigger a manual market data collection job.
|
|
2359
|
+
Used for ad-hoc scraping of specific queries on marketplaces.
|
|
2360
|
+
|
|
2361
|
+
|
|
1929
2362
|
- `backendLoggingEvent(data: BackendLoggingEventMessage): Promise<JobResponse>`
|
|
1930
2363
|
- Centralized logging event for capturing all warn/error/failure logs from meshsync-backend.
|
|
1931
2364
|
This event is sent to ELK for centralized monitoring, alerting, and debugging.
|
|
@@ -1944,12 +2377,6 @@ Used for:
|
|
|
1944
2377
|
- Compliance and audit trails
|
|
1945
2378
|
|
|
1946
2379
|
|
|
1947
|
-
- `ekgEdgeBatchCreateCompleted(data: EkgEdgeBatchCreateCompletedMessage): Promise<JobResponse>`
|
|
1948
|
-
- Completion event for EKG edge batch creation with propagation results.
|
|
1949
|
-
|
|
1950
|
-
- `ekgEdgeBatchCreateRequest(data: EkgEdgeBatchCreateRequestMessage): Promise<JobResponse>`
|
|
1951
|
-
- Create multiple EKG edges with Dempster-Shafer mass functions. Triggered by metamodel detection completion.
|
|
1952
|
-
|
|
1953
2380
|
- `etsyAnalyticsSyncCompleted(data: EtsyAnalyticsSyncCompletedMessage): Promise<JobResponse>`
|
|
1954
2381
|
- Contains synced analytics data for Etsy listings. Backend stores this in etsy_analytics_snapshots table and indexes to ELK.
|
|
1955
2382
|
|
|
@@ -1989,6 +2416,12 @@ Retry Configuration:
|
|
|
1989
2416
|
- `fileVectorizeRequest(data: FileVectorizeRequestMessage): Promise<JobResponse>`
|
|
1990
2417
|
- Request to generate a vector embedding for an image file using CLIP.
|
|
1991
2418
|
|
|
2419
|
+
- `ipCheckCompleted(data: IpCheckCompletedMessage): Promise<JobResponse>`
|
|
2420
|
+
- Contains IP verification results including trademark risk, copyright risk, detected brands/franchises, and analysis confidence scores
|
|
2421
|
+
|
|
2422
|
+
- `ipCheckRequest(data: IpCheckRequestMessage): Promise<JobResponse>`
|
|
2423
|
+
- 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.
|
|
2424
|
+
|
|
1992
2425
|
- `marketplaceAnalyticsSyncCompleted(data: MarketplaceAnalyticsSyncCompletedMessage): Promise<JobResponse>`
|
|
1993
2426
|
- Contains synced analytics data for marketplace listings. Backend stores this in marketplace_analytics_snapshots table and indexes to ELK. Works with any marketplace provider.
|
|
1994
2427
|
|
|
@@ -2012,6 +2445,14 @@ This is typically triggered after initial connection or periodically to keep mar
|
|
|
2012
2445
|
- 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
|
|
2013
2446
|
|
|
2014
2447
|
|
|
2448
|
+
- `marketplaceIntelligenceCompleted(data: MarketplaceIntelligenceCompletedMessage): Promise<JobResponse>`
|
|
2449
|
+
- Response from marketplace intelligence scraping.
|
|
2450
|
+
Contains aggregated similarity data from marketplace searches.
|
|
2451
|
+
|
|
2452
|
+
Consumed by worker-backend to update pipeline context before
|
|
2453
|
+
sellability analysis runs.
|
|
2454
|
+
|
|
2455
|
+
|
|
2015
2456
|
- `marketplaceIntelligenceEvent(data: MarketplaceIntelligenceEventMessage): Promise<JobResponse>`
|
|
2016
2457
|
- Public marketplace intelligence data scraped from external marketplaces.
|
|
2017
2458
|
|
|
@@ -2030,6 +2471,22 @@ Consumed by worker-analytic-collector for Elasticsearch indexing.
|
|
|
2030
2471
|
Used for market research, pricing optimization, and trend detection.
|
|
2031
2472
|
|
|
2032
2473
|
|
|
2474
|
+
- `marketplaceIntelligenceRequest(data: MarketplaceIntelligenceRequestMessage): Promise<JobResponse>`
|
|
2475
|
+
- Triggers automated marketplace scraping to find similar/competing listings
|
|
2476
|
+
for a given model. This is a pipeline stage that runs after metadata generation
|
|
2477
|
+
to inform sellability analysis with real market data.
|
|
2478
|
+
|
|
2479
|
+
The worker-analytic-collector (or marketplace-connectors worker) will:
|
|
2480
|
+
1. Use model metadata (title, tags, category) to build search queries
|
|
2481
|
+
2. Scrape connected marketplaces (Etsy, eBay, etc.) for similar listings
|
|
2482
|
+
3. Emit marketplace-intelligence-event results for Elasticsearch indexing
|
|
2483
|
+
4. Return aggregated similarity data to the pipeline context
|
|
2484
|
+
|
|
2485
|
+
Pipeline integration:
|
|
2486
|
+
- Triggered after: metadata-generation (needs model title/tags/category)
|
|
2487
|
+
- Results feed into: sellability-analysis (market positioning data)
|
|
2488
|
+
|
|
2489
|
+
|
|
2033
2490
|
- `marketplaceListingDescriptionGenerationCompleted(data: MarketplaceListingDescriptionGenerationCompletedMessage): Promise<JobResponse>`
|
|
2034
2491
|
- Notifies backend that marketplace description generation completed. Contains generated description with metadata tracking (AI model, confidence, generation timestamp) and suggested price.
|
|
2035
2492
|
|
|
@@ -2123,6 +2580,12 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
2123
2580
|
- `modelMetamodelDetectionRequest(data: ModelMetamodelDetectionRequestMessage): Promise<JobResponse>`
|
|
2124
2581
|
- Handles model metamodel detection requests.
|
|
2125
2582
|
|
|
2583
|
+
- `modelPrintAnalysisCompleted(data: ModelPrintAnalysisCompletedMessage): Promise<JobResponse>`
|
|
2584
|
+
- Reports completion of 3D print analysis — contains estimation, printability, and cost breakdown per FR-022
|
|
2585
|
+
|
|
2586
|
+
- `modelPrintAnalysisRequest(data: ModelPrintAnalysisRequestMessage): Promise<JobResponse>`
|
|
2587
|
+
- Triggers 3D print analysis for a model — estimates print time, material usage, support needs, and cost breakdown per FR-022
|
|
2588
|
+
|
|
2126
2589
|
- `modelSellabilityAnalysisCompleted(data: ModelSellabilityAnalysisCompletedMessage): Promise<JobResponse>`
|
|
2127
2590
|
- Contains sellability analysis results including Etsy-specific recommendations, material pricing, and marketplace compatibility scores
|
|
2128
2591
|
|
|
@@ -2141,6 +2604,24 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
2141
2604
|
- `modelTechnicalMetadataRequest(data: ModelTechnicalMetadataRequestMessage): Promise<JobResponse>`
|
|
2142
2605
|
- Triggers comprehensive technical analysis of a 3D model file to extract geometry, quality metrics, and print-readiness information
|
|
2143
2606
|
|
|
2607
|
+
- `slicingFdmRequest(data: SlicingFdmRequestMessage): Promise<JobResponse>`
|
|
2608
|
+
- Request FDM slicing simulation via OrcaSlicer (preferred) or heuristic fallback. Accepts OrcaSlicer-compatible printer/process/filament JSON profiles.
|
|
2609
|
+
|
|
2610
|
+
- `slicingFdmResult(data: SlicingFdmResultMessage): Promise<JobResponse>`
|
|
2611
|
+
- Result of FDM slicing simulation from OrcaSlicer (toolpath) or heuristic fallback. Contains exact physical metrics for cost calculation.
|
|
2612
|
+
|
|
2613
|
+
- `slicingSimulationRequest(data: SlicingSimulationRequestMessage): Promise<JobResponse>`
|
|
2614
|
+
- DEPRECATED: Use slicing-fdm-request or slicing-sla-request instead. Unified contract kept for backward compatibility only.
|
|
2615
|
+
|
|
2616
|
+
- `slicingSimulationResult(data: SlicingSimulationResultMessage): Promise<JobResponse>`
|
|
2617
|
+
- DEPRECATED: Use slicing-fdm-result or slicing-sla-result instead. Unified contract kept for backward compatibility only.
|
|
2618
|
+
|
|
2619
|
+
- `slicingSlaRequest(data: SlicingSlaRequestMessage): Promise<JobResponse>`
|
|
2620
|
+
- Request SLA/MSLA slicing simulation via PySLM cross-sectional analysis. Accepts resin printer profile with exposure, lift, and layer parameters.
|
|
2621
|
+
|
|
2622
|
+
- `slicingSlaResult(data: SlicingSlaResultMessage): Promise<JobResponse>`
|
|
2623
|
+
- Result of SLA/MSLA slicing simulation from PySLM cross-sectional analysis. Contains exact resin usage and print time metrics.
|
|
2624
|
+
|
|
2144
2625
|
- `thumbnailGenerationCompleted(data: ThumbnailGenerationCompletedMessage): Promise<JobResponse>`
|
|
2145
2626
|
- Handles thumbnail generation completed.
|
|
2146
2627
|
|