@valon-technologies/gestalt 0.0.1-alpha.36 → 0.0.1-alpha.38

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.
@@ -8,7 +8,7 @@ import type { EmptySchema, Timestamp, Value } from "@bufbuild/protobuf/wkt";
8
8
  import { file_google_protobuf_empty, file_google_protobuf_struct, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
9
9
  import type { AgentOutput } from "./agent_pb";
10
10
  import { file_v1_agent } from "./agent_pb";
11
- import type { AgentToolRef, SubjectContext } from "./app_pb";
11
+ import type { AgentToolRef, RequestContext, SubjectContext } from "./app_pb";
12
12
  import { file_v1_app } from "./app_pb";
13
13
  import type { JsonObject, Message } from "@bufbuild/protobuf";
14
14
 
@@ -16,7 +16,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
16
16
  * Describes the file v1/workflow.proto.
17
17
  */
18
18
  export const file_v1_workflow: GenFile = /*@__PURE__*/
19
- fileDesc("ChF2MS93b3JrZmxvdy5wcm90bxITZ2VzdGFsdC5wcm92aWRlci52MSJNChNCb3VuZFdvcmtmbG93VGFyZ2V0EjAKBXN0ZXBzGAggAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1N0ZXBKBAgBEAgivQMKDFdvcmtmbG93U3RlcBIKCgJpZBgBIAEoCRI9CgZpbnB1dHMYAiADKAsyLS5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U3RlcC5JbnB1dHNFbnRyeRIzCgR3aGVuGAMgASgLMiUuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1N0ZXBXaGVuEhcKD3RpbWVvdXRfc2Vjb25kcxgEIAEoBRIpCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSNwoDYXBwGAogASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1N0ZXBBcHBDYWxsSAASOwoFYWdlbnQYCyABKAsyKi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U3RlcEFnZW50VHVybkgAGlEKC0lucHV0c0VudHJ5EgsKA2tleRgBIAEoCRIxCgV2YWx1ZRgCIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dWYWx1ZToCOAFCCAoGYWN0aW9uSgQIBRAGSgQIBxAISgQICBAJSgQICRAKIqgBChNXb3JrZmxvd1N0ZXBBcHBDYWxsEgwKBG5hbWUYASABKAkSEQoJb3BlcmF0aW9uGAIgASgJEjEKBWlucHV0GAMgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1ZhbHVlEhIKCmNvbm5lY3Rpb24YBCABKAkSEAoIaW5zdGFuY2UYBSABKAkSFwoPY3JlZGVudGlhbF9tb2RlGAYgASgJItECChVXb3JrZmxvd1N0ZXBBZ2VudFR1cm4SEAoIcHJvdmlkZXIYASABKAkSDQoFbW9kZWwYAiABKAkSEwoLc2Vzc2lvbl9rZXkYAyABKAkSMQoGcHJvbXB0GAQgASgLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1RleHQSOwoIbWVzc2FnZXMYBSADKAsyKS5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWdlbnRNZXNzYWdlEjAKBXRvb2xzGAYgAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFRvb2xSZWYSMAoGb3V0cHV0GAcgASgLMiAuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudE91dHB1dBIuCg1tb2RlbF9vcHRpb25zGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKAAQoUV29ya2Zsb3dBZ2VudE1lc3NhZ2USDAoEcm9sZRgBIAEoCRIvCgR0ZXh0GAIgASgLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1RleHQSKQoIbWV0YWRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IiAKDFdvcmtmbG93VGV4dBIQCgh0ZW1wbGF0ZRgBIAEoCSJtChBXb3JrZmxvd1N0ZXBXaGVuEjEKBXZhbHVlGAEgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1ZhbHVlEiYKBmVxdWFscxgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSL8AwoNV29ya2Zsb3dWYWx1ZRIpCgdsaXRlcmFsGAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlSAASNQoGb2JqZWN0GAIgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd09iamVjdEgAEjMKBWFycmF5GAMgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FycmF5SAASNQoIdGVtcGxhdGUYBCABKAsyIS5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93VGV4dEgAEjgKBWlucHV0GAUgASgLMicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1BhdGhTb3VyY2VIABI5CgZzaWduYWwYBiABKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UGF0aFNvdXJjZUgAEkQKC3N0ZXBfb3V0cHV0GAkgASgLMi0uZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1N0ZXBPdXRwdXRTb3VyY2VIABJCCgpzdGVwX2lucHV0GAwgASgLMiwuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1N0ZXBJbnB1dFNvdXJjZUgAQgYKBGtpbmRKBAgHEAhKBAgIEAlKBAgKEAtKBAgLEAwipAEKDldvcmtmbG93T2JqZWN0Ej8KBmZpZWxkcxgBIAMoCzIvLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dPYmplY3QuRmllbGRzRW50cnkaUQoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEjEKBXZhbHVlGAIgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1ZhbHVlOgI4ASJDCg1Xb3JrZmxvd0FycmF5EjIKBnZhbHVlcxgBIAMoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dWYWx1ZSIiChJXb3JrZmxvd1BhdGhTb3VyY2USDAoEcGF0aBgBIAEoCSI5ChhXb3JrZmxvd1N0ZXBPdXRwdXRTb3VyY2USDwoHc3RlcF9pZBgBIAEoCRIMCgRwYXRoGAIgASgJIjgKF1dvcmtmbG93U3RlcElucHV0U291cmNlEg8KB3N0ZXBfaWQYASABKAkSDAoEcGF0aBgCIAEoCSLdAgoNV29ya2Zsb3dFdmVudBIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSFAoMc3BlY192ZXJzaW9uGAMgASgJEgwKBHR5cGUYBCABKAkSDwoHc3ViamVjdBgFIAEoCRIoCgR0aW1lGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9kYXRhY29udGVudHR5cGUYByABKAkSJQoEZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSRgoKZXh0ZW5zaW9ucxgJIAMoCzIyLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudC5FeHRlbnNpb25zRW50cnkaSQoPRXh0ZW5zaW9uc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEiQwoSV29ya2Zsb3dFdmVudE1hdGNoEgwKBHR5cGUYASABKAkSDgoGc291cmNlGAIgASgJEg8KB3N1YmplY3QYAyABKAkiPAoaV29ya2Zsb3dTY2hlZHVsZUFjdGl2YXRpb24SDAoEY3JvbhgBIAEoCRIQCgh0aW1lem9uZRgCIAEoCSJRChdXb3JrZmxvd0V2ZW50QWN0aXZhdGlvbhI2CgVtYXRjaBgBIAEoCzInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudE1hdGNoIvIBChJXb3JrZmxvd0FjdGl2YXRpb24SCgoCaWQYASABKAkSMQoFaW5wdXQYAiABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93VmFsdWUSDgoGcGF1c2VkGAMgASgIEkMKCHNjaGVkdWxlGAQgASgLMi8uZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1NjaGVkdWxlQWN0aXZhdGlvbkgAEj0KBWV2ZW50GAUgASgLMiwuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50QWN0aXZhdGlvbkgAQgkKB3RyaWdnZXIi4QEKFldvcmtmbG93RGVmaW5pdGlvblNwZWMSCgoCaWQYASABKAkSOAoGdGFyZ2V0GAIgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0EjwKC2FjdGl2YXRpb25zGAMgAygLMicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FjdGl2YXRpb24SDgoGcGF1c2VkGAQgASgIEjMKBnJ1bl9hcxgFIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuU3ViamVjdENvbnRleHQihwMKEldvcmtmbG93RGVmaW5pdGlvbhIKCgJpZBgBIAEoCRISCgpnZW5lcmF0aW9uGAIgASgDEjgKBnRhcmdldBgDIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBI8CgthY3RpdmF0aW9ucxgEIAMoCzInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dBY3RpdmF0aW9uEg4KBnBhdXNlZBgFIAEoCBIdChVjcmVhdGVkX2J5X3N1YmplY3RfaWQYBiABKAkSLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNcHJvdmlkZXJfbmFtZRgJIAEoCRIzCgZydW5fYXMYCiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0IhcKFVdvcmtmbG93TWFudWFsVHJpZ2dlciJjChdXb3JrZmxvd1NjaGVkdWxlVHJpZ2dlchIVCg1hY3RpdmF0aW9uX2lkGAEgASgJEjEKDXNjaGVkdWxlZF9mb3IYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wImoKHldvcmtmbG93RXZlbnRUcmlnZ2VySW52b2NhdGlvbhIVCg1hY3RpdmF0aW9uX2lkGAEgASgJEjEKBWV2ZW50GAIgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50IuIBChJXb3JrZmxvd1J1blRyaWdnZXISPAoGbWFudWFsGAEgASgLMiouZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbnVhbFRyaWdnZXJIABJACghzY2hlZHVsZRgCIAEoCzIsLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTY2hlZHVsZVRyaWdnZXJIABJECgVldmVudBgDIAEoCzIzLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudFRyaWdnZXJJbnZvY2F0aW9uSABCBgoEa2luZCK8AgoTV29ya2Zsb3dTdGVwQXR0ZW1wdBIKCgJpZBgBIAEoCRI3CgZzdGF0dXMYAiABKA4yJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U3RlcFN0YXR1cxIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkSJQoFaW5wdXQYBCABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSJgoGb3V0cHV0GAUgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhYKDnN0YXR1c19tZXNzYWdlGAYgASgJEi4KCnN0YXJ0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGNvbXBsZXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi+wIKFVdvcmtmbG93U3RlcEV4ZWN1dGlvbhIPCgdzdGVwX2lkGAEgASgJEjcKBnN0YXR1cxgCIAEoDjInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTdGVwU3RhdHVzEjoKCGF0dGVtcHRzGAMgAygLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1N0ZXBBdHRlbXB0EiUKBWlucHV0GAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEiYKBm91dHB1dBgFIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIWCg5zdGF0dXNfbWVzc2FnZRgGIAEoCRITCgtza2lwX3JlYXNvbhgHIAEoCRIuCgpzdGFydGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsoFCgtXb3JrZmxvd1J1bhIKCgJpZBgBIAEoCRI2CgZzdGF0dXMYAiABKA4yJi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UnVuU3RhdHVzEjgKBnRhcmdldBgDIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBI4Cgd0cmlnZ2VyGAQgASgLMicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1blRyaWdnZXISLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKc3RhcnRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMY29tcGxldGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5zdGF0dXNfbWVzc2FnZRgIIAEoCRImCgZvdXRwdXQYCSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSHQoVY3JlYXRlZF9ieV9zdWJqZWN0X2lkGAogASgJEhQKDHdvcmtmbG93X2tleRgMIAEoCRIVCg1wcm92aWRlcl9uYW1lGA0gASgJEhUKDWRlZmluaXRpb25faWQYDiABKAkSMwoGcnVuX2FzGA8gASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBImCgVpbnB1dBgQIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSHQoVZGVmaW5pdGlvbl9nZW5lcmF0aW9uGBEgASgDEhcKD2N1cnJlbnRfc3RlcF9pZBgSIAEoCRI5CgVzdGVwcxgTIAMoCzIqLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTdGVwRXhlY3V0aW9uIvkBCg5Xb3JrZmxvd1NpZ25hbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEigKB3BheWxvYWQYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIdChVjcmVhdGVkX2J5X3N1YmplY3RfaWQYBSABKAkSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoPaWRlbXBvdGVuY3lfa2V5GAcgASgJEhAKCHNlcXVlbmNlGAggASgDIs4BCiZBcHBseVdvcmtmbG93UHJvdmlkZXJEZWZpbml0aW9uUmVxdWVzdBIVCg1wcm92aWRlcl9uYW1lGAEgASgJEjkKBHNwZWMYAiABKAsyKy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RGVmaW5pdGlvblNwZWMSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYBCABKAkSHwoXcmVxdWVzdGVkX2J5X3N1YmplY3RfaWQYBSABKAkiVwokR2V0V29ya2Zsb3dQcm92aWRlckRlZmluaXRpb25SZXF1ZXN0EhUKDWRlZmluaXRpb25faWQYASABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgCIAEoCSJCCiZMaXN0V29ya2Zsb3dQcm92aWRlckRlZmluaXRpb25zUmVxdWVzdBIYChBpbnZvY2F0aW9uX3Rva2VuGAEgASgJImcKJ0xpc3RXb3JrZmxvd1Byb3ZpZGVyRGVmaW5pdGlvbnNSZXNwb25zZRI8CgtkZWZpbml0aW9ucxgBIAMoCzInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dEZWZpbml0aW9uIo4BCipTZXRXb3JrZmxvd1Byb3ZpZGVyRGVmaW5pdGlvblBhdXNlZFJlcXVlc3QSFQoNZGVmaW5pdGlvbl9pZBgBIAEoCRIOCgZwYXVzZWQYAiABKAgSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCRIfChdyZXF1ZXN0ZWRfYnlfc3ViamVjdF9pZBgEIAEoCSKlAQoqU2V0V29ya2Zsb3dQcm92aWRlckFjdGl2YXRpb25QYXVzZWRSZXF1ZXN0EhUKDWRlZmluaXRpb25faWQYASABKAkSFQoNYWN0aXZhdGlvbl9pZBgCIAEoCRIOCgZwYXVzZWQYAyABKAgSGAoQaW52b2NhdGlvbl90b2tlbhgEIAEoCRIfChdyZXF1ZXN0ZWRfYnlfc3ViamVjdF9pZBgFIAEoCSJaCidEZWxldGVXb3JrZmxvd1Byb3ZpZGVyRGVmaW5pdGlvblJlcXVlc3QSFQoNZGVmaW5pdGlvbl9pZBgBIAEoCRIYChBpbnZvY2F0aW9uX3Rva2VuGAIgASgJIsICCh9TdGFydFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0EhcKD2lkZW1wb3RlbmN5X2tleRgCIAEoCRIdChVjcmVhdGVkX2J5X3N1YmplY3RfaWQYBCABKAkSFAoMd29ya2Zsb3dfa2V5GAYgASgJEhUKDXByb3ZpZGVyX25hbWUYByABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgIIAEoCRIVCg1kZWZpbml0aW9uX2lkGAkgASgJEjMKBnJ1bl9hcxgKIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuU3ViamVjdENvbnRleHQSJgoFaW5wdXQYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EiYKHmV4cGVjdGVkX2RlZmluaXRpb25fZ2VuZXJhdGlvbhgMIAEoA0oECAEQAiJJCh1HZXRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBIOCgZydW5faWQYAiABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCSKuAQofTGlzdFdvcmtmbG93UHJvdmlkZXJSdW5zUmVxdWVzdBIRCglwYWdlX3NpemUYASABKAUSEgoKcGFnZV90b2tlbhgCIAEoCRI2CgZzdGF0dXMYAyABKA4yJi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UnVuU3RhdHVzEhgKEGludm9jYXRpb25fdG9rZW4YBCABKAkSEgoKdGFyZ2V0X2FwcBgFIAEoCSJrCiBMaXN0V29ya2Zsb3dQcm92aWRlclJ1bnNSZXNwb25zZRIuCgRydW5zGAEgAygLMiAuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1bhIXCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAkiXAogQ2FuY2VsV29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QSDgoGcnVuX2lkGAIgASgJEg4KBnJlYXNvbhgDIAEoCRIYChBpbnZvY2F0aW9uX3Rva2VuGAQgASgJIoEBCiBTaWduYWxXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBIOCgZydW5faWQYASABKAkSMwoGc2lnbmFsGAIgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1NpZ25hbBIYChBpbnZvY2F0aW9uX3Rva2VuGAMgASgJIv8CCidTaWduYWxPclN0YXJ0V29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QSFAoMd29ya2Zsb3dfa2V5GAEgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgDIAEoCRIdChVjcmVhdGVkX2J5X3N1YmplY3RfaWQYBCABKAkSMwoGc2lnbmFsGAYgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1NpZ25hbBIVCg1wcm92aWRlcl9uYW1lGAcgASgJEhgKEGludm9jYXRpb25fdG9rZW4YCCABKAkSFQoNZGVmaW5pdGlvbl9pZBgJIAEoCRIzCgZydW5fYXMYCiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EiYKBWlucHV0GAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBImCh5leHBlY3RlZF9kZWZpbml0aW9uX2dlbmVyYXRpb24YDCABKANKBAgCEAMiqgEKGVNpZ25hbFdvcmtmbG93UnVuUmVzcG9uc2USLQoDcnVuGAEgASgLMiAuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1bhIzCgZzaWduYWwYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U2lnbmFsEhMKC3N0YXJ0ZWRfcnVuGAMgASgIEhQKDHdvcmtmbG93X2tleRgEIAEoCSK8AQojRGVsaXZlcldvcmtmbG93UHJvdmlkZXJFdmVudFJlcXVlc3QSEAoIYXBwX25hbWUYASABKAkSMQoFZXZlbnQYAiABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnQSHwoXZGVsaXZlcmVkX2J5X3N1YmplY3RfaWQYAyABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgEIAEoCRIVCg1wcm92aWRlcl9uYW1lGAUgASgJIqQBChBXb3JrZmxvd1J1bkV2ZW50EgoKAmlkGAEgASgJEg4KBnJ1bl9pZBgCIAEoCRIPCgdzdGVwX2lkGAMgASgJEgwKBHR5cGUYBCABKAkSJQoEZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAiTwojR2V0V29ya2Zsb3dQcm92aWRlclJ1bkV2ZW50c1JlcXVlc3QSDgoGcnVuX2lkGAEgASgJEhgKEGludm9jYXRpb25fdG9rZW4YAiABKAkiXQokR2V0V29ya2Zsb3dQcm92aWRlclJ1bkV2ZW50c1Jlc3BvbnNlEjUKBmV2ZW50cxgBIAMoCzIlLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dSdW5FdmVudCJPCiNHZXRXb3JrZmxvd1Byb3ZpZGVyUnVuT3V0cHV0UmVxdWVzdBIOCgZydW5faWQYASABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgCIAEoCSJOCiRHZXRXb3JrZmxvd1Byb3ZpZGVyUnVuT3V0cHV0UmVzcG9uc2USJgoGb3V0cHV0GAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlKt8BChFXb3JrZmxvd1J1blN0YXR1cxIjCh9XT1JLRkxPV19SVU5fU1RBVFVTX1VOU1BFQ0lGSUVEEAASHwobV09SS0ZMT1dfUlVOX1NUQVRVU19QRU5ESU5HEAESHwobV09SS0ZMT1dfUlVOX1NUQVRVU19SVU5OSU5HEAISIQodV09SS0ZMT1dfUlVOX1NUQVRVU19TVUNDRUVERUQQAxIeChpXT1JLRkxPV19SVU5fU1RBVFVTX0ZBSUxFRBAEEiAKHFdPUktGTE9XX1JVTl9TVEFUVVNfQ0FOQ0VMRUQQBSqHAgoSV29ya2Zsb3dTdGVwU3RhdHVzEiQKIFdPUktGTE9XX1NURVBfU1RBVFVTX1VOU1BFQ0lGSUVEEAASIAocV09SS0ZMT1dfU1RFUF9TVEFUVVNfUEVORElORxABEiAKHFdPUktGTE9XX1NURVBfU1RBVFVTX1JVTk5JTkcQAhIgChxXT1JLRkxPV19TVEVQX1NUQVRVU19TS0lQUEVEEAMSIgoeV09SS0ZMT1dfU1RFUF9TVEFUVVNfU1VDQ0VFREVEEAQSHwobV09SS0ZMT1dfU1RFUF9TVEFUVVNfRkFJTEVEEAUSIAocV09SS0ZMT1dfU1RFUF9TVEFUVVNfVU5LTk9XThAGMo8OChBXb3JrZmxvd1Byb3ZpZGVyEncKD0FwcGx5RGVmaW5pdGlvbhI7Lmdlc3RhbHQucHJvdmlkZXIudjEuQXBwbHlXb3JrZmxvd1Byb3ZpZGVyRGVmaW5pdGlvblJlcXVlc3QaJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RGVmaW5pdGlvbhJzCg1HZXREZWZpbml0aW9uEjkuZ2VzdGFsdC5wcm92aWRlci52MS5HZXRXb3JrZmxvd1Byb3ZpZGVyRGVmaW5pdGlvblJlcXVlc3QaJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RGVmaW5pdGlvbhKMAQoPTGlzdERlZmluaXRpb25zEjsuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dQcm92aWRlckRlZmluaXRpb25zUmVxdWVzdBo8Lmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdFdvcmtmbG93UHJvdmlkZXJEZWZpbml0aW9uc1Jlc3BvbnNlEn8KE1NldERlZmluaXRpb25QYXVzZWQSPy5nZXN0YWx0LnByb3ZpZGVyLnYxLlNldFdvcmtmbG93UHJvdmlkZXJEZWZpbml0aW9uUGF1c2VkUmVxdWVzdBonLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dEZWZpbml0aW9uEn8KE1NldEFjdGl2YXRpb25QYXVzZWQSPy5nZXN0YWx0LnByb3ZpZGVyLnYxLlNldFdvcmtmbG93UHJvdmlkZXJBY3RpdmF0aW9uUGF1c2VkUmVxdWVzdBonLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dEZWZpbml0aW9uEmgKEERlbGV0ZURlZmluaXRpb24SPC5nZXN0YWx0LnByb3ZpZGVyLnYxLkRlbGV0ZVdvcmtmbG93UHJvdmlkZXJEZWZpbml0aW9uUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRJiCghTdGFydFJ1bhI0Lmdlc3RhbHQucHJvdmlkZXIudjEuU3RhcnRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBogLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dSdW4SdwoITGlzdFJ1bnMSNC5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyUnVuc1JlcXVlc3QaNS5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyUnVuc1Jlc3BvbnNlEl4KBkdldFJ1bhIyLmdlc3RhbHQucHJvdmlkZXIudjEuR2V0V29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QaIC5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UnVuEoMBCgxHZXRSdW5FdmVudHMSOC5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldFdvcmtmbG93UHJvdmlkZXJSdW5FdmVudHNSZXF1ZXN0GjkuZ2VzdGFsdC5wcm92aWRlci52MS5HZXRXb3JrZmxvd1Byb3ZpZGVyUnVuRXZlbnRzUmVzcG9uc2USgwEKDEdldFJ1bk91dHB1dBI4Lmdlc3RhbHQucHJvdmlkZXIudjEuR2V0V29ya2Zsb3dQcm92aWRlclJ1bk91dHB1dFJlcXVlc3QaOS5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldFdvcmtmbG93UHJvdmlkZXJSdW5PdXRwdXRSZXNwb25zZRJkCglDYW5jZWxSdW4SNS5nZXN0YWx0LnByb3ZpZGVyLnYxLkNhbmNlbFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0GiAuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1bhJyCglTaWduYWxSdW4SNS5nZXN0YWx0LnByb3ZpZGVyLnYxLlNpZ25hbFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0Gi4uZ2VzdGFsdC5wcm92aWRlci52MS5TaWduYWxXb3JrZmxvd1J1blJlc3BvbnNlEoABChBTaWduYWxPclN0YXJ0UnVuEjwuZ2VzdGFsdC5wcm92aWRlci52MS5TaWduYWxPclN0YXJ0V29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QaLi5nZXN0YWx0LnByb3ZpZGVyLnYxLlNpZ25hbFdvcmtmbG93UnVuUmVzcG9uc2USbAoMRGVsaXZlckV2ZW50EjguZ2VzdGFsdC5wcm92aWRlci52MS5EZWxpdmVyV29ya2Zsb3dQcm92aWRlckV2ZW50UmVxdWVzdBoiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudGIGcHJvdG8z", [file_google_protobuf_empty, file_google_protobuf_struct, file_google_protobuf_timestamp, file_v1_agent, file_v1_app]);
19
+ fileDesc("ChF2MS93b3JrZmxvdy5wcm90bxITZ2VzdGFsdC5wcm92aWRlci52MSJNChNCb3VuZFdvcmtmbG93VGFyZ2V0EjAKBXN0ZXBzGAggAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1N0ZXBKBAgBEAgivQMKDFdvcmtmbG93U3RlcBIKCgJpZBgBIAEoCRI9CgZpbnB1dHMYAiADKAsyLS5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U3RlcC5JbnB1dHNFbnRyeRIzCgR3aGVuGAMgASgLMiUuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1N0ZXBXaGVuEhcKD3RpbWVvdXRfc2Vjb25kcxgEIAEoBRIpCghtZXRhZGF0YRgGIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSNwoDYXBwGAogASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1N0ZXBBcHBDYWxsSAASOwoFYWdlbnQYCyABKAsyKi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U3RlcEFnZW50VHVybkgAGlEKC0lucHV0c0VudHJ5EgsKA2tleRgBIAEoCRIxCgV2YWx1ZRgCIAEoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dWYWx1ZToCOAFCCAoGYWN0aW9uSgQIBRAGSgQIBxAISgQICBAJSgQICRAKIqgBChNXb3JrZmxvd1N0ZXBBcHBDYWxsEgwKBG5hbWUYASABKAkSEQoJb3BlcmF0aW9uGAIgASgJEjEKBWlucHV0GAMgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1ZhbHVlEhIKCmNvbm5lY3Rpb24YBCABKAkSEAoIaW5zdGFuY2UYBSABKAkSFwoPY3JlZGVudGlhbF9tb2RlGAYgASgJItECChVXb3JrZmxvd1N0ZXBBZ2VudFR1cm4SEAoIcHJvdmlkZXIYASABKAkSDQoFbW9kZWwYAiABKAkSEwoLc2Vzc2lvbl9rZXkYAyABKAkSMQoGcHJvbXB0GAQgASgLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1RleHQSOwoIbWVzc2FnZXMYBSADKAsyKS5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93QWdlbnRNZXNzYWdlEjAKBXRvb2xzGAYgAygLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudFRvb2xSZWYSMAoGb3V0cHV0GAcgASgLMiAuZ2VzdGFsdC5wcm92aWRlci52MS5BZ2VudE91dHB1dBIuCg1tb2RlbF9vcHRpb25zGAggASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdCKAAQoUV29ya2Zsb3dBZ2VudE1lc3NhZ2USDAoEcm9sZRgBIAEoCRIvCgR0ZXh0GAIgASgLMiEuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1RleHQSKQoIbWV0YWRhdGEYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0IiAKDFdvcmtmbG93VGV4dBIQCgh0ZW1wbGF0ZRgBIAEoCSJtChBXb3JrZmxvd1N0ZXBXaGVuEjEKBXZhbHVlGAEgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1ZhbHVlEiYKBmVxdWFscxgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZSL8AwoNV29ya2Zsb3dWYWx1ZRIpCgdsaXRlcmFsGAEgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlSAASNQoGb2JqZWN0GAIgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd09iamVjdEgAEjMKBWFycmF5GAMgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FycmF5SAASNQoIdGVtcGxhdGUYBCABKAsyIS5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93VGV4dEgAEjgKBWlucHV0GAUgASgLMicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1BhdGhTb3VyY2VIABI5CgZzaWduYWwYBiABKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UGF0aFNvdXJjZUgAEkQKC3N0ZXBfb3V0cHV0GAkgASgLMi0uZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1N0ZXBPdXRwdXRTb3VyY2VIABJCCgpzdGVwX2lucHV0GAwgASgLMiwuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1N0ZXBJbnB1dFNvdXJjZUgAQgYKBGtpbmRKBAgHEAhKBAgIEAlKBAgKEAtKBAgLEAwipAEKDldvcmtmbG93T2JqZWN0Ej8KBmZpZWxkcxgBIAMoCzIvLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dPYmplY3QuRmllbGRzRW50cnkaUQoLRmllbGRzRW50cnkSCwoDa2V5GAEgASgJEjEKBXZhbHVlGAIgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1ZhbHVlOgI4ASJDCg1Xb3JrZmxvd0FycmF5EjIKBnZhbHVlcxgBIAMoCzIiLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dWYWx1ZSIiChJXb3JrZmxvd1BhdGhTb3VyY2USDAoEcGF0aBgBIAEoCSI5ChhXb3JrZmxvd1N0ZXBPdXRwdXRTb3VyY2USDwoHc3RlcF9pZBgBIAEoCRIMCgRwYXRoGAIgASgJIjgKF1dvcmtmbG93U3RlcElucHV0U291cmNlEg8KB3N0ZXBfaWQYASABKAkSDAoEcGF0aBgCIAEoCSLdAgoNV29ya2Zsb3dFdmVudBIKCgJpZBgBIAEoCRIOCgZzb3VyY2UYAiABKAkSFAoMc3BlY192ZXJzaW9uGAMgASgJEgwKBHR5cGUYBCABKAkSDwoHc3ViamVjdBgFIAEoCRIoCgR0aW1lGAYgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIXCg9kYXRhY29udGVudHR5cGUYByABKAkSJQoEZGF0YRgIIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSRgoKZXh0ZW5zaW9ucxgJIAMoCzIyLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudC5FeHRlbnNpb25zRW50cnkaSQoPRXh0ZW5zaW9uc0VudHJ5EgsKA2tleRgBIAEoCRIlCgV2YWx1ZRgCIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZToCOAEiQwoSV29ya2Zsb3dFdmVudE1hdGNoEgwKBHR5cGUYASABKAkSDgoGc291cmNlGAIgASgJEg8KB3N1YmplY3QYAyABKAkiPAoaV29ya2Zsb3dTY2hlZHVsZUFjdGl2YXRpb24SDAoEY3JvbhgBIAEoCRIQCgh0aW1lem9uZRgCIAEoCSJRChdXb3JrZmxvd0V2ZW50QWN0aXZhdGlvbhI2CgVtYXRjaBgBIAEoCzInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudE1hdGNoIvIBChJXb3JrZmxvd0FjdGl2YXRpb24SCgoCaWQYASABKAkSMQoFaW5wdXQYAiABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93VmFsdWUSDgoGcGF1c2VkGAMgASgIEkMKCHNjaGVkdWxlGAQgASgLMi8uZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1NjaGVkdWxlQWN0aXZhdGlvbkgAEj0KBWV2ZW50GAUgASgLMiwuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50QWN0aXZhdGlvbkgAQgkKB3RyaWdnZXIi4QEKFldvcmtmbG93RGVmaW5pdGlvblNwZWMSCgoCaWQYASABKAkSOAoGdGFyZ2V0GAIgASgLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Cb3VuZFdvcmtmbG93VGFyZ2V0EjwKC2FjdGl2YXRpb25zGAMgAygLMicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0FjdGl2YXRpb24SDgoGcGF1c2VkGAQgASgIEjMKBnJ1bl9hcxgFIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuU3ViamVjdENvbnRleHQihwMKEldvcmtmbG93RGVmaW5pdGlvbhIKCgJpZBgBIAEoCRISCgpnZW5lcmF0aW9uGAIgASgDEjgKBnRhcmdldBgDIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBI8CgthY3RpdmF0aW9ucxgEIAMoCzInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dBY3RpdmF0aW9uEg4KBnBhdXNlZBgFIAEoCBIdChVjcmVhdGVkX2J5X3N1YmplY3RfaWQYBiABKAkSLgoKY3JlYXRlZF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKdXBkYXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFQoNcHJvdmlkZXJfbmFtZRgJIAEoCRIzCgZydW5fYXMYCiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0IhcKFVdvcmtmbG93TWFudWFsVHJpZ2dlciJjChdXb3JrZmxvd1NjaGVkdWxlVHJpZ2dlchIVCg1hY3RpdmF0aW9uX2lkGAEgASgJEjEKDXNjaGVkdWxlZF9mb3IYAiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wImoKHldvcmtmbG93RXZlbnRUcmlnZ2VySW52b2NhdGlvbhIVCg1hY3RpdmF0aW9uX2lkGAEgASgJEjEKBWV2ZW50GAIgASgLMiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50IuIBChJXb3JrZmxvd1J1blRyaWdnZXISPAoGbWFudWFsGAEgASgLMiouZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd01hbnVhbFRyaWdnZXJIABJACghzY2hlZHVsZRgCIAEoCzIsLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTY2hlZHVsZVRyaWdnZXJIABJECgVldmVudBgDIAEoCzIzLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dFdmVudFRyaWdnZXJJbnZvY2F0aW9uSABCBgoEa2luZCK8AgoTV29ya2Zsb3dTdGVwQXR0ZW1wdBIKCgJpZBgBIAEoCRI3CgZzdGF0dXMYAiABKA4yJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U3RlcFN0YXR1cxIXCg9pZGVtcG90ZW5jeV9rZXkYAyABKAkSJQoFaW5wdXQYBCABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSJgoGb3V0cHV0GAUgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEhYKDnN0YXR1c19tZXNzYWdlGAYgASgJEi4KCnN0YXJ0ZWRfYXQYByABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wEjAKDGNvbXBsZXRlZF9hdBgIIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAi+wIKFVdvcmtmbG93U3RlcEV4ZWN1dGlvbhIPCgdzdGVwX2lkGAEgASgJEjcKBnN0YXR1cxgCIAEoDjInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTdGVwU3RhdHVzEjoKCGF0dGVtcHRzGAMgAygLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1N0ZXBBdHRlbXB0EiUKBWlucHV0GAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEiYKBm91dHB1dBgFIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIWCg5zdGF0dXNfbWVzc2FnZRgGIAEoCRITCgtza2lwX3JlYXNvbhgHIAEoCRIuCgpzdGFydGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsoFCgtXb3JrZmxvd1J1bhIKCgJpZBgBIAEoCRI2CgZzdGF0dXMYAiABKA4yJi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UnVuU3RhdHVzEjgKBnRhcmdldBgDIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBI4Cgd0cmlnZ2VyGAQgASgLMicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1blRyaWdnZXISLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKc3RhcnRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMY29tcGxldGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5zdGF0dXNfbWVzc2FnZRgIIAEoCRImCgZvdXRwdXQYCSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSHQoVY3JlYXRlZF9ieV9zdWJqZWN0X2lkGAogASgJEhQKDHdvcmtmbG93X2tleRgMIAEoCRIVCg1wcm92aWRlcl9uYW1lGA0gASgJEhUKDWRlZmluaXRpb25faWQYDiABKAkSMwoGcnVuX2FzGA8gASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBImCgVpbnB1dBgQIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSHQoVZGVmaW5pdGlvbl9nZW5lcmF0aW9uGBEgASgDEhcKD2N1cnJlbnRfc3RlcF9pZBgSIAEoCRI5CgVzdGVwcxgTIAMoCzIqLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTdGVwRXhlY3V0aW9uIvkBCg5Xb3JrZmxvd1NpZ25hbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEigKB3BheWxvYWQYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIdChVjcmVhdGVkX2J5X3N1YmplY3RfaWQYBSABKAkSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoPaWRlbXBvdGVuY3lfa2V5GAcgASgJEhAKCHNlcXVlbmNlGAggASgDIoICCiZBcHBseVdvcmtmbG93UHJvdmlkZXJEZWZpbml0aW9uUmVxdWVzdBIVCg1wcm92aWRlcl9uYW1lGAEgASgJEjkKBHNwZWMYAiABKAsyKy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RGVmaW5pdGlvblNwZWMSFwoPaWRlbXBvdGVuY3lfa2V5GAQgASgJEh8KF3JlcXVlc3RlZF9ieV9zdWJqZWN0X2lkGAUgASgJEjQKB2NvbnRleHQYBiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0SgQIAxAEUhBpbnZvY2F0aW9uX3Rva2VuIosBCiRHZXRXb3JrZmxvd1Byb3ZpZGVyRGVmaW5pdGlvblJlcXVlc3QSFQoNZGVmaW5pdGlvbl9pZBgBIAEoCRI0Cgdjb250ZXh0GAMgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5SZXF1ZXN0Q29udGV4dEoECAIQA1IQaW52b2NhdGlvbl90b2tlbiJ2CiZMaXN0V29ya2Zsb3dQcm92aWRlckRlZmluaXRpb25zUmVxdWVzdBI0Cgdjb250ZXh0GAIgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5SZXF1ZXN0Q29udGV4dEoECAEQAlIQaW52b2NhdGlvbl90b2tlbiJnCidMaXN0V29ya2Zsb3dQcm92aWRlckRlZmluaXRpb25zUmVzcG9uc2USPAoLZGVmaW5pdGlvbnMYASADKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RGVmaW5pdGlvbiLCAQoqU2V0V29ya2Zsb3dQcm92aWRlckRlZmluaXRpb25QYXVzZWRSZXF1ZXN0EhUKDWRlZmluaXRpb25faWQYASABKAkSDgoGcGF1c2VkGAIgASgIEh8KF3JlcXVlc3RlZF9ieV9zdWJqZWN0X2lkGAQgASgJEjQKB2NvbnRleHQYBSABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0SgQIAxAEUhBpbnZvY2F0aW9uX3Rva2VuItkBCipTZXRXb3JrZmxvd1Byb3ZpZGVyQWN0aXZhdGlvblBhdXNlZFJlcXVlc3QSFQoNZGVmaW5pdGlvbl9pZBgBIAEoCRIVCg1hY3RpdmF0aW9uX2lkGAIgASgJEg4KBnBhdXNlZBgDIAEoCBIfChdyZXF1ZXN0ZWRfYnlfc3ViamVjdF9pZBgFIAEoCRI0Cgdjb250ZXh0GAYgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5SZXF1ZXN0Q29udGV4dEoECAQQBVIQaW52b2NhdGlvbl90b2tlbiKOAQonRGVsZXRlV29ya2Zsb3dQcm92aWRlckRlZmluaXRpb25SZXF1ZXN0EhUKDWRlZmluaXRpb25faWQYASABKAkSNAoHY29udGV4dBgDIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHRKBAgCEANSEGludm9jYXRpb25fdG9rZW4i9gIKH1N0YXJ0V29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QSFwoPaWRlbXBvdGVuY3lfa2V5GAIgASgJEh0KFWNyZWF0ZWRfYnlfc3ViamVjdF9pZBgEIAEoCRIUCgx3b3JrZmxvd19rZXkYBiABKAkSFQoNcHJvdmlkZXJfbmFtZRgHIAEoCRIVCg1kZWZpbml0aW9uX2lkGAkgASgJEjMKBnJ1bl9hcxgKIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuU3ViamVjdENvbnRleHQSJgoFaW5wdXQYCyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EiYKHmV4cGVjdGVkX2RlZmluaXRpb25fZ2VuZXJhdGlvbhgMIAEoAxI0Cgdjb250ZXh0GA0gASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5SZXF1ZXN0Q29udGV4dEoECAEQAkoECAgQCVIQaW52b2NhdGlvbl90b2tlbiJ9Ch1HZXRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBIOCgZydW5faWQYAiABKAkSNAoHY29udGV4dBgEIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHRKBAgDEARSEGludm9jYXRpb25fdG9rZW4i4gEKH0xpc3RXb3JrZmxvd1Byb3ZpZGVyUnVuc1JlcXVlc3QSEQoJcGFnZV9zaXplGAEgASgFEhIKCnBhZ2VfdG9rZW4YAiABKAkSNgoGc3RhdHVzGAMgASgOMiYuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1blN0YXR1cxISCgp0YXJnZXRfYXBwGAUgASgJEjQKB2NvbnRleHQYBiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0SgQIBBAFUhBpbnZvY2F0aW9uX3Rva2VuImsKIExpc3RXb3JrZmxvd1Byb3ZpZGVyUnVuc1Jlc3BvbnNlEi4KBHJ1bnMYASADKAsyIC5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UnVuEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKQAQogQ2FuY2VsV29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QSDgoGcnVuX2lkGAIgASgJEg4KBnJlYXNvbhgDIAEoCRI0Cgdjb250ZXh0GAUgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5SZXF1ZXN0Q29udGV4dEoECAQQBVIQaW52b2NhdGlvbl90b2tlbiK1AQogU2lnbmFsV29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QSDgoGcnVuX2lkGAEgASgJEjMKBnNpZ25hbBgCIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTaWduYWwSNAoHY29udGV4dBgEIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHRKBAgDEARSEGludm9jYXRpb25fdG9rZW4iswMKJ1NpZ25hbE9yU3RhcnRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBIUCgx3b3JrZmxvd19rZXkYASABKAkSFwoPaWRlbXBvdGVuY3lfa2V5GAMgASgJEh0KFWNyZWF0ZWRfYnlfc3ViamVjdF9pZBgEIAEoCRIzCgZzaWduYWwYBiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U2lnbmFsEhUKDXByb3ZpZGVyX25hbWUYByABKAkSFQoNZGVmaW5pdGlvbl9pZBgJIAEoCRIzCgZydW5fYXMYCiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EiYKBWlucHV0GAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBImCh5leHBlY3RlZF9kZWZpbml0aW9uX2dlbmVyYXRpb24YDCABKAMSNAoHY29udGV4dBgNIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHRKBAgIEAlKBAgCEANSEGludm9jYXRpb25fdG9rZW4iqgEKGVNpZ25hbFdvcmtmbG93UnVuUmVzcG9uc2USLQoDcnVuGAEgASgLMiAuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1bhIzCgZzaWduYWwYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U2lnbmFsEhMKC3N0YXJ0ZWRfcnVuGAMgASgIEhQKDHdvcmtmbG93X2tleRgEIAEoCSLwAQojRGVsaXZlcldvcmtmbG93UHJvdmlkZXJFdmVudFJlcXVlc3QSEAoIYXBwX25hbWUYASABKAkSMQoFZXZlbnQYAiABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnQSHwoXZGVsaXZlcmVkX2J5X3N1YmplY3RfaWQYAyABKAkSFQoNcHJvdmlkZXJfbmFtZRgFIAEoCRI0Cgdjb250ZXh0GAYgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5SZXF1ZXN0Q29udGV4dEoECAQQBVIQaW52b2NhdGlvbl90b2tlbiKkAQoQV29ya2Zsb3dSdW5FdmVudBIKCgJpZBgBIAEoCRIOCgZydW5faWQYAiABKAkSDwoHc3RlcF9pZBgDIAEoCRIMCgR0eXBlGAQgASgJEiUKBGRhdGEYBSABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0Ei4KCmNyZWF0ZWRfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIoMBCiNHZXRXb3JrZmxvd1Byb3ZpZGVyUnVuRXZlbnRzUmVxdWVzdBIOCgZydW5faWQYASABKAkSNAoHY29udGV4dBgDIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHRKBAgCEANSEGludm9jYXRpb25fdG9rZW4iXQokR2V0V29ya2Zsb3dQcm92aWRlclJ1bkV2ZW50c1Jlc3BvbnNlEjUKBmV2ZW50cxgBIAMoCzIlLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dSdW5FdmVudCKDAQojR2V0V29ya2Zsb3dQcm92aWRlclJ1bk91dHB1dFJlcXVlc3QSDgoGcnVuX2lkGAEgASgJEjQKB2NvbnRleHQYAyABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0SgQIAhADUhBpbnZvY2F0aW9uX3Rva2VuIk4KJEdldFdvcmtmbG93UHJvdmlkZXJSdW5PdXRwdXRSZXNwb25zZRImCgZvdXRwdXQYASABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUq3wEKEVdvcmtmbG93UnVuU3RhdHVzEiMKH1dPUktGTE9XX1JVTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIfChtXT1JLRkxPV19SVU5fU1RBVFVTX1BFTkRJTkcQARIfChtXT1JLRkxPV19SVU5fU1RBVFVTX1JVTk5JTkcQAhIhCh1XT1JLRkxPV19SVU5fU1RBVFVTX1NVQ0NFRURFRBADEh4KGldPUktGTE9XX1JVTl9TVEFUVVNfRkFJTEVEEAQSIAocV09SS0ZMT1dfUlVOX1NUQVRVU19DQU5DRUxFRBAFKocCChJXb3JrZmxvd1N0ZXBTdGF0dXMSJAogV09SS0ZMT1dfU1RFUF9TVEFUVVNfVU5TUEVDSUZJRUQQABIgChxXT1JLRkxPV19TVEVQX1NUQVRVU19QRU5ESU5HEAESIAocV09SS0ZMT1dfU1RFUF9TVEFUVVNfUlVOTklORxACEiAKHFdPUktGTE9XX1NURVBfU1RBVFVTX1NLSVBQRUQQAxIiCh5XT1JLRkxPV19TVEVQX1NUQVRVU19TVUNDRUVERUQQBBIfChtXT1JLRkxPV19TVEVQX1NUQVRVU19GQUlMRUQQBRIgChxXT1JLRkxPV19TVEVQX1NUQVRVU19VTktOT1dOEAYyjw4KEFdvcmtmbG93UHJvdmlkZXISdwoPQXBwbHlEZWZpbml0aW9uEjsuZ2VzdGFsdC5wcm92aWRlci52MS5BcHBseVdvcmtmbG93UHJvdmlkZXJEZWZpbml0aW9uUmVxdWVzdBonLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dEZWZpbml0aW9uEnMKDUdldERlZmluaXRpb24SOS5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldFdvcmtmbG93UHJvdmlkZXJEZWZpbml0aW9uUmVxdWVzdBonLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dEZWZpbml0aW9uEowBCg9MaXN0RGVmaW5pdGlvbnMSOy5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyRGVmaW5pdGlvbnNSZXF1ZXN0GjwuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dQcm92aWRlckRlZmluaXRpb25zUmVzcG9uc2USfwoTU2V0RGVmaW5pdGlvblBhdXNlZBI/Lmdlc3RhbHQucHJvdmlkZXIudjEuU2V0V29ya2Zsb3dQcm92aWRlckRlZmluaXRpb25QYXVzZWRSZXF1ZXN0GicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0RlZmluaXRpb24SfwoTU2V0QWN0aXZhdGlvblBhdXNlZBI/Lmdlc3RhbHQucHJvdmlkZXIudjEuU2V0V29ya2Zsb3dQcm92aWRlckFjdGl2YXRpb25QYXVzZWRSZXF1ZXN0GicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0RlZmluaXRpb24SaAoQRGVsZXRlRGVmaW5pdGlvbhI8Lmdlc3RhbHQucHJvdmlkZXIudjEuRGVsZXRlV29ya2Zsb3dQcm92aWRlckRlZmluaXRpb25SZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5EmIKCFN0YXJ0UnVuEjQuZ2VzdGFsdC5wcm92aWRlci52MS5TdGFydFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0GiAuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1bhJ3CghMaXN0UnVucxI0Lmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdFdvcmtmbG93UHJvdmlkZXJSdW5zUmVxdWVzdBo1Lmdlc3RhbHQucHJvdmlkZXIudjEuTGlzdFdvcmtmbG93UHJvdmlkZXJSdW5zUmVzcG9uc2USXgoGR2V0UnVuEjIuZ2VzdGFsdC5wcm92aWRlci52MS5HZXRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBogLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dSdW4SgwEKDEdldFJ1bkV2ZW50cxI4Lmdlc3RhbHQucHJvdmlkZXIudjEuR2V0V29ya2Zsb3dQcm92aWRlclJ1bkV2ZW50c1JlcXVlc3QaOS5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldFdvcmtmbG93UHJvdmlkZXJSdW5FdmVudHNSZXNwb25zZRKDAQoMR2V0UnVuT3V0cHV0EjguZ2VzdGFsdC5wcm92aWRlci52MS5HZXRXb3JrZmxvd1Byb3ZpZGVyUnVuT3V0cHV0UmVxdWVzdBo5Lmdlc3RhbHQucHJvdmlkZXIudjEuR2V0V29ya2Zsb3dQcm92aWRlclJ1bk91dHB1dFJlc3BvbnNlEmQKCUNhbmNlbFJ1bhI1Lmdlc3RhbHQucHJvdmlkZXIudjEuQ2FuY2VsV29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QaIC5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UnVuEnIKCVNpZ25hbFJ1bhI1Lmdlc3RhbHQucHJvdmlkZXIudjEuU2lnbmFsV29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QaLi5nZXN0YWx0LnByb3ZpZGVyLnYxLlNpZ25hbFdvcmtmbG93UnVuUmVzcG9uc2USgAEKEFNpZ25hbE9yU3RhcnRSdW4SPC5nZXN0YWx0LnByb3ZpZGVyLnYxLlNpZ25hbE9yU3RhcnRXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBouLmdlc3RhbHQucHJvdmlkZXIudjEuU2lnbmFsV29ya2Zsb3dSdW5SZXNwb25zZRJsCgxEZWxpdmVyRXZlbnQSOC5nZXN0YWx0LnByb3ZpZGVyLnYxLkRlbGl2ZXJXb3JrZmxvd1Byb3ZpZGVyRXZlbnRSZXF1ZXN0GiIuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd0V2ZW50YgZwcm90bzM", [file_google_protobuf_empty, file_google_protobuf_struct, file_google_protobuf_timestamp, file_v1_agent, file_v1_app]);
20
20
 
21
21
  /**
22
22
  * @generated from message gestalt.provider.v1.BoundWorkflowTarget
@@ -1044,11 +1044,6 @@ export type ApplyWorkflowProviderDefinitionRequest = Message<"gestalt.provider.v
1044
1044
  */
1045
1045
  spec?: WorkflowDefinitionSpec | undefined;
1046
1046
 
1047
- /**
1048
- * @generated from field: string invocation_token = 3;
1049
- */
1050
- invocationToken: string;
1051
-
1052
1047
  /**
1053
1048
  * @generated from field: string idempotency_key = 4;
1054
1049
  */
@@ -1058,6 +1053,11 @@ export type ApplyWorkflowProviderDefinitionRequest = Message<"gestalt.provider.v
1058
1053
  * @generated from field: string requested_by_subject_id = 5;
1059
1054
  */
1060
1055
  requestedBySubjectId: string;
1056
+
1057
+ /**
1058
+ * @generated from field: gestalt.provider.v1.RequestContext context = 6;
1059
+ */
1060
+ context?: RequestContext | undefined;
1061
1061
  };
1062
1062
 
1063
1063
  /**
@@ -1077,9 +1077,9 @@ export type GetWorkflowProviderDefinitionRequest = Message<"gestalt.provider.v1.
1077
1077
  definitionId: string;
1078
1078
 
1079
1079
  /**
1080
- * @generated from field: string invocation_token = 2;
1080
+ * @generated from field: gestalt.provider.v1.RequestContext context = 3;
1081
1081
  */
1082
- invocationToken: string;
1082
+ context?: RequestContext | undefined;
1083
1083
  };
1084
1084
 
1085
1085
  /**
@@ -1094,9 +1094,9 @@ export const GetWorkflowProviderDefinitionRequestSchema: GenMessage<GetWorkflowP
1094
1094
  */
1095
1095
  export type ListWorkflowProviderDefinitionsRequest = Message<"gestalt.provider.v1.ListWorkflowProviderDefinitionsRequest"> & {
1096
1096
  /**
1097
- * @generated from field: string invocation_token = 1;
1097
+ * @generated from field: gestalt.provider.v1.RequestContext context = 2;
1098
1098
  */
1099
- invocationToken: string;
1099
+ context?: RequestContext | undefined;
1100
1100
  };
1101
1101
 
1102
1102
  /**
@@ -1138,14 +1138,14 @@ export type SetWorkflowProviderDefinitionPausedRequest = Message<"gestalt.provid
1138
1138
  paused: boolean;
1139
1139
 
1140
1140
  /**
1141
- * @generated from field: string invocation_token = 3;
1141
+ * @generated from field: string requested_by_subject_id = 4;
1142
1142
  */
1143
- invocationToken: string;
1143
+ requestedBySubjectId: string;
1144
1144
 
1145
1145
  /**
1146
- * @generated from field: string requested_by_subject_id = 4;
1146
+ * @generated from field: gestalt.provider.v1.RequestContext context = 5;
1147
1147
  */
1148
- requestedBySubjectId: string;
1148
+ context?: RequestContext | undefined;
1149
1149
  };
1150
1150
 
1151
1151
  /**
@@ -1175,14 +1175,14 @@ export type SetWorkflowProviderActivationPausedRequest = Message<"gestalt.provid
1175
1175
  paused: boolean;
1176
1176
 
1177
1177
  /**
1178
- * @generated from field: string invocation_token = 4;
1178
+ * @generated from field: string requested_by_subject_id = 5;
1179
1179
  */
1180
- invocationToken: string;
1180
+ requestedBySubjectId: string;
1181
1181
 
1182
1182
  /**
1183
- * @generated from field: string requested_by_subject_id = 5;
1183
+ * @generated from field: gestalt.provider.v1.RequestContext context = 6;
1184
1184
  */
1185
- requestedBySubjectId: string;
1185
+ context?: RequestContext | undefined;
1186
1186
  };
1187
1187
 
1188
1188
  /**
@@ -1202,9 +1202,9 @@ export type DeleteWorkflowProviderDefinitionRequest = Message<"gestalt.provider.
1202
1202
  definitionId: string;
1203
1203
 
1204
1204
  /**
1205
- * @generated from field: string invocation_token = 2;
1205
+ * @generated from field: gestalt.provider.v1.RequestContext context = 3;
1206
1206
  */
1207
- invocationToken: string;
1207
+ context?: RequestContext | undefined;
1208
1208
  };
1209
1209
 
1210
1210
  /**
@@ -1238,11 +1238,6 @@ export type StartWorkflowProviderRunRequest = Message<"gestalt.provider.v1.Start
1238
1238
  */
1239
1239
  providerName: string;
1240
1240
 
1241
- /**
1242
- * @generated from field: string invocation_token = 8;
1243
- */
1244
- invocationToken: string;
1245
-
1246
1241
  /**
1247
1242
  * @generated from field: string definition_id = 9;
1248
1243
  */
@@ -1262,6 +1257,11 @@ export type StartWorkflowProviderRunRequest = Message<"gestalt.provider.v1.Start
1262
1257
  * @generated from field: int64 expected_definition_generation = 12;
1263
1258
  */
1264
1259
  expectedDefinitionGeneration: bigint;
1260
+
1261
+ /**
1262
+ * @generated from field: gestalt.provider.v1.RequestContext context = 13;
1263
+ */
1264
+ context?: RequestContext | undefined;
1265
1265
  };
1266
1266
 
1267
1267
  /**
@@ -1281,9 +1281,9 @@ export type GetWorkflowProviderRunRequest = Message<"gestalt.provider.v1.GetWork
1281
1281
  runId: string;
1282
1282
 
1283
1283
  /**
1284
- * @generated from field: string invocation_token = 3;
1284
+ * @generated from field: gestalt.provider.v1.RequestContext context = 4;
1285
1285
  */
1286
- invocationToken: string;
1286
+ context?: RequestContext | undefined;
1287
1287
  };
1288
1288
 
1289
1289
  /**
@@ -1313,14 +1313,14 @@ export type ListWorkflowProviderRunsRequest = Message<"gestalt.provider.v1.ListW
1313
1313
  status: WorkflowRunStatus;
1314
1314
 
1315
1315
  /**
1316
- * @generated from field: string invocation_token = 4;
1316
+ * @generated from field: string target_app = 5;
1317
1317
  */
1318
- invocationToken: string;
1318
+ targetApp: string;
1319
1319
 
1320
1320
  /**
1321
- * @generated from field: string target_app = 5;
1321
+ * @generated from field: gestalt.provider.v1.RequestContext context = 6;
1322
1322
  */
1323
- targetApp: string;
1323
+ context?: RequestContext | undefined;
1324
1324
  };
1325
1325
 
1326
1326
  /**
@@ -1367,9 +1367,9 @@ export type CancelWorkflowProviderRunRequest = Message<"gestalt.provider.v1.Canc
1367
1367
  reason: string;
1368
1368
 
1369
1369
  /**
1370
- * @generated from field: string invocation_token = 4;
1370
+ * @generated from field: gestalt.provider.v1.RequestContext context = 5;
1371
1371
  */
1372
- invocationToken: string;
1372
+ context?: RequestContext | undefined;
1373
1373
  };
1374
1374
 
1375
1375
  /**
@@ -1394,9 +1394,9 @@ export type SignalWorkflowProviderRunRequest = Message<"gestalt.provider.v1.Sign
1394
1394
  signal?: WorkflowSignal | undefined;
1395
1395
 
1396
1396
  /**
1397
- * @generated from field: string invocation_token = 3;
1397
+ * @generated from field: gestalt.provider.v1.RequestContext context = 4;
1398
1398
  */
1399
- invocationToken: string;
1399
+ context?: RequestContext | undefined;
1400
1400
  };
1401
1401
 
1402
1402
  /**
@@ -1435,11 +1435,6 @@ export type SignalOrStartWorkflowProviderRunRequest = Message<"gestalt.provider.
1435
1435
  */
1436
1436
  providerName: string;
1437
1437
 
1438
- /**
1439
- * @generated from field: string invocation_token = 8;
1440
- */
1441
- invocationToken: string;
1442
-
1443
1438
  /**
1444
1439
  * @generated from field: string definition_id = 9;
1445
1440
  */
@@ -1459,6 +1454,11 @@ export type SignalOrStartWorkflowProviderRunRequest = Message<"gestalt.provider.
1459
1454
  * @generated from field: int64 expected_definition_generation = 12;
1460
1455
  */
1461
1456
  expectedDefinitionGeneration: bigint;
1457
+
1458
+ /**
1459
+ * @generated from field: gestalt.provider.v1.RequestContext context = 13;
1460
+ */
1461
+ context?: RequestContext | undefined;
1462
1462
  };
1463
1463
 
1464
1464
  /**
@@ -1520,14 +1520,14 @@ export type DeliverWorkflowProviderEventRequest = Message<"gestalt.provider.v1.D
1520
1520
  deliveredBySubjectId: string;
1521
1521
 
1522
1522
  /**
1523
- * @generated from field: string invocation_token = 4;
1523
+ * @generated from field: string provider_name = 5;
1524
1524
  */
1525
- invocationToken: string;
1525
+ providerName: string;
1526
1526
 
1527
1527
  /**
1528
- * @generated from field: string provider_name = 5;
1528
+ * @generated from field: gestalt.provider.v1.RequestContext context = 6;
1529
1529
  */
1530
- providerName: string;
1530
+ context?: RequestContext | undefined;
1531
1531
  };
1532
1532
 
1533
1533
  /**
@@ -1589,9 +1589,9 @@ export type GetWorkflowProviderRunEventsRequest = Message<"gestalt.provider.v1.G
1589
1589
  runId: string;
1590
1590
 
1591
1591
  /**
1592
- * @generated from field: string invocation_token = 2;
1592
+ * @generated from field: gestalt.provider.v1.RequestContext context = 3;
1593
1593
  */
1594
- invocationToken: string;
1594
+ context?: RequestContext | undefined;
1595
1595
  };
1596
1596
 
1597
1597
  /**
@@ -1628,9 +1628,9 @@ export type GetWorkflowProviderRunOutputRequest = Message<"gestalt.provider.v1.G
1628
1628
  runId: string;
1629
1629
 
1630
1630
  /**
1631
- * @generated from field: string invocation_token = 2;
1631
+ * @generated from field: gestalt.provider.v1.RequestContext context = 3;
1632
1632
  */
1633
- invocationToken: string;
1633
+ context?: RequestContext | undefined;
1634
1634
  };
1635
1635
 
1636
1636
  /**
package/src/runtime.ts CHANGED
@@ -55,6 +55,8 @@ import {
55
55
  type HTTPSubjectRequest as ProtoHTTPSubjectRequest,
56
56
  type RequestContext as ProtoRequestContext,
57
57
  type ResolveHTTPSubjectRequest as ProtoResolveHTTPSubjectRequest,
58
+ type SubjectContext as ProtoSubjectContext,
59
+ type SubjectPermissionContext as ProtoSubjectPermissionContext,
58
60
  AppProvider as AppProviderService,
59
61
  StartProviderResponseSchema,
60
62
  type ExecuteRequest,
@@ -75,7 +77,14 @@ import {
75
77
  } from "./internal/gen/v1/runtime_pb.ts";
76
78
  import { S3 as S3Service } from "./internal/gen/v1/s3_pb.ts";
77
79
  import { WorkflowProvider as WorkflowProviderService } from "./internal/gen/v1/workflow_pb.ts";
78
- import { errorMessage, parseSubjectId, type OperationResult, type Request } from "./api.ts";
80
+ import {
81
+ errorMessage,
82
+ parseSubjectId,
83
+ type OperationResult,
84
+ type Request,
85
+ type Subject,
86
+ type SubjectPermission,
87
+ } from "./api.ts";
79
88
  import {
80
89
  AgentProvider,
81
90
  createAgentProviderService,
@@ -582,17 +591,16 @@ export function createProviderService(
582
591
  },
583
592
  async execute(request: ExecuteRequest) {
584
593
  return operationResultToProto(
585
- await provider.execute(
586
- request.operation,
587
- objectFromUnknown(request.params),
594
+ await provider.execute(
595
+ request.operation,
596
+ objectFromUnknown(request.params),
588
597
  providerRequest(
589
598
  request.token,
590
599
  request.connectionParams,
591
600
  request.context,
592
- request.invocationToken,
593
601
  request.idempotencyKey,
594
602
  ),
595
- ),
603
+ ),
596
604
  );
597
605
  },
598
606
  async resolveHTTPSubject(request: ProtoResolveHTTPSubjectRequest) {
@@ -620,6 +628,7 @@ export function createProviderService(
620
628
  id: subject.id,
621
629
  credentialSubjectId: subject.credentialSubjectId ?? "",
622
630
  email: subject.email ?? "",
631
+ displayName: subject.displayName ?? "",
623
632
  },
624
633
  }
625
634
  : {});
@@ -818,11 +827,8 @@ function providerRequest(
818
827
  token: string,
819
828
  connectionParams: Record<string, string>,
820
829
  requestContext?: ProtoRequestContext,
821
- invocationToken = "",
822
830
  idempotencyKey = "",
823
831
  ): Request {
824
- const subject = requestContext?.subject;
825
- const agentSubject = requestContext?.agentSubject;
826
832
  const credential = requestContext?.credential;
827
833
  const access = requestContext?.access;
828
834
  const host = requestContext?.host;
@@ -831,18 +837,8 @@ function providerRequest(
831
837
  connectionParams: {
832
838
  ...connectionParams,
833
839
  },
834
- subject: {
835
- id: subject?.id ?? "",
836
- credentialSubjectId: subject?.credentialSubjectId ?? "",
837
- email: subject?.email ?? "",
838
- kind: subjectKind(subject?.id ?? ""),
839
- },
840
- agentSubject: {
841
- id: agentSubject?.id ?? "",
842
- credentialSubjectId: agentSubject?.credentialSubjectId ?? "",
843
- email: agentSubject?.email ?? "",
844
- kind: subjectKind(agentSubject?.id ?? ""),
845
- },
840
+ subject: providerSubject(requestContext?.subject),
841
+ agentSubject: providerSubject(requestContext?.agentSubject),
846
842
  credential: {
847
843
  mode: credential?.mode ?? "",
848
844
  subjectId: credential?.subjectId ?? "",
@@ -861,11 +857,32 @@ function providerRequest(
861
857
  host: {
862
858
  publicBaseUrl: host?.publicBaseUrl ?? "",
863
859
  },
864
- invocationToken,
860
+ __requestContext: requestContext,
865
861
  idempotencyKey: idempotencyKey.trim(),
866
862
  };
867
863
  }
868
864
 
865
+ function providerSubject(subject?: ProtoSubjectContext): Subject {
866
+ return {
867
+ id: subject?.id ?? "",
868
+ credentialSubjectId: subject?.credentialSubjectId ?? "",
869
+ email: subject?.email ?? "",
870
+ displayName: subject?.displayName ?? "",
871
+ scopes: [...(subject?.scopes ?? [])],
872
+ permissions: subjectPermissionsFromProto(subject?.permissions),
873
+ kind: subjectKind(subject?.id ?? ""),
874
+ };
875
+ }
876
+
877
+ function subjectPermissionsFromProto(
878
+ permissions?: readonly ProtoSubjectPermissionContext[] | undefined,
879
+ ): SubjectPermission[] {
880
+ return permissions?.map((permission) => ({
881
+ app: permission.app,
882
+ operations: permission.allOperations ? [] : [...permission.operations],
883
+ })) ?? [];
884
+ }
885
+
869
886
  function subjectKind(subjectID: string): string {
870
887
  return parseSubjectId(subjectID)?.kind ?? "";
871
888
  }
@@ -179,21 +179,18 @@ export interface Workflow {
179
179
  /**
180
180
  * Client for applying workflow definitions and controlling durable runs.
181
181
  *
182
- * The constructor accepts either a Gestalt request or an invocation token. Each
183
- * workflow call forwards that token to the workflow-provider facade. When
184
- * constructed from a request, mutating calls reuse the request idempotency key
185
- * unless the call provides one explicitly.
182
+ * Mutating calls reuse the request idempotency key unless the call provides one
183
+ * explicitly.
186
184
  */
187
185
  class WorkflowImpl implements Workflow {
188
186
  private readonly client: Client<typeof WorkflowProviderService>;
189
- private readonly invocationToken: string;
187
+ private readonly context: Request["__requestContext"];
190
188
  private readonly idempotencyKey: string;
191
189
 
192
190
  constructor(request: Request);
193
- constructor(invocationToken: string);
194
- constructor(requestOrToken: Request | string) {
195
- this.invocationToken = normalizeInvocationToken(requestOrToken);
196
- this.idempotencyKey = normalizeIdempotencyKey(requestOrToken);
191
+ constructor(request: Request) {
192
+ this.context = request.__requestContext;
193
+ this.idempotencyKey = request.idempotencyKey.trim();
197
194
 
198
195
  const target = process.env[ENV_HOST_SERVICE_SOCKET]?.trim();
199
196
  if (!target) {
@@ -220,7 +217,7 @@ class WorkflowImpl implements Workflow {
220
217
  await this.client.applyDefinition({
221
218
  providerName: request.providerName,
222
219
  spec: workflowDefinitionSpecToProto(request.spec),
223
- invocationToken: this.invocationToken,
220
+ context: this.context,
224
221
  idempotencyKey: request.idempotencyKey?.trim() || this.idempotencyKey,
225
222
  requestedBySubjectId: request.requestedBySubjectId ?? "",
226
223
  }),
@@ -237,19 +234,19 @@ class WorkflowImpl implements Workflow {
237
234
  workflowDefinitionFromProto(
238
235
  await this.client.getDefinition({
239
236
  definitionId: request.definitionId,
240
- invocationToken: this.invocationToken,
237
+ context: this.context,
241
238
  }),
242
239
  ),
243
240
  "Workflow.getDefinition returned no definition",
244
241
  );
245
242
  }
246
243
 
247
- /** Lists workflow definitions visible to the current invocation token. */
244
+ /** Lists workflow definitions visible to the request context. */
248
245
  async listDefinitions(
249
246
  _request: WorkflowListDefinitions = {},
250
247
  ): Promise<readonly WorkflowDefinition[]> {
251
248
  const response = await this.client.listDefinitions({
252
- invocationToken: this.invocationToken,
249
+ context: this.context,
253
250
  });
254
251
  return response.definitions.map((definition) =>
255
252
  requireDefinition(workflowDefinitionFromProto(definition), "Workflow.listDefinitions returned an empty definition")
@@ -265,7 +262,7 @@ class WorkflowImpl implements Workflow {
265
262
  await this.client.setDefinitionPaused({
266
263
  definitionId: request.definitionId,
267
264
  paused: request.paused,
268
- invocationToken: this.invocationToken,
265
+ context: this.context,
269
266
  requestedBySubjectId: request.requestedBySubjectId ?? "",
270
267
  }),
271
268
  ),
@@ -283,7 +280,7 @@ class WorkflowImpl implements Workflow {
283
280
  definitionId: request.definitionId,
284
281
  activationId: request.activationId,
285
282
  paused: request.paused,
286
- invocationToken: this.invocationToken,
283
+ context: this.context,
287
284
  requestedBySubjectId: request.requestedBySubjectId ?? "",
288
285
  }),
289
286
  ),
@@ -297,7 +294,7 @@ class WorkflowImpl implements Workflow {
297
294
  ): Promise<void> {
298
295
  await this.client.deleteDefinition({
299
296
  definitionId: request.definitionId,
300
- invocationToken: this.invocationToken,
297
+ context: this.context,
301
298
  });
302
299
  }
303
300
 
@@ -314,7 +311,7 @@ class WorkflowImpl implements Workflow {
314
311
  input: structFromObject(request.input),
315
312
  idempotencyKey: request.idempotencyKey?.trim() || this.idempotencyKey,
316
313
  workflowKey: request.workflowKey ?? "",
317
- invocationToken: this.invocationToken,
314
+ context: this.context,
318
315
  createdBySubjectId: request.createdBySubjectId ?? "",
319
316
  runAs: subjectToProto(request.runAs),
320
317
  }),
@@ -331,14 +328,14 @@ class WorkflowImpl implements Workflow {
331
328
  workflowRunFromProto(
332
329
  await this.client.getRun({
333
330
  runId: request.runId,
334
- invocationToken: this.invocationToken,
331
+ context: this.context,
335
332
  }),
336
333
  ),
337
334
  "Workflow.getRun returned no run",
338
335
  );
339
336
  }
340
337
 
341
- /** Lists workflow runs visible to the current invocation token. */
338
+ /** Lists workflow runs visible to the request context. */
342
339
  async listRuns(
343
340
  request: WorkflowListRuns = {},
344
341
  ): Promise<{ runs: readonly WorkflowRun[]; nextPageToken?: string | undefined }> {
@@ -347,7 +344,7 @@ class WorkflowImpl implements Workflow {
347
344
  pageToken: request.pageToken ?? "",
348
345
  status: request.status ?? 0,
349
346
  targetApp: request.targetApp ?? "",
350
- invocationToken: this.invocationToken,
347
+ context: this.context,
351
348
  });
352
349
  return {
353
350
  runs: response.runs.map((run) => requireRun(workflowRunFromProto(run), "Workflow.listRuns returned an empty run")),
@@ -361,7 +358,7 @@ class WorkflowImpl implements Workflow {
361
358
  ): Promise<readonly WorkflowRunEvent[]> {
362
359
  const response = await this.client.getRunEvents({
363
360
  runId: request.runId,
364
- invocationToken: this.invocationToken,
361
+ context: this.context,
365
362
  });
366
363
  return response.events.map((event) =>
367
364
  requireRunEvent(workflowRunEventFromProto(event), "Workflow.getRunEvents returned an empty event")
@@ -374,7 +371,7 @@ class WorkflowImpl implements Workflow {
374
371
  ): Promise<GetWorkflowProviderRunOutputResponse> {
375
372
  const response = await this.client.getRunOutput({
376
373
  runId: request.runId,
377
- invocationToken: this.invocationToken,
374
+ context: this.context,
378
375
  });
379
376
  return {
380
377
  output: response.output === undefined
@@ -392,7 +389,7 @@ class WorkflowImpl implements Workflow {
392
389
  await this.client.cancelRun({
393
390
  runId: request.runId,
394
391
  reason: request.reason ?? "",
395
- invocationToken: this.invocationToken,
392
+ context: this.context,
396
393
  }),
397
394
  ),
398
395
  "Workflow.cancelRun returned no run",
@@ -408,7 +405,7 @@ class WorkflowImpl implements Workflow {
408
405
  await this.client.signalRun({
409
406
  runId: request.runId,
410
407
  signal: workflowSignalToProto(request.signal),
411
- invocationToken: this.invocationToken,
408
+ context: this.context,
412
409
  }),
413
410
  ),
414
411
  "Workflow.signalRun returned no response",
@@ -429,7 +426,7 @@ class WorkflowImpl implements Workflow {
429
426
  input: structFromObject(request.input),
430
427
  idempotencyKey: request.idempotencyKey?.trim() || this.idempotencyKey,
431
428
  signal: workflowSignalToProto(request.signal),
432
- invocationToken: this.invocationToken,
429
+ context: this.context,
433
430
  createdBySubjectId: request.createdBySubjectId ?? "",
434
431
  runAs: subjectToProto(request.runAs),
435
432
  }),
@@ -448,7 +445,7 @@ class WorkflowImpl implements Workflow {
448
445
  appName: request.appName ?? "",
449
446
  event: workflowEventToProto(request.event),
450
447
  deliveredBySubjectId: request.deliveredBySubjectId ?? "",
451
- invocationToken: this.invocationToken,
448
+ context: this.context,
452
449
  providerName: request.providerName ?? "",
453
450
  }),
454
451
  ),
@@ -459,25 +456,6 @@ class WorkflowImpl implements Workflow {
459
456
 
460
457
  export const Workflow = WorkflowImpl;
461
458
 
462
- function normalizeInvocationToken(requestOrToken: Request | string): string {
463
- const invocationToken =
464
- typeof requestOrToken === "string"
465
- ? requestOrToken
466
- : requestOrToken.invocationToken;
467
- const trimmed = invocationToken.trim();
468
- if (!trimmed) {
469
- throw new Error("workflow: invocation token is not available");
470
- }
471
- return trimmed;
472
- }
473
-
474
- function normalizeIdempotencyKey(requestOrToken: Request | string): string {
475
- if (typeof requestOrToken === "string") {
476
- return "";
477
- }
478
- return requestOrToken.idempotencyKey.trim();
479
- }
480
-
481
459
  function generationToBigInt(value: bigint | number | undefined): bigint {
482
460
  if (value === undefined) {
483
461
  return 0n;