@valon-technologies/gestalt 0.0.1-alpha.35 → 0.0.1-alpha.37

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+wIKFVdvcmtmbG93U3RlcEV4ZWN1dGlvbhIPCgdzdGVwX2lkGAEgASgJEjcKBnN0YXR1cxgCIAEoDjInLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTdGVwU3RhdHVzEjoKCGF0dGVtcHRzGAMgAygLMiguZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1N0ZXBBdHRlbXB0EiUKBWlucHV0GAQgASgLMhYuZ29vZ2xlLnByb3RvYnVmLlZhbHVlEiYKBm91dHB1dBgFIAEoCzIWLmdvb2dsZS5wcm90b2J1Zi5WYWx1ZRIWCg5zdGF0dXNfbWVzc2FnZRgGIAEoCRITCgtza2lwX3JlYXNvbhgHIAEoCRIuCgpzdGFydGVkX2F0GAggASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIwCgxjb21wbGV0ZWRfYXQYCSABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wIsoFCgtXb3JrZmxvd1J1bhIKCgJpZBgBIAEoCRI2CgZzdGF0dXMYAiABKA4yJi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UnVuU3RhdHVzEjgKBnRhcmdldBgDIAEoCzIoLmdlc3RhbHQucHJvdmlkZXIudjEuQm91bmRXb3JrZmxvd1RhcmdldBI4Cgd0cmlnZ2VyGAQgASgLMicuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1blRyaWdnZXISLgoKY3JlYXRlZF9hdBgFIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASLgoKc3RhcnRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASMAoMY29tcGxldGVkX2F0GAcgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcBIWCg5zdGF0dXNfbWVzc2FnZRgIIAEoCRImCgZvdXRwdXQYCSABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUSHQoVY3JlYXRlZF9ieV9zdWJqZWN0X2lkGAogASgJEhQKDHdvcmtmbG93X2tleRgMIAEoCRIVCg1wcm92aWRlcl9uYW1lGA0gASgJEhUKDWRlZmluaXRpb25faWQYDiABKAkSMwoGcnVuX2FzGA8gASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBImCgVpbnB1dBgQIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSHQoVZGVmaW5pdGlvbl9nZW5lcmF0aW9uGBEgASgDEhcKD2N1cnJlbnRfc3RlcF9pZBgSIAEoCRI5CgVzdGVwcxgTIAMoCzIqLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dTdGVwRXhlY3V0aW9uIvkBCg5Xb3JrZmxvd1NpZ25hbBIKCgJpZBgBIAEoCRIMCgRuYW1lGAIgASgJEigKB3BheWxvYWQYAyABKAsyFy5nb29nbGUucHJvdG9idWYuU3RydWN0EikKCG1ldGFkYXRhGAQgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBIdChVjcmVhdGVkX2J5X3N1YmplY3RfaWQYBSABKAkSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASFwoPaWRlbXBvdGVuY3lfa2V5GAcgASgJEhAKCHNlcXVlbmNlGAggASgDIoQCCiZBcHBseVdvcmtmbG93UHJvdmlkZXJEZWZpbml0aW9uUmVxdWVzdBIVCg1wcm92aWRlcl9uYW1lGAEgASgJEjkKBHNwZWMYAiABKAsyKy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RGVmaW5pdGlvblNwZWMSGAoQaW52b2NhdGlvbl90b2tlbhgDIAEoCRIXCg9pZGVtcG90ZW5jeV9rZXkYBCABKAkSHwoXcmVxdWVzdGVkX2J5X3N1YmplY3RfaWQYBSABKAkSNAoHY29udGV4dBgGIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHQijQEKJEdldFdvcmtmbG93UHJvdmlkZXJEZWZpbml0aW9uUmVxdWVzdBIVCg1kZWZpbml0aW9uX2lkGAEgASgJEhgKEGludm9jYXRpb25fdG9rZW4YAiABKAkSNAoHY29udGV4dBgDIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHQieAomTGlzdFdvcmtmbG93UHJvdmlkZXJEZWZpbml0aW9uc1JlcXVlc3QSGAoQaW52b2NhdGlvbl90b2tlbhgBIAEoCRI0Cgdjb250ZXh0GAIgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5SZXF1ZXN0Q29udGV4dCJnCidMaXN0V29ya2Zsb3dQcm92aWRlckRlZmluaXRpb25zUmVzcG9uc2USPAoLZGVmaW5pdGlvbnMYASADKAsyJy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RGVmaW5pdGlvbiLEAQoqU2V0V29ya2Zsb3dQcm92aWRlckRlZmluaXRpb25QYXVzZWRSZXF1ZXN0EhUKDWRlZmluaXRpb25faWQYASABKAkSDgoGcGF1c2VkGAIgASgIEhgKEGludm9jYXRpb25fdG9rZW4YAyABKAkSHwoXcmVxdWVzdGVkX2J5X3N1YmplY3RfaWQYBCABKAkSNAoHY29udGV4dBgFIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHQi2wEKKlNldFdvcmtmbG93UHJvdmlkZXJBY3RpdmF0aW9uUGF1c2VkUmVxdWVzdBIVCg1kZWZpbml0aW9uX2lkGAEgASgJEhUKDWFjdGl2YXRpb25faWQYAiABKAkSDgoGcGF1c2VkGAMgASgIEhgKEGludm9jYXRpb25fdG9rZW4YBCABKAkSHwoXcmVxdWVzdGVkX2J5X3N1YmplY3RfaWQYBSABKAkSNAoHY29udGV4dBgGIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHQikAEKJ0RlbGV0ZVdvcmtmbG93UHJvdmlkZXJEZWZpbml0aW9uUmVxdWVzdBIVCg1kZWZpbml0aW9uX2lkGAEgASgJEhgKEGludm9jYXRpb25fdG9rZW4YAiABKAkSNAoHY29udGV4dBgDIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHQi+AIKH1N0YXJ0V29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QSFwoPaWRlbXBvdGVuY3lfa2V5GAIgASgJEh0KFWNyZWF0ZWRfYnlfc3ViamVjdF9pZBgEIAEoCRIUCgx3b3JrZmxvd19rZXkYBiABKAkSFQoNcHJvdmlkZXJfbmFtZRgHIAEoCRIYChBpbnZvY2F0aW9uX3Rva2VuGAggASgJEhUKDWRlZmluaXRpb25faWQYCSABKAkSMwoGcnVuX2FzGAogASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5TdWJqZWN0Q29udGV4dBImCgVpbnB1dBgLIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSJgoeZXhwZWN0ZWRfZGVmaW5pdGlvbl9nZW5lcmF0aW9uGAwgASgDEjQKB2NvbnRleHQYDSABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0SgQIARACIn8KHUdldFdvcmtmbG93UHJvdmlkZXJSdW5SZXF1ZXN0Eg4KBnJ1bl9pZBgCIAEoCRIYChBpbnZvY2F0aW9uX3Rva2VuGAMgASgJEjQKB2NvbnRleHQYBCABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0IuQBCh9MaXN0V29ya2Zsb3dQcm92aWRlclJ1bnNSZXF1ZXN0EhEKCXBhZ2Vfc2l6ZRgBIAEoBRISCgpwYWdlX3Rva2VuGAIgASgJEjYKBnN0YXR1cxgDIAEoDjImLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dSdW5TdGF0dXMSGAoQaW52b2NhdGlvbl90b2tlbhgEIAEoCRISCgp0YXJnZXRfYXBwGAUgASgJEjQKB2NvbnRleHQYBiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0ImsKIExpc3RXb3JrZmxvd1Byb3ZpZGVyUnVuc1Jlc3BvbnNlEi4KBHJ1bnMYASADKAsyIC5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UnVuEhcKD25leHRfcGFnZV90b2tlbhgCIAEoCSKSAQogQ2FuY2VsV29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QSDgoGcnVuX2lkGAIgASgJEg4KBnJlYXNvbhgDIAEoCRIYChBpbnZvY2F0aW9uX3Rva2VuGAQgASgJEjQKB2NvbnRleHQYBSABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0IrcBCiBTaWduYWxXb3JrZmxvd1Byb3ZpZGVyUnVuUmVxdWVzdBIOCgZydW5faWQYASABKAkSMwoGc2lnbmFsGAIgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1NpZ25hbBIYChBpbnZvY2F0aW9uX3Rva2VuGAMgASgJEjQKB2NvbnRleHQYBCABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0IrUDCidTaWduYWxPclN0YXJ0V29ya2Zsb3dQcm92aWRlclJ1blJlcXVlc3QSFAoMd29ya2Zsb3dfa2V5GAEgASgJEhcKD2lkZW1wb3RlbmN5X2tleRgDIAEoCRIdChVjcmVhdGVkX2J5X3N1YmplY3RfaWQYBCABKAkSMwoGc2lnbmFsGAYgASgLMiMuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1NpZ25hbBIVCg1wcm92aWRlcl9uYW1lGAcgASgJEhgKEGludm9jYXRpb25fdG9rZW4YCCABKAkSFQoNZGVmaW5pdGlvbl9pZBgJIAEoCRIzCgZydW5fYXMYCiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlN1YmplY3RDb250ZXh0EiYKBWlucHV0GAsgASgLMhcuZ29vZ2xlLnByb3RvYnVmLlN0cnVjdBImCh5leHBlY3RlZF9kZWZpbml0aW9uX2dlbmVyYXRpb24YDCABKAMSNAoHY29udGV4dBgNIAEoCzIjLmdlc3RhbHQucHJvdmlkZXIudjEuUmVxdWVzdENvbnRleHRKBAgCEAMiqgEKGVNpZ25hbFdvcmtmbG93UnVuUmVzcG9uc2USLQoDcnVuGAEgASgLMiAuZ2VzdGFsdC5wcm92aWRlci52MS5Xb3JrZmxvd1J1bhIzCgZzaWduYWwYAiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93U2lnbmFsEhMKC3N0YXJ0ZWRfcnVuGAMgASgIEhQKDHdvcmtmbG93X2tleRgEIAEoCSLyAQojRGVsaXZlcldvcmtmbG93UHJvdmlkZXJFdmVudFJlcXVlc3QSEAoIYXBwX25hbWUYASABKAkSMQoFZXZlbnQYAiABKAsyIi5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93RXZlbnQSHwoXZGVsaXZlcmVkX2J5X3N1YmplY3RfaWQYAyABKAkSGAoQaW52b2NhdGlvbl90b2tlbhgEIAEoCRIVCg1wcm92aWRlcl9uYW1lGAUgASgJEjQKB2NvbnRleHQYBiABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0IqQBChBXb3JrZmxvd1J1bkV2ZW50EgoKAmlkGAEgASgJEg4KBnJ1bl9pZBgCIAEoCRIPCgdzdGVwX2lkGAMgASgJEgwKBHR5cGUYBCABKAkSJQoEZGF0YRgFIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSLgoKY3JlYXRlZF9hdBgGIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXAihQEKI0dldFdvcmtmbG93UHJvdmlkZXJSdW5FdmVudHNSZXF1ZXN0Eg4KBnJ1bl9pZBgBIAEoCRIYChBpbnZvY2F0aW9uX3Rva2VuGAIgASgJEjQKB2NvbnRleHQYAyABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0Il0KJEdldFdvcmtmbG93UHJvdmlkZXJSdW5FdmVudHNSZXNwb25zZRI1CgZldmVudHMYASADKAsyJS5nZXN0YWx0LnByb3ZpZGVyLnYxLldvcmtmbG93UnVuRXZlbnQihQEKI0dldFdvcmtmbG93UHJvdmlkZXJSdW5PdXRwdXRSZXF1ZXN0Eg4KBnJ1bl9pZBgBIAEoCRIYChBpbnZvY2F0aW9uX3Rva2VuGAIgASgJEjQKB2NvbnRleHQYAyABKAsyIy5nZXN0YWx0LnByb3ZpZGVyLnYxLlJlcXVlc3RDb250ZXh0Ik4KJEdldFdvcmtmbG93UHJvdmlkZXJSdW5PdXRwdXRSZXNwb25zZRImCgZvdXRwdXQYASABKAsyFi5nb29nbGUucHJvdG9idWYuVmFsdWUq3wEKEVdvcmtmbG93UnVuU3RhdHVzEiMKH1dPUktGTE9XX1JVTl9TVEFUVVNfVU5TUEVDSUZJRUQQABIfChtXT1JLRkxPV19SVU5fU1RBVFVTX1BFTkRJTkcQARIfChtXT1JLRkxPV19SVU5fU1RBVFVTX1JVTk5JTkcQAhIhCh1XT1JLRkxPV19SVU5fU1RBVFVTX1NVQ0NFRURFRBADEh4KGldPUktGTE9XX1JVTl9TVEFUVVNfRkFJTEVEEAQSIAocV09SS0ZMT1dfUlVOX1NUQVRVU19DQU5DRUxFRBAFKocCChJXb3JrZmxvd1N0ZXBTdGF0dXMSJAogV09SS0ZMT1dfU1RFUF9TVEFUVVNfVU5TUEVDSUZJRUQQABIgChxXT1JLRkxPV19TVEVQX1NUQVRVU19QRU5ESU5HEAESIAocV09SS0ZMT1dfU1RFUF9TVEFUVVNfUlVOTklORxACEiAKHFdPUktGTE9XX1NURVBfU1RBVFVTX1NLSVBQRUQQAxIiCh5XT1JLRkxPV19TVEVQX1NUQVRVU19TVUNDRUVERUQQBBIfChtXT1JLRkxPV19TVEVQX1NUQVRVU19GQUlMRUQQBRIgChxXT1JLRkxPV19TVEVQX1NUQVRVU19VTktOT1dOEAYyjw4KEFdvcmtmbG93UHJvdmlkZXISdwoPQXBwbHlEZWZpbml0aW9uEjsuZ2VzdGFsdC5wcm92aWRlci52MS5BcHBseVdvcmtmbG93UHJvdmlkZXJEZWZpbml0aW9uUmVxdWVzdBonLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dEZWZpbml0aW9uEnMKDUdldERlZmluaXRpb24SOS5nZXN0YWx0LnByb3ZpZGVyLnYxLkdldFdvcmtmbG93UHJvdmlkZXJEZWZpbml0aW9uUmVxdWVzdBonLmdlc3RhbHQucHJvdmlkZXIudjEuV29ya2Zsb3dEZWZpbml0aW9uEowBCg9MaXN0RGVmaW5pdGlvbnMSOy5nZXN0YWx0LnByb3ZpZGVyLnYxLkxpc3RXb3JrZmxvd1Byb3ZpZGVyRGVmaW5pdGlvbnNSZXF1ZXN0GjwuZ2VzdGFsdC5wcm92aWRlci52MS5MaXN0V29ya2Zsb3dQcm92aWRlckRlZmluaXRpb25zUmVzcG9uc2USfwoTU2V0RGVmaW5pdGlvblBhdXNlZBI/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
@@ -1058,6 +1058,11 @@ export type ApplyWorkflowProviderDefinitionRequest = Message<"gestalt.provider.v
1058
1058
  * @generated from field: string requested_by_subject_id = 5;
1059
1059
  */
1060
1060
  requestedBySubjectId: string;
1061
+
1062
+ /**
1063
+ * @generated from field: gestalt.provider.v1.RequestContext context = 6;
1064
+ */
1065
+ context?: RequestContext | undefined;
1061
1066
  };
1062
1067
 
1063
1068
  /**
@@ -1080,6 +1085,11 @@ export type GetWorkflowProviderDefinitionRequest = Message<"gestalt.provider.v1.
1080
1085
  * @generated from field: string invocation_token = 2;
1081
1086
  */
1082
1087
  invocationToken: string;
1088
+
1089
+ /**
1090
+ * @generated from field: gestalt.provider.v1.RequestContext context = 3;
1091
+ */
1092
+ context?: RequestContext | undefined;
1083
1093
  };
1084
1094
 
1085
1095
  /**
@@ -1097,6 +1107,11 @@ export type ListWorkflowProviderDefinitionsRequest = Message<"gestalt.provider.v
1097
1107
  * @generated from field: string invocation_token = 1;
1098
1108
  */
1099
1109
  invocationToken: string;
1110
+
1111
+ /**
1112
+ * @generated from field: gestalt.provider.v1.RequestContext context = 2;
1113
+ */
1114
+ context?: RequestContext | undefined;
1100
1115
  };
1101
1116
 
1102
1117
  /**
@@ -1146,6 +1161,11 @@ export type SetWorkflowProviderDefinitionPausedRequest = Message<"gestalt.provid
1146
1161
  * @generated from field: string requested_by_subject_id = 4;
1147
1162
  */
1148
1163
  requestedBySubjectId: string;
1164
+
1165
+ /**
1166
+ * @generated from field: gestalt.provider.v1.RequestContext context = 5;
1167
+ */
1168
+ context?: RequestContext | undefined;
1149
1169
  };
1150
1170
 
1151
1171
  /**
@@ -1183,6 +1203,11 @@ export type SetWorkflowProviderActivationPausedRequest = Message<"gestalt.provid
1183
1203
  * @generated from field: string requested_by_subject_id = 5;
1184
1204
  */
1185
1205
  requestedBySubjectId: string;
1206
+
1207
+ /**
1208
+ * @generated from field: gestalt.provider.v1.RequestContext context = 6;
1209
+ */
1210
+ context?: RequestContext | undefined;
1186
1211
  };
1187
1212
 
1188
1213
  /**
@@ -1205,6 +1230,11 @@ export type DeleteWorkflowProviderDefinitionRequest = Message<"gestalt.provider.
1205
1230
  * @generated from field: string invocation_token = 2;
1206
1231
  */
1207
1232
  invocationToken: string;
1233
+
1234
+ /**
1235
+ * @generated from field: gestalt.provider.v1.RequestContext context = 3;
1236
+ */
1237
+ context?: RequestContext | undefined;
1208
1238
  };
1209
1239
 
1210
1240
  /**
@@ -1262,6 +1292,11 @@ export type StartWorkflowProviderRunRequest = Message<"gestalt.provider.v1.Start
1262
1292
  * @generated from field: int64 expected_definition_generation = 12;
1263
1293
  */
1264
1294
  expectedDefinitionGeneration: bigint;
1295
+
1296
+ /**
1297
+ * @generated from field: gestalt.provider.v1.RequestContext context = 13;
1298
+ */
1299
+ context?: RequestContext | undefined;
1265
1300
  };
1266
1301
 
1267
1302
  /**
@@ -1284,6 +1319,11 @@ export type GetWorkflowProviderRunRequest = Message<"gestalt.provider.v1.GetWork
1284
1319
  * @generated from field: string invocation_token = 3;
1285
1320
  */
1286
1321
  invocationToken: string;
1322
+
1323
+ /**
1324
+ * @generated from field: gestalt.provider.v1.RequestContext context = 4;
1325
+ */
1326
+ context?: RequestContext | undefined;
1287
1327
  };
1288
1328
 
1289
1329
  /**
@@ -1321,6 +1361,11 @@ export type ListWorkflowProviderRunsRequest = Message<"gestalt.provider.v1.ListW
1321
1361
  * @generated from field: string target_app = 5;
1322
1362
  */
1323
1363
  targetApp: string;
1364
+
1365
+ /**
1366
+ * @generated from field: gestalt.provider.v1.RequestContext context = 6;
1367
+ */
1368
+ context?: RequestContext | undefined;
1324
1369
  };
1325
1370
 
1326
1371
  /**
@@ -1370,6 +1415,11 @@ export type CancelWorkflowProviderRunRequest = Message<"gestalt.provider.v1.Canc
1370
1415
  * @generated from field: string invocation_token = 4;
1371
1416
  */
1372
1417
  invocationToken: string;
1418
+
1419
+ /**
1420
+ * @generated from field: gestalt.provider.v1.RequestContext context = 5;
1421
+ */
1422
+ context?: RequestContext | undefined;
1373
1423
  };
1374
1424
 
1375
1425
  /**
@@ -1397,6 +1447,11 @@ export type SignalWorkflowProviderRunRequest = Message<"gestalt.provider.v1.Sign
1397
1447
  * @generated from field: string invocation_token = 3;
1398
1448
  */
1399
1449
  invocationToken: string;
1450
+
1451
+ /**
1452
+ * @generated from field: gestalt.provider.v1.RequestContext context = 4;
1453
+ */
1454
+ context?: RequestContext | undefined;
1400
1455
  };
1401
1456
 
1402
1457
  /**
@@ -1459,6 +1514,11 @@ export type SignalOrStartWorkflowProviderRunRequest = Message<"gestalt.provider.
1459
1514
  * @generated from field: int64 expected_definition_generation = 12;
1460
1515
  */
1461
1516
  expectedDefinitionGeneration: bigint;
1517
+
1518
+ /**
1519
+ * @generated from field: gestalt.provider.v1.RequestContext context = 13;
1520
+ */
1521
+ context?: RequestContext | undefined;
1462
1522
  };
1463
1523
 
1464
1524
  /**
@@ -1528,6 +1588,11 @@ export type DeliverWorkflowProviderEventRequest = Message<"gestalt.provider.v1.D
1528
1588
  * @generated from field: string provider_name = 5;
1529
1589
  */
1530
1590
  providerName: string;
1591
+
1592
+ /**
1593
+ * @generated from field: gestalt.provider.v1.RequestContext context = 6;
1594
+ */
1595
+ context?: RequestContext | undefined;
1531
1596
  };
1532
1597
 
1533
1598
  /**
@@ -1592,6 +1657,11 @@ export type GetWorkflowProviderRunEventsRequest = Message<"gestalt.provider.v1.G
1592
1657
  * @generated from field: string invocation_token = 2;
1593
1658
  */
1594
1659
  invocationToken: string;
1660
+
1661
+ /**
1662
+ * @generated from field: gestalt.provider.v1.RequestContext context = 3;
1663
+ */
1664
+ context?: RequestContext | undefined;
1595
1665
  };
1596
1666
 
1597
1667
  /**
@@ -1631,6 +1701,11 @@ export type GetWorkflowProviderRunOutputRequest = Message<"gestalt.provider.v1.G
1631
1701
  * @generated from field: string invocation_token = 2;
1632
1702
  */
1633
1703
  invocationToken: string;
1704
+
1705
+ /**
1706
+ * @generated from field: gestalt.provider.v1.RequestContext context = 3;
1707
+ */
1708
+ context?: RequestContext | undefined;
1634
1709
  };
1635
1710
 
1636
1711
  /**
@@ -1,15 +1,28 @@
1
1
  import type { Request } from "./api.ts";
2
2
 
3
3
  export function hostInvocationContext(requestOrToken: Request | string) {
4
- const invocationToken = (typeof requestOrToken === "string" ? requestOrToken : requestOrToken.invocationToken).trim();
4
+ const invocationToken = (
5
+ typeof requestOrToken === "string"
6
+ ? requestOrToken
7
+ : requestOrToken.invocationToken
8
+ ).trim();
5
9
  if (typeof requestOrToken === "string") {
6
- return { invocationToken };
10
+ return { invocationToken, context: undefined };
7
11
  }
8
- const providerName = stringValue(requestOrToken.workflow.providerName) || stringValue(requestOrToken.workflow.provider);
12
+ const providerName =
13
+ stringValue(requestOrToken.workflow.providerName) ||
14
+ stringValue(requestOrToken.workflow.provider);
9
15
  const runId = stringValue(requestOrToken.workflow.runId);
10
- return providerName && runId
11
- ? { invocationToken, workflow: { provider: providerName, providerName, runId } }
12
- : { invocationToken };
16
+ const workflow =
17
+ providerName && runId
18
+ ? { provider: providerName, providerName, runId }
19
+ : undefined;
20
+ return {
21
+ invocationToken,
22
+ ...(workflow === undefined ? {} : { workflow }),
23
+ context: requestOrToken.__requestContext,
24
+ };
13
25
  }
14
26
 
15
- const stringValue = (value: unknown) => (typeof value === "string" ? value.trim() : "");
27
+ const stringValue = (value: unknown) =>
28
+ typeof value === "string" ? value.trim() : "";
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, 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,17 @@ 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),
588
- providerRequest(
589
- request.token,
590
- request.connectionParams,
591
- request.context,
592
- request.invocationToken,
593
- request.idempotencyKey,
594
- ),
595
- ),
594
+ await provider.execute(
595
+ request.operation,
596
+ objectFromUnknown(request.params),
597
+ providerRequest(
598
+ request.token,
599
+ request.connectionParams,
600
+ request.context,
601
+ request.invocationToken,
602
+ request.idempotencyKey,
603
+ ),
604
+ ),
596
605
  );
597
606
  },
598
607
  async resolveHTTPSubject(request: ProtoResolveHTTPSubjectRequest) {
@@ -620,6 +629,7 @@ export function createProviderService(
620
629
  id: subject.id,
621
630
  credentialSubjectId: subject.credentialSubjectId ?? "",
622
631
  email: subject.email ?? "",
632
+ displayName: subject.displayName ?? "",
623
633
  },
624
634
  }
625
635
  : {});
@@ -821,8 +831,6 @@ function providerRequest(
821
831
  invocationToken = "",
822
832
  idempotencyKey = "",
823
833
  ): Request {
824
- const subject = requestContext?.subject;
825
- const agentSubject = requestContext?.agentSubject;
826
834
  const credential = requestContext?.credential;
827
835
  const access = requestContext?.access;
828
836
  const host = requestContext?.host;
@@ -831,16 +839,8 @@ function providerRequest(
831
839
  connectionParams: {
832
840
  ...connectionParams,
833
841
  },
834
- subject: {
835
- id: subject?.id ?? "",
836
- credentialSubjectId: subject?.credentialSubjectId ?? "",
837
- email: subject?.email ?? "",
838
- },
839
- agentSubject: {
840
- id: agentSubject?.id ?? "",
841
- credentialSubjectId: agentSubject?.credentialSubjectId ?? "",
842
- email: agentSubject?.email ?? "",
843
- },
842
+ subject: providerSubject(requestContext?.subject),
843
+ agentSubject: providerSubject(requestContext?.agentSubject),
844
844
  credential: {
845
845
  mode: credential?.mode ?? "",
846
846
  subjectId: credential?.subjectId ?? "",
@@ -860,10 +860,36 @@ function providerRequest(
860
860
  publicBaseUrl: host?.publicBaseUrl ?? "",
861
861
  },
862
862
  invocationToken,
863
+ __requestContext: requestContext,
863
864
  idempotencyKey: idempotencyKey.trim(),
864
865
  };
865
866
  }
866
867
 
868
+ function providerSubject(subject?: ProtoSubjectContext): Subject {
869
+ return {
870
+ id: subject?.id ?? "",
871
+ credentialSubjectId: subject?.credentialSubjectId ?? "",
872
+ email: subject?.email ?? "",
873
+ displayName: subject?.displayName ?? "",
874
+ scopes: [...(subject?.scopes ?? [])],
875
+ permissions: subjectPermissionsFromProto(subject?.permissions),
876
+ kind: subjectKind(subject?.id ?? ""),
877
+ };
878
+ }
879
+
880
+ function subjectPermissionsFromProto(
881
+ permissions?: readonly ProtoSubjectPermissionContext[] | undefined,
882
+ ): SubjectPermission[] {
883
+ return permissions?.map((permission) => ({
884
+ app: permission.app,
885
+ operations: permission.allOperations ? [] : [...permission.operations],
886
+ })) ?? [];
887
+ }
888
+
889
+ function subjectKind(subjectID: string): string {
890
+ return parseSubjectId(subjectID)?.kind ?? "";
891
+ }
892
+
867
893
  function providerRequestToolRefs(
868
894
  requestContext?: ProtoRequestContext,
869
895
  ): AgentToolRef[] {
@@ -13,6 +13,7 @@ import {
13
13
  ENV_HOST_SERVICE_SOCKET,
14
14
  ENV_HOST_SERVICE_TOKEN,
15
15
  } from "./host-service.ts";
16
+ import { hostInvocationContext } from "./invocation-context.ts";
16
17
  import type { Request, SubjectInput } from "./api.ts";
17
18
  import { jsonFromValue, structFromObject, type JsonObjectInput } from "./protocol.ts";
18
19
  import {
@@ -179,21 +180,22 @@ export interface Workflow {
179
180
  /**
180
181
  * Client for applying workflow definitions and controlling durable runs.
181
182
  *
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.
183
+ * Mutating calls reuse the request idempotency key unless the call provides one
184
+ * explicitly.
186
185
  */
187
186
  class WorkflowImpl implements Workflow {
188
187
  private readonly client: Client<typeof WorkflowProviderService>;
189
- private readonly invocationToken: string;
188
+ private readonly invocationContext: ReturnType<typeof hostInvocationContext>;
190
189
  private readonly idempotencyKey: string;
191
190
 
192
191
  constructor(request: Request);
193
192
  constructor(invocationToken: string);
194
193
  constructor(requestOrToken: Request | string) {
195
- this.invocationToken = normalizeInvocationToken(requestOrToken);
196
- this.idempotencyKey = normalizeIdempotencyKey(requestOrToken);
194
+ this.invocationContext = hostInvocationContext(requestOrToken);
195
+ if (typeof requestOrToken === "string" && !this.invocationContext.invocationToken) {
196
+ throw new Error("workflow: invocation token is not available");
197
+ }
198
+ this.idempotencyKey = typeof requestOrToken === "string" ? "" : requestOrToken.idempotencyKey.trim();
197
199
 
198
200
  const target = process.env[ENV_HOST_SERVICE_SOCKET]?.trim();
199
201
  if (!target) {
@@ -220,7 +222,7 @@ class WorkflowImpl implements Workflow {
220
222
  await this.client.applyDefinition({
221
223
  providerName: request.providerName,
222
224
  spec: workflowDefinitionSpecToProto(request.spec),
223
- invocationToken: this.invocationToken,
225
+ ...this.invocationContext,
224
226
  idempotencyKey: request.idempotencyKey?.trim() || this.idempotencyKey,
225
227
  requestedBySubjectId: request.requestedBySubjectId ?? "",
226
228
  }),
@@ -237,19 +239,19 @@ class WorkflowImpl implements Workflow {
237
239
  workflowDefinitionFromProto(
238
240
  await this.client.getDefinition({
239
241
  definitionId: request.definitionId,
240
- invocationToken: this.invocationToken,
242
+ ...this.invocationContext,
241
243
  }),
242
244
  ),
243
245
  "Workflow.getDefinition returned no definition",
244
246
  );
245
247
  }
246
248
 
247
- /** Lists workflow definitions visible to the current invocation token. */
249
+ /** Lists workflow definitions visible to the request context. */
248
250
  async listDefinitions(
249
251
  _request: WorkflowListDefinitions = {},
250
252
  ): Promise<readonly WorkflowDefinition[]> {
251
253
  const response = await this.client.listDefinitions({
252
- invocationToken: this.invocationToken,
254
+ ...this.invocationContext,
253
255
  });
254
256
  return response.definitions.map((definition) =>
255
257
  requireDefinition(workflowDefinitionFromProto(definition), "Workflow.listDefinitions returned an empty definition")
@@ -265,7 +267,7 @@ class WorkflowImpl implements Workflow {
265
267
  await this.client.setDefinitionPaused({
266
268
  definitionId: request.definitionId,
267
269
  paused: request.paused,
268
- invocationToken: this.invocationToken,
270
+ ...this.invocationContext,
269
271
  requestedBySubjectId: request.requestedBySubjectId ?? "",
270
272
  }),
271
273
  ),
@@ -283,7 +285,7 @@ class WorkflowImpl implements Workflow {
283
285
  definitionId: request.definitionId,
284
286
  activationId: request.activationId,
285
287
  paused: request.paused,
286
- invocationToken: this.invocationToken,
288
+ ...this.invocationContext,
287
289
  requestedBySubjectId: request.requestedBySubjectId ?? "",
288
290
  }),
289
291
  ),
@@ -297,7 +299,7 @@ class WorkflowImpl implements Workflow {
297
299
  ): Promise<void> {
298
300
  await this.client.deleteDefinition({
299
301
  definitionId: request.definitionId,
300
- invocationToken: this.invocationToken,
302
+ ...this.invocationContext,
301
303
  });
302
304
  }
303
305
 
@@ -314,7 +316,7 @@ class WorkflowImpl implements Workflow {
314
316
  input: structFromObject(request.input),
315
317
  idempotencyKey: request.idempotencyKey?.trim() || this.idempotencyKey,
316
318
  workflowKey: request.workflowKey ?? "",
317
- invocationToken: this.invocationToken,
319
+ ...this.invocationContext,
318
320
  createdBySubjectId: request.createdBySubjectId ?? "",
319
321
  runAs: subjectToProto(request.runAs),
320
322
  }),
@@ -331,14 +333,14 @@ class WorkflowImpl implements Workflow {
331
333
  workflowRunFromProto(
332
334
  await this.client.getRun({
333
335
  runId: request.runId,
334
- invocationToken: this.invocationToken,
336
+ ...this.invocationContext,
335
337
  }),
336
338
  ),
337
339
  "Workflow.getRun returned no run",
338
340
  );
339
341
  }
340
342
 
341
- /** Lists workflow runs visible to the current invocation token. */
343
+ /** Lists workflow runs visible to the request context. */
342
344
  async listRuns(
343
345
  request: WorkflowListRuns = {},
344
346
  ): Promise<{ runs: readonly WorkflowRun[]; nextPageToken?: string | undefined }> {
@@ -347,7 +349,7 @@ class WorkflowImpl implements Workflow {
347
349
  pageToken: request.pageToken ?? "",
348
350
  status: request.status ?? 0,
349
351
  targetApp: request.targetApp ?? "",
350
- invocationToken: this.invocationToken,
352
+ ...this.invocationContext,
351
353
  });
352
354
  return {
353
355
  runs: response.runs.map((run) => requireRun(workflowRunFromProto(run), "Workflow.listRuns returned an empty run")),
@@ -361,7 +363,7 @@ class WorkflowImpl implements Workflow {
361
363
  ): Promise<readonly WorkflowRunEvent[]> {
362
364
  const response = await this.client.getRunEvents({
363
365
  runId: request.runId,
364
- invocationToken: this.invocationToken,
366
+ ...this.invocationContext,
365
367
  });
366
368
  return response.events.map((event) =>
367
369
  requireRunEvent(workflowRunEventFromProto(event), "Workflow.getRunEvents returned an empty event")
@@ -374,7 +376,7 @@ class WorkflowImpl implements Workflow {
374
376
  ): Promise<GetWorkflowProviderRunOutputResponse> {
375
377
  const response = await this.client.getRunOutput({
376
378
  runId: request.runId,
377
- invocationToken: this.invocationToken,
379
+ ...this.invocationContext,
378
380
  });
379
381
  return {
380
382
  output: response.output === undefined
@@ -392,7 +394,7 @@ class WorkflowImpl implements Workflow {
392
394
  await this.client.cancelRun({
393
395
  runId: request.runId,
394
396
  reason: request.reason ?? "",
395
- invocationToken: this.invocationToken,
397
+ ...this.invocationContext,
396
398
  }),
397
399
  ),
398
400
  "Workflow.cancelRun returned no run",
@@ -408,7 +410,7 @@ class WorkflowImpl implements Workflow {
408
410
  await this.client.signalRun({
409
411
  runId: request.runId,
410
412
  signal: workflowSignalToProto(request.signal),
411
- invocationToken: this.invocationToken,
413
+ ...this.invocationContext,
412
414
  }),
413
415
  ),
414
416
  "Workflow.signalRun returned no response",
@@ -429,7 +431,7 @@ class WorkflowImpl implements Workflow {
429
431
  input: structFromObject(request.input),
430
432
  idempotencyKey: request.idempotencyKey?.trim() || this.idempotencyKey,
431
433
  signal: workflowSignalToProto(request.signal),
432
- invocationToken: this.invocationToken,
434
+ ...this.invocationContext,
433
435
  createdBySubjectId: request.createdBySubjectId ?? "",
434
436
  runAs: subjectToProto(request.runAs),
435
437
  }),
@@ -448,7 +450,7 @@ class WorkflowImpl implements Workflow {
448
450
  appName: request.appName ?? "",
449
451
  event: workflowEventToProto(request.event),
450
452
  deliveredBySubjectId: request.deliveredBySubjectId ?? "",
451
- invocationToken: this.invocationToken,
453
+ ...this.invocationContext,
452
454
  providerName: request.providerName ?? "",
453
455
  }),
454
456
  ),
@@ -459,25 +461,6 @@ class WorkflowImpl implements Workflow {
459
461
 
460
462
  export const Workflow = WorkflowImpl;
461
463
 
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
464
  function generationToBigInt(value: bigint | number | undefined): bigint {
482
465
  if (value === undefined) {
483
466
  return 0n;