@kya-os/mcp-i-cloudflare 1.3.5 → 1.3.6
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/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/providers/identity.d.ts +0 -33
- package/dist/providers/identity.d.ts.map +0 -1
- package/dist/providers/identity.js +0 -62
- package/dist/providers/identity.js.map +0 -1
- package/dist/providers/nonce-cache.d.ts +0 -17
- package/dist/providers/nonce-cache.d.ts.map +0 -1
- package/dist/providers/nonce-cache.js +0 -58
- package/dist/providers/nonce-cache.js.map +0 -1
- package/dist/runtime/index.d.ts +0 -31
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.js +0 -72
- package/dist/runtime/index.js.map +0 -1
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAkF,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3I,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACxB,CAAC;AAGF,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAGpI,OAAO,EACL,wBAAwB,EACxB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAGpE,OAAO,EAAE,qBAAqB,EAAE,KAAK,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG3F,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,aAAa,CAAC;IACnB,WAAW,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IAC3C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;KACxC,CAAC;IACF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAkF,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3I,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACxB,CAAC;AAGF,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAGpI,OAAO,EACL,wBAAwB,EACxB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,WAAW,CAAC;AAGpE,OAAO,EAAE,qBAAqB,EAAE,KAAK,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAG3F,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,qBAAqB,EAC3B,MAAM,yBAAyB,CAAC;AAGjC,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,gBAAgB,CAAC,EAAE,WAAW,CAAC;IAC/B,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,mBAAmB,CAAC,EAAE,kBAAkB,CAAC;CAC1C;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,aAAa,CAAC;IACnB,WAAW,CAAC,EAAE,aAAa,GAAG,YAAY,CAAC;IAC3C,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE;QACN,OAAO,EAAE,OAAO,CAAC;QACjB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;KACxC,CAAC;IACF,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,GAAG,iBAAiB,CA8BvF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,oBAAoB;mBAIrC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;EA0EnD;AAGD,OAAO,EAAE,2BAA2B,EAAE,KAAK,2BAA2B,EAAE,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -45,7 +45,8 @@ export function createCloudflareRuntime(config) {
|
|
|
45
45
|
timestampSkewSeconds: config.timestampSkewSeconds || 120,
|
|
46
46
|
sessionTtlMinutes: config.sessionTtlMinutes || 30,
|
|
47
47
|
audit: config.audit,
|
|
48
|
-
toolProtectionService: config.toolProtectionService // ← FIXED: Pass through toolProtectionService
|
|
48
|
+
toolProtectionService: config.toolProtectionService, // ← FIXED: Pass through toolProtectionService
|
|
49
|
+
authorizationUrl: config.authorizationUrl // ← FIXED: Pass through authorizationUrl
|
|
49
50
|
};
|
|
50
51
|
return new CloudflareRuntime(runtimeConfig);
|
|
51
52
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAyD,uBAAuB,EAAyB,MAAM,oBAAoB,CAAC;AAC3I,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACxB,CAAC;AAEF,4BAA4B;AAC5B,OAAO,EAAE,cAAc,EAA0E,MAAM,4BAA4B,CAAC;AAEpI,6BAA6B;AAC7B,OAAO,EACL,wBAAwB,EAMzB,MAAM,mBAAmB,CAAC;AAE3B,6DAA6D;AAC7D,OAAO,EAAE,iBAAiB,EAAwB,MAAM,WAAW,CAAC;AAEpE,kCAAkC;AAClC,OAAO,EAAE,qBAAqB,EAAoB,MAAM,kCAAkC,CAAC;AAE3F,oCAAoC;AACpC,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EAOvB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAyD,uBAAuB,EAAyB,MAAM,oBAAoB,CAAC;AAC3I,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9C,sBAAsB;AACtB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,uBAAuB,EACxB,CAAC;AAEF,4BAA4B;AAC5B,OAAO,EAAE,cAAc,EAA0E,MAAM,4BAA4B,CAAC;AAEpI,6BAA6B;AAC7B,OAAO,EACL,wBAAwB,EAMzB,MAAM,mBAAmB,CAAC;AAE3B,6DAA6D;AAC7D,OAAO,EAAE,iBAAiB,EAAwB,MAAM,WAAW,CAAC;AAEpE,kCAAkC;AAClC,OAAO,EAAE,qBAAqB,EAAoB,MAAM,kCAAkC,CAAC;AAE3F,oCAAoC;AACpC,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EAOvB,MAAM,yBAAyB,CAAC;AAmCjC;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAA4B;IAClE,MAAM,cAAc,GAAG,IAAI,iBAAiB,EAAE,CAAC;IAC/C,MAAM,aAAa,GAAG,IAAI,oBAAoB,EAAE,CAAC;IACjD,MAAM,aAAa,GAAG,IAAI,oBAAoB,EAAE,CAAC;IACjD,MAAM,eAAe,GAAG,IAAI,iBAAiB,CAC3C,MAAM,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAC,GAAG,CAAC,WAAW,CACtD,CAAC;IACF,MAAM,kBAAkB,GAAG,IAAI,oBAAoB,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC5E,MAAM,gBAAgB,GAAG,IAAI,uBAAuB,CAClD,MAAM,CAAC,GAAG,EACV,cAAc,EACd,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAE,yCAAyC;KAC1E,CAAC;IAEF,MAAM,aAAa,GAAe;QAChC,cAAc;QACd,aAAa;QACb,aAAa;QACb,eAAe;QACf,kBAAkB;QAClB,gBAAgB;QAChB,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,YAAY;QAC/C,oBAAoB,EAAE,MAAM,CAAC,oBAAoB,IAAI,GAAG;QACxD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;QACjD,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,EAAG,8CAA8C;QACpG,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,CAAE,yCAAyC;KACrF,CAAC;IAEF,OAAO,IAAI,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAA4B;IAC5D,MAAM,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAEhD,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,OAAgB;YAC1B,sCAAsC;YACtC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;gBACzB,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;YAC7B,CAAC;YAED,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAEjC,8BAA8B;YAC9B,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gBAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,sBAAsB,EAAE,CAAC;gBACjD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAE3C,IAAI,MAAM,EAAE,CAAC;oBACX,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;wBACnD,OAAO,IAAI,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE;4BAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;4BACrB,OAAO,EAAE;gCACP,GAAG,MAAM,CAAC,OAAO;gCACjB,GAAG,uBAAuB;6BAC3B;yBACF,CAAC,CAAC;oBACL,CAAC;oBACD,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;wBAC1C,OAAO,EAAE;4BACP,cAAc,EAAE,kBAAkB;4BAClC,GAAG,uBAAuB;yBAC3B;qBACF,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,sBAAsB;YACtB,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;gBAC9B,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAS,CAAC;oBAEzC,mBAAmB;oBACnB,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;wBAChC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;wBAC1D,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;4BAC1C,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;yBAChD,CAAC,CAAC;oBACL,CAAC;oBAED,oBAAoB;oBACpB,IAAI,IAAI,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;wBACjC,2CAA2C;wBAC3C,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;4BACjC,MAAM,EAAE,mBAAmB;yBAC5B,CAAC,EAAE;4BACF,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;yBAChD,CAAC,CAAC;oBACL,CAAC;oBAED,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;wBACjC,KAAK,EAAE,gBAAgB;qBACxB,CAAC,EAAE;wBACF,MAAM,EAAE,GAAG;wBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;qBAChD,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,KAAU,EAAE,CAAC;oBACpB,OAAO,IAAI,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;wBACjC,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,gBAAgB;qBACzC,CAAC,EAAE;wBACF,MAAM,EAAE,GAAG;wBACX,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;qBAChD,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,OAAO,IAAI,QAAQ,CAAC,oBAAoB,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;QAC7D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,mDAAmD;AACnD,OAAO,EAAE,2BAA2B,EAAyD,MAAM,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cloudflare Workers identity provider using KV or environment variables
|
|
3
|
-
*/
|
|
4
|
-
import { IdentityProvider } from "@kya-os/mcp-i-core/dist/types/providers";
|
|
5
|
-
import { AgentIdentity } from "@kya-os/contracts/handshake";
|
|
6
|
-
export interface CloudflareEnv {
|
|
7
|
-
MCP_IDENTITY_DID?: string;
|
|
8
|
-
MCP_IDENTITY_KEY_ID?: string;
|
|
9
|
-
MCP_IDENTITY_PRIVATE_KEY?: string;
|
|
10
|
-
MCP_IDENTITY_PUBLIC_KEY?: string;
|
|
11
|
-
IDENTITY_KV?: KVNamespace;
|
|
12
|
-
}
|
|
13
|
-
export declare class WorkerIdentityProvider extends IdentityProvider {
|
|
14
|
-
private env;
|
|
15
|
-
constructor(env: CloudflareEnv);
|
|
16
|
-
/**
|
|
17
|
-
* Load identity from environment variables or KV
|
|
18
|
-
*/
|
|
19
|
-
loadIdentity(): Promise<AgentIdentity | null>;
|
|
20
|
-
/**
|
|
21
|
-
* Store identity in KV (if available)
|
|
22
|
-
*/
|
|
23
|
-
storeIdentity(identity: AgentIdentity): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* Check if identity exists
|
|
26
|
-
*/
|
|
27
|
-
hasIdentity(): Promise<boolean>;
|
|
28
|
-
/**
|
|
29
|
-
* Delete identity from KV
|
|
30
|
-
*/
|
|
31
|
-
deleteIdentity(): Promise<void>;
|
|
32
|
-
}
|
|
33
|
-
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/providers/identity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,MAAM,WAAW,aAAa;IAE5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAGjC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,qBAAa,sBAAuB,SAAQ,gBAAgB;IAC9C,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,aAAa;IAItC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAuBnD;;OAEG;IACG,aAAa,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAKrC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAKtC"}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cloudflare Workers identity provider using KV or environment variables
|
|
3
|
-
*/
|
|
4
|
-
import { IdentityProvider } from "@kya-os/mcp-i-core/dist/types/providers";
|
|
5
|
-
export class WorkerIdentityProvider extends IdentityProvider {
|
|
6
|
-
env;
|
|
7
|
-
constructor(env) {
|
|
8
|
-
super();
|
|
9
|
-
this.env = env;
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Load identity from environment variables or KV
|
|
13
|
-
*/
|
|
14
|
-
async loadIdentity() {
|
|
15
|
-
// First, try environment variables (for production)
|
|
16
|
-
if (this.env.MCP_IDENTITY_DID && this.env.MCP_IDENTITY_PRIVATE_KEY) {
|
|
17
|
-
return {
|
|
18
|
-
did: this.env.MCP_IDENTITY_DID,
|
|
19
|
-
keyId: this.env.MCP_IDENTITY_KEY_ID || `${this.env.MCP_IDENTITY_DID}#key-1`,
|
|
20
|
-
privateKey: this.env.MCP_IDENTITY_PRIVATE_KEY,
|
|
21
|
-
publicKey: this.env.MCP_IDENTITY_PUBLIC_KEY,
|
|
22
|
-
createdAt: new Date().toISOString() // We don't have the original timestamp
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
// Then try KV storage (for development/dynamic)
|
|
26
|
-
if (this.env.IDENTITY_KV) {
|
|
27
|
-
const identityJson = await this.env.IDENTITY_KV.get('identity');
|
|
28
|
-
if (identityJson) {
|
|
29
|
-
return JSON.parse(identityJson);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Store identity in KV (if available)
|
|
36
|
-
*/
|
|
37
|
-
async storeIdentity(identity) {
|
|
38
|
-
if (this.env.IDENTITY_KV) {
|
|
39
|
-
await this.env.IDENTITY_KV.put('identity', JSON.stringify(identity));
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
// In production, identities should be set via environment variables
|
|
43
|
-
console.warn('No KV namespace available for identity storage. Set identity via environment variables.');
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Check if identity exists
|
|
48
|
-
*/
|
|
49
|
-
async hasIdentity() {
|
|
50
|
-
const identity = await this.loadIdentity();
|
|
51
|
-
return identity !== null;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Delete identity from KV
|
|
55
|
-
*/
|
|
56
|
-
async deleteIdentity() {
|
|
57
|
-
if (this.env.IDENTITY_KV) {
|
|
58
|
-
await this.env.IDENTITY_KV.delete('identity');
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
//# sourceMappingURL=identity.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/providers/identity.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAc3E,MAAM,OAAO,sBAAuB,SAAQ,gBAAgB;IACtC;IAApB,YAAoB,GAAkB;QACpC,KAAK,EAAE,CAAC;QADU,QAAG,GAAH,GAAG,CAAe;IAEtC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY;QAChB,oDAAoD;QACpD,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,CAAC;YACnE,OAAO;gBACL,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,gBAAgB;gBAC9B,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,mBAAmB,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,QAAQ;gBAC3E,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,wBAAwB;gBAC7C,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,uBAAwB;gBAC5C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,uCAAuC;aAC5E,CAAC;QACJ,CAAC;QAED,gDAAgD;QAChD,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YAChE,IAAI,YAAY,EAAE,CAAC;gBACjB,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAkB,CAAC;YACnD,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,aAAa,CAAC,QAAuB;QACzC,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;QACvE,CAAC;aAAM,CAAC;YACN,oEAAoE;YACpE,OAAO,CAAC,IAAI,CAAC,yFAAyF,CAAC,CAAC;QAC1G,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC3C,OAAO,QAAQ,KAAK,IAAI,CAAC;IAC3B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cloudflare KV-based nonce cache provider
|
|
3
|
-
*/
|
|
4
|
-
import { NonceCacheProvider } from "@kya-os/mcp-i-core/dist/types/providers";
|
|
5
|
-
export declare class CloudflareKVNonceCache extends NonceCacheProvider {
|
|
6
|
-
private kv;
|
|
7
|
-
private keyPrefix;
|
|
8
|
-
constructor(kv: KVNamespace, keyPrefix?: string);
|
|
9
|
-
private getKey;
|
|
10
|
-
has(nonce: string): Promise<boolean>;
|
|
11
|
-
add(nonce: string, ttl: number): Promise<void>;
|
|
12
|
-
/**
|
|
13
|
-
* Cleanup is handled automatically by KV TTL
|
|
14
|
-
*/
|
|
15
|
-
cleanup(): Promise<void>;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=nonce-cache.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nonce-cache.d.ts","sourceRoot":"","sources":["../../src/providers/nonce-cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,qBAAa,sBAAuB,SAAQ,kBAAkB;IAGhD,OAAO,CAAC,EAAE;IAFtB,OAAO,CAAC,SAAS,CAAS;gBAEN,EAAE,EAAE,WAAW,EAAE,SAAS,SAAW;IAKzD,OAAO,CAAC,MAAM;IAIR,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBpC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBpD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAG/B"}
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cloudflare KV-based nonce cache provider
|
|
3
|
-
*/
|
|
4
|
-
import { NonceCacheProvider } from "@kya-os/mcp-i-core/dist/types/providers";
|
|
5
|
-
export class CloudflareKVNonceCache extends NonceCacheProvider {
|
|
6
|
-
kv;
|
|
7
|
-
keyPrefix;
|
|
8
|
-
constructor(kv, keyPrefix = 'nonce:') {
|
|
9
|
-
super();
|
|
10
|
-
this.kv = kv;
|
|
11
|
-
this.keyPrefix = keyPrefix;
|
|
12
|
-
}
|
|
13
|
-
getKey(nonce) {
|
|
14
|
-
return `${this.keyPrefix}${nonce}`;
|
|
15
|
-
}
|
|
16
|
-
async has(nonce) {
|
|
17
|
-
const key = this.getKey(nonce);
|
|
18
|
-
const value = await this.kv.get(key);
|
|
19
|
-
if (!value) {
|
|
20
|
-
return false;
|
|
21
|
-
}
|
|
22
|
-
// Parse the stored data to check expiry
|
|
23
|
-
try {
|
|
24
|
-
const data = JSON.parse(value);
|
|
25
|
-
if (Date.now() > data.expiresAt) {
|
|
26
|
-
// Clean up expired entry
|
|
27
|
-
await this.kv.delete(key);
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
return true;
|
|
31
|
-
}
|
|
32
|
-
catch {
|
|
33
|
-
// If we can't parse, assume expired and clean up
|
|
34
|
-
await this.kv.delete(key);
|
|
35
|
-
return false;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
async add(nonce, ttl) {
|
|
39
|
-
const key = this.getKey(nonce);
|
|
40
|
-
const expiresAt = Date.now() + ttl * 1000;
|
|
41
|
-
const data = {
|
|
42
|
-
nonce,
|
|
43
|
-
expiresAt,
|
|
44
|
-
createdAt: Date.now()
|
|
45
|
-
};
|
|
46
|
-
// Store with KV TTL for automatic cleanup
|
|
47
|
-
await this.kv.put(key, JSON.stringify(data), {
|
|
48
|
-
expirationTtl: ttl // TTL in seconds
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Cleanup is handled automatically by KV TTL
|
|
53
|
-
*/
|
|
54
|
-
async cleanup() {
|
|
55
|
-
// No-op: Cloudflare KV handles expiration automatically
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=nonce-cache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"nonce-cache.js","sourceRoot":"","sources":["../../src/providers/nonce-cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAE7E,MAAM,OAAO,sBAAuB,SAAQ,kBAAkB;IAGxC;IAFZ,SAAS,CAAS;IAE1B,YAAoB,EAAe,EAAE,SAAS,GAAG,QAAQ;QACvD,KAAK,EAAE,CAAC;QADU,OAAE,GAAF,EAAE,CAAa;QAEjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAEO,MAAM,CAAC,KAAa;QAC1B,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,KAAK,EAAE,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;QAED,wCAAwC;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBAChC,yBAAyB;gBACzB,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC1B,OAAO,KAAK,CAAC;YACf,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,iDAAiD;YACjD,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,KAAa,EAAE,GAAW;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC/B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC;QAE1C,MAAM,IAAI,GAAG;YACX,KAAK;YACL,SAAS;YACT,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,0CAA0C;QAC1C,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CACf,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EACpB;YACE,aAAa,EAAE,GAAG,CAAC,iBAAiB;SACrC,CACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,wDAAwD;IAC1D,CAAC;CACF"}
|
package/dist/runtime/index.d.ts
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP-I Runtime for Cloudflare Workers
|
|
3
|
-
*/
|
|
4
|
-
import { MCPIRuntimeBase } from "@kya-os/mcp-i-core/dist/runtime/base";
|
|
5
|
-
import { CloudflareEnv } from "../providers/identity";
|
|
6
|
-
/**
|
|
7
|
-
* Cloudflare Workers environment with required bindings
|
|
8
|
-
*/
|
|
9
|
-
export interface MCPICloudflareEnv extends CloudflareEnv {
|
|
10
|
-
NONCE_CACHE: KVNamespace;
|
|
11
|
-
STORAGE_KV?: KVNamespace;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* MCP-I Runtime for Cloudflare Workers
|
|
15
|
-
*/
|
|
16
|
-
export declare class MCPICloudflareRuntime extends MCPIRuntimeBase {
|
|
17
|
-
constructor(env: MCPICloudflareEnv);
|
|
18
|
-
/**
|
|
19
|
-
* Override session ID generation to use Web Crypto
|
|
20
|
-
*/
|
|
21
|
-
protected generateSessionId(): Promise<string>;
|
|
22
|
-
/**
|
|
23
|
-
* Override nonce generation to use Web Crypto
|
|
24
|
-
*/
|
|
25
|
-
protected generateNonce(): Promise<string>;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Create MCP-I server for Cloudflare Workers
|
|
29
|
-
*/
|
|
30
|
-
export declare function createMCPIServer(env: MCPICloudflareEnv): MCPICloudflareRuntime;
|
|
31
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAGvE,OAAO,EAA0B,aAAa,EAAE,MAAM,uBAAuB,CAAC;AA8B9E;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,aAAa;IAEtD,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,CAAC,EAAE,WAAW,CAAC;CAC1B;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;gBAC5C,GAAG,EAAE,iBAAiB;IAgBlC;;OAEG;cACa,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKpD;;OAEG;cACa,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;CAIjD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,yBAEtD"}
|
package/dist/runtime/index.js
DELETED
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MCP-I Runtime for Cloudflare Workers
|
|
3
|
-
*/
|
|
4
|
-
import { MCPIRuntimeBase } from "@kya-os/mcp-i-core/dist/runtime/base";
|
|
5
|
-
import { StorageProvider } from "@kya-os/mcp-i-core/dist/types/providers";
|
|
6
|
-
import { WebCryptoProvider } from "../providers/crypto";
|
|
7
|
-
import { WorkerIdentityProvider } from "../providers/identity";
|
|
8
|
-
import { CloudflareKVNonceCache } from "../providers/nonce-cache";
|
|
9
|
-
/**
|
|
10
|
-
* KV-based storage provider
|
|
11
|
-
*/
|
|
12
|
-
class KVStorageProvider extends StorageProvider {
|
|
13
|
-
kv;
|
|
14
|
-
constructor(kv) {
|
|
15
|
-
super();
|
|
16
|
-
this.kv = kv;
|
|
17
|
-
}
|
|
18
|
-
async get(key) {
|
|
19
|
-
return this.kv.get(key);
|
|
20
|
-
}
|
|
21
|
-
async set(key, value, ttl) {
|
|
22
|
-
const options = ttl ? { expirationTtl: ttl } : undefined;
|
|
23
|
-
await this.kv.put(key, value, options);
|
|
24
|
-
}
|
|
25
|
-
async delete(key) {
|
|
26
|
-
await this.kv.delete(key);
|
|
27
|
-
}
|
|
28
|
-
async has(key) {
|
|
29
|
-
const value = await this.kv.get(key);
|
|
30
|
-
return value !== null;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* MCP-I Runtime for Cloudflare Workers
|
|
35
|
-
*/
|
|
36
|
-
export class MCPICloudflareRuntime extends MCPIRuntimeBase {
|
|
37
|
-
constructor(env) {
|
|
38
|
-
// Initialize with Cloudflare-specific providers
|
|
39
|
-
super({
|
|
40
|
-
cryptoProvider: new WebCryptoProvider(),
|
|
41
|
-
identityProvider: new WorkerIdentityProvider(env),
|
|
42
|
-
nonceCacheProvider: new CloudflareKVNonceCache(env.NONCE_CACHE),
|
|
43
|
-
storageProvider: new KVStorageProvider(env.STORAGE_KV || env.NONCE_CACHE), // Fallback to NONCE_CACHE if no dedicated storage
|
|
44
|
-
// Configuration from environment
|
|
45
|
-
session: {
|
|
46
|
-
timestampSkewSeconds: parseInt(env.XMCP_I_TS_SKEW_SEC || '120'),
|
|
47
|
-
sessionTtlMinutes: parseInt(env.XMCP_I_SESSION_TTL || '30')
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Override session ID generation to use Web Crypto
|
|
53
|
-
*/
|
|
54
|
-
async generateSessionId() {
|
|
55
|
-
const bytes = crypto.getRandomValues(new Uint8Array(32));
|
|
56
|
-
return Buffer.from(bytes).toString('base64url');
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Override nonce generation to use Web Crypto
|
|
60
|
-
*/
|
|
61
|
-
async generateNonce() {
|
|
62
|
-
const bytes = crypto.getRandomValues(new Uint8Array(16));
|
|
63
|
-
return Buffer.from(bytes).toString('base64url');
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Create MCP-I server for Cloudflare Workers
|
|
68
|
-
*/
|
|
69
|
-
export function createMCPIServer(env) {
|
|
70
|
-
return new MCPICloudflareRuntime(env);
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAiB,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAElE;;GAEG;AACH,MAAM,iBAAkB,SAAQ,eAAe;IACzB;IAApB,YAAoB,EAAe;QACjC,KAAK,EAAE,CAAC;QADU,OAAE,GAAF,EAAE,CAAa;IAEnC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa,EAAE,GAAY;QAChD,MAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QACzD,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAW;QACtB,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACrC,OAAO,KAAK,KAAK,IAAI,CAAC;IACxB,CAAC;CACF;AAWD;;GAEG;AACH,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IACxD,YAAY,GAAsB;QAChC,gDAAgD;QAChD,KAAK,CAAC;YACJ,cAAc,EAAE,IAAI,iBAAiB,EAAE;YACvC,gBAAgB,EAAE,IAAI,sBAAsB,CAAC,GAAG,CAAC;YACjD,kBAAkB,EAAE,IAAI,sBAAsB,CAAC,GAAG,CAAC,WAAW,CAAC;YAC/D,eAAe,EAAE,IAAI,iBAAiB,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,WAAW,CAAC,EAAE,kDAAkD;YAE7H,iCAAiC;YACjC,OAAO,EAAE;gBACP,oBAAoB,EAAE,QAAQ,CAAC,GAAG,CAAC,kBAAkB,IAAI,KAAK,CAAC;gBAC/D,iBAAiB,EAAE,QAAQ,CAAC,GAAG,CAAC,kBAAkB,IAAI,IAAI,CAAC;aAC5D;SACF,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,iBAAiB;QAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,aAAa;QAC3B,MAAM,KAAK,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;QACzD,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAsB;IACrD,OAAO,IAAI,qBAAqB,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC"}
|