@cobotar/protocol 0.20.6 → 0.20.7

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.20.6
4
+ Current version: 0.20.7
5
5
 
6
6
  ## Documentation
7
7
  Find it here: [documentation/README.md](documentation/README.md)
@@ -0,0 +1,61 @@
1
+ // @generated by protoc-gen-es v2.10.2 with parameter "target=ts,import_extension=ts"
2
+ // @generated from file common/v1/clone.proto (package common.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 common/v1/clone.proto.
11
+ */
12
+ export const file_common_v1_clone: GenFile = /*@__PURE__*/
13
+ fileDesc("ChVjb21tb24vdjEvY2xvbmUucHJvdG8SCWNvbW1vbi52MSJtCgxDbG9uZU1lc3NhZ2USEwoLb3JpZ2luYWxfaWQYASABKAkSDAoEbmFtZRgDIAEoCRIMCgRpY29uGAQgASgJEhMKC2Rlc2NyaXB0aW9uGAUgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgKIAEoCUKiAQoNY29tLmNvbW1vbi52MUIKQ2xvbmVQcm90b1ABWjdnaXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvY29tbW9uL3YxO2NvbW1vbnYxogIDQ1hYqgISTWVzc2FnZXMuQ29tbW9uLlYxygIJQ29tbW9uXFYx4gIVQ29tbW9uXFYxXEdQQk1ldGFkYXRh6gIKQ29tbW9uOjpWMWIGcHJvdG8z");
14
+
15
+ /**
16
+ * @generated from message common.v1.CloneMessage
17
+ */
18
+ export type CloneMessage = Message<"common.v1.CloneMessage"> & {
19
+ /**
20
+ * Id of the entity to be deleted
21
+ *
22
+ * @generated from field: string original_id = 1;
23
+ */
24
+ originalId: string;
25
+
26
+ /**
27
+ * Optional name override for the clone.
28
+ *
29
+ * @generated from field: string name = 3;
30
+ */
31
+ name: string;
32
+
33
+ /**
34
+ * Optional icon override for the clone.
35
+ *
36
+ * @generated from field: string icon = 4;
37
+ */
38
+ icon: string;
39
+
40
+ /**
41
+ * Optional description override for the clone.
42
+ *
43
+ * @generated from field: string description = 5;
44
+ */
45
+ description: string;
46
+
47
+ /**
48
+ * Optional client-generated key to make retries safe.
49
+ *
50
+ * @generated from field: string idempotency_key = 10;
51
+ */
52
+ idempotencyKey: string;
53
+ };
54
+
55
+ /**
56
+ * Describes the message common.v1.CloneMessage.
57
+ * Use `create(CloneMessageSchema)` to create a new message.
58
+ */
59
+ export const CloneMessageSchema: GenMessage<CloneMessage> = /*@__PURE__*/
60
+ messageDesc(file_common_v1_clone, 0);
61
+
@@ -49,11 +49,15 @@ export type EstimatedDuration = Message<"common.v1.EstimatedDuration"> & {
49
49
  nominalSeconds: number;
50
50
 
51
51
  /**
52
+ * Expected lower bound in seconds
53
+ *
52
54
  * @generated from field: int32 min_seconds = 2;
53
55
  */
54
56
  minSeconds: number;
55
57
 
56
58
  /**
59
+ * Expected upper bound in seconds
60
+ *
57
61
  * @generated from field: int32 max_seconds = 3;
58
62
  */
59
63
  maxSeconds: number;
@@ -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("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]);
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]);
40
40
 
41
41
  /**
42
42
  * @generated from message process.v1.ProductTarget
@@ -279,12 +279,17 @@ export type TaskExecutionPolicy = Message<"process.v1.TaskExecutionPolicy"> & {
279
279
  canUndo: boolean;
280
280
 
281
281
  /**
282
- * @generated from field: common.v1.EstimatedDuration estimated_duration = 5;
282
+ * @generated from field: common.v1.EstimatedDuration estimated_human_duration = 5;
283
283
  */
284
- estimatedDuration?: EstimatedDuration;
284
+ estimatedHumanDuration?: EstimatedDuration;
285
285
 
286
286
  /**
287
- * @generated from field: bool require_full_guidance = 6;
287
+ * @generated from field: common.v1.EstimatedDuration estimated_robot_duration = 6;
288
+ */
289
+ estimatedRobotDuration?: EstimatedDuration;
290
+
291
+ /**
292
+ * @generated from field: bool require_full_guidance = 7;
288
293
  */
289
294
  requireFullGuidance: boolean;
290
295
  };
@@ -297,6 +302,11 @@ export const TaskExecutionPolicySchema: GenMessage<TaskExecutionPolicy> = /*@__P
297
302
  messageDesc(file_process_v1_task_definition, 6);
298
303
 
299
304
  /**
305
+ * TaskOverride applies small variant-specific adjustments to a task that remains
306
+ * semantically the same operation. Use TaskDefinition.applicability and separate
307
+ * task definitions when a variant requires a materially different operation,
308
+ * tool, skill, safety classification, or sequence structure.
309
+ *
300
310
  * @generated from message process.v1.TaskOverride
301
311
  */
302
312
  export type TaskOverride = Message<"process.v1.TaskOverride"> & {
@@ -306,19 +316,32 @@ export type TaskOverride = Message<"process.v1.TaskOverride"> & {
306
316
  when: VariantRule[];
307
317
 
308
318
  /**
319
+ * Variant-specific instruction text.
320
+ *
309
321
  * @generated from field: string instruction_text = 2;
310
322
  */
311
323
  instructionText: string;
312
324
 
313
325
  /**
314
- * @generated from field: string target_node_id = 3;
326
+ * Variant-specific target, e.g. a different colored part occurrence
327
+ *
328
+ * @generated from field: process.v1.TaskTarget target = 3;
315
329
  */
316
- targetNodeId: string;
330
+ target?: TaskTarget;
317
331
 
318
332
  /**
319
- * @generated from field: geometry.v1.Vector3 approach = 4;
333
+ * Variant-specific insertion offset.
334
+ *
335
+ * @generated from field: geometry.v1.Vector3 insertion_offset = 4;
320
336
  */
321
- approach?: Vector3;
337
+ insertionOffset?: Vector3;
338
+
339
+ /**
340
+ * Variant-specific approach offset.
341
+ *
342
+ * @generated from field: geometry.v1.Vector3 approach_offset = 5;
343
+ */
344
+ approachOffset?: Vector3;
322
345
  };
323
346
 
324
347
  /**
@@ -450,13 +473,15 @@ export type TaskDefinition = Message<"process.v1.TaskDefinition"> & {
450
473
  destination?: TaskEndpoint;
451
474
 
452
475
  /**
453
- * Applies if any rule matches. Empty means always applicable.
476
+ * Task applies if any rule matches. Empty means always applicable.
454
477
  *
455
478
  * @generated from field: repeated variance.v1.VariantRule applicability = 21;
456
479
  */
457
480
  applicability: VariantRule[];
458
481
 
459
482
  /**
483
+ * adjust small authoring/runtime details when the task is otherwise the same task.
484
+ *
460
485
  * @generated from field: repeated process.v1.TaskOverride overrides = 22;
461
486
  */
462
487
  overrides: TaskOverride[];
@@ -20,7 +20,7 @@ import type { Message } from "@bufbuild/protobuf";
20
20
  * Describes the file product/v1/assembly_node.proto.
21
21
  */
22
22
  export const file_product_v1_assembly_node: GenFile = /*@__PURE__*/
23
- fileDesc("Ch5wcm9kdWN0L3YxL2Fzc2VtYmx5X25vZGUucHJvdG8SCnByb2R1Y3QudjEimQQKDEFzc2VtYmx5Tm9kZRIKCgJpZBgBIAEoCRIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESFgoOcGFyZW50X25vZGVfaWQYAyABKAkSLwoEa2luZBgEIAEoDjIULnByb2R1Y3QudjEuTm9kZUtpbmRCC7pICMgBAYIBAhABEhoKEnBhcnRfZGVmaW5pdGlvbl9pZBgFIAEoCRIZChFvdmVycmlkZV9tb2RlbF9pZBgGIAEoCRIlCgpsb2NhbF9wb3NlGAcgASgLMhEuZ2VvbWV0cnkudjEuUG9zZRIVCg1zZXF1ZW5jZV9oaW50GAkgASgFEhsKE2NhZF9vY2N1cnJlbmNlX3BhdGgYCiABKAkSMAoQam9pbl9tZXRob2RfaGludBgLIAEoDjIWLnByb2R1Y3QudjEuSm9pbk1ldGhvZBIzChVpbnNlcnRpb25fb2Zmc2V0X2hpbnQYDCABKAsyFC5nZW9tZXRyeS52MS5WZWN0b3IzEjIKFGFwcHJvYWNoX29mZnNldF9oaW50GA0gASgLMhQuZ2VvbWV0cnkudjEuVmVjdG9yMxIQCghvcHRpb25hbBgOIAEoCBIvCg1hcHBsaWNhYmlsaXR5GA8gAygLMhgudmFyaWFuY2UudjEuVmFyaWFudFJ1bGUSKwoGY3VzdG9tGBAgASgLMhsuY29tbW9uLnYxLkN1c3RvbVByb3BlcnRpZXMqlgEKCE5vZGVLaW5kEhkKFU5PREVfS0lORF9VTlNQRUNJRklFRBAAEhMKD05PREVfS0lORF9HUk9VUBABEh0KGU5PREVfS0lORF9QQVJUX09DQ1VSUkVOQ0UQAhIkCiBOT0RFX0tJTkRfU1VCQVNTRU1CTFlfT0NDVVJSRU5DRRADEhUKEU5PREVfS0lORF9QQVRURVJOEAQq0wEKCkpvaW5NZXRob2QSGwoXSk9JTl9NRVRIT0RfVU5TUEVDSUZJRUQQABIUChBKT0lOX01FVEhPRF9OT05FEAESFgoSSk9JTl9NRVRIT0RfRkFTVEVOEAISGQoVSk9JTl9NRVRIT0RfUFJFU1NfRklUEAMSGAoUSk9JTl9NRVRIT0RfU05BUF9GSVQQBBIYChRKT0lOX01FVEhPRF9BREhFU0lWRRAFEhQKEEpPSU5fTUVUSE9EX1dFTEQQBhIVChFKT0lOX01FVEhPRF9QTEFDRRAHQrABCg5jb20ucHJvZHVjdC52MUIRQXNzZW1ibHlOb2RlUHJvdG9QAVo5Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3Byb2R1Y3QvdjE7cHJvZHVjdHYxogIDUFhYqgITTWVzc2FnZXMuUHJvZHVjdC5WMcoCClByb2R1Y3RcVjHiAhZQcm9kdWN0XFYxXEdQQk1ldGFkYXRh6gILUHJvZHVjdDo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_common_v1_custom_properties, file_geometry_v1_pose, file_geometry_v1_vector3, file_validation_v1_predefined_string_rules, file_variance_v1_variant_rule]);
23
+ fileDesc("Ch5wcm9kdWN0L3YxL2Fzc2VtYmx5X25vZGUucHJvdG8SCnByb2R1Y3QudjEihwcKDEFzc2VtYmx5Tm9kZRIKCgJpZBgBIAEoCRIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESFgoOcGFyZW50X25vZGVfaWQYAyABKAkSLwoEa2luZBgEIAEoDjIULnByb2R1Y3QudjEuTm9kZUtpbmRCC7pICMgBAYIBAhABEhoKEnBhcnRfZGVmaW5pdGlvbl9pZBgFIAEoCRIZChFvdmVycmlkZV9tb2RlbF9pZBgGIAEoCRIlCgpsb2NhbF9wb3NlGAcgASgLMhEuZ2VvbWV0cnkudjEuUG9zZRIVCg1zZXF1ZW5jZV9oaW50GAkgASgFEhsKE2NhZF9vY2N1cnJlbmNlX3BhdGgYCiABKAkSMAoQam9pbl9tZXRob2RfaGludBgLIAEoDjIWLnByb2R1Y3QudjEuSm9pbk1ldGhvZBIzChVpbnNlcnRpb25fb2Zmc2V0X2hpbnQYDCABKAsyFC5nZW9tZXRyeS52MS5WZWN0b3IzEjIKFGFwcHJvYWNoX29mZnNldF9oaW50GA0gASgLMhQuZ2VvbWV0cnkudjEuVmVjdG9yMxIQCghvcHRpb25hbBgOIAEoCBIvCg1hcHBsaWNhYmlsaXR5GA8gAygLMhgudmFyaWFuY2UudjEuVmFyaWFudFJ1bGUSKwoGY3VzdG9tGBAgASgLMhsuY29tbW9uLnYxLkN1c3RvbVByb3BlcnRpZXM66wK6SOcCGpEBCjFhc3NlbWJseV9ub2RlLmdyb3VwX211c3Rfbm90X2hhdmVfcGFydF9kZWZpbml0aW9uEitHUk9VUCBub2RlcyBtdXN0IG5vdCBzZXQgcGFydF9kZWZpbml0aW9uX2lkGi90aGlzLmtpbmQgIT0gMSB8fCB0aGlzLnBhcnRfZGVmaW5pdGlvbl9pZCA9PSAnJxrQAQo6YXNzZW1ibHlfbm9kZS5waHlzaWNhbF9vY2N1cnJlbmNlX3JlcXVpcmVzX3BhcnRfZGVmaW5pdGlvbhJMUEFSVF9PQ0NVUlJFTkNFIGFuZCBTVUJBU1NFTUJMWV9PQ0NVUlJFTkNFIG5vZGVzIG11c3Qgc2V0IHBhcnRfZGVmaW5pdGlvbl9pZBpEISh0aGlzLmtpbmQgPT0gMiB8fCB0aGlzLmtpbmQgPT0gMykgfHwgdGhpcy5wYXJ0X2RlZmluaXRpb25faWQgIT0gJycqfwoITm9kZUtpbmQSGQoVTk9ERV9LSU5EX1VOU1BFQ0lGSUVEEAASEwoPTk9ERV9LSU5EX0dST1VQEAESHQoZTk9ERV9LSU5EX1BBUlRfT0NDVVJSRU5DRRACEiQKIE5PREVfS0lORF9TVUJBU1NFTUJMWV9PQ0NVUlJFTkNFEAMq0wEKCkpvaW5NZXRob2QSGwoXSk9JTl9NRVRIT0RfVU5TUEVDSUZJRUQQABIUChBKT0lOX01FVEhPRF9OT05FEAESFgoSSk9JTl9NRVRIT0RfRkFTVEVOEAISGQoVSk9JTl9NRVRIT0RfUFJFU1NfRklUEAMSGAoUSk9JTl9NRVRIT0RfU05BUF9GSVQQBBIYChRKT0lOX01FVEhPRF9BREhFU0lWRRAFEhQKEEpPSU5fTUVUSE9EX1dFTEQQBhIVChFKT0lOX01FVEhPRF9QTEFDRRAHQrABCg5jb20ucHJvZHVjdC52MUIRQXNzZW1ibHlOb2RlUHJvdG9QAVo5Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3Byb2R1Y3QvdjE7cHJvZHVjdHYxogIDUFhYqgITTWVzc2FnZXMuUHJvZHVjdC5WMcoCClByb2R1Y3RcVjHiAhZQcm9kdWN0XFYxXEdQQk1ldGFkYXRh6gILUHJvZHVjdDo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_common_v1_custom_properties, file_geometry_v1_pose, file_geometry_v1_vector3, file_validation_v1_predefined_string_rules, file_variance_v1_variant_rule]);
24
24
 
25
25
  /**
26
26
  * @generated from message product.v1.AssemblyNode
@@ -128,48 +128,47 @@ export const AssemblyNodeSchema: GenMessage<AssemblyNode> = /*@__PURE__*/
128
128
  messageDesc(file_product_v1_assembly_node, 0);
129
129
 
130
130
  /**
131
- * NodeKind defines what kind of structural element the AssemblyNode is in the assembly hierarchy
131
+ * NodeKind defines what kind of structural element an AssemblyNode represents in the product structure.
132
+ *
133
+ * CAD patterns should currently be expanded into individual PART_OCCURRENCE nodes, or represented as a
134
+ * GROUP containing those occurrences. A dedicated PATTERN kind should only be reintroduced if the
135
+ * protocol also gains fields that describe the pattern rule, count, spacing, transform, and contained
136
+ * occurrence template.
132
137
  * NodeKind Represents Physical part? Has children?
133
- * GROUP logical grouping ❌ yes
134
- * PART_OCCURRENCE single physical part instance ✅ usually no
135
- * SUBASSEMBLY_OCCURRENCE assembly containing parts ✅ yes
136
- * PATTERN repeated pattern structure ❌ (structure) yes
138
+ * GROUP logical grouping ❌ ✅
139
+ * PART_OCCURRENCE single physical part instance ✅ ❌
140
+ * SUBASSEMBLY_OCCURRENCE assembly containing parts ✅ ✅
137
141
  *
138
142
  * @generated from enum product.v1.NodeKind
139
143
  */
140
144
  export enum NodeKind {
141
145
  /**
146
+ * Valid messages must use a specific kind.
147
+ *
142
148
  * @generated from enum value: NODE_KIND_UNSPECIFIED = 0;
143
149
  */
144
150
  UNSPECIFIED = 0,
145
151
 
146
152
  /**
147
- * A logical group node that does not correspond to a real physical part or subassembly. It exist only to organize the structure. Typical uses: CAD folders, BOM groupings, organizing fasteners, grouping operations, AR guidance grouping. part_definition_id should usually be empty.
153
+ * Logical grouping node with no physical part of its own. Useful for CAD folders, BOM groups, fastener groups, operation groups, or AR guidance groups.
148
154
  *
149
155
  * @generated from enum value: NODE_KIND_GROUP = 1;
150
156
  */
151
157
  GROUP = 1,
152
158
 
153
159
  /**
154
- * The most common node type which is a single instance of a physical part used in the product as it references a PartDefinition. part_definition_id = required, child_node-Ids = empty.
160
+ * Single physical occurrence of a PartDefinition. Has no children and should set part_definition_id.
155
161
  *
156
162
  * @generated from enum value: NODE_KIND_PART_OCCURRENCE = 2;
157
163
  */
158
164
  PART_OCCURRENCE = 2,
159
165
 
160
166
  /**
161
- * A subassembly occurrence is a part that itself contains other parts. Thus a component that has its own internal structure. A subassembly is a real product structure (e.g. a Door assembly for a car) where group is a logical grouping. It usually appears in the BOM and often references a PartDefinition.
167
+ * Physical occurrence of an assembly that contains parts itself, hence it have child nodes. References a PartDefinition for the subassembly itself.
162
168
  *
163
169
  * @generated from enum value: NODE_KIND_SUBASSEMBLY_OCCURRENCE = 3;
164
170
  */
165
171
  SUBASSEMBLY_OCCURRENCE = 3,
166
-
167
- /**
168
- * A repeated pattern of parts created by CAD pattern features. Examples: bolt circle, linear pattern, hole array, repeated clips, repeated LEDs. Instead of listing every occurrence individually, the CAD may represent them as a pattern. Thus a pattern is a special kind of group?
169
- *
170
- * @generated from enum value: NODE_KIND_PATTERN = 4;
171
- */
172
- PATTERN = 4,
173
172
  }
174
173
 
175
174
  /**
@@ -183,41 +182,57 @@ export const NodeKindSchema: GenEnum<NodeKind> = /*@__PURE__*/
183
182
  */
184
183
  export enum JoinMethod {
185
184
  /**
185
+ * No join method hint is available. Generation/planning should infer the operation from other data if possible.
186
+ *
186
187
  * @generated from enum value: JOIN_METHOD_UNSPECIFIED = 0;
187
188
  */
188
189
  UNSPECIFIED = 0,
189
190
 
190
191
  /**
192
+ * No physical joining operation is expected for this node, e.g. a logical grouping or already-integrated occurrence.
193
+ *
191
194
  * @generated from enum value: JOIN_METHOD_NONE = 1;
192
195
  */
193
196
  NONE = 1,
194
197
 
195
198
  /**
199
+ * Part is joined using a fastener such as a screw, bolt, nut, rivet, clip, or similar hardware.
200
+ *
196
201
  * @generated from enum value: JOIN_METHOD_FASTEN = 2;
197
202
  */
198
203
  FASTEN = 2,
199
204
 
200
205
  /**
206
+ * Part is joined by interference/friction fit and usually requires controlled insertion force.
207
+ *
201
208
  * @generated from enum value: JOIN_METHOD_PRESS_FIT = 3;
202
209
  */
203
210
  PRESS_FIT = 3,
204
211
 
205
212
  /**
213
+ * Part is joined by elastic snap features and usually requires alignment followed by a snap-in motion.
214
+ *
206
215
  * @generated from enum value: JOIN_METHOD_SNAP_FIT = 4;
207
216
  */
208
217
  SNAP_FIT = 4,
209
218
 
210
219
  /**
220
+ * Part is joined using glue, tape, sealant, or another bonding material.
221
+ *
211
222
  * @generated from enum value: JOIN_METHOD_ADHESIVE = 5;
212
223
  */
213
224
  ADHESIVE = 5,
214
225
 
215
226
  /**
227
+ * Part is joined by welding or another permanent thermal/material fusion process.
228
+ *
216
229
  * @generated from enum value: JOIN_METHOD_WELD = 6;
217
230
  */
218
231
  WELD = 6,
219
232
 
220
233
  /**
234
+ * Part is placed at its final pose without an explicit joining operation beyond positioning.
235
+ *
221
236
  * @generated from enum value: JOIN_METHOD_PLACE = 7;
222
237
  */
223
238
  PLACE = 7,
@@ -11,6 +11,8 @@ import type { ExternalReference } from "../../common/v1/external_references_pb.t
11
11
  import { file_common_v1_external_references } from "../../common/v1/external_references_pb.ts";
12
12
  import type { KeyValueConstraint } from "../../common/v1/key_value_constraint_pb.ts";
13
13
  import { file_common_v1_key_value_constraint } from "../../common/v1/key_value_constraint_pb.ts";
14
+ import type { EstimatedDuration } from "../../common/v1/time_pb.ts";
15
+ import { file_common_v1_time } from "../../common/v1/time_pb.ts";
14
16
  import { file_validation_v1_predefined_string_rules } from "../../validation/v1/predefined_string_rules_pb.ts";
15
17
  import type { Message } from "@bufbuild/protobuf";
16
18
 
@@ -18,7 +20,7 @@ import type { Message } from "@bufbuild/protobuf";
18
20
  * Describes the file product/v1/part_definition.proto.
19
21
  */
20
22
  export const file_product_v1_part_definition: GenFile = /*@__PURE__*/
21
- fileDesc("CiBwcm9kdWN0L3YxL3BhcnRfZGVmaW5pdGlvbi5wcm90bxIKcHJvZHVjdC52MSJmCgpEaW1lbnNpb25zEhwKBHhfbW0YASABKAFCDrpICxIJKQAAAAAAAAAAEhwKBHlfbW0YAiABKAFCDrpICxIJKQAAAAAAAAAAEhwKBHpfbW0YAyABKAFCDrpICxIJKQAAAAAAAAAAIlsKDE1hdGVyaWFsU3BlYxIuCghjYXRlZ29yeRgBIAEoDjIcLnByb2R1Y3QudjEuTWF0ZXJpYWxDYXRlZ29yeRIMCgRuYW1lGAIgASgJEg0KBWdyYWRlGAMgASgJIqkDChNQYXJ0SGFuZGxpbmdQcm9maWxlEg8KB2ZyYWdpbGUYASABKAgSFQoNZXNkX3NlbnNpdGl2ZRgCIAEoCBIeChZyZXF1aXJlc190d29faGFuZF9saWZ0GAMgASgIEiMKG3JlcXVpcmVzX2xpZnRpbmdfYXNzaXN0YW5jZRgEIAEoCBIgChhyZXF1aXJlc19maXh0dXJlX3N1cHBvcnQYBSABKAgSHwoXcHJlX2x1YnJpY2F0aW9uX3BhcnRfaWQYBiABKAkSIAoYcG9zdF9sdWJyaWNhdGlvbl9wYXJ0X2lkGAcgASgJEhcKD3JlcXVpcmVzX3dpcGluZxgIIAEoCBIfChdpbnNwZWN0X2JlZm9yZV9hc3NlbWJsZRgJIAEoCBIhChlpbnNwZWN0X2FmdGVyX2Rpc2Fzc2VtYmxlGAogASgIEhgKEG1heF9ncmlwX2ZvcmNlX24YCyABKAESFQoNbWF4X3RvcnF1ZV9ubRgMIAEoARIyCgtjb25zdHJhaW50cxgNIAMoCzIdLmNvbW1vbi52MS5LZXlWYWx1ZUNvbnN0cmFpbnQi2wMKDlBhcnREZWZpbml0aW9uEgoKAmlkGAEgASgJEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiwKBHR5cGUYBSABKA4yFC5wcm9kdWN0LnYxLlBhcnRUeXBlQgi6SAWCAQIQARIPCgdzdWJ0eXBlGAYgASgJEhkKCHdlaWdodF9nGAcgASgDQge6SAQiAigAEioKCmRpbWVuc2lvbnMYCCABKAsyFi5wcm9kdWN0LnYxLkRpbWVuc2lvbnMSKgoIbWF0ZXJpYWwYCSABKAsyGC5wcm9kdWN0LnYxLk1hdGVyaWFsU3BlYxIjChBkZWZhdWx0X21vZGVsX2lkGAogASgJQgm6SAZyBIjxBAESMQoIaGFuZGxpbmcYCyABKAsyHy5wcm9kdWN0LnYxLlBhcnRIYW5kbGluZ1Byb2ZpbGUSOQoTZXh0ZXJuYWxfcmVmZXJlbmNlcxgMIAMoCzIcLmNvbW1vbi52MS5FeHRlcm5hbFJlZmVyZW5jZRIrCgZjdXN0b20YDSABKAsyGy5jb21tb24udjEuQ3VzdG9tUHJvcGVydGllcxIPCgd2ZXJzaW9uGA4gASgJIjwKD1BhcnREZWZpbml0aW9ucxIpCgVpdGVtcxgBIAMoCzIaLnByb2R1Y3QudjEuUGFydERlZmluaXRpb24qywIKCFBhcnRUeXBlEhkKFVBBUlRfVFlQRV9VTlNQRUNJRklFRBAAEhcKE1BBUlRfVFlQRV9DT01QT05FTlQQARIWChJQQVJUX1RZUEVfRkFTVEVORVIQAhIZChVQQVJUX1RZUEVfU1VCQVNTRU1CTFkQAxIYChRQQVJUX1RZUEVfQ09OU1VNQUJMRRAEEhMKD1BBUlRfVFlQRV9MQUJFTBAFEhcKE1BBUlRfVFlQRV9QQUNLQUdJTkcQBhIRCg1QQVJUX1RZUEVfUENCEAcSIgoeUEFSVF9UWVBFX0VMRUNUUk9OSUNfQ09NUE9ORU5UEAgSIgoeUEFSVF9UWVBFX0VMRUNUUklDQUxfQ09NUE9ORU5UEAkSEwoPUEFSVF9UWVBFX0NBQkxFEAoSIAocUEFSVF9UWVBFX0RJU1BFTlNFRF9NQVRFUklBTBALKpEDChBNYXRlcmlhbENhdGVnb3J5EiEKHU1BVEVSSUFMX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASGwoXTUFURVJJQUxfQ0FURUdPUllfTUVUQUwQARIdChlNQVRFUklBTF9DQVRFR09SWV9QT0xZTUVSEAISHwobTUFURVJJQUxfQ0FURUdPUllfRUxBU1RPTUVSEAMSHwobTUFURVJJQUxfQ0FURUdPUllfQ09NUE9TSVRFEAQSHQoZTUFURVJJQUxfQ0FURUdPUllfQ0VSQU1JQxAFEhsKF01BVEVSSUFMX0NBVEVHT1JZX0dMQVNTEAYSGgoWTUFURVJJQUxfQ0FURUdPUllfV09PRBAHEhoKFk1BVEVSSUFMX0NBVEVHT1JZX0ZPQU0QCBIrCidNQVRFUklBTF9DQVRFR09SWV9FTEVDVFJPTklDU19TVUJTVFJBVEUQCRIeChpNQVRFUklBTF9DQVRFR09SWV9DSEVNSUNBTBAKEhsKF01BVEVSSUFMX0NBVEVHT1JZX09USEVSEGNCsgEKDmNvbS5wcm9kdWN0LnYxQhNQYXJ0RGVmaW5pdGlvblByb3RvUAFaOWdpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9wcm9kdWN0L3YxO3Byb2R1Y3R2MaICA1BYWKoCE01lc3NhZ2VzLlByb2R1Y3QuVjHKAgpQcm9kdWN0XFYx4gIWUHJvZHVjdFxWMVxHUEJNZXRhZGF0YeoCC1Byb2R1Y3Q6OlYxYgZwcm90bzM", [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]);
23
+ fileDesc("CiBwcm9kdWN0L3YxL3BhcnRfZGVmaW5pdGlvbi5wcm90bxIKcHJvZHVjdC52MSJmCgpEaW1lbnNpb25zEhwKBHhfbW0YASABKAFCDrpICxIJKQAAAAAAAAAAEhwKBHlfbW0YAiABKAFCDrpICxIJKQAAAAAAAAAAEhwKBHpfbW0YAyABKAFCDrpICxIJKQAAAAAAAAAAIlsKDE1hdGVyaWFsU3BlYxIuCghjYXRlZ29yeRgBIAEoDjIcLnByb2R1Y3QudjEuTWF0ZXJpYWxDYXRlZ29yeRIMCgRuYW1lGAIgASgJEg0KBWdyYWRlGAMgASgJIokCChNQYXJ0SGFuZGxpbmdQcm9maWxlEg8KB2ZyYWdpbGUYASABKAgSFQoNZXNkX3NlbnNpdGl2ZRgCIAEoCBIeChZyZXF1aXJlc190d29faGFuZF9saWZ0GAMgASgIEiMKG3JlcXVpcmVzX2xpZnRpbmdfYXNzaXN0YW5jZRgEIAEoCBIgChhyZXF1aXJlc19maXh0dXJlX3N1cHBvcnQYBSABKAgSGAoQbWF4X2dyaXBfZm9yY2VfbhgGIAEoARIVCg1tYXhfdG9ycXVlX25tGAcgASgBEjIKC2NvbnN0cmFpbnRzGAggAygLMh0uY29tbW9uLnYxLktleVZhbHVlQ29uc3RyYWludCKHAwoSUGFydFByb2Nlc3NQcm9maWxlEj4KGGVzdGltYXRlZF9odW1hbl9kdXJhdGlvbhgBIAEoCzIcLmNvbW1vbi52MS5Fc3RpbWF0ZWREdXJhdGlvbhI+Chhlc3RpbWF0ZWRfcm9ib3RfZHVyYXRpb24YAiABKAsyHC5jb21tb24udjEuRXN0aW1hdGVkRHVyYXRpb24SHQoVcmVxdWlyZV9mdWxsX2d1aWRhbmNlGAMgASgIEh8KF2luc3BlY3RfYmVmb3JlX2Fzc2VtYmxlGAQgASgIEiEKGWluc3BlY3RfYWZ0ZXJfZGlzYXNzZW1ibGUYBSABKAgSHwoXcHJlX2x1YnJpY2F0aW9uX3BhcnRfaWQYBiABKAkSIAoYcG9zdF9sdWJyaWNhdGlvbl9wYXJ0X2lkGAcgASgJEhcKD3JlcXVpcmVzX3dpcGluZxgIIAEoCBIyCgtjb25zdHJhaW50cxgJIAMoCzIdLmNvbW1vbi52MS5LZXlWYWx1ZUNvbnN0cmFpbnQijAQKDlBhcnREZWZpbml0aW9uEgoKAmlkGAEgASgJEhcKBG5hbWUYAiABKAlCCbpIBnIEgPEEARIMCgRpY29uGAMgASgJEhMKC2Rlc2NyaXB0aW9uGAQgASgJEiwKBHR5cGUYBSABKA4yFC5wcm9kdWN0LnYxLlBhcnRUeXBlQgi6SAWCAQIQARIPCgdzdWJ0eXBlGAYgASgJEhkKCHdlaWdodF9nGAcgASgDQge6SAQiAigAEioKCmRpbWVuc2lvbnMYCCABKAsyFi5wcm9kdWN0LnYxLkRpbWVuc2lvbnMSKgoIbWF0ZXJpYWwYCSABKAsyGC5wcm9kdWN0LnYxLk1hdGVyaWFsU3BlYxIjChBkZWZhdWx0X21vZGVsX2lkGAogASgJQgm6SAZyBIjxBAESMQoIaGFuZGxpbmcYCyABKAsyHy5wcm9kdWN0LnYxLlBhcnRIYW5kbGluZ1Byb2ZpbGUSLwoHcHJvY2VzcxgMIAEoCzIeLnByb2R1Y3QudjEuUGFydFByb2Nlc3NQcm9maWxlEjkKE2V4dGVybmFsX3JlZmVyZW5jZXMYDSADKAsyHC5jb21tb24udjEuRXh0ZXJuYWxSZWZlcmVuY2USKwoGY3VzdG9tGA4gASgLMhsuY29tbW9uLnYxLkN1c3RvbVByb3BlcnRpZXMSDwoHdmVyc2lvbhgPIAEoCSI8Cg9QYXJ0RGVmaW5pdGlvbnMSKQoFaXRlbXMYASADKAsyGi5wcm9kdWN0LnYxLlBhcnREZWZpbml0aW9uKugCCghQYXJ0VHlwZRIZChVQQVJUX1RZUEVfVU5TUEVDSUZJRUQQABIXChNQQVJUX1RZUEVfQ09NUE9ORU5UEAESFgoSUEFSVF9UWVBFX0ZBU1RFTkVSEAISGAoUUEFSVF9UWVBFX0NPTlNVTUFCTEUQBBITCg9QQVJUX1RZUEVfTEFCRUwQBRIXChNQQVJUX1RZUEVfUEFDS0FHSU5HEAYSEQoNUEFSVF9UWVBFX1BDQhAHEiIKHlBBUlRfVFlQRV9FTEVDVFJPTklDX0NPTVBPTkVOVBAIEiIKHlBBUlRfVFlQRV9FTEVDVFJJQ0FMX0NPTVBPTkVOVBAJEhMKD1BBUlRfVFlQRV9DQUJMRRAKEiAKHFBBUlRfVFlQRV9ESVNQRU5TRURfTUFURVJJQUwQCxIbChdQQVJUX1RZUEVfRklOQUxfUFJPRFVDVBAUEhkKFVBBUlRfVFlQRV9TVUJBU1NFTUJMWRAVKpEDChBNYXRlcmlhbENhdGVnb3J5EiEKHU1BVEVSSUFMX0NBVEVHT1JZX1VOU1BFQ0lGSUVEEAASGwoXTUFURVJJQUxfQ0FURUdPUllfTUVUQUwQARIdChlNQVRFUklBTF9DQVRFR09SWV9QT0xZTUVSEAISHwobTUFURVJJQUxfQ0FURUdPUllfRUxBU1RPTUVSEAMSHwobTUFURVJJQUxfQ0FURUdPUllfQ09NUE9TSVRFEAQSHQoZTUFURVJJQUxfQ0FURUdPUllfQ0VSQU1JQxAFEhsKF01BVEVSSUFMX0NBVEVHT1JZX0dMQVNTEAYSGgoWTUFURVJJQUxfQ0FURUdPUllfV09PRBAHEhoKFk1BVEVSSUFMX0NBVEVHT1JZX0ZPQU0QCBIrCidNQVRFUklBTF9DQVRFR09SWV9FTEVDVFJPTklDU19TVUJTVFJBVEUQCRIeChpNQVRFUklBTF9DQVRFR09SWV9DSEVNSUNBTBAKEhsKF01BVEVSSUFMX0NBVEVHT1JZX09USEVSEGNCsgEKDmNvbS5wcm9kdWN0LnYxQhNQYXJ0RGVmaW5pdGlvblByb3RvUAFaOWdpdGh1Yi5jb20vY29ib3Rhci9wcm90b2NvbC9tZXNzYWdlcy9wcm9kdWN0L3YxO3Byb2R1Y3R2MaICA1BYWKoCE01lc3NhZ2VzLlByb2R1Y3QuVjHKAgpQcm9kdWN0XFYx4gIWUHJvZHVjdFxWMVxHUEJNZXRhZGF0YeoCC1Byb2R1Y3Q6OlYxYgZwcm90bzM", [file_buf_validate_validate, file_common_v1_custom_properties, file_common_v1_external_references, file_common_v1_key_value_constraint, file_common_v1_time, file_validation_v1_predefined_string_rules]);
22
24
 
23
25
  /**
24
26
  * @generated from message product.v1.Dimensions
@@ -93,89 +95,153 @@ export const MaterialSpecSchema: GenMessage<MaterialSpec> = /*@__PURE__*/
93
95
  messageDesc(file_product_v1_part_definition, 1);
94
96
 
95
97
  /**
98
+ * PartHandlingProfile captures physical handling constraints that follow the
99
+ * part regardless of the process it appears in.
100
+ *
96
101
  * @generated from message product.v1.PartHandlingProfile
97
102
  */
98
103
  export type PartHandlingProfile = Message<"product.v1.PartHandlingProfile"> & {
99
104
  /**
105
+ * Part can be damaged by drops, shocks, bending, crushing, or rough handling.
106
+ *
100
107
  * @generated from field: bool fragile = 1;
101
108
  */
102
109
  fragile: boolean;
103
110
 
104
111
  /**
112
+ * Part requires electrostatic discharge precautions during handling.
113
+ *
105
114
  * @generated from field: bool esd_sensitive = 2;
106
115
  */
107
116
  esdSensitive: boolean;
108
117
 
109
118
  /**
110
- * If true, the part is heavy, but possible to lift
119
+ * Part is heavy or awkward, but can still be lifted manually by an operator.
111
120
  *
112
121
  * @generated from field: bool requires_two_hand_lift = 3;
113
122
  */
114
123
  requiresTwoHandLift: boolean;
115
124
 
116
125
  /**
117
- * If true, the part is heavier than what an operator is allowed to lift.
126
+ * Part is heavier than what an operator is allowed or expected to lift manually.
118
127
  *
119
128
  * @generated from field: bool requires_lifting_assistance = 4;
120
129
  */
121
130
  requiresLiftingAssistance: boolean;
122
131
 
123
132
  /**
124
- * If true, this part cannot realistically be handled/assembled without some fixture support
133
+ * Part cannot realistically be handled or assembled without fixture support.
125
134
  *
126
135
  * @generated from field: bool requires_fixture_support = 5;
127
136
  */
128
137
  requiresFixtureSupport: boolean;
129
138
 
130
139
  /**
131
- * 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.
140
+ * Maximum gripping/clamping force that may be applied without damaging the part.
132
141
  *
133
- * @generated from field: string pre_lubrication_part_id = 6;
142
+ * @generated from field: double max_grip_force_n = 6;
134
143
  */
135
- preLubricationPartId: string;
144
+ maxGripForceN: number;
136
145
 
137
146
  /**
138
- * @generated from field: string post_lubrication_part_id = 7;
147
+ * Maximum torque that may be applied to the part or its fastening interface.
148
+ *
149
+ * @generated from field: double max_torque_nm = 7;
139
150
  */
140
- postLubricationPartId: string;
151
+ maxTorqueNm: number;
141
152
 
142
153
  /**
143
- * @generated from field: bool requires_wiping = 8;
154
+ * Additional handling constraints not represented by dedicated fields.
155
+ *
156
+ * @generated from field: repeated common.v1.KeyValueConstraint constraints = 8;
144
157
  */
145
- requiresWiping: boolean;
158
+ constraints: KeyValueConstraint[];
159
+ };
146
160
 
161
+ /**
162
+ * Describes the message product.v1.PartHandlingProfile.
163
+ * Use `create(PartHandlingProfileSchema)` to create a new message.
164
+ */
165
+ export const PartHandlingProfileSchema: GenMessage<PartHandlingProfile> = /*@__PURE__*/
166
+ messageDesc(file_product_v1_part_definition, 2);
167
+
168
+ /**
169
+ * PartProcessProfile captures defaults and hints used when generating processes
170
+ * involving this part.
171
+ *
172
+ * @generated from message product.v1.PartProcessProfile
173
+ */
174
+ export type PartProcessProfile = Message<"product.v1.PartProcessProfile"> & {
147
175
  /**
148
- * @generated from field: bool inspect_before_assemble = 9;
176
+ * Default duration estimate for tasks performed by a human.
177
+ *
178
+ * @generated from field: common.v1.EstimatedDuration estimated_human_duration = 1;
179
+ */
180
+ estimatedHumanDuration?: EstimatedDuration;
181
+
182
+ /**
183
+ * Default duration estimate for tasks performed by a robot.
184
+ *
185
+ * @generated from field: common.v1.EstimatedDuration estimated_robot_duration = 2;
186
+ */
187
+ estimatedRobotDuration?: EstimatedDuration;
188
+
189
+ /**
190
+ * Generated tasks should default to full step-by-step guidance for this part.
191
+ *
192
+ * @generated from field: bool require_full_guidance = 3;
193
+ */
194
+ requireFullGuidance: boolean;
195
+
196
+ /**
197
+ * Generate or recommend inspection before this part is assembled.
198
+ *
199
+ * @generated from field: bool inspect_before_assemble = 4;
149
200
  */
150
201
  inspectBeforeAssemble: boolean;
151
202
 
152
203
  /**
153
- * @generated from field: bool inspect_after_disassemble = 10;
204
+ * Generate or recommend inspection after this part is disassembled.
205
+ *
206
+ * @generated from field: bool inspect_after_disassemble = 5;
154
207
  */
155
208
  inspectAfterDisassemble: boolean;
156
209
 
157
210
  /**
158
- * @generated from field: double max_grip_force_n = 11;
211
+ * Consumable part to apply before inserting or assembling this part, e.g. grease or lubricant.
212
+ *
213
+ * @generated from field: string pre_lubrication_part_id = 6;
159
214
  */
160
- maxGripForceN: number;
215
+ preLubricationPartId: string;
161
216
 
162
217
  /**
163
- * @generated from field: double max_torque_nm = 12;
218
+ * Consumable part to apply after inserting or assembling this part, e.g. sealant or finishing lubricant.
219
+ *
220
+ * @generated from field: string post_lubrication_part_id = 7;
164
221
  */
165
- maxTorqueNm: number;
222
+ postLubricationPartId: string;
166
223
 
167
224
  /**
168
- * @generated from field: repeated common.v1.KeyValueConstraint constraints = 13;
225
+ * Generate or recommend wiping/cleaning tasks for this part.
226
+ *
227
+ * @generated from field: bool requires_wiping = 8;
228
+ */
229
+ requiresWiping: boolean;
230
+
231
+ /**
232
+ * Additional process-generation constraints not represented by dedicated fields.
233
+ *
234
+ * @generated from field: repeated common.v1.KeyValueConstraint constraints = 9;
169
235
  */
170
236
  constraints: KeyValueConstraint[];
171
237
  };
172
238
 
173
239
  /**
174
- * Describes the message product.v1.PartHandlingProfile.
175
- * Use `create(PartHandlingProfileSchema)` to create a new message.
240
+ * Describes the message product.v1.PartProcessProfile.
241
+ * Use `create(PartProcessProfileSchema)` to create a new message.
176
242
  */
177
- export const PartHandlingProfileSchema: GenMessage<PartHandlingProfile> = /*@__PURE__*/
178
- messageDesc(file_product_v1_part_definition, 2);
243
+ export const PartProcessProfileSchema: GenMessage<PartProcessProfile> = /*@__PURE__*/
244
+ messageDesc(file_product_v1_part_definition, 3);
179
245
 
180
246
  /**
181
247
  * @generated from message product.v1.PartDefinition
@@ -245,17 +311,22 @@ export type PartDefinition = Message<"product.v1.PartDefinition"> & {
245
311
  handling?: PartHandlingProfile;
246
312
 
247
313
  /**
248
- * @generated from field: repeated common.v1.ExternalReference external_references = 12;
314
+ * @generated from field: product.v1.PartProcessProfile process = 12;
315
+ */
316
+ process?: PartProcessProfile;
317
+
318
+ /**
319
+ * @generated from field: repeated common.v1.ExternalReference external_references = 13;
249
320
  */
250
321
  externalReferences: ExternalReference[];
251
322
 
252
323
  /**
253
- * @generated from field: common.v1.CustomProperties custom = 13;
324
+ * @generated from field: common.v1.CustomProperties custom = 14;
254
325
  */
255
326
  custom?: CustomProperties;
256
327
 
257
328
  /**
258
- * @generated from field: string version = 14;
329
+ * @generated from field: string version = 15;
259
330
  */
260
331
  version: string;
261
332
  };
@@ -265,7 +336,7 @@ export type PartDefinition = Message<"product.v1.PartDefinition"> & {
265
336
  * Use `create(PartDefinitionSchema)` to create a new message.
266
337
  */
267
338
  export const PartDefinitionSchema: GenMessage<PartDefinition> = /*@__PURE__*/
268
- messageDesc(file_product_v1_part_definition, 3);
339
+ messageDesc(file_product_v1_part_definition, 4);
269
340
 
270
341
  /**
271
342
  * @generated from message product.v1.PartDefinitions
@@ -282,7 +353,7 @@ export type PartDefinitions = Message<"product.v1.PartDefinitions"> & {
282
353
  * Use `create(PartDefinitionsSchema)` to create a new message.
283
354
  */
284
355
  export const PartDefinitionsSchema: GenMessage<PartDefinitions> = /*@__PURE__*/
285
- messageDesc(file_product_v1_part_definition, 4);
356
+ messageDesc(file_product_v1_part_definition, 5);
286
357
 
287
358
  /**
288
359
  * @generated from enum product.v1.PartType
@@ -307,13 +378,6 @@ export enum PartType {
307
378
  */
308
379
  FASTENER = 2,
309
380
 
310
- /**
311
- * A part that is itself composed of multiple child parts
312
- *
313
- * @generated from enum value: PART_TYPE_SUBASSEMBLY = 3;
314
- */
315
- SUBASSEMBLY = 3,
316
-
317
381
  /**
318
382
  * General consumable used up during assembly or maintenance
319
383
  *
@@ -369,6 +433,20 @@ export enum PartType {
369
433
  * @generated from enum value: PART_TYPE_DISPENSED_MATERIAL = 11;
370
434
  */
371
435
  DISPENSED_MATERIAL = 11,
436
+
437
+ /**
438
+ * A part that is itself composed of multiple child parts, which together form a product
439
+ *
440
+ * @generated from enum value: PART_TYPE_FINAL_PRODUCT = 20;
441
+ */
442
+ FINAL_PRODUCT = 20,
443
+
444
+ /**
445
+ * A part that is itself composed of multiple child parts,
446
+ *
447
+ * @generated from enum value: PART_TYPE_SUBASSEMBLY = 21;
448
+ */
449
+ SUBASSEMBLY = 21,
372
450
  }
373
451
 
374
452
  /**
@@ -14,7 +14,7 @@ import type { Message } from "@bufbuild/protobuf";
14
14
  * Describes the file resources/v1/model.proto.
15
15
  */
16
16
  export const file_resources_v1_model: GenFile = /*@__PURE__*/
17
- fileDesc("ChhyZXNvdXJjZXMvdjEvbW9kZWwucHJvdG8SDHJlc291cmNlcy52MSKdBAoMRmlsZUxvY2F0aW9uEj8KB2JhY2tlbmQYASABKA4yIS5yZXNvdXJjZXMudjEuTW9kZWxTdG9yYWdlQmFja2VuZEILukgIyAEBggECEAESDgoGYnVja2V0GAIgASgJEhIKCm9iamVjdF9rZXkYAyABKAkSGAoDdXJpGAQgASgJQgu6SAjYAQFyA4gBARIQCghmaWxlbmFtZRgFIAEoCRIUCgxjb250ZW50X3R5cGUYBiABKAkSEgoKc2l6ZV9ieXRlcxgHIAEoBBIrCgZzaGEyNTYYCCABKAlCG7pIGNgBAXITMhFeW2EtZkEtRjAtOV17NjR9JDqkArpIoAIanQIKH2Fzc2V0X2xvY2F0aW9uLmJhY2tlbmRfbG9jYXRpb24SKWFzc2V0IGxvY2F0aW9uIG11c3QgbWF0Y2ggc3RvcmFnZSBiYWNrZW5kGs4BKHRoaXMuYmFja2VuZCA9PSAxICYmIHRoaXMuZmlsZW5hbWUgIT0gJycpIHx8ICh0aGlzLmJhY2tlbmQgaW4gWzIsIDMsIDRdICYmIHRoaXMuYnVja2V0ICE9ICcnICYmIHRoaXMub2JqZWN0X2tleSAhPSAnJykgfHwgKHRoaXMuYmFja2VuZCA9PSA1ICYmIHRoaXMuZmlsZW5hbWUgIT0gJycpIHx8ICh0aGlzLmJhY2tlbmQgPT0gNiAmJiB0aGlzLnVyaSAhPSAnJyki3gYKDU1vZGVsQXNzZXRSZWYSGAoCaWQYASABKAlCDLpICcgBAXIEgOwwARI0Cghsb2NhdGlvbhgCIAEoCzIaLnJlc291cmNlcy52MS5GaWxlTG9jYXRpb25CBrpIA8gBARI7CgZmb3JtYXQYAyABKA4yHi5yZXNvdXJjZXMudjEuTW9kZWxBc3NldEZvcm1hdEILukgIyAEBggECEAESMgoEdW5pdBgEIAEoDjIXLnJlc291cmNlcy52MS5Nb2RlbFVuaXRCC7pICMgBAYIBAhABEjUKB3VwX2F4aXMYBSABKA4yFy5yZXNvdXJjZXMudjEuTW9kZWxBeGlzQgu6SAjIAQGCAQIQARI6Cgxmb3J3YXJkX2F4aXMYBiABKA4yFy5yZXNvdXJjZXMudjEuTW9kZWxBeGlzQgu6SAjIAQGCAQIQARI3CgRyb2xlGAcgASgOMhwucmVzb3VyY2VzLnYxLk1vZGVsQXNzZXRSb2xlQgu6SAjIAQGCAQIQARIoChVkZXJpdmVkX2Zyb21fYXNzZXRfaWQYCCABKAlCCbpIBnIEgOwwATq1A7pIsQMabwoebW9kZWxfYXNzZXRfcmVmLmF4ZXNfZGlmZmVyZW50Eip1cF9heGlzIGFuZCBmb3J3YXJkX2F4aXMgbXVzdCBiZSBkaWZmZXJlbnQaIXRoaXMudXBfYXhpcyAhPSB0aGlzLmZvcndhcmRfYXhpcxqQAQoibW9kZWxfYXNzZXRfcmVmLmRlcml2ZWRfaGFzX3NvdXJjZRI2ZGVyaXZlZCBtb2RlbCBhc3NldHMgbXVzdCBkZWZpbmUgZGVyaXZlZF9mcm9tX2Fzc2V0X2lkGjJ0aGlzLnJvbGUgIT0gMyB8fCB0aGlzLmRlcml2ZWRfZnJvbV9hc3NldF9pZCAhPSAnJxqqAQoibW9kZWxfYXNzZXRfcmVmLm5vX3NlbGZfZGVyaXZhdGlvbhI5ZGVyaXZlZF9mcm9tX2Fzc2V0X2lkIG11c3Qgbm90IHJlZmVyZW5jZSB0aGUgYXNzZXQgaXRzZWxmGkl0aGlzLmRlcml2ZWRfZnJvbV9hc3NldF9pZCA9PSAnJyB8fCB0aGlzLmRlcml2ZWRfZnJvbV9hc3NldF9pZCAhPSB0aGlzLmlkIswBCg1JbWFnZUFzc2V0UmVmEhgKAmlkGAEgASgJQgy6SAnIAQFyBJDsMAESNAoIbG9jYXRpb24YAiABKAsyGi5yZXNvdXJjZXMudjEuRmlsZUxvY2F0aW9uQga6SAPIAQESOwoGZm9ybWF0GAMgASgOMh4ucmVzb3VyY2VzLnYxLkltYWdlQXNzZXRGb3JtYXRCC7pICMgBAYIBAhABEi4KG2Rlcml2ZWRfZnJvbV9tb2RlbF9hc3NldF9pZBgEIAEoCUIJukgGcgSA7DABIs4BCg9TaWRlY2FyQXNzZXRSZWYSGAoCaWQYASABKAlCDLpICcgBAXIEiOwwARI0Cghsb2NhdGlvbhgCIAEoCzIaLnJlc291cmNlcy52MS5GaWxlTG9jYXRpb25CBrpIA8gBARI9CgZmb3JtYXQYAyABKA4yIC5yZXNvdXJjZXMudjEuU2lkZWNhckFzc2V0Rm9ybWF0Qgu6SAjIAQGCAQIQARIsChlhc3NvY2lhdGVkX21vZGVsX2Fzc2V0X2lkGAQgASgJQgm6SAZyBIDsMAEilwQKDU1vZGVsQXJ0aWZhY3QSFQoCaWQYASABKAlCCbpIBnIEiPEEARIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRI0CgVncm91cBgFIAEoDjIYLnJlc291cmNlcy52MS5Nb2RlbEdyb3VwQgu6SAjIAQGCAQIQARIyCgVhc3NldBgGIAEoCzIbLnJlc291cmNlcy52MS5Nb2RlbEFzc2V0UmVmQga6SAPIAQESLgoJdGh1bWJuYWlsGAcgASgLMhsucmVzb3VyY2VzLnYxLkltYWdlQXNzZXRSZWYSMQoMYWx0ZXJuYXRpdmVzGAggAygLMhsucmVzb3VyY2VzLnYxLk1vZGVsQXNzZXRSZWYSLwoIc2lkZWNhcnMYCSADKAsyHS5yZXNvdXJjZXMudjEuU2lkZWNhckFzc2V0UmVmEg8KB3ZlcnNpb24YCiABKAkSOQoTZXh0ZXJuYWxfcmVmZXJlbmNlcxgLIAMoCzIcLmNvbW1vbi52MS5FeHRlcm5hbFJlZmVyZW5jZTppukhmGmQKIW1vZGVsX2FydGlmYWN0LnByaW1hcnlfYXNzZXRfcm9sZRIkcHJpbWFyeSBhc3NldCBtdXN0IGhhdmUgcnVudGltZSByb2xlGhl0aGlzLmFzc2V0LnJvbGUgaW4gWzEsIDJdIjwKDk1vZGVsQXJ0aWZhY3RzEioKBWl0ZW1zGAEgAygLMhsucmVzb3VyY2VzLnYxLk1vZGVsQXJ0aWZhY3Qq1QEKCk1vZGVsR3JvdXASGwoXTU9ERUxfR1JPVVBfVU5TUEVDSUZJRUQQABIXChNNT0RFTF9HUk9VUF9QUk9EVUNUEAoSHAoYTU9ERUxfR1JPVVBfU1VCX0FTU0VNQkxZEAsSFAoQTU9ERUxfR1JPVVBfUEFSVBAMEhQKEE1PREVMX0dST1VQX1RPT0wQFBIVChFNT0RFTF9HUk9VUF9ST0JPVBAeEhkKFU1PREVMX0dST1VQX0NPTlRBSU5FUhAoEhUKEU1PREVMX0dST1VQX0FTU0VUEDIqyQEKDk1vZGVsQXNzZXRSb2xlEiAKHE1PREVMX0FTU0VUX1JPTEVfVU5TUEVDSUZJRUQQABIcChhNT0RFTF9BU1NFVF9ST0xFX1JVTlRJTUUQARIbChdNT0RFTF9BU1NFVF9ST0xFX1NPVVJDRRACEhwKGE1PREVMX0FTU0VUX1JPTEVfREVSSVZFRBADEhwKGE1PREVMX0FTU0VUX1JPTEVfUFJFVklFVxAEEh4KGk1PREVMX0FTU0VUX1JPTEVfQ09MTElTSU9OEAUqtgIKEE1vZGVsQXNzZXRGb3JtYXQSIgoeTU9ERUxfQVNTRVRfRk9STUFUX1VOU1BFQ0lGSUVEEAASGgoWTU9ERUxfQVNTRVRfRk9STUFUX0dMQhABEhsKF01PREVMX0FTU0VUX0ZPUk1BVF9HTFRGEAISGgoWTU9ERUxfQVNTRVRfRk9STUFUX09CShADEhoKFk1PREVMX0FTU0VUX0ZPUk1BVF9GQlgQBBIaChZNT0RFTF9BU1NFVF9GT1JNQVRfU1RMEAUSGwoXTU9ERUxfQVNTRVRfRk9STUFUX1NURVAQBhIbChdNT0RFTF9BU1NFVF9GT1JNQVRfSUdFUxAHEhoKFk1PREVMX0FTU0VUX0ZPUk1BVF9VU0QQCBIbChdNT0RFTF9BU1NFVF9GT1JNQVRfVVNEWhAJKrUBChJTaWRlY2FyQXNzZXRGb3JtYXQSJAogU0lERUNBUl9BU1NFVF9GT1JNQVRfVU5TUEVDSUZJRUQQABIcChhTSURFQ0FSX0FTU0VUX0ZPUk1BVF9NVEwQURIeChpTSURFQ0FSX0FTU0VUX0ZPUk1BVF9CQVNJUxBSEh0KGVNJREVDQVJfQVNTRVRfRk9STUFUX0tUWDIQUxIcChhTSURFQ0FSX0FTU0VUX0ZPUk1BVF9aSVAQVCqoAQoQSW1hZ2VBc3NldEZvcm1hdBIiCh5JTUFHRV9BU1NFVF9GT1JNQVRfVU5TUEVDSUZJRUQQABIaChZJTUFHRV9BU1NFVF9GT1JNQVRfUE5HEGQSGwoXSU1BR0VfQVNTRVRfRk9STUFUX0pQRUcQZRIbChdJTUFHRV9BU1NFVF9GT1JNQVRfV0VCUBBmEhoKFklNQUdFX0FTU0VUX0ZPUk1BVF9TVkcQZyrnAQoJTW9kZWxVbml0EhoKFk1PREVMX1VOSVRfVU5TUEVDSUZJRUQQABIZChVNT0RFTF9VTklUX01JTExJTUVURVIQARIZChVNT0RFTF9VTklUX0NFTlRJTUVURVIQAhIUChBNT0RFTF9VTklUX01FVEVSEAMSGAoUTU9ERUxfVU5JVF9LSUxPTUVURVIQBBITCg9NT0RFTF9VTklUX0lOQ0gQChITCg9NT0RFTF9VTklUX0ZPT1QQCxITCg9NT0RFTF9VTklUX1lBUkQQDBIZChVNT0RFTF9VTklUX01JQ1JPTUVURVIQFCrJAQoJTW9kZWxBeGlzEhoKFk1PREVMX0FYSVNfVU5TUEVDSUZJRUQQABIZChVNT0RFTF9BWElTX1BPU0lUSVZFX1gQARIZChVNT0RFTF9BWElTX05FR0FUSVZFX1gQAhIZChVNT0RFTF9BWElTX1BPU0lUSVZFX1kQAxIZChVNT0RFTF9BWElTX05FR0FUSVZFX1kQBBIZChVNT0RFTF9BWElTX1BPU0lUSVZFX1oQBRIZChVNT0RFTF9BWElTX05FR0FUSVZFX1oQBiqaAgoTTW9kZWxTdG9yYWdlQmFja2VuZBIlCiFNT0RFTF9TVE9SQUdFX0JBQ0tFTkRfVU5TUEVDSUZJRUQQABIiCh5NT0RFTF9TVE9SQUdFX0JBQ0tFTkRfQlVJTFRfSU4QARIrCidNT0RFTF9TVE9SQUdFX0JBQ0tFTkRfTkFUU19PQkpFQ1RfU1RPUkUQAhIcChhNT0RFTF9TVE9SQUdFX0JBQ0tFTkRfUzMQAxIfChtNT0RFTF9TVE9SQUdFX0JBQ0tFTkRfTUlOSU8QBBIkCiBNT0RFTF9TVE9SQUdFX0JBQ0tFTkRfTE9DQUxfRklMRRAFEiYKIk1PREVMX1NUT1JBR0VfQkFDS0VORF9FWFRFUk5BTF9VUkwQBkK3AQoQY29tLnJlc291cmNlcy52MUIKTW9kZWxQcm90b1ABWj1naXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvcmVzb3VyY2VzL3YxO3Jlc291cmNlc3YxogIDUlhYqgIVTWVzc2FnZXMuUmVzb3VyY2VzLlYxygIMUmVzb3VyY2VzXFYx4gIYUmVzb3VyY2VzXFYxXEdQQk1ldGFkYXRh6gINUmVzb3VyY2VzOjpWMWIGcHJvdG8z", [file_buf_validate_validate, file_common_v1_external_references, file_validation_v1_predefined_string_rules]);
17
+ fileDesc("ChhyZXNvdXJjZXMvdjEvbW9kZWwucHJvdG8SDHJlc291cmNlcy52MSKaBAoMRmlsZUxvY2F0aW9uEj8KB2JhY2tlbmQYASABKA4yIS5yZXNvdXJjZXMudjEuTW9kZWxTdG9yYWdlQmFja2VuZEILukgIyAEBggECEAESDgoGYnVja2V0GAIgASgJEhIKCm9iamVjdF9rZXkYAyABKAkSGAoDdXJpGAQgASgJQgu6SAjYAQFyA4gBARIQCghmaWxlbmFtZRgFIAEoCRIUCgxjb250ZW50X3R5cGUYBiABKAkSEgoKc2l6ZV9ieXRlcxgHIAEoBBIoCgZzaGEyNTYYCCABKAlCGLpIFdgBAXIQMg5eW2EtZjAtOV17NjR9JDqkArpIoAIanQIKH2Fzc2V0X2xvY2F0aW9uLmJhY2tlbmRfbG9jYXRpb24SKWFzc2V0IGxvY2F0aW9uIG11c3QgbWF0Y2ggc3RvcmFnZSBiYWNrZW5kGs4BKHRoaXMuYmFja2VuZCA9PSAxICYmIHRoaXMuZmlsZW5hbWUgIT0gJycpIHx8ICh0aGlzLmJhY2tlbmQgaW4gWzIsIDMsIDRdICYmIHRoaXMuYnVja2V0ICE9ICcnICYmIHRoaXMub2JqZWN0X2tleSAhPSAnJykgfHwgKHRoaXMuYmFja2VuZCA9PSA1ICYmIHRoaXMuZmlsZW5hbWUgIT0gJycpIHx8ICh0aGlzLmJhY2tlbmQgPT0gNiAmJiB0aGlzLnVyaSAhPSAnJyki3gYKDU1vZGVsQXNzZXRSZWYSGAoCaWQYASABKAlCDLpICcgBAXIEgOwwARI0Cghsb2NhdGlvbhgCIAEoCzIaLnJlc291cmNlcy52MS5GaWxlTG9jYXRpb25CBrpIA8gBARI7CgZmb3JtYXQYAyABKA4yHi5yZXNvdXJjZXMudjEuTW9kZWxBc3NldEZvcm1hdEILukgIyAEBggECEAESMgoEdW5pdBgEIAEoDjIXLnJlc291cmNlcy52MS5Nb2RlbFVuaXRCC7pICMgBAYIBAhABEjUKB3VwX2F4aXMYBSABKA4yFy5yZXNvdXJjZXMudjEuTW9kZWxBeGlzQgu6SAjIAQGCAQIQARI6Cgxmb3J3YXJkX2F4aXMYBiABKA4yFy5yZXNvdXJjZXMudjEuTW9kZWxBeGlzQgu6SAjIAQGCAQIQARI3CgRyb2xlGAcgASgOMhwucmVzb3VyY2VzLnYxLk1vZGVsQXNzZXRSb2xlQgu6SAjIAQGCAQIQARIoChVkZXJpdmVkX2Zyb21fYXNzZXRfaWQYCCABKAlCCbpIBnIEgOwwATq1A7pIsQMabwoebW9kZWxfYXNzZXRfcmVmLmF4ZXNfZGlmZmVyZW50Eip1cF9heGlzIGFuZCBmb3J3YXJkX2F4aXMgbXVzdCBiZSBkaWZmZXJlbnQaIXRoaXMudXBfYXhpcyAhPSB0aGlzLmZvcndhcmRfYXhpcxqQAQoibW9kZWxfYXNzZXRfcmVmLmRlcml2ZWRfaGFzX3NvdXJjZRI2ZGVyaXZlZCBtb2RlbCBhc3NldHMgbXVzdCBkZWZpbmUgZGVyaXZlZF9mcm9tX2Fzc2V0X2lkGjJ0aGlzLnJvbGUgIT0gMyB8fCB0aGlzLmRlcml2ZWRfZnJvbV9hc3NldF9pZCAhPSAnJxqqAQoibW9kZWxfYXNzZXRfcmVmLm5vX3NlbGZfZGVyaXZhdGlvbhI5ZGVyaXZlZF9mcm9tX2Fzc2V0X2lkIG11c3Qgbm90IHJlZmVyZW5jZSB0aGUgYXNzZXQgaXRzZWxmGkl0aGlzLmRlcml2ZWRfZnJvbV9hc3NldF9pZCA9PSAnJyB8fCB0aGlzLmRlcml2ZWRfZnJvbV9hc3NldF9pZCAhPSB0aGlzLmlkIswBCg1JbWFnZUFzc2V0UmVmEhgKAmlkGAEgASgJQgy6SAnIAQFyBJDsMAESNAoIbG9jYXRpb24YAiABKAsyGi5yZXNvdXJjZXMudjEuRmlsZUxvY2F0aW9uQga6SAPIAQESOwoGZm9ybWF0GAMgASgOMh4ucmVzb3VyY2VzLnYxLkltYWdlQXNzZXRGb3JtYXRCC7pICMgBAYIBAhABEi4KG2Rlcml2ZWRfZnJvbV9tb2RlbF9hc3NldF9pZBgEIAEoCUIJukgGcgSA7DABIs4BCg9TaWRlY2FyQXNzZXRSZWYSGAoCaWQYASABKAlCDLpICcgBAXIEiOwwARI0Cghsb2NhdGlvbhgCIAEoCzIaLnJlc291cmNlcy52MS5GaWxlTG9jYXRpb25CBrpIA8gBARI9CgZmb3JtYXQYAyABKA4yIC5yZXNvdXJjZXMudjEuU2lkZWNhckFzc2V0Rm9ybWF0Qgu6SAjIAQGCAQIQARIsChlhc3NvY2lhdGVkX21vZGVsX2Fzc2V0X2lkGAQgASgJQgm6SAZyBIDsMAEizgQKDU1vZGVsQXJ0aWZhY3QSFQoCaWQYASABKAlCCbpIBnIEiPEEARIXCgRuYW1lGAIgASgJQgm6SAZyBIDxBAESDAoEaWNvbhgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRI0CgVncm91cBgFIAEoDjIYLnJlc291cmNlcy52MS5Nb2RlbEdyb3VwQgu6SAjIAQGCAQIQARIyCgVhc3NldBgGIAEoCzIbLnJlc291cmNlcy52MS5Nb2RlbEFzc2V0UmVmQga6SAPIAQESLgoJdGh1bWJuYWlsGAcgASgLMhsucmVzb3VyY2VzLnYxLkltYWdlQXNzZXRSZWYSMQoMYWx0ZXJuYXRpdmVzGAggAygLMhsucmVzb3VyY2VzLnYxLk1vZGVsQXNzZXRSZWYSLwoIc2lkZWNhcnMYCSADKAsyHS5yZXNvdXJjZXMudjEuU2lkZWNhckFzc2V0UmVmEg8KB3ZlcnNpb24YCiABKAkSOQoTZXh0ZXJuYWxfcmVmZXJlbmNlcxgLIAMoCzIcLmNvbW1vbi52MS5FeHRlcm5hbFJlZmVyZW5jZRI1Cgxjb250ZW50X2hhc2gYDCABKAlCH7pIHNgBAXIXMhVec2hhMjU2OlthLWYwLTldezY0fSQ6abpIZhpkCiFtb2RlbF9hcnRpZmFjdC5wcmltYXJ5X2Fzc2V0X3JvbGUSJHByaW1hcnkgYXNzZXQgbXVzdCBoYXZlIHJ1bnRpbWUgcm9sZRoZdGhpcy5hc3NldC5yb2xlIGluIFsxLCAyXSI8Cg5Nb2RlbEFydGlmYWN0cxIqCgVpdGVtcxgBIAMoCzIbLnJlc291cmNlcy52MS5Nb2RlbEFydGlmYWN0KtUBCgpNb2RlbEdyb3VwEhsKF01PREVMX0dST1VQX1VOU1BFQ0lGSUVEEAASFwoTTU9ERUxfR1JPVVBfUFJPRFVDVBAKEhwKGE1PREVMX0dST1VQX1NVQl9BU1NFTUJMWRALEhQKEE1PREVMX0dST1VQX1BBUlQQDBIUChBNT0RFTF9HUk9VUF9UT09MEBQSFQoRTU9ERUxfR1JPVVBfUk9CT1QQHhIZChVNT0RFTF9HUk9VUF9DT05UQUlORVIQKBIVChFNT0RFTF9HUk9VUF9BU1NFVBAyKskBCg5Nb2RlbEFzc2V0Um9sZRIgChxNT0RFTF9BU1NFVF9ST0xFX1VOU1BFQ0lGSUVEEAASHAoYTU9ERUxfQVNTRVRfUk9MRV9SVU5USU1FEAESGwoXTU9ERUxfQVNTRVRfUk9MRV9TT1VSQ0UQAhIcChhNT0RFTF9BU1NFVF9ST0xFX0RFUklWRUQQAxIcChhNT0RFTF9BU1NFVF9ST0xFX1BSRVZJRVcQBBIeChpNT0RFTF9BU1NFVF9ST0xFX0NPTExJU0lPThAFKrYCChBNb2RlbEFzc2V0Rm9ybWF0EiIKHk1PREVMX0FTU0VUX0ZPUk1BVF9VTlNQRUNJRklFRBAAEhoKFk1PREVMX0FTU0VUX0ZPUk1BVF9HTEIQARIbChdNT0RFTF9BU1NFVF9GT1JNQVRfR0xURhACEhoKFk1PREVMX0FTU0VUX0ZPUk1BVF9PQkoQAxIaChZNT0RFTF9BU1NFVF9GT1JNQVRfRkJYEAQSGgoWTU9ERUxfQVNTRVRfRk9STUFUX1NUTBAFEhsKF01PREVMX0FTU0VUX0ZPUk1BVF9TVEVQEAYSGwoXTU9ERUxfQVNTRVRfRk9STUFUX0lHRVMQBxIaChZNT0RFTF9BU1NFVF9GT1JNQVRfVVNEEAgSGwoXTU9ERUxfQVNTRVRfRk9STUFUX1VTRFoQCSq1AQoSU2lkZWNhckFzc2V0Rm9ybWF0EiQKIFNJREVDQVJfQVNTRVRfRk9STUFUX1VOU1BFQ0lGSUVEEAASHAoYU0lERUNBUl9BU1NFVF9GT1JNQVRfTVRMEFESHgoaU0lERUNBUl9BU1NFVF9GT1JNQVRfQkFTSVMQUhIdChlTSURFQ0FSX0FTU0VUX0ZPUk1BVF9LVFgyEFMSHAoYU0lERUNBUl9BU1NFVF9GT1JNQVRfWklQEFQqqAEKEEltYWdlQXNzZXRGb3JtYXQSIgoeSU1BR0VfQVNTRVRfRk9STUFUX1VOU1BFQ0lGSUVEEAASGgoWSU1BR0VfQVNTRVRfRk9STUFUX1BORxBkEhsKF0lNQUdFX0FTU0VUX0ZPUk1BVF9KUEVHEGUSGwoXSU1BR0VfQVNTRVRfRk9STUFUX1dFQlAQZhIaChZJTUFHRV9BU1NFVF9GT1JNQVRfU1ZHEGcq5wEKCU1vZGVsVW5pdBIaChZNT0RFTF9VTklUX1VOU1BFQ0lGSUVEEAASGQoVTU9ERUxfVU5JVF9NSUxMSU1FVEVSEAESGQoVTU9ERUxfVU5JVF9DRU5USU1FVEVSEAISFAoQTU9ERUxfVU5JVF9NRVRFUhADEhgKFE1PREVMX1VOSVRfS0lMT01FVEVSEAQSEwoPTU9ERUxfVU5JVF9JTkNIEAoSEwoPTU9ERUxfVU5JVF9GT09UEAsSEwoPTU9ERUxfVU5JVF9ZQVJEEAwSGQoVTU9ERUxfVU5JVF9NSUNST01FVEVSEBQqyQEKCU1vZGVsQXhpcxIaChZNT0RFTF9BWElTX1VOU1BFQ0lGSUVEEAASGQoVTU9ERUxfQVhJU19QT1NJVElWRV9YEAESGQoVTU9ERUxfQVhJU19ORUdBVElWRV9YEAISGQoVTU9ERUxfQVhJU19QT1NJVElWRV9ZEAMSGQoVTU9ERUxfQVhJU19ORUdBVElWRV9ZEAQSGQoVTU9ERUxfQVhJU19QT1NJVElWRV9aEAUSGQoVTU9ERUxfQVhJU19ORUdBVElWRV9aEAYqmgIKE01vZGVsU3RvcmFnZUJhY2tlbmQSJQohTU9ERUxfU1RPUkFHRV9CQUNLRU5EX1VOU1BFQ0lGSUVEEAASIgoeTU9ERUxfU1RPUkFHRV9CQUNLRU5EX0JVSUxUX0lOEAESKwonTU9ERUxfU1RPUkFHRV9CQUNLRU5EX05BVFNfT0JKRUNUX1NUT1JFEAISHAoYTU9ERUxfU1RPUkFHRV9CQUNLRU5EX1MzEAMSHwobTU9ERUxfU1RPUkFHRV9CQUNLRU5EX01JTklPEAQSJAogTU9ERUxfU1RPUkFHRV9CQUNLRU5EX0xPQ0FMX0ZJTEUQBRImCiJNT0RFTF9TVE9SQUdFX0JBQ0tFTkRfRVhURVJOQUxfVVJMEAZCtwEKEGNvbS5yZXNvdXJjZXMudjFCCk1vZGVsUHJvdG9QAVo9Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3Jlc291cmNlcy92MTtyZXNvdXJjZXN2MaICA1JYWKoCFU1lc3NhZ2VzLlJlc291cmNlcy5WMcoCDFJlc291cmNlc1xWMeICGFJlc291cmNlc1xWMVxHUEJNZXRhZGF0YeoCDVJlc291cmNlczo6VjFiBnByb3RvMw", [file_buf_validate_validate, file_common_v1_external_references, file_validation_v1_predefined_string_rules]);
18
18
 
19
19
  /**
20
20
  *
@@ -298,6 +298,15 @@ export type ModelArtifact = Message<"resources.v1.ModelArtifact"> & {
298
298
  * @generated from field: repeated common.v1.ExternalReference external_references = 11;
299
299
  */
300
300
  externalReferences: ExternalReference[];
301
+
302
+ /**
303
+ * Stable digest of the model artifact content graph, including primary asset,
304
+ * sidecars, asset.format, asset.unit, asset.up_axis, and asset.forward_axis.
305
+ * Used for cache invalidation and change detection.
306
+ *
307
+ * @generated from field: string content_hash = 12;
308
+ */
309
+ contentHash: string;
301
310
  };
302
311
 
303
312
  /**
@@ -2,15 +2,15 @@
2
2
  // @generated from file service/v1/response.proto (package service.v1, syntax proto3)
3
3
  /* eslint-disable */
4
4
 
5
- import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
- import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
5
+ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
6
+ import { enumDesc, fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
7
7
  import type { Message } from "@bufbuild/protobuf";
8
8
 
9
9
  /**
10
10
  * Describes the file service/v1/response.proto.
11
11
  */
12
12
  export const file_service_v1_response: GenFile = /*@__PURE__*/
13
- fileDesc("ChlzZXJ2aWNlL3YxL3Jlc3BvbnNlLnByb3RvEgpzZXJ2aWNlLnYxIkYKCFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIYChBtYWluX21vZGlmaWVkX2lkGAMgASgJQqwBCg5jb20uc2VydmljZS52MUINUmVzcG9uc2VQcm90b1ABWjlnaXRodWIuY29tL2NvYm90YXIvcHJvdG9jb2wvbWVzc2FnZXMvc2VydmljZS92MTtzZXJ2aWNldjGiAgNTWFiqAhNNZXNzYWdlcy5TZXJ2aWNlLlYxygIKU2VydmljZVxWMeICFlNlcnZpY2VcVjFcR1BCTWV0YWRhdGHqAgtTZXJ2aWNlOjpWMWIGcHJvdG8z");
13
+ fileDesc("ChlzZXJ2aWNlL3YxL3Jlc3BvbnNlLnByb3RvEgpzZXJ2aWNlLnYxInIKCFJlc3BvbnNlEg8KB3N1Y2Nlc3MYASABKAgSDwoHbWVzc2FnZRgCIAEoCRIYChBtYWluX21vZGlmaWVkX2lkGAMgASgJEioKBnN0YXR1cxgEIAEoDjIaLnNlcnZpY2UudjEuTXV0YXRpb25TdGF0dXMqpwEKDk11dGF0aW9uU3RhdHVzEh8KG01VVEFUSU9OX1NUQVRVU19VTlNQRUNJRklFRBAAEhsKF01VVEFUSU9OX1NUQVRVU19DUkVBVEVEEAESGwoXTVVUQVRJT05fU1RBVFVTX1VQREFURUQQAhIdChlNVVRBVElPTl9TVEFUVVNfVU5DSEFOR0VEEAMSGwoXTVVUQVRJT05fU1RBVFVTX0RFTEVURUQQBEKsAQoOY29tLnNlcnZpY2UudjFCDVJlc3BvbnNlUHJvdG9QAVo5Z2l0aHViLmNvbS9jb2JvdGFyL3Byb3RvY29sL21lc3NhZ2VzL3NlcnZpY2UvdjE7c2VydmljZXYxogIDU1hYqgITTWVzc2FnZXMuU2VydmljZS5WMcoCClNlcnZpY2VcVjHiAhZTZXJ2aWNlXFYxXEdQQk1ldGFkYXRh6gILU2VydmljZTo6VjFiBnByb3RvMw");
14
14
 
15
15
  /**
16
16
  * @generated from message service.v1.Response
@@ -36,6 +36,11 @@ export type Response = Message<"service.v1.Response"> & {
36
36
  * @generated from field: string main_modified_id = 3;
37
37
  */
38
38
  mainModifiedId: string;
39
+
40
+ /**
41
+ * @generated from field: service.v1.MutationStatus status = 4;
42
+ */
43
+ status: MutationStatus;
39
44
  };
40
45
 
41
46
  /**
@@ -45,3 +50,39 @@ export type Response = Message<"service.v1.Response"> & {
45
50
  export const ResponseSchema: GenMessage<Response> = /*@__PURE__*/
46
51
  messageDesc(file_service_v1_response, 0);
47
52
 
53
+ /**
54
+ * @generated from enum service.v1.MutationStatus
55
+ */
56
+ export enum MutationStatus {
57
+ /**
58
+ * @generated from enum value: MUTATION_STATUS_UNSPECIFIED = 0;
59
+ */
60
+ UNSPECIFIED = 0,
61
+
62
+ /**
63
+ * @generated from enum value: MUTATION_STATUS_CREATED = 1;
64
+ */
65
+ CREATED = 1,
66
+
67
+ /**
68
+ * @generated from enum value: MUTATION_STATUS_UPDATED = 2;
69
+ */
70
+ UPDATED = 2,
71
+
72
+ /**
73
+ * @generated from enum value: MUTATION_STATUS_UNCHANGED = 3;
74
+ */
75
+ UNCHANGED = 3,
76
+
77
+ /**
78
+ * @generated from enum value: MUTATION_STATUS_DELETED = 4;
79
+ */
80
+ DELETED = 4,
81
+ }
82
+
83
+ /**
84
+ * Describes the enum service.v1.MutationStatus.
85
+ */
86
+ export const MutationStatusSchema: GenEnum<MutationStatus> = /*@__PURE__*/
87
+ enumDesc(file_service_v1_response, 0);
88
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cobotar/protocol",
3
- "version": "0.20.6",
3
+ "version": "0.20.7",
4
4
  "description": "A collection of protobuf messages for the CobotAR-project",
5
5
  "homepage": "https://github.com/cobotar/protocol#readme",
6
6
  "files": [