@opentrons/shared-data 0.1.7-alpha.0 → 0.1.7-alpha.1

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 (186) hide show
  1. package/command/index.ts +14 -2
  2. package/command/schemas/12.json +65 -0
  3. package/command/schemas/13.json +7207 -0
  4. package/command/types/annotation.ts +1 -1
  5. package/command/types/calibration.ts +7 -6
  6. package/command/types/gantry.ts +7 -6
  7. package/command/types/incidental.ts +1 -1
  8. package/command/types/index.ts +68 -20
  9. package/command/types/module.ts +76 -9
  10. package/command/types/pipetting.ts +9 -3
  11. package/command/types/robot.ts +98 -0
  12. package/command/types/setup.ts +3 -3
  13. package/command/types/support.ts +13 -2
  14. package/command/types/timing.ts +1 -1
  15. package/command/types/unsafe.ts +63 -1
  16. package/deck/index.ts +3 -6
  17. package/errors/definitions/1/errors.json +12 -0
  18. package/errors/index.ts +2 -1
  19. package/labware/definitions/2/agilent_1_reservoir_290ml/3.json +80 -0
  20. package/labware/definitions/2/corning_384_wellplate_112ul_flat/4.json +5116 -0
  21. package/labware/definitions/2/corning_48_wellplate_1.6ml_flat/4.json +605 -0
  22. package/labware/definitions/2/nest_1_reservoir_290ml/3.json +80 -0
  23. package/labware/definitions/2/opentrons_24_aluminumblock_nest_0.5ml_screwcap/3.json +370 -0
  24. package/labware/definitions/2/opentrons_24_tuberack_nest_0.5ml_screwcap/3.json +371 -0
  25. package/labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/4.json +1149 -0
  26. package/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +8 -2
  27. package/labware/definitions/2/usascientific_12_reservoir_22ml/3.json +237 -0
  28. package/labware/definitions/3/schema3test_96_well_aluminum_block/999.json +1047 -0
  29. package/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +1189 -0
  30. package/labware/definitions/3/schema3test_flex_96_tiprack_200ul/999.json +1041 -0
  31. package/labware/fixtures/2/index.ts +4 -4
  32. package/labware/fixtures/3/fixture_2_plate.json +25 -11
  33. package/labware/fixtures/3/fixture_corning_24_plate.json +47 -33
  34. package/labware/schemas/3.json +63 -25
  35. package/lib/command/index.d.ts +4156 -2078
  36. package/lib/command/schemas/12.json +65 -0
  37. package/lib/command/schemas/13.json +7207 -0
  38. package/lib/command/types/annotation.d.ts +1 -1
  39. package/lib/command/types/calibration.d.ts +5 -5
  40. package/lib/command/types/gantry.d.ts +5 -4
  41. package/lib/command/types/incidental.d.ts +1 -1
  42. package/lib/command/types/index.d.ts +52 -14
  43. package/lib/command/types/module.d.ts +59 -10
  44. package/lib/command/types/pipetting.d.ts +8 -3
  45. package/lib/command/types/robot.d.ts +71 -0
  46. package/lib/command/types/setup.d.ts +1 -1
  47. package/lib/command/types/support.d.ts +3 -2
  48. package/lib/command/types/timing.d.ts +1 -1
  49. package/lib/command/types/unsafe.d.ts +44 -3
  50. package/lib/deck/index.d.ts +3 -3
  51. package/lib/errors/definitions/1/errors.json +12 -0
  52. package/lib/errors/index.d.ts +1 -1
  53. package/lib/index.mjs +372042 -335507
  54. package/lib/js/constants.d.ts +17 -10
  55. package/lib/js/deck/index.d.ts +2 -2
  56. package/lib/js/fixtures.d.ts +1 -1
  57. package/lib/js/gripper.d.ts +1 -1
  58. package/lib/js/helpers/__tests__/getMmFromBottom.test.d.ts +1 -0
  59. package/lib/js/helpers/__tests__/liquidClasses.test.d.ts +1 -0
  60. package/lib/js/helpers/getLoadedLabwareDefinitionsByUri.d.ts +1 -1
  61. package/lib/js/helpers/getMmFromBottom.d.ts +2 -0
  62. package/lib/js/helpers/getSimplestFlexDeckConfig.d.ts +1 -1
  63. package/lib/js/helpers/getVectorDifference.d.ts +2 -2
  64. package/lib/js/helpers/getVectorSum.d.ts +2 -2
  65. package/lib/js/helpers/getWellRangeForLiquidLabwarePair.d.ts +6 -0
  66. package/lib/js/helpers/index.d.ts +4 -1
  67. package/lib/js/helpers/labwareInference.d.ts +1 -1
  68. package/lib/js/helpers/liquidClasses.d.ts +8 -0
  69. package/lib/js/helpers/parseAddressableArea.d.ts +1 -1
  70. package/lib/js/helpers/parseProtocolCommands.d.ts +2 -2
  71. package/lib/js/helpers/validateCustomLabwareHelper.d.ts +1 -1
  72. package/lib/js/labware.d.ts +6 -6
  73. package/lib/js/labwareTools/index.d.ts +1 -1
  74. package/lib/js/modules.d.ts +1 -1
  75. package/lib/js/pipettes.d.ts +3 -2
  76. package/lib/js/types.d.ts +45 -27
  77. package/lib/labware/definitions/2/agilent_1_reservoir_290ml/3.json +80 -0
  78. package/lib/labware/definitions/2/corning_384_wellplate_112ul_flat/4.json +5116 -0
  79. package/lib/labware/definitions/2/corning_48_wellplate_1.6ml_flat/4.json +605 -0
  80. package/lib/labware/definitions/2/nest_1_reservoir_290ml/3.json +80 -0
  81. package/lib/labware/definitions/2/opentrons_24_aluminumblock_nest_0.5ml_screwcap/3.json +370 -0
  82. package/lib/labware/definitions/2/opentrons_24_tuberack_nest_0.5ml_screwcap/3.json +371 -0
  83. package/lib/labware/definitions/2/opentrons_96_aluminumblock_generic_pcr_strip_200ul/4.json +1149 -0
  84. package/lib/labware/definitions/2/opentrons_flex_tiprack_lid/1.json +8 -2
  85. package/lib/labware/definitions/2/usascientific_12_reservoir_22ml/3.json +237 -0
  86. package/lib/labware/definitions/3/schema3test_96_well_aluminum_block/999.json +1047 -0
  87. package/lib/labware/definitions/3/schema3test_96_wellplate_200ul_pcr_full_skirt/999.json +1189 -0
  88. package/lib/labware/definitions/3/schema3test_flex_96_tiprack_200ul/999.json +1041 -0
  89. package/lib/labware/fixtures/2/index.d.ts +4 -4
  90. package/lib/labware/fixtures/3/fixture_2_plate.json +25 -11
  91. package/lib/labware/fixtures/3/fixture_corning_24_plate.json +47 -33
  92. package/lib/labware/schemas/3.json +63 -25
  93. package/lib/liquid-class/definitions/1/ethanol_80.json +1455 -1059
  94. package/lib/liquid-class/definitions/1/glycerol_50.json +1454 -1058
  95. package/lib/liquid-class/definitions/1/water.json +1459 -1063
  96. package/lib/liquid-class/fixtures/1/fixture_glycerol50.json +66 -48
  97. package/lib/liquid-class/schemas/1.json +34 -48
  98. package/lib/module/definitions/3/absorbanceReaderV1.json +1 -0
  99. package/lib/module/definitions/3/flexStackerModuleV1.json +6 -0
  100. package/lib/module/definitions/3/magneticBlockV1.json +1 -0
  101. package/lib/module/definitions/3/magneticModuleV1.json +1 -0
  102. package/lib/module/definitions/3/magneticModuleV2.json +1 -0
  103. package/lib/module/definitions/3/temperatureModuleV1.json +1 -0
  104. package/lib/module/definitions/3/temperatureModuleV2.json +1 -0
  105. package/lib/module/definitions/3/thermocyclerModuleV1.json +1 -0
  106. package/lib/module/definitions/3/thermocyclerModuleV2.json +1 -0
  107. package/lib/module/schemas/3.json +4 -0
  108. package/lib/pipette/definitions/2/geometry/eight_channel/p50/3_5.json +4 -0
  109. package/lib/pipette/definitions/2/geometry/ninety_six_channel/p200/3_0.json +4 -0
  110. package/lib/pipette/definitions/2/geometry/single_channel/p50/3_6.json +4 -0
  111. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/1_0.json +11 -11
  112. package/lib/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_0.json +12 -12
  113. package/lib/pipette/definitions/2/liquid/single_channel/p50/default/3_6.json +5 -5
  114. package/lib/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_6.json +5 -5
  115. package/lib/pipette/fixtures/name/index.d.ts +1 -1
  116. package/lib/protocol/fixtures/index.d.ts +2 -2
  117. package/lib/protocol/index.d.ts +7 -7
  118. package/lib/protocol/types/schemaV4.d.ts +1 -1
  119. package/lib/protocol/types/schemaV5.d.ts +1 -1
  120. package/lib/protocol/types/schemaV5Addendum.d.ts +1 -1
  121. package/lib/protocol/types/schemaV6/command/gantry.d.ts +4 -4
  122. package/lib/protocol/types/schemaV6/command/index.d.ts +5 -5
  123. package/lib/protocol/types/schemaV6/command/module.d.ts +1 -1
  124. package/lib/protocol/types/schemaV6/command/pipetting.d.ts +1 -1
  125. package/lib/protocol/types/schemaV6/command/setup.d.ts +1 -1
  126. package/lib/protocol/types/schemaV6/command/timing.d.ts +1 -1
  127. package/lib/protocol/types/schemaV6/index.d.ts +2 -2
  128. package/lib/protocol/types/schemaV7/command/annotation.d.ts +1 -1
  129. package/lib/protocol/types/schemaV7/command/calibration.d.ts +5 -5
  130. package/lib/protocol/types/schemaV7/command/gantry.d.ts +4 -4
  131. package/lib/protocol/types/schemaV7/command/incidental.d.ts +1 -1
  132. package/lib/protocol/types/schemaV7/command/index.d.ts +7 -7
  133. package/lib/protocol/types/schemaV7/command/module.d.ts +1 -1
  134. package/lib/protocol/types/schemaV7/command/pipetting.d.ts +1 -1
  135. package/lib/protocol/types/schemaV7/command/setup.d.ts +1 -1
  136. package/lib/protocol/types/schemaV7/command/timing.d.ts +1 -1
  137. package/lib/protocol/types/schemaV7/index.d.ts +2 -2
  138. package/lib/protocol/types/schemaV8/index.d.ts +1 -1
  139. package/liquid-class/definitions/1/ethanol_80.json +1455 -1059
  140. package/liquid-class/definitions/1/glycerol_50.json +1454 -1058
  141. package/liquid-class/definitions/1/water.json +1459 -1063
  142. package/liquid-class/fixtures/1/fixture_glycerol50.json +66 -48
  143. package/liquid-class/schemas/1.json +34 -48
  144. package/module/definitions/3/absorbanceReaderV1.json +1 -0
  145. package/module/definitions/3/flexStackerModuleV1.json +6 -0
  146. package/module/definitions/3/magneticBlockV1.json +1 -0
  147. package/module/definitions/3/magneticModuleV1.json +1 -0
  148. package/module/definitions/3/magneticModuleV2.json +1 -0
  149. package/module/definitions/3/temperatureModuleV1.json +1 -0
  150. package/module/definitions/3/temperatureModuleV2.json +1 -0
  151. package/module/definitions/3/thermocyclerModuleV1.json +1 -0
  152. package/module/definitions/3/thermocyclerModuleV2.json +1 -0
  153. package/module/schemas/3.json +4 -0
  154. package/package.json +1 -1
  155. package/pipette/definitions/2/geometry/eight_channel/p50/3_5.json +4 -0
  156. package/pipette/definitions/2/geometry/ninety_six_channel/p200/3_0.json +4 -0
  157. package/pipette/definitions/2/geometry/single_channel/p50/3_6.json +4 -0
  158. package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/1_0.json +11 -11
  159. package/pipette/definitions/2/liquid/ninety_six_channel/p200/default/3_0.json +12 -12
  160. package/pipette/definitions/2/liquid/single_channel/p50/default/3_6.json +5 -5
  161. package/pipette/definitions/2/liquid/single_channel/p50/lowVolumeDefault/3_6.json +5 -5
  162. package/pipette/fixtures/index.ts +12 -12
  163. package/pipette/fixtures/name/index.ts +1 -0
  164. package/protocol/fixtures/index.ts +2 -3
  165. package/protocol/index.ts +9 -8
  166. package/protocol/types/schemaV4.ts +4 -4
  167. package/protocol/types/schemaV5.ts +1 -1
  168. package/protocol/types/schemaV5Addendum.ts +1 -1
  169. package/protocol/types/schemaV6/command/gantry.ts +4 -4
  170. package/protocol/types/schemaV6/command/index.ts +6 -6
  171. package/protocol/types/schemaV6/command/module.ts +1 -1
  172. package/protocol/types/schemaV6/command/pipetting.ts +2 -1
  173. package/protocol/types/schemaV6/command/setup.ts +2 -2
  174. package/protocol/types/schemaV6/command/timing.ts +1 -1
  175. package/protocol/types/schemaV6/index.ts +3 -3
  176. package/protocol/types/schemaV7/command/annotation.ts +1 -1
  177. package/protocol/types/schemaV7/command/calibration.ts +7 -6
  178. package/protocol/types/schemaV7/command/gantry.ts +5 -5
  179. package/protocol/types/schemaV7/command/incidental.ts +1 -1
  180. package/protocol/types/schemaV7/command/index.ts +14 -14
  181. package/protocol/types/schemaV7/command/module.ts +1 -1
  182. package/protocol/types/schemaV7/command/pipetting.ts +2 -1
  183. package/protocol/types/schemaV7/command/setup.ts +2 -2
  184. package/protocol/types/schemaV7/command/timing.ts +1 -1
  185. package/protocol/types/schemaV7/index.ts +3 -3
  186. package/protocol/types/schemaV8/index.ts +3 -3
@@ -1,4 +1,4 @@
1
- import type { CommonCommandRunTimeInfo, CommonCommandCreateInfo } from '.'
1
+ import type { CommonCommandCreateInfo, CommonCommandRunTimeInfo } from '.'
2
2
 
3
3
  export type AnnotationCreateCommand = CommentCreateCommand | CustomCreateCommand
4
4
 
@@ -1,10 +1,11 @@
1
- import type { CommonCommandRunTimeInfo, CommonCommandCreateInfo } from '.'
1
+ import type { CommonCommandCreateInfo, CommonCommandRunTimeInfo } from '.'
2
2
  import type {
3
- PipetteMount,
4
3
  GantryMount,
5
4
  LabwareOffset,
6
- Coordinates,
5
+ PipetteMount,
6
+ Vector3D,
7
7
  } from '../../js/types'
8
+
8
9
  // TODO (sb 10/26/22): Separate out calibration commands from protocol schema in RAUT-272
9
10
  export interface CalibratePipetteCreateCommand extends CommonCommandCreateInfo {
10
11
  commandType: 'calibration/calibratePipette'
@@ -62,7 +63,7 @@ interface CalibratePipetteParams {
62
63
  }
63
64
  interface CalibrateGripperParams {
64
65
  jaw: 'front' | 'rear'
65
- otherJawOffset?: Coordinates
66
+ otherJawOffset?: Vector3D
66
67
  }
67
68
  interface CalibrateModuleParams {
68
69
  moduleId: string
@@ -73,12 +74,12 @@ interface CalibratePipetteResult {
73
74
  pipetteOffset: LabwareOffset
74
75
  }
75
76
  interface CalibrateGripperResult {
76
- jawOffset: Coordinates
77
+ jawOffset: Vector3D
77
78
  }
78
79
  interface MoveToMaintenancePositionParams {
79
80
  mount: GantryMount
80
81
  maintenancePosition?: 'attachPlate' | 'attachInstrument'
81
82
  }
82
83
  interface CalibrateModuleResult {
83
- moduleOffset: Coordinates
84
+ moduleOffset: Vector3D
84
85
  }
@@ -1,12 +1,12 @@
1
- import type { CommonCommandRunTimeInfo, CommonCommandCreateInfo } from '.'
1
+ import type { CommonCommandCreateInfo, CommonCommandRunTimeInfo } from '.'
2
2
  import type { AddressableAreaName } from '../../deck'
3
- import type { WellLocation } from './support'
4
3
  import type {
5
- Coordinates,
4
+ GantryMount,
6
5
  MotorAxes,
7
6
  MotorAxis,
8
- GantryMount,
7
+ Vector3D,
9
8
  } from '../../js/types'
9
+ import type { WellLocation } from './support'
10
10
 
11
11
  export interface MoveToSlotCreateCommand extends CommonCommandCreateInfo {
12
12
  commandType: 'moveToSlot'
@@ -44,7 +44,7 @@ export interface MoveRelativeRunTimeCommand
44
44
  extends CommonCommandRunTimeInfo,
45
45
  MoveRelativeCreateCommand {
46
46
  result?: {
47
- position: Coordinates
47
+ position: Vector3D
48
48
  }
49
49
  }
50
50
  export interface SavePositionCreateCommand extends CommonCommandCreateInfo {
@@ -56,7 +56,7 @@ export interface SavePositionRunTimeCommand
56
56
  SavePositionCreateCommand {
57
57
  result?: {
58
58
  positionId: string
59
- position: Coordinates
59
+ position: Vector3D
60
60
  }
61
61
  }
62
62
  export interface HomeCreateCommand extends CommonCommandCreateInfo {
@@ -129,6 +129,7 @@ export interface MoveToWellParams {
129
129
  wellLocation?: WellLocation
130
130
  minimumZHeight?: number
131
131
  forceDirect?: boolean
132
+ speed?: number
132
133
  }
133
134
 
134
135
  interface MoveToCoordinatesParams {
@@ -1,4 +1,4 @@
1
- import type { CommonCommandRunTimeInfo, CommonCommandCreateInfo } from '.'
1
+ import type { CommonCommandCreateInfo, CommonCommandRunTimeInfo } from '.'
2
2
  import type { StatusBarAnimation } from '../../js/types'
3
3
 
4
4
  export type IncidentalCreateCommand =
@@ -1,25 +1,26 @@
1
1
  import type { ErrorCodes } from '../../errors'
2
2
  import type {
3
- PipettingRunTimeCommand,
4
- PipettingCreateCommand,
5
- } from './pipetting'
6
- import type { GantryRunTimeCommand, GantryCreateCommand } from './gantry'
7
- import type { ModuleRunTimeCommand, ModuleCreateCommand } from './module'
8
- import type { SetupRunTimeCommand, SetupCreateCommand } from './setup'
9
- import type { TimingRunTimeCommand, TimingCreateCommand } from './timing'
10
- import type {
11
- IncidentalCreateCommand,
12
- IncidentalRunTimeCommand,
13
- } from './incidental'
14
- import type {
15
- AnnotationRunTimeCommand,
16
3
  AnnotationCreateCommand,
4
+ AnnotationRunTimeCommand,
17
5
  } from './annotation'
18
6
  import type {
19
- CalibrationRunTimeCommand,
20
7
  CalibrationCreateCommand,
8
+ CalibrationRunTimeCommand,
21
9
  } from './calibration'
22
- import type { UnsafeRunTimeCommand, UnsafeCreateCommand } from './unsafe'
10
+ import type { GantryCreateCommand, GantryRunTimeCommand } from './gantry'
11
+ import type {
12
+ IncidentalCreateCommand,
13
+ IncidentalRunTimeCommand,
14
+ } from './incidental'
15
+ import type { ModuleCreateCommand, ModuleRunTimeCommand } from './module'
16
+ import type {
17
+ PipettingCreateCommand,
18
+ PipettingRunTimeCommand,
19
+ } from './pipetting'
20
+ import type { RobotCreateCommand, RobotRunTimeCommand } from './robot'
21
+ import type { SetupCreateCommand, SetupRunTimeCommand } from './setup'
22
+ import type { TimingCreateCommand, TimingRunTimeCommand } from './timing'
23
+ import type { UnsafeCreateCommand, UnsafeRunTimeCommand } from './unsafe'
23
24
 
24
25
  export * from './annotation'
25
26
  export * from './calibration'
@@ -31,6 +32,7 @@ export * from './setup'
31
32
  export * from './timing'
32
33
  export * from './unsafe'
33
34
  export * from './support'
35
+ export * from './robot'
34
36
  // NOTE: these key/value pairs will only be present on commands at analysis/run time
35
37
  // they pertain only to the actual execution status of a command on hardware, as opposed to
36
38
  // the command's identity and parameters which can be known prior to runtime
@@ -42,11 +44,13 @@ export interface CommandNote {
42
44
  }
43
45
  export type CommandStatus = 'queued' | 'running' | 'succeeded' | 'failed'
44
46
  export type CommandIntent = 'protocol' | 'setup' | 'fixit'
45
- export interface CommonCommandRunTimeInfo {
47
+ export interface CommonCommandRunTimeInfo<
48
+ DefinedErrorsT extends DefinedRunCommandError = DefinedRunCommandError
49
+ > {
46
50
  key?: string
47
51
  id: string
48
52
  status: CommandStatus
49
- error?: RunCommandError | null
53
+ error?: RunCommandErrorUndefined | DefinedErrorsT | null
50
54
  createdAt: string
51
55
  startedAt: string | null
52
56
  completedAt: string | null
@@ -70,6 +74,7 @@ export type CreateCommand =
70
74
  | AnnotationCreateCommand // annotating command execution
71
75
  | IncidentalCreateCommand // command with only incidental effects (status bar animations)
72
76
  | UnsafeCreateCommand // command providing capabilities that are not safe for scientific uses
77
+ | RobotCreateCommand // command providing underlying robot capabilities outside the normal model
73
78
 
74
79
  // commands will be required to have a key, but will not be created with one
75
80
  export type RunTimeCommand =
@@ -82,10 +87,19 @@ export type RunTimeCommand =
82
87
  | AnnotationRunTimeCommand // annotating command execution
83
88
  | IncidentalRunTimeCommand // command with only incidental effects (status bar animations)
84
89
  | UnsafeRunTimeCommand // command providing capabilities that are not safe for scientific uses
90
+ | RobotRunTimeCommand // command providing underlying robot capabilities outside the normal model
91
+
92
+ export type RunCommandError = RunCommandErrorUndefined | DefinedRunCommandError
93
+
94
+ export type DefinedRunCommandError =
95
+ | RunCommandRobotActionError
96
+ | RunCommandFlexStackerError
85
97
 
86
- export type RunCommandError =
87
- | RunCommandErrorUndefined
98
+ export type RunCommandRobotActionError =
88
99
  | RunCommandErrorOverpressure
100
+ | RunCommandErrorTipPhysicallyAttached
101
+
102
+ export type Failed<CommandT extends RunTimeCommand> = Omit<CommandT, 'result'>
89
103
 
90
104
  // TODO(jh, 05-24-24): Update when some of these newer properties become more finalized.
91
105
  export interface RunCommandErrorBase {
@@ -98,7 +112,7 @@ export interface RunCommandErrorBase {
98
112
  export interface RunCommandErrorUndefined extends RunCommandErrorBase {
99
113
  errorCode: ErrorCodes
100
114
  errorType: string
101
- isDefined: false
115
+ isDefined: boolean
102
116
  errorInfo?: Record<string, unknown>
103
117
  }
104
118
 
@@ -108,3 +122,37 @@ export interface RunCommandErrorOverpressure extends RunCommandErrorBase {
108
122
  isDefined: true
109
123
  errorInfo: { retryLocation: [number, number, number] }
110
124
  }
125
+
126
+ export interface RunCommandErrorTipPhysicallyAttached
127
+ extends RunCommandErrorBase {
128
+ errorCode: '3004'
129
+ errorType: 'tipPhysicallyAttached'
130
+ isDefined: true
131
+ errorInfo: { retryLocation: [number, number, number] }
132
+ }
133
+
134
+ export interface RunCommandErrorFlexStackerStall extends RunCommandErrorBase {
135
+ errorCode: '2019'
136
+ errorType: 'flexStackerStallOrCollision'
137
+ isDefined: true
138
+ errorInfo: { labwareId?: string }
139
+ }
140
+
141
+ export interface RunCommandErrorFlexStackerShuttle extends RunCommandErrorBase {
142
+ errorCode: '3020'
143
+ errorType: 'flexStackerShuttleMissing'
144
+ isDefined: true
145
+ errorInfo: { labwareId?: string }
146
+ }
147
+
148
+ export interface RunCommandErrorFlexStackerHopper extends RunCommandErrorBase {
149
+ errorCode: '3022'
150
+ errorType: 'flexStackerHopperLabwareFailed'
151
+ isDefined: true
152
+ errorInfo: { labwareId?: string }
153
+ }
154
+
155
+ export type RunCommandFlexStackerError =
156
+ | RunCommandErrorFlexStackerStall
157
+ | RunCommandErrorFlexStackerShuttle
158
+ | RunCommandErrorFlexStackerHopper
@@ -1,6 +1,10 @@
1
- import type { CommonCommandRunTimeInfo, CommonCommandCreateInfo } from '.'
2
- import type { LabwareLocationSequence } from './setup'
1
+ import type {
2
+ CommonCommandCreateInfo,
3
+ CommonCommandRunTimeInfo,
4
+ RunCommandFlexStackerError,
5
+ } from '.'
3
6
  import type { LabwareDefinition2 } from '../../js'
7
+ import type { LabwareLocationSequence } from './setup'
4
8
 
5
9
  export type ModuleRunTimeCommand =
6
10
  | MagneticModuleEngageMagnetRunTimeCommand
@@ -69,6 +73,9 @@ export type ModuleCreateCommand =
69
73
  | FlexStackerStoreCreateCommand
70
74
  | FlexStackerFillCreateCommand
71
75
  | FlexStackerEmptyCreateCommand
76
+ | FlexStackerPrepareShuttleCreateCommand
77
+ | FlexStackerOpenLatch
78
+ | FlexStackerCloseLatch
72
79
 
73
80
  export interface MagneticModuleEngageMagnetCreateCommand
74
81
  extends CommonCommandCreateInfo {
@@ -399,12 +406,34 @@ export interface FlexStackerStoredLabwareDetails {
399
406
  version: number
400
407
  }
401
408
 
409
+ export interface FlexStackerStoredLabwareGroup {
410
+ primaryLabwareId: string
411
+ adapterLabwareId: string | null
412
+ lidLabwareId: string | null
413
+ }
414
+
415
+ interface StackerStoredLabwareLocationSequences {
416
+ originalPrimaryLabwareLocationSequences?: LabwareLocationSequence[] | null
417
+ originalAdapterLabwareLocationSequences?: LabwareLocationSequence[] | null
418
+ originalLidLabwareLocationSequences?: LabwareLocationSequence[] | null
419
+ newPrimaryLabwareLocationSequences?: LabwareLocationSequence[] | null
420
+ newAdapterLabwareLocationSequences?: LabwareLocationSequence[] | null
421
+ newLidLabwareLocationSequences?: LabwareLocationSequence[] | null
422
+ }
423
+
424
+ interface StackerStoredLabwareDefinitionURIs {
425
+ primaryLabwareURI: string
426
+ adapterLabwareURI?: string | null
427
+ lidLabwareURI?: string | null
428
+ }
429
+
402
430
  export interface FlexStackerSetStoredLabwareCreateCommand
403
431
  extends CommonCommandCreateInfo {
404
432
  commandType: 'flexStacker/setStoredLabware'
405
433
  params: {
406
434
  moduleId: string
407
- initialCount: number
435
+ initialCount?: number | null
436
+ initialStoredLabware?: FlexStackerStoredLabwareGroup[] | null
408
437
  primaryLabware: FlexStackerStoredLabwareDetails
409
438
  lidLabware: FlexStackerStoredLabwareDetails | null
410
439
  adapterLabware: FlexStackerStoredLabwareDetails | null
@@ -419,7 +448,8 @@ export interface FlexStackerSetStoredLabwareRunTimeCommand
419
448
  lidLabwareDefinition?: LabwareDefinition2 | null
420
449
  adapterLabwareDefinition?: LabwareDefinition2 | null
421
450
  count: number
422
- }
451
+ storedLabware: FlexStackerStoredLabwareGroup[]
452
+ } & StackerStoredLabwareLocationSequences
423
453
  }
424
454
 
425
455
  export interface FlexStackerRetrieveCreateCommand
@@ -442,6 +472,7 @@ export interface FlexStackerFillCreateCommand extends CommonCommandCreateInfo {
442
472
  strategy: 'manualWithPause' | 'logical'
443
473
  message?: string
444
474
  count?: number
475
+ labwareToStore?: FlexStackerStoredLabwareGroup[]
445
476
  }
446
477
  }
447
478
 
@@ -454,39 +485,69 @@ export interface FlexStackerEmptyCreateCommand extends CommonCommandCreateInfo {
454
485
  count?: number
455
486
  }
456
487
  }
488
+
489
+ export interface FlexStackerPrepareShuttleCreateCommand
490
+ extends CommonCommandCreateInfo {
491
+ commandType: 'flexStacker/prepareShuttle'
492
+ params: {
493
+ moduleId: string
494
+ ignoreLatch?: boolean
495
+ }
496
+ }
497
+
498
+ // TODO(tz, 4-17-2025): move under unsafe domain when BE has moved as well
499
+ export interface FlexStackerOpenLatch extends CommonCommandCreateInfo {
500
+ commandType: 'flexStacker/openLatch'
501
+ params: {
502
+ moduleId: string
503
+ }
504
+ }
505
+
506
+ export interface FlexStackerCloseLatch extends CommonCommandCreateInfo {
507
+ commandType: 'flexStacker/closeLatch'
508
+ params: {
509
+ moduleId: string
510
+ }
511
+ }
512
+
457
513
  interface RetrieveResultPrimary {
458
514
  labwareId: string
459
515
  primaryLocationSequence: LabwareLocationSequence
516
+ originalPrimaryLocationSequence: LabwareLocationSequence
460
517
  primaryLabwareURI: string
461
518
  }
462
519
 
463
520
  interface RetrieveResultNoLid {
464
521
  lidId?: null
465
522
  lidLocationSequence?: null
523
+ originalLidLocationSequence?: null
466
524
  lidLabwareURI?: null
467
525
  }
468
526
 
469
527
  interface RetrieveResultLid {
470
528
  lidId: string
471
529
  lidLocationSequence: LabwareLocationSequence
530
+ originalLidLocationSequence: LabwareLocationSequence
472
531
  lidLabwareURI: string
473
532
  }
474
533
 
475
534
  interface RetrieveResultAdapter {
476
535
  adapterId: string
477
536
  adapterLocationSequence: LabwareLocationSequence
537
+ originalAdapterLocationSequence: LabwareLocationSequence
478
538
  adapterLabwareURI: string
479
539
  }
480
540
 
481
541
  interface RetrieveResultNoAdapter {
482
542
  adapterId?: null
483
543
  adapterLocationSequence?: null
544
+ originalAdapterLocationSequence?: null
484
545
  adapterLabwareURI?: null
485
546
  }
486
547
 
487
548
  export interface FlexStackerRetrieveRunTimeCommand
488
549
  extends FlexStackerRetrieveCreateCommand,
489
- CommonCommandRunTimeInfo {
550
+ CommonCommandRunTimeInfo<RunCommandFlexStackerError> {
490
551
  result?:
491
552
  | (RetrieveResultPrimary & RetrieveResultNoLid & RetrieveResultNoAdapter)
492
553
  | (RetrieveResultPrimary & RetrieveResultLid & RetrieveResultNoAdapter)
@@ -496,7 +557,7 @@ export interface FlexStackerRetrieveRunTimeCommand
496
557
 
497
558
  export interface FlexStackerStoreRunTimeCommand
498
559
  extends FlexStackerStoreCreateCommand,
499
- CommonCommandRunTimeInfo {
560
+ CommonCommandRunTimeInfo<RunCommandFlexStackerError> {
500
561
  result?: {
501
562
  eventualDestinationLocationSequence?: LabwareLocationSequence
502
563
  primaryOriginLocationSequence?: LabwareLocationSequence
@@ -505,7 +566,7 @@ export interface FlexStackerStoreRunTimeCommand
505
566
  adapterLabwareId?: string
506
567
  lidOriginLocationSequence?: LabwareLocationSequence
507
568
  lidLabwareId?: LabwareLocationSequence
508
- }
569
+ } & StackerStoredLabwareDefinitionURIs
509
570
  }
510
571
 
511
572
  export interface FlexStackerFillRunTimeCommand
@@ -513,7 +574,10 @@ export interface FlexStackerFillRunTimeCommand
513
574
  CommonCommandRunTimeInfo {
514
575
  result?: {
515
576
  count: number
516
- }
577
+ storedLabware?: FlexStackerStoredLabwareGroup[] | null
578
+ addedLabware?: FlexStackerStoredLabwareGroup[] | null
579
+ } & StackerStoredLabwareLocationSequences &
580
+ StackerStoredLabwareDefinitionURIs
517
581
  }
518
582
 
519
583
  export interface FlexStackerEmptyRunTimeCommand
@@ -521,5 +585,8 @@ export interface FlexStackerEmptyRunTimeCommand
521
585
  CommonCommandRunTimeInfo {
522
586
  result?: {
523
587
  count: number
524
- }
588
+ storedLabware?: FlexStackerStoredLabwareGroup[] | null
589
+ removedLabware?: FlexStackerStoredLabwareGroup[] | null
590
+ } & StackerStoredLabwareLocationSequences &
591
+ StackerStoredLabwareDefinitionURIs
525
592
  }
@@ -1,6 +1,7 @@
1
+ import type { CommonCommandCreateInfo, CommonCommandRunTimeInfo } from '.'
1
2
  import type { AddressableAreaName } from '../../deck'
2
- import type { CommonCommandRunTimeInfo, CommonCommandCreateInfo } from '.'
3
3
  import type { DropTipWellLocation, WellLocation } from './support'
4
+
4
5
  export type PipettingRunTimeCommand =
5
6
  | AspirateInPlaceRunTimeCommand
6
7
  | AspirateInPlaceRunTimeCommand
@@ -68,7 +69,9 @@ export interface ConfigureForVolumeRunTimeCommand
68
69
 
69
70
  export type AirGapInPlaceParams = FlowRateParams &
70
71
  PipetteIdentityParams &
71
- VolumeParams
72
+ VolumeParams & {
73
+ correctionVolume?: number
74
+ }
72
75
 
73
76
  export interface AirGapInPlaceCreateCommand extends CommonCommandCreateInfo {
74
77
  commandType: 'airGapInPlace'
@@ -235,9 +238,10 @@ export interface VerifyTipPresenceRunTimeCommand
235
238
  result?: any
236
239
  }
237
240
 
241
+ export type LiquidProbeParams = WellLocationParam & PipetteAccessParams
238
242
  export interface LiquidProbeCreateCommand extends CommonCommandCreateInfo {
239
243
  commandType: 'liquidProbe'
240
- params: WellLocationParam & PipetteAccessParams
244
+ params: LiquidProbeParams
241
245
  }
242
246
  export interface LiquidProbeRunTimeCommand
243
247
  extends CommonCommandRunTimeInfo,
@@ -342,12 +346,14 @@ export interface DispenseInPlaceParams {
342
346
  volume: number
343
347
  flowRate: number // µL/s
344
348
  pushOut?: number
349
+ correctionVolume?: number
345
350
  }
346
351
 
347
352
  export interface AspirateInPlaceParams {
348
353
  pipetteId: string
349
354
  volume: number
350
355
  flowRate: number // µL/s
356
+ correctionVolume?: number
351
357
  }
352
358
  interface FlowRateParams {
353
359
  flowRate: number // µL/s
@@ -0,0 +1,98 @@
1
+ import type { CommonCommandCreateInfo, CommonCommandRunTimeInfo } from '.'
2
+ import type { GantryMount, MotorAxis } from '../../js/types'
3
+
4
+ export type RobotRunTimeCommand =
5
+ | RobotMoveToRunTimeCommand
6
+ | RobotMoveAxesToRunTimeCommand
7
+ | RobotMoveAxesRelativeRunTimeCommand
8
+ | RobotOpenGripperJawRunTimeCommand
9
+ | RobotCloseGripperJawRunTimeCommand
10
+ export type RobotCreateCommand =
11
+ | RobotMoveToCreateCommand
12
+ | RobotMoveAxesToCreateCommand
13
+ | RobotMoveAxesRelativeCreateCommand
14
+ | RobotOpenGripperJawCreateCommand
15
+ | RobotCloseGripperJawCreateCommand
16
+
17
+ export type RobotMotorAxisMap = Record<MotorAxis, number>
18
+ export type GantryAxisMap =
19
+ | { x: number; y: number; leftZ: number }
20
+ | { x: number; y: number; rightZ: number }
21
+
22
+ export interface RobotMoveToParams {
23
+ mount: GantryMount
24
+ destination: { x: number; y: number; z: number }
25
+ speed?: number
26
+ }
27
+
28
+ export interface RobotMoveToCreateCommand extends CommonCommandCreateInfo {
29
+ commandType: 'robot/moveTo'
30
+ params: RobotMoveToParams
31
+ }
32
+ export interface RobotMoveToRunTimeCommand
33
+ extends CommonCommandRunTimeInfo,
34
+ RobotMoveToCreateCommand {
35
+ result?: any
36
+ }
37
+
38
+ export interface RobotMoveAxesToParams {
39
+ axis_map: RobotMotorAxisMap
40
+ critical_point?: GantryAxisMap
41
+ speed?: number
42
+ }
43
+
44
+ export interface RobotMoveAxesToCreateCommand extends CommonCommandCreateInfo {
45
+ commandType: 'robot/moveAxesTo'
46
+ params: RobotMoveAxesToParams
47
+ }
48
+
49
+ export interface RobotMoveAxesToRunTimeCommand
50
+ extends CommonCommandRunTimeInfo,
51
+ RobotMoveAxesToCreateCommand {
52
+ result?: {
53
+ position: RobotMotorAxisMap
54
+ }
55
+ }
56
+
57
+ export interface RobotMoveAxesRelativeParams {
58
+ axis_map: RobotMotorAxisMap
59
+ speed?: number
60
+ }
61
+
62
+ export interface RobotMoveAxesRelativeCreateCommand
63
+ extends CommonCommandCreateInfo {
64
+ commandType: 'robot/moveAxesRelative'
65
+ params: RobotMoveAxesRelativeParams
66
+ }
67
+
68
+ export interface RobotMoveAxesRelativeRunTimeCommand
69
+ extends CommonCommandRunTimeInfo,
70
+ RobotMoveAxesRelativeCreateCommand {
71
+ result?: {
72
+ position: RobotMotorAxisMap
73
+ }
74
+ }
75
+
76
+ export interface RobotOpenGripperJawCreateCommand
77
+ extends CommonCommandCreateInfo {
78
+ commandType: 'robot/openGripperJaw'
79
+ params: {}
80
+ }
81
+
82
+ export interface RobotOpenGripperJawRunTimeCommand
83
+ extends CommonCommandRunTimeInfo,
84
+ RobotOpenGripperJawCreateCommand {
85
+ result?: any
86
+ }
87
+
88
+ export interface RobotCloseGripperJawCreateCommand
89
+ extends CommonCommandCreateInfo {
90
+ commandType: 'robot/closeGripperJaw'
91
+ params: {}
92
+ }
93
+
94
+ export interface RobotCloseGripperJawRunTimeCommand
95
+ extends CommonCommandRunTimeInfo,
96
+ RobotCloseGripperJawCreateCommand {
97
+ result?: any
98
+ }
@@ -1,13 +1,13 @@
1
1
  import type {
2
2
  AddressableAreaName,
3
- CommonCommandRunTimeInfo,
3
+ AspirateProperties,
4
4
  CommonCommandCreateInfo,
5
+ CommonCommandRunTimeInfo,
5
6
  LabwareDefinition2,
6
7
  LabwareOffset,
7
- PipetteName,
8
8
  ModuleModel,
9
- AspirateProperties,
10
9
  MultiDispenseProperties,
10
+ PipetteName,
11
11
  SingleDispenseProperties,
12
12
  } from '../../js'
13
13
 
@@ -1,5 +1,16 @@
1
- type BaseWellOrigin = 'top' | 'bottom' | 'center'
2
- export type WellOrigin = BaseWellOrigin | 'meniscus'
1
+ import type {
2
+ WELL_ORIGIN_BOTTOM,
3
+ WELL_ORIGIN_CENTER,
4
+ WELL_ORIGIN_MENISCUS,
5
+ WELL_ORIGIN_TOP,
6
+ } from '../../js/constants'
7
+
8
+ type BaseWellOrigin =
9
+ | typeof WELL_ORIGIN_TOP
10
+ | typeof WELL_ORIGIN_BOTTOM
11
+ | typeof WELL_ORIGIN_CENTER
12
+
13
+ export type WellOrigin = BaseWellOrigin | typeof WELL_ORIGIN_MENISCUS
3
14
  export interface WellOffset {
4
15
  x?: number
5
16
  y?: number
@@ -1,4 +1,4 @@
1
- import type { CommonCommandRunTimeInfo, CommonCommandCreateInfo } from '.'
1
+ import type { CommonCommandCreateInfo, CommonCommandRunTimeInfo } from '.'
2
2
 
3
3
  export type TimingCreateCommand =
4
4
  | WaitForResumeCreateCommand