@kya-os/mcp-i-cloudflare 1.6.19 → 1.6.21-canary.clientinfo.20251126130107

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.
Files changed (37) hide show
  1. package/dist/__tests__/e2e/test-config.d.ts +37 -0
  2. package/dist/__tests__/e2e/test-config.d.ts.map +1 -0
  3. package/dist/__tests__/e2e/test-config.js +62 -0
  4. package/dist/__tests__/e2e/test-config.js.map +1 -0
  5. package/dist/adapter.d.ts.map +1 -1
  6. package/dist/adapter.js +20 -86
  7. package/dist/adapter.js.map +1 -1
  8. package/dist/agent.d.ts.map +1 -1
  9. package/dist/agent.js +100 -24
  10. package/dist/agent.js.map +1 -1
  11. package/dist/runtime/oauth-handler.d.ts.map +1 -1
  12. package/dist/runtime/oauth-handler.js.map +1 -1
  13. package/dist/services/kta-client-lookup.d.ts +5 -3
  14. package/dist/services/kta-client-lookup.d.ts.map +1 -1
  15. package/dist/services/kta-client-lookup.js +13 -34
  16. package/dist/services/kta-client-lookup.js.map +1 -1
  17. package/dist/utils/client-info.d.ts +69 -0
  18. package/dist/utils/client-info.d.ts.map +1 -0
  19. package/dist/utils/client-info.js +178 -0
  20. package/dist/utils/client-info.js.map +1 -0
  21. package/dist/utils/error-formatter.d.ts +103 -0
  22. package/dist/utils/error-formatter.d.ts.map +1 -0
  23. package/dist/utils/error-formatter.js +245 -0
  24. package/dist/utils/error-formatter.js.map +1 -0
  25. package/dist/utils/initialize-context.d.ts +91 -0
  26. package/dist/utils/initialize-context.d.ts.map +1 -0
  27. package/dist/utils/initialize-context.js +169 -0
  28. package/dist/utils/initialize-context.js.map +1 -0
  29. package/dist/utils/known-clients.d.ts +14 -6
  30. package/dist/utils/known-clients.d.ts.map +1 -1
  31. package/dist/utils/known-clients.js +30 -11
  32. package/dist/utils/known-clients.js.map +1 -1
  33. package/dist/utils/oauth-identity.d.ts +58 -0
  34. package/dist/utils/oauth-identity.d.ts.map +1 -0
  35. package/dist/utils/oauth-identity.js +215 -0
  36. package/dist/utils/oauth-identity.js.map +1 -0
  37. package/package.json +2 -2
@@ -71,9 +71,9 @@ export async function lookupClientDidFromKTA(clientName, ktaApiUrl = "https://kn
71
71
  * Resolve client identity from MCP client info
72
72
  *
73
73
  * Priority:
74
- * 1. Use pre-registered DID from known clients registry
75
- * 2. Look up DID from KTA API (if API URL provided)
76
- * 3. Generate ephemeral DID for unknown clients
74
+ * 1. Use did:web DID from known clients registry (all known clients have one)
75
+ * 2. Look up DID from KTA API for unknown clients (if API URL provided)
76
+ * 3. Generate ephemeral DID for truly unknown clients
77
77
  *
78
78
  * @param clientInfo - Client info from MCP initialize message
79
79
  * @param ktaApiUrl - Optional KTA API URL for lookups
@@ -84,37 +84,14 @@ export async function resolveClientIdentity(clientInfo, ktaApiUrl) {
84
84
  // Check known clients registry first
85
85
  const knownClient = findKnownClient(clientName);
86
86
  if (knownClient) {
87
- // Known client found
88
- if (knownClient.ktaDid) {
89
- // Has pre-registered DID
90
- return {
91
- did: knownClient.ktaDid,
92
- source: "knowthat.ai",
93
- knownClientId: knownClient.id,
94
- displayName: knownClient.displayName,
95
- vendor: knownClient.vendor,
96
- isKnown: true,
97
- };
98
- }
99
- // Known client but no pre-registered DID - try KTA lookup
100
- if (ktaApiUrl) {
101
- const ktaDid = await lookupClientDidFromKTA(clientName, ktaApiUrl);
102
- if (ktaDid) {
103
- return {
104
- did: ktaDid,
105
- source: "kta-lookup",
106
- knownClientId: knownClient.id,
107
- displayName: knownClient.displayName,
108
- vendor: knownClient.vendor,
109
- isKnown: true,
110
- };
111
- }
112
- }
113
- // Generate ephemeral DID for known client without registration
114
- const ephemeralDid = await generateEphemeralDid(clientName);
87
+ // Known client found - all known clients have did:web DIDs
88
+ // Use appropriate source based on registration status
115
89
  return {
116
- did: ephemeralDid,
117
- source: "generated",
90
+ did: knownClient.ktaDid,
91
+ // If registered on KTA, source is "knowthat.ai"
92
+ // If known but not registered, source is "generated" (pending registration)
93
+ source: knownClient.ktaRegistered ? "knowthat.ai" : "generated",
94
+ registered: knownClient.ktaRegistered,
118
95
  knownClientId: knownClient.id,
119
96
  displayName: knownClient.displayName,
120
97
  vendor: knownClient.vendor,
@@ -128,17 +105,19 @@ export async function resolveClientIdentity(clientInfo, ktaApiUrl) {
128
105
  return {
129
106
  did: ktaDid,
130
107
  source: "kta-lookup",
108
+ registered: true, // Found on KTA API means registered
131
109
  displayName: clientName,
132
110
  vendor: clientInfo?.vendor,
133
111
  isKnown: false,
134
112
  };
135
113
  }
136
114
  }
137
- // Generate ephemeral DID for unknown client
115
+ // Generate ephemeral DID for truly unknown client
138
116
  const ephemeralDid = await generateEphemeralDid(clientName);
139
117
  return {
140
118
  did: ephemeralDid,
141
119
  source: "generated",
120
+ registered: false, // Unknown clients are not registered
142
121
  displayName: clientName,
143
122
  vendor: clientInfo?.vendor,
144
123
  isKnown: false,
@@ -1 +1 @@
1
- {"version":3,"file":"kta-client-lookup.js","sourceRoot":"","sources":["../../src/services/kta-client-lookup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kta-client-lookup.js","sourceRoot":"","sources":["../../src/services/kta-client-lookup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Client Info Utilities
3
+ *
4
+ * Handles MCP client information extraction, normalization, and handshake payload preparation.
5
+ * This consolidates logic for working with client metadata across initialize and handshake.
6
+ */
7
+ import type { HandshakeRequest, MCPClientCapabilities } from "@kya-os/contracts/handshake";
8
+ import type { MCPClientInfo as SessionClientInfo } from "../types/client";
9
+ /**
10
+ * Initialize context with client information
11
+ */
12
+ export interface InitializeContext {
13
+ timestamp: number;
14
+ protocolVersion?: string;
15
+ capabilities?: MCPClientCapabilities;
16
+ clientInfo?: Partial<SessionClientInfo>;
17
+ }
18
+ /**
19
+ * Normalize client info from various formats
20
+ *
21
+ * @param value Client info from request (could be from initialize or handshake)
22
+ * @returns Normalized client info or undefined if invalid
23
+ */
24
+ export declare function normalizeClientInfo(value: unknown): Partial<SessionClientInfo> | undefined;
25
+ /**
26
+ * Extract MCP client information from handshake request and initialize context
27
+ *
28
+ * @param request Handshake request
29
+ * @param initializeContext Optional context from previous initialize call
30
+ * @returns Extracted and normalized client info or undefined
31
+ */
32
+ export declare function extractMCPClient(request: HandshakeRequest, initializeContext?: InitializeContext): SessionClientInfo | undefined;
33
+ /**
34
+ * Prepare handshake payload with client information from initialize context
35
+ *
36
+ * @param params Original handshake request parameters
37
+ * @param initializeContext Optional context from previous initialize call
38
+ * @returns Enhanced handshake request with client info
39
+ */
40
+ export declare function prepareHandshakePayload(params: HandshakeRequest, initializeContext?: InitializeContext): HandshakeRequest;
41
+ /**
42
+ * Clone capabilities object (deep copy)
43
+ *
44
+ * @param capabilities Capabilities to clone
45
+ * @returns Cloned capabilities or undefined
46
+ */
47
+ export declare function cloneCapabilities(capabilities: unknown): MCPClientCapabilities | undefined;
48
+ /**
49
+ * Type guard for record objects
50
+ *
51
+ * @param value Value to check
52
+ * @returns true if value is a record object
53
+ */
54
+ export declare function isRecord(value: unknown): value is Record<string, unknown>;
55
+ /**
56
+ * Extract client ID from client info if available
57
+ *
58
+ * @param clientInfo Client info object
59
+ * @returns Client ID or undefined
60
+ */
61
+ export declare function extractClientId(clientInfo: unknown): string | undefined;
62
+ /**
63
+ * Merge client info from multiple sources
64
+ *
65
+ * @param sources Array of potential client info sources (later sources override earlier)
66
+ * @returns Merged client info
67
+ */
68
+ export declare function mergeClientInfo(...sources: (Partial<SessionClientInfo> | undefined)[]): Partial<SessionClientInfo>;
69
+ //# sourceMappingURL=client-info.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-info.d.ts","sourceRoot":"","sources":["../../src/utils/client-info.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAE1E;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;CACzC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,OAAO,GACb,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAuCxC;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,gBAAgB,EACzB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,iBAAiB,GAAG,SAAS,CAkD/B;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,gBAAgB,CA8BlB;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,OAAO,GACpB,qBAAqB,GAAG,SAAS,CAMnC;AAED;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAWvE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,GAAG,OAAO,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,GAAG,SAAS,CAAC,EAAE,GACrD,OAAO,CAAC,iBAAiB,CAAC,CAU5B"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * Client Info Utilities
3
+ *
4
+ * Handles MCP client information extraction, normalization, and handshake payload preparation.
5
+ * This consolidates logic for working with client metadata across initialize and handshake.
6
+ */
7
+ /**
8
+ * Normalize client info from various formats
9
+ *
10
+ * @param value Client info from request (could be from initialize or handshake)
11
+ * @returns Normalized client info or undefined if invalid
12
+ */
13
+ export function normalizeClientInfo(value) {
14
+ if (!isRecord(value)) {
15
+ return undefined;
16
+ }
17
+ const normalized = {};
18
+ const record = value;
19
+ const name = record.name;
20
+ if (typeof name === "string" && name.trim().length > 0) {
21
+ normalized.name = name.trim();
22
+ }
23
+ const title = record.title;
24
+ if (typeof title === "string" && title.trim().length > 0) {
25
+ normalized.title = title.trim();
26
+ }
27
+ const version = record.version;
28
+ if (typeof version === "string" && version.trim().length > 0) {
29
+ normalized.version = version.trim();
30
+ }
31
+ const platform = record.platform;
32
+ if (typeof platform === "string" && platform.trim().length > 0) {
33
+ normalized.platform = platform.trim();
34
+ }
35
+ const vendor = record.vendor;
36
+ if (typeof vendor === "string" && vendor.trim().length > 0) {
37
+ normalized.vendor = vendor.trim();
38
+ }
39
+ const persistentId = record.persistentId;
40
+ if (typeof persistentId === "string" && persistentId.trim().length > 0) {
41
+ normalized.persistentId = persistentId.trim();
42
+ }
43
+ return Object.keys(normalized).length > 0 ? normalized : undefined;
44
+ }
45
+ /**
46
+ * Extract MCP client information from handshake request and initialize context
47
+ *
48
+ * @param request Handshake request
49
+ * @param initializeContext Optional context from previous initialize call
50
+ * @returns Extracted and normalized client info or undefined
51
+ */
52
+ export function extractMCPClient(request, initializeContext) {
53
+ const fromHandshake = normalizeClientInfo(request.clientInfo);
54
+ const merged = {
55
+ ...(initializeContext?.clientInfo ?? {}),
56
+ ...(fromHandshake ?? {}),
57
+ };
58
+ const handshakeClientId = isRecord(request.clientInfo) &&
59
+ typeof request.clientInfo.clientId === "string" &&
60
+ request.clientInfo.clientId.trim().length > 0
61
+ ? request.clientInfo.clientId.trim()
62
+ : undefined;
63
+ const hasClientMetadata = Object.keys(merged).length > 0 ||
64
+ handshakeClientId ||
65
+ typeof request.clientProtocolVersion === "string" ||
66
+ isRecord(request.clientCapabilities);
67
+ if (!hasClientMetadata) {
68
+ return undefined;
69
+ }
70
+ const nameValue = merged.name;
71
+ const name = typeof nameValue === "string" && nameValue.trim().length > 0
72
+ ? nameValue.trim()
73
+ : "unknown";
74
+ const clientId = handshakeClientId || crypto.randomUUID();
75
+ const capabilities = isRecord(request.clientCapabilities)
76
+ ? request.clientCapabilities
77
+ : initializeContext?.capabilities;
78
+ return {
79
+ name,
80
+ title: merged.title,
81
+ version: merged.version,
82
+ platform: merged.platform,
83
+ vendor: merged.vendor,
84
+ persistentId: merged.persistentId,
85
+ protocolVersion: request.clientProtocolVersion ??
86
+ initializeContext?.protocolVersion ??
87
+ merged.protocolVersion,
88
+ capabilities,
89
+ clientId,
90
+ };
91
+ }
92
+ /**
93
+ * Prepare handshake payload with client information from initialize context
94
+ *
95
+ * @param params Original handshake request parameters
96
+ * @param initializeContext Optional context from previous initialize call
97
+ * @returns Enhanced handshake request with client info
98
+ */
99
+ export function prepareHandshakePayload(params, initializeContext) {
100
+ const payload = {
101
+ ...params,
102
+ };
103
+ if (!payload.clientProtocolVersion && initializeContext?.protocolVersion) {
104
+ payload.clientProtocolVersion = initializeContext.protocolVersion;
105
+ }
106
+ if (!payload.clientCapabilities && initializeContext?.capabilities) {
107
+ payload.clientCapabilities = initializeContext.capabilities;
108
+ }
109
+ if (!payload.clientInfo && initializeContext?.clientInfo?.name) {
110
+ const source = initializeContext.clientInfo;
111
+ const name = source.name;
112
+ if (!name) {
113
+ return payload;
114
+ }
115
+ payload.clientInfo = {
116
+ name,
117
+ ...(source.title ? { title: source.title } : {}),
118
+ ...(source.version ? { version: source.version } : {}),
119
+ ...(source.platform ? { platform: source.platform } : {}),
120
+ ...(source.vendor ? { vendor: source.vendor } : {}),
121
+ ...(source.persistentId ? { persistentId: source.persistentId } : {}),
122
+ };
123
+ }
124
+ return payload;
125
+ }
126
+ /**
127
+ * Clone capabilities object (deep copy)
128
+ *
129
+ * @param capabilities Capabilities to clone
130
+ * @returns Cloned capabilities or undefined
131
+ */
132
+ export function cloneCapabilities(capabilities) {
133
+ if (!isRecord(capabilities)) {
134
+ return undefined;
135
+ }
136
+ return JSON.parse(JSON.stringify(capabilities));
137
+ }
138
+ /**
139
+ * Type guard for record objects
140
+ *
141
+ * @param value Value to check
142
+ * @returns true if value is a record object
143
+ */
144
+ export function isRecord(value) {
145
+ return typeof value === "object" && value !== null && !Array.isArray(value);
146
+ }
147
+ /**
148
+ * Extract client ID from client info if available
149
+ *
150
+ * @param clientInfo Client info object
151
+ * @returns Client ID or undefined
152
+ */
153
+ export function extractClientId(clientInfo) {
154
+ if (!isRecord(clientInfo)) {
155
+ return undefined;
156
+ }
157
+ const clientId = clientInfo.clientId;
158
+ if (typeof clientId === "string" && clientId.trim().length > 0) {
159
+ return clientId.trim();
160
+ }
161
+ return undefined;
162
+ }
163
+ /**
164
+ * Merge client info from multiple sources
165
+ *
166
+ * @param sources Array of potential client info sources (later sources override earlier)
167
+ * @returns Merged client info
168
+ */
169
+ export function mergeClientInfo(...sources) {
170
+ const merged = {};
171
+ for (const source of sources) {
172
+ if (source) {
173
+ Object.assign(merged, source);
174
+ }
175
+ }
176
+ return merged;
177
+ }
178
+ //# sourceMappingURL=client-info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-info.js","sourceRoot":"","sources":["../../src/utils/client-info.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Error Formatter Utility
3
+ *
4
+ * Provides consistent JSON-RPC error response formatting for all error types.
5
+ * Handles special cases like DelegationRequiredError and OAuthRequiredError.
6
+ */
7
+ /**
8
+ * JSON-RPC error response structure
9
+ */
10
+ export interface JsonRpcErrorResponse {
11
+ jsonrpc: string;
12
+ id: unknown;
13
+ error: {
14
+ code: number;
15
+ message: string;
16
+ data?: any;
17
+ };
18
+ }
19
+ /**
20
+ * Error codes for different error types
21
+ */
22
+ export declare const ERROR_CODES: {
23
+ readonly PARSE_ERROR: -32700;
24
+ readonly INVALID_REQUEST: -32600;
25
+ readonly METHOD_NOT_FOUND: -32601;
26
+ readonly INVALID_PARAMS: -32602;
27
+ readonly INTERNAL_ERROR: -32603;
28
+ readonly DELEGATION_REQUIRED: -32001;
29
+ readonly OAUTH_REQUIRED: -32002;
30
+ readonly AUTHORIZATION_REQUIRED: -32003;
31
+ readonly SESSION_EXPIRED: -32004;
32
+ };
33
+ /**
34
+ * Format a generic error into JSON-RPC response
35
+ *
36
+ * @param error The error to format
37
+ * @param id Request ID from JSON-RPC request
38
+ * @returns Formatted JSON-RPC error response
39
+ */
40
+ export declare function formatJsonRpcError(error: unknown, id: unknown): JsonRpcErrorResponse;
41
+ /**
42
+ * Format DelegationRequiredError into JSON-RPC response
43
+ *
44
+ * @param error Delegation required error
45
+ * @param id Request ID
46
+ * @returns Formatted error response with consent URL
47
+ */
48
+ export declare function formatDelegationError(error: any, id: unknown): JsonRpcErrorResponse;
49
+ /**
50
+ * Format OAuthRequiredError into JSON-RPC response
51
+ *
52
+ * @param error OAuth required error
53
+ * @param id Request ID
54
+ * @returns Formatted error response with OAuth URL
55
+ */
56
+ export declare function formatOAuthError(error: any, id: unknown): JsonRpcErrorResponse;
57
+ /**
58
+ * Check if error is a DelegationRequiredError
59
+ *
60
+ * @param error Error to check
61
+ * @returns true if it's a delegation required error
62
+ */
63
+ export declare function isDelegationRequiredError(error: unknown): boolean;
64
+ /**
65
+ * Check if error is an OAuthRequiredError
66
+ *
67
+ * @param error Error to check
68
+ * @returns true if it's an OAuth required error
69
+ */
70
+ export declare function isOAuthRequiredError(error: unknown): boolean;
71
+ /**
72
+ * Format method not found error
73
+ *
74
+ * @param method The method that was not found
75
+ * @param id Request ID
76
+ * @returns Formatted error response
77
+ */
78
+ export declare function formatMethodNotFoundError(method: string, id: unknown): JsonRpcErrorResponse;
79
+ /**
80
+ * Format tool not found error
81
+ *
82
+ * @param toolName The tool that was not found
83
+ * @param id Request ID
84
+ * @returns Formatted error response
85
+ */
86
+ export declare function formatToolNotFoundError(toolName: string, id: unknown): JsonRpcErrorResponse;
87
+ /**
88
+ * Format session expired error
89
+ *
90
+ * @param sessionId The expired session ID
91
+ * @param id Request ID
92
+ * @returns Formatted error response
93
+ */
94
+ export declare function formatSessionExpiredError(sessionId: string, id: unknown): JsonRpcErrorResponse;
95
+ /**
96
+ * Create a success response wrapper
97
+ *
98
+ * @param result The result to wrap
99
+ * @param id Request ID
100
+ * @returns JSON-RPC success response
101
+ */
102
+ export declare function formatSuccessResponse(result: any, id: unknown): any;
103
+ //# sourceMappingURL=error-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-formatter.d.ts","sourceRoot":"","sources":["../../src/utils/error-formatter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,GAAG,CAAC;KACZ,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;CAad,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,GAAG,oBAAoB,CAoDpF;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,GAAG,oBAAoB,CA4BnF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,GAAG,oBAAoB,CA8B9E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAWjE;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAW5D;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,oBAAoB,CAS3F;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,oBAAoB,CAS3F;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,GAAG,oBAAoB,CAY9F;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,GAAG,GAAG,CAMnE"}