@mesh-sync/worker-backend-client 4.0.21 → 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 +508 -52
- package/dist/client.d.ts +90 -12
- package/dist/client.js +114 -16
- package/dist/types.d.ts +382 -34
- package/dist/types.js +12 -2
- 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,6 +418,84 @@ Retry Configuration:
|
|
|
464
418
|
|
|
465
419
|
|
|
466
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
|
+
|
|
467
499
|
### marketplace-analytics-sync-completed
|
|
468
500
|
|
|
469
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.
|
|
@@ -667,6 +699,41 @@ This is typically triggered after initial connection or periodically to keep mar
|
|
|
667
699
|
|
|
668
700
|
|
|
669
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
|
+
|
|
670
737
|
### marketplace-intelligence-event
|
|
671
738
|
|
|
672
739
|
**Description:** Public marketplace intelligence data scraped from external marketplaces.
|
|
@@ -712,6 +779,43 @@ Used for market research, pricing optimization, and trend detection.
|
|
|
712
779
|
|
|
713
780
|
|
|
714
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
|
+
|
|
715
819
|
### marketplace-listing-description-generation-completed
|
|
716
820
|
|
|
717
821
|
**Description:** Notifies backend that marketplace description generation completed. Contains generated description with metadata tracking (AI model, confidence, generation timestamp) and suggested price.
|
|
@@ -1449,6 +1553,76 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1449
1553
|
|
|
1450
1554
|
|
|
1451
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
|
+
|
|
1452
1626
|
### model-sellability-analysis-completed
|
|
1453
1627
|
|
|
1454
1628
|
**Description:** Contains sellability analysis results including Etsy-specific recommendations, material pricing, and marketplace compatibility scores
|
|
@@ -1629,6 +1803,8 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1629
1803
|
|
|
1630
1804
|
- `recommendedOrientation` (object) [✗]: Recommended print orientation for minimal support material and best results
|
|
1631
1805
|
|
|
1806
|
+
- `slicerRecommendations` (object) [✗]: Slicer-derived recommended print settings based on model analysis (feeds into print job creation as defaults)
|
|
1807
|
+
|
|
1632
1808
|
- `originalUnit` (string) [✗]: Original file format unit detected from metadata or inferred from scale
|
|
1633
1809
|
|
|
1634
1810
|
- `formatVersion` (string) [✗]: File format version (e.g., 'STL Binary', 'OBJ v4', 'PLY 1.0')
|
|
@@ -1679,6 +1855,236 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1679
1855
|
|
|
1680
1856
|
|
|
1681
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
|
+
|
|
1682
2088
|
### thumbnail-generation-completed
|
|
1683
2089
|
|
|
1684
2090
|
**Description:** Handles thumbnail generation completed.
|
|
@@ -1701,6 +2107,8 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
1701
2107
|
|
|
1702
2108
|
- `gltfPreviewPath` (string) [✗]: The path to the generated GLTF/GLB 3D preview file.
|
|
1703
2109
|
|
|
2110
|
+
- `animatedPreviewPath` (string) [✗]: The path to the generated animated MP4 preview file.
|
|
2111
|
+
|
|
1704
2112
|
- `errorMessage` (string) [✗]: An error message if the thumbnail generation failed.
|
|
1705
2113
|
|
|
1706
2114
|
- `storageLocation` (object) [✗]: The storage location of the model.
|
|
@@ -1969,12 +2377,6 @@ Used for:
|
|
|
1969
2377
|
- Compliance and audit trails
|
|
1970
2378
|
|
|
1971
2379
|
|
|
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
2380
|
- `etsyAnalyticsSyncCompleted(data: EtsyAnalyticsSyncCompletedMessage): Promise<JobResponse>`
|
|
1979
2381
|
- Contains synced analytics data for Etsy listings. Backend stores this in etsy_analytics_snapshots table and indexes to ELK.
|
|
1980
2382
|
|
|
@@ -2014,6 +2416,12 @@ Retry Configuration:
|
|
|
2014
2416
|
- `fileVectorizeRequest(data: FileVectorizeRequestMessage): Promise<JobResponse>`
|
|
2015
2417
|
- Request to generate a vector embedding for an image file using CLIP.
|
|
2016
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
|
+
|
|
2017
2425
|
- `marketplaceAnalyticsSyncCompleted(data: MarketplaceAnalyticsSyncCompletedMessage): Promise<JobResponse>`
|
|
2018
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.
|
|
2019
2427
|
|
|
@@ -2037,6 +2445,14 @@ This is typically triggered after initial connection or periodically to keep mar
|
|
|
2037
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
|
|
2038
2446
|
|
|
2039
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
|
+
|
|
2040
2456
|
- `marketplaceIntelligenceEvent(data: MarketplaceIntelligenceEventMessage): Promise<JobResponse>`
|
|
2041
2457
|
- Public marketplace intelligence data scraped from external marketplaces.
|
|
2042
2458
|
|
|
@@ -2055,6 +2471,22 @@ Consumed by worker-analytic-collector for Elasticsearch indexing.
|
|
|
2055
2471
|
Used for market research, pricing optimization, and trend detection.
|
|
2056
2472
|
|
|
2057
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
|
+
|
|
2058
2490
|
- `marketplaceListingDescriptionGenerationCompleted(data: MarketplaceListingDescriptionGenerationCompletedMessage): Promise<JobResponse>`
|
|
2059
2491
|
- Notifies backend that marketplace description generation completed. Contains generated description with metadata tracking (AI model, confidence, generation timestamp) and suggested price.
|
|
2060
2492
|
|
|
@@ -2148,6 +2580,12 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
2148
2580
|
- `modelMetamodelDetectionRequest(data: ModelMetamodelDetectionRequestMessage): Promise<JobResponse>`
|
|
2149
2581
|
- Handles model metamodel detection requests.
|
|
2150
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
|
+
|
|
2151
2589
|
- `modelSellabilityAnalysisCompleted(data: ModelSellabilityAnalysisCompletedMessage): Promise<JobResponse>`
|
|
2152
2590
|
- Contains sellability analysis results including Etsy-specific recommendations, material pricing, and marketplace compatibility scores
|
|
2153
2591
|
|
|
@@ -2166,6 +2604,24 @@ and stores aggregated statistics in Elasticsearch for trend analysis.
|
|
|
2166
2604
|
- `modelTechnicalMetadataRequest(data: ModelTechnicalMetadataRequestMessage): Promise<JobResponse>`
|
|
2167
2605
|
- Triggers comprehensive technical analysis of a 3D model file to extract geometry, quality metrics, and print-readiness information
|
|
2168
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
|
+
|
|
2169
2625
|
- `thumbnailGenerationCompleted(data: ThumbnailGenerationCompletedMessage): Promise<JobResponse>`
|
|
2170
2626
|
- Handles thumbnail generation completed.
|
|
2171
2627
|
|