@kya-os/mcp-i-cloudflare 1.7.28 → 1.7.30

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/agent.d.ts CHANGED
@@ -50,6 +50,7 @@ export declare abstract class MCPICloudflareAgent extends McpAgent {
50
50
  private _environment;
51
51
  private _autoDetectedOrigin?;
52
52
  private _clientMessagesConfig?;
53
+ private _clientProvidedSessionId?;
53
54
  constructor(state: DurableObjectState, env: PrefixedCloudflareEnv, providerRegistry?: IProviderRegistry);
54
55
  /**
55
56
  * Lifecycle hook called when the Durable Object starts/wakes.
@@ -286,5 +287,42 @@ export declare abstract class MCPICloudflareAgent extends McpAgent {
286
287
  consentConfigCleared?: boolean;
287
288
  error?: string;
288
289
  }>;
290
+ /**
291
+ * Handle MCP-I handshake JSON-RPC request
292
+ *
293
+ * The handshake establishes mutual authentication between client and server:
294
+ * 1. Client sends nonce, timestamp, audience, and optionally clientDid
295
+ * 2. Server validates the request and creates a session
296
+ * 3. Server signs the response with its Ed25519 key
297
+ * 4. Client can verify the signature matches the server's DID from discovery
298
+ *
299
+ * This is OPTIONAL for backward compatibility - tools work without handshake,
300
+ * but clients that perform handshake get mutual authentication and
301
+ * cryptographic session binding.
302
+ */
303
+ private handleHandshakeRequest;
304
+ /**
305
+ * Validate a handshake session exists and is still valid
306
+ *
307
+ * ✅ SECURITY: This is critical for preventing session spoofing.
308
+ * The client sends a session ID in the X-Mcpi-Handshake-Session header,
309
+ * but we MUST verify that session actually exists in our KV store.
310
+ *
311
+ * Validation checks:
312
+ * 1. Session exists in KV (was created by a real handshake)
313
+ * 2. Session has not expired (handshakeTimestamp + TTL)
314
+ * 3. Session has the required fields (clientDid, handshakeTimestamp)
315
+ *
316
+ * @returns Validation result with clientDid if valid, or reason if invalid
317
+ */
318
+ private validateHandshakeSession;
319
+ /**
320
+ * Store handshake context in session storage for later use
321
+ *
322
+ * This stores the client DID and other handshake metadata so that
323
+ * subsequent tool calls can access this information for audit logging,
324
+ * delegation verification, etc.
325
+ */
326
+ private storeHandshakeContext;
289
327
  }
290
328
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -62,6 +62,7 @@ export class MCPICloudflareAgent extends McpAgent {
62
62
  _environment = "production";
63
63
  _autoDetectedOrigin; // Auto-detected server origin from request URL
64
64
  _clientMessagesConfig; // Client-specific delegation messages
65
+ _clientProvidedSessionId; // Deprecated: Use KV mapping instead to avoid race conditions
65
66
  constructor(state, env, providerRegistry = defaultProviderRegistry) {
66
67
  // Call super() with just state and env (agents@0.2.21+ only accepts 2 parameters)
67
68
  // The config is no longer passed to the constructor - it's set via the server property
@@ -609,24 +610,91 @@ export class MCPICloudflareAgent extends McpAgent {
609
610
  if (!this.mcpiRuntime) {
610
611
  throw new Error("MCP-I runtime not initialized. Call init() first.");
611
612
  }
612
- // Create session
613
- // ✅ CRITICAL: Use provided sessionId if available (from MCP request params)
614
- // This ensures delegation tokens stored with the original session ID can be retrieved
615
- // Priority: providedSessionId > getSessionId() > mcpi_{uuid}
613
+ // Create session with server-side validation
616
614
  const timestamp = Date.now();
617
- const sessionId = providedSessionId ||
618
- this.getSessionId() ||
619
- `mcpi_${crypto.randomUUID()}`;
620
- // Log session ID source for debugging
621
615
  const envPrefix = this.getEnvPrefix();
622
616
  const mappedEnv = envPrefix
623
617
  ? mapPrefixedEnv(this.env, envPrefix)
624
618
  : this.env;
625
- if (this.getRuntimeConfigInternal(mappedEnv).environment === "development") {
626
- logger.debug("[MCPICloudflareAgent] Session ID source:", {
619
+ // SECURITY: Server-side session validation
620
+ // If client provides a handshake session ID, we MUST verify it exists in KV
621
+ // This prevents clients from spoofing session IDs
622
+ let sessionId;
623
+ let validatedClientDid;
624
+ let sessionValidated = false;
625
+ // RACE CONDITION FIX: Look up handshake session from KV using MCP session ID
626
+ // This is safer than using the instance variable which can be overwritten by concurrent requests
627
+ const mcpSdkSessionId = this.getSessionId?.();
628
+ let handshakeSessionId;
629
+ // Try to get handshake session from KV mapping first (race-safe)
630
+ if (mcpSdkSessionId) {
631
+ try {
632
+ const delegationStorage = mappedEnv.DELEGATION_STORAGE;
633
+ if (delegationStorage) {
634
+ const mappingKey = STORAGE_KEYS.mcpSessionHandshakeMap(mcpSdkSessionId);
635
+ handshakeSessionId = await delegationStorage.get(mappingKey) || undefined;
636
+ if (handshakeSessionId && this._environment === "development") {
637
+ logger.debug("[MCPICloudflareAgent] Retrieved handshake session from KV mapping:", {
638
+ mcpSessionId: mcpSdkSessionId.slice(0, 20) + "...",
639
+ handshakeSession: handshakeSessionId.slice(0, 20) + "...",
640
+ });
641
+ }
642
+ }
643
+ }
644
+ catch (err) {
645
+ // Non-fatal: fall back to instance variable
646
+ logger.warn("[MCPICloudflareAgent] Failed to lookup session mapping:", err);
647
+ }
648
+ }
649
+ // Fall back to instance variable (for backward compatibility with tests)
650
+ if (!handshakeSessionId) {
651
+ handshakeSessionId = this._clientProvidedSessionId;
652
+ }
653
+ if (handshakeSessionId) {
654
+ // Client claims to have a handshake session - verify it server-side
655
+ const validationResult = await this.validateHandshakeSession(handshakeSessionId, mappedEnv);
656
+ if (validationResult.valid) {
657
+ // Session is valid - use it and extract clientDid
658
+ sessionId = handshakeSessionId;
659
+ validatedClientDid = validationResult.clientDid;
660
+ sessionValidated = true;
661
+ if (this._environment === "development") {
662
+ logger.debug("[MCPICloudflareAgent] ✅ Handshake session validated:", {
663
+ sessionId: sessionId.slice(0, 20) + "...",
664
+ clientDid: validatedClientDid?.slice(0, 30) + "...",
665
+ ageSeconds: validationResult.ageSeconds,
666
+ });
667
+ }
668
+ }
669
+ else {
670
+ // Session validation failed - log warning and fall back
671
+ logger.warn("[MCPICloudflareAgent] ⚠️ Handshake session validation failed:", {
672
+ sessionId: handshakeSessionId.slice(0, 20) + "...",
673
+ reason: validationResult.reason,
674
+ });
675
+ // Fall back to other session sources (don't trust the client's session ID)
676
+ sessionId =
677
+ providedSessionId ||
678
+ mcpSdkSessionId ||
679
+ `mcpi_${crypto.randomUUID()}`;
680
+ }
681
+ }
682
+ else {
683
+ // No handshake session provided - use fallback
684
+ sessionId =
685
+ providedSessionId ||
686
+ mcpSdkSessionId ||
687
+ `mcpi_${crypto.randomUUID()}`;
688
+ }
689
+ // Log session ID source for debugging
690
+ if (this._environment === "development") {
691
+ logger.debug("[MCPICloudflareAgent] Session ID resolution:", {
692
+ fromKvMapping: !!handshakeSessionId && handshakeSessionId !== this._clientProvidedSessionId,
693
+ fromClientHeader: !!this._clientProvidedSessionId,
694
+ sessionValidated,
695
+ hasValidatedClientDid: !!validatedClientDid,
627
696
  provided: !!providedSessionId,
628
- fromGetSessionId: !!this.getSessionId(),
629
- isEphemeral: !providedSessionId && !this.getSessionId(),
697
+ fromGetSessionId: !!mcpSdkSessionId,
630
698
  sessionId: sessionId.slice(0, 20) + "...",
631
699
  });
632
700
  }
@@ -657,6 +725,7 @@ export class MCPICloudflareAgent extends McpAgent {
657
725
  let delegationToken;
658
726
  let delegationId; // Extract delegationId for proof submission
659
727
  let userDid; // Extract userDid for IDP token resolution
728
+ let clientDid; // Extract clientDid from handshake for proof binding
660
729
  const delegationStorage = mappedEnv.DELEGATION_STORAGE;
661
730
  if (delegationStorage) {
662
731
  try {
@@ -671,6 +740,10 @@ export class MCPICloudflareAgent extends McpAgent {
671
740
  const sessionKey = STORAGE_KEYS.session(sessionId);
672
741
  const sessionData = (await delegationStorage.get(sessionKey, "json"));
673
742
  userDid = sessionData?.userDid;
743
+ // Extract clientDid from handshake for proof binding
744
+ if (sessionData?.clientDid) {
745
+ clientDid = sessionData.clientDid;
746
+ }
674
747
  // Extract delegationId for proof submission attribution
675
748
  if (sessionData?.delegationId) {
676
749
  delegationId = sessionData.delegationId;
@@ -766,6 +839,10 @@ export class MCPICloudflareAgent extends McpAgent {
766
839
  logger.warn("[MCPICloudflareAgent] Failed to extract userDid from delegation token:", extractError);
767
840
  }
768
841
  }
842
+ // ✅ SECURITY: Use validatedClientDid from server-side session validation
843
+ // This is the authoritative clientDid - it was verified to exist in our KV store
844
+ // Only falls back to clientDid from session lookup if no validated session
845
+ const finalClientDid = validatedClientDid || clientDid;
769
846
  const session = {
770
847
  id: sessionId,
771
848
  audience: "https://kya.vouched.id",
@@ -777,6 +854,8 @@ export class MCPICloudflareAgent extends McpAgent {
777
854
  delegationToken, // ✅ Include token in session if found
778
855
  delegationId, // ✅ Include delegationId for proof submission attribution
779
856
  userDid, // ✅ FIX: Include userDid in session for ToolExecutionContext propagation
857
+ clientDid: finalClientDid, // ✅ SECURITY: Use server-validated clientDid for proof binding
858
+ sessionValidated, // ✅ Track whether session was validated server-side
780
859
  };
781
860
  // Track session connection for observability (minimal pooling via DO storage)
782
861
  try {
@@ -1466,6 +1545,153 @@ export class MCPICloudflareAgent extends McpAgent {
1466
1545
  // Internal request without stored origin - log but don't set
1467
1546
  logger.debug("[MCPICloudflareAgent] Skipping internal Cloudflare URL for origin detection:", url.origin, { isInternalPath, isInternalDomain, pathname: url.pathname });
1468
1547
  }
1548
+ // Extract X-Mcpi-Handshake-Session header for proof binding
1549
+ // This is separate from the MCP SDK's mcp-session-id header
1550
+ // The handshake session ID binds tool execution proofs to the authenticated handshake
1551
+ //
1552
+ // RACE CONDITION FIX: Instead of using an instance variable (which can be overwritten
1553
+ // by concurrent requests in Durable Objects), we store the mapping in KV keyed by MCP session ID.
1554
+ // This ensures each request's handshake session is correctly isolated.
1555
+ const handshakeSessionHeader = request.headers.get("X-Mcpi-Handshake-Session");
1556
+ const mcpSessionId = request.headers.get("mcp-session-id");
1557
+ if (handshakeSessionHeader) {
1558
+ // Store in instance variable for backward compatibility (tests that set it directly)
1559
+ this._clientProvidedSessionId = handshakeSessionHeader;
1560
+ logger.debug("[MCPICloudflareAgent] Extracted handshake session ID from X-Mcpi-Handshake-Session header:", handshakeSessionHeader.slice(0, 20) + "...");
1561
+ // Store mapping in KV for race-condition-free lookup in executeToolWithProof
1562
+ if (mcpSessionId) {
1563
+ try {
1564
+ const envPrefix = this.getEnvPrefix();
1565
+ const mappedEnv = envPrefix
1566
+ ? mapPrefixedEnv(this.env, envPrefix)
1567
+ : this.env;
1568
+ const delegationStorage = mappedEnv.DELEGATION_STORAGE;
1569
+ if (delegationStorage) {
1570
+ const mappingKey = STORAGE_KEYS.mcpSessionHandshakeMap(mcpSessionId);
1571
+ // Fire and forget - don't block the request
1572
+ this.ctx.waitUntil(delegationStorage.put(mappingKey, handshakeSessionHeader, { expirationTtl: 30 * 60 }));
1573
+ if (this._environment === "development") {
1574
+ logger.debug("[MCPICloudflareAgent] Stored MCP→handshake session mapping:", {
1575
+ mcpSessionId: mcpSessionId.slice(0, 20) + "...",
1576
+ handshakeSession: handshakeSessionHeader.slice(0, 20) + "...",
1577
+ });
1578
+ }
1579
+ }
1580
+ }
1581
+ catch (err) {
1582
+ // Non-fatal: fall back to instance variable
1583
+ logger.warn("[MCPICloudflareAgent] Failed to store session mapping:", err);
1584
+ }
1585
+ }
1586
+ }
1587
+ else {
1588
+ // Clear any stale session ID from previous requests
1589
+ // This is critical for session isolation in Durable Objects
1590
+ this._clientProvidedSessionId = undefined;
1591
+ }
1592
+ // Handle MCP-I handshake JSON-RPC method
1593
+ // This intercepts handshake requests before they reach McpAgent (which doesn't handle them)
1594
+ if (request.method === "POST") {
1595
+ try {
1596
+ const clonedRequest = request.clone();
1597
+ const body = await clonedRequest.json();
1598
+ if (body &&
1599
+ typeof body === "object" &&
1600
+ body.jsonrpc === "2.0" &&
1601
+ body.method === "handshake") {
1602
+ const handshakeBody = body;
1603
+ return await this.handleHandshakeRequest(handshakeBody, request);
1604
+ }
1605
+ }
1606
+ catch {
1607
+ // Not JSON or parse error - fall through to parent class
1608
+ // This is expected for non-JSON requests like SSE connections
1609
+ }
1610
+ }
1611
+ // Handle internal well-known endpoint requests (proxied from app.ts)
1612
+ // These endpoints are used for identity discovery without authentication
1613
+ if (url.pathname.startsWith("/_internal/well-known/")) {
1614
+ logger.info("[MCPICloudflareAgent] Handling internal well-known request:", url.pathname);
1615
+ try {
1616
+ if (!this.mcpiRuntime) {
1617
+ return new Response(JSON.stringify({ error: "Runtime not initialized" }), {
1618
+ status: 500,
1619
+ headers: { "Content-Type": "application/json" },
1620
+ });
1621
+ }
1622
+ // Get service endpoint from header (set by app.ts) or fall back to auto-detected origin
1623
+ const serviceOrigin = request.headers.get("X-Service-Origin") ||
1624
+ this._autoDetectedOrigin ||
1625
+ url.origin;
1626
+ const handler = this.mcpiRuntime.createWellKnownHandler({
1627
+ serviceName: this.getAgentName(),
1628
+ serviceEndpoint: serviceOrigin,
1629
+ });
1630
+ // Convert internal path back to well-known path
1631
+ const wellKnownPath = url.pathname.replace("/_internal/well-known", "/.well-known");
1632
+ const result = await handler(wellKnownPath);
1633
+ if (result && "status" in result && "headers" in result && "body" in result) {
1634
+ // Handler returned a WellKnownResponse object
1635
+ return new Response(result.body, {
1636
+ status: result.status,
1637
+ headers: result.headers,
1638
+ });
1639
+ }
1640
+ if (result) {
1641
+ // Handler returned MCPIdentity or other data directly
1642
+ return new Response(JSON.stringify(result), {
1643
+ status: 200,
1644
+ headers: { "Content-Type": "application/json" },
1645
+ });
1646
+ }
1647
+ // No result - endpoint not found
1648
+ return new Response(JSON.stringify({ error: "Endpoint not found" }), {
1649
+ status: 404,
1650
+ headers: { "Content-Type": "application/json" },
1651
+ });
1652
+ }
1653
+ catch (error) {
1654
+ logger.error("[MCPICloudflareAgent] Well-known endpoint error:", error);
1655
+ return new Response(JSON.stringify({
1656
+ error: error instanceof Error ? error.message : String(error),
1657
+ }), { status: 500, headers: { "Content-Type": "application/json" } });
1658
+ }
1659
+ }
1660
+ // Handle internal handshake request (proxied from app.ts)
1661
+ // This bypasses the McpAgent router which requires Mcp-Session-Id header
1662
+ if (url.pathname === "/_internal/handshake" && request.method === "POST") {
1663
+ logger.info("[MCPICloudflareAgent] Handling internal handshake request");
1664
+ try {
1665
+ const body = await request.json();
1666
+ if (!body ||
1667
+ typeof body !== "object" ||
1668
+ body.jsonrpc !== "2.0" ||
1669
+ body.method !== "handshake") {
1670
+ return new Response(JSON.stringify({
1671
+ jsonrpc: "2.0",
1672
+ id: body?.id || null,
1673
+ error: {
1674
+ code: -32600,
1675
+ message: "Invalid handshake request",
1676
+ },
1677
+ }), { status: 400, headers: { "Content-Type": "application/json" } });
1678
+ }
1679
+ // Cast to the expected type for handleHandshakeRequest
1680
+ const handshakeBody = body;
1681
+ return await this.handleHandshakeRequest(handshakeBody, request);
1682
+ }
1683
+ catch (error) {
1684
+ logger.error("[MCPICloudflareAgent] Internal handshake request failed:", error);
1685
+ return new Response(JSON.stringify({
1686
+ jsonrpc: "2.0",
1687
+ id: null,
1688
+ error: {
1689
+ code: -32603,
1690
+ message: error instanceof Error ? error.message : "Handshake failed",
1691
+ },
1692
+ }), { status: 500, headers: { "Content-Type": "application/json" } });
1693
+ }
1694
+ }
1469
1695
  // Handle internal cache-clear request
1470
1696
  if (url.pathname === "/_do/cache-clear" && request.method === "POST") {
1471
1697
  logger.info("[MCPICloudflareAgent] Handling internal cache-clear request");
@@ -1604,5 +1830,177 @@ export class MCPICloudflareAgent extends McpAgent {
1604
1830
  };
1605
1831
  }
1606
1832
  }
1833
+ /**
1834
+ * Handle MCP-I handshake JSON-RPC request
1835
+ *
1836
+ * The handshake establishes mutual authentication between client and server:
1837
+ * 1. Client sends nonce, timestamp, audience, and optionally clientDid
1838
+ * 2. Server validates the request and creates a session
1839
+ * 3. Server signs the response with its Ed25519 key
1840
+ * 4. Client can verify the signature matches the server's DID from discovery
1841
+ *
1842
+ * This is OPTIONAL for backward compatibility - tools work without handshake,
1843
+ * but clients that perform handshake get mutual authentication and
1844
+ * cryptographic session binding.
1845
+ */
1846
+ async handleHandshakeRequest(body, request) {
1847
+ logger.info("[MCPICloudflareAgent] Handling handshake request");
1848
+ if (!this.mcpiRuntime) {
1849
+ logger.error("[MCPICloudflareAgent] Handshake failed: runtime not initialized");
1850
+ return new Response(JSON.stringify({
1851
+ jsonrpc: "2.0",
1852
+ id: body.id,
1853
+ error: { code: -32603, message: "Runtime not initialized" },
1854
+ }), { status: 500, headers: { "Content-Type": "application/json" } });
1855
+ }
1856
+ try {
1857
+ // Extract clientInfo from initialize context if available
1858
+ // This allows handshake to work even if client doesn't re-send clientInfo
1859
+ const storedClientInfo = await this.ctx.storage.get("mcpClientInfo");
1860
+ // Safely access body.params (may be undefined if client sends no params)
1861
+ const params = body.params || {};
1862
+ const handshakeParams = {
1863
+ ...params,
1864
+ // Merge clientInfo: handshake params override stored values
1865
+ clientInfo: params.clientInfo || storedClientInfo?.clientInfo,
1866
+ };
1867
+ // Call runtime handleHandshake (MCPIRuntimeBase handles validation, signing, etc.)
1868
+ const result = await this.mcpiRuntime.handleHandshake(handshakeParams);
1869
+ // Initialize session storage with ephemeral identity
1870
+ await this.initializeSessionStorage(result.sessionId);
1871
+ // Store handshake context for later use (clientDid, etc.)
1872
+ await this.storeHandshakeContext(result.sessionId, handshakeParams);
1873
+ if (this._environment === "development") {
1874
+ logger.debug("[MCPICloudflareAgent] Handshake completed:", {
1875
+ sessionId: result.sessionId?.slice(0, 20) + "...",
1876
+ agentDid: result.agentDid?.slice(0, 30) + "...",
1877
+ hasSignature: !!result.signature,
1878
+ capabilities: result.capabilities,
1879
+ });
1880
+ }
1881
+ return new Response(JSON.stringify({
1882
+ jsonrpc: "2.0",
1883
+ id: body.id,
1884
+ result,
1885
+ }), {
1886
+ headers: {
1887
+ "Content-Type": "application/json",
1888
+ "Mcp-Session-Id": result.sessionId,
1889
+ },
1890
+ });
1891
+ }
1892
+ catch (error) {
1893
+ logger.error("[MCPICloudflareAgent] Handshake failed:", error);
1894
+ return new Response(JSON.stringify({
1895
+ jsonrpc: "2.0",
1896
+ id: body.id,
1897
+ error: {
1898
+ code: -32603,
1899
+ message: error instanceof Error ? error.message : "Handshake failed",
1900
+ },
1901
+ }), { status: 500, headers: { "Content-Type": "application/json" } });
1902
+ }
1903
+ }
1904
+ /**
1905
+ * Validate a handshake session exists and is still valid
1906
+ *
1907
+ * ✅ SECURITY: This is critical for preventing session spoofing.
1908
+ * The client sends a session ID in the X-Mcpi-Handshake-Session header,
1909
+ * but we MUST verify that session actually exists in our KV store.
1910
+ *
1911
+ * Validation checks:
1912
+ * 1. Session exists in KV (was created by a real handshake)
1913
+ * 2. Session has not expired (handshakeTimestamp + TTL)
1914
+ * 3. Session has the required fields (clientDid, handshakeTimestamp)
1915
+ *
1916
+ * @returns Validation result with clientDid if valid, or reason if invalid
1917
+ */
1918
+ async validateHandshakeSession(sessionId, mappedEnv) {
1919
+ const delegationStorage = mappedEnv.DELEGATION_STORAGE;
1920
+ if (!delegationStorage) {
1921
+ return { valid: false, reason: "No delegation storage configured" };
1922
+ }
1923
+ try {
1924
+ const sessionKey = STORAGE_KEYS.session(sessionId);
1925
+ const sessionData = (await delegationStorage.get(sessionKey, "json"));
1926
+ // Check 1: Session must exist
1927
+ if (!sessionData) {
1928
+ return { valid: false, reason: "Session not found in storage" };
1929
+ }
1930
+ // Check 2: Session must have handshake timestamp (proves it came from handshake)
1931
+ if (!sessionData.handshakeTimestamp) {
1932
+ return { valid: false, reason: "Session missing handshake timestamp" };
1933
+ }
1934
+ // Check 3: Session must not be expired (30 minute TTL)
1935
+ const SESSION_TTL_MS = 30 * 60 * 1000; // 30 minutes in milliseconds
1936
+ const ageMs = Date.now() - sessionData.handshakeTimestamp;
1937
+ const ageSeconds = Math.round(ageMs / 1000);
1938
+ if (ageMs > SESSION_TTL_MS) {
1939
+ return {
1940
+ valid: false,
1941
+ reason: `Session expired (age: ${ageSeconds}s, max: ${SESSION_TTL_MS / 1000}s)`,
1942
+ };
1943
+ }
1944
+ // Check 4: Session must have clientDid (the calling agent's identity)
1945
+ if (!sessionData.clientDid) {
1946
+ return { valid: false, reason: "Session missing clientDid" };
1947
+ }
1948
+ // All checks passed - session is valid
1949
+ return {
1950
+ valid: true,
1951
+ clientDid: sessionData.clientDid,
1952
+ ageSeconds,
1953
+ };
1954
+ }
1955
+ catch (error) {
1956
+ logger.error("[MCPICloudflareAgent] Error validating handshake session:", error);
1957
+ return {
1958
+ valid: false,
1959
+ reason: `Validation error: ${error instanceof Error ? error.message : String(error)}`,
1960
+ };
1961
+ }
1962
+ }
1963
+ /**
1964
+ * Store handshake context in session storage for later use
1965
+ *
1966
+ * This stores the client DID and other handshake metadata so that
1967
+ * subsequent tool calls can access this information for audit logging,
1968
+ * delegation verification, etc.
1969
+ */
1970
+ async storeHandshakeContext(sessionId, params) {
1971
+ const envPrefix = this.getEnvPrefix();
1972
+ const mappedEnv = envPrefix
1973
+ ? mapPrefixedEnv(this.env, envPrefix)
1974
+ : this.env;
1975
+ const delegationStorage = mappedEnv.DELEGATION_STORAGE;
1976
+ if (!delegationStorage) {
1977
+ // No storage configured - skip silently
1978
+ return;
1979
+ }
1980
+ try {
1981
+ const sessionKey = STORAGE_KEYS.session(sessionId);
1982
+ const existing = (await delegationStorage.get(sessionKey, "json")) || {};
1983
+ await delegationStorage.put(sessionKey, JSON.stringify({
1984
+ ...existing,
1985
+ clientDid: params.agentDid, // Client's DID from handshake
1986
+ clientInfo: params.clientInfo,
1987
+ handshakeAudience: params.audience,
1988
+ handshakeNonce: params.nonce,
1989
+ handshakeTimestamp: Date.now(),
1990
+ }), { expirationTtl: 30 * 60 } // 30 minutes
1991
+ );
1992
+ if (this._environment === "development") {
1993
+ logger.debug("[MCPICloudflareAgent] Stored handshake context:", {
1994
+ sessionId: sessionId.slice(0, 20) + "...",
1995
+ hasClientDid: !!params.agentDid,
1996
+ hasClientInfo: !!params.clientInfo,
1997
+ });
1998
+ }
1999
+ }
2000
+ catch (error) {
2001
+ // Non-fatal - handshake succeeded, just couldn't store extra context
2002
+ logger.warn("[MCPICloudflareAgent] Failed to store handshake context:", error);
2003
+ }
2004
+ }
1607
2005
  }
1608
2006
  //# sourceMappingURL=agent.js.map
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/app.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAmB1E,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,gBAAgB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,uBAAuB,CAAC;IAElE;;OAEG;IACH,UAAU,EAAE,OAAO,mBAAmB,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB;;qBA4rB9C,cAAc,OAChB,qBAAqB,OACrB,gBAAgB,GACpB,OAAO,CAAC,IAAI,CAAC;EAKnB"}
1
+ {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,KAAK,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAmB1E,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,gBAAgB,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,uBAAuB,CAAC;IAElE;;OAEG;IACH,UAAU,EAAE,OAAO,mBAAmB,CAAC;CACxC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,oBAAoB;;qBAq6B9C,cAAc,OAChB,qBAAqB,OACrB,gBAAgB,GACpB,OAAO,CAAC,IAAI,CAAC;EAKnB"}
package/dist/app.js CHANGED
@@ -12,7 +12,7 @@ import { mapPrefixedEnv } from "./helpers/env-mapper";
12
12
  // CRITICAL: Import OAuth service registry to ensure tree-shaking prevention
13
13
  // This must be at the app entry point level to guarantee module execution order
14
14
  import { isOAuthServicesAvailable } from "./utils/oauth-service-registry";
15
- import { logger } from "@kya-os/mcp-i-core";
15
+ import { logger, WELL_KNOWN_CORS_HEADERS } from "@kya-os/mcp-i-core";
16
16
  // CRITICAL: Force OAuth registry evaluation at module load time
17
17
  // This creates an observable side effect that esbuild cannot tree-shake
18
18
  // Belt-and-suspenders with server.ts and agent.ts to ensure services are available
@@ -402,6 +402,92 @@ export function createMCPIApp(options) {
402
402
  const server = await getMcpiServer(c.env);
403
403
  return server.handleRequest(c.req.raw, c.executionCtx);
404
404
  });
405
+ // ================================================================================
406
+ // Well-Known Routes - Identity Discovery Endpoints
407
+ // ================================================================================
408
+ // These endpoints are used by MCP-I clients to discover server identity,
409
+ // capabilities, and configuration. They proxy to the Durable Object which
410
+ // has access to the runtime and can generate the appropriate responses.
411
+ // ================================================================================
412
+ /**
413
+ * Helper to proxy well-known requests to the Durable Object
414
+ * The DO handles identity generation via mcpiRuntime.createWellKnownHandler()
415
+ */
416
+ async function proxyWellKnownToDO(c, wellKnownPath) {
417
+ try {
418
+ // Map environment to get the MCP_OBJECT namespace
419
+ const mappedEnv = options.envPrefix
420
+ ? mapPrefixedEnv(c.env, options.envPrefix)
421
+ : c.env;
422
+ // Get the Durable Object namespace - check both mapped and raw env
423
+ const prefixUpper = options.envPrefix?.toUpperCase();
424
+ const doNamespace = mappedEnv.MCP_OBJECT ||
425
+ (prefixUpper && c.env[`${prefixUpper}_MCP_OBJECT`]) ||
426
+ c.env.MCP_OBJECT;
427
+ if (!doNamespace) {
428
+ logger.error("[App] MCP_OBJECT namespace not found for well-known endpoint");
429
+ return new Response(JSON.stringify({ error: "Identity service not configured" }), {
430
+ status: 500,
431
+ headers: {
432
+ "Content-Type": "application/json",
433
+ ...WELL_KNOWN_CORS_HEADERS,
434
+ },
435
+ });
436
+ }
437
+ // Use singleton DO instance for identity
438
+ const doId = doNamespace.idFromName("singleton");
439
+ const doStub = doNamespace.get(doId);
440
+ // Get the original origin for service endpoint generation
441
+ const origin = new URL(c.req.url).origin;
442
+ // Proxy to DO's internal well-known handler
443
+ const doResponse = await doStub.fetch(`https://do/_internal/well-known${wellKnownPath}`, {
444
+ headers: { "X-Service-Origin": origin },
445
+ });
446
+ // Return response with CORS headers
447
+ return new Response(doResponse.body, {
448
+ status: doResponse.status,
449
+ headers: {
450
+ ...Object.fromEntries(doResponse.headers),
451
+ ...WELL_KNOWN_CORS_HEADERS,
452
+ },
453
+ });
454
+ }
455
+ catch (error) {
456
+ logger.error("[App] Well-known endpoint error:", error);
457
+ return new Response(JSON.stringify({ error: "Failed to fetch identity information" }), {
458
+ status: 500,
459
+ headers: {
460
+ "Content-Type": "application/json",
461
+ ...WELL_KNOWN_CORS_HEADERS,
462
+ },
463
+ });
464
+ }
465
+ }
466
+ // DID Document - W3C DID Document for cryptographic identity
467
+ app.get("/.well-known/did.json", async (c) => {
468
+ logger.info("[App] Well-known DID document requested");
469
+ return proxyWellKnownToDO(c, "/did.json");
470
+ });
471
+ // Agent Document - MCP-I capability discovery
472
+ app.get("/.well-known/agent.json", async (c) => {
473
+ logger.info("[App] Well-known agent document requested");
474
+ return proxyWellKnownToDO(c, "/agent.json");
475
+ });
476
+ // MCP Identity - Service identity information
477
+ app.get("/.well-known/mcp-identity", async (c) => {
478
+ logger.info("[App] Well-known MCP identity requested");
479
+ return proxyWellKnownToDO(c, "/mcp-identity");
480
+ });
481
+ // MCP Server Card - SEP-1649 server discovery (if supported by runtime)
482
+ app.get("/.well-known/mcp.json", async (c) => {
483
+ logger.info("[App] Well-known MCP server card requested");
484
+ return proxyWellKnownToDO(c, "/mcp.json");
485
+ });
486
+ // MCP Client Config - Ready-to-use config for Claude Desktop / Cursor
487
+ app.get("/.well-known/mcp-client-config.json", async (c) => {
488
+ logger.info("[App] Well-known MCP client config requested");
489
+ return proxyWellKnownToDO(c, "/mcp-client-config.json");
490
+ });
405
491
  // Route MCP protocol endpoints to Agent class
406
492
  // Note: The Agent class must be instantiated as a Durable Object
407
493
  // This is handled by Cloudflare Workers runtime
@@ -528,6 +614,88 @@ export function createMCPIApp(options) {
528
614
  });
529
615
  }
530
616
  });
617
+ /**
618
+ * Helper to route handshake requests directly to Durable Object.
619
+ *
620
+ * CRITICAL: The McpAgent.serve("/mcp") handler requires a Mcp-Session-Id header
621
+ * for POST requests. But handshake is what CREATES the session - chicken-and-egg!
622
+ *
623
+ * This helper bypasses the McpAgent router and sends handshake requests directly
624
+ * to the Durable Object, which has the handleHandshakeRequest() method.
625
+ */
626
+ async function handleHandshakeViaDO(c, jsonBody) {
627
+ try {
628
+ // Map environment to get the MCP_OBJECT namespace
629
+ const mappedEnv = options.envPrefix
630
+ ? mapPrefixedEnv(c.env, options.envPrefix)
631
+ : c.env;
632
+ // Get the Durable Object namespace
633
+ const prefixUpper = options.envPrefix?.toUpperCase();
634
+ const doNamespace = mappedEnv.MCP_OBJECT ||
635
+ (prefixUpper && c.env[`${prefixUpper}_MCP_OBJECT`]) ||
636
+ c.env.MCP_OBJECT;
637
+ if (!doNamespace) {
638
+ logger.error("[App] MCP_OBJECT namespace not found for handshake");
639
+ return new Response(JSON.stringify({
640
+ jsonrpc: "2.0",
641
+ id: jsonBody.id,
642
+ error: {
643
+ code: -32603,
644
+ message: "Server not configured for handshake",
645
+ },
646
+ }), {
647
+ status: 500,
648
+ headers: { "Content-Type": "application/json" },
649
+ });
650
+ }
651
+ // Use singleton DO instance for handshake (same as well-known endpoints)
652
+ const doId = doNamespace.idFromName("singleton");
653
+ const doStub = doNamespace.get(doId);
654
+ // Get the original origin for the DO
655
+ const origin = new URL(c.req.url).origin;
656
+ // Forward handshake request to DO's internal handler
657
+ const doResponse = await doStub.fetch(`https://do/_internal/handshake`, {
658
+ method: "POST",
659
+ headers: {
660
+ "Content-Type": "application/json",
661
+ "X-MCP-Original-Origin": origin,
662
+ },
663
+ body: JSON.stringify(jsonBody),
664
+ });
665
+ // Return response with session ID header if present
666
+ const responseBody = await doResponse.text();
667
+ const responseHeaders = {
668
+ "Content-Type": "application/json",
669
+ "Access-Control-Allow-Origin": "*",
670
+ "Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, OPTIONS",
671
+ "Access-Control-Allow-Headers": "Content-Type, Authorization, Mcp-Session-Id",
672
+ "Access-Control-Expose-Headers": "Mcp-Session-Id",
673
+ };
674
+ // Copy Mcp-Session-Id header from DO response
675
+ const sessionId = doResponse.headers.get("Mcp-Session-Id");
676
+ if (sessionId) {
677
+ responseHeaders["Mcp-Session-Id"] = sessionId;
678
+ }
679
+ return new Response(responseBody, {
680
+ status: doResponse.status,
681
+ headers: responseHeaders,
682
+ });
683
+ }
684
+ catch (error) {
685
+ logger.error("[App] Handshake via DO error:", error);
686
+ return new Response(JSON.stringify({
687
+ jsonrpc: "2.0",
688
+ id: jsonBody.id,
689
+ error: {
690
+ code: -32603,
691
+ message: error?.message || "Handshake failed",
692
+ },
693
+ }), {
694
+ status: 500,
695
+ headers: { "Content-Type": "application/json" },
696
+ });
697
+ }
698
+ }
531
699
  app.all("/mcp", async (c) => {
532
700
  try {
533
701
  logger.info("[App] MCP route hit:", {
@@ -535,6 +703,21 @@ export function createMCPIApp(options) {
535
703
  method: c.req.method,
536
704
  pathname: new URL(c.req.url).pathname,
537
705
  });
706
+ // CRITICAL: Intercept handshake requests BEFORE mcpHandler
707
+ // mcpHandler requires Mcp-Session-Id header, but handshake creates the session
708
+ if (c.req.method === "POST") {
709
+ try {
710
+ const clonedRequest = c.req.raw.clone();
711
+ const body = await clonedRequest.json();
712
+ if (body && typeof body === "object" && body.jsonrpc === "2.0" && body.method === "handshake") {
713
+ logger.info("[App] Intercepting handshake request - routing to DO");
714
+ return await handleHandshakeViaDO(c, body);
715
+ }
716
+ }
717
+ catch {
718
+ // Not JSON or parse error - fall through to mcpHandler
719
+ }
720
+ }
538
721
  // Inject original origin header before routing to DO
539
722
  const requestWithOrigin = injectOriginalOrigin(c.req.raw);
540
723
  const response = await mcpHandler(requestWithOrigin, c.env, c.executionCtx);
package/dist/app.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
@@ -92,6 +92,13 @@ export declare const STORAGE_KEYS: {
92
92
  * SECURITY: Token is deleted after successful validation
93
93
  */
94
94
  readonly credentialCsrf: (sessionId: string) => string;
95
+ /**
96
+ * MCP session to handshake session mapping (temporary - 30 minutes)
97
+ * Maps MCP SDK session ID to MCP-I handshake session ID
98
+ * Used to avoid race conditions with instance variables in concurrent requests
99
+ * SECURITY: Ensures correct session binding even under concurrent load
100
+ */
101
+ readonly mcpSessionHandshakeMap: (mcpSessionId: string) => string;
95
102
  };
96
103
  /**
97
104
  * Type-safe key generator return type
@@ -1 +1 @@
1
- {"version":3,"file":"storage-keys.d.ts","sourceRoot":"","sources":["../../src/constants/storage-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB;;;OAGG;iCACiB,MAAM,WAAW,MAAM;IAG3C;;;OAGG;uCACuB,MAAM,WAAW,MAAM;IAGjD;;;OAGG;mCACmB,MAAM,YAAY,MAAM;IAG9C;;;OAGG;kCACkB,MAAM;IAE3B;;;;OAIG;4CAC4B,MAAM;IAErC;;;OAGG;0CAC0B,MAAM;IAEnC;;;OAGG;4CAC4B,MAAM;IAErC;;;OAGG;oCACoB,MAAM,cAAc,MAAM;IAGjD;;;OAGG;6BACa,MAAM,aAAa,MAAM;IAEzC;;;OAGG;iCACiB,MAAM;IAE1B;;;OAGG;4BACY,MAAM;IAErB;;;OAGG;;IAGH;;;OAGG;;IAGH;;;;OAIG;qCACqB,MAAM,WAAW,MAAM;IAG/C;;;;OAIG;yCACyB,MAAM;CAC1B,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CACjC,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CACjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAqEA"}
1
+ {"version":3,"file":"storage-keys.d.ts","sourceRoot":"","sources":["../../src/constants/storage-keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB;;;OAGG;iCACiB,MAAM,WAAW,MAAM;IAG3C;;;OAGG;uCACuB,MAAM,WAAW,MAAM;IAGjD;;;OAGG;mCACmB,MAAM,YAAY,MAAM;IAG9C;;;OAGG;kCACkB,MAAM;IAE3B;;;;OAIG;4CAC4B,MAAM;IAErC;;;OAGG;0CAC0B,MAAM;IAEnC;;;OAGG;4CAC4B,MAAM;IAErC;;;OAGG;oCACoB,MAAM,cAAc,MAAM;IAGjD;;;OAGG;6BACa,MAAM,aAAa,MAAM;IAEzC;;;OAGG;iCACiB,MAAM;IAE1B;;;OAGG;4BACY,MAAM;IAErB;;;OAGG;;IAGH;;;OAGG;;IAGH;;;;OAIG;qCACqB,MAAM,WAAW,MAAM;IAG/C;;;;OAIG;yCACyB,MAAM;IAElC;;;;;OAKG;oDACoC,MAAM;CAErC,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,UAAU,CACjC,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CACjD,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAqEA"}
@@ -92,6 +92,13 @@ export const STORAGE_KEYS = {
92
92
  * SECURITY: Token is deleted after successful validation
93
93
  */
94
94
  credentialCsrf: (sessionId) => `credential_csrf:${sessionId}`,
95
+ /**
96
+ * MCP session to handshake session mapping (temporary - 30 minutes)
97
+ * Maps MCP SDK session ID to MCP-I handshake session ID
98
+ * Used to avoid race conditions with instance variables in concurrent requests
99
+ * SECURITY: Ensures correct session binding even under concurrent load
100
+ */
101
+ mcpSessionHandshakeMap: (mcpSessionId) => `mcp_handshake_map:${mcpSessionId}`,
95
102
  };
96
103
  /**
97
104
  * Extract components from storage keys (for migration/debugging)
@@ -1 +1 @@
1
- {"version":3,"file":"storage-keys.js","sourceRoot":"","sources":["../../src/constants/storage-keys.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"storage-keys.js","sourceRoot":"","sources":["../../src/constants/storage-keys.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,14 +1,34 @@
1
1
  {
2
2
  "name": "@kya-os/mcp-i-cloudflare",
3
- "version": "1.7.28",
3
+ "version": "1.7.30",
4
4
  "description": "Cloudflare Workers adapter for MCP-I framework",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "files": [
8
8
  "dist"
9
9
  ],
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "wrangler dev",
13
+ "test": "vitest run",
14
+ "test:coverage": "vitest run --coverage",
15
+ "test:watch": "vitest",
16
+ "test:integration": "vitest run --config vitest.integration.config.ts --reporter=verbose",
17
+ "test:integration:all": "vitest run --config vitest.integration.config.ts --reporter=verbose",
18
+ "test:workers": "vitest run --config vitest.workers.config.ts",
19
+ "test:workers:watch": "vitest --config vitest.workers.config.ts",
20
+ "test:e2e": "playwright test",
21
+ "test:e2e:headed": "playwright test --headed",
22
+ "test:e2e:ui": "playwright test --ui",
23
+ "test:e2e:debug": "playwright test --debug",
24
+ "test:e2e:report": "playwright show-report",
25
+ "verify:e2e": "tsx scripts/verify-e2e-credentials.ts",
26
+ "lint": "eslint .",
27
+ "clean": "rm -rf dist .turbo node_modules playwright-report test-results",
28
+ "prepublishOnly": "npm run build && node ../create-mcpi-app/scripts/validate-no-workspace.js"
29
+ },
10
30
  "dependencies": {
11
- "@kya-os/consent": "^0.1.22",
31
+ "@kya-os/consent": "^0.1.23",
12
32
  "@kya-os/contracts": "^1.7.20",
13
33
  "@kya-os/mcp-i-core": "^1.4.14",
14
34
  "@kya-os/provider-registry": "^0.1.7",
@@ -34,24 +54,5 @@
34
54
  },
35
55
  "publishConfig": {
36
56
  "access": "public"
37
- },
38
- "scripts": {
39
- "build": "tsc",
40
- "dev": "wrangler dev",
41
- "test": "vitest run",
42
- "test:coverage": "vitest run --coverage",
43
- "test:watch": "vitest",
44
- "test:integration": "vitest run --config vitest.integration.config.ts --reporter=verbose",
45
- "test:integration:all": "vitest run --config vitest.integration.config.ts --reporter=verbose",
46
- "test:workers": "vitest run --config vitest.workers.config.ts",
47
- "test:workers:watch": "vitest --config vitest.workers.config.ts",
48
- "test:e2e": "playwright test",
49
- "test:e2e:headed": "playwright test --headed",
50
- "test:e2e:ui": "playwright test --ui",
51
- "test:e2e:debug": "playwright test --debug",
52
- "test:e2e:report": "playwright show-report",
53
- "verify:e2e": "tsx scripts/verify-e2e-credentials.ts",
54
- "lint": "eslint .",
55
- "clean": "rm -rf dist .turbo node_modules playwright-report test-results"
56
57
  }
57
- }
58
+ }