@revealui/mcp 0.1.1 → 0.1.5
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/LICENSE.commercial +2 -3
- package/dist/adapters/db.d.ts +1 -1
- package/dist/adapters/db.d.ts.map +1 -1
- package/dist/adapters/db.js.map +1 -1
- package/dist/auth.d.ts +42 -0
- package/dist/auth.d.ts.map +1 -0
- package/dist/auth.js +73 -0
- package/dist/auth.js.map +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/contracts.d.ts +36 -0
- package/dist/contracts.d.ts.map +1 -1
- package/dist/contracts.js +44 -0
- package/dist/contracts.js.map +1 -1
- package/dist/hypervisor.d.ts +63 -0
- package/dist/hypervisor.d.ts.map +1 -1
- package/dist/hypervisor.js +287 -4
- package/dist/hypervisor.js.map +1 -1
- package/dist/index.d.ts +22 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +26 -5
- package/dist/index.js.map +1 -1
- package/dist/pipeline.d.ts +62 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/pipeline.js +230 -0
- package/dist/pipeline.js.map +1 -0
- package/dist/rate-limiter.d.ts +53 -0
- package/dist/rate-limiter.d.ts.map +1 -0
- package/dist/rate-limiter.js +96 -0
- package/dist/rate-limiter.js.map +1 -0
- package/dist/servers/_launcher-utils.d.ts +28 -0
- package/dist/servers/_launcher-utils.d.ts.map +1 -0
- package/dist/servers/_launcher-utils.js +45 -0
- package/dist/servers/_launcher-utils.js.map +1 -0
- package/dist/servers/adapter.d.ts +22 -6
- package/dist/servers/adapter.d.ts.map +1 -1
- package/dist/servers/adapter.js +53 -22
- package/dist/servers/adapter.js.map +1 -1
- package/dist/servers/neon.d.ts +15 -0
- package/dist/servers/neon.d.ts.map +1 -0
- package/dist/servers/neon.js +89 -0
- package/dist/servers/neon.js.map +1 -0
- package/dist/servers/next-devtools.d.ts +15 -0
- package/dist/servers/next-devtools.d.ts.map +1 -0
- package/dist/servers/next-devtools.js +220 -0
- package/dist/servers/next-devtools.js.map +1 -0
- package/dist/servers/playwright.d.ts +15 -0
- package/dist/servers/playwright.d.ts.map +1 -0
- package/dist/servers/playwright.js +73 -0
- package/dist/servers/playwright.js.map +1 -0
- package/dist/servers/revealui-content.d.ts +5 -1
- package/dist/servers/revealui-content.d.ts.map +1 -1
- package/dist/servers/revealui-content.js +62 -20
- package/dist/servers/revealui-content.js.map +1 -1
- package/dist/servers/revealui-email.d.ts +5 -1
- package/dist/servers/revealui-email.d.ts.map +1 -1
- package/dist/servers/revealui-email.js +47 -12
- package/dist/servers/revealui-email.js.map +1 -1
- package/dist/servers/revealui-stripe.d.ts +5 -1
- package/dist/servers/revealui-stripe.d.ts.map +1 -1
- package/dist/servers/revealui-stripe.js +68 -33
- package/dist/servers/revealui-stripe.js.map +1 -1
- package/dist/servers/stripe.d.ts +15 -0
- package/dist/servers/stripe.d.ts.map +1 -0
- package/dist/servers/stripe.js +85 -0
- package/dist/servers/stripe.js.map +1 -0
- package/dist/servers/supabase.d.ts +15 -0
- package/dist/servers/supabase.d.ts.map +1 -0
- package/dist/servers/supabase.js +143 -0
- package/dist/servers/supabase.js.map +1 -0
- package/dist/servers/vercel.d.ts +15 -0
- package/dist/servers/vercel.d.ts.map +1 -0
- package/dist/servers/vercel.js +86 -0
- package/dist/servers/vercel.js.map +1 -0
- package/dist/stores/postgres-idempotency.d.ts +32 -0
- package/dist/stores/postgres-idempotency.d.ts.map +1 -0
- package/dist/stores/postgres-idempotency.js +63 -0
- package/dist/stores/postgres-idempotency.js.map +1 -0
- package/dist/telemetry.d.ts +75 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/telemetry.js +110 -0
- package/dist/telemetry.js.map +1 -0
- package/package.json +47 -27
package/LICENSE.commercial
CHANGED
|
@@ -9,9 +9,8 @@ TERMS AND CONDITIONS
|
|
|
9
9
|
|
|
10
10
|
"Software" means the RevealUI source code, documentation, and associated
|
|
11
11
|
files contained in directories and packages designated as commercial,
|
|
12
|
-
including but not limited to: packages/ai, packages/
|
|
13
|
-
|
|
14
|
-
the repository.
|
|
12
|
+
including but not limited to: packages/ai, packages/harnesses, and any
|
|
13
|
+
directory named "ee" within the repository.
|
|
15
14
|
|
|
16
15
|
"License Key" means a valid RevealUI license key obtained through an active
|
|
17
16
|
paid subscription at https://revealui.com.
|
package/dist/adapters/db.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ export type McpDbClient = {
|
|
|
16
16
|
close: () => Promise<void>;
|
|
17
17
|
};
|
|
18
18
|
/** Re-export contracts CRDT types for consumers */
|
|
19
|
-
export type {
|
|
19
|
+
export type { CrdtOperationsInsert, CrdtOperationsRow };
|
|
20
20
|
/**
|
|
21
21
|
* Connect to PGlite (embedded PostgreSQL) for local development/testing.
|
|
22
22
|
* Uses dynamic import to avoid bundling @electric-sql/pglite when not needed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/adapters/db.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../src/adapters/db.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAGnF,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtD,IAAI,EAAE,CAAC,EAAE,CAAC;IACV,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACjG,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B,CAAC;AAEF,mDAAmD;AACnD,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,CAAC;AA8BxD;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CA8CxF;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CA+C5D;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAS9D;;;;;;AAED,wBAAqE"}
|
package/dist/adapters/db.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/adapters/db.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"db.js","sourceRoot":"","sources":["../../src/adapters/db.ts"],"names":[],"mappings":"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"}
|
package/dist/auth.d.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Auth Bridge
|
|
3
|
+
*
|
|
4
|
+
* JWT claims validation and tool-level authorization for MCP server launchers.
|
|
5
|
+
* Does NOT verify JWT signatures — that is the transport layer's responsibility.
|
|
6
|
+
* This module validates the claims structure, expiration, and tier-based ACL.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from '@revealui/contracts';
|
|
9
|
+
/** JWT claims expected from RevealUI auth tokens */
|
|
10
|
+
export declare const McpAuthClaimsSchema: z.ZodObject<{
|
|
11
|
+
sub: z.ZodString;
|
|
12
|
+
tier: z.ZodEnum<{
|
|
13
|
+
free: "free";
|
|
14
|
+
pro: "pro";
|
|
15
|
+
max: "max";
|
|
16
|
+
enterprise: "enterprise";
|
|
17
|
+
}>;
|
|
18
|
+
iss: z.ZodOptional<z.ZodString>;
|
|
19
|
+
iat: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
exp: z.ZodOptional<z.ZodNumber>;
|
|
21
|
+
permissions: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
export type McpAuthClaims = z.infer<typeof McpAuthClaimsSchema>;
|
|
24
|
+
/**
|
|
25
|
+
* Validate and decode MCP auth claims from a JWT payload.
|
|
26
|
+
* Does NOT verify signature — that should be done by the transport layer.
|
|
27
|
+
* This validates the claims structure and expiration.
|
|
28
|
+
*/
|
|
29
|
+
export declare function validateMcpClaims(payload: unknown): {
|
|
30
|
+
valid: boolean;
|
|
31
|
+
claims?: McpAuthClaims;
|
|
32
|
+
error?: string;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Check if claims authorize a specific tool invocation.
|
|
36
|
+
* Verifies both tier level and explicit permissions list (if present).
|
|
37
|
+
*/
|
|
38
|
+
export declare function authorizeToolCall(claims: McpAuthClaims, toolName: string, requiredTier?: string): {
|
|
39
|
+
authorized: boolean;
|
|
40
|
+
reason?: string;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AAMxC,oDAAoD;AACpD,eAAO,MAAM,mBAAmB;;;;;;;;;;;;iBAO9B,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAMhE;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG;IACnD,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAgBA;AAMD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EACrB,QAAQ,EAAE,MAAM,EAChB,YAAY,GAAE,MAAe,GAC5B;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAwB1C"}
|
package/dist/auth.js
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Auth Bridge
|
|
3
|
+
*
|
|
4
|
+
* JWT claims validation and tool-level authorization for MCP server launchers.
|
|
5
|
+
* Does NOT verify JWT signatures — that is the transport layer's responsibility.
|
|
6
|
+
* This module validates the claims structure, expiration, and tier-based ACL.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from '@revealui/contracts';
|
|
9
|
+
// =============================================================================
|
|
10
|
+
// Auth Claims Schema
|
|
11
|
+
// =============================================================================
|
|
12
|
+
/** JWT claims expected from RevealUI auth tokens */
|
|
13
|
+
export const McpAuthClaimsSchema = z.object({
|
|
14
|
+
sub: z.string(), // tenant ID
|
|
15
|
+
tier: z.enum(['free', 'pro', 'max', 'enterprise']),
|
|
16
|
+
iss: z.string().optional(), // issuer
|
|
17
|
+
iat: z.number().optional(), // issued at
|
|
18
|
+
exp: z.number().optional(), // expiration
|
|
19
|
+
permissions: z.array(z.string()).optional(), // tool-level ACL
|
|
20
|
+
});
|
|
21
|
+
// =============================================================================
|
|
22
|
+
// Claims Validation
|
|
23
|
+
// =============================================================================
|
|
24
|
+
/**
|
|
25
|
+
* Validate and decode MCP auth claims from a JWT payload.
|
|
26
|
+
* Does NOT verify signature — that should be done by the transport layer.
|
|
27
|
+
* This validates the claims structure and expiration.
|
|
28
|
+
*/
|
|
29
|
+
export function validateMcpClaims(payload) {
|
|
30
|
+
// Check expiration before schema validation
|
|
31
|
+
const raw = payload;
|
|
32
|
+
if (typeof raw?.exp === 'number' && raw.exp < Date.now() / 1000) {
|
|
33
|
+
return { valid: false, error: 'Token expired' };
|
|
34
|
+
}
|
|
35
|
+
const result = McpAuthClaimsSchema.safeParse(payload);
|
|
36
|
+
if (!result.success) {
|
|
37
|
+
return {
|
|
38
|
+
valid: false,
|
|
39
|
+
error: `Invalid claims: ${result.error.issues.map((i) => i.message).join(', ')}`,
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
return { valid: true, claims: result.data };
|
|
43
|
+
}
|
|
44
|
+
// =============================================================================
|
|
45
|
+
// Tool Authorization
|
|
46
|
+
// =============================================================================
|
|
47
|
+
/**
|
|
48
|
+
* Check if claims authorize a specific tool invocation.
|
|
49
|
+
* Verifies both tier level and explicit permissions list (if present).
|
|
50
|
+
*/
|
|
51
|
+
export function authorizeToolCall(claims, toolName, requiredTier = 'free') {
|
|
52
|
+
const tierOrder = ['free', 'pro', 'max', 'enterprise'];
|
|
53
|
+
const claimIndex = tierOrder.indexOf(claims.tier);
|
|
54
|
+
const requiredIndex = tierOrder.indexOf(requiredTier);
|
|
55
|
+
if (claimIndex < requiredIndex) {
|
|
56
|
+
return {
|
|
57
|
+
authorized: false,
|
|
58
|
+
reason: `Tool requires ${requiredTier} tier, tenant has ${claims.tier}`,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
// Check explicit permissions if provided
|
|
62
|
+
if (claims.permissions && claims.permissions.length > 0) {
|
|
63
|
+
const hasPermission = claims.permissions.includes(toolName) || claims.permissions.includes('*');
|
|
64
|
+
if (!hasPermission) {
|
|
65
|
+
return {
|
|
66
|
+
authorized: false,
|
|
67
|
+
reason: `Tool ${toolName} not in permissions list`,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return { authorized: true };
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=auth.js.map
|
package/dist/auth.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,qBAAqB,CAAC;AAExC,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF,oDAAoD;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,YAAY;IAC7B,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IAClD,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS;IACrC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,YAAY;IACxC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,aAAa;IACzC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,iBAAiB;CAC/D,CAAC,CAAC;AAIH,gFAAgF;AAChF,oBAAoB;AACpB,gFAAgF;AAEhF;;;;GAIG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAKhD,4CAA4C;IAC5C,MAAM,GAAG,GAAG,OAAkC,CAAC;IAC/C,IAAI,OAAO,GAAG,EAAE,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;QAChE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC;IAClD,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,mBAAmB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;SACjF,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAC9C,CAAC;AAED,gFAAgF;AAChF,qBAAqB;AACrB,gFAAgF;AAEhF;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAqB,EACrB,QAAgB,EAChB,eAAuB,MAAM;IAE7B,MAAM,SAAS,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClD,MAAM,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;IAEtD,IAAI,UAAU,GAAG,aAAa,EAAE,CAAC;QAC/B,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,iBAAiB,YAAY,qBAAqB,MAAM,CAAC,IAAI,EAAE;SACxE,CAAC;IACJ,CAAC;IAED,yCAAyC;IACzC,IAAI,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAChG,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,UAAU,EAAE,KAAK;gBACjB,MAAM,EAAE,QAAQ,QAAQ,0BAA0B;aACnD,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,CAAC;AAE5D,MAAM,WAAW,SAAS;IACxB,iBAAiB,EAAE,QAAQ,GAAG,UAAU,CAAC;IACzC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,cAAc,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAOD,wBAAgB,YAAY,IAAI,SAAS,CAYxC;AAED,eAAe,YAAY,CAAC"}
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAUA,SAAS,WAAW,CAAC,CAAqB,EAAE,QAAQ,GAAG,KAAK;IAC1D,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAUA,SAAS,WAAW,CAAC,CAAqB,EAAE,QAAQ,GAAG,KAAK;IAC1D,IAAI,CAAC,KAAK,SAAS;QAAE,OAAO,QAAQ,CAAC;IACrC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,iBAAiB,GACpB,OAAO,CAAC,GAAG,CAAC,sBAAgD,IAAI,QAAQ,CAAC;IAC5E,MAAM,WAAW,GAAI,OAAO,CAAC,GAAG,CAAC,gBAAmC,IAAI,MAAM,CAAC;IAE/E,OAAO;QACL,iBAAiB;QACjB,mBAAmB,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,IAAI;QAC9D,cAAc,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,IAAI;QACpD,WAAW;QACX,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,KAAK,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,eAAe,YAAY,CAAC"}
|
package/dist/contracts.d.ts
CHANGED
|
@@ -128,4 +128,40 @@ export declare function agentDefinitionToAgentCard(agent: AgentDefinition, baseU
|
|
|
128
128
|
* Uses `contractsToolDefinitionToMcpTool` for each tool.
|
|
129
129
|
*/
|
|
130
130
|
export declare function agentDefinitionToMcpTools(agent: AgentDefinition): ReturnType<typeof contractsToolDefinitionToMcpTool>[];
|
|
131
|
+
/** Common output schemas that tools can reference for response validation */
|
|
132
|
+
export declare const ToolOutputSchemas: {
|
|
133
|
+
/** List response with pagination */
|
|
134
|
+
readonly paginatedList: z.ZodObject<{
|
|
135
|
+
items: z.ZodArray<z.ZodUnknown>;
|
|
136
|
+
total: z.ZodOptional<z.ZodNumber>;
|
|
137
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
138
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
139
|
+
}, z.core.$strip>;
|
|
140
|
+
/** Single entity response */
|
|
141
|
+
readonly entity: z.ZodObject<{
|
|
142
|
+
id: z.ZodString;
|
|
143
|
+
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
144
|
+
}, z.core.$strip>;
|
|
145
|
+
/** Status response */
|
|
146
|
+
readonly status: z.ZodObject<{
|
|
147
|
+
success: z.ZodBoolean;
|
|
148
|
+
message: z.ZodOptional<z.ZodString>;
|
|
149
|
+
}, z.core.$strip>;
|
|
150
|
+
/** Error detail */
|
|
151
|
+
readonly errorDetail: z.ZodObject<{
|
|
152
|
+
code: z.ZodString;
|
|
153
|
+
message: z.ZodString;
|
|
154
|
+
details: z.ZodOptional<z.ZodUnknown>;
|
|
155
|
+
}, z.core.$strip>;
|
|
156
|
+
};
|
|
157
|
+
export type ToolOutputSchemaName = keyof typeof ToolOutputSchemas;
|
|
158
|
+
/**
|
|
159
|
+
* Validate tool output data against one of the common output schemas.
|
|
160
|
+
* Returns `{ valid: true }` on success, or `{ valid: false, errors }` with
|
|
161
|
+
* human-readable Zod issue descriptions on failure.
|
|
162
|
+
*/
|
|
163
|
+
export declare function validateToolOutput(data: unknown, schemaName: ToolOutputSchemaName): {
|
|
164
|
+
valid: boolean;
|
|
165
|
+
errors?: string[];
|
|
166
|
+
};
|
|
131
167
|
//# sourceMappingURL=contracts.d.ts.map
|
package/dist/contracts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,OAAO,EACZ,KAAK,eAAe,EAEpB,KAAK,cAAc,EAGnB,CAAC,EACF,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
|
package/dist/contracts.js
CHANGED
|
@@ -150,4 +150,48 @@ export function agentDefinitionToAgentCard(agent, baseUrl, opts) {
|
|
|
150
150
|
export function agentDefinitionToMcpTools(agent) {
|
|
151
151
|
return agent.tools.map(contractsToolDefinitionToMcpTool);
|
|
152
152
|
}
|
|
153
|
+
// =============================================================================
|
|
154
|
+
// Tool Output Schemas & Validation
|
|
155
|
+
// =============================================================================
|
|
156
|
+
/** Common output schemas that tools can reference for response validation */
|
|
157
|
+
export const ToolOutputSchemas = {
|
|
158
|
+
/** List response with pagination */
|
|
159
|
+
paginatedList: z.object({
|
|
160
|
+
items: z.array(z.unknown()),
|
|
161
|
+
total: z.number().optional(),
|
|
162
|
+
page: z.number().optional(),
|
|
163
|
+
limit: z.number().optional(),
|
|
164
|
+
}),
|
|
165
|
+
/** Single entity response */
|
|
166
|
+
entity: z.object({
|
|
167
|
+
id: z.string(),
|
|
168
|
+
data: z.record(z.string(), z.unknown()),
|
|
169
|
+
}),
|
|
170
|
+
/** Status response */
|
|
171
|
+
status: z.object({
|
|
172
|
+
success: z.boolean(),
|
|
173
|
+
message: z.string().optional(),
|
|
174
|
+
}),
|
|
175
|
+
/** Error detail */
|
|
176
|
+
errorDetail: z.object({
|
|
177
|
+
code: z.string(),
|
|
178
|
+
message: z.string(),
|
|
179
|
+
details: z.unknown().optional(),
|
|
180
|
+
}),
|
|
181
|
+
};
|
|
182
|
+
/**
|
|
183
|
+
* Validate tool output data against one of the common output schemas.
|
|
184
|
+
* Returns `{ valid: true }` on success, or `{ valid: false, errors }` with
|
|
185
|
+
* human-readable Zod issue descriptions on failure.
|
|
186
|
+
*/
|
|
187
|
+
export function validateToolOutput(data, schemaName) {
|
|
188
|
+
const schema = ToolOutputSchemas[schemaName];
|
|
189
|
+
const result = schema.safeParse(data);
|
|
190
|
+
if (result.success)
|
|
191
|
+
return { valid: true };
|
|
192
|
+
return {
|
|
193
|
+
valid: false,
|
|
194
|
+
errors: result.error.issues.map((i) => `${i.path.join('.')}: ${i.message}`),
|
|
195
|
+
};
|
|
196
|
+
}
|
|
153
197
|
//# sourceMappingURL=contracts.js.map
|
package/dist/contracts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAIL,qBAAqB,EAErB,oBAAoB,EAEpB,CAAC,GACF,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"contracts.js","sourceRoot":"","sources":["../src/contracts.ts"],"names":[],"mappings":"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"}
|
package/dist/hypervisor.d.ts
CHANGED
|
@@ -22,6 +22,29 @@ export interface MCPServerConfig {
|
|
|
22
22
|
args: string[];
|
|
23
23
|
/** Additional environment variables */
|
|
24
24
|
env?: Record<string, string>;
|
|
25
|
+
/** Required tier to access this server's tools (default: 'free') */
|
|
26
|
+
requiredTier?: 'free' | 'pro' | 'max' | 'enterprise';
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Resolves credentials for a specific tenant/workspace at server spawn time.
|
|
30
|
+
* Implementations should fetch from the database (tenantProviderConfigs, userApiKeys)
|
|
31
|
+
* and return env vars to inject into the MCP server process.
|
|
32
|
+
*/
|
|
33
|
+
export interface MCPCredentialResolver {
|
|
34
|
+
/**
|
|
35
|
+
* Resolve credentials for a tenant+server combination.
|
|
36
|
+
* Returns env vars to merge into the server process environment.
|
|
37
|
+
* Return null if the tenant has no credentials for this server.
|
|
38
|
+
*/
|
|
39
|
+
resolve(tenantId: string, serverName: string): Promise<Record<string, string> | null>;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Context for a tenant-scoped MCP operation.
|
|
43
|
+
*/
|
|
44
|
+
export interface MCPTenantContext {
|
|
45
|
+
tenantId: string;
|
|
46
|
+
userId?: string;
|
|
47
|
+
tier: 'free' | 'pro' | 'max' | 'enterprise';
|
|
25
48
|
}
|
|
26
49
|
export interface MCPTool {
|
|
27
50
|
name: string;
|
|
@@ -31,12 +54,16 @@ export interface MCPTool {
|
|
|
31
54
|
properties?: Record<string, unknown>;
|
|
32
55
|
required?: string[];
|
|
33
56
|
};
|
|
57
|
+
/** Minimum tier required to invoke this tool (default: 'free') */
|
|
58
|
+
requiredTier?: 'free' | 'pro' | 'max' | 'enterprise';
|
|
34
59
|
}
|
|
35
60
|
export interface NamespacedTool {
|
|
36
61
|
/** Namespaced name: @@mcp_{serverName}_{toolName} */
|
|
37
62
|
namespacedName: string;
|
|
38
63
|
serverName: string;
|
|
39
64
|
tool: MCPTool;
|
|
65
|
+
/** Minimum tier required to invoke this tool (inherited from tool or server) */
|
|
66
|
+
requiredTier?: 'free' | 'pro' | 'max' | 'enterprise';
|
|
40
67
|
}
|
|
41
68
|
/**
|
|
42
69
|
* Singleton that manages MCP server processes and their tool registries.
|
|
@@ -59,6 +86,9 @@ export interface NamespacedTool {
|
|
|
59
86
|
export declare class MCPHypervisor {
|
|
60
87
|
private static instance;
|
|
61
88
|
private servers;
|
|
89
|
+
/** Tenant-scoped server instances: key = `${tenantId}:${serverName}` */
|
|
90
|
+
private tenantServers;
|
|
91
|
+
private credentialResolver;
|
|
62
92
|
private requestCounter;
|
|
63
93
|
private pendingRequests;
|
|
64
94
|
private healthCheckTimer;
|
|
@@ -121,6 +151,39 @@ export declare class MCPHypervisor {
|
|
|
121
151
|
toolCount: number;
|
|
122
152
|
pid: number | null;
|
|
123
153
|
}>;
|
|
154
|
+
/**
|
|
155
|
+
* Set the credential resolver for tenant-scoped server operations.
|
|
156
|
+
* Must be set before calling any tenant-scoped methods.
|
|
157
|
+
*/
|
|
158
|
+
setCredentialResolver(resolver: MCPCredentialResolver): void;
|
|
159
|
+
/**
|
|
160
|
+
* Start an MCP server with tenant-specific credentials.
|
|
161
|
+
* Each tenant gets its own isolated server process with credentials
|
|
162
|
+
* resolved from the database (BYOK keys or platform defaults).
|
|
163
|
+
*
|
|
164
|
+
* Server instances are keyed by `${tenantId}:${serverName}`.
|
|
165
|
+
*/
|
|
166
|
+
startServerForTenant(serverName: string, ctx: MCPTenantContext): Promise<void>;
|
|
167
|
+
/**
|
|
168
|
+
* Stop a tenant-scoped server instance.
|
|
169
|
+
*/
|
|
170
|
+
stopServerForTenant(serverName: string, tenantId: string): Promise<void>;
|
|
171
|
+
/**
|
|
172
|
+
* Call a tool on a tenant-scoped server instance.
|
|
173
|
+
*/
|
|
174
|
+
callToolForTenant(serverName: string, tenantId: string, toolName: string, args: unknown): Promise<unknown>;
|
|
175
|
+
/**
|
|
176
|
+
* Get all tools available to a tenant, filtered by tier.
|
|
177
|
+
* Checks both server-level and tool-level requiredTier — the effective
|
|
178
|
+
* requirement is the higher of the two.
|
|
179
|
+
*/
|
|
180
|
+
getToolsForTenant(ctx: MCPTenantContext): NamespacedTool[];
|
|
181
|
+
/**
|
|
182
|
+
* Stop all tenant-scoped servers (called during shutdown).
|
|
183
|
+
*/
|
|
184
|
+
private stopAllTenantServers;
|
|
185
|
+
private tierSatisfied;
|
|
186
|
+
private higherTier;
|
|
124
187
|
private startHealthCheckLoop;
|
|
125
188
|
private stopHealthCheckLoop;
|
|
126
189
|
/**
|
package/dist/hypervisor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hypervisor.d.ts","sourceRoot":"","sources":["../src/hypervisor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,MAAM,WAAW,eAAe;IAC9B,6DAA6D;IAC7D,IAAI,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"hypervisor.d.ts","sourceRoot":"","sources":["../src/hypervisor.ts"],"names":[],"mappings":"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"}
|