@cobotar/protocol 1.0.3 → 1.0.5

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  # CobotAR-Protocol
2
2
  A collection of protobuf messages for the CobotAR-project
3
3
 
4
- Current version: 1.0.3
4
+ Current version: 1.0.5
5
5
 
6
6
  ## Documentation
7
7
  Find it here: [documentation/README.md](documentation/README.md)
@@ -266,6 +266,9 @@ export type DraftDisassemblyProcessRecipeGenerateRequest = Message<"process.v1.D
266
266
  /**
267
267
  * If true, the generator may prefer MOVE tasks when the operation can be
268
268
  * reasonably interpreted as repositioning rather than removal.
269
+ * TODO:
270
+ * prefer_move_tasks_when_possible may be unnecessary if staging should follow removal rather than replace it.
271
+ * In that case, something like generate_staging_tasks would be clearer.
269
272
  *
270
273
  * @generated from field: bool prefer_move_tasks_when_possible = 11;
271
274
  */
@@ -280,6 +283,7 @@ export type DraftDisassemblyProcessRecipeGenerateRequest = Message<"process.v1.D
280
283
 
281
284
  /**
282
285
  * If true, the generator may insert WIPE tasks where appropriate.
286
+ * TODO: A disassembly-specific wiping hint may eventually be needed; requires_wiping is currently direction-neutral.
283
287
  *
284
288
  * @generated from field: bool generate_wipe_tasks = 13;
285
289
  */
@@ -289,6 +293,9 @@ export type DraftDisassemblyProcessRecipeGenerateRequest = Message<"process.v1.D
289
293
  * Container definitions that removed parts, fasteners, or subassemblies may
290
294
  * be staged into during disassembly. These can be fixtures, trays, kits, or
291
295
  * storage containers depending on the intended workflow.
296
+ * TODO: target_container_definition_ids cannot map individual parts to containers or slots.
297
+ * With one target, it is applied automatically; with multiple targets, they remain recipe-level candidates.
298
+ * A per-node disposition/destination mapping would help.
292
299
  *
293
300
  * @generated from field: repeated string target_container_definition_ids = 14;
294
301
  */
@@ -0,0 +1,513 @@
1
+ // @generated by protoc-gen-es v2.10.2 with parameter "target=ts,import_extension=ts"
2
+ // @generated from file process/v1/kitting_generation.proto (package process.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
+ import { file_buf_validate_validate } from "../../buf/validate/validate_pb.ts";
8
+ import type { ContainerTarget } from "./task_definition_pb.ts";
9
+ import { file_process_v1_task_definition } from "./task_definition_pb.ts";
10
+ import type { PartType } from "../../product/v1/part_definition_pb.ts";
11
+ import { file_product_v1_part_definition } from "../../product/v1/part_definition_pb.ts";
12
+ import { file_validation_v1_predefined_string_rules } from "../../validation/v1/predefined_string_rules_pb.ts";
13
+ import type { VariantConfiguration } from "../../variance/v1/variant_configuration_pb.ts";
14
+ import { file_variance_v1_variant_configuration } from "../../variance/v1/variant_configuration_pb.ts";
15
+ import type { Message } from "@bufbuild/protobuf";
16
+
17
+ /**
18
+ * Describes the file process/v1/kitting_generation.proto.
19
+ */
20
+ export const file_process_v1_kitting_generation: GenFile = /*@__PURE__*/
21
+ fileDesc("CiNwcm9jZXNzL3YxL2tpdHRpbmdfZ2VuZXJhdGlvbi5wcm90bxIKcHJvY2Vzcy52MSKPAgoaS2l0dGluZ0l0ZW1Sb3V0aW5nT3ZlcnJpZGUSGAoQYXNzZW1ibHlfbm9kZV9pZBgBIAEoCRIaChJwYXJ0X2RlZmluaXRpb25faWQYAiABKAkSLQoGYWN0aW9uGAMgASgOMh0ucHJvY2Vzcy52MS5LaXR0aW5nSXRlbUFjdGlvbhIrCgZzb3VyY2UYBCABKAsyGy5wcm9jZXNzLnYxLkNvbnRhaW5lclRhcmdldBIwCgtkZXN0aW5hdGlvbhgFIAEoCzIbLnByb2Nlc3MudjEuQ29udGFpbmVyVGFyZ2V0Oi26SCoiKAoQYXNzZW1ibHlfbm9kZV9pZAoScGFydF9kZWZpbml0aW9uX2lkEAEi2AcKKERyYWZ0S2l0dGluZ1Byb2Nlc3NSZWNpcGVHZW5lcmF0ZVJlcXVlc3QSKwoVcHJvZHVjdF9kZWZpbml0aW9uX2lkGAEgASgJQgy6SAnIAQFyBODrMAESHAoJcmVjaXBlX2lkGAIgASgJQgm6SAZyBKDyBAESEwoLcmVjaXBlX25hbWUYAyABKAkSEwoLcmVjaXBlX2ljb24YBCABKAkSGgoScmVjaXBlX2Rlc2NyaXB0aW9uGAUgASgJEkAKFXZhcmlhbnRfY29uZmlndXJhdGlvbhgGIAEoCzIhLnZhcmlhbmNlLnYxLlZhcmlhbnRDb25maWd1cmF0aW9uEhQKDHJvb3Rfbm9kZV9pZBgHIAEoCRIeChZpbmNsdWRlX29wdGlvbmFsX25vZGVzGAggASgIEiwKCGJvbV9tb2RlGAkgASgOMhoucHJvY2Vzcy52MS5LaXR0aW5nQm9tTW9kZRIrChVwcm9kdWN0X3VuaXRzX3Blcl9raXQYCiABKA1CB7pIBCoCIABIAIgBARInCh9zb3VyY2VfY29udGFpbmVyX2RlZmluaXRpb25faWRzGAsgAygJEioKInRhcmdldF9raXRfY29udGFpbmVyX2RlZmluaXRpb25faWQYDCABKAkSQQoRcm91dGluZ19vdmVycmlkZXMYDSADKAsyJi5wcm9jZXNzLnYxLktpdHRpbmdJdGVtUm91dGluZ092ZXJyaWRlEjAKCml0ZW1fb3JkZXIYDiABKA4yHC5wcm9jZXNzLnYxLktpdHRpbmdJdGVtT3JkZXISQwoUaXRlbV92YWxpZGF0aW9uX21vZGUYDyABKA4yJS5wcm9jZXNzLnYxLktpdHRpbmdJdGVtVmFsaWRhdGlvbk1vZGUSJwofZ2VuZXJhdGVfZmluYWxfa2l0X3ZlcmlmaWNhdGlvbhgQIAEoCBJHChZ1bnJlc29sdmVkX2l0ZW1fcG9saWN5GBEgASgOMicucHJvY2Vzcy52MS5VbnJlc29sdmVkS2l0dGluZ0l0ZW1Qb2xpY3kSMQoTZXhjbHVkZWRfcGFydF90eXBlcxgSIAMoDjIULnByb2R1Y3QudjEuUGFydFR5cGUSPAoQYWdncmVnYXRpb25fbW9kZRgTIAEoDjIiLnByb2Nlc3MudjEuS2l0dGluZ0FnZ3JlZ2F0aW9uTW9kZRI8ChB0YXNrX2dyYW51bGFyaXR5GBQgASgOMiIucHJvY2Vzcy52MS5LaXR0aW5nVGFza0dyYW51bGFyaXR5QhgKFl9wcm9kdWN0X3VuaXRzX3Blcl9raXQqgAEKDktpdHRpbmdCb21Nb2RlEiAKHEtJVFRJTkdfQk9NX01PREVfVU5TUEVDSUZJRUQQABIfChtLSVRUSU5HX0JPTV9NT0RFX0xFQUZfUEFSVFMQARIrCidLSVRUSU5HX0JPTV9NT0RFX1NVQkFTU0VNQkxJRVNfQVNfSVRFTVMQAiquAQoQS2l0dGluZ0l0ZW1PcmRlchIiCh5LSVRUSU5HX0lURU1fT1JERVJfVU5TUEVDSUZJRUQQABIgChxLSVRUSU5HX0lURU1fT1JERVJfQU5ZX09SREVSEAESJwojS0lUVElOR19JVEVNX09SREVSX1BST0RVQ1RfU0VRVUVOQ0UQAhIrCidLSVRUSU5HX0lURU1fT1JERVJfVEFSR0VUX1NMT1RfU0VRVUVOQ0UQAyrpAQoZS2l0dGluZ0l0ZW1WYWxpZGF0aW9uTW9kZRIsCihLSVRUSU5HX0lURU1fVkFMSURBVElPTl9NT0RFX1VOU1BFQ0lGSUVEEAASJQohS0lUVElOR19JVEVNX1ZBTElEQVRJT05fTU9ERV9OT05FEAESJwojS0lUVElOR19JVEVNX1ZBTElEQVRJT05fTU9ERV9NQU5VQUwQAhIlCiFLSVRUSU5HX0lURU1fVkFMSURBVElPTl9NT0RFX1NDQU4QAxInCiNLSVRUSU5HX0lURU1fVkFMSURBVElPTl9NT0RFX1ZJU0lPThAEKsgBChtVbnJlc29sdmVkS2l0dGluZ0l0ZW1Qb2xpY3kSLgoqVU5SRVNPTFZFRF9LSVRUSU5HX0lURU1fUE9MSUNZX1VOU1BFQ0lGSUVEEAASJwojVU5SRVNPTFZFRF9LSVRUSU5HX0lURU1fUE9MSUNZX1dBUk4QARInCiNVTlJFU09MVkVEX0tJVFRJTkdfSVRFTV9QT0xJQ1lfRkFJTBACEicKI1VOUkVTT0xWRURfS0lUVElOR19JVEVNX1BPTElDWV9TS0lQEAMqegoRS2l0dGluZ0l0ZW1BY3Rpb24SIwofS0lUVElOR19JVEVNX0FDVElPTl9VTlNQRUNJRklFRBAAEh8KG0tJVFRJTkdfSVRFTV9BQ1RJT05fSU5DTFVERRABEh8KG0tJVFRJTkdfSVRFTV9BQ1RJT05fRVhDTFVERRACKp8BChZLaXR0aW5nQWdncmVnYXRpb25Nb2RlEigKJEtJVFRJTkdfQUdHUkVHQVRJT05fTU9ERV9VTlNQRUNJRklFRBAAEisKJ0tJVFRJTkdfQUdHUkVHQVRJT05fTU9ERV9QRVJfT0NDVVJSRU5DRRABEi4KKktJVFRJTkdfQUdHUkVHQVRJT05fTU9ERV9CWV9QQVJUX0FORF9ST1VURRACKp0BChZLaXR0aW5nVGFza0dyYW51bGFyaXR5EigKJEtJVFRJTkdfVEFTS19HUkFOVUxBUklUWV9VTlNQRUNJRklFRBAAEiwKKEtJVFRJTkdfVEFTS19HUkFOVUxBUklUWV9BVE9NSUNfVFJBTlNGRVIQARIrCidLSVRUSU5HX1RBU0tfR1JBTlVMQVJJVFlfUElDS19BTkRfUExBQ0UQAkK1AQoOY29tLnByb2Nlc3MudjFCFktpdHRpbmdHZW5lcmF0aW9uUHJvdG9QAVo5Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3Byb2Nlc3MvdjE7cHJvY2Vzc3YxogIDUFhYqgITTWVzc2FnZXMuUHJvY2Vzcy5WMcoCClByb2Nlc3NcVjHiAhZQcm9jZXNzXFYxXEdQQk1ldGFkYXRh6gILUHJvY2Vzczo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_process_v1_task_definition, file_product_v1_part_definition, file_validation_v1_predefined_string_rules, file_variance_v1_variant_configuration]);
22
+
23
+ /**
24
+ * Overrides selection or static routing for one product occurrence or every
25
+ * occurrence of a particular part definition.
26
+ *
27
+ * @generated from message process.v1.KittingItemRoutingOverride
28
+ */
29
+ export type KittingItemRoutingOverride = Message<"process.v1.KittingItemRoutingOverride"> & {
30
+ /**
31
+ * Select one exact occurrence from the ProductDefinition assembly tree.
32
+ *
33
+ * @generated from field: string assembly_node_id = 1;
34
+ */
35
+ assemblyNodeId: string;
36
+
37
+ /**
38
+ * Select every applicable occurrence referencing this PartDefinition.
39
+ *
40
+ * @generated from field: string part_definition_id = 2;
41
+ */
42
+ partDefinitionId: string;
43
+
44
+ /**
45
+ * Optionally force inclusion or exclusion. UNSPECIFIED only overrides routing.
46
+ *
47
+ * @generated from field: process.v1.KittingItemAction action = 3;
48
+ */
49
+ action: KittingItemAction;
50
+
51
+ /**
52
+ * Optional authoring-time source constraint. References a container
53
+ * definition and optionally one of its storage slots—not a runtime instance.
54
+ *
55
+ * @generated from field: process.v1.ContainerTarget source = 4;
56
+ */
57
+ source?: ContainerTarget;
58
+
59
+ /**
60
+ * Optional authoring-time destination constraint. References the target kit
61
+ * definition and optionally a particular kit slot.
62
+ *
63
+ * @generated from field: process.v1.ContainerTarget destination = 5;
64
+ */
65
+ destination?: ContainerTarget;
66
+ };
67
+
68
+ /**
69
+ * Describes the message process.v1.KittingItemRoutingOverride.
70
+ * Use `create(KittingItemRoutingOverrideSchema)` to create a new message.
71
+ */
72
+ export const KittingItemRoutingOverrideSchema: GenMessage<KittingItemRoutingOverride> = /*@__PURE__*/
73
+ messageDesc(file_process_v1_kitting_generation, 0);
74
+
75
+ /**
76
+ * DraftKittingProcessRecipeGenerateRequest asks the backend to generate an
77
+ * authoring-time draft ProcessRecipe of type KITTING from a ProductDefinition.
78
+ *
79
+ * The resulting recipe contains static definition-level routing. Concrete
80
+ * inventory and container instances are resolved when creating a ProcessRun.
81
+ *
82
+ * @generated from message process.v1.DraftKittingProcessRecipeGenerateRequest
83
+ */
84
+ export type DraftKittingProcessRecipeGenerateRequest = Message<"process.v1.DraftKittingProcessRecipeGenerateRequest"> & {
85
+ /**
86
+ * Product structure whose applicable BOM items should be kitted.
87
+ *
88
+ * @generated from field: string product_definition_id = 1;
89
+ */
90
+ productDefinitionId: string;
91
+
92
+ /**
93
+ * Optional explicit ID for the generated recipe.
94
+ * If empty, the backend assigns a deterministic or generated ID.
95
+ *
96
+ * @generated from field: string recipe_id = 2;
97
+ */
98
+ recipeId: string;
99
+
100
+ /**
101
+ * Optional human-readable name. The backend derives one if empty.
102
+ *
103
+ * @generated from field: string recipe_name = 3;
104
+ */
105
+ recipeName: string;
106
+
107
+ /**
108
+ * Optional icon. The backend supplies a default if empty.
109
+ *
110
+ * @generated from field: string recipe_icon = 4;
111
+ */
112
+ recipeIcon: string;
113
+
114
+ /**
115
+ * Optional human-readable description.
116
+ *
117
+ * @generated from field: string recipe_description = 5;
118
+ */
119
+ recipeDescription: string;
120
+
121
+ /**
122
+ * Product variant selections used to determine applicable nodes and annotate
123
+ * the generated recipe applicability.
124
+ *
125
+ * @generated from field: variance.v1.VariantConfiguration variant_configuration = 6;
126
+ */
127
+ variantConfiguration?: VariantConfiguration;
128
+
129
+ /**
130
+ * Optional subtree to kit. If empty, generation starts at the product root.
131
+ *
132
+ * @generated from field: string root_node_id = 7;
133
+ */
134
+ rootNodeId: string;
135
+
136
+ /**
137
+ * Include applicable nodes marked optional.
138
+ *
139
+ * @generated from field: bool include_optional_nodes = 8;
140
+ */
141
+ includeOptionalNodes: boolean;
142
+
143
+ /**
144
+ * Determines whether subassemblies are expanded or supplied as kit items.
145
+ *
146
+ * @generated from field: process.v1.KittingBomMode bom_mode = 9;
147
+ */
148
+ bomMode: KittingBomMode;
149
+
150
+ /**
151
+ * Number of product units served by one completed kit. Defaults to one.
152
+ * This is not the number of kits to execute; execution batching belongs to
153
+ * ProcessRun creation.
154
+ *
155
+ * @generated from field: optional uint32 product_units_per_kit = 10;
156
+ */
157
+ productUnitsPerKit?: number;
158
+
159
+ /**
160
+ * Candidate source container definitions. Slots supporting each part are
161
+ * selected automatically unless overridden by routing_overrides.
162
+ *
163
+ * @generated from field: repeated string source_container_definition_ids = 11;
164
+ */
165
+ sourceContainerDefinitionIds: string[];
166
+
167
+ /**
168
+ * Destination kit container definition. Its KIT_SLOT definitions are matched
169
+ * to applicable parts. If empty, the backend may emit generic destinations
170
+ * and report generation issues.
171
+ *
172
+ * @generated from field: string target_kit_container_definition_id = 12;
173
+ */
174
+ targetKitContainerDefinitionId: string;
175
+
176
+ /**
177
+ * Per-occurrence or per-part selection and routing overrides.
178
+ *
179
+ * @generated from field: repeated process.v1.KittingItemRoutingOverride routing_overrides = 13;
180
+ */
181
+ routingOverrides: KittingItemRoutingOverride[];
182
+
183
+ /**
184
+ * Ordering between independently kittable item sequences.
185
+ *
186
+ * @generated from field: process.v1.KittingItemOrder item_order = 14;
187
+ */
188
+ itemOrder: KittingItemOrder;
189
+
190
+ /**
191
+ * Validation generated for each transferred item.
192
+ *
193
+ * @generated from field: process.v1.KittingItemValidationMode item_validation_mode = 15;
194
+ */
195
+ itemValidationMode: KittingItemValidationMode;
196
+
197
+ /**
198
+ * Generate a final VERIFY task confirming overall kit completeness.
199
+ *
200
+ * @generated from field: bool generate_final_kit_verification = 16;
201
+ */
202
+ generateFinalKitVerification: boolean;
203
+
204
+ /**
205
+ * Behavior when an item cannot be assigned a suitable source or kit slot.
206
+ *
207
+ * @generated from field: process.v1.UnresolvedKittingItemPolicy unresolved_item_policy = 17;
208
+ */
209
+ unresolvedItemPolicy: UnresolvedKittingItemPolicy;
210
+
211
+ /**
212
+ * Part classifications to omit after variant and BOM expansion.
213
+ *
214
+ * @generated from field: repeated product.v1.PartType excluded_part_types = 18;
215
+ */
216
+ excludedPartTypes: PartType[];
217
+
218
+ /**
219
+ * Controls aggregation of repeated occurrences into quantity-bearing tasks.
220
+ *
221
+ * @generated from field: process.v1.KittingAggregationMode aggregation_mode = 19;
222
+ */
223
+ aggregationMode: KittingAggregationMode;
224
+
225
+ /**
226
+ * Controls atomic MOVE versus explicit PICK and PLACE task generation.
227
+ *
228
+ * @generated from field: process.v1.KittingTaskGranularity task_granularity = 20;
229
+ */
230
+ taskGranularity: KittingTaskGranularity;
231
+ };
232
+
233
+ /**
234
+ * Describes the message process.v1.DraftKittingProcessRecipeGenerateRequest.
235
+ * Use `create(DraftKittingProcessRecipeGenerateRequestSchema)` to create a new message.
236
+ */
237
+ export const DraftKittingProcessRecipeGenerateRequestSchema: GenMessage<DraftKittingProcessRecipeGenerateRequest> = /*@__PURE__*/
238
+ messageDesc(file_process_v1_kitting_generation, 1);
239
+
240
+ /**
241
+ * Controls whether kitting expands subassemblies into their constituent parts
242
+ * or treats each subassembly occurrence as one supplied kit item.
243
+ *
244
+ * @generated from enum process.v1.KittingBomMode
245
+ */
246
+ export enum KittingBomMode {
247
+ /**
248
+ * Backend default. Recommended default: LEAF_PARTS.
249
+ *
250
+ * @generated from enum value: KITTING_BOM_MODE_UNSPECIFIED = 0;
251
+ */
252
+ UNSPECIFIED = 0,
253
+
254
+ /**
255
+ * Recursively expand subassemblies and kit their leaf-part occurrences.
256
+ *
257
+ * @generated from enum value: KITTING_BOM_MODE_LEAF_PARTS = 1;
258
+ */
259
+ LEAF_PARTS = 1,
260
+
261
+ /**
262
+ * Treat applicable subassembly occurrences as individual kit items and do
263
+ * not include their descendants.
264
+ *
265
+ * @generated from enum value: KITTING_BOM_MODE_SUBASSEMBLIES_AS_ITEMS = 2;
266
+ */
267
+ SUBASSEMBLIES_AS_ITEMS = 2,
268
+ }
269
+
270
+ /**
271
+ * Describes the enum process.v1.KittingBomMode.
272
+ */
273
+ export const KittingBomModeSchema: GenEnum<KittingBomMode> = /*@__PURE__*/
274
+ enumDesc(file_process_v1_kitting_generation, 0);
275
+
276
+ /**
277
+ * Controls ordering between independently kittable items. The PICK and PLACE
278
+ * steps belonging to one item remain ordered regardless of this setting.
279
+ *
280
+ * @generated from enum process.v1.KittingItemOrder
281
+ */
282
+ export enum KittingItemOrder {
283
+ /**
284
+ * Backend default. Recommended default: ANY_ORDER.
285
+ *
286
+ * @generated from enum value: KITTING_ITEM_ORDER_UNSPECIFIED = 0;
287
+ */
288
+ UNSPECIFIED = 0,
289
+
290
+ /**
291
+ * Item sequences may execute in any order. This allows runtime selection
292
+ * based on availability, proximity, or operator preference.
293
+ *
294
+ * @generated from enum value: KITTING_ITEM_ORDER_ANY_ORDER = 1;
295
+ */
296
+ ANY_ORDER = 1,
297
+
298
+ /**
299
+ * Follow sequence hints from the ProductDefinition.
300
+ *
301
+ * @generated from enum value: KITTING_ITEM_ORDER_PRODUCT_SEQUENCE = 2;
302
+ */
303
+ PRODUCT_SEQUENCE = 2,
304
+
305
+ /**
306
+ * Follow the ordering of destination slots in the target kit definition.
307
+ *
308
+ * @generated from enum value: KITTING_ITEM_ORDER_TARGET_SLOT_SEQUENCE = 3;
309
+ */
310
+ TARGET_SLOT_SEQUENCE = 3,
311
+ }
312
+
313
+ /**
314
+ * Describes the enum process.v1.KittingItemOrder.
315
+ */
316
+ export const KittingItemOrderSchema: GenEnum<KittingItemOrder> = /*@__PURE__*/
317
+ enumDesc(file_process_v1_kitting_generation, 1);
318
+
319
+ /**
320
+ * Controls how each transferred item is validated.
321
+ *
322
+ * @generated from enum process.v1.KittingItemValidationMode
323
+ */
324
+ export enum KittingItemValidationMode {
325
+ /**
326
+ * Backend default. Recommended default: MANUAL.
327
+ *
328
+ * @generated from enum value: KITTING_ITEM_VALIDATION_MODE_UNSPECIFIED = 0;
329
+ */
330
+ UNSPECIFIED = 0,
331
+
332
+ /**
333
+ * Do not generate item-level validation.
334
+ *
335
+ * @generated from enum value: KITTING_ITEM_VALIDATION_MODE_NONE = 1;
336
+ */
337
+ NONE = 1,
338
+
339
+ /**
340
+ * Require manual confirmation that the correct item was transferred.
341
+ *
342
+ * @generated from enum value: KITTING_ITEM_VALIDATION_MODE_MANUAL = 2;
343
+ */
344
+ MANUAL = 2,
345
+
346
+ /**
347
+ * Generate a SCAN task to identify or verify the transferred item.
348
+ *
349
+ * @generated from enum value: KITTING_ITEM_VALIDATION_MODE_SCAN = 3;
350
+ */
351
+ SCAN = 3,
352
+
353
+ /**
354
+ * Require a vision/presence check for the transferred item.
355
+ *
356
+ * @generated from enum value: KITTING_ITEM_VALIDATION_MODE_VISION = 4;
357
+ */
358
+ VISION = 4,
359
+ }
360
+
361
+ /**
362
+ * Describes the enum process.v1.KittingItemValidationMode.
363
+ */
364
+ export const KittingItemValidationModeSchema: GenEnum<KittingItemValidationMode> = /*@__PURE__*/
365
+ enumDesc(file_process_v1_kitting_generation, 2);
366
+
367
+ /**
368
+ * Controls how generation handles an item whose source or destination cannot
369
+ * be resolved from container definitions and routing overrides.
370
+ *
371
+ * @generated from enum process.v1.UnresolvedKittingItemPolicy
372
+ */
373
+ export enum UnresolvedKittingItemPolicy {
374
+ /**
375
+ * Backend default. Recommended default: WARN.
376
+ *
377
+ * @generated from enum value: UNRESOLVED_KITTING_ITEM_POLICY_UNSPECIFIED = 0;
378
+ */
379
+ UNSPECIFIED = 0,
380
+
381
+ /**
382
+ * Generate the item using a generic endpoint and return a generation issue.
383
+ *
384
+ * @generated from enum value: UNRESOLVED_KITTING_ITEM_POLICY_WARN = 1;
385
+ */
386
+ WARN = 1,
387
+
388
+ /**
389
+ * Fail the entire generation request.
390
+ *
391
+ * @generated from enum value: UNRESOLVED_KITTING_ITEM_POLICY_FAIL = 2;
392
+ */
393
+ FAIL = 2,
394
+
395
+ /**
396
+ * Omit the unresolved item and return a generation issue.
397
+ *
398
+ * @generated from enum value: UNRESOLVED_KITTING_ITEM_POLICY_SKIP = 3;
399
+ */
400
+ SKIP = 3,
401
+ }
402
+
403
+ /**
404
+ * Describes the enum process.v1.UnresolvedKittingItemPolicy.
405
+ */
406
+ export const UnresolvedKittingItemPolicySchema: GenEnum<UnresolvedKittingItemPolicy> = /*@__PURE__*/
407
+ enumDesc(file_process_v1_kitting_generation, 3);
408
+
409
+ /**
410
+ * Overrides whether a selected node or part should appear in the generated kit.
411
+ *
412
+ * @generated from enum process.v1.KittingItemAction
413
+ */
414
+ export enum KittingItemAction {
415
+ /**
416
+ * Apply the normal variant, optional-node, BOM-mode, and part-type rules.
417
+ *
418
+ * @generated from enum value: KITTING_ITEM_ACTION_UNSPECIFIED = 0;
419
+ */
420
+ UNSPECIFIED = 0,
421
+
422
+ /**
423
+ * Explicitly include the selected item.
424
+ *
425
+ * @generated from enum value: KITTING_ITEM_ACTION_INCLUDE = 1;
426
+ */
427
+ INCLUDE = 1,
428
+
429
+ /**
430
+ * Explicitly exclude the selected item.
431
+ *
432
+ * @generated from enum value: KITTING_ITEM_ACTION_EXCLUDE = 2;
433
+ */
434
+ EXCLUDE = 2,
435
+ }
436
+
437
+ /**
438
+ * Describes the enum process.v1.KittingItemAction.
439
+ */
440
+ export const KittingItemActionSchema: GenEnum<KittingItemAction> = /*@__PURE__*/
441
+ enumDesc(file_process_v1_kitting_generation, 4);
442
+
443
+ /**
444
+ * Controls whether repeated occurrences are emitted individually or combined
445
+ * into a quantity-bearing transfer.
446
+ *
447
+ * @generated from enum process.v1.KittingAggregationMode
448
+ */
449
+ export enum KittingAggregationMode {
450
+ /**
451
+ * Backend default. Recommended default: BY_PART_AND_ROUTE.
452
+ *
453
+ * @generated from enum value: KITTING_AGGREGATION_MODE_UNSPECIFIED = 0;
454
+ */
455
+ UNSPECIFIED = 0,
456
+
457
+ /**
458
+ * Generate one item sequence for every applicable assembly-node occurrence.
459
+ *
460
+ * @generated from enum value: KITTING_AGGREGATION_MODE_PER_OCCURRENCE = 1;
461
+ */
462
+ PER_OCCURRENCE = 1,
463
+
464
+ /**
465
+ * Combine occurrences only when their part definition, source and destination
466
+ * are identical. This avoids merging parts routed to different kit slots.
467
+ *
468
+ * @generated from enum value: KITTING_AGGREGATION_MODE_BY_PART_AND_ROUTE = 2;
469
+ */
470
+ BY_PART_AND_ROUTE = 2,
471
+ }
472
+
473
+ /**
474
+ * Describes the enum process.v1.KittingAggregationMode.
475
+ */
476
+ export const KittingAggregationModeSchema: GenEnum<KittingAggregationMode> = /*@__PURE__*/
477
+ enumDesc(file_process_v1_kitting_generation, 5);
478
+
479
+ /**
480
+ * Controls whether a transfer is represented as one atomic task or as explicit
481
+ * PICK and PLACE tasks.
482
+ *
483
+ * @generated from enum process.v1.KittingTaskGranularity
484
+ */
485
+ export enum KittingTaskGranularity {
486
+ /**
487
+ * Backend default. Recommended default: ATOMIC_TRANSFER.
488
+ *
489
+ * @generated from enum value: KITTING_TASK_GRANULARITY_UNSPECIFIED = 0;
490
+ */
491
+ UNSPECIFIED = 0,
492
+
493
+ /**
494
+ * Generate one MOVE task carrying source, destination and quantity.
495
+ *
496
+ * @generated from enum value: KITTING_TASK_GRANULARITY_ATOMIC_TRANSFER = 1;
497
+ */
498
+ ATOMIC_TRANSFER = 1,
499
+
500
+ /**
501
+ * Generate an ordered PICK followed by PLACE for every item or aggregation.
502
+ *
503
+ * @generated from enum value: KITTING_TASK_GRANULARITY_PICK_AND_PLACE = 2;
504
+ */
505
+ PICK_AND_PLACE = 2,
506
+ }
507
+
508
+ /**
509
+ * Describes the enum process.v1.KittingTaskGranularity.
510
+ */
511
+ export const KittingTaskGranularitySchema: GenEnum<KittingTaskGranularity> = /*@__PURE__*/
512
+ enumDesc(file_process_v1_kitting_generation, 6);
513
+
@@ -8,13 +8,15 @@ import { file_buf_validate_validate } from "../../buf/validate/validate_pb.ts";
8
8
  import type { LocalTarget } from "../../geometry/v1/local_target_pb.ts";
9
9
  import { file_geometry_v1_local_target } from "../../geometry/v1/local_target_pb.ts";
10
10
  import { file_validation_v1_predefined_string_rules } from "../../validation/v1/predefined_string_rules_pb.ts";
11
+ import type { VariantRule } from "../../variance/v1/variant_rule_pb.ts";
12
+ import { file_variance_v1_variant_rule } from "../../variance/v1/variant_rule_pb.ts";
11
13
  import type { Message } from "@bufbuild/protobuf";
12
14
 
13
15
  /**
14
16
  * Describes the file process/v1/sequence_definition.proto.
15
17
  */
16
18
  export const file_process_v1_sequence_definition: GenFile = /*@__PURE__*/
17
- fileDesc("CiRwcm9jZXNzL3YxL3NlcXVlbmNlX2RlZmluaXRpb24ucHJvdG8SCnByb2Nlc3MudjEi0wwKElNlcXVlbmNlRGVmaW5pdGlvbhIVCgJpZBgBIAEoCUIJukgGcgSo8gQBEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiAKD3NlcXVlbmNlX251bWJlchgFIAEoBUIHukgEGgIoABIlChJwYXJlbnRfc2VxdWVuY2VfaWQYBiABKAlCCbpIBnIEqPIEARI4CghvcGVyYXRvchgHIAEoDjIcLnByb2Nlc3MudjEuU2VxdWVuY2VPcGVyYXRvckIIukgFggECEAESKgoSY2hpbGRfc2VxdWVuY2VfaWRzGAggAygJQg66SAuSAQgiBnIEqPIEARImCg5jaGlsZF90YXNrX2lkcxgJIAMoCUIOukgLkgEIIgZyBLDyBAESLgoMbG9jYWxfdGFyZ2V0GAogASgLMhguZ2VvbWV0cnkudjEuTG9jYWxUYXJnZXQSEAoIb3B0aW9uYWwYCyABKAgSGQoRY2FuX2J1bGtfY29tcGxldGUYDCABKAg6tQm6SLEJGsIBCiZzZXF1ZW5jZV9kZWZpbml0aW9uLmNoaWxkcmVuX25vdF9taXhlZBJRYSBzZXF1ZW5jZSBtdXN0IGNvbnRhaW4gZWl0aGVyIGNoaWxkX3NlcXVlbmNlX2lkcyBvciBjaGlsZF90YXNrX2lkcywgYnV0IG5vdCBib3RoGkUhKHNpemUodGhpcy5jaGlsZF9zZXF1ZW5jZV9pZHMpID4gMCAmJiBzaXplKHRoaXMuY2hpbGRfdGFza19pZHMpID4gMCkazQEKOnNlcXVlbmNlX2RlZmluaXRpb24ub3BlcmF0b3Jfc3BlY2lmaWVkX3doZW5fY2hpbGRyZW5fZXhpc3QSN29wZXJhdG9yIG11c3QgYmUgc3BlY2lmaWVkIHdoZW4gYSBzZXF1ZW5jZSBoYXMgY2hpbGRyZW4aVihzaXplKHRoaXMuY2hpbGRfc2VxdWVuY2VfaWRzKSArIHNpemUodGhpcy5jaGlsZF90YXNrX2lkcykgPT0gMCkgfHwgdGhpcy5vcGVyYXRvciAhPSAwGscBCjdzZXF1ZW5jZV9kZWZpbml0aW9uLnBhcmFsbGVsX3JlcXVpcmVzX211bHRpcGxlX2NoaWxkcmVuEjRQQVJBTExFTCBzZXF1ZW5jZXMgc2hvdWxkIGhhdmUgYXQgbGVhc3QgdHdvIGNoaWxkcmVuGlZ0aGlzLm9wZXJhdG9yICE9IDIgfHwgKHNpemUodGhpcy5jaGlsZF9zZXF1ZW5jZV9pZHMpICsgc2l6ZSh0aGlzLmNoaWxkX3Rhc2tfaWRzKSA+PSAyKRrJAQo4c2VxdWVuY2VfZGVmaW5pdGlvbi5leGNsdXNpdmVfcmVxdWlyZXNfbXVsdGlwbGVfY2hpbGRyZW4SNUVYQ0xVU0lWRSBzZXF1ZW5jZXMgc2hvdWxkIGhhdmUgYXQgbGVhc3QgdHdvIGNoaWxkcmVuGlZ0aGlzLm9wZXJhdG9yICE9IDMgfHwgKHNpemUodGhpcy5jaGlsZF9zZXF1ZW5jZV9pZHMpICsgc2l6ZSh0aGlzLmNoaWxkX3Rhc2tfaWRzKSA+PSAyKRrJAQo4c2VxdWVuY2VfZGVmaW5pdGlvbi5pbmNsdXNpdmVfcmVxdWlyZXNfbXVsdGlwbGVfY2hpbGRyZW4SNUlOQ0xVU0lWRSBzZXF1ZW5jZXMgc2hvdWxkIGhhdmUgYXQgbGVhc3QgdHdvIGNoaWxkcmVuGlZ0aGlzLm9wZXJhdG9yICE9IDQgfHwgKHNpemUodGhpcy5jaGlsZF9zZXF1ZW5jZV9pZHMpICsgc2l6ZSh0aGlzLmNoaWxkX3Rhc2tfaWRzKSA+PSAyKRq3AQo4c2VxdWVuY2VfZGVmaW5pdGlvbi5idWxrX2NvbXBsZXRlX3JlcXVpcmVzX3Rhc2tfY2hpbGRyZW4SQWNhbl9idWxrX2NvbXBsZXRlIGlzIG9ubHkgdmFsaWQgZm9yIHNlcXVlbmNlcyB3aXRoIGNoaWxkX3Rhc2tfaWRzGjghdGhpcy5jYW5fYnVsa19jb21wbGV0ZSB8fCBzaXplKHRoaXMuY2hpbGRfdGFza19pZHMpID4gMCJEChNTZXF1ZW5jZURlZmluaXRpb25zEi0KBWl0ZW1zGAEgAygLMh4ucHJvY2Vzcy52MS5TZXF1ZW5jZURlZmluaXRpb24qtgEKEFNlcXVlbmNlT3BlcmF0b3ISIQodU0VRVUVOQ0VfT1BFUkFUT1JfVU5TUEVDSUZJRUQQABIdChlTRVFVRU5DRV9PUEVSQVRPUl9PUkRFUkVEEAESHgoaU0VRVUVOQ0VfT1BFUkFUT1JfUEFSQUxMRUwQAhIfChtTRVFVRU5DRV9PUEVSQVRPUl9FWENMVVNJVkUQAxIfChtTRVFVRU5DRV9PUEVSQVRPUl9JTkNMVVNJVkUQBEK2AQoOY29tLnByb2Nlc3MudjFCF1NlcXVlbmNlRGVmaW5pdGlvblByb3RvUAFaOWdpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9wcm9jZXNzL3YxO3Byb2Nlc3N2MaICA1BYWKoCE01lc3NhZ2VzLlByb2Nlc3MuVjHKAgpQcm9jZXNzXFYx4gIWUHJvY2Vzc1xWMVxHUEJNZXRhZGF0YeoCC1Byb2Nlc3M6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_geometry_v1_local_target, file_validation_v1_predefined_string_rules]);
19
+ fileDesc("CiRwcm9jZXNzL3YxL3NlcXVlbmNlX2RlZmluaXRpb24ucHJvdG8SCnByb2Nlc3MudjEihA0KElNlcXVlbmNlRGVmaW5pdGlvbhIVCgJpZBgBIAEoCUIJukgGcgSo8gQBEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiAKD3NlcXVlbmNlX251bWJlchgFIAEoBUIHukgEGgIoABIlChJwYXJlbnRfc2VxdWVuY2VfaWQYBiABKAlCCbpIBnIEqPIEARI4CghvcGVyYXRvchgHIAEoDjIcLnByb2Nlc3MudjEuU2VxdWVuY2VPcGVyYXRvckIIukgFggECEAESKgoSY2hpbGRfc2VxdWVuY2VfaWRzGAggAygJQg66SAuSAQgiBnIEqPIEARImCg5jaGlsZF90YXNrX2lkcxgJIAMoCUIOukgLkgEIIgZyBLDyBAESLgoMbG9jYWxfdGFyZ2V0GAogASgLMhguZ2VvbWV0cnkudjEuTG9jYWxUYXJnZXQSEAoIb3B0aW9uYWwYCyABKAgSGQoRY2FuX2J1bGtfY29tcGxldGUYDCABKAgSLwoNYXBwbGljYWJpbGl0eRgNIAMoCzIYLnZhcmlhbmNlLnYxLlZhcmlhbnRSdWxlOrUJukixCRrCAQomc2VxdWVuY2VfZGVmaW5pdGlvbi5jaGlsZHJlbl9ub3RfbWl4ZWQSUWEgc2VxdWVuY2UgbXVzdCBjb250YWluIGVpdGhlciBjaGlsZF9zZXF1ZW5jZV9pZHMgb3IgY2hpbGRfdGFza19pZHMsIGJ1dCBub3QgYm90aBpFIShzaXplKHRoaXMuY2hpbGRfc2VxdWVuY2VfaWRzKSA+IDAgJiYgc2l6ZSh0aGlzLmNoaWxkX3Rhc2tfaWRzKSA+IDApGs0BCjpzZXF1ZW5jZV9kZWZpbml0aW9uLm9wZXJhdG9yX3NwZWNpZmllZF93aGVuX2NoaWxkcmVuX2V4aXN0EjdvcGVyYXRvciBtdXN0IGJlIHNwZWNpZmllZCB3aGVuIGEgc2VxdWVuY2UgaGFzIGNoaWxkcmVuGlYoc2l6ZSh0aGlzLmNoaWxkX3NlcXVlbmNlX2lkcykgKyBzaXplKHRoaXMuY2hpbGRfdGFza19pZHMpID09IDApIHx8IHRoaXMub3BlcmF0b3IgIT0gMBrHAQo3c2VxdWVuY2VfZGVmaW5pdGlvbi5wYXJhbGxlbF9yZXF1aXJlc19tdWx0aXBsZV9jaGlsZHJlbhI0UEFSQUxMRUwgc2VxdWVuY2VzIHNob3VsZCBoYXZlIGF0IGxlYXN0IHR3byBjaGlsZHJlbhpWdGhpcy5vcGVyYXRvciAhPSAyIHx8IChzaXplKHRoaXMuY2hpbGRfc2VxdWVuY2VfaWRzKSArIHNpemUodGhpcy5jaGlsZF90YXNrX2lkcykgPj0gMikayQEKOHNlcXVlbmNlX2RlZmluaXRpb24uZXhjbHVzaXZlX3JlcXVpcmVzX211bHRpcGxlX2NoaWxkcmVuEjVFWENMVVNJVkUgc2VxdWVuY2VzIHNob3VsZCBoYXZlIGF0IGxlYXN0IHR3byBjaGlsZHJlbhpWdGhpcy5vcGVyYXRvciAhPSAzIHx8IChzaXplKHRoaXMuY2hpbGRfc2VxdWVuY2VfaWRzKSArIHNpemUodGhpcy5jaGlsZF90YXNrX2lkcykgPj0gMikayQEKOHNlcXVlbmNlX2RlZmluaXRpb24uaW5jbHVzaXZlX3JlcXVpcmVzX211bHRpcGxlX2NoaWxkcmVuEjVJTkNMVVNJVkUgc2VxdWVuY2VzIHNob3VsZCBoYXZlIGF0IGxlYXN0IHR3byBjaGlsZHJlbhpWdGhpcy5vcGVyYXRvciAhPSA0IHx8IChzaXplKHRoaXMuY2hpbGRfc2VxdWVuY2VfaWRzKSArIHNpemUodGhpcy5jaGlsZF90YXNrX2lkcykgPj0gMikatwEKOHNlcXVlbmNlX2RlZmluaXRpb24uYnVsa19jb21wbGV0ZV9yZXF1aXJlc190YXNrX2NoaWxkcmVuEkFjYW5fYnVsa19jb21wbGV0ZSBpcyBvbmx5IHZhbGlkIGZvciBzZXF1ZW5jZXMgd2l0aCBjaGlsZF90YXNrX2lkcxo4IXRoaXMuY2FuX2J1bGtfY29tcGxldGUgfHwgc2l6ZSh0aGlzLmNoaWxkX3Rhc2tfaWRzKSA+IDAiRAoTU2VxdWVuY2VEZWZpbml0aW9ucxItCgVpdGVtcxgBIAMoCzIeLnByb2Nlc3MudjEuU2VxdWVuY2VEZWZpbml0aW9uKrYBChBTZXF1ZW5jZU9wZXJhdG9yEiEKHVNFUVVFTkNFX09QRVJBVE9SX1VOU1BFQ0lGSUVEEAASHQoZU0VRVUVOQ0VfT1BFUkFUT1JfT1JERVJFRBABEh4KGlNFUVVFTkNFX09QRVJBVE9SX1BBUkFMTEVMEAISHwobU0VRVUVOQ0VfT1BFUkFUT1JfRVhDTFVTSVZFEAMSHwobU0VRVUVOQ0VfT1BFUkFUT1JfSU5DTFVTSVZFEARCtgEKDmNvbS5wcm9jZXNzLnYxQhdTZXF1ZW5jZURlZmluaXRpb25Qcm90b1ABWjlnaXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvcHJvY2Vzcy92MTtwcm9jZXNzdjGiAgNQWFiqAhNNZXNzYWdlcy5Qcm9jZXNzLlYxygIKUHJvY2Vzc1xWMeICFlByb2Nlc3NcVjFcR1BCTWV0YWRhdGHqAgtQcm9jZXNzOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_geometry_v1_local_target, file_validation_v1_predefined_string_rules, file_variance_v1_variant_rule]);
18
20
 
19
21
  /**
20
22
  * SequenceDefinition represents a unit of control flow within a process recipe.
@@ -120,6 +122,13 @@ export type SequenceDefinition = Message<"process.v1.SequenceDefinition"> & {
120
122
  * @generated from field: bool can_bulk_complete = 12;
121
123
  */
122
124
  canBulkComplete: boolean;
125
+
126
+ /**
127
+ * Sequence applies if any rule matches. Empty means always applicable.
128
+ *
129
+ * @generated from field: repeated variance.v1.VariantRule applicability = 13;
130
+ */
131
+ applicability: VariantRule[];
123
132
  };
124
133
 
125
134
  /**
@@ -36,7 +36,7 @@ import type { Message } from "@bufbuild/protobuf";
36
36
  * Describes the file process/v1/task_definition.proto.
37
37
  */
38
38
  export const file_process_v1_task_definition: GenFile = /*@__PURE__*/
39
- fileDesc("CiBwcm9jZXNzL3YxL3Rhc2tfZGVmaW5pdGlvbi5wcm90bxIKcHJvY2Vzcy52MSJsCg1Qcm9kdWN0VGFyZ2V0Eg8KB25vZGVfaWQYASABKAkSGgoScGFydF9kZWZpbml0aW9uX2lkGAIgASgJEi4KDGxvY2FsX3RhcmdldBgDIAEoCzIYLmdlb21ldHJ5LnYxLkxvY2FsVGFyZ2V0IncKD0NvbnRhaW5lclRhcmdldBIfChdjb250YWluZXJfZGVmaW5pdGlvbl9pZBgBIAEoCRIPCgdzbG90X2lkGAIgASgJEjIKCXNsb3RfdHlwZRgDIAEoDjIfLnJlc291cmNlcy52MS5Db250YWluZXJTbG90VHlwZSJrCg5SZXNvdXJjZVRhcmdldBIbChNhc3NldF9kZWZpbml0aW9uX2lkGAEgASgJEhsKE3JvYm90X2RlZmluaXRpb25faWQYAiABKAkSHwoXY29udGFpbmVyX2RlZmluaXRpb25faWQYAyABKAkilgEKClRhc2tUYXJnZXQSKgoHcHJvZHVjdBgBIAEoCzIZLnByb2Nlc3MudjEuUHJvZHVjdFRhcmdldBIuCgljb250YWluZXIYAiABKAsyGy5wcm9jZXNzLnYxLkNvbnRhaW5lclRhcmdldBIsCghyZXNvdXJjZRgDIAEoCzIaLnByb2Nlc3MudjEuUmVzb3VyY2VUYXJnZXQiagoMVGFza0VuZHBvaW50EioKB3Byb2R1Y3QYASABKAsyGS5wcm9jZXNzLnYxLlByb2R1Y3RUYXJnZXQSLgoJY29udGFpbmVyGAIgASgLMhsucHJvY2Vzcy52MS5Db250YWluZXJUYXJnZXQimQIKFVZhbGlkYXRpb25SZXF1aXJlbWVudBIdChVyZXF1aXJlX3Rvb2xfZmVlZGJhY2sYASABKAgSHAoUcmVxdWlyZV92aXNpb25fY2hlY2sYAiABKAgSIQoZYWxsb3dfbWFudWFsX2NvbmZpcm1hdGlvbhgDIAEoCBJACh1tYW51YWxfY29uZmlybWF0aW9uX21pbl9sZXZlbBgEIAEoDjIZLmNhcGFiaWxpdHkudjEuU2tpbGxMZXZlbBIqCgRtb2RlGAUgASgOMhwucmVzb3VyY2VzLnYxLlZhbGlkYXRpb25Nb2RlEjIKC2NvbnN0cmFpbnRzGAYgAygLMh0uY29tbW9uLnYxLktleVZhbHVlQ29uc3RyYWludCLbAgoTVGFza0V4ZWN1dGlvblBvbGljeRJDChVhc3NpZ25tZW50X3ByZWZlcmVuY2UYASABKA4yJC5wcm9jZXNzLnYxLlRhc2tBc3NpZ25tZW50UHJlZmVyZW5jZRI4ChBhY3Rvcl9jb25zdHJhaW50GAIgASgLMh4uY2FwYWJpbGl0eS52MS5BY3RvckNvbnN0cmFpbnQSFAoMY2FuX3JlYXNzaWduGAMgASgIEhAKCGNhbl91bmRvGAQgASgIEj4KGGVzdGltYXRlZF9odW1hbl9kdXJhdGlvbhgFIAEoCzIcLmNvbW1vbi52MS5Fc3RpbWF0ZWREdXJhdGlvbhI+Chhlc3RpbWF0ZWRfcm9ib3RfZHVyYXRpb24YBiABKAsyHC5jb21tb24udjEuRXN0aW1hdGVkRHVyYXRpb24SHQoVcmVxdWlyZV9mdWxsX2d1aWRhbmNlGAcgASgIItcBCgxUYXNrT3ZlcnJpZGUSJgoEd2hlbhgBIAMoCzIYLnZhcmlhbmNlLnYxLlZhcmlhbnRSdWxlEhgKEGluc3RydWN0aW9uX3RleHQYAiABKAkSJgoGdGFyZ2V0GAMgASgLMhYucHJvY2Vzcy52MS5UYXNrVGFyZ2V0Ei4KEGluc2VydGlvbl9vZmZzZXQYBCABKAsyFC5nZW9tZXRyeS52MS5WZWN0b3IzEi0KD2FwcHJvYWNoX29mZnNldBgFIAEoCzIULmdlb21ldHJ5LnYxLlZlY3RvcjMipAYKDlRhc2tEZWZpbml0aW9uEgoKAmlkGAEgASgJEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhgKEGluc3RydWN0aW9uX3RleHQYBSABKAkSIAoPc2VxdWVuY2VfbnVtYmVyGAYgASgFQge6SAQaAigAEjEKCXRhc2tfdHlwZRgHIAEoDjIULnByb2Nlc3MudjEuVGFza1R5cGVCCLpIBYIBAhABEiYKBnRhcmdldBgIIAEoCzIWLnByb2Nlc3MudjEuVGFza1RhcmdldBIuChBpbnNlcnRpb25fb2Zmc2V0GAkgASgLMhQuZ2VvbWV0cnkudjEuVmVjdG9yMxItCg9hcHByb2FjaF9vZmZzZXQYCiABKAsyFC5nZW9tZXRyeS52MS5WZWN0b3IzEjgKEHRvb2xfcmVxdWlyZW1lbnQYDCABKAsyHi5jYXBhYmlsaXR5LnYxLlRvb2xSZXF1aXJlbWVudBI7ChJza2lsbF9yZXF1aXJlbWVudHMYDSADKAsyHy5jYXBhYmlsaXR5LnYxLlNraWxsUmVxdWlyZW1lbnQSNQoKdmFsaWRhdGlvbhgOIAEoCzIhLnByb2Nlc3MudjEuVmFsaWRhdGlvblJlcXVpcmVtZW50EjkKEGV4ZWN1dGlvbl9wb2xpY3kYDyABKAsyHy5wcm9jZXNzLnYxLlRhc2tFeGVjdXRpb25Qb2xpY3kSNAoQc2FmZXR5X3JlbGV2YW5jZRgQIAEoDjIaLmNvbW1vbi52MS5TYWZldHlSZWxldmFuY2USKAoGc291cmNlGBEgASgLMhgucHJvY2Vzcy52MS5UYXNrRW5kcG9pbnQSLQoLZGVzdGluYXRpb24YEiABKAsyGC5wcm9jZXNzLnYxLlRhc2tFbmRwb2ludBIvCg1hcHBsaWNhYmlsaXR5GBUgAygLMhgudmFyaWFuY2UudjEuVmFyaWFudFJ1bGUSKwoJb3ZlcnJpZGVzGBYgAygLMhgucHJvY2Vzcy52MS5UYXNrT3ZlcnJpZGUiPAoPVGFza0RlZmluaXRpb25zEikKBWl0ZW1zGAEgAygLMhoucHJvY2Vzcy52MS5UYXNrRGVmaW5pdGlvbiq/AwoIVGFza1R5cGUSGQoVVEFTS19UWVBFX1VOU1BFQ0lGSUVEEAASFQoRVEFTS19UWVBFX0lOU1BFQ1QQARIUChBUQVNLX1RZUEVfRkFTVEVOEAISFgoSVEFTS19UWVBFX1VORkFTVEVOEAMSEwoPVEFTS19UWVBFX01PVU5UEAQSFQoRVEFTS19UWVBFX1VOTU9VTlQQBRISCg5UQVNLX1RZUEVfTU9WRRAGEhQKEFRBU0tfVFlQRV9SRU1PVkUQBxITCg9UQVNLX1RZUEVfQVBQTFkQCBISCg5UQVNLX1RZUEVfV0lQRRAJEhMKD1RBU0tfVFlQRV9BTElHThAKEhQKEFRBU0tfVFlQRV9JTlNFUlQQCxISCg5UQVNLX1RZUEVfSE9MRBAMEhQKEFRBU0tfVFlQRV9WRVJJRlkQDRISCg5UQVNLX1RZUEVfUElDSxAOEhMKD1RBU0tfVFlQRV9QTEFDRRAPEhIKDlRBU0tfVFlQRV9TQ0FOEBASEgoOVEFTS19UWVBFX1dBSVQQERITCg9UQVNLX1RZUEVfQ0hFQ0sQEhIZChVUQVNLX1RZUEVfQUNLTk9XTEVER0UQEyqdAgoYVGFza0Fzc2lnbm1lbnRQcmVmZXJlbmNlEioKJlRBU0tfQVNTSUdOTUVOVF9QUkVGRVJFTkNFX1VOU1BFQ0lGSUVEEAASKwonVEFTS19BU1NJR05NRU5UX1BSRUZFUkVOQ0VfUFJFRkVSX0hVTUFOEAESKQolVEFTS19BU1NJR05NRU5UX1BSRUZFUkVOQ0VfT05MWV9IVU1BThACEisKJ1RBU0tfQVNTSUdOTUVOVF9QUkVGRVJFTkNFX1BSRUZFUl9ST0JPVBADEikKJVRBU0tfQVNTSUdOTUVOVF9QUkVGRVJFTkNFX09OTFlfUk9CT1QQBBIlCiFUQVNLX0FTU0lHTk1FTlRfUFJFRkVSRU5DRV9FSVRIRVIQBUKyAQoOY29tLnByb2Nlc3MudjFCE1Rhc2tEZWZpbml0aW9uUHJvdG9QAVo5Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3Byb2Nlc3MvdjE7cHJvY2Vzc3YxogIDUFhYqgITTWVzc2FnZXMuUHJvY2Vzcy5WMcoCClByb2Nlc3NcVjHiAhZQcm9jZXNzXFYxXEdQQk1ldGFkYXRh6gILUHJvY2Vzczo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_capability_v1_actor_constraint, file_capability_v1_actor_skill, file_capability_v1_skill_requirement, file_capability_v1_tool_requirement, file_common_v1_enums, file_common_v1_key_value_constraint, file_common_v1_time, file_geometry_v1_local_target, file_geometry_v1_vector3, file_resources_v1_asset_definition, file_resources_v1_container_definition, file_validation_v1_predefined_string_rules, file_variance_v1_variant_rule]);
39
+ fileDesc("CiBwcm9jZXNzL3YxL3Rhc2tfZGVmaW5pdGlvbi5wcm90bxIKcHJvY2Vzcy52MSJsCg1Qcm9kdWN0VGFyZ2V0Eg8KB25vZGVfaWQYASABKAkSGgoScGFydF9kZWZpbml0aW9uX2lkGAIgASgJEi4KDGxvY2FsX3RhcmdldBgDIAEoCzIYLmdlb21ldHJ5LnYxLkxvY2FsVGFyZ2V0IncKD0NvbnRhaW5lclRhcmdldBIfChdjb250YWluZXJfZGVmaW5pdGlvbl9pZBgBIAEoCRIPCgdzbG90X2lkGAIgASgJEjIKCXNsb3RfdHlwZRgDIAEoDjIfLnJlc291cmNlcy52MS5Db250YWluZXJTbG90VHlwZSJrCg5SZXNvdXJjZVRhcmdldBIbChNhc3NldF9kZWZpbml0aW9uX2lkGAEgASgJEhsKE3JvYm90X2RlZmluaXRpb25faWQYAiABKAkSHwoXY29udGFpbmVyX2RlZmluaXRpb25faWQYAyABKAkilgEKClRhc2tUYXJnZXQSKgoHcHJvZHVjdBgBIAEoCzIZLnByb2Nlc3MudjEuUHJvZHVjdFRhcmdldBIuCgljb250YWluZXIYAiABKAsyGy5wcm9jZXNzLnYxLkNvbnRhaW5lclRhcmdldBIsCghyZXNvdXJjZRgDIAEoCzIaLnByb2Nlc3MudjEuUmVzb3VyY2VUYXJnZXQiTAoTUXVhbnRpdHlSZXF1aXJlbWVudBIeCgZhbW91bnQYASABKAFCDrpICxIJIQAAAAAAAAAAEhUKBHVuaXQYAiABKAlCB7pIBHICEAEiagoMVGFza0VuZHBvaW50EioKB3Byb2R1Y3QYASABKAsyGS5wcm9jZXNzLnYxLlByb2R1Y3RUYXJnZXQSLgoJY29udGFpbmVyGAIgASgLMhsucHJvY2Vzcy52MS5Db250YWluZXJUYXJnZXQimQIKFVZhbGlkYXRpb25SZXF1aXJlbWVudBIdChVyZXF1aXJlX3Rvb2xfZmVlZGJhY2sYASABKAgSHAoUcmVxdWlyZV92aXNpb25fY2hlY2sYAiABKAgSIQoZYWxsb3dfbWFudWFsX2NvbmZpcm1hdGlvbhgDIAEoCBJACh1tYW51YWxfY29uZmlybWF0aW9uX21pbl9sZXZlbBgEIAEoDjIZLmNhcGFiaWxpdHkudjEuU2tpbGxMZXZlbBIqCgRtb2RlGAUgASgOMhwucmVzb3VyY2VzLnYxLlZhbGlkYXRpb25Nb2RlEjIKC2NvbnN0cmFpbnRzGAYgAygLMh0uY29tbW9uLnYxLktleVZhbHVlQ29uc3RyYWludCLbAgoTVGFza0V4ZWN1dGlvblBvbGljeRJDChVhc3NpZ25tZW50X3ByZWZlcmVuY2UYASABKA4yJC5wcm9jZXNzLnYxLlRhc2tBc3NpZ25tZW50UHJlZmVyZW5jZRI4ChBhY3Rvcl9jb25zdHJhaW50GAIgASgLMh4uY2FwYWJpbGl0eS52MS5BY3RvckNvbnN0cmFpbnQSFAoMY2FuX3JlYXNzaWduGAMgASgIEhAKCGNhbl91bmRvGAQgASgIEj4KGGVzdGltYXRlZF9odW1hbl9kdXJhdGlvbhgFIAEoCzIcLmNvbW1vbi52MS5Fc3RpbWF0ZWREdXJhdGlvbhI+Chhlc3RpbWF0ZWRfcm9ib3RfZHVyYXRpb24YBiABKAsyHC5jb21tb24udjEuRXN0aW1hdGVkRHVyYXRpb24SHQoVcmVxdWlyZV9mdWxsX2d1aWRhbmNlGAcgASgIItcBCgxUYXNrT3ZlcnJpZGUSJgoEd2hlbhgBIAMoCzIYLnZhcmlhbmNlLnYxLlZhcmlhbnRSdWxlEhgKEGluc3RydWN0aW9uX3RleHQYAiABKAkSJgoGdGFyZ2V0GAMgASgLMhYucHJvY2Vzcy52MS5UYXNrVGFyZ2V0Ei4KEGluc2VydGlvbl9vZmZzZXQYBCABKAsyFC5nZW9tZXRyeS52MS5WZWN0b3IzEi0KD2FwcHJvYWNoX29mZnNldBgFIAEoCzIULmdlb21ldHJ5LnYxLlZlY3RvcjMi1wYKDlRhc2tEZWZpbml0aW9uEgoKAmlkGAEgASgJEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhgKEGluc3RydWN0aW9uX3RleHQYBSABKAkSIAoPc2VxdWVuY2VfbnVtYmVyGAYgASgFQge6SAQaAigAEjEKCXRhc2tfdHlwZRgHIAEoDjIULnByb2Nlc3MudjEuVGFza1R5cGVCCLpIBYIBAhABEiYKBnRhcmdldBgIIAEoCzIWLnByb2Nlc3MudjEuVGFza1RhcmdldBIuChBpbnNlcnRpb25fb2Zmc2V0GAkgASgLMhQuZ2VvbWV0cnkudjEuVmVjdG9yMxItCg9hcHByb2FjaF9vZmZzZXQYCiABKAsyFC5nZW9tZXRyeS52MS5WZWN0b3IzEjgKEHRvb2xfcmVxdWlyZW1lbnQYDCABKAsyHi5jYXBhYmlsaXR5LnYxLlRvb2xSZXF1aXJlbWVudBI7ChJza2lsbF9yZXF1aXJlbWVudHMYDSADKAsyHy5jYXBhYmlsaXR5LnYxLlNraWxsUmVxdWlyZW1lbnQSNQoKdmFsaWRhdGlvbhgOIAEoCzIhLnByb2Nlc3MudjEuVmFsaWRhdGlvblJlcXVpcmVtZW50EjkKEGV4ZWN1dGlvbl9wb2xpY3kYDyABKAsyHy5wcm9jZXNzLnYxLlRhc2tFeGVjdXRpb25Qb2xpY3kSNAoQc2FmZXR5X3JlbGV2YW5jZRgQIAEoDjIaLmNvbW1vbi52MS5TYWZldHlSZWxldmFuY2USKAoGc291cmNlGBEgASgLMhgucHJvY2Vzcy52MS5UYXNrRW5kcG9pbnQSLQoLZGVzdGluYXRpb24YEiABKAsyGC5wcm9jZXNzLnYxLlRhc2tFbmRwb2ludBIxCghxdWFudGl0eRgTIAEoCzIfLnByb2Nlc3MudjEuUXVhbnRpdHlSZXF1aXJlbWVudBIvCg1hcHBsaWNhYmlsaXR5GBUgAygLMhgudmFyaWFuY2UudjEuVmFyaWFudFJ1bGUSKwoJb3ZlcnJpZGVzGBYgAygLMhgucHJvY2Vzcy52MS5UYXNrT3ZlcnJpZGUiPAoPVGFza0RlZmluaXRpb25zEikKBWl0ZW1zGAEgAygLMhoucHJvY2Vzcy52MS5UYXNrRGVmaW5pdGlvbiq/AwoIVGFza1R5cGUSGQoVVEFTS19UWVBFX1VOU1BFQ0lGSUVEEAASFQoRVEFTS19UWVBFX0lOU1BFQ1QQARIUChBUQVNLX1RZUEVfRkFTVEVOEAISFgoSVEFTS19UWVBFX1VORkFTVEVOEAMSEwoPVEFTS19UWVBFX01PVU5UEAQSFQoRVEFTS19UWVBFX1VOTU9VTlQQBRISCg5UQVNLX1RZUEVfTU9WRRAGEhQKEFRBU0tfVFlQRV9SRU1PVkUQBxITCg9UQVNLX1RZUEVfQVBQTFkQCBISCg5UQVNLX1RZUEVfV0lQRRAJEhMKD1RBU0tfVFlQRV9BTElHThAKEhQKEFRBU0tfVFlQRV9JTlNFUlQQCxISCg5UQVNLX1RZUEVfSE9MRBAMEhQKEFRBU0tfVFlQRV9WRVJJRlkQDRISCg5UQVNLX1RZUEVfUElDSxAOEhMKD1RBU0tfVFlQRV9QTEFDRRAPEhIKDlRBU0tfVFlQRV9TQ0FOEBASEgoOVEFTS19UWVBFX1dBSVQQERITCg9UQVNLX1RZUEVfQ0hFQ0sQEhIZChVUQVNLX1RZUEVfQUNLTk9XTEVER0UQEyqdAgoYVGFza0Fzc2lnbm1lbnRQcmVmZXJlbmNlEioKJlRBU0tfQVNTSUdOTUVOVF9QUkVGRVJFTkNFX1VOU1BFQ0lGSUVEEAASKwonVEFTS19BU1NJR05NRU5UX1BSRUZFUkVOQ0VfUFJFRkVSX0hVTUFOEAESKQolVEFTS19BU1NJR05NRU5UX1BSRUZFUkVOQ0VfT05MWV9IVU1BThACEisKJ1RBU0tfQVNTSUdOTUVOVF9QUkVGRVJFTkNFX1BSRUZFUl9ST0JPVBADEikKJVRBU0tfQVNTSUdOTUVOVF9QUkVGRVJFTkNFX09OTFlfUk9CT1QQBBIlCiFUQVNLX0FTU0lHTk1FTlRfUFJFRkVSRU5DRV9FSVRIRVIQBUKyAQoOY29tLnByb2Nlc3MudjFCE1Rhc2tEZWZpbml0aW9uUHJvdG9QAVo5Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3Byb2Nlc3MvdjE7cHJvY2Vzc3YxogIDUFhYqgITTWVzc2FnZXMuUHJvY2Vzcy5WMcoCClByb2Nlc3NcVjHiAhZQcm9jZXNzXFYxXEdQQk1ldGFkYXRh6gILUHJvY2Vzczo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_capability_v1_actor_constraint, file_capability_v1_actor_skill, file_capability_v1_skill_requirement, file_capability_v1_tool_requirement, file_common_v1_enums, file_common_v1_key_value_constraint, file_common_v1_time, file_geometry_v1_local_target, file_geometry_v1_vector3, file_resources_v1_asset_definition, file_resources_v1_container_definition, file_validation_v1_predefined_string_rules, file_variance_v1_variant_rule]);
40
40
 
41
41
  /**
42
42
  * @generated from message process.v1.ProductTarget
@@ -184,6 +184,34 @@ export type TaskTarget = Message<"process.v1.TaskTarget"> & {
184
184
  export const TaskTargetSchema: GenMessage<TaskTarget> = /*@__PURE__*/
185
185
  messageDesc(file_process_v1_task_definition, 3);
186
186
 
187
+ /**
188
+ * Amount of material or number of discrete items acted on by a task.
189
+ *
190
+ * @generated from message process.v1.QuantityRequirement
191
+ */
192
+ export type QuantityRequirement = Message<"process.v1.QuantityRequirement"> & {
193
+ /**
194
+ * Required amount. Must be finite and greater than zero.
195
+ *
196
+ * @generated from field: double amount = 1;
197
+ */
198
+ amount: number;
199
+
200
+ /**
201
+ * Unit such as "pcs", "g", "ml", or "m".
202
+ *
203
+ * @generated from field: string unit = 2;
204
+ */
205
+ unit: string;
206
+ };
207
+
208
+ /**
209
+ * Describes the message process.v1.QuantityRequirement.
210
+ * Use `create(QuantityRequirementSchema)` to create a new message.
211
+ */
212
+ export const QuantityRequirementSchema: GenMessage<QuantityRequirement> = /*@__PURE__*/
213
+ messageDesc(file_process_v1_task_definition, 4);
214
+
187
215
  /**
188
216
  * TaskEndpoint is used for source/destination style references in tasks such
189
217
  * as pick/place, move, kitting, and transfer operations.
@@ -210,7 +238,7 @@ export type TaskEndpoint = Message<"process.v1.TaskEndpoint"> & {
210
238
  * Use `create(TaskEndpointSchema)` to create a new message.
211
239
  */
212
240
  export const TaskEndpointSchema: GenMessage<TaskEndpoint> = /*@__PURE__*/
213
- messageDesc(file_process_v1_task_definition, 4);
241
+ messageDesc(file_process_v1_task_definition, 5);
214
242
 
215
243
  /**
216
244
  * @generated from message process.v1.ValidationRequirement
@@ -252,7 +280,7 @@ export type ValidationRequirement = Message<"process.v1.ValidationRequirement">
252
280
  * Use `create(ValidationRequirementSchema)` to create a new message.
253
281
  */
254
282
  export const ValidationRequirementSchema: GenMessage<ValidationRequirement> = /*@__PURE__*/
255
- messageDesc(file_process_v1_task_definition, 5);
283
+ messageDesc(file_process_v1_task_definition, 6);
256
284
 
257
285
  /**
258
286
  * @generated from message process.v1.TaskExecutionPolicy
@@ -299,7 +327,7 @@ export type TaskExecutionPolicy = Message<"process.v1.TaskExecutionPolicy"> & {
299
327
  * Use `create(TaskExecutionPolicySchema)` to create a new message.
300
328
  */
301
329
  export const TaskExecutionPolicySchema: GenMessage<TaskExecutionPolicy> = /*@__PURE__*/
302
- messageDesc(file_process_v1_task_definition, 6);
330
+ messageDesc(file_process_v1_task_definition, 7);
303
331
 
304
332
  /**
305
333
  * TaskOverride applies small variant-specific adjustments to a task that remains
@@ -349,7 +377,7 @@ export type TaskOverride = Message<"process.v1.TaskOverride"> & {
349
377
  * Use `create(TaskOverrideSchema)` to create a new message.
350
378
  */
351
379
  export const TaskOverrideSchema: GenMessage<TaskOverride> = /*@__PURE__*/
352
- messageDesc(file_process_v1_task_definition, 7);
380
+ messageDesc(file_process_v1_task_definition, 8);
353
381
 
354
382
  /**
355
383
  * TaskDefinition is the static/universal authoring-time description of a task.
@@ -472,6 +500,13 @@ export type TaskDefinition = Message<"process.v1.TaskDefinition"> & {
472
500
  */
473
501
  destination?: TaskEndpoint;
474
502
 
503
+ /**
504
+ * Amount of the target part or material handled by this task. Omit only when quantity is not meaningful.
505
+ *
506
+ * @generated from field: process.v1.QuantityRequirement quantity = 19;
507
+ */
508
+ quantity?: QuantityRequirement;
509
+
475
510
  /**
476
511
  * Task applies if any rule matches. Empty means always applicable.
477
512
  *
@@ -492,7 +527,7 @@ export type TaskDefinition = Message<"process.v1.TaskDefinition"> & {
492
527
  * Use `create(TaskDefinitionSchema)` to create a new message.
493
528
  */
494
529
  export const TaskDefinitionSchema: GenMessage<TaskDefinition> = /*@__PURE__*/
495
- messageDesc(file_process_v1_task_definition, 8);
530
+ messageDesc(file_process_v1_task_definition, 9);
496
531
 
497
532
  /**
498
533
  * @generated from message process.v1.TaskDefinitions
@@ -509,7 +544,7 @@ export type TaskDefinitions = Message<"process.v1.TaskDefinitions"> & {
509
544
  * Use `create(TaskDefinitionsSchema)` to create a new message.
510
545
  */
511
546
  export const TaskDefinitionsSchema: GenMessage<TaskDefinitions> = /*@__PURE__*/
512
- messageDesc(file_process_v1_task_definition, 9);
547
+ messageDesc(file_process_v1_task_definition, 10);
513
548
 
514
549
  /**
515
550
  * @generated from enum process.v1.TaskType
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cobotar/protocol",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "description": "A collection of protobuf messages for the CobotAR-project",
5
5
  "homepage": "https://github.com/cobotar/protocol#readme",
6
6
  "files": [
@@ -22,7 +22,7 @@
22
22
  "test": "echo \"Error: no test specified\" && exit 0"
23
23
  },
24
24
  "dependencies": {
25
- "@bufbuild/protobuf": "2.11.0"
25
+ "@bufbuild/protobuf": "2.14.1"
26
26
  },
27
27
  "private": false
28
28
  }