@valon-technologies/gestalt 0.0.1-alpha.36 → 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.
- package/package.json +1 -1
- package/src/agent-access.ts +2 -5
- package/src/agent-conversions.ts +29 -2
- package/src/agent.ts +90 -26
- package/src/api.ts +36 -1
- package/src/app-access.ts +5 -2
- package/src/index.ts +1 -1
- package/src/internal/gen/v1/agent_pb.ts +77 -2
- package/src/internal/gen/v1/app_pb.ts +184 -23
- package/src/internal/gen/v1/runtime_pb.ts +6 -1
- package/src/internal/gen/v1/test_pb.ts +66 -0
- package/src/internal/gen/v1/workflow_pb.ts +77 -2
- package/src/invocation-context.ts +20 -7
- package/src/runtime.ts +46 -26
- package/src/workflow-access.ts +26 -43
- package/src/workflow.ts +94 -14
|
@@ -12,7 +12,7 @@ import type { JsonObject, Message } from "@bufbuild/protobuf";
|
|
|
12
12
|
* Describes the file v1/runtime.proto.
|
|
13
13
|
*/
|
|
14
14
|
export const file_v1_runtime: GenFile = /*@__PURE__*/
|
|
15
|
-
fileDesc("
|
|
15
|
+
fileDesc("ChB2MS9ydW50aW1lLnByb3RvEhNnZXN0YWx0LnByb3ZpZGVyLnYxItsBChBQcm92aWRlcklkZW50aXR5Ei8KBGtpbmQYASABKA4yIS5nZXN0YWx0LnByb3ZpZGVyLnYxLlByb3ZpZGVyS2luZBIMCgRuYW1lGAIgASgJEhQKDGRpc3BsYXlfbmFtZRgDIAEoCRITCgtkZXNjcmlwdGlvbhgEIAEoCRIPCgd2ZXJzaW9uGAUgASgJEhAKCHdhcm5pbmdzGAYgAygJEhwKFG1pbl9wcm90b2NvbF92ZXJzaW9uGAogASgFEhwKFG1heF9wcm90b2NvbF92ZXJzaW9uGAsgASgFImsKGENvbmZpZ3VyZVByb3ZpZGVyUmVxdWVzdBIMCgRuYW1lGAEgASgJEicKBmNvbmZpZxgCIAEoCzIXLmdvb2dsZS5wcm90b2J1Zi5TdHJ1Y3QSGAoQcHJvdG9jb2xfdmVyc2lvbhgDIAEoBSI1ChlDb25maWd1cmVQcm92aWRlclJlc3BvbnNlEhgKEHByb3RvY29sX3ZlcnNpb24YASABKAUiNQoTSGVhbHRoQ2hlY2tSZXNwb25zZRINCgVyZWFkeRgBIAEoCBIPCgdtZXNzYWdlGAIgASgJIjgKHFN0YXJ0UnVudGltZVByb3ZpZGVyUmVzcG9uc2USGAoQcHJvdG9jb2xfdmVyc2lvbhgBIAEoBSqaAwoMUHJvdmlkZXJLaW5kEh0KGVBST1ZJREVSX0tJTkRfVU5TUEVDSUZJRUQQABIVChFQUk9WSURFUl9LSU5EX0FQUBABEiAKHFBST1ZJREVSX0tJTkRfQVVUSEVOVElDQVRJT04QAhIbChdQUk9WSURFUl9LSU5EX0lOREVYRUREQhADEhkKFVBST1ZJREVSX0tJTkRfU0VDUkVUUxAEEhsKF1BST1ZJREVSX0tJTkRfVEVMRU1FVFJZEAUSFwoTUFJPVklERVJfS0lORF9DQUNIRRAGEhQKEFBST1ZJREVSX0tJTkRfUzMQBxIaChZQUk9WSURFUl9LSU5EX1dPUktGTE9XEAgSHwobUFJPVklERVJfS0lORF9BVVRIT1JJWkFUSU9OEAkSGQoVUFJPVklERVJfS0lORF9SVU5USU1FEAoSFwoTUFJPVklERVJfS0lORF9BR0VOVBALEiUKIVBST1ZJREVSX0tJTkRfRVhURVJOQUxfQ1JFREVOVElBTBAMEhYKElBST1ZJREVSX0tJTkRfVEVTVBANMooDChFQcm92aWRlckxpZmVjeWNsZRJUChNHZXRQcm92aWRlcklkZW50aXR5EhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5GiUuZ2VzdGFsdC5wcm92aWRlci52MS5Qcm92aWRlcklkZW50aXR5EnIKEUNvbmZpZ3VyZVByb3ZpZGVyEi0uZ2VzdGFsdC5wcm92aWRlci52MS5Db25maWd1cmVQcm92aWRlclJlcXVlc3QaLi5nZXN0YWx0LnByb3ZpZGVyLnYxLkNvbmZpZ3VyZVByb3ZpZGVyUmVzcG9uc2USTwoLSGVhbHRoQ2hlY2sSFi5nb29nbGUucHJvdG9idWYuRW1wdHkaKC5nZXN0YWx0LnByb3ZpZGVyLnYxLkhlYWx0aENoZWNrUmVzcG9uc2USWgoNU3RhcnRQcm92aWRlchIWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eRoxLmdlc3RhbHQucHJvdmlkZXIudjEuU3RhcnRSdW50aW1lUHJvdmlkZXJSZXNwb25zZWIGcHJvdG8z", [file_google_protobuf_empty, file_google_protobuf_struct]);
|
|
16
16
|
|
|
17
17
|
/**
|
|
18
18
|
* ProviderIdentity describes a provider surface and the protocol versions it
|
|
@@ -231,6 +231,11 @@ export enum ProviderKind {
|
|
|
231
231
|
* @generated from enum value: PROVIDER_KIND_EXTERNAL_CREDENTIAL = 12;
|
|
232
232
|
*/
|
|
233
233
|
EXTERNAL_CREDENTIAL = 12,
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* @generated from enum value: PROVIDER_KIND_TEST = 13;
|
|
237
|
+
*/
|
|
238
|
+
TEST = 13,
|
|
234
239
|
}
|
|
235
240
|
|
|
236
241
|
/**
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// @generated by protoc-gen-es v2.12.0 with parameter "target=ts"
|
|
2
|
+
// @generated from file v1/test.proto (package gestalt.provider.v1, syntax proto3)
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
|
|
5
|
+
import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
|
|
6
|
+
import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
|
|
7
|
+
import type { Message } from "@bufbuild/protobuf";
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Describes the file v1/test.proto.
|
|
11
|
+
*/
|
|
12
|
+
export const file_v1_test: GenFile = /*@__PURE__*/
|
|
13
|
+
fileDesc("Cg12MS90ZXN0LnByb3RvEhNnZXN0YWx0LnByb3ZpZGVyLnYxIhMKEUhlbGxvV29ybGRSZXF1ZXN0IiUKEkhlbGxvV29ybGRSZXNwb25zZRIPCgdtZXNzYWdlGAEgASgJMm0KDFRlc3RQcm92aWRlchJdCgpIZWxsb1dvcmxkEiYuZ2VzdGFsdC5wcm92aWRlci52MS5IZWxsb1dvcmxkUmVxdWVzdBonLmdlc3RhbHQucHJvdmlkZXIudjEuSGVsbG9Xb3JsZFJlc3BvbnNlYgZwcm90bzM");
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* HelloWorldRequest carries no input fields. It exists to exercise the
|
|
17
|
+
* provider-kind-specific request/response path.
|
|
18
|
+
*
|
|
19
|
+
* @generated from message gestalt.provider.v1.HelloWorldRequest
|
|
20
|
+
*/
|
|
21
|
+
export type HelloWorldRequest = Message<"gestalt.provider.v1.HelloWorldRequest"> & {
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Describes the message gestalt.provider.v1.HelloWorldRequest.
|
|
26
|
+
* Use `create(HelloWorldRequestSchema)` to create a new message.
|
|
27
|
+
*/
|
|
28
|
+
export const HelloWorldRequestSchema: GenMessage<HelloWorldRequest> = /*@__PURE__*/
|
|
29
|
+
messageDesc(file_v1_test, 0);
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* HelloWorldResponse returns the fixed test-provider message.
|
|
33
|
+
*
|
|
34
|
+
* @generated from message gestalt.provider.v1.HelloWorldResponse
|
|
35
|
+
*/
|
|
36
|
+
export type HelloWorldResponse = Message<"gestalt.provider.v1.HelloWorldResponse"> & {
|
|
37
|
+
/**
|
|
38
|
+
* @generated from field: string message = 1;
|
|
39
|
+
*/
|
|
40
|
+
message: string;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Describes the message gestalt.provider.v1.HelloWorldResponse.
|
|
45
|
+
* Use `create(HelloWorldResponseSchema)` to create a new message.
|
|
46
|
+
*/
|
|
47
|
+
export const HelloWorldResponseSchema: GenMessage<HelloWorldResponse> = /*@__PURE__*/
|
|
48
|
+
messageDesc(file_v1_test, 1);
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* TestProvider models a minimal provider-kind-specific protocol used to verify
|
|
52
|
+
* new provider kind registration and lifecycle wiring.
|
|
53
|
+
*
|
|
54
|
+
* @generated from service gestalt.provider.v1.TestProvider
|
|
55
|
+
*/
|
|
56
|
+
export const TestProvider: GenService<{
|
|
57
|
+
/**
|
|
58
|
+
* @generated from rpc gestalt.provider.v1.TestProvider.HelloWorld
|
|
59
|
+
*/
|
|
60
|
+
helloWorld: {
|
|
61
|
+
methodKind: "unary";
|
|
62
|
+
input: typeof HelloWorldRequestSchema;
|
|
63
|
+
output: typeof HelloWorldResponseSchema;
|
|
64
|
+
},
|
|
65
|
+
}> = /*@__PURE__*/
|
|
66
|
+
serviceDesc(file_v1_test, 0);
|
|
@@ -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 = (
|
|
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 =
|
|
12
|
+
const providerName =
|
|
13
|
+
stringValue(requestOrToken.workflow.providerName) ||
|
|
14
|
+
stringValue(requestOrToken.workflow.provider);
|
|
9
15
|
const runId = stringValue(requestOrToken.workflow.runId);
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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) =>
|
|
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 {
|
|
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
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
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,18 +839,8 @@ function providerRequest(
|
|
|
831
839
|
connectionParams: {
|
|
832
840
|
...connectionParams,
|
|
833
841
|
},
|
|
834
|
-
subject:
|
|
835
|
-
|
|
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
|
-
},
|
|
842
|
+
subject: providerSubject(requestContext?.subject),
|
|
843
|
+
agentSubject: providerSubject(requestContext?.agentSubject),
|
|
846
844
|
credential: {
|
|
847
845
|
mode: credential?.mode ?? "",
|
|
848
846
|
subjectId: credential?.subjectId ?? "",
|
|
@@ -862,10 +860,32 @@ function providerRequest(
|
|
|
862
860
|
publicBaseUrl: host?.publicBaseUrl ?? "",
|
|
863
861
|
},
|
|
864
862
|
invocationToken,
|
|
863
|
+
__requestContext: requestContext,
|
|
865
864
|
idempotencyKey: idempotencyKey.trim(),
|
|
866
865
|
};
|
|
867
866
|
}
|
|
868
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
|
+
|
|
869
889
|
function subjectKind(subjectID: string): string {
|
|
870
890
|
return parseSubjectId(subjectID)?.kind ?? "";
|
|
871
891
|
}
|