@kya-os/mcp-i-cloudflare 1.1.0 → 1.2.0
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/README.md +161 -339
- package/dist/adapter.d.ts +7 -1
- package/dist/adapter.d.ts.map +1 -1
- package/dist/adapter.js +197 -39
- package/dist/adapter.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/storage/kv-proof-archive.d.ts +115 -0
- package/dist/storage/kv-proof-archive.d.ts.map +1 -0
- package/dist/storage/kv-proof-archive.js +264 -0
- package/dist/storage/kv-proof-archive.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cloudflare KV Proof Archive
|
|
3
|
+
*
|
|
4
|
+
* Stores detached cryptographic proofs for audit trails and compliance.
|
|
5
|
+
* Provides query capabilities for monitoring and debugging.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* KV-based proof archive for Cloudflare Workers
|
|
9
|
+
*/
|
|
10
|
+
export class KVProofArchive {
|
|
11
|
+
kv;
|
|
12
|
+
keyPrefix;
|
|
13
|
+
defaultTTL; // seconds, 0 = never expire
|
|
14
|
+
constructor(kv, options = {}) {
|
|
15
|
+
this.kv = kv;
|
|
16
|
+
this.keyPrefix = options.keyPrefix || 'proof:';
|
|
17
|
+
this.defaultTTL = options.ttl !== undefined ? options.ttl : 86400 * 30; // 30 days default
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Store a proof in the archive
|
|
21
|
+
*/
|
|
22
|
+
async store(proof, options = {}) {
|
|
23
|
+
// Normalize proof format (support both full and simplified formats)
|
|
24
|
+
const sessionId = proof.meta?.sessionId || proof.sessionId || `no-session-${Date.now()}`;
|
|
25
|
+
const ts = proof.meta?.ts || proof.timestamp || Date.now();
|
|
26
|
+
const did = proof.meta?.did || proof.did || 'unknown-did';
|
|
27
|
+
const audience = proof.meta?.audience || proof.audience || 'mcp-client';
|
|
28
|
+
// Generate unique ID based on session + timestamp
|
|
29
|
+
const id = this.generateProofId(sessionId, ts);
|
|
30
|
+
const record = {
|
|
31
|
+
id,
|
|
32
|
+
proof,
|
|
33
|
+
toolName: options.toolName,
|
|
34
|
+
storedAt: Date.now(),
|
|
35
|
+
expiresAt: options.ttl || this.defaultTTL > 0
|
|
36
|
+
? Date.now() + (options.ttl || this.defaultTTL) * 1000
|
|
37
|
+
: undefined
|
|
38
|
+
};
|
|
39
|
+
const key = this.getKey(id);
|
|
40
|
+
const ttl = options.ttl || this.defaultTTL;
|
|
41
|
+
// Store with optional TTL
|
|
42
|
+
if (ttl > 0) {
|
|
43
|
+
await this.kv.put(key, JSON.stringify(record), {
|
|
44
|
+
expirationTtl: ttl,
|
|
45
|
+
metadata: {
|
|
46
|
+
did,
|
|
47
|
+
sessionId,
|
|
48
|
+
audience,
|
|
49
|
+
ts,
|
|
50
|
+
toolName: options.toolName
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
await this.kv.put(key, JSON.stringify(record), {
|
|
56
|
+
metadata: {
|
|
57
|
+
did,
|
|
58
|
+
sessionId,
|
|
59
|
+
audience,
|
|
60
|
+
ts,
|
|
61
|
+
toolName: options.toolName
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
// Also store index entries for queries
|
|
66
|
+
await this.indexProof(proof, id);
|
|
67
|
+
return id;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Retrieve a proof by ID
|
|
71
|
+
*/
|
|
72
|
+
async get(id) {
|
|
73
|
+
const key = this.getKey(id);
|
|
74
|
+
const value = await this.kv.get(key);
|
|
75
|
+
if (!value) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
return JSON.parse(value);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Query proofs with filters
|
|
87
|
+
*/
|
|
88
|
+
async query(query = {}) {
|
|
89
|
+
const limit = query.limit || 100;
|
|
90
|
+
const results = [];
|
|
91
|
+
// List keys with prefix
|
|
92
|
+
const listResult = await this.kv.list({
|
|
93
|
+
prefix: this.keyPrefix,
|
|
94
|
+
limit: Math.min(limit * 2, 1000) // Get more than needed for filtering
|
|
95
|
+
});
|
|
96
|
+
// Fetch and filter proofs
|
|
97
|
+
for (const key of listResult.keys) {
|
|
98
|
+
if (results.length >= limit)
|
|
99
|
+
break;
|
|
100
|
+
const value = await this.kv.get(key.name);
|
|
101
|
+
if (!value)
|
|
102
|
+
continue;
|
|
103
|
+
try {
|
|
104
|
+
const record = JSON.parse(value);
|
|
105
|
+
// Apply filters (handle both proof formats)
|
|
106
|
+
const recSessionId = record.proof.meta?.sessionId || record.proof.sessionId;
|
|
107
|
+
const recDid = record.proof.meta?.did || record.proof.did;
|
|
108
|
+
const recAudience = record.proof.meta?.audience;
|
|
109
|
+
const recTs = record.proof.meta?.ts || record.proof.timestamp;
|
|
110
|
+
if (query.sessionId && recSessionId !== query.sessionId)
|
|
111
|
+
continue;
|
|
112
|
+
if (query.did && recDid !== query.did)
|
|
113
|
+
continue;
|
|
114
|
+
if (query.audience && recAudience && recAudience !== query.audience)
|
|
115
|
+
continue;
|
|
116
|
+
if (query.after && recTs && recTs * 1000 < query.after)
|
|
117
|
+
continue;
|
|
118
|
+
if (query.before && recTs && recTs * 1000 > query.before)
|
|
119
|
+
continue;
|
|
120
|
+
results.push(record);
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// Sort by timestamp desc (newest first)
|
|
127
|
+
results.sort((a, b) => {
|
|
128
|
+
const aTs = a.proof.meta?.ts || a.proof.timestamp || 0;
|
|
129
|
+
const bTs = b.proof.meta?.ts || b.proof.timestamp || 0;
|
|
130
|
+
return bTs - aTs;
|
|
131
|
+
});
|
|
132
|
+
return results.slice(0, limit);
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Get proofs for a specific session
|
|
136
|
+
*/
|
|
137
|
+
async getBySession(sessionId, limit = 100) {
|
|
138
|
+
return this.query({ sessionId, limit });
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Get proofs by DID
|
|
142
|
+
*/
|
|
143
|
+
async getByDID(did, limit = 100) {
|
|
144
|
+
return this.query({ did, limit });
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Get recent proofs
|
|
148
|
+
*/
|
|
149
|
+
async getRecent(limit = 100) {
|
|
150
|
+
return this.query({ limit });
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Delete a proof by ID
|
|
154
|
+
*/
|
|
155
|
+
async delete(id) {
|
|
156
|
+
const key = this.getKey(id);
|
|
157
|
+
await this.kv.delete(key);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Get storage statistics
|
|
161
|
+
*/
|
|
162
|
+
async getStats() {
|
|
163
|
+
const now = Date.now();
|
|
164
|
+
const day24h = now - 86400 * 1000;
|
|
165
|
+
const day7d = now - 7 * 86400 * 1000;
|
|
166
|
+
let total = 0;
|
|
167
|
+
let last24h = 0;
|
|
168
|
+
let last7d = 0;
|
|
169
|
+
let oldestTimestamp;
|
|
170
|
+
let newestTimestamp;
|
|
171
|
+
// List all proof keys
|
|
172
|
+
const listResult = await this.kv.list({
|
|
173
|
+
prefix: this.keyPrefix,
|
|
174
|
+
limit: 1000
|
|
175
|
+
});
|
|
176
|
+
total = listResult.keys.length;
|
|
177
|
+
// Sample recent proofs for time-based stats
|
|
178
|
+
for (const key of listResult.keys.slice(0, 100)) {
|
|
179
|
+
if (key.metadata) {
|
|
180
|
+
const ts = key.metadata.ts;
|
|
181
|
+
if (ts) {
|
|
182
|
+
const tsMs = ts * 1000;
|
|
183
|
+
if (tsMs > day24h)
|
|
184
|
+
last24h++;
|
|
185
|
+
if (tsMs > day7d)
|
|
186
|
+
last7d++;
|
|
187
|
+
if (!oldestTimestamp || tsMs < oldestTimestamp) {
|
|
188
|
+
oldestTimestamp = tsMs;
|
|
189
|
+
}
|
|
190
|
+
if (!newestTimestamp || tsMs > newestTimestamp) {
|
|
191
|
+
newestTimestamp = tsMs;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return {
|
|
197
|
+
total,
|
|
198
|
+
last24h,
|
|
199
|
+
last7d,
|
|
200
|
+
oldestTimestamp,
|
|
201
|
+
newestTimestamp
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Clear all proofs (use with caution!)
|
|
206
|
+
*/
|
|
207
|
+
async clear() {
|
|
208
|
+
let deleted = 0;
|
|
209
|
+
let cursor;
|
|
210
|
+
do {
|
|
211
|
+
const listResult = await this.kv.list({
|
|
212
|
+
prefix: this.keyPrefix,
|
|
213
|
+
limit: 1000,
|
|
214
|
+
cursor
|
|
215
|
+
});
|
|
216
|
+
for (const key of listResult.keys) {
|
|
217
|
+
await this.kv.delete(key.name);
|
|
218
|
+
deleted++;
|
|
219
|
+
}
|
|
220
|
+
cursor = listResult.list_complete ? undefined : listResult.cursor;
|
|
221
|
+
} while (cursor);
|
|
222
|
+
return deleted;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Generate unique proof ID
|
|
226
|
+
*/
|
|
227
|
+
generateProofId(sessionId, timestamp) {
|
|
228
|
+
// Use session + timestamp for unique ID
|
|
229
|
+
// Add random suffix to handle multiple proofs in same millisecond
|
|
230
|
+
const random = Math.random().toString(36).substring(2, 8);
|
|
231
|
+
return `${sessionId}-${timestamp}-${random}`;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Get KV key for proof ID
|
|
235
|
+
*/
|
|
236
|
+
getKey(id) {
|
|
237
|
+
return `${this.keyPrefix}${id}`;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Create index entries for efficient queries
|
|
241
|
+
*/
|
|
242
|
+
async indexProof(proof, id) {
|
|
243
|
+
// Create index entries for common queries
|
|
244
|
+
const sessionId = proof.meta?.sessionId || proof.sessionId || `no-session`;
|
|
245
|
+
const did = proof.meta?.did || proof.did || 'unknown-did';
|
|
246
|
+
const audience = proof.meta?.audience || proof.audience || 'mcp-client';
|
|
247
|
+
const indexes = [
|
|
248
|
+
`session:${sessionId}:${id}`,
|
|
249
|
+
`did:${did}:${id}`,
|
|
250
|
+
`audience:${audience}:${id}`
|
|
251
|
+
];
|
|
252
|
+
const ttl = this.defaultTTL > 0 ? this.defaultTTL : undefined;
|
|
253
|
+
for (const indexKey of indexes) {
|
|
254
|
+
const key = `${this.keyPrefix}idx:${indexKey}`;
|
|
255
|
+
if (ttl) {
|
|
256
|
+
await this.kv.put(key, id, { expirationTtl: ttl });
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
await this.kv.put(key, id);
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
//# sourceMappingURL=kv-proof-archive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kv-proof-archive.js","sourceRoot":"","sources":["../../src/storage/kv-proof-archive.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqDH;;GAEG;AACH,MAAM,OAAO,cAAc;IACjB,EAAE,CAAc;IAChB,SAAS,CAAS;IAClB,UAAU,CAAS,CAAC,4BAA4B;IAExD,YACE,EAAe,EACf,UAGI,EAAE;QAEN,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC;QAC/C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,kBAAkB;IAC5F,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CACT,KAAoB,EACpB,UAGI,EAAE;QAEN,oEAAoE;QACpE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,cAAc,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACzF,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;QAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,aAAa,CAAC;QAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC;QAExE,kDAAkD;QAClD,MAAM,EAAE,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAE/C,MAAM,MAAM,GAAgB;YAC1B,EAAE;YACF,KAAK;YACL,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE;YACpB,SAAS,EAAE,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC;gBAC3C,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI;gBACtD,CAAC,CAAC,SAAS;SACd,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC;QAE3C,0BAA0B;QAC1B,IAAI,GAAG,GAAG,CAAC,EAAE,CAAC;YACZ,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBAC7C,aAAa,EAAE,GAAG;gBAClB,QAAQ,EAAE;oBACR,GAAG;oBACH,SAAS;oBACT,QAAQ;oBACR,EAAE;oBACF,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B;aACF,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;gBAC7C,QAAQ,EAAE;oBACR,GAAG;oBACH,SAAS;oBACT,QAAQ;oBACR,EAAE;oBACF,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B;aACF,CAAC,CAAC;QACL,CAAC;QAED,uCAAuC;QACvC,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAEjC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,EAAU;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAErC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAgB,CAAC;QAC1C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,QAAoB,EAAE;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,GAAG,CAAC;QACjC,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,wBAAwB;QACxB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;YACpC,MAAM,EAAE,IAAI,CAAC,SAAS;YACtB,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,qCAAqC;SACvE,CAAC,CAAC;QAEH,0BAA0B;QAC1B,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YAClC,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK;gBAAE,MAAM;YAEnC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK;gBAAE,SAAS;YAErB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAgB,CAAC;gBAEhD,4CAA4C;gBAC5C,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;gBAC5E,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;gBAC1D,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC;gBAChD,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;gBAE9D,IAAI,KAAK,CAAC,SAAS,IAAI,YAAY,KAAK,KAAK,CAAC,SAAS;oBAAE,SAAS;gBAClE,IAAI,KAAK,CAAC,GAAG,IAAI,MAAM,KAAK,KAAK,CAAC,GAAG;oBAAE,SAAS;gBAChD,IAAI,KAAK,CAAC,QAAQ,IAAI,WAAW,IAAI,WAAW,KAAK,KAAK,CAAC,QAAQ;oBAAE,SAAS;gBAC9E,IAAI,KAAK,CAAC,KAAK,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK;oBAAE,SAAS;gBACjE,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC,MAAM;oBAAE,SAAS;gBAEnE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACpB,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;YACvD,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;YACvD,OAAO,GAAG,GAAG,GAAG,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,SAAiB,EAAE,KAAK,GAAG,GAAG;QAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ,CAAC,GAAW,EAAE,KAAK,GAAG,GAAG;QACrC,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,KAAK,GAAG,GAAG;QACzB,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,EAAU;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC5B,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC;QAClC,MAAM,KAAK,GAAG,GAAG,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;QAErC,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,MAAM,GAAG,CAAC,CAAC;QACf,IAAI,eAAmC,CAAC;QACxC,IAAI,eAAmC,CAAC;QAExC,sBAAsB;QACtB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;YACpC,MAAM,EAAE,IAAI,CAAC,SAAS;YACtB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;QAE/B,4CAA4C;QAC5C,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YAChD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACjB,MAAM,EAAE,GAAI,GAAG,CAAC,QAAgB,CAAC,EAAY,CAAC;gBAC9C,IAAI,EAAE,EAAE,CAAC;oBACP,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC;oBAEvB,IAAI,IAAI,GAAG,MAAM;wBAAE,OAAO,EAAE,CAAC;oBAC7B,IAAI,IAAI,GAAG,KAAK;wBAAE,MAAM,EAAE,CAAC;oBAE3B,IAAI,CAAC,eAAe,IAAI,IAAI,GAAG,eAAe,EAAE,CAAC;wBAC/C,eAAe,GAAG,IAAI,CAAC;oBACzB,CAAC;oBACD,IAAI,CAAC,eAAe,IAAI,IAAI,GAAG,eAAe,EAAE,CAAC;wBAC/C,eAAe,GAAG,IAAI,CAAC;oBACzB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK;YACL,OAAO;YACP,MAAM;YACN,eAAe;YACf,eAAe;SAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAI,MAA0B,CAAC;QAE/B,GAAG,CAAC;YACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;gBACpC,MAAM,EAAE,IAAI,CAAC,SAAS;gBACtB,KAAK,EAAE,IAAI;gBACX,MAAM;aACP,CAAC,CAAC;YAEH,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;gBAClC,MAAM,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC/B,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QACpE,CAAC,QAAQ,MAAM,EAAE;QAEjB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,SAAiB,EAAE,SAAiB;QAC1D,wCAAwC;QACxC,kEAAkE;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC1D,OAAO,GAAG,SAAS,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,EAAU;QACvB,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,EAAE,EAAE,CAAC;IAClC,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,UAAU,CAAC,KAAoB,EAAE,EAAU;QACvD,0CAA0C;QAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,SAAS,IAAI,KAAK,CAAC,SAAS,IAAI,YAAY,CAAC;QAC3E,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,aAAa,CAAC;QAC1D,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,EAAE,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC;QAExE,MAAM,OAAO,GAAG;YACd,WAAW,SAAS,IAAI,EAAE,EAAE;YAC5B,OAAO,GAAG,IAAI,EAAE,EAAE;YAClB,YAAY,QAAQ,IAAI,EAAE,EAAE;SAC7B,CAAC;QAEF,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9D,KAAK,MAAM,QAAQ,IAAI,OAAO,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,OAAO,QAAQ,EAAE,CAAC;YAC/C,IAAI,GAAG,EAAE,CAAC;gBACR,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC;YACrD,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kya-os/mcp-i-cloudflare",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "Cloudflare Workers implementation of MCP-I framework",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"scripts": {
|
|
19
19
|
"build": "tsc",
|
|
20
20
|
"dev": "tsc --watch",
|
|
21
|
-
"test": "vitest",
|
|
21
|
+
"test": "vitest --run",
|
|
22
22
|
"lint": "eslint src/**/*.ts",
|
|
23
23
|
"type-check": "tsc --noEmit"
|
|
24
24
|
},
|
|
@@ -32,8 +32,8 @@
|
|
|
32
32
|
"edge"
|
|
33
33
|
],
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@kya-os/mcp-i-core": "^1.
|
|
36
|
-
"@kya-os/contracts": "^1.
|
|
35
|
+
"@kya-os/mcp-i-core": "^1.1.0",
|
|
36
|
+
"@kya-os/contracts": "^1.3.0",
|
|
37
37
|
"@modelcontextprotocol/sdk": "^1.11.4"
|
|
38
38
|
},
|
|
39
39
|
"devDependencies": {
|