@cobotar/protocol 0.19.14 → 0.19.16

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: 0.19.14
4
+ Current version: 0.19.16
5
5
 
6
6
  ## Documentation
7
7
  Find it here: [documentation/README.md](documentation/README.md)
@@ -11,6 +11,7 @@ import type { SequenceDefinition } from "./sequence_definition_pb.ts";
11
11
  import { file_process_v1_sequence_definition } from "./sequence_definition_pb.ts";
12
12
  import type { TaskDefinition } from "./task_definition_pb.ts";
13
13
  import { file_process_v1_task_definition } from "./task_definition_pb.ts";
14
+ import { file_validation_v1_predefined_string_rules } from "../../validation/v1/predefined_string_rules_pb.ts";
14
15
  import type { VariantConfiguration } from "../../variance/v1/variant_configuration_pb.ts";
15
16
  import { file_variance_v1_variant_configuration } from "../../variance/v1/variant_configuration_pb.ts";
16
17
  import type { Message } from "@bufbuild/protobuf";
@@ -19,7 +20,7 @@ import type { Message } from "@bufbuild/protobuf";
19
20
  * Describes the file process/v1/generation_requests.proto.
20
21
  */
21
22
  export const file_process_v1_generation_requests: GenFile = /*@__PURE__*/
22
- fileDesc("CiRwcm9jZXNzL3YxL2dlbmVyYXRpb25fcmVxdWVzdHMucHJvdG8SCnByb2Nlc3MudjEiygMKIURyYWZ0UHJvY2Vzc1JlY2lwZUdlbmVyYXRlUmVxdWVzdBIlChVwcm9kdWN0X2RlZmluaXRpb25faWQYASABKAlCBrpIA8gBARIZCglyZWNpcGVfaWQYAiABKAlCBrpIA8gBARITCgtyZWNpcGVfbmFtZRgDIAEoCRITCgtyZWNpcGVfaWNvbhgEIAEoCRIaChJyZWNpcGVfZGVzY3JpcHRpb24YBSABKAkSQAoVdmFyaWFudF9jb25maWd1cmF0aW9uGAYgASgLMiEudmFyaWFuY2UudjEuVmFyaWFudENvbmZpZ3VyYXRpb24SKAogaW5zZXJ0X2FsaWduX2JlZm9yZV9mYXN0ZW5fZ3JvdXAYByABKAgSIQoZZ3JvdXBfZmFzdGVuZXJzX3RocmVzaG9sZBgIIAEoBRImCh5ncm91cF9yZXBlYXRlZF9wYXJ0c190aHJlc2hvbGQYCSABKAUSHQoVZ2VuZXJhdGVfdmVyaWZ5X3Rhc2tzGAogASgIEicKH3ByZWZlcl9tb3ZlX3Rhc2tzX3doZW5fcG9zc2libGUYCyABKAgSHgoWaW5jbHVkZV9vcHRpb25hbF9ub2RlcxgMIAEoCCJvCh9EcmFmdFByb2Nlc3NSZWNpcGVHZW5lcmF0ZUlzc3VlEhcKB21lc3NhZ2UYASABKAlCBrpIA8gBARIXCgdub2RlX2lkGAIgASgJQga6SAPIAQESGgoScGFydF9kZWZpbml0aW9uX2lkGAMgASgJIvABCiBEcmFmdFByb2Nlc3NSZWNpcGVHZW5lcmF0ZVJlc3VsdBIxCgZyZWNpcGUYASABKAsyGS5wcm9jZXNzLnYxLlByb2Nlc3NSZWNpcGVCBrpIA8gBARIxCglzZXF1ZW5jZXMYAiADKAsyHi5wcm9jZXNzLnYxLlNlcXVlbmNlRGVmaW5pdGlvbhIpCgV0YXNrcxgDIAMoCzIaLnByb2Nlc3MudjEuVGFza0RlZmluaXRpb24SOwoGaXNzdWVzGAQgAygLMisucHJvY2Vzcy52MS5EcmFmdFByb2Nlc3NSZWNpcGVHZW5lcmF0ZUlzc3VlQrYBCg5jb20ucHJvY2Vzcy52MUIXR2VuZXJhdGlvblJlcXVlc3RzUHJvdG9QAVo5Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3Byb2Nlc3MvdjE7cHJvY2Vzc3YxogIDUFhYqgITTWVzc2FnZXMuUHJvY2Vzcy5WMcoCClByb2Nlc3NcVjHiAhZQcm9jZXNzXFYxXEdQQk1ldGFkYXRh6gILUHJvY2Vzczo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_process_v1_process_recipe, file_process_v1_sequence_definition, file_process_v1_task_definition, file_variance_v1_variant_configuration]);
23
+ fileDesc("CiRwcm9jZXNzL3YxL2dlbmVyYXRpb25fcmVxdWVzdHMucHJvdG8SCnByb2Nlc3MudjEi0wUKIURyYWZ0UHJvY2Vzc1JlY2lwZUdlbmVyYXRlUmVxdWVzdBIrChVwcm9kdWN0X2RlZmluaXRpb25faWQYASABKAlCDLpICcgBAXIE4OswARIfCglyZWNpcGVfaWQYAiABKAlCDLpICcgBAXIEoPIEARITCgtyZWNpcGVfbmFtZRgDIAEoCRITCgtyZWNpcGVfaWNvbhgEIAEoCRIaChJyZWNpcGVfZGVzY3JpcHRpb24YBSABKAkSQAoVdmFyaWFudF9jb25maWd1cmF0aW9uGAYgASgLMiEudmFyaWFuY2UudjEuVmFyaWFudENvbmZpZ3VyYXRpb24SKAogaW5zZXJ0X2FsaWduX2JlZm9yZV9mYXN0ZW5fZ3JvdXAYByABKAgSIQoZZ3JvdXBfZmFzdGVuZXJzX3RocmVzaG9sZBgIIAEoBRImCh5ncm91cF9yZXBlYXRlZF9wYXJ0c190aHJlc2hvbGQYCSABKAUSHQoVZ2VuZXJhdGVfdmVyaWZ5X3Rhc2tzGAogASgIEicKH3ByZWZlcl9tb3ZlX3Rhc2tzX3doZW5fcG9zc2libGUYCyABKAgSHgoWaW5jbHVkZV9vcHRpb25hbF9ub2RlcxgMIAEoCBIcChRnZW5lcmF0ZV9hcHBseV90YXNrcxgNIAEoCBIUCgxyb290X25vZGVfaWQYDiABKAkSNQotYXNzZW1ibGVfc3ViYXNzZW1ibGllc19hc191bml0c193aGVuX3Bvc3NpYmxlGA8gASgIEh4KFmdlbmVyYXRlX2luc3BlY3RfdGFza3MYECABKAgSNwofc291cmNlX2NvbnRhaW5lcl9kZWZpbml0aW9uX2lkcxgRIAMoCUIOukgLkgEIIgZyBMjyBAESNwofdGFyZ2V0X2NvbnRhaW5lcl9kZWZpbml0aW9uX2lkcxgSIAMoCUIOukgLkgEIIgZyBMjyBAEiwgUKLERyYWZ0RGlzYXNzZW1ibHlQcm9jZXNzUmVjaXBlR2VuZXJhdGVSZXF1ZXN0EisKFXByb2R1Y3RfZGVmaW5pdGlvbl9pZBgBIAEoCUIMukgJyAEBcgTg6zABEh8KCXJlY2lwZV9pZBgCIAEoCUIMukgJyAEBcgSg8gQBEhMKC3JlY2lwZV9uYW1lGAMgASgJEhMKC3JlY2lwZV9pY29uGAQgASgJEhoKEnJlY2lwZV9kZXNjcmlwdGlvbhgFIAEoCRJAChV2YXJpYW50X2NvbmZpZ3VyYXRpb24YBiABKAsyIS52YXJpYW5jZS52MS5WYXJpYW50Q29uZmlndXJhdGlvbhIpCiFpbnNlcnRfaG9sZF9iZWZvcmVfdW5mYXN0ZW5fZ3JvdXAYByABKAgSIQoZZ3JvdXBfZmFzdGVuZXJzX3RocmVzaG9sZBgIIAEoBRImCh5ncm91cF9yZXBlYXRlZF9wYXJ0c190aHJlc2hvbGQYCSABKAUSHQoVZ2VuZXJhdGVfdmVyaWZ5X3Rhc2tzGAogASgIEicKH3ByZWZlcl9tb3ZlX3Rhc2tzX3doZW5fcG9zc2libGUYCyABKAgSHgoWaW5jbHVkZV9vcHRpb25hbF9ub2RlcxgMIAEoCBIbChNnZW5lcmF0ZV93aXBlX3Rhc2tzGA0gASgIEjcKH3RhcmdldF9jb250YWluZXJfZGVmaW5pdGlvbl9pZHMYDiADKAlCDrpIC5IBCCIGcgTI8gQBEhQKDHJvb3Rfbm9kZV9pZBgPIAEoCRIsCiRwcmVzZXJ2ZV9zdWJhc3NlbWJsaWVzX3doZW5fcG9zc2libGUYECABKAgSJAoccmV2ZXJzZV9jaGlsZF9zZXF1ZW5jZV9vcmRlchgRIAEoCBIeChZnZW5lcmF0ZV9pbnNwZWN0X3Rhc2tzGBIgASgIInoKH0RyYWZ0UHJvY2Vzc1JlY2lwZUdlbmVyYXRlSXNzdWUSFwoHbWVzc2FnZRgBIAEoCUIGukgDyAEBEhcKB25vZGVfaWQYAiABKAlCBrpIA8gBARIlChJwYXJ0X2RlZmluaXRpb25faWQYAyABKAlCCbpIBnIEyPEEASLwAQogRHJhZnRQcm9jZXNzUmVjaXBlR2VuZXJhdGVSZXN1bHQSMQoGcmVjaXBlGAEgASgLMhkucHJvY2Vzcy52MS5Qcm9jZXNzUmVjaXBlQga6SAPIAQESMQoJc2VxdWVuY2VzGAIgAygLMh4ucHJvY2Vzcy52MS5TZXF1ZW5jZURlZmluaXRpb24SKQoFdGFza3MYAyADKAsyGi5wcm9jZXNzLnYxLlRhc2tEZWZpbml0aW9uEjsKBmlzc3VlcxgEIAMoCzIrLnByb2Nlc3MudjEuRHJhZnRQcm9jZXNzUmVjaXBlR2VuZXJhdGVJc3N1ZUK2AQoOY29tLnByb2Nlc3MudjFCF0dlbmVyYXRpb25SZXF1ZXN0c1Byb3RvUAFaOWdpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9wcm9jZXNzL3YxO3Byb2Nlc3N2MaICA1BYWKoCE01lc3NhZ2VzLlByb2Nlc3MuVjHKAgpQcm9jZXNzXFYx4gIWUHJvY2Vzc1xWMVxHUEJNZXRhZGF0YeoCC1Byb2Nlc3M6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_process_v1_process_recipe, file_process_v1_sequence_definition, file_process_v1_task_definition, file_validation_v1_predefined_string_rules, file_variance_v1_variant_configuration]);
23
24
 
24
25
  /**
25
26
  * DraftProcessRecipeGenerateRequest asks the backend to generate a draft
@@ -114,11 +115,59 @@ export type DraftProcessRecipeGenerateRequest = Message<"process.v1.DraftProcess
114
115
  preferMoveTasksWhenPossible: boolean;
115
116
 
116
117
  /**
117
- * If true, nodes marked as optional will be included
118
+ * If true, nodes marked as optional will be included.
118
119
  *
119
120
  * @generated from field: bool include_optional_nodes = 12;
120
121
  */
121
122
  includeOptionalNodes: boolean;
123
+
124
+ /**
125
+ * If true, the generator may insert APPLY tasks where appropriate.
126
+ *
127
+ * @generated from field: bool generate_apply_tasks = 13;
128
+ */
129
+ generateApplyTasks: boolean;
130
+
131
+ /**
132
+ * Optional assembly scope. If empty, the generator may consider the full
133
+ * product structure. If set, generation should focus on the specified
134
+ * assembly node and its relevant assembly paths/subtrees.
135
+ *
136
+ * @generated from field: string root_node_id = 14;
137
+ */
138
+ rootNodeId: string;
139
+
140
+ /**
141
+ * If true, the generator should prefer assembling subassemblies as intact
142
+ * units when feasible instead of always expanding them into all child parts.
143
+ *
144
+ * @generated from field: bool assemble_subassemblies_as_units_when_possible = 15;
145
+ */
146
+ assembleSubassembliesAsUnitsWhenPossible: boolean;
147
+
148
+ /**
149
+ * If true, the generator may insert INSPECT tasks where appropriate, for
150
+ * example to assess fit, alignment, damage, or assembly condition.
151
+ *
152
+ * @generated from field: bool generate_inspect_tasks = 16;
153
+ */
154
+ generateInspectTasks: boolean;
155
+
156
+ /**
157
+ * Container definitions that may act as sources for parts during assembly,
158
+ * for example trays, kits, or storage containers.
159
+ *
160
+ * @generated from field: repeated string source_container_definition_ids = 17;
161
+ */
162
+ sourceContainerDefinitionIds: string[];
163
+
164
+ /**
165
+ * Container definitions that may act as targets/workholding during assembly,
166
+ * for example fixtures or pallets used to hold the product being assembled.
167
+ *
168
+ * @generated from field: repeated string target_container_definition_ids = 18;
169
+ */
170
+ targetContainerDefinitionIds: string[];
122
171
  };
123
172
 
124
173
  /**
@@ -128,6 +177,164 @@ export type DraftProcessRecipeGenerateRequest = Message<"process.v1.DraftProcess
128
177
  export const DraftProcessRecipeGenerateRequestSchema: GenMessage<DraftProcessRecipeGenerateRequest> = /*@__PURE__*/
129
178
  messageDesc(file_process_v1_generation_requests, 0);
130
179
 
180
+ /**
181
+ * DraftDisassemblyProcessRecipeGenerateRequest asks the backend to generate a
182
+ * draft ProcessRecipe of type DISASSEMBLY from a ProductDefinition plus
183
+ * generation options.
184
+ *
185
+ * This is intended for authoring-time generation, not runtime execution.
186
+ *
187
+ * @generated from message process.v1.DraftDisassemblyProcessRecipeGenerateRequest
188
+ */
189
+ export type DraftDisassemblyProcessRecipeGenerateRequest = Message<"process.v1.DraftDisassemblyProcessRecipeGenerateRequest"> & {
190
+ /**
191
+ * The product structure that should be transformed into a draft recipe.
192
+ *
193
+ * @generated from field: string product_definition_id = 1;
194
+ */
195
+ productDefinitionId: string;
196
+
197
+ /**
198
+ * Optional explicit recipe id for the generated recipe.
199
+ * If empty, the generator/backend may assign one.
200
+ *
201
+ * @generated from field: string recipe_id = 2;
202
+ */
203
+ recipeId: string;
204
+
205
+ /**
206
+ * Human-readable name for the generated recipe.
207
+ *
208
+ * @generated from field: string recipe_name = 3;
209
+ */
210
+ recipeName: string;
211
+
212
+ /**
213
+ * Optional icon for the generated recipe.
214
+ *
215
+ * @generated from field: string recipe_icon = 4;
216
+ */
217
+ recipeIcon: string;
218
+
219
+ /**
220
+ * Optional human-readable description for the generated recipe.
221
+ *
222
+ * @generated from field: string recipe_description = 5;
223
+ */
224
+ recipeDescription: string;
225
+
226
+ /**
227
+ * Selected product variants used to filter applicability and annotate the
228
+ * generated recipe applicability.
229
+ *
230
+ * @generated from field: variance.v1.VariantConfiguration variant_configuration = 6;
231
+ */
232
+ variantConfiguration?: VariantConfiguration;
233
+
234
+ /**
235
+ * If true, the generator may insert HOLD tasks before grouped UNFASTEN work
236
+ * when that improves stability and task flow during disassembly.
237
+ *
238
+ * @generated from field: bool insert_hold_before_unfasten_group = 7;
239
+ */
240
+ insertHoldBeforeUnfastenGroup: boolean;
241
+
242
+ /**
243
+ * Minimum number of sibling fasteners required before grouping them into a
244
+ * shared fastener-removal-oriented sequence.
245
+ *
246
+ * @generated from field: int32 group_fasteners_threshold = 8;
247
+ */
248
+ groupFastenersThreshold: number;
249
+
250
+ /**
251
+ * Minimum number of repeated sibling parts required before grouping them into
252
+ * a shared repeated-parts disassembly sequence.
253
+ *
254
+ * @generated from field: int32 group_repeated_parts_threshold = 9;
255
+ */
256
+ groupRepeatedPartsThreshold: number;
257
+
258
+ /**
259
+ * If true, the generator may insert VERIFY tasks where appropriate, for
260
+ * example to confirm that a part, fastener, or material has been removed.
261
+ *
262
+ * @generated from field: bool generate_verify_tasks = 10;
263
+ */
264
+ generateVerifyTasks: boolean;
265
+
266
+ /**
267
+ * If true, the generator may prefer MOVE tasks when the operation can be
268
+ * reasonably interpreted as repositioning rather than removal.
269
+ *
270
+ * @generated from field: bool prefer_move_tasks_when_possible = 11;
271
+ */
272
+ preferMoveTasksWhenPossible: boolean;
273
+
274
+ /**
275
+ * If true, nodes marked as optional will be included.
276
+ *
277
+ * @generated from field: bool include_optional_nodes = 12;
278
+ */
279
+ includeOptionalNodes: boolean;
280
+
281
+ /**
282
+ * If true, the generator may insert WIPE tasks where appropriate.
283
+ *
284
+ * @generated from field: bool generate_wipe_tasks = 13;
285
+ */
286
+ generateWipeTasks: boolean;
287
+
288
+ /**
289
+ * Container definitions that removed parts, fasteners, or subassemblies may
290
+ * be staged into during disassembly. These can be fixtures, trays, kits, or
291
+ * storage containers depending on the intended workflow.
292
+ *
293
+ * @generated from field: repeated string target_container_definition_ids = 14;
294
+ */
295
+ targetContainerDefinitionIds: string[];
296
+
297
+ /**
298
+ * Optional disassembly scope. If empty, the generator may consider the full
299
+ * product structure. If set, generation should focus on the specified
300
+ * assembly node and its relevant disassembly paths/subtrees.
301
+ *
302
+ * @generated from field: string root_node_id = 15;
303
+ */
304
+ rootNodeId: string;
305
+
306
+ /**
307
+ * If true, the generator should prefer removing subassemblies as intact units
308
+ * when feasible instead of always decomposing them into all child parts.
309
+ *
310
+ * @generated from field: bool preserve_subassemblies_when_possible = 16;
311
+ */
312
+ preserveSubassembliesWhenPossible: boolean;
313
+
314
+ /**
315
+ * If true, the generator may prefer reversing child ordering hints from the
316
+ * product structure when deriving disassembly sequences.
317
+ *
318
+ * @generated from field: bool reverse_child_sequence_order = 17;
319
+ */
320
+ reverseChildSequenceOrder: boolean;
321
+
322
+ /**
323
+ * If true, the generator may insert INSPECT tasks where appropriate, for
324
+ * example to assess wear, damage, residue, or part condition after removal.
325
+ *
326
+ * @generated from field: bool generate_inspect_tasks = 18;
327
+ */
328
+ generateInspectTasks: boolean;
329
+ };
330
+
331
+ /**
332
+ * Describes the message process.v1.DraftDisassemblyProcessRecipeGenerateRequest.
333
+ * Use `create(DraftDisassemblyProcessRecipeGenerateRequestSchema)` to create a new message.
334
+ */
335
+ export const DraftDisassemblyProcessRecipeGenerateRequestSchema: GenMessage<DraftDisassemblyProcessRecipeGenerateRequest> = /*@__PURE__*/
336
+ messageDesc(file_process_v1_generation_requests, 1);
337
+
131
338
  /**
132
339
  * DraftProcessRecipeGenerateIssue describes a non-fatal issue or warning
133
340
  * encountered during recipe generation.
@@ -156,7 +363,7 @@ export type DraftProcessRecipeGenerateIssue = Message<"process.v1.DraftProcessRe
156
363
  * Use `create(DraftProcessRecipeGenerateIssueSchema)` to create a new message.
157
364
  */
158
365
  export const DraftProcessRecipeGenerateIssueSchema: GenMessage<DraftProcessRecipeGenerateIssue> = /*@__PURE__*/
159
- messageDesc(file_process_v1_generation_requests, 1);
366
+ messageDesc(file_process_v1_generation_requests, 2);
160
367
 
161
368
  /**
162
369
  * DraftProcessRecipeGenerateResult contains the generated draft recipe.
@@ -190,5 +397,5 @@ export type DraftProcessRecipeGenerateResult = Message<"process.v1.DraftProcessR
190
397
  * Use `create(DraftProcessRecipeGenerateResultSchema)` to create a new message.
191
398
  */
192
399
  export const DraftProcessRecipeGenerateResultSchema: GenMessage<DraftProcessRecipeGenerateResult> = /*@__PURE__*/
193
- messageDesc(file_process_v1_generation_requests, 2);
400
+ messageDesc(file_process_v1_generation_requests, 3);
194
401
 
@@ -14,68 +14,109 @@ import type { Message } from "@bufbuild/protobuf";
14
14
  * Describes the file process/v1/sequence_definition.proto.
15
15
  */
16
16
  export const file_process_v1_sequence_definition: GenFile = /*@__PURE__*/
17
- fileDesc("CiRwcm9jZXNzL3YxL3NlcXVlbmNlX2RlZmluaXRpb24ucHJvdG8SCnByb2Nlc3MudjEi5QIKElNlcXVlbmNlRGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIgCg9zZXF1ZW5jZV9udW1iZXIYBSABKAVCB7pIBBoCKAASGgoScGFyZW50X3NlcXVlbmNlX2lkGAYgASgJEjgKCG9wZXJhdG9yGAcgASgOMhwucHJvY2Vzcy52MS5TZXF1ZW5jZU9wZXJhdG9yQgi6SAWCAQIQARIaChJjaGlsZF9zZXF1ZW5jZV9pZHMYCCADKAkSFgoOY2hpbGRfdGFza19pZHMYCSADKAkSLgoMbG9jYWxfdGFyZ2V0GAogASgLMhguZ2VvbWV0cnkudjEuTG9jYWxUYXJnZXQSEAoIb3B0aW9uYWwYCyABKAgSGQoRY2FuX2J1bGtfY29tcGxldGUYDCABKAgiRAoTU2VxdWVuY2VEZWZpbml0aW9ucxItCgVpdGVtcxgBIAMoCzIeLnByb2Nlc3MudjEuU2VxdWVuY2VEZWZpbml0aW9uKrYBChBTZXF1ZW5jZU9wZXJhdG9yEiEKHVNFUVVFTkNFX09QRVJBVE9SX1VOU1BFQ0lGSUVEEAASHQoZU0VRVUVOQ0VfT1BFUkFUT1JfT1JERVJFRBABEh4KGlNFUVVFTkNFX09QRVJBVE9SX1BBUkFMTEVMEAISHwobU0VRVUVOQ0VfT1BFUkFUT1JfRVhDTFVTSVZFEAMSHwobU0VRVUVOQ0VfT1BFUkFUT1JfSU5DTFVTSVZFEARCtgEKDmNvbS5wcm9jZXNzLnYxQhdTZXF1ZW5jZURlZmluaXRpb25Qcm90b1ABWjlnaXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvcHJvY2Vzcy92MTtwcm9jZXNzdjGiAgNQWFiqAhNNZXNzYWdlcy5Qcm9jZXNzLlYxygIKUHJvY2Vzc1xWMeICFlByb2Nlc3NcVjFcR1BCTWV0YWRhdGHqAgtQcm9jZXNzOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_geometry_v1_local_target, file_validation_v1_predefined_string_rules]);
17
+ fileDesc("CiRwcm9jZXNzL3YxL3NlcXVlbmNlX2RlZmluaXRpb24ucHJvdG8SCnByb2Nlc3MudjEi0wwKElNlcXVlbmNlRGVmaW5pdGlvbhIVCgJpZBgBIAEoCUIJukgGcgSo8gQBEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiAKD3NlcXVlbmNlX251bWJlchgFIAEoBUIHukgEGgIoABIlChJwYXJlbnRfc2VxdWVuY2VfaWQYBiABKAlCCbpIBnIEqPIEARI4CghvcGVyYXRvchgHIAEoDjIcLnByb2Nlc3MudjEuU2VxdWVuY2VPcGVyYXRvckIIukgFggECEAESKgoSY2hpbGRfc2VxdWVuY2VfaWRzGAggAygJQg66SAuSAQgiBnIEqPIEARImCg5jaGlsZF90YXNrX2lkcxgJIAMoCUIOukgLkgEIIgZyBLDyBAESLgoMbG9jYWxfdGFyZ2V0GAogASgLMhguZ2VvbWV0cnkudjEuTG9jYWxUYXJnZXQSEAoIb3B0aW9uYWwYCyABKAgSGQoRY2FuX2J1bGtfY29tcGxldGUYDCABKAg6tQm6SLEJGsIBCiZzZXF1ZW5jZV9kZWZpbml0aW9uLmNoaWxkcmVuX25vdF9taXhlZBJRYSBzZXF1ZW5jZSBtdXN0IGNvbnRhaW4gZWl0aGVyIGNoaWxkX3NlcXVlbmNlX2lkcyBvciBjaGlsZF90YXNrX2lkcywgYnV0IG5vdCBib3RoGkUhKHNpemUodGhpcy5jaGlsZF9zZXF1ZW5jZV9pZHMpID4gMCAmJiBzaXplKHRoaXMuY2hpbGRfdGFza19pZHMpID4gMCkazQEKOnNlcXVlbmNlX2RlZmluaXRpb24ub3BlcmF0b3Jfc3BlY2lmaWVkX3doZW5fY2hpbGRyZW5fZXhpc3QSN29wZXJhdG9yIG11c3QgYmUgc3BlY2lmaWVkIHdoZW4gYSBzZXF1ZW5jZSBoYXMgY2hpbGRyZW4aVihzaXplKHRoaXMuY2hpbGRfc2VxdWVuY2VfaWRzKSArIHNpemUodGhpcy5jaGlsZF90YXNrX2lkcykgPT0gMCkgfHwgdGhpcy5vcGVyYXRvciAhPSAwGscBCjdzZXF1ZW5jZV9kZWZpbml0aW9uLnBhcmFsbGVsX3JlcXVpcmVzX211bHRpcGxlX2NoaWxkcmVuEjRQQVJBTExFTCBzZXF1ZW5jZXMgc2hvdWxkIGhhdmUgYXQgbGVhc3QgdHdvIGNoaWxkcmVuGlZ0aGlzLm9wZXJhdG9yICE9IDIgfHwgKHNpemUodGhpcy5jaGlsZF9zZXF1ZW5jZV9pZHMpICsgc2l6ZSh0aGlzLmNoaWxkX3Rhc2tfaWRzKSA+PSAyKRrJAQo4c2VxdWVuY2VfZGVmaW5pdGlvbi5leGNsdXNpdmVfcmVxdWlyZXNfbXVsdGlwbGVfY2hpbGRyZW4SNUVYQ0xVU0lWRSBzZXF1ZW5jZXMgc2hvdWxkIGhhdmUgYXQgbGVhc3QgdHdvIGNoaWxkcmVuGlZ0aGlzLm9wZXJhdG9yICE9IDMgfHwgKHNpemUodGhpcy5jaGlsZF9zZXF1ZW5jZV9pZHMpICsgc2l6ZSh0aGlzLmNoaWxkX3Rhc2tfaWRzKSA+PSAyKRrJAQo4c2VxdWVuY2VfZGVmaW5pdGlvbi5pbmNsdXNpdmVfcmVxdWlyZXNfbXVsdGlwbGVfY2hpbGRyZW4SNUlOQ0xVU0lWRSBzZXF1ZW5jZXMgc2hvdWxkIGhhdmUgYXQgbGVhc3QgdHdvIGNoaWxkcmVuGlZ0aGlzLm9wZXJhdG9yICE9IDQgfHwgKHNpemUodGhpcy5jaGlsZF9zZXF1ZW5jZV9pZHMpICsgc2l6ZSh0aGlzLmNoaWxkX3Rhc2tfaWRzKSA+PSAyKRq3AQo4c2VxdWVuY2VfZGVmaW5pdGlvbi5idWxrX2NvbXBsZXRlX3JlcXVpcmVzX3Rhc2tfY2hpbGRyZW4SQWNhbl9idWxrX2NvbXBsZXRlIGlzIG9ubHkgdmFsaWQgZm9yIHNlcXVlbmNlcyB3aXRoIGNoaWxkX3Rhc2tfaWRzGjghdGhpcy5jYW5fYnVsa19jb21wbGV0ZSB8fCBzaXplKHRoaXMuY2hpbGRfdGFza19pZHMpID4gMCJEChNTZXF1ZW5jZURlZmluaXRpb25zEi0KBWl0ZW1zGAEgAygLMh4ucHJvY2Vzcy52MS5TZXF1ZW5jZURlZmluaXRpb24qtgEKEFNlcXVlbmNlT3BlcmF0b3ISIQodU0VRVUVOQ0VfT1BFUkFUT1JfVU5TUEVDSUZJRUQQABIdChlTRVFVRU5DRV9PUEVSQVRPUl9PUkRFUkVEEAESHgoaU0VRVUVOQ0VfT1BFUkFUT1JfUEFSQUxMRUwQAhIfChtTRVFVRU5DRV9PUEVSQVRPUl9FWENMVVNJVkUQAxIfChtTRVFVRU5DRV9PUEVSQVRPUl9JTkNMVVNJVkUQBEK2AQoOY29tLnByb2Nlc3MudjFCF1NlcXVlbmNlRGVmaW5pdGlvblByb3RvUAFaOWdpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9wcm9jZXNzL3YxO3Byb2Nlc3N2MaICA1BYWKoCE01lc3NhZ2VzLlByb2Nlc3MuVjHKAgpQcm9jZXNzXFYx4gIWUHJvY2Vzc1xWMVxHUEJNZXRhZGF0YeoCC1Byb2Nlc3M6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_geometry_v1_local_target, file_validation_v1_predefined_string_rules]);
18
18
 
19
19
  /**
20
+ * SequenceDefinition represents a unit of control flow within a process recipe.
21
+ *
22
+ * A sequence groups either:
23
+ * - child sequences (for orchestration / structure), or
24
+ * - child tasks (for executable work)
25
+ *
26
+ * but not both at the same time.
27
+ *
28
+ * This separation ensures clear execution semantics and simplifies runtime
29
+ * scheduling, validation, and UI representation.
30
+ *
31
+ * Sequences form a hierarchical tree starting from a root sequence and are
32
+ * evaluated by the runtime according to the specified operator.
33
+ *
20
34
  * @generated from message process.v1.SequenceDefinition
21
35
  */
22
36
  export type SequenceDefinition = Message<"process.v1.SequenceDefinition"> & {
23
37
  /**
38
+ * Unique identifier for the sequence definition.
39
+ *
24
40
  * @generated from field: string id = 1;
25
41
  */
26
42
  id: string;
27
43
 
28
44
  /**
45
+ * Human-readable name used in UI and authoring tools.
46
+ *
29
47
  * @generated from field: string name = 2;
30
48
  */
31
49
  name: string;
32
50
 
33
51
  /**
52
+ * Optional icon representing the sequence in UI contexts.
53
+ *
34
54
  * @generated from field: string icon = 3;
35
55
  */
36
56
  icon: string;
37
57
 
38
58
  /**
59
+ * Optional textual description of the sequence purpose or behavior.
60
+ *
39
61
  * @generated from field: string description = 4;
40
62
  */
41
63
  description: string;
42
64
 
43
65
  /**
66
+ * Ordering hint used to sort sibling sequences during generation and execution.
67
+ * Lower values are executed earlier for ORDERED sequences.
68
+ *
44
69
  * @generated from field: int32 sequence_number = 5;
45
70
  */
46
71
  sequenceNumber: number;
47
72
 
48
73
  /**
74
+ * Identifier of the parent sequence in the hierarchy. Empty for root sequence.
75
+ *
49
76
  * @generated from field: string parent_sequence_id = 6;
50
77
  */
51
78
  parentSequenceId: string;
52
79
 
53
80
  /**
81
+ * Defines how child elements (sequences or tasks) are executed and combined.
82
+ *
54
83
  * @generated from field: process.v1.SequenceOperator operator = 7;
55
84
  */
56
85
  operator: SequenceOperator;
57
86
 
58
87
  /**
88
+ * Child sequence references used when this sequence acts as an orchestration node.
89
+ * Only one of child_sequence_ids or child_task_ids should be populated.
90
+ *
59
91
  * @generated from field: repeated string child_sequence_ids = 8;
60
92
  */
61
93
  childSequenceIds: string[];
62
94
 
63
95
  /**
96
+ * Child task references used when this sequence is a leaf execution node.
97
+ * Only one of child_sequence_ids or child_task_ids should be populated.
98
+ *
64
99
  * @generated from field: repeated string child_task_ids = 9;
65
100
  */
66
101
  childTaskIds: string[];
67
102
 
68
103
  /**
104
+ * Optional local target defining the spatial or logical context for this sequence.
105
+ *
69
106
  * @generated from field: geometry.v1.LocalTarget local_target = 10;
70
107
  */
71
108
  localTarget?: LocalTarget;
72
109
 
73
110
  /**
111
+ * Indicates whether this sequence is optional and may be skipped during execution.
112
+ *
74
113
  * @generated from field: bool optional = 11;
75
114
  */
76
115
  optional: boolean;
77
116
 
78
117
  /**
118
+ * Indicates whether all child tasks in this sequence can be completed in bulk.
119
+ *
79
120
  * @generated from field: bool can_bulk_complete = 12;
80
121
  */
81
122
  canBulkComplete: boolean;
@@ -109,8 +150,8 @@ export const SequenceDefinitionsSchema: GenMessage<SequenceDefinitions> = /*@__P
109
150
  * Defines how the children of a SequenceDefinition are executed and how the
110
151
  * sequence determines completion.
111
152
  *
112
- * A sequence may contain both child sequences and tasks. The operator
113
- * determines the control-flow semantics for those children.
153
+ * A sequence should contain either child sequences or child tasks, but not both.
154
+ * Use nested sequences to separate orchestration structure from executable task groups.
114
155
  *
115
156
  * @generated from enum process.v1.SequenceOperator
116
157
  */
@@ -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("CiBwcm9jZXNzL3YxL3Rhc2tfZGVmaW5pdGlvbi5wcm90bxIKcHJvY2Vzcy52MSJsCg1Qcm9kdWN0VGFyZ2V0Eg8KB25vZGVfaWQYASABKAkSGgoScGFydF9kZWZpbml0aW9uX2lkGAIgASgJEi4KDGxvY2FsX3RhcmdldBgDIAEoCzIYLmdlb21ldHJ5LnYxLkxvY2FsVGFyZ2V0IncKD0NvbnRhaW5lclRhcmdldBIfChdjb250YWluZXJfZGVmaW5pdGlvbl9pZBgBIAEoCRIPCgdzbG90X2lkGAIgASgJEjIKCXNsb3RfdHlwZRgDIAEoDjIfLnJlc291cmNlcy52MS5Db250YWluZXJTbG90VHlwZSJrCg5SZXNvdXJjZVRhcmdldBIbChNhc3NldF9kZWZpbml0aW9uX2lkGAEgASgJEhsKE3JvYm90X2RlZmluaXRpb25faWQYAiABKAkSHwoXY29udGFpbmVyX2RlZmluaXRpb25faWQYAyABKAkilgEKClRhc2tUYXJnZXQSKgoHcHJvZHVjdBgBIAEoCzIZLnByb2Nlc3MudjEuUHJvZHVjdFRhcmdldBIuCgljb250YWluZXIYAiABKAsyGy5wcm9jZXNzLnYxLkNvbnRhaW5lclRhcmdldBIsCghyZXNvdXJjZRgDIAEoCzIaLnByb2Nlc3MudjEuUmVzb3VyY2VUYXJnZXQiagoMVGFza0VuZHBvaW50EioKB3Byb2R1Y3QYASABKAsyGS5wcm9jZXNzLnYxLlByb2R1Y3RUYXJnZXQSLgoJY29udGFpbmVyGAIgASgLMhsucHJvY2Vzcy52MS5Db250YWluZXJUYXJnZXQimQIKFVZhbGlkYXRpb25SZXF1aXJlbWVudBIdChVyZXF1aXJlX3Rvb2xfZmVlZGJhY2sYASABKAgSHAoUcmVxdWlyZV92aXNpb25fY2hlY2sYAiABKAgSIQoZYWxsb3dfbWFudWFsX2NvbmZpcm1hdGlvbhgDIAEoCBJACh1tYW51YWxfY29uZmlybWF0aW9uX21pbl9sZXZlbBgEIAEoDjIZLmNhcGFiaWxpdHkudjEuU2tpbGxMZXZlbBIqCgRtb2RlGAUgASgOMhwucmVzb3VyY2VzLnYxLlZhbGlkYXRpb25Nb2RlEjIKC2NvbnN0cmFpbnRzGAYgAygLMh0uY29tbW9uLnYxLktleVZhbHVlQ29uc3RyYWludCKGAgoTVGFza0V4ZWN1dGlvblBvbGljeRJDChVhc3NpZ25tZW50X3ByZWZlcmVuY2UYASABKA4yJC5wcm9jZXNzLnYxLlRhc2tBc3NpZ25tZW50UHJlZmVyZW5jZRI4ChBhY3Rvcl9jb25zdHJhaW50GAIgASgLMh4uY2FwYWJpbGl0eS52MS5BY3RvckNvbnN0cmFpbnQSFAoMY2FuX3JlYXNzaWduGAMgASgIEg4KBmNhbl9kbxgEIAEoCBIQCghjYW5fdW5kbxgFIAEoCBI4ChJlc3RpbWF0ZWRfZHVyYXRpb24YBiABKAsyHC5jb21tb24udjEuRXN0aW1hdGVkRHVyYXRpb24ikAEKDFRhc2tPdmVycmlkZRImCgR3aGVuGAEgAygLMhgudmFyaWFuY2UudjEuVmFyaWFudFJ1bGUSGAoQaW5zdHJ1Y3Rpb25fdGV4dBgCIAEoCRIWCg50YXJnZXRfbm9kZV9pZBgDIAEoCRImCghhcHByb2FjaBgEIAEoCzIULmdlb21ldHJ5LnYxLlZlY3RvcjMipAYKDlRhc2tEZWZpbml0aW9uEgoKAmlkGAEgASgJEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhgKEGluc3RydWN0aW9uX3RleHQYBSABKAkSIAoPc2VxdWVuY2VfbnVtYmVyGAYgASgFQge6SAQaAigAEjEKCXRhc2tfdHlwZRgHIAEoDjIULnByb2Nlc3MudjEuVGFza1R5cGVCCLpIBYIBAhABEiYKBnRhcmdldBgIIAEoCzIWLnByb2Nlc3MudjEuVGFza1RhcmdldBIuChBpbnNlcnRpb25fb2Zmc2V0GAkgASgLMhQuZ2VvbWV0cnkudjEuVmVjdG9yMxItCg9hcHByb2FjaF9vZmZzZXQYCiABKAsyFC5nZW9tZXRyeS52MS5WZWN0b3IzEjgKEHRvb2xfcmVxdWlyZW1lbnQYDCABKAsyHi5jYXBhYmlsaXR5LnYxLlRvb2xSZXF1aXJlbWVudBI7ChJza2lsbF9yZXF1aXJlbWVudHMYDSADKAsyHy5jYXBhYmlsaXR5LnYxLlNraWxsUmVxdWlyZW1lbnQSNQoKdmFsaWRhdGlvbhgOIAEoCzIhLnByb2Nlc3MudjEuVmFsaWRhdGlvblJlcXVpcmVtZW50EjkKEGV4ZWN1dGlvbl9wb2xpY3kYDyABKAsyHy5wcm9jZXNzLnYxLlRhc2tFeGVjdXRpb25Qb2xpY3kSNAoQc2FmZXR5X3JlbGV2YW5jZRgQIAEoDjIaLmNvbW1vbi52MS5TYWZldHlSZWxldmFuY2USKAoGc291cmNlGBEgASgLMhgucHJvY2Vzcy52MS5UYXNrRW5kcG9pbnQSLQoLZGVzdGluYXRpb24YEiABKAsyGC5wcm9jZXNzLnYxLlRhc2tFbmRwb2ludBIvCg1hcHBsaWNhYmlsaXR5GBUgAygLMhgudmFyaWFuY2UudjEuVmFyaWFudFJ1bGUSKwoJb3ZlcnJpZGVzGBYgAygLMhgucHJvY2Vzcy52MS5UYXNrT3ZlcnJpZGUiPAoPVGFza0RlZmluaXRpb25zEikKBWl0ZW1zGAEgAygLMhoucHJvY2Vzcy52MS5UYXNrRGVmaW5pdGlvbiq/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("CiBwcm9jZXNzL3YxL3Rhc2tfZGVmaW5pdGlvbi5wcm90bxIKcHJvY2Vzcy52MSJsCg1Qcm9kdWN0VGFyZ2V0Eg8KB25vZGVfaWQYASABKAkSGgoScGFydF9kZWZpbml0aW9uX2lkGAIgASgJEi4KDGxvY2FsX3RhcmdldBgDIAEoCzIYLmdlb21ldHJ5LnYxLkxvY2FsVGFyZ2V0IncKD0NvbnRhaW5lclRhcmdldBIfChdjb250YWluZXJfZGVmaW5pdGlvbl9pZBgBIAEoCRIPCgdzbG90X2lkGAIgASgJEjIKCXNsb3RfdHlwZRgDIAEoDjIfLnJlc291cmNlcy52MS5Db250YWluZXJTbG90VHlwZSJrCg5SZXNvdXJjZVRhcmdldBIbChNhc3NldF9kZWZpbml0aW9uX2lkGAEgASgJEhsKE3JvYm90X2RlZmluaXRpb25faWQYAiABKAkSHwoXY29udGFpbmVyX2RlZmluaXRpb25faWQYAyABKAkilgEKClRhc2tUYXJnZXQSKgoHcHJvZHVjdBgBIAEoCzIZLnByb2Nlc3MudjEuUHJvZHVjdFRhcmdldBIuCgljb250YWluZXIYAiABKAsyGy5wcm9jZXNzLnYxLkNvbnRhaW5lclRhcmdldBIsCghyZXNvdXJjZRgDIAEoCzIaLnByb2Nlc3MudjEuUmVzb3VyY2VUYXJnZXQiagoMVGFza0VuZHBvaW50EioKB3Byb2R1Y3QYASABKAsyGS5wcm9jZXNzLnYxLlByb2R1Y3RUYXJnZXQSLgoJY29udGFpbmVyGAIgASgLMhsucHJvY2Vzcy52MS5Db250YWluZXJUYXJnZXQimQIKFVZhbGlkYXRpb25SZXF1aXJlbWVudBIdChVyZXF1aXJlX3Rvb2xfZmVlZGJhY2sYASABKAgSHAoUcmVxdWlyZV92aXNpb25fY2hlY2sYAiABKAgSIQoZYWxsb3dfbWFudWFsX2NvbmZpcm1hdGlvbhgDIAEoCBJACh1tYW51YWxfY29uZmlybWF0aW9uX21pbl9sZXZlbBgEIAEoDjIZLmNhcGFiaWxpdHkudjEuU2tpbGxMZXZlbBIqCgRtb2RlGAUgASgOMhwucmVzb3VyY2VzLnYxLlZhbGlkYXRpb25Nb2RlEjIKC2NvbnN0cmFpbnRzGAYgAygLMh0uY29tbW9uLnYxLktleVZhbHVlQ29uc3RyYWludCKVAgoTVGFza0V4ZWN1dGlvblBvbGljeRJDChVhc3NpZ25tZW50X3ByZWZlcmVuY2UYASABKA4yJC5wcm9jZXNzLnYxLlRhc2tBc3NpZ25tZW50UHJlZmVyZW5jZRI4ChBhY3Rvcl9jb25zdHJhaW50GAIgASgLMh4uY2FwYWJpbGl0eS52MS5BY3RvckNvbnN0cmFpbnQSFAoMY2FuX3JlYXNzaWduGAMgASgIEhAKCGNhbl91bmRvGAQgASgIEjgKEmVzdGltYXRlZF9kdXJhdGlvbhgFIAEoCzIcLmNvbW1vbi52MS5Fc3RpbWF0ZWREdXJhdGlvbhIdChVyZXF1aXJlX2Z1bGxfZ3VpZGFuY2UYBiABKAgikAEKDFRhc2tPdmVycmlkZRImCgR3aGVuGAEgAygLMhgudmFyaWFuY2UudjEuVmFyaWFudFJ1bGUSGAoQaW5zdHJ1Y3Rpb25fdGV4dBgCIAEoCRIWCg50YXJnZXRfbm9kZV9pZBgDIAEoCRImCghhcHByb2FjaBgEIAEoCzIULmdlb21ldHJ5LnYxLlZlY3RvcjMipAYKDlRhc2tEZWZpbml0aW9uEgoKAmlkGAEgASgJEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEhgKEGluc3RydWN0aW9uX3RleHQYBSABKAkSIAoPc2VxdWVuY2VfbnVtYmVyGAYgASgFQge6SAQaAigAEjEKCXRhc2tfdHlwZRgHIAEoDjIULnByb2Nlc3MudjEuVGFza1R5cGVCCLpIBYIBAhABEiYKBnRhcmdldBgIIAEoCzIWLnByb2Nlc3MudjEuVGFza1RhcmdldBIuChBpbnNlcnRpb25fb2Zmc2V0GAkgASgLMhQuZ2VvbWV0cnkudjEuVmVjdG9yMxItCg9hcHByb2FjaF9vZmZzZXQYCiABKAsyFC5nZW9tZXRyeS52MS5WZWN0b3IzEjgKEHRvb2xfcmVxdWlyZW1lbnQYDCABKAsyHi5jYXBhYmlsaXR5LnYxLlRvb2xSZXF1aXJlbWVudBI7ChJza2lsbF9yZXF1aXJlbWVudHMYDSADKAsyHy5jYXBhYmlsaXR5LnYxLlNraWxsUmVxdWlyZW1lbnQSNQoKdmFsaWRhdGlvbhgOIAEoCzIhLnByb2Nlc3MudjEuVmFsaWRhdGlvblJlcXVpcmVtZW50EjkKEGV4ZWN1dGlvbl9wb2xpY3kYDyABKAsyHy5wcm9jZXNzLnYxLlRhc2tFeGVjdXRpb25Qb2xpY3kSNAoQc2FmZXR5X3JlbGV2YW5jZRgQIAEoDjIaLmNvbW1vbi52MS5TYWZldHlSZWxldmFuY2USKAoGc291cmNlGBEgASgLMhgucHJvY2Vzcy52MS5UYXNrRW5kcG9pbnQSLQoLZGVzdGluYXRpb24YEiABKAsyGC5wcm9jZXNzLnYxLlRhc2tFbmRwb2ludBIvCg1hcHBsaWNhYmlsaXR5GBUgAygLMhgudmFyaWFuY2UudjEuVmFyaWFudFJ1bGUSKwoJb3ZlcnJpZGVzGBYgAygLMhgucHJvY2Vzcy52MS5UYXNrT3ZlcnJpZGUiPAoPVGFza0RlZmluaXRpb25zEikKBWl0ZW1zGAEgAygLMhoucHJvY2Vzcy52MS5UYXNrRGVmaW5pdGlvbiq/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
@@ -274,19 +274,19 @@ export type TaskExecutionPolicy = Message<"process.v1.TaskExecutionPolicy"> & {
274
274
  canReassign: boolean;
275
275
 
276
276
  /**
277
- * @generated from field: bool can_do = 4;
277
+ * @generated from field: bool can_undo = 4;
278
278
  */
279
- canDo: boolean;
279
+ canUndo: boolean;
280
280
 
281
281
  /**
282
- * @generated from field: bool can_undo = 5;
282
+ * @generated from field: common.v1.EstimatedDuration estimated_duration = 5;
283
283
  */
284
- canUndo: boolean;
284
+ estimatedDuration?: EstimatedDuration;
285
285
 
286
286
  /**
287
- * @generated from field: common.v1.EstimatedDuration estimated_duration = 6;
287
+ * @generated from field: bool require_full_guidance = 6;
288
288
  */
289
- estimatedDuration?: EstimatedDuration;
289
+ requireFullGuidance: boolean;
290
290
  };
291
291
 
292
292
  /**
@@ -18,7 +18,7 @@ import type { Message } from "@bufbuild/protobuf";
18
18
  * Describes the file product/v1/part_definition.proto.
19
19
  */
20
20
  export const file_product_v1_part_definition: GenFile = /*@__PURE__*/
21
- fileDesc("CiBwcm9kdWN0L3YxL3BhcnRfZGVmaW5pdGlvbi5wcm90bxIKcHJvZHVjdC52MSJmCgpEaW1lbnNpb25zEhwKBHhfbW0YASABKAFCDrpICxIJKQAAAAAAAAAAEhwKBHlfbW0YAiABKAFCDrpICxIJKQAAAAAAAAAAEhwKBHpfbW0YAyABKAFCDrpICxIJKQAAAAAAAAAAIlsKDE1hdGVyaWFsU3BlYxIuCghjYXRlZ29yeRgBIAEoDjIcLnByb2R1Y3QudjEuTWF0ZXJpYWxDYXRlZ29yeRIMCgRuYW1lGAIgASgJEg0KBWdyYWRlGAMgASgJIuQBChNQYXJ0SGFuZGxpbmdQcm9maWxlEg8KB2ZyYWdpbGUYASABKAgSFQoNZXNkX3NlbnNpdGl2ZRgCIAEoCBIeChZyZXF1aXJlc190d29faGFuZF9saWZ0GAMgASgIEiAKGHJlcXVpcmVzX2ZpeHR1cmVfc3VwcG9ydBgEIAEoCBIYChBtYXhfZ3JpcF9mb3JjZV9uGAUgASgBEhUKDW1heF90b3JxdWVfbm0YBiABKAESMgoLY29uc3RyYWludHMYByADKAsyHS5jb21tb24udjEuS2V5VmFsdWVDb25zdHJhaW50IsoDCg5QYXJ0RGVmaW5pdGlvbhIKCgJpZBgBIAEoCRIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIsCgR0eXBlGAUgASgOMhQucHJvZHVjdC52MS5QYXJ0VHlwZUIIukgFggECEAESDwoHc3VidHlwZRgGIAEoCRIZCgh3ZWlnaHRfZxgHIAEoA0IHukgEIgIoABIqCgpkaW1lbnNpb25zGAggASgLMhYucHJvZHVjdC52MS5EaW1lbnNpb25zEioKCG1hdGVyaWFsGAkgASgLMhgucHJvZHVjdC52MS5NYXRlcmlhbFNwZWMSIwoQZGVmYXVsdF9tb2RlbF9pZBgKIAEoCUIJukgGcgSI8QQBEjEKCGhhbmRsaW5nGAsgASgLMh8ucHJvZHVjdC52MS5QYXJ0SGFuZGxpbmdQcm9maWxlEjkKE2V4dGVybmFsX3JlZmVyZW5jZXMYDCADKAsyHC5jb21tb24udjEuRXh0ZXJuYWxSZWZlcmVuY2USKwoGY3VzdG9tGA0gASgLMhsuY29tbW9uLnYxLkN1c3RvbVByb3BlcnRpZXMiPAoPUGFydERlZmluaXRpb25zEikKBWl0ZW1zGAEgAygLMhoucHJvZHVjdC52MS5QYXJ0RGVmaW5pdGlvbirLAgoIUGFydFR5cGUSGQoVUEFSVF9UWVBFX1VOU1BFQ0lGSUVEEAASFwoTUEFSVF9UWVBFX0NPTVBPTkVOVBABEhYKElBBUlRfVFlQRV9GQVNURU5FUhACEhkKFVBBUlRfVFlQRV9TVUJBU1NFTUJMWRADEhgKFFBBUlRfVFlQRV9DT05TVU1BQkxFEAQSEwoPUEFSVF9UWVBFX0xBQkVMEAUSFwoTUEFSVF9UWVBFX1BBQ0tBR0lORxAGEhEKDVBBUlRfVFlQRV9QQ0IQBxIiCh5QQVJUX1RZUEVfRUxFQ1RST05JQ19DT01QT05FTlQQCBIiCh5QQVJUX1RZUEVfRUxFQ1RSSUNBTF9DT01QT05FTlQQCRITCg9QQVJUX1RZUEVfQ0FCTEUQChIgChxQQVJUX1RZUEVfRElTUEVOU0VEX01BVEVSSUFMEAsqkQMKEE1hdGVyaWFsQ2F0ZWdvcnkSIQodTUFURVJJQUxfQ0FURUdPUllfVU5TUEVDSUZJRUQQABIbChdNQVRFUklBTF9DQVRFR09SWV9NRVRBTBABEh0KGU1BVEVSSUFMX0NBVEVHT1JZX1BPTFlNRVIQAhIfChtNQVRFUklBTF9DQVRFR09SWV9FTEFTVE9NRVIQAxIfChtNQVRFUklBTF9DQVRFR09SWV9DT01QT1NJVEUQBBIdChlNQVRFUklBTF9DQVRFR09SWV9DRVJBTUlDEAUSGwoXTUFURVJJQUxfQ0FURUdPUllfR0xBU1MQBhIaChZNQVRFUklBTF9DQVRFR09SWV9XT09EEAcSGgoWTUFURVJJQUxfQ0FURUdPUllfRk9BTRAIEisKJ01BVEVSSUFMX0NBVEVHT1JZX0VMRUNUUk9OSUNTX1NVQlNUUkFURRAJEh4KGk1BVEVSSUFMX0NBVEVHT1JZX0NIRU1JQ0FMEAoSGwoXTUFURVJJQUxfQ0FURUdPUllfT1RIRVIQY0KyAQoOY29tLnByb2R1Y3QudjFCE1BhcnREZWZpbml0aW9uUHJvdG9QAVo5Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3Byb2R1Y3QvdjE7cHJvZHVjdHYxogIDUFhYqgITTWVzc2FnZXMuUHJvZHVjdC5WMcoCClByb2R1Y3RcVjHiAhZQcm9kdWN0XFYxXEdQQk1ldGFkYXRh6gILUHJvZHVjdDo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_common_v1_custom_properties, file_common_v1_external_references, file_common_v1_key_value_constraint, file_validation_v1_predefined_string_rules]);
21
+ fileDesc("CiBwcm9kdWN0L3YxL3BhcnRfZGVmaW5pdGlvbi5wcm90bxIKcHJvZHVjdC52MSJmCgpEaW1lbnNpb25zEhwKBHhfbW0YASABKAFCDrpICxIJKQAAAAAAAAAAEhwKBHlfbW0YAiABKAFCDrpICxIJKQAAAAAAAAAAEhwKBHpfbW0YAyABKAFCDrpICxIJKQAAAAAAAAAAIlsKDE1hdGVyaWFsU3BlYxIuCghjYXRlZ29yeRgBIAEoDjIcLnByb2R1Y3QudjEuTWF0ZXJpYWxDYXRlZ29yeRIMCgRuYW1lGAIgASgJEg0KBWdyYWRlGAMgASgJIoQDChNQYXJ0SGFuZGxpbmdQcm9maWxlEg8KB2ZyYWdpbGUYASABKAgSFQoNZXNkX3NlbnNpdGl2ZRgCIAEoCBIeChZyZXF1aXJlc190d29faGFuZF9saWZ0GAMgASgIEiAKGHJlcXVpcmVzX2ZpeHR1cmVfc3VwcG9ydBgEIAEoCBIfChdwcmVfbHVicmljYXRpb25fcGFydF9pZBgFIAEoCRIgChhwb3N0X2x1YnJpY2F0aW9uX3BhcnRfaWQYBiABKAkSFwoPcmVxdWlyZXNfd2lwaW5nGAcgASgIEh8KF2luc3BlY3RfYmVmb3JlX2Fzc2VtYmxlGAggASgIEiEKGWluc3BlY3RfYWZ0ZXJfZGlzYXNzZW1ibGUYCSABKAgSGAoQbWF4X2dyaXBfZm9yY2VfbhgKIAEoARIVCg1tYXhfdG9ycXVlX25tGAsgASgBEjIKC2NvbnN0cmFpbnRzGAwgAygLMh0uY29tbW9uLnYxLktleVZhbHVlQ29uc3RyYWludCLKAwoOUGFydERlZmluaXRpb24SCgoCaWQYASABKAkSFwoEbmFtZRgCIAEoCUIJukgGcgSA8QQBEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSLAoEdHlwZRgFIAEoDjIULnByb2R1Y3QudjEuUGFydFR5cGVCCLpIBYIBAhABEg8KB3N1YnR5cGUYBiABKAkSGQoId2VpZ2h0X2cYByABKANCB7pIBCICKAASKgoKZGltZW5zaW9ucxgIIAEoCzIWLnByb2R1Y3QudjEuRGltZW5zaW9ucxIqCghtYXRlcmlhbBgJIAEoCzIYLnByb2R1Y3QudjEuTWF0ZXJpYWxTcGVjEiMKEGRlZmF1bHRfbW9kZWxfaWQYCiABKAlCCbpIBnIEiPEEARIxCghoYW5kbGluZxgLIAEoCzIfLnByb2R1Y3QudjEuUGFydEhhbmRsaW5nUHJvZmlsZRI5ChNleHRlcm5hbF9yZWZlcmVuY2VzGAwgAygLMhwuY29tbW9uLnYxLkV4dGVybmFsUmVmZXJlbmNlEisKBmN1c3RvbRgNIAEoCzIbLmNvbW1vbi52MS5DdXN0b21Qcm9wZXJ0aWVzIjwKD1BhcnREZWZpbml0aW9ucxIpCgVpdGVtcxgBIAMoCzIaLnByb2R1Y3QudjEuUGFydERlZmluaXRpb24qywIKCFBhcnRUeXBlEhkKFVBBUlRfVFlQRV9VTlNQRUNJRklFRBAAEhcKE1BBUlRfVFlQRV9DT01QT05FTlQQARIWChJQQVJUX1RZUEVfRkFTVEVORVIQAhIZChVQQVJUX1RZUEVfU1VCQVNTRU1CTFkQAxIYChRQQVJUX1RZUEVfQ09OU1VNQUJMRRAEEhMKD1BBUlRfVFlQRV9MQUJFTBAFEhcKE1BBUlRfVFlQRV9QQUNLQUdJTkcQBhIRCg1QQVJUX1RZUEVfUENCEAcSIgoeUEFSVF9UWVBFX0VMRUNUUk9OSUNfQ09NUE9ORU5UEAgSIgoeUEFSVF9UWVBFX0VMRUNUUklDQUxfQ09NUE9ORU5UEAkSEwoPUEFSVF9UWVBFX0NBQkxFEAoSIAocUEFSVF9UWVBFX0RJU1BFTlNFRF9NQVRFUklBTBALKpEDChBNYXRlcmlhbENhdGVnb3J5EiEKHU1BVEVSSUFMX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASGwoXTUFURVJJQUxfQ0FURUdPUllfTUVUQUwQARIdChlNQVRFUklBTF9DQVRFR09SWV9QT0xZTUVSEAISHwobTUFURVJJQUxfQ0FURUdPUllfRUxBU1RPTUVSEAMSHwobTUFURVJJQUxfQ0FURUdPUllfQ09NUE9TSVRFEAQSHQoZTUFURVJJQUxfQ0FURUdPUllfQ0VSQU1JQxAFEhsKF01BVEVSSUFMX0NBVEVHT1JZX0dMQVNTEAYSGgoWTUFURVJJQUxfQ0FURUdPUllfV09PRBAHEhoKFk1BVEVSSUFMX0NBVEVHT1JZX0ZPQU0QCBIrCidNQVRFUklBTF9DQVRFR09SWV9FTEVDVFJPTklDU19TVUJTVFJBVEUQCRIeChpNQVRFUklBTF9DQVRFR09SWV9DSEVNSUNBTBAKEhsKF01BVEVSSUFMX0NBVEVHT1JZX09USEVSEGNCsgEKDmNvbS5wcm9kdWN0LnYxQhNQYXJ0RGVmaW5pdGlvblByb3RvUAFaOWdpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9wcm9kdWN0L3YxO3Byb2R1Y3R2MaICA1BYWKoCE01lc3NhZ2VzLlByb2R1Y3QuVjHKAgpQcm9kdWN0XFYx4gIWUHJvZHVjdFxWMVxHUEJNZXRhZGF0YeoCC1Byb2R1Y3Q6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_common_v1_custom_properties, file_common_v1_external_references, file_common_v1_key_value_constraint, file_validation_v1_predefined_string_rules]);
22
22
 
23
23
  /**
24
24
  * @generated from message product.v1.Dimensions
@@ -119,17 +119,44 @@ export type PartHandlingProfile = Message<"product.v1.PartHandlingProfile"> & {
119
119
  requiresFixtureSupport: boolean;
120
120
 
121
121
  /**
122
- * @generated from field: double max_grip_force_n = 5;
122
+ * If set, if this part requires lubrication/greasing before/after being inserted. This can be used to automatically insert greasing step before/after insertion and cleaning during disassembly.
123
+ *
124
+ * @generated from field: string pre_lubrication_part_id = 5;
125
+ */
126
+ preLubricationPartId: string;
127
+
128
+ /**
129
+ * @generated from field: string post_lubrication_part_id = 6;
130
+ */
131
+ postLubricationPartId: string;
132
+
133
+ /**
134
+ * @generated from field: bool requires_wiping = 7;
135
+ */
136
+ requiresWiping: boolean;
137
+
138
+ /**
139
+ * @generated from field: bool inspect_before_assemble = 8;
140
+ */
141
+ inspectBeforeAssemble: boolean;
142
+
143
+ /**
144
+ * @generated from field: bool inspect_after_disassemble = 9;
145
+ */
146
+ inspectAfterDisassemble: boolean;
147
+
148
+ /**
149
+ * @generated from field: double max_grip_force_n = 10;
123
150
  */
124
151
  maxGripForceN: number;
125
152
 
126
153
  /**
127
- * @generated from field: double max_torque_nm = 6;
154
+ * @generated from field: double max_torque_nm = 11;
128
155
  */
129
156
  maxTorqueNm: number;
130
157
 
131
158
  /**
132
- * @generated from field: repeated common.v1.KeyValueConstraint constraints = 7;
159
+ * @generated from field: repeated common.v1.KeyValueConstraint constraints = 12;
133
160
  */
134
161
  constraints: KeyValueConstraint[];
135
162
  };
@@ -14,7 +14,7 @@ import type { Message } from "@bufbuild/protobuf";
14
14
  * Describes the file runtime/v1/sequence_run.proto.
15
15
  */
16
16
  export const file_runtime_v1_sequence_run: GenFile = /*@__PURE__*/
17
- fileDesc("Ch1ydW50aW1lL3YxL3NlcXVlbmNlX3J1bi5wcm90bxIKcnVudGltZS52MSLvAgoLU2VxdWVuY2VSdW4SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEiwKFnNlcXVlbmNlX2RlZmluaXRpb25faWQYBCABKAlCDLpICcgBAXIEqPIEARIpChZwYXJlbnRfc2VxdWVuY2VfcnVuX2lkGAUgASgJQgm6SAZyBJjyBAESHgoWY2hpbGRfc2VxdWVuY2VfcnVuX2lkcxgGIAMoCRIaChJjaGlsZF90YXNrX3J1bl9pZHMYByADKAkSOAoFc3RhdGUYCCABKA4yHC5ydW50aW1lLnYxLlNlcXVlbmNlUnVuU3RhdGVCC7pICMgBAYIBAhABEiAKD2NvbXBsZXRlZF90YXNrcxgJIAEoBUIHukgEGgIoABIZChFjYW5fYnVsa19jb21wbGV0ZRgKIAEoCBIsCg9hc3NpZ25lZF9hY3RvcnMYCyADKAsyEy5jb21tb24udjEuQWN0b3JSZWYiNgoMU2VxdWVuY2VSdW5zEiYKBWl0ZW1zGAEgAygLMhcucnVudGltZS52MS5TZXF1ZW5jZVJ1birXAQoQU2VxdWVuY2VSdW5TdGF0ZRIiCh5TRVFVRU5DRV9SVU5fU1RBVEVfVU5TUEVDSUZJRUQQABIgChxTRVFVRU5DRV9SVU5fU1RBVEVfTk9UX1JFQURZEAESHAoYU0VRVUVOQ0VfUlVOX1NUQVRFX1JFQURZEAISIgoeU0VRVUVOQ0VfUlVOX1NUQVRFX0lOX1BST0dSRVNTEAMSGwoXU0VRVUVOQ0VfUlVOX1NUQVRFX0RPTkUQBBIeChpTRVFVRU5DRV9SVU5fU1RBVEVfQUJPUlRFRBAFQq8BCg5jb20ucnVudGltZS52MUIQU2VxdWVuY2VSdW5Qcm90b1ABWjlnaXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvcnVudGltZS92MTtydW50aW1ldjGiAgNSWFiqAhNNZXNzYWdlcy5SdW50aW1lLlYxygIKUnVudGltZVxWMeICFlJ1bnRpbWVcVjFcR1BCTWV0YWRhdGHqAgtSdW50aW1lOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_common_v1_actor, file_validation_v1_predefined_string_rules]);
17
+ fileDesc("Ch1ydW50aW1lL3YxL3NlcXVlbmNlX3J1bi5wcm90bxIKcnVudGltZS52MSKPAwoLU2VxdWVuY2VSdW4SCgoCaWQYASABKAkSDAoEbmFtZRgCIAEoCRIMCgRpY29uGAMgASgJEiwKFnNlcXVlbmNlX2RlZmluaXRpb25faWQYBCABKAlCDLpICcgBAXIEqPIEARIpChZwYXJlbnRfc2VxdWVuY2VfcnVuX2lkGAUgASgJQgm6SAZyBJDyBAESLgoWY2hpbGRfc2VxdWVuY2VfcnVuX2lkcxgGIAMoCUIOukgLkgEIIgZyBJDyBAESKgoSY2hpbGRfdGFza19ydW5faWRzGAcgAygJQg66SAuSAQgiBnIEmPIEARI4CgVzdGF0ZRgIIAEoDjIcLnJ1bnRpbWUudjEuU2VxdWVuY2VSdW5TdGF0ZUILukgIyAEBggECEAESIAoPY29tcGxldGVkX3Rhc2tzGAkgASgFQge6SAQaAigAEhkKEWNhbl9idWxrX2NvbXBsZXRlGAogASgIEiwKD2Fzc2lnbmVkX2FjdG9ycxgLIAMoCzITLmNvbW1vbi52MS5BY3RvclJlZiI2CgxTZXF1ZW5jZVJ1bnMSJgoFaXRlbXMYASADKAsyFy5ydW50aW1lLnYxLlNlcXVlbmNlUnVuKtcBChBTZXF1ZW5jZVJ1blN0YXRlEiIKHlNFUVVFTkNFX1JVTl9TVEFURV9VTlNQRUNJRklFRBAAEiAKHFNFUVVFTkNFX1JVTl9TVEFURV9OT1RfUkVBRFkQARIcChhTRVFVRU5DRV9SVU5fU1RBVEVfUkVBRFkQAhIiCh5TRVFVRU5DRV9SVU5fU1RBVEVfSU5fUFJPR1JFU1MQAxIbChdTRVFVRU5DRV9SVU5fU1RBVEVfRE9ORRAEEh4KGlNFUVVFTkNFX1JVTl9TVEFURV9BQk9SVEVEEAVCrwEKDmNvbS5ydW50aW1lLnYxQhBTZXF1ZW5jZVJ1blByb3RvUAFaOWdpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9ydW50aW1lL3YxO3J1bnRpbWV2MaICA1JYWKoCE01lc3NhZ2VzLlJ1bnRpbWUuVjHKAgpSdW50aW1lXFYx4gIWUnVudGltZVxWMVxHUEJNZXRhZGF0YeoCC1J1bnRpbWU6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_common_v1_actor, file_validation_v1_predefined_string_rules]);
18
18
 
19
19
  /**
20
20
  * @generated from message runtime.v1.SequenceRun
@@ -0,0 +1,68 @@
1
+ // @generated by protoc-gen-es v2.10.2 with parameter "target=ts,import_extension=ts"
2
+ // @generated from file seed/v1/seed_file.proto (package seed.v1, syntax proto3)
3
+ /* eslint-disable */
4
+
5
+ import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
+ import type { Message } from "@bufbuild/protobuf";
8
+
9
+ /**
10
+ * Describes the file seed/v1/seed_file.proto.
11
+ */
12
+ export const file_seed_v1_seed_file: GenFile = /*@__PURE__*/
13
+ fileDesc("ChdzZWVkL3YxL3NlZWRfZmlsZS5wcm90bxIHc2VlZC52MSJVCghTZWVkRmlsZRIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEgwKBGljb24YAyABKAkSEwoLZGVzY3JpcHRpb24YBCABKAkSDAoEZmlsZRgFIAEoCSItCglTZWVkRmlsZXMSIAoFaXRlbXMYASADKAsyES5zZWVkLnYxLlNlZWRGaWxlQpcBCgtjb20uc2VlZC52MUINU2VlZEZpbGVQcm90b1ABWjNnaXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvc2VlZC92MTtzZWVkdjGiAgNTWFiqAhBNZXNzYWdlcy5TZWVkLlYxygIHU2VlZFxWMeICE1NlZWRcVjFcR1BCTWV0YWRhdGHqAghTZWVkOjpWMWIGcHJvdG8z");
14
+
15
+ /**
16
+ * @generated from message seed.v1.SeedFile
17
+ */
18
+ export type SeedFile = Message<"seed.v1.SeedFile"> & {
19
+ /**
20
+ * @generated from field: string id = 1;
21
+ */
22
+ id: string;
23
+
24
+ /**
25
+ * @generated from field: string name = 2;
26
+ */
27
+ name: string;
28
+
29
+ /**
30
+ * @generated from field: string icon = 3;
31
+ */
32
+ icon: string;
33
+
34
+ /**
35
+ * @generated from field: string description = 4;
36
+ */
37
+ description: string;
38
+
39
+ /**
40
+ * @generated from field: string file = 5;
41
+ */
42
+ file: string;
43
+ };
44
+
45
+ /**
46
+ * Describes the message seed.v1.SeedFile.
47
+ * Use `create(SeedFileSchema)` to create a new message.
48
+ */
49
+ export const SeedFileSchema: GenMessage<SeedFile> = /*@__PURE__*/
50
+ messageDesc(file_seed_v1_seed_file, 0);
51
+
52
+ /**
53
+ * @generated from message seed.v1.SeedFiles
54
+ */
55
+ export type SeedFiles = Message<"seed.v1.SeedFiles"> & {
56
+ /**
57
+ * @generated from field: repeated seed.v1.SeedFile items = 1;
58
+ */
59
+ items: SeedFile[];
60
+ };
61
+
62
+ /**
63
+ * Describes the message seed.v1.SeedFiles.
64
+ * Use `create(SeedFilesSchema)` to create a new message.
65
+ */
66
+ export const SeedFilesSchema: GenMessage<SeedFiles> = /*@__PURE__*/
67
+ messageDesc(file_seed_v1_seed_file, 1);
68
+
@@ -0,0 +1,224 @@
1
+ // @generated by protoc-gen-es v2.10.2 with parameter "target=ts,import_extension=ts"
2
+ // @generated from file seed/v1/seed_request.proto (package seed.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 type { Message } from "@bufbuild/protobuf";
8
+
9
+ /**
10
+ * Describes the file seed/v1/seed_request.proto.
11
+ */
12
+ export const file_seed_v1_seed_request: GenFile = /*@__PURE__*/
13
+ fileDesc("ChpzZWVkL3YxL3NlZWRfcmVxdWVzdC5wcm90bxIHc2VlZC52MSKWAQoPU2F2ZVNlZWRSZXF1ZXN0EgwKBG5hbWUYASABKAkSDAoEaWNvbhgCIAEoCRITCgtkZXNjcmlwdGlvbhgDIAEoCRIoCgdpbmNsdWRlGAQgAygOMhcuc2VlZC52MS5TYXZlU2VlZEVudGl0eRIoCgdleGNsdWRlGAUgAygOMhcuc2VlZC52MS5TYXZlU2VlZEVudGl0eSIdCg9Mb2FkU2VlZFJlcXVlc3QSCgoCaWQYASABKAkq5AcKDlNhdmVTZWVkRW50aXR5EiAKHFNBVkVfU0VFRF9FTlRJVFlfVU5TUEVDSUZJRUQQABIaChZTQVZFX1NFRURfRU5USVRZX0xJTkVTEAESGgoWU0FWRV9TRUVEX0VOVElUWV9DRUxMUxACEh0KGVNBVkVfU0VFRF9FTlRJVFlfU1RBVElPTlMQAxIcChhTQVZFX1NFRURfRU5USVRZX1dPUktFUlMQChImCiJTQVZFX1NFRURfRU5USVRZX1JPQk9UX0RFRklOSVRJT05TEAsSJAogU0FWRV9TRUVEX0VOVElUWV9ST0JPVF9JTlNUQU5DRVMQDBIbChdTQVZFX1NFRURfRU5USVRZX1NLSUxMUxANEiEKHVNBVkVfU0VFRF9FTlRJVFlfQUNUT1JfU0tJTExTEA4SHAoYU0FWRV9TRUVEX0VOVElUWV9ERVZJQ0VTEA8SGwoXU0FWRV9TRUVEX0VOVElUWV9NT0RFTFMQFBImCiJTQVZFX1NFRURfRU5USVRZX0FTU0VUX0RFRklOSVRJT05TEB4SJAogU0FWRV9TRUVEX0VOVElUWV9BU1NFVF9JTlNUQU5DRVMQHxIqCiZTQVZFX1NFRURfRU5USVRZX0NPTlRBSU5FUl9ERUZJTklUSU9OUxAgEigKJFNBVkVfU0VFRF9FTlRJVFlfQ09OVEFJTkVSX0lOU1RBTkNFUxAhEiUKIVNBVkVfU0VFRF9FTlRJVFlfVE9PTF9ERUZJTklUSU9OUxAiEiMKH1NBVkVfU0VFRF9FTlRJVFlfVE9PTF9JTlNUQU5DRVMQIxIcChhTQVZFX1NFRURfRU5USVRZX01BUktFUlMQJBIlCiFTQVZFX1NFRURfRU5USVRZX1BBUlRfREVGSU5JVElPTlMQKBIjCh9TQVZFX1NFRURfRU5USVRZX1BBUlRfSU5TVEFOQ0VTECkSHQoZU0FWRV9TRUVEX0VOVElUWV9QUk9EVUNUUxAqEhwKGFNBVkVfU0VFRF9FTlRJVFlfUkVDSVBFUxArEh4KGlNBVkVfU0VFRF9FTlRJVFlfU0VRVUVOQ0VTECwSGgoWU0FWRV9TRUVEX0VOVElUWV9UQVNLUxAtEh4KGlNBVkVfU0VFRF9FTlRJVFlfUFJPQ0VTU0VTEDISIgoeU0FWRV9TRUVEX0VOVElUWV9TRVFVRU5DRV9SVU5TEDMSHgoaU0FWRV9TRUVEX0VOVElUWV9UQVNLX1JVTlMQNBIdChlTQVZFX1NFRURfRU5USVRZX0ZFRURCQUNLEDwSHAoYU0FWRV9TRUVEX0VOVElUWV9BQ1RJT05TED1CmgEKC2NvbS5zZWVkLnYxQhBTZWVkUmVxdWVzdFByb3RvUAFaM2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9zZWVkL3YxO3NlZWR2MaICA1NYWKoCEE1lc3NhZ2VzLlNlZWQuVjHKAgdTZWVkXFYx4gITU2VlZFxWMVxHUEJNZXRhZGF0YeoCCFNlZWQ6OlYxYgZwcm90bzM");
14
+
15
+ /**
16
+ * @generated from message seed.v1.SaveSeedRequest
17
+ */
18
+ export type SaveSeedRequest = Message<"seed.v1.SaveSeedRequest"> & {
19
+ /**
20
+ * @generated from field: string name = 1;
21
+ */
22
+ name: string;
23
+
24
+ /**
25
+ * @generated from field: string icon = 2;
26
+ */
27
+ icon: string;
28
+
29
+ /**
30
+ * @generated from field: string description = 3;
31
+ */
32
+ description: string;
33
+
34
+ /**
35
+ * @generated from field: repeated seed.v1.SaveSeedEntity include = 4;
36
+ */
37
+ include: SaveSeedEntity[];
38
+
39
+ /**
40
+ * @generated from field: repeated seed.v1.SaveSeedEntity exclude = 5;
41
+ */
42
+ exclude: SaveSeedEntity[];
43
+ };
44
+
45
+ /**
46
+ * Describes the message seed.v1.SaveSeedRequest.
47
+ * Use `create(SaveSeedRequestSchema)` to create a new message.
48
+ */
49
+ export const SaveSeedRequestSchema: GenMessage<SaveSeedRequest> = /*@__PURE__*/
50
+ messageDesc(file_seed_v1_seed_request, 0);
51
+
52
+ /**
53
+ * @generated from message seed.v1.LoadSeedRequest
54
+ */
55
+ export type LoadSeedRequest = Message<"seed.v1.LoadSeedRequest"> & {
56
+ /**
57
+ * @generated from field: string id = 1;
58
+ */
59
+ id: string;
60
+ };
61
+
62
+ /**
63
+ * Describes the message seed.v1.LoadSeedRequest.
64
+ * Use `create(LoadSeedRequestSchema)` to create a new message.
65
+ */
66
+ export const LoadSeedRequestSchema: GenMessage<LoadSeedRequest> = /*@__PURE__*/
67
+ messageDesc(file_seed_v1_seed_request, 1);
68
+
69
+ /**
70
+ * @generated from enum seed.v1.SaveSeedEntity
71
+ */
72
+ export enum SaveSeedEntity {
73
+ /**
74
+ * @generated from enum value: SAVE_SEED_ENTITY_UNSPECIFIED = 0;
75
+ */
76
+ UNSPECIFIED = 0,
77
+
78
+ /**
79
+ * @generated from enum value: SAVE_SEED_ENTITY_LINES = 1;
80
+ */
81
+ LINES = 1,
82
+
83
+ /**
84
+ * @generated from enum value: SAVE_SEED_ENTITY_CELLS = 2;
85
+ */
86
+ CELLS = 2,
87
+
88
+ /**
89
+ * @generated from enum value: SAVE_SEED_ENTITY_STATIONS = 3;
90
+ */
91
+ STATIONS = 3,
92
+
93
+ /**
94
+ * @generated from enum value: SAVE_SEED_ENTITY_WORKERS = 10;
95
+ */
96
+ WORKERS = 10,
97
+
98
+ /**
99
+ * @generated from enum value: SAVE_SEED_ENTITY_ROBOT_DEFINITIONS = 11;
100
+ */
101
+ ROBOT_DEFINITIONS = 11,
102
+
103
+ /**
104
+ * @generated from enum value: SAVE_SEED_ENTITY_ROBOT_INSTANCES = 12;
105
+ */
106
+ ROBOT_INSTANCES = 12,
107
+
108
+ /**
109
+ * @generated from enum value: SAVE_SEED_ENTITY_SKILLS = 13;
110
+ */
111
+ SKILLS = 13,
112
+
113
+ /**
114
+ * @generated from enum value: SAVE_SEED_ENTITY_ACTOR_SKILLS = 14;
115
+ */
116
+ ACTOR_SKILLS = 14,
117
+
118
+ /**
119
+ * @generated from enum value: SAVE_SEED_ENTITY_DEVICES = 15;
120
+ */
121
+ DEVICES = 15,
122
+
123
+ /**
124
+ * @generated from enum value: SAVE_SEED_ENTITY_MODELS = 20;
125
+ */
126
+ MODELS = 20,
127
+
128
+ /**
129
+ * @generated from enum value: SAVE_SEED_ENTITY_ASSET_DEFINITIONS = 30;
130
+ */
131
+ ASSET_DEFINITIONS = 30,
132
+
133
+ /**
134
+ * @generated from enum value: SAVE_SEED_ENTITY_ASSET_INSTANCES = 31;
135
+ */
136
+ ASSET_INSTANCES = 31,
137
+
138
+ /**
139
+ * @generated from enum value: SAVE_SEED_ENTITY_CONTAINER_DEFINITIONS = 32;
140
+ */
141
+ CONTAINER_DEFINITIONS = 32,
142
+
143
+ /**
144
+ * @generated from enum value: SAVE_SEED_ENTITY_CONTAINER_INSTANCES = 33;
145
+ */
146
+ CONTAINER_INSTANCES = 33,
147
+
148
+ /**
149
+ * @generated from enum value: SAVE_SEED_ENTITY_TOOL_DEFINITIONS = 34;
150
+ */
151
+ TOOL_DEFINITIONS = 34,
152
+
153
+ /**
154
+ * @generated from enum value: SAVE_SEED_ENTITY_TOOL_INSTANCES = 35;
155
+ */
156
+ TOOL_INSTANCES = 35,
157
+
158
+ /**
159
+ * @generated from enum value: SAVE_SEED_ENTITY_MARKERS = 36;
160
+ */
161
+ MARKERS = 36,
162
+
163
+ /**
164
+ * @generated from enum value: SAVE_SEED_ENTITY_PART_DEFINITIONS = 40;
165
+ */
166
+ PART_DEFINITIONS = 40,
167
+
168
+ /**
169
+ * @generated from enum value: SAVE_SEED_ENTITY_PART_INSTANCES = 41;
170
+ */
171
+ PART_INSTANCES = 41,
172
+
173
+ /**
174
+ * @generated from enum value: SAVE_SEED_ENTITY_PRODUCTS = 42;
175
+ */
176
+ PRODUCTS = 42,
177
+
178
+ /**
179
+ * @generated from enum value: SAVE_SEED_ENTITY_RECIPES = 43;
180
+ */
181
+ RECIPES = 43,
182
+
183
+ /**
184
+ * @generated from enum value: SAVE_SEED_ENTITY_SEQUENCES = 44;
185
+ */
186
+ SEQUENCES = 44,
187
+
188
+ /**
189
+ * @generated from enum value: SAVE_SEED_ENTITY_TASKS = 45;
190
+ */
191
+ TASKS = 45,
192
+
193
+ /**
194
+ * @generated from enum value: SAVE_SEED_ENTITY_PROCESSES = 50;
195
+ */
196
+ PROCESSES = 50,
197
+
198
+ /**
199
+ * @generated from enum value: SAVE_SEED_ENTITY_SEQUENCE_RUNS = 51;
200
+ */
201
+ SEQUENCE_RUNS = 51,
202
+
203
+ /**
204
+ * @generated from enum value: SAVE_SEED_ENTITY_TASK_RUNS = 52;
205
+ */
206
+ TASK_RUNS = 52,
207
+
208
+ /**
209
+ * @generated from enum value: SAVE_SEED_ENTITY_FEEDBACK = 60;
210
+ */
211
+ FEEDBACK = 60,
212
+
213
+ /**
214
+ * @generated from enum value: SAVE_SEED_ENTITY_ACTIONS = 61;
215
+ */
216
+ ACTIONS = 61,
217
+ }
218
+
219
+ /**
220
+ * Describes the enum seed.v1.SaveSeedEntity.
221
+ */
222
+ export const SaveSeedEntitySchema: GenEnum<SaveSeedEntity> = /*@__PURE__*/
223
+ enumDesc(file_seed_v1_seed_request, 0);
224
+
@@ -11,7 +11,7 @@ import { file_buf_validate_validate } from "../../buf/validate/validate_pb.ts";
11
11
  * Describes the file validation/v1/predefined_string_rules.proto.
12
12
  */
13
13
  export const file_validation_v1_predefined_string_rules: GenFile = /*@__PURE__*/
14
- fileDesc("Cit2YWxpZGF0aW9uL3YxL3ByZWRlZmluZWRfc3RyaW5nX3J1bGVzLnByb3RvEg12YWxpZGF0aW9uLnYxOrEBCg5uYW1lX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiQTiABKAhCbsJIawppChVzdHJpbmcubmFtZV9jb21wb25lbnQSKk5hbWUgbXVzdCBoYXZlIGJldHdlZW4gMSBhbmQgNjQgY2hhcmFjdGVycxokdGhpcy5zaXplKCkgPiAwICYmIHRoaXMuc2l6ZSgpIDw9IDY0Ug1uYW1lQ29tcG9uZW50OroBChJtb2RlbF9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYkU4gASgIQnDCSG0KawoZc3RyaW5nLm1vZGVsX2lkX2NvbXBvbmVudBIjdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgbW9kZWwgaWQaKSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnbW9kZWwtJykpUhBtb2RlbElkQ29tcG9uZW50OswBChZhcl9jb25maWdfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJJOIAEoCEJ7wkh4CnYKHXN0cmluZy5hcl9jb25maWdfaWRfY29tcG9uZW50EiZ0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBBUkNvbmZpZyBpZBotKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdhcl9jb25maWctJykpUhNhckNvbmZpZ0lkQ29tcG9uZW50OskBChVwcm9wZXJ0eV9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYk04gASgIQnnCSHYKdAocc3RyaW5nLnByb3BlcnR5X2lkX2NvbXBvbmVudBImdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcHJvcGVydHkgaWQaLCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncHJvcGVydHktJykpUhNwcm9wZXJ0eUlkQ29tcG9uZW50OvMBCh1yb2JvdF9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiUTiABKAhCkwHCSI8BCowBCiRzdHJpbmcucm9ib3RfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSLnRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHJvYm90IGRlZmluaXRpb24gaWQaNCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncm9ib3RfZGVmaW5pdGlvbi0nKSlSGnJvYm90RGVmaW5pdGlvbklkQ29tcG9uZW50OukBChtyb2JvdF9pbnN0YW5jZV9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYlU4gASgIQo0BwkiJAQqGAQoic3RyaW5nLnJvYm90X2luc3RhbmNlX2lkX2NvbXBvbmVudBIsdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcm9ib3QgaW5zdGFuY2UgaWQaMih0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncm9ib3RfaW5zdGFuY2UtJykpUhhyb2JvdEluc3RhbmNlSWRDb21wb25lbnQ68wEKHWFzc2V0X2RlZmluaXRpb25faWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJZOIAEoCEKTAcJIjwEKjAEKJHN0cmluZy5hc3NldF9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIudGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgYXNzZXQgZGVmaW5pdGlvbiBpZBo0KHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdhc3NldF9kZWZpbml0aW9uLScpKVIaYXNzZXREZWZpbml0aW9uSWRDb21wb25lbnQ66QEKG2Fzc2V0X2luc3RhbmNlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiXTiABKAhCjQHCSIkBCoYBCiJzdHJpbmcuYXNzZXRfaW5zdGFuY2VfaWRfY29tcG9uZW50Eix0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBhc3NldCBpbnN0YW5jZSBpZBoyKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdhc3NldF9pbnN0YW5jZS0nKSlSGGFzc2V0SW5zdGFuY2VJZENvbXBvbmVudDrZAQoYZW52aXJvbm1lbnRfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJhOIAEoCEKCAcJIfwp9Ch9zdHJpbmcuZW52aXJvbm1lbnRfaWRfY29tcG9uZW50Eil0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBlbnZpcm9ubWVudCBpZBovKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdlbnZpcm9ubWVudC0nKSlSFmVudmlyb25tZW50SWRDb21wb25lbnQ67gEKHHBhcnRfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYmU4gASgIQpABwkiMAQqJAQojc3RyaW5nLnBhcnRfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSLXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHBhcnQgZGVmaW5pdGlvbiBpZBozKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdwYXJ0X2RlZmluaXRpb24tJykpUhlwYXJ0RGVmaW5pdGlvbklkQ29tcG9uZW50OuQBChpwYXJ0X2luc3RhbmNlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiaTiABKAhCigHCSIYBCoMBCiFzdHJpbmcucGFydF9pbnN0YW5jZV9pZF9jb21wb25lbnQSK3RoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHBhcnQgaW5zdGFuY2UgaWQaMSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncGFydF9pbnN0YW5jZS0nKSlSF3BhcnRJbnN0YW5jZUlkQ29tcG9uZW50Ou4BChx0b29sX2RlZmluaXRpb25faWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJtOIAEoCEKQAcJIjAEKiQEKI3N0cmluZy50b29sX2RlZmluaXRpb25faWRfY29tcG9uZW50Ei10aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSB0b29sIGRlZmluaXRpb24gaWQaMyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgndG9vbF9kZWZpbml0aW9uLScpKVIZdG9vbERlZmluaXRpb25JZENvbXBvbmVudDrPAQoadG9vbF9pbnN0YW5jZV9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYnE4gASgIQnbCSHMKcQoYc3RyaW5nLnRvb2xfaWRfY29tcG9uZW50EiJ0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSB0b29sIGlkGjEodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3Rvb2xfaW5zdGFuY2UtJykpUhd0b29sSW5zdGFuY2VJZENvbXBvbmVudDq/AQoTbWFya2VyX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxidTiABKAhCc8JIcApuChpzdHJpbmcubWFya2VyX2lkX2NvbXBvbmVudBIkdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgbWFya2VyIGlkGioodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ21hcmtlci0nKSlSEW1hcmtlcklkQ29tcG9uZW50OsQBChRmaXh0dXJlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxieTiABKAhCdsJIcwpxChtzdHJpbmcuZml4dHVyZV9pZF9jb21wb25lbnQSJXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGZpeHR1cmUgaWQaKyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnZml4dHVyZS0nKSlSEmZpeHR1cmVJZENvbXBvbmVudDrEAQoUc3RhdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYn04gASgIQnbCSHMKcQobc3RyaW5nLnN0YXRpb25faWRfY29tcG9uZW50EiV0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBzdGF0aW9uIGlkGisodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3N0YXRpb24tJykpUhJzdGF0aW9uSWRDb21wb25lbnQ6ugEKEnNraWxsX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxigTiABKAhCcMJIbQprChlzdHJpbmcuc2tpbGxfaWRfY29tcG9uZW50EiN0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBza2lsbCBpZBopKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdza2lsbC0nKSlSEHNraWxsSWRDb21wb25lbnQ62AEKGHByb2Nlc3NfcnVuX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxihTiABKAhCggHCSH8KfQofc3RyaW5nLnByb2Nlc3NfcnVuX2lkX2NvbXBvbmVudBIpdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcHJvY2VzcyBydW4gaWQaLyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncHJvY2Vzc19ydW4tJykpUhVwcm9jZXNzUnVuSWRDb21wb25lbnQ63wEKGXNlcXVlbmNlX3J1bl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYok4gASgIQocBwkiDAQqAAQogc3RyaW5nLnNlcXVlbmNlX3J1bl9pZF9jb21wb25lbnQSKnRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHNlcXVlbmNlIHJ1biBpZBowKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdzZXF1ZW5jZV9ydW4tJykpUhZzZXF1ZW5jZVJ1bklkQ29tcG9uZW50OsgBChV0YXNrX3J1bl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYo04gASgIQnnCSHYKdAocc3RyaW5nLnRhc2tfcnVuX2lkX2NvbXBvbmVudBImdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgdGFzayBydW4gaWQaLCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgndGFza19ydW4tJykpUhJ0YXNrUnVuSWRDb21wb25lbnQ66QEKG3Byb2Nlc3NfcmVjaXBlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxikTiABKAhCjQHCSIkBCoYBCiJzdHJpbmcucHJvY2Vzc19yZWNpcGVfaWRfY29tcG9uZW50Eix0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBwcm9jZXNzIHJlY2lwZSBpZBoyKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdwcm9jZXNzX3JlY2lwZS0nKSlSGHByb2Nlc3NSZWNpcGVJZENvbXBvbmVudDqCAgogc2VxdWVuY2VfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYpU4gASgIQpwBwkiYAQqVAQonc3RyaW5nLnNlcXVlbmNlX2RlZmluaXRpb25faWRfY29tcG9uZW50EjF0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBzZXF1ZW5jZSBkZWZpbml0aW9uIGlkGjcodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3NlcXVlbmNlX2RlZmluaXRpb24tJykpUh1zZXF1ZW5jZURlZmluaXRpb25JZENvbXBvbmVudDruAQocdGFza19kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcximTiABKAhCkAHCSIwBCokBCiNzdHJpbmcudGFza19kZWZpbml0aW9uX2lkX2NvbXBvbmVudBItdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgdGFzayBkZWZpbml0aW9uIGlkGjModGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3Rhc2tfZGVmaW5pdGlvbi0nKSlSGXRhc2tEZWZpbml0aW9uSWRDb21wb25lbnQ6tQEKEWNlbGxfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKdOIAEoCEJtwkhqCmgKGHN0cmluZy5jZWxsX2lkX2NvbXBvbmVudBIidGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgY2VsbCBpZBooKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdjZWxsLScpKVIPY2VsbElkQ29tcG9uZW50OrUBChFsaW5lX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxioTiABKAhCbcJIagpoChhzdHJpbmcubGluZV9pZF9jb21wb25lbnQSInRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGxpbmUgaWQaKCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnbGluZS0nKSlSD2xpbmVJZENvbXBvbmVudDqHAgohY29udGFpbmVyX2RlZmluaXRpb25faWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKlOIAEoCEKfAcJImwEKmAEKKHN0cmluZy5jb250YWluZXJfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSMnRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGNvbnRhaW5lciBkZWZpbml0aW9uIGlkGjgodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2NvbnRhaW5lcl9kZWZpbml0aW9uLScpKVIeY29udGFpbmVyRGVmaW5pdGlvbklkQ29tcG9uZW50OvoBCh9jb250YWluZXJfaW5zdGFuY2VfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLqNBiABKAhClQHCSJEBCo4BCiJzdHJpbmcucm9ib3RfaW5zdGFuY2VfaWRfY29tcG9uZW50EjB0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBjb250YWluZXIgaW5zdGFuY2UgaWQaNih0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnY29udGFpbmVyX2luc3RhbmNlLScpKVIcY29udGFpbmVySW5zdGFuY2VJZENvbXBvbmVudDrAAQoTd29ya2VyX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi7jQYgASgIQnPCSHAKbgoac3RyaW5nLndvcmtlcl9pZF9jb21wb25lbnQSJHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHdvcmtlciBpZBoqKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCd3b3JrZXItJykpUhF3b3JrZXJJZENvbXBvbmVudEK1AQoRY29tLnZhbGlkYXRpb24udjFCGlByZWRlZmluZWRTdHJpbmdSdWxlc1Byb3RvUAFaP2dpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy92YWxpZGF0aW9uL3YxO3ZhbGlkYXRpb252MaICA1ZYWMoCDVZhbGlkYXRpb25cVjHiAhlWYWxpZGF0aW9uXFYxXEdQQk1ldGFkYXRh6gIOVmFsaWRhdGlvbjo6VjE", [file_buf_validate_validate]);
14
+ fileDesc("Cit2YWxpZGF0aW9uL3YxL3ByZWRlZmluZWRfc3RyaW5nX3J1bGVzLnByb3RvEg12YWxpZGF0aW9uLnYxOrEBCg5uYW1lX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiQTiABKAhCbsJIawppChVzdHJpbmcubmFtZV9jb21wb25lbnQSKk5hbWUgbXVzdCBoYXZlIGJldHdlZW4gMSBhbmQgNjQgY2hhcmFjdGVycxokdGhpcy5zaXplKCkgPiAwICYmIHRoaXMuc2l6ZSgpIDw9IDY0Ug1uYW1lQ29tcG9uZW50OroBChJtb2RlbF9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYkU4gASgIQnDCSG0KawoZc3RyaW5nLm1vZGVsX2lkX2NvbXBvbmVudBIjdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgbW9kZWwgaWQaKSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnbW9kZWwtJykpUhBtb2RlbElkQ29tcG9uZW50OswBChZhcl9jb25maWdfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJJOIAEoCEJ7wkh4CnYKHXN0cmluZy5hcl9jb25maWdfaWRfY29tcG9uZW50EiZ0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBBUkNvbmZpZyBpZBotKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdhcl9jb25maWctJykpUhNhckNvbmZpZ0lkQ29tcG9uZW50OskBChVwcm9wZXJ0eV9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYk04gASgIQnnCSHYKdAocc3RyaW5nLnByb3BlcnR5X2lkX2NvbXBvbmVudBImdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcHJvcGVydHkgaWQaLCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncHJvcGVydHktJykpUhNwcm9wZXJ0eUlkQ29tcG9uZW50OvMBCh1yb2JvdF9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiUTiABKAhCkwHCSI8BCowBCiRzdHJpbmcucm9ib3RfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSLnRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHJvYm90IGRlZmluaXRpb24gaWQaNCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncm9ib3RfZGVmaW5pdGlvbi0nKSlSGnJvYm90RGVmaW5pdGlvbklkQ29tcG9uZW50OukBChtyb2JvdF9pbnN0YW5jZV9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYlU4gASgIQo0BwkiJAQqGAQoic3RyaW5nLnJvYm90X2luc3RhbmNlX2lkX2NvbXBvbmVudBIsdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcm9ib3QgaW5zdGFuY2UgaWQaMih0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncm9ib3RfaW5zdGFuY2UtJykpUhhyb2JvdEluc3RhbmNlSWRDb21wb25lbnQ68wEKHWFzc2V0X2RlZmluaXRpb25faWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJZOIAEoCEKTAcJIjwEKjAEKJHN0cmluZy5hc3NldF9kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIudGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgYXNzZXQgZGVmaW5pdGlvbiBpZBo0KHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdhc3NldF9kZWZpbml0aW9uLScpKVIaYXNzZXREZWZpbml0aW9uSWRDb21wb25lbnQ66QEKG2Fzc2V0X2luc3RhbmNlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiXTiABKAhCjQHCSIkBCoYBCiJzdHJpbmcuYXNzZXRfaW5zdGFuY2VfaWRfY29tcG9uZW50Eix0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBhc3NldCBpbnN0YW5jZSBpZBoyKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdhc3NldF9pbnN0YW5jZS0nKSlSGGFzc2V0SW5zdGFuY2VJZENvbXBvbmVudDrZAQoYZW52aXJvbm1lbnRfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJhOIAEoCEKCAcJIfwp9Ch9zdHJpbmcuZW52aXJvbm1lbnRfaWRfY29tcG9uZW50Eil0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBlbnZpcm9ubWVudCBpZBovKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdlbnZpcm9ubWVudC0nKSlSFmVudmlyb25tZW50SWRDb21wb25lbnQ67gEKHHBhcnRfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYmU4gASgIQpABwkiMAQqJAQojc3RyaW5nLnBhcnRfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSLXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHBhcnQgZGVmaW5pdGlvbiBpZBozKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdwYXJ0X2RlZmluaXRpb24tJykpUhlwYXJ0RGVmaW5pdGlvbklkQ29tcG9uZW50OuQBChpwYXJ0X2luc3RhbmNlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxiaTiABKAhCigHCSIYBCoMBCiFzdHJpbmcucGFydF9pbnN0YW5jZV9pZF9jb21wb25lbnQSK3RoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHBhcnQgaW5zdGFuY2UgaWQaMSh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncGFydF9pbnN0YW5jZS0nKSlSF3BhcnRJbnN0YW5jZUlkQ29tcG9uZW50Ou4BChx0b29sX2RlZmluaXRpb25faWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGJtOIAEoCEKQAcJIjAEKiQEKI3N0cmluZy50b29sX2RlZmluaXRpb25faWRfY29tcG9uZW50Ei10aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSB0b29sIGRlZmluaXRpb24gaWQaMyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgndG9vbF9kZWZpbml0aW9uLScpKVIZdG9vbERlZmluaXRpb25JZENvbXBvbmVudDrPAQoadG9vbF9pbnN0YW5jZV9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYnE4gASgIQnbCSHMKcQoYc3RyaW5nLnRvb2xfaWRfY29tcG9uZW50EiJ0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSB0b29sIGlkGjEodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3Rvb2xfaW5zdGFuY2UtJykpUhd0b29sSW5zdGFuY2VJZENvbXBvbmVudDq/AQoTbWFya2VyX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxidTiABKAhCc8JIcApuChpzdHJpbmcubWFya2VyX2lkX2NvbXBvbmVudBIkdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgbWFya2VyIGlkGioodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ21hcmtlci0nKSlSEW1hcmtlcklkQ29tcG9uZW50OsQBChRmaXh0dXJlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxieTiABKAhCdsJIcwpxChtzdHJpbmcuZml4dHVyZV9pZF9jb21wb25lbnQSJXRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGZpeHR1cmUgaWQaKyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnZml4dHVyZS0nKSlSEmZpeHR1cmVJZENvbXBvbmVudDrEAQoUc3RhdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYn04gASgIQnbCSHMKcQobc3RyaW5nLnN0YXRpb25faWRfY29tcG9uZW50EiV0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBzdGF0aW9uIGlkGisodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3N0YXRpb24tJykpUhJzdGF0aW9uSWRDb21wb25lbnQ6ugEKEnNraWxsX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxigTiABKAhCcMJIbQprChlzdHJpbmcuc2tpbGxfaWRfY29tcG9uZW50EiN0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBza2lsbCBpZBopKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdza2lsbC0nKSlSEHNraWxsSWRDb21wb25lbnQ62AEKGHByb2Nlc3NfcnVuX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxihTiABKAhCggHCSH8KfQofc3RyaW5nLnByb2Nlc3NfcnVuX2lkX2NvbXBvbmVudBIpdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcHJvY2VzcyBydW4gaWQaLyh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgncHJvY2Vzc19ydW4tJykpUhVwcm9jZXNzUnVuSWRDb21wb25lbnQ63wEKGXNlcXVlbmNlX3J1bl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYok4gASgIQocBwkiDAQqAAQogc3RyaW5nLnNlcXVlbmNlX3J1bl9pZF9jb21wb25lbnQSKnRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHNlcXVlbmNlIHJ1biBpZBowKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdzZXF1ZW5jZV9ydW4tJykpUhZzZXF1ZW5jZVJ1bklkQ29tcG9uZW50OsgBChV0YXNrX3J1bl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYo04gASgIQnnCSHYKdAocc3RyaW5nLnRhc2tfcnVuX2lkX2NvbXBvbmVudBImdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgdGFzayBydW4gaWQaLCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgndGFza19ydW4tJykpUhJ0YXNrUnVuSWRDb21wb25lbnQ66QEKG3Byb2Nlc3NfcmVjaXBlX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxikTiABKAhCjQHCSIkBCoYBCiJzdHJpbmcucHJvY2Vzc19yZWNpcGVfaWRfY29tcG9uZW50Eix0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBwcm9jZXNzIHJlY2lwZSBpZBoyKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdwcm9jZXNzX3JlY2lwZS0nKSlSGHByb2Nlc3NSZWNpcGVJZENvbXBvbmVudDqCAgogc2VxdWVuY2VfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYpU4gASgIQpwBwkiYAQqVAQonc3RyaW5nLnNlcXVlbmNlX2RlZmluaXRpb25faWRfY29tcG9uZW50EjF0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBzZXF1ZW5jZSBkZWZpbml0aW9uIGlkGjcodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3NlcXVlbmNlX2RlZmluaXRpb24tJykpUh1zZXF1ZW5jZURlZmluaXRpb25JZENvbXBvbmVudDruAQocdGFza19kZWZpbml0aW9uX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcximTiABKAhCkAHCSIwBCokBCiNzdHJpbmcudGFza19kZWZpbml0aW9uX2lkX2NvbXBvbmVudBItdGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgdGFzayBkZWZpbml0aW9uIGlkGjModGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ3Rhc2tfZGVmaW5pdGlvbi0nKSlSGXRhc2tEZWZpbml0aW9uSWRDb21wb25lbnQ6tQEKEWNlbGxfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKdOIAEoCEJtwkhqCmgKGHN0cmluZy5jZWxsX2lkX2NvbXBvbmVudBIidGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgY2VsbCBpZBooKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdjZWxsLScpKVIPY2VsbElkQ29tcG9uZW50OrUBChFsaW5lX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxioTiABKAhCbcJIagpoChhzdHJpbmcubGluZV9pZF9jb21wb25lbnQSInRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGxpbmUgaWQaKCh0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnbGluZS0nKSlSD2xpbmVJZENvbXBvbmVudDqHAgohY29udGFpbmVyX2RlZmluaXRpb25faWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGKlOIAEoCEKfAcJImwEKmAEKKHN0cmluZy5jb250YWluZXJfZGVmaW5pdGlvbl9pZF9jb21wb25lbnQSMnRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIGNvbnRhaW5lciBkZWZpbml0aW9uIGlkGjgodGhpcyA9PSAnJyB8fCB0aGlzLnN0YXJ0c1dpdGgoJ2NvbnRhaW5lcl9kZWZpbml0aW9uLScpKVIeY29udGFpbmVyRGVmaW5pdGlvbklkQ29tcG9uZW50OvoBCh9jb250YWluZXJfaW5zdGFuY2VfaWRfY29tcG9uZW50EhkuYnVmLnZhbGlkYXRlLlN0cmluZ1J1bGVzGLqNBiABKAhClQHCSJEBCo4BCiJzdHJpbmcucm9ib3RfaW5zdGFuY2VfaWRfY29tcG9uZW50EjB0aGlzIGRvZXMgbm90IHNlZW0gdG8gYmUgYSBjb250YWluZXIgaW5zdGFuY2UgaWQaNih0aGlzID09ICcnIHx8IHRoaXMuc3RhcnRzV2l0aCgnY29udGFpbmVyX2luc3RhbmNlLScpKVIcY29udGFpbmVySW5zdGFuY2VJZENvbXBvbmVudDrAAQoTd29ya2VyX2lkX2NvbXBvbmVudBIZLmJ1Zi52YWxpZGF0ZS5TdHJpbmdSdWxlcxi7jQYgASgIQnPCSHAKbgoac3RyaW5nLndvcmtlcl9pZF9jb21wb25lbnQSJHRoaXMgZG9lcyBub3Qgc2VlbSB0byBiZSBhIHdvcmtlciBpZBoqKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCd3b3JrZXItJykpUhF3b3JrZXJJZENvbXBvbmVudDrFAQoUcHJvZHVjdF9pZF9jb21wb25lbnQSGS5idWYudmFsaWRhdGUuU3RyaW5nUnVsZXMYvI0GIAEoCEJ2wkhzCnEKG3N0cmluZy5wcm9kdWN0X2lkX2NvbXBvbmVudBIldGhpcyBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgcHJvZHVjdCBpZBorKHRoaXMgPT0gJycgfHwgdGhpcy5zdGFydHNXaXRoKCdwcm9kdWN0LScpKVIScHJvZHVjdElkQ29tcG9uZW50QrUBChFjb20udmFsaWRhdGlvbi52MUIaUHJlZGVmaW5lZFN0cmluZ1J1bGVzUHJvdG9QAVo/Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3ZhbGlkYXRpb24vdjE7dmFsaWRhdGlvbnYxogIDVlhYygINVmFsaWRhdGlvblxWMeICGVZhbGlkYXRpb25cVjFcR1BCTWV0YWRhdGHqAg5WYWxpZGF0aW9uOjpWMQ", [file_buf_validate_validate]);
15
15
 
16
16
  /**
17
17
  * @generated from extension: optional bool name_component = 10000;
@@ -181,3 +181,9 @@ export const container_instance_id_component: GenExtension<StringRules, boolean>
181
181
  export const worker_id_component: GenExtension<StringRules, boolean> = /*@__PURE__*/
182
182
  extDesc(file_validation_v1_predefined_string_rules, 27);
183
183
 
184
+ /**
185
+ * @generated from extension: optional bool product_id_component = 100028;
186
+ */
187
+ export const product_id_component: GenExtension<StringRules, boolean> = /*@__PURE__*/
188
+ extDesc(file_validation_v1_predefined_string_rules, 28);
189
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cobotar/protocol",
3
- "version": "0.19.14",
3
+ "version": "0.19.16",
4
4
  "description": "A collection of protobuf messages for the CobotAR-project",
5
5
  "homepage": "https://github.com/cobotar/protocol#readme",
6
6
  "files": [