@opentrons/shared-data 0.1.7-alpha.1 → 0.2.0-alpha.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.
Files changed (258) hide show
  1. package/.coveragerc +4 -0
  2. package/.flake8 +31 -0
  3. package/Config.in +11 -0
  4. package/LICENSE +202 -0
  5. package/Makefile +13 -14
  6. package/Makefile-python.mk +134 -0
  7. package/buildroot.mk +35 -0
  8. package/command/index.ts +3 -1
  9. package/command/schemas/13.json +147 -315
  10. package/command/schemas/14.json +7254 -0
  11. package/command/types/index.ts +15 -4
  12. package/command/types/module.ts +24 -4
  13. package/command/types/setup.ts +5 -5
  14. package/command/types/support.ts +1 -0
  15. package/deck/definitions/5/ot2_short_trash.json +37 -0
  16. package/deck/definitions/5/ot2_standard.json +37 -0
  17. package/deck/definitions/5/ot3_standard.json +152 -51
  18. package/deck/schemas/5.json +46 -1
  19. package/labware/definitions/2/appliedbiosystemsmicroamp_384_wellplate_40ul/3.json +4737 -0
  20. package/labware/definitions/2/axygen_96_wellplate_500ul/1.json +1036 -0
  21. package/labware/definitions/2/axygen_96_wellplate_500ul/2.json +1159 -0
  22. package/labware/definitions/2/biorad_384_wellplate_50ul/4.json +4748 -0
  23. package/labware/definitions/2/biorad_96_wellplate_200ul_pcr/4.json +1187 -0
  24. package/labware/definitions/2/corning_12_wellplate_6.9ml_flat/4.json +210 -0
  25. package/labware/definitions/2/corning_24_wellplate_3.4ml_flat/4.json +342 -0
  26. package/labware/definitions/2/corning_48_wellplate_1.6ml_flat/5.json +610 -0
  27. package/labware/definitions/2/corning_6_wellplate_16.8ml_flat/4.json +134 -0
  28. package/labware/definitions/2/corning_96_wellplate_360ul_flat/4.json +1177 -0
  29. package/labware/definitions/2/corning_96_wellplate_360ul_lid/1.json +111 -0
  30. package/labware/definitions/2/ev_resin_tips_flex_96_labware/1.json +1 -1
  31. package/labware/definitions/2/ibidi_96_square_well_plate_300ul/1.json +1105 -0
  32. package/labware/definitions/2/ibidi_96_square_well_plate_300ul/2.json +1216 -0
  33. package/labware/definitions/2/ibidi_96_square_well_plate_300ul_lid/1.json +110 -0
  34. package/labware/definitions/2/nest_12_reservoir_22ml/1.json +232 -0
  35. package/labware/definitions/2/nest_24_wellplate_10.4ml/1.json +386 -0
  36. package/labware/definitions/2/nest_8_reservoir_22ml/1.json +162 -0
  37. package/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/4.json +1166 -0
  38. package/labware/definitions/2/nest_96_wellplate_200ul_flat/4.json +1145 -0
  39. package/labware/definitions/2/nest_96_wellplate_2ml_deep/4.json +1261 -0
  40. package/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/4.json +1174 -0
  41. package/labware/definitions/2/opentrons_flex_96_filtertiprack_1000ul/1.json +5 -0
  42. package/labware/definitions/2/opentrons_flex_96_filtertiprack_200ul/1.json +5 -0
  43. package/labware/definitions/2/opentrons_flex_96_filtertiprack_20ul/1.json +5 -0
  44. package/labware/definitions/2/opentrons_flex_96_filtertiprack_50ul/1.json +5 -0
  45. package/labware/definitions/2/opentrons_flex_96_tiprack_1000ul/1.json +5 -0
  46. package/labware/definitions/2/opentrons_flex_96_tiprack_200ul/1.json +5 -0
  47. package/labware/definitions/2/opentrons_flex_96_tiprack_20ul/1.json +5 -0
  48. package/labware/definitions/2/opentrons_flex_96_tiprack_50ul/1.json +5 -0
  49. package/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +8 -8
  50. package/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json +8 -0
  51. package/labware/definitions/2/opentrons_tough_universal_lid/1.json +16 -1
  52. package/labware/definitions/2/smc_384_read_plate/1.json +4701 -0
  53. package/labware/definitions/2/smc_384_read_plate/2.json +5100 -0
  54. package/labware/definitions/2/thermoscientificnunc_96_wellplate_1300ul/3.json +1141 -0
  55. package/labware/definitions/2/thermoscientificnunc_96_wellplate_2000ul/3.json +1141 -0
  56. package/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/3.json +1243 -0
  57. package/labware/definitions/3/schema3test_96_well_aluminum_block/999.json +5 -2
  58. package/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +15 -2
  59. package/labware/definitions/3/schema3test_aluminum_flat_bottom_plate/999.json +70 -0
  60. package/labware/definitions/3/schema3test_flex_96_tiprack_200ul/999.json +5 -9
  61. package/labware/definitions/3/schema3test_flex_96_tiprack_adapter/999.json +70 -0
  62. package/labware/definitions/3/schema3test_flex_tiprack_lid/999.json +146 -0
  63. package/labware/definitions/3/schema3test_tough_pcr_auto_sealing_lid/999.json +162 -0
  64. package/labware/definitions/3/schema3test_universal_flat_adapter/999.json +157 -0
  65. package/labware/fixtures/2/fixture_user_volumes_prototype.json +1137 -0
  66. package/labware/fixtures/3/fixture_2_plate.json +5 -2
  67. package/labware/fixtures/3/fixture_corning_24_plate.json +6 -3
  68. package/labware/fixtures/3/index.ts +4 -0
  69. package/labware/schemas/2.json +36 -1
  70. package/labware/schemas/3.json +57 -5
  71. package/lib/command/index.d.ts +39 -1
  72. package/lib/command/schemas/13.json +147 -315
  73. package/lib/command/schemas/14.json +7254 -0
  74. package/lib/command/types/index.d.ts +11 -3
  75. package/lib/command/types/module.d.ts +19 -6
  76. package/lib/command/types/setup.d.ts +5 -5
  77. package/lib/deck/definitions/5/ot2_short_trash.json +37 -0
  78. package/lib/deck/definitions/5/ot2_standard.json +37 -0
  79. package/lib/deck/definitions/5/ot3_standard.json +152 -51
  80. package/lib/deck/schemas/5.json +46 -1
  81. package/lib/index.mjs +240842 -193770
  82. package/lib/js/constants.d.ts +30 -9
  83. package/lib/js/fixtures.d.ts +77 -2
  84. package/lib/js/getLabware.d.ts +3 -3
  85. package/lib/js/helpers/__tests__/getMaxPushOutVolume.test.d.ts +1 -0
  86. package/lib/js/helpers/__tests__/getStackedItemsOnStartingDeck.test.d.ts +1 -0
  87. package/lib/js/helpers/__tests__/labwareSchemaShims.test.d.ts +1 -0
  88. package/lib/js/helpers/__tests__/pairsFromArray.test.d.ts +1 -0
  89. package/lib/js/helpers/__tests__/vectorMath.test.d.ts +1 -0
  90. package/lib/js/helpers/getFixedTrashLabwareDefinition.d.ts +2 -2
  91. package/lib/js/helpers/getLabwareDefURI.d.ts +3 -0
  92. package/lib/js/helpers/getLabwareDefinitionsByURIForProtocol.d.ts +6 -0
  93. package/lib/js/helpers/getLabwareInfoByLiquidId.d.ts +10 -0
  94. package/lib/js/helpers/getLiquidsByIdForLabware.d.ts +2 -0
  95. package/lib/js/helpers/getLoadedLabwareDefinitionsByUri.d.ts +2 -2
  96. package/lib/js/helpers/getMaxPushOutVolume.d.ts +2 -0
  97. package/lib/js/helpers/getStackedItemsOnStartingDeck.d.ts +50 -0
  98. package/lib/js/helpers/getStandardDeckViewLayerBlockList.d.ts +2 -0
  99. package/lib/js/helpers/getTipTypeFromTipRackDefinition.d.ts +2 -2
  100. package/lib/js/helpers/getWellFillFromLabwareId.d.ts +4 -0
  101. package/lib/js/helpers/getWellNamePerMultiTip.d.ts +3 -3
  102. package/lib/js/helpers/getWellTotalVolume.d.ts +2 -2
  103. package/lib/js/helpers/index.d.ts +22 -14
  104. package/lib/js/helpers/labwareInference.d.ts +3 -3
  105. package/lib/js/helpers/liquidClasses.d.ts +4 -2
  106. package/lib/js/helpers/matrixMath.d.ts +3 -0
  107. package/lib/js/helpers/pairsFromArray.d.ts +8 -0
  108. package/lib/js/helpers/parseProtocolCommands.d.ts +4 -4
  109. package/lib/js/helpers/positionMath.d.ts +127 -0
  110. package/lib/js/helpers/validateCustomLabwareHelper.d.ts +2 -2
  111. package/lib/js/helpers/vectorMath.d.ts +14 -0
  112. package/lib/js/helpers/wellSets.d.ts +4 -4
  113. package/lib/js/labware.d.ts +4 -3
  114. package/lib/js/liquidClasses.d.ts +4 -0
  115. package/lib/js/modules.d.ts +1 -1
  116. package/lib/js/types.d.ts +62 -13
  117. package/lib/labware/definitions/2/appliedbiosystemsmicroamp_384_wellplate_40ul/3.json +4737 -0
  118. package/lib/labware/definitions/2/axygen_96_wellplate_500ul/1.json +1036 -0
  119. package/lib/labware/definitions/2/axygen_96_wellplate_500ul/2.json +1159 -0
  120. package/lib/labware/definitions/2/biorad_384_wellplate_50ul/4.json +4748 -0
  121. package/lib/labware/definitions/2/biorad_96_wellplate_200ul_pcr/4.json +1187 -0
  122. package/lib/labware/definitions/2/corning_12_wellplate_6.9ml_flat/4.json +210 -0
  123. package/lib/labware/definitions/2/corning_24_wellplate_3.4ml_flat/4.json +342 -0
  124. package/lib/labware/definitions/2/corning_48_wellplate_1.6ml_flat/5.json +610 -0
  125. package/lib/labware/definitions/2/corning_6_wellplate_16.8ml_flat/4.json +134 -0
  126. package/lib/labware/definitions/2/corning_96_wellplate_360ul_flat/4.json +1177 -0
  127. package/lib/labware/definitions/2/corning_96_wellplate_360ul_lid/1.json +111 -0
  128. package/lib/labware/definitions/2/ev_resin_tips_flex_96_labware/1.json +1 -1
  129. package/lib/labware/definitions/2/ibidi_96_square_well_plate_300ul/1.json +1105 -0
  130. package/lib/labware/definitions/2/ibidi_96_square_well_plate_300ul/2.json +1216 -0
  131. package/lib/labware/definitions/2/ibidi_96_square_well_plate_300ul_lid/1.json +110 -0
  132. package/lib/labware/definitions/2/nest_12_reservoir_22ml/1.json +232 -0
  133. package/lib/labware/definitions/2/nest_24_wellplate_10.4ml/1.json +386 -0
  134. package/lib/labware/definitions/2/nest_8_reservoir_22ml/1.json +162 -0
  135. package/lib/labware/definitions/2/nest_96_wellplate_100ul_pcr_full_skirt/4.json +1166 -0
  136. package/lib/labware/definitions/2/nest_96_wellplate_200ul_flat/4.json +1145 -0
  137. package/lib/labware/definitions/2/nest_96_wellplate_2ml_deep/4.json +1261 -0
  138. package/lib/labware/definitions/2/opentrons_96_wellplate_200ul_pcr_full_skirt/4.json +1174 -0
  139. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_1000ul/1.json +5 -0
  140. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_200ul/1.json +5 -0
  141. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_20ul/1.json +5 -0
  142. package/lib/labware/definitions/2/opentrons_flex_96_filtertiprack_50ul/1.json +5 -0
  143. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_1000ul/1.json +5 -0
  144. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_200ul/1.json +5 -0
  145. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_20ul/1.json +5 -0
  146. package/lib/labware/definitions/2/opentrons_flex_96_tiprack_50ul/1.json +5 -0
  147. package/lib/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +8 -8
  148. package/lib/labware/definitions/2/opentrons_tough_pcr_auto_sealing_lid/1.json +8 -0
  149. package/lib/labware/definitions/2/opentrons_tough_universal_lid/1.json +16 -1
  150. package/lib/labware/definitions/2/smc_384_read_plate/1.json +4701 -0
  151. package/lib/labware/definitions/2/smc_384_read_plate/2.json +5100 -0
  152. package/lib/labware/definitions/2/thermoscientificnunc_96_wellplate_1300ul/3.json +1141 -0
  153. package/lib/labware/definitions/2/thermoscientificnunc_96_wellplate_2000ul/3.json +1141 -0
  154. package/lib/labware/definitions/2/usascientific_96_wellplate_2.4ml_deep/3.json +1243 -0
  155. package/lib/labware/definitions/3/schema3test_96_well_aluminum_block/999.json +5 -2
  156. package/lib/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +15 -2
  157. package/lib/labware/definitions/3/schema3test_aluminum_flat_bottom_plate/999.json +70 -0
  158. package/lib/labware/definitions/3/schema3test_flex_96_tiprack_200ul/999.json +5 -9
  159. package/lib/labware/definitions/3/schema3test_flex_96_tiprack_adapter/999.json +70 -0
  160. package/lib/labware/definitions/3/schema3test_flex_tiprack_lid/999.json +146 -0
  161. package/lib/labware/definitions/3/schema3test_tough_pcr_auto_sealing_lid/999.json +162 -0
  162. package/lib/labware/definitions/3/schema3test_universal_flat_adapter/999.json +157 -0
  163. package/lib/labware/fixtures/2/fixture_user_volumes_prototype.json +1137 -0
  164. package/lib/labware/fixtures/3/fixture_2_plate.json +5 -2
  165. package/lib/labware/fixtures/3/fixture_corning_24_plate.json +6 -3
  166. package/lib/labware/fixtures/3/index.d.ts +3 -0
  167. package/lib/labware/schemas/2.json +36 -1
  168. package/lib/labware/schemas/3.json +57 -5
  169. package/lib/liquid-class/definitions/1/{ethanol_80.json → ethanol_80/1.json} +545 -390
  170. package/lib/liquid-class/definitions/1/{glycerol_50.json → glycerol_50/1.json} +370 -215
  171. package/lib/liquid-class/definitions/1/{water.json → water/1.json} +151 -62
  172. package/lib/liquid-class/fixtures/1/fixture_glycerol50.json +1 -0
  173. package/lib/liquid-class/schemas/1.json +6 -0
  174. package/lib/module/definitions/3/absorbanceReaderV1.json +20 -151
  175. package/lib/module/definitions/3/flexStackerModuleV1.json +29 -389
  176. package/lib/module/definitions/3/heaterShakerModuleV1.json +16 -357
  177. package/lib/module/definitions/3/magneticBlockV1.json +18 -149
  178. package/lib/module/definitions/3/magneticModuleV1.json +16 -399
  179. package/lib/module/definitions/3/magneticModuleV2.json +16 -399
  180. package/lib/module/definitions/3/temperatureModuleV1.json +16 -153
  181. package/lib/module/definitions/3/temperatureModuleV2.json +16 -153
  182. package/lib/module/definitions/3/thermocyclerModuleV1.json +16 -1340
  183. package/lib/module/definitions/3/thermocyclerModuleV2.json +18 -3617
  184. package/lib/module/schemas/3.json +109 -12
  185. package/lib/pipette/definitions/1/pipetteModelSpecs.json +336 -0
  186. package/lib/pipette/definitions/2/general/ninety_six_channel/p200/3_2.json +660 -0
  187. package/lib/pipette/definitions/2/geometry/ninety_six_channel/p200/3_2.json +309 -0
  188. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_1.json +28 -18
  189. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_2.json +192 -0
  190. package/lib/protocol/types/schemaV8/index.d.ts +17 -1
  191. package/liquid-class/definitions/1/{ethanol_80.json → ethanol_80/1.json} +545 -390
  192. package/liquid-class/definitions/1/{glycerol_50.json → glycerol_50/1.json} +370 -215
  193. package/liquid-class/definitions/1/{water.json → water/1.json} +151 -62
  194. package/liquid-class/fixtures/1/fixture_glycerol50.json +1 -0
  195. package/liquid-class/schemas/1.json +6 -0
  196. package/module/definitions/3/absorbanceReaderV1.json +20 -151
  197. package/module/definitions/3/flexStackerModuleV1.json +29 -389
  198. package/module/definitions/3/heaterShakerModuleV1.json +16 -357
  199. package/module/definitions/3/magneticBlockV1.json +18 -149
  200. package/module/definitions/3/magneticModuleV1.json +16 -399
  201. package/module/definitions/3/magneticModuleV2.json +16 -399
  202. package/module/definitions/3/temperatureModuleV1.json +16 -153
  203. package/module/definitions/3/temperatureModuleV2.json +16 -153
  204. package/module/definitions/3/thermocyclerModuleV1.json +16 -1340
  205. package/module/definitions/3/thermocyclerModuleV2.json +18 -3617
  206. package/module/schemas/3.json +109 -12
  207. package/mypy.ini +22 -0
  208. package/package.json +1 -1
  209. package/pipette/definitions/1/pipetteModelSpecs.json +336 -0
  210. package/pipette/definitions/2/general/ninety_six_channel/p200/3_2.json +660 -0
  211. package/pipette/definitions/2/geometry/ninety_six_channel/p200/3_2.json +309 -0
  212. package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_1.json +28 -18
  213. package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_2.json +192 -0
  214. package/protocol/types/schemaV8/index.ts +29 -1
  215. package/pyproject.toml +119 -0
  216. package/pytest.ini +8 -0
  217. package/python_tests/__init__.py +1 -0
  218. package/python_tests/command/test_known_schema_ids.py +9 -0
  219. package/python_tests/conftest.py +108 -0
  220. package/python_tests/deck/__init__.py +0 -0
  221. package/python_tests/deck/test_list_names.py +12 -0
  222. package/python_tests/deck/test_position.py +101 -0
  223. package/python_tests/deck/test_typechecks.py +23 -0
  224. package/python_tests/errors/__init__.py +1 -0
  225. package/python_tests/errors/test_error_completeness.py +19 -0
  226. package/python_tests/errors/test_exceptions.py +74 -0
  227. package/python_tests/gripper/__init__.py +0 -0
  228. package/python_tests/gripper/test_definition.py +30 -0
  229. package/python_tests/gripper/test_load.py +19 -0
  230. package/python_tests/labware/__init__.py +13 -0
  231. package/python_tests/labware/test_typechecks.py +80 -0
  232. package/python_tests/liquid_classes/__init__.py +0 -0
  233. package/python_tests/liquid_classes/test_liquid_class_values.py +59 -0
  234. package/python_tests/liquid_classes/test_load.py +45 -0
  235. package/python_tests/liquid_classes/test_validations.py +192 -0
  236. package/python_tests/module/__init__.py +20 -0
  237. package/python_tests/module/test_load.py +49 -0
  238. package/python_tests/module/test_typechecks.py +26 -0
  239. package/python_tests/pipette/__init__.py +0 -0
  240. package/python_tests/pipette/test_load_data.py +109 -0
  241. package/python_tests/pipette/test_max_flow_rates_per_volume.py +112 -0
  242. package/python_tests/pipette/test_mutable_configurations.py +467 -0
  243. package/python_tests/pipette/test_pipette_definition.py +183 -0
  244. package/python_tests/pipette/test_pipette_load_name_conversions.py +244 -0
  245. package/python_tests/pipette/test_typechecks.py +47 -0
  246. package/python_tests/pipette/test_validate_schema.py +198 -0
  247. package/python_tests/protocol/__init__.py +7 -0
  248. package/python_tests/protocol/test_protocol_schema_v6.py +108 -0
  249. package/python_tests/protocol/test_protocol_schema_v7.py +35 -0
  250. package/python_tests/protocol/test_protocol_schema_v8.py +17 -0
  251. package/python_tests/protocol/test_typechecks.py +30 -0
  252. package/python_tests/robot/__init__.py +0 -0
  253. package/python_tests/robot/test_typechecks.py +13 -0
  254. package/lib/js/cypressUtils.d.ts +0 -1
  255. package/lib/js/helpers/getVectorDifference.d.ts +0 -2
  256. package/lib/js/helpers/getVectorSum.d.ts +0 -2
  257. /package/lib/js/{helpers/__tests__/getVectorDifference.test.d.ts → __tests__/fixtures.test.d.ts} +0 -0
  258. /package/lib/js/helpers/__tests__/{getVectorSum.test.d.ts → getLabwareInfoByLiquidId.test.d.ts} +0 -0
@@ -138,14 +138,24 @@ export interface RunCommandErrorFlexStackerStall extends RunCommandErrorBase {
138
138
  errorInfo: { labwareId?: string }
139
139
  }
140
140
 
141
- export interface RunCommandErrorFlexStackerShuttle extends RunCommandErrorBase {
141
+ export interface RunCommandErrorFlexStackerShuttleMissing
142
+ extends RunCommandErrorBase {
142
143
  errorCode: '3020'
143
144
  errorType: 'flexStackerShuttleMissing'
144
145
  isDefined: true
145
146
  errorInfo: { labwareId?: string }
146
147
  }
147
148
 
148
- export interface RunCommandErrorFlexStackerHopper extends RunCommandErrorBase {
149
+ export interface RunCommandErrorFlexStackerShuttleLabware
150
+ extends RunCommandErrorBase {
151
+ errorCode: '3021'
152
+ errorType: 'flexStackerLabwareRetrieveFailed'
153
+ isDefined: true
154
+ errorInfo: { labwareId?: string }
155
+ }
156
+
157
+ export interface RunCommandErrorFlexStackerHopperLabware
158
+ extends RunCommandErrorBase {
149
159
  errorCode: '3022'
150
160
  errorType: 'flexStackerHopperLabwareFailed'
151
161
  isDefined: true
@@ -154,5 +164,6 @@ export interface RunCommandErrorFlexStackerHopper extends RunCommandErrorBase {
154
164
 
155
165
  export type RunCommandFlexStackerError =
156
166
  | RunCommandErrorFlexStackerStall
157
- | RunCommandErrorFlexStackerShuttle
158
- | RunCommandErrorFlexStackerHopper
167
+ | RunCommandErrorFlexStackerShuttleMissing
168
+ | RunCommandErrorFlexStackerHopperLabware
169
+ | RunCommandErrorFlexStackerShuttleLabware
@@ -3,7 +3,7 @@ import type {
3
3
  CommonCommandRunTimeInfo,
4
4
  RunCommandFlexStackerError,
5
5
  } from '.'
6
- import type { LabwareDefinition2 } from '../../js'
6
+ import type { LabwareDefinition } from '../../js'
7
7
  import type { LabwareLocationSequence } from './setup'
8
8
 
9
9
  export type ModuleRunTimeCommand =
@@ -39,6 +39,7 @@ export type ModuleRunTimeCommand =
39
39
  | FlexStackerStoreRunTimeCommand
40
40
  | FlexStackerFillRunTimeCommand
41
41
  | FlexStackerEmptyRunTimeCommand
42
+ | IdentifyModuleRunTimeCommand
42
43
 
43
44
  export type ModuleCreateCommand =
44
45
  | MagneticModuleEngageMagnetCreateCommand
@@ -76,6 +77,7 @@ export type ModuleCreateCommand =
76
77
  | FlexStackerPrepareShuttleCreateCommand
77
78
  | FlexStackerOpenLatch
78
79
  | FlexStackerCloseLatch
80
+ | IdentifyModuleCreateCommand
79
81
 
80
82
  export interface MagneticModuleEngageMagnetCreateCommand
81
83
  extends CommonCommandCreateInfo {
@@ -444,9 +446,9 @@ export interface FlexStackerSetStoredLabwareRunTimeCommand
444
446
  extends FlexStackerSetStoredLabwareCreateCommand,
445
447
  CommonCommandRunTimeInfo {
446
448
  result?: {
447
- primaryLabwareDefinition: LabwareDefinition2
448
- lidLabwareDefinition?: LabwareDefinition2 | null
449
- adapterLabwareDefinition?: LabwareDefinition2 | null
449
+ primaryLabwareDefinition: LabwareDefinition
450
+ lidLabwareDefinition?: LabwareDefinition | null
451
+ adapterLabwareDefinition?: LabwareDefinition | null
450
452
  count: number
451
453
  storedLabware: FlexStackerStoredLabwareGroup[]
452
454
  } & StackerStoredLabwareLocationSequences
@@ -590,3 +592,21 @@ export interface FlexStackerEmptyRunTimeCommand
590
592
  } & StackerStoredLabwareLocationSequences &
591
593
  StackerStoredLabwareDefinitionURIs
592
594
  }
595
+
596
+ export type IdentifyColor = 'white' | 'red' | 'green' | 'blue' | 'yellow' | null
597
+
598
+ export interface IdentifyModuleCreateCommand extends CommonCommandCreateInfo {
599
+ commandType: 'identifyModule'
600
+ params: {
601
+ model: string
602
+ moduleId: string
603
+ start: boolean
604
+ color?: IdentifyColor
605
+ }
606
+ }
607
+
608
+ export interface IdentifyModuleRunTimeCommand
609
+ extends CommonCommandRunTimeInfo,
610
+ IdentifyModuleCreateCommand {
611
+ result?: any
612
+ }
@@ -3,7 +3,7 @@ import type {
3
3
  AspirateProperties,
4
4
  CommonCommandCreateInfo,
5
5
  CommonCommandRunTimeInfo,
6
- LabwareDefinition2,
6
+ LabwareDefinition,
7
7
  LabwareOffset,
8
8
  ModuleModel,
9
9
  MultiDispenseProperties,
@@ -222,7 +222,7 @@ interface LoadLabwareParams {
222
222
  }
223
223
  interface LoadLabwareResult {
224
224
  labwareId: string
225
- definition: LabwareDefinition2
225
+ definition: LabwareDefinition
226
226
  // todo(mm, 2024-08-19): This does not match the server-returned offsetId field.
227
227
  // Confirm nothing client-side is trying to use this, then replace it with offsetId.
228
228
  offset: LabwareOffset
@@ -318,8 +318,8 @@ interface LoadLidStackParams {
318
318
  interface LoadLidStackResult {
319
319
  stackLabwareId: string
320
320
  labwareIds: string[]
321
- definition?: LabwareDefinition2
322
- lidStackDefinition: LabwareDefinition2
321
+ definition?: LabwareDefinition
322
+ lidStackDefinition: LabwareDefinition
323
323
  location: LabwareLocation
324
324
  stackLocationSequence?: LabwareLocationSequence
325
325
  locationSequences?: LabwareLocationSequence[]
@@ -334,6 +334,6 @@ export interface LoadLidParams {
334
334
 
335
335
  interface LoadLidResult {
336
336
  labwareId: string
337
- definition: LabwareDefinition2
337
+ definition: LabwareDefinition
338
338
  locationSequence?: LabwareLocationSequence
339
339
  }
@@ -16,6 +16,7 @@ export interface WellOffset {
16
16
  y?: number
17
17
  z?: number
18
18
  }
19
+ // TODO(jh, 06-27-25): Origin and offset should be required. Mark them as so and fix all the type errors.
19
20
  export interface WellLocation {
20
21
  origin?: WellOrigin
21
22
  offset?: WellOffset
@@ -23,6 +23,9 @@
23
23
  "zDimension": 0
24
24
  },
25
25
  "displayName": "Slot 1",
26
+ "features": {
27
+ "springDirectionalForceAsParent": "backLeftBottom"
28
+ },
26
29
  "compatibleModuleTypes": [
27
30
  "magneticModuleType",
28
31
  "temperatureModuleType",
@@ -40,6 +43,9 @@
40
43
  "zDimension": 0
41
44
  },
42
45
  "displayName": "Slot 2",
46
+ "features": {
47
+ "springDirectionalForceAsParent": "backLeftBottom"
48
+ },
43
49
  "compatibleModuleTypes": [
44
50
  "magneticModuleType",
45
51
  "temperatureModuleType",
@@ -57,6 +63,9 @@
57
63
  "zDimension": 0
58
64
  },
59
65
  "displayName": "Slot 3",
66
+ "features": {
67
+ "springDirectionalForceAsParent": "backLeftBottom"
68
+ },
60
69
  "compatibleModuleTypes": [
61
70
  "magneticModuleType",
62
71
  "temperatureModuleType",
@@ -74,6 +83,9 @@
74
83
  "zDimension": 0
75
84
  },
76
85
  "displayName": "Slot 4",
86
+ "features": {
87
+ "springDirectionalForceAsParent": "backLeftBottom"
88
+ },
77
89
  "compatibleModuleTypes": [
78
90
  "magneticModuleType",
79
91
  "temperatureModuleType",
@@ -91,6 +103,9 @@
91
103
  "zDimension": 0
92
104
  },
93
105
  "displayName": "Slot 5",
106
+ "features": {
107
+ "springDirectionalForceAsParent": "backLeftBottom"
108
+ },
94
109
  "compatibleModuleTypes": [
95
110
  "magneticModuleType",
96
111
  "temperatureModuleType",
@@ -108,6 +123,9 @@
108
123
  "zDimension": 0
109
124
  },
110
125
  "displayName": "Slot 6",
126
+ "features": {
127
+ "springDirectionalForceAsParent": "backLeftBottom"
128
+ },
111
129
  "compatibleModuleTypes": [
112
130
  "magneticModuleType",
113
131
  "temperatureModuleType",
@@ -125,6 +143,9 @@
125
143
  "zDimension": 0
126
144
  },
127
145
  "displayName": "Slot 7",
146
+ "features": {
147
+ "springDirectionalForceAsParent": "backLeftBottom"
148
+ },
128
149
  "compatibleModuleTypes": [
129
150
  "magneticModuleType",
130
151
  "temperatureModuleType",
@@ -143,6 +164,9 @@
143
164
  "zDimension": 0
144
165
  },
145
166
  "displayName": "Slot 8",
167
+ "features": {
168
+ "springDirectionalForceAsParent": "backLeftBottom"
169
+ },
146
170
  "compatibleModuleTypes": [
147
171
  "magneticModuleType",
148
172
  "temperatureModuleType",
@@ -160,6 +184,9 @@
160
184
  "zDimension": 0
161
185
  },
162
186
  "displayName": "Slot 9",
187
+ "features": {
188
+ "springDirectionalForceAsParent": "backLeftBottom"
189
+ },
163
190
  "compatibleModuleTypes": [
164
191
  "magneticModuleType",
165
192
  "temperatureModuleType",
@@ -177,6 +204,9 @@
177
204
  "zDimension": 0
178
205
  },
179
206
  "displayName": "Slot 10",
207
+ "features": {
208
+ "springDirectionalForceAsParent": "backLeftBottom"
209
+ },
180
210
  "compatibleModuleTypes": [
181
211
  "magneticModuleType",
182
212
  "temperatureModuleType",
@@ -194,6 +224,9 @@
194
224
  "zDimension": 0
195
225
  },
196
226
  "displayName": "Slot 11",
227
+ "features": {
228
+ "springDirectionalForceAsParent": "backLeftBottom"
229
+ },
197
230
  "compatibleModuleTypes": [
198
231
  "magneticModuleType",
199
232
  "temperatureModuleType",
@@ -210,6 +243,9 @@
210
243
  "zDimension": 0
211
244
  },
212
245
  "displayName": "Slot 12",
246
+ "features": {
247
+ "springDirectionalForceAsParent": "backLeftBottom"
248
+ },
213
249
  "compatibleModuleTypes": []
214
250
  },
215
251
  {
@@ -222,6 +258,7 @@
222
258
  "zDimension": 58
223
259
  },
224
260
  "displayName": "Slot 12/Short Fixed Trash",
261
+ "features": {},
225
262
  "ableToDropTips": true
226
263
  }
227
264
  ],
@@ -23,6 +23,9 @@
23
23
  "zDimension": 0
24
24
  },
25
25
  "displayName": "Slot 1",
26
+ "features": {
27
+ "springDirectionalForceAsParent": "backLeftBottom"
28
+ },
26
29
  "compatibleModuleTypes": [
27
30
  "magneticModuleType",
28
31
  "temperatureModuleType",
@@ -40,6 +43,9 @@
40
43
  "zDimension": 0
41
44
  },
42
45
  "displayName": "Slot 2",
46
+ "features": {
47
+ "springDirectionalForceAsParent": "backLeftBottom"
48
+ },
43
49
  "compatibleModuleTypes": [
44
50
  "magneticModuleType",
45
51
  "temperatureModuleType",
@@ -57,6 +63,9 @@
57
63
  "zDimension": 0
58
64
  },
59
65
  "displayName": "Slot 3",
66
+ "features": {
67
+ "springDirectionalForceAsParent": "backLeftBottom"
68
+ },
60
69
  "compatibleModuleTypes": [
61
70
  "magneticModuleType",
62
71
  "temperatureModuleType",
@@ -74,6 +83,9 @@
74
83
  "zDimension": 0
75
84
  },
76
85
  "displayName": "Slot 4",
86
+ "features": {
87
+ "springDirectionalForceAsParent": "backLeftBottom"
88
+ },
77
89
  "compatibleModuleTypes": [
78
90
  "magneticModuleType",
79
91
  "temperatureModuleType",
@@ -91,6 +103,9 @@
91
103
  "zDimension": 0
92
104
  },
93
105
  "displayName": "Slot 5",
106
+ "features": {
107
+ "springDirectionalForceAsParent": "backLeftBottom"
108
+ },
94
109
  "compatibleModuleTypes": [
95
110
  "magneticModuleType",
96
111
  "temperatureModuleType",
@@ -108,6 +123,9 @@
108
123
  "zDimension": 0
109
124
  },
110
125
  "displayName": "Slot 6",
126
+ "features": {
127
+ "springDirectionalForceAsParent": "backLeftBottom"
128
+ },
111
129
  "compatibleModuleTypes": [
112
130
  "magneticModuleType",
113
131
  "temperatureModuleType",
@@ -125,6 +143,9 @@
125
143
  "zDimension": 0
126
144
  },
127
145
  "displayName": "Slot 7",
146
+ "features": {
147
+ "springDirectionalForceAsParent": "backLeftBottom"
148
+ },
128
149
  "compatibleModuleTypes": [
129
150
  "magneticModuleType",
130
151
  "temperatureModuleType",
@@ -143,6 +164,9 @@
143
164
  "zDimension": 0
144
165
  },
145
166
  "displayName": "Slot 8",
167
+ "features": {
168
+ "springDirectionalForceAsParent": "backLeftBottom"
169
+ },
146
170
  "compatibleModuleTypes": [
147
171
  "magneticModuleType",
148
172
  "temperatureModuleType",
@@ -160,6 +184,9 @@
160
184
  "zDimension": 0
161
185
  },
162
186
  "displayName": "Slot 9",
187
+ "features": {
188
+ "springDirectionalForceAsParent": "backLeftBottom"
189
+ },
163
190
  "compatibleModuleTypes": [
164
191
  "magneticModuleType",
165
192
  "temperatureModuleType",
@@ -177,6 +204,9 @@
177
204
  "zDimension": 0
178
205
  },
179
206
  "displayName": "Slot 10",
207
+ "features": {
208
+ "springDirectionalForceAsParent": "backLeftBottom"
209
+ },
180
210
  "compatibleModuleTypes": [
181
211
  "magneticModuleType",
182
212
  "temperatureModuleType",
@@ -194,6 +224,9 @@
194
224
  "zDimension": 0
195
225
  },
196
226
  "displayName": "Slot 11",
227
+ "features": {
228
+ "springDirectionalForceAsParent": "backLeftBottom"
229
+ },
197
230
  "compatibleModuleTypes": [
198
231
  "magneticModuleType",
199
232
  "temperatureModuleType",
@@ -210,6 +243,9 @@
210
243
  "zDimension": 0
211
244
  },
212
245
  "displayName": "Slot 12",
246
+ "features": {
247
+ "springDirectionalForceAsParent": "backLeftBottom"
248
+ },
213
249
  "compatibleModuleTypes": []
214
250
  },
215
251
  {
@@ -222,6 +258,7 @@
222
258
  "zDimension": 82
223
259
  },
224
260
  "displayName": "Slot 12/Fixed Trash",
261
+ "features": {},
225
262
  "ableToDropTips": true
226
263
  }
227
264
  ],