@kya-os/mcp-i 1.5.5 → 1.5.6-canary.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.
@@ -395,8 +395,10 @@ async function addToolsToServer(server, toolModules, identityConfig) {
395
395
  }
396
396
  // Generate proof using the proof generator with scopeId
397
397
  const proofGen = new proof_1.ProofGenerator(identity);
398
- const proof = await proofGen.generateProof(toolRequest, toolResponse, session, { scopeId } // Pass scopeId for tool auto-discovery
399
- );
398
+ const proof = await proofGen.generateProof(toolRequest, toolResponse, session, {
399
+ scopeId, // Pass scopeId for tool auto-discovery
400
+ clientDid: session?.clientDid, // Pass clientDid if available
401
+ });
400
402
  if (identityConfig?.debug) {
401
403
  console.error(`[MCPI] Generated proof for tool "${name}" - DID: ${proof.meta.did}`);
402
404
  }
@@ -154,7 +154,7 @@ exports.CoreVerifier = CoreVerifier;
154
154
  async function verifyWorker(request, config) {
155
155
  try {
156
156
  // Extract proof from request headers or body
157
- const proof = await extractProofFromRequest(request);
157
+ const proof = await parseProofFromHeaders(request);
158
158
  if (!proof) {
159
159
  return {
160
160
  success: false,
@@ -166,7 +166,7 @@ async function verifyWorker(request, config) {
166
166
  };
167
167
  }
168
168
  // Extract receipt if present
169
- const receipt = await extractReceiptFromRequest(request);
169
+ const receipt = await parseReceiptFromHeaders(request);
170
170
  const verifier = new CoreVerifier(config);
171
171
  return await verifier.verify({ proof, receipt: receipt || undefined });
172
172
  }
@@ -188,7 +188,7 @@ function verifyExpress(config) {
188
188
  return async (req, res, next) => {
189
189
  try {
190
190
  // Extract proof from request
191
- const proof = await extractProofFromExpressRequest(req);
191
+ const proof = await parseProofFromExpressHeaders(req);
192
192
  if (!proof) {
193
193
  return res.status(401).json({
194
194
  code: "XMCP_I_ENOIDENTITY",
@@ -196,7 +196,7 @@ function verifyExpress(config) {
196
196
  });
197
197
  }
198
198
  // Extract receipt if present
199
- const receipt = await extractReceiptFromExpressRequest(req);
199
+ const receipt = await parseReceiptFromExpressHeaders(req);
200
200
  const verifier = new CoreVerifier(config);
201
201
  const result = await verifier.verify({
202
202
  proof,
@@ -237,23 +237,32 @@ function verifyExpress(config) {
237
237
  };
238
238
  }
239
239
  /**
240
- * Extract proof from Worker request
240
+ * Helper: Extract header value from different header types
241
241
  */
242
- async function extractProofFromRequest(request) {
242
+ function getHeaderValue(headers, name) {
243
+ if (headers instanceof Headers) {
244
+ return headers.get(name);
245
+ }
246
+ const header = headers[name.toLowerCase()];
247
+ if (!header)
248
+ return null;
249
+ return Array.isArray(header) ? header[0] : header;
250
+ }
251
+ /**
252
+ * Parse proof from request headers
253
+ *
254
+ * This function extracts ProofMeta from request headers.
255
+ * ProofMeta type is defined in @kya-os/contracts/proof.
256
+ *
257
+ * @param request - Fetch API Request or Express Request
258
+ * @returns ProofMeta (from @kya-os/contracts/proof) if found, null otherwise
259
+ */
260
+ async function parseProofFromHeaders(request) {
243
261
  // TODO: Implement actual proof extraction from request
244
262
  // This would typically look for proof in headers or request body
245
263
  // Placeholder implementation
246
- let proofHeader = null;
247
264
  // Handle both Fetch API Request and Node.js IncomingMessage
248
- if (typeof request.headers.get === "function") {
249
- // Fetch API Request
250
- proofHeader = request.headers.get("X-XMCP-I-Proof");
251
- }
252
- else {
253
- // Node.js IncomingMessage
254
- const header = request.headers["x-xmcp-i-proof"];
255
- proofHeader = Array.isArray(header) ? header[0] : header;
256
- }
265
+ const proofHeader = getHeaderValue(request.headers, "X-XMCP-I-Proof");
257
266
  if (!proofHeader) {
258
267
  return null;
259
268
  }
@@ -265,22 +274,19 @@ async function extractProofFromRequest(request) {
265
274
  }
266
275
  }
267
276
  /**
268
- * Extract receipt from Worker request
277
+ * Parse receipt from request headers
278
+ *
279
+ * This function extracts Receipt from request headers.
280
+ * Receipt type is defined in @kya-os/contracts/registry.
281
+ *
282
+ * @param request - Fetch API Request or Express Request
283
+ * @returns Receipt (from @kya-os/contracts/registry) if found, null otherwise
269
284
  */
270
- async function extractReceiptFromRequest(request) {
285
+ async function parseReceiptFromHeaders(request) {
271
286
  // TODO: Implement actual receipt extraction from request
272
287
  // This would typically look for receipt reference in headers
273
- let receiptRef = null;
274
288
  // Handle both Fetch API Request and Node.js IncomingMessage
275
- if (typeof request.headers.get === "function") {
276
- // Fetch API Request
277
- receiptRef = request.headers.get("X-XMCP-I-Receipt-Ref");
278
- }
279
- else {
280
- // Node.js IncomingMessage
281
- const header = request.headers["x-xmcp-i-receipt-ref"];
282
- receiptRef = Array.isArray(header) ? header[0] : header;
283
- }
289
+ const receiptRef = getHeaderValue(request.headers, "X-XMCP-I-Receipt-Ref");
284
290
  if (!receiptRef) {
285
291
  return null;
286
292
  }
@@ -288,9 +294,15 @@ async function extractReceiptFromRequest(request) {
288
294
  return null;
289
295
  }
290
296
  /**
291
- * Extract proof from Express request
297
+ * Parse proof from Express request headers
298
+ *
299
+ * This function extracts ProofMeta from Express request headers.
300
+ * ProofMeta type is defined in @kya-os/contracts/proof.
301
+ *
302
+ * @param req - Express Request
303
+ * @returns ProofMeta (from @kya-os/contracts/proof) if found, null otherwise
292
304
  */
293
- async function extractProofFromExpressRequest(req) {
305
+ async function parseProofFromExpressHeaders(req) {
294
306
  // TODO: Implement actual proof extraction from Express request
295
307
  // This would typically look for proof in headers or request body
296
308
  const proofHeader = req.headers["x-xmcp-i-proof"];
@@ -308,9 +320,15 @@ async function extractProofFromExpressRequest(req) {
308
320
  }
309
321
  }
310
322
  /**
311
- * Extract receipt from Express request
323
+ * Parse receipt from Express request headers
324
+ *
325
+ * This function extracts Receipt from Express request headers.
326
+ * Receipt type is defined in @kya-os/contracts/registry.
327
+ *
328
+ * @param req - Express Request
329
+ * @returns Receipt (from @kya-os/contracts/registry) if found, null otherwise
312
330
  */
313
- async function extractReceiptFromExpressRequest(req) {
331
+ async function parseReceiptFromExpressHeaders(req) {
314
332
  // TODO: Implement actual receipt extraction from Express request
315
333
  // This would typically look for receipt reference in headers
316
334
  const receiptRef = req.headers["x-xmcp-i-receipt-ref"];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kya-os/mcp-i",
3
- "version": "1.5.5",
3
+ "version": "1.5.6-canary.0",
4
4
  "description": "The TypeScript MCP framework with identity features built-in",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",
@@ -30,6 +30,11 @@
30
30
  "require": "./dist/cli-adapter/index.js",
31
31
  "import": "./dist/cli-adapter/index.js",
32
32
  "types": "./dist/cli-adapter/index.d.ts"
33
+ },
34
+ "./config": {
35
+ "require": "./dist/config.js",
36
+ "import": "./dist/config.js",
37
+ "types": "./dist/config.d.ts"
33
38
  }
34
39
  },
35
40
  "files": [
@@ -53,8 +58,8 @@
53
58
  "model-context-protocol"
54
59
  ],
55
60
  "dependencies": {
56
- "@kya-os/contracts": "^1.3.1-canary.3",
57
- "@kya-os/mcp-i-core": "^1.1.1-canary.1",
61
+ "@kya-os/contracts": "1.5.2-canary.0",
62
+ "@kya-os/mcp-i-core": "1.1.13-canary.1",
58
63
  "@modelcontextprotocol/sdk": "^1.11.4",
59
64
  "@swc/core": "^1.11.24",
60
65
  "@types/express": "^5.0.1",
@@ -100,14 +105,14 @@
100
105
  "@types/node": "^20.0.0",
101
106
  "@typescript-eslint/eslint-plugin": "^6.0.0",
102
107
  "@typescript-eslint/parser": "^6.0.0",
103
- "@vitest/coverage-v8": "^3.2.4",
108
+ "@vitest/coverage-v8": "^4.0.5",
104
109
  "copy-webpack-plugin": "^12.0.2",
105
110
  "eslint": "^8.0.0",
106
111
  "node-loader": "^1.0.1",
107
112
  "redis": "^4.0.0",
108
113
  "ts-loader": "^9.4.2",
109
114
  "typescript": "^5.3.0",
110
- "vitest": "^3.2.4",
115
+ "vitest": "^4.0.5",
111
116
  "zod": "^3.22.4"
112
117
  },
113
118
  "engines": {