@revealui/mcp 0.8.0 → 0.8.2

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.
Files changed (53) hide show
  1. package/README.md +26 -39
  2. package/dist/audit-sink.d.ts +36 -0
  3. package/dist/audit-sink.d.ts.map +1 -0
  4. package/dist/audit-sink.js +13 -0
  5. package/dist/audit-sink.js.map +1 -0
  6. package/dist/cli.d.ts +5 -2
  7. package/dist/cli.d.ts.map +1 -1
  8. package/dist/cli.js +10 -8
  9. package/dist/cli.js.map +1 -1
  10. package/dist/config/index.d.ts +6 -10
  11. package/dist/config/index.d.ts.map +1 -1
  12. package/dist/config/index.js +6 -17
  13. package/dist/config/index.js.map +1 -1
  14. package/dist/hypervisor.d.ts +23 -0
  15. package/dist/hypervisor.d.ts.map +1 -1
  16. package/dist/hypervisor.js +77 -0
  17. package/dist/hypervisor.js.map +1 -1
  18. package/dist/index.d.ts +1 -1
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +0 -1
  21. package/dist/index.js.map +1 -1
  22. package/dist/servers/_email-provider.d.ts.map +1 -1
  23. package/dist/servers/_email-provider.js +2 -1
  24. package/dist/servers/_email-provider.js.map +1 -1
  25. package/dist/servers/_launcher-utils.d.ts +12 -0
  26. package/dist/servers/_launcher-utils.d.ts.map +1 -1
  27. package/dist/servers/_launcher-utils.js +26 -0
  28. package/dist/servers/_launcher-utils.js.map +1 -1
  29. package/dist/servers/factories/contracts.d.ts +242 -0
  30. package/dist/servers/factories/contracts.d.ts.map +1 -1
  31. package/dist/servers/factories/revealui-content.d.ts +26 -0
  32. package/dist/servers/factories/revealui-content.d.ts.map +1 -1
  33. package/dist/servers/factories/revealui-content.js +169 -12
  34. package/dist/servers/factories/revealui-content.js.map +1 -1
  35. package/dist/servers/neon.js +5 -2
  36. package/dist/servers/neon.js.map +1 -1
  37. package/dist/servers/next-devtools.js +4 -2
  38. package/dist/servers/next-devtools.js.map +1 -1
  39. package/dist/servers/playwright.js +4 -2
  40. package/dist/servers/playwright.js.map +1 -1
  41. package/dist/servers/stripe.js +4 -2
  42. package/dist/servers/stripe.js.map +1 -1
  43. package/dist/servers/vercel.js +4 -2
  44. package/dist/servers/vercel.js.map +1 -1
  45. package/dist/streamable-http.d.ts +10 -1
  46. package/dist/streamable-http.d.ts.map +1 -1
  47. package/dist/streamable-http.js +2 -2
  48. package/dist/streamable-http.js.map +1 -1
  49. package/package.json +56 -33
  50. package/dist/servers/supabase.d.ts +0 -15
  51. package/dist/servers/supabase.d.ts.map +0 -1
  52. package/dist/servers/supabase.js +0 -139
  53. package/dist/servers/supabase.js.map +0 -1
package/README.md CHANGED
@@ -19,7 +19,8 @@ Centralized MCP server infrastructure, configuration, and documentation for Reve
19
19
 
20
20
  This package contains everything MCP-related:
21
21
 
22
- - **14 MCP Servers** - Code Validator, Contracts Introspection, RevealUI Docs, Neon, Next.js DevTools, Playwright, RevealUI Content, RevealUI Email, RevealUI Memory, RevealUI Stripe, Stripe, Supabase, Vercel, and the Adapter base (BaseAdapter with retry and idempotency, plus the Vercel/Stripe/Neon adapter subclasses). This roster matches the CI counter in `scripts/validate/claim-drift.ts` (adapter counted, the underscore-prefixed email-provider utility not); the count is enforced by `pnpm validate:claims`. Of the 14, eight are RevealUI-authored and six are first-party launchers that start vendor MCP server packages.
22
+ - **13 MCP Servers** - Code Validator, Contracts Introspection, RevealUI Docs, Neon, Next.js DevTools, Playwright, RevealUI Content, RevealUI Email, RevealUI Memory, RevealUI Stripe, Stripe, Vercel, and the Adapter base (BaseAdapter with retry and idempotency, plus the Vercel/Stripe/Neon adapter subclasses). This roster matches the CI counter in `scripts/validate/claim-drift.ts` (adapter counted, the underscore-prefixed email-provider utility not); the count is enforced by `pnpm validate:claims`. Of the 13, eight are RevealUI-authored and five are first-party launchers that start vendor MCP server packages.
23
+ - **MCPHypervisor (incubating)** - Multi-server process manager in source (`src/hypervisor.ts`). Not started by apps at boot today (ADR-007). Use `revealui-mcp` / per-server launchers for day-to-day attach.
23
24
  - **Configuration Templates** - For Claude Code / Claude Desktop
24
25
  - **Utilities** - Config management, database adapters
25
26
  - **Documentation** - Complete guides and per-server docs
@@ -66,12 +67,8 @@ packages/mcp/
66
67
  │ ├── servers/ # MCP server implementations (run `ls packages/mcp/src/servers/` for the current list)
67
68
  │ │ ├── code-validator.ts ← AI code standards enforcer
68
69
  │ │ └── … ← Neon, Next.js DevTools, Playwright, RevealUI-*, Stripe, Supabase, Vercel
69
- │ ├── config/ # Configuration utilities
70
- │ ├── index.ts
71
- │ │ ├── config.json
72
- │ │ └── README.md
73
- │ └── adapters/ # Database adapters
74
- │ └── db.ts
70
+ │ ├── config/ # Configuration utilities (index.ts, config.json)
71
+ └── adapters/ # Database adapters (db.ts)
75
72
  ├── configs/ # Template configurations
76
73
  │ ├── claude-template.json
77
74
  │ └── README.md
@@ -105,7 +102,7 @@ tsx packages/mcp/src/servers/code-validator.ts
105
102
  Deploy and manage Vercel projects.
106
103
 
107
104
  ```bash
108
- pnpm mcp:vercel
105
+ tsx packages/mcp/src/servers/vercel.ts
109
106
  ```
110
107
 
111
108
  ### 3. Stripe
@@ -114,7 +111,7 @@ pnpm mcp:vercel
114
111
  Payment processing and billing operations.
115
112
 
116
113
  ```bash
117
- pnpm mcp:stripe
114
+ tsx packages/mcp/src/servers/stripe.ts
118
115
  ```
119
116
 
120
117
  ### 4. Neon
@@ -123,34 +120,25 @@ pnpm mcp:stripe
123
120
  Database operations and SQL queries.
124
121
 
125
122
  ```bash
126
- pnpm mcp:neon
123
+ tsx packages/mcp/src/servers/neon.ts
127
124
  ```
128
125
 
129
- ### 5. Supabase
130
- **Status:** Available (requires API key)
131
-
132
- Supabase project management and CRUD operations.
133
-
134
- ```bash
135
- pnpm mcp:supabase
136
- ```
137
-
138
- ### 6. Playwright
126
+ ### 5. Playwright
139
127
  **Status:** Available
140
128
 
141
129
  Browser automation and web scraping.
142
130
 
143
131
  ```bash
144
- pnpm mcp:playwright
132
+ tsx packages/mcp/src/servers/playwright.ts
145
133
  ```
146
134
 
147
- ### 7. Next.js DevTools
135
+ ### 6. Next.js DevTools
148
136
  **Status:** Available
149
137
 
150
138
  Next.js 16+ runtime diagnostics and automation.
151
139
 
152
140
  ```bash
153
- pnpm mcp:next-devtools
141
+ tsx packages/mcp/src/servers/next-devtools.ts
154
142
  ```
155
143
 
156
144
  ### 8. Contracts Introspection
@@ -187,11 +175,6 @@ STRIPE_SECRET_KEY=sk_test_...
187
175
 
188
176
  # Neon MCP
189
177
  NEON_API_KEY=neon_...
190
-
191
- # Supabase MCP
192
- SUPABASE_URL=https://....supabase.co
193
- SUPABASE_ANON_KEY=eyJ...
194
- SUPABASE_SERVICE_ROLE_KEY=...
195
178
  ```
196
179
 
197
180
  ## Documentation
@@ -218,18 +201,22 @@ pnpm typecheck
218
201
  pnpm lint
219
202
  ```
220
203
 
221
- ## Package Scripts (Root)
204
+ ## Running servers
205
+
206
+ There are no root `pnpm mcp:*` script aliases. Start a server with `tsx` against the file under `src/servers/` (underscore-prefixed files are helpers, not counted servers):
222
207
 
223
208
  ```bash
224
- # Start individual MCP servers
225
- pnpm mcp:vercel
226
- pnpm mcp:stripe
227
- pnpm mcp:neon
228
- pnpm mcp:supabase
229
- pnpm mcp:playwright
230
- pnpm mcp:next-devtools
231
-
232
- # Setup MCP configuration
209
+ # Examples (from monorepo root)
210
+ tsx packages/mcp/src/servers/code-validator.ts
211
+ tsx packages/mcp/src/servers/vercel.ts
212
+ tsx packages/mcp/src/servers/stripe.ts
213
+ tsx packages/mcp/src/servers/neon.ts
214
+ tsx packages/mcp/src/servers/playwright.ts
215
+ tsx packages/mcp/src/servers/next-devtools.ts
216
+ tsx packages/mcp/src/servers/contracts.ts
217
+ tsx packages/mcp/src/servers/docs.ts
218
+
219
+ # Copy Claude config template
233
220
  pnpm setup:mcp
234
221
  ```
235
222
 
@@ -272,5 +259,5 @@ FSL-1.1-MIT (Fair Source — converts to MIT after 2 years). See [LICENSE](../..
272
259
  ---
273
260
 
274
261
  **Status:** ✅ Consolidated and Active
275
- **Servers:** 14 available (ground truth: `pnpm validate:claims` — source of truth is `packages/mcp/src/servers/`)
262
+ **Servers:** 13 available (ground truth: `pnpm validate:claims` — source of truth is `packages/mcp/src/servers/`)
276
263
  **Last Updated:** 2026-05-03
@@ -0,0 +1,36 @@
1
+ /**
2
+ * MCP hypervisor audit sink (GAP-355 Stage 5).
3
+ *
4
+ * Consumer-wired integrity hook for tool-call boundaries. Unlike
5
+ * `setUsageMeterSink` (fire-and-forget, never fails the call), the audit sink
6
+ * is **awaited**. When installed, sink failures **fail the tool call** so an
7
+ * action that cannot be recorded does not complete successfully.
8
+ *
9
+ * `@revealui/mcp` stays free of `@revealui/db`. Apps wire the sink to
10
+ * `DrizzleAuditStore` / `recordMcpToolAudit` at process boot.
11
+ */
12
+ /**
13
+ * Event fired once per hypervisor tool-call boundary (success or failure).
14
+ * Mirrors `McpMeterEvent` plus an optional args digest (never raw args).
15
+ */
16
+ export interface McpAuditEvent {
17
+ kind: 'mcp.tool.call';
18
+ serverName: string;
19
+ toolName: string;
20
+ /** Set when the call went through `callToolForTenant`. */
21
+ tenantId?: string;
22
+ duration_ms: number;
23
+ success: boolean;
24
+ error?: string;
25
+ /**
26
+ * Optional sha256 hex of canonical args. Callers that can hash safely may
27
+ * set this; the hypervisor leaves it unset (no raw arg capture).
28
+ */
29
+ argsDigest?: string;
30
+ }
31
+ /**
32
+ * Integrity audit sink. Must resolve before the tool call is treated as
33
+ * successfully audited. Throwing or rejecting fails the call path.
34
+ */
35
+ export type McpAuditSink = (event: McpAuditEvent) => void | Promise<void>;
36
+ //# sourceMappingURL=audit-sink.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-sink.d.ts","sourceRoot":"","sources":["../src/audit-sink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * MCP hypervisor audit sink (GAP-355 Stage 5).
3
+ *
4
+ * Consumer-wired integrity hook for tool-call boundaries. Unlike
5
+ * `setUsageMeterSink` (fire-and-forget, never fails the call), the audit sink
6
+ * is **awaited**. When installed, sink failures **fail the tool call** so an
7
+ * action that cannot be recorded does not complete successfully.
8
+ *
9
+ * `@revealui/mcp` stays free of `@revealui/db`. Apps wire the sink to
10
+ * `DrizzleAuditStore` / `recordMcpToolAudit` at process boot.
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=audit-sink.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit-sink.js","sourceRoot":"","sources":["../src/audit-sink.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
package/dist/cli.d.ts CHANGED
@@ -6,10 +6,13 @@
6
6
  * revealui-mcp <server>
7
7
  * npx @revealui/mcp <server>
8
8
  *
9
- * Each server module self-starts on import (its own main() runs). The
10
- * allowlist below is static so no user input ever reaches an import path.
9
+ * The allowlist is static so no user input ever reaches an import path.
11
10
  * code-validator is repo-only (tsx, excluded from the build) and is not
12
11
  * listed here.
12
+ *
13
+ * External launchers (neon/stripe/vercel/playwright/next-devtools) export
14
+ * `launch*Mcp` and must not auto-start on import (barrel-safe for GAP-406).
15
+ * First-party stdio servers still self-start on import of their entry file.
13
16
  */
14
17
  declare const SERVERS: Record<string, () => Promise<unknown>>;
15
18
  declare const requested: string | undefined;
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;GAWG;AAEH,QAAA,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAanD,CAAC;AAEF,QAAA,MAAM,SAAS,oBAAkB,CAAC;AAClC,QAAA,MAAM,MAAM,SAhBwB,OAAO,CAAC,OAAO,CAAC,aAgBK,CAAC"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAEH,QAAA,MAAM,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAanD,CAAC;AAEF,QAAA,MAAM,SAAS,oBAAkB,CAAC;AAClC,QAAA,MAAM,MAAM,SAhBwB,OAAO,CAAC,OAAO,CAAC,aAgBK,CAAC"}
package/dist/cli.js CHANGED
@@ -7,24 +7,26 @@
7
7
  * revealui-mcp <server>
8
8
  * npx @revealui/mcp <server>
9
9
  *
10
- * Each server module self-starts on import (its own main() runs). The
11
- * allowlist below is static so no user input ever reaches an import path.
10
+ * The allowlist is static so no user input ever reaches an import path.
12
11
  * code-validator is repo-only (tsx, excluded from the build) and is not
13
12
  * listed here.
13
+ *
14
+ * External launchers (neon/stripe/vercel/playwright/next-devtools) export
15
+ * `launch*Mcp` and must not auto-start on import (barrel-safe for GAP-406).
16
+ * First-party stdio servers still self-start on import of their entry file.
14
17
  */
15
18
  const SERVERS = {
16
19
  contracts: () => import('./servers/contracts.js'),
17
20
  docs: () => import('./servers/docs.js'),
18
- neon: () => import('./servers/neon.js'),
19
- 'next-devtools': () => import('./servers/next-devtools.js'),
20
- playwright: () => import('./servers/playwright.js'),
21
+ neon: () => import('./servers/neon.js').then((m) => m.launchNeonMcp()),
22
+ 'next-devtools': () => import('./servers/next-devtools.js').then((m) => m.launchNextDevtoolsMcp()),
23
+ playwright: () => import('./servers/playwright.js').then((m) => m.launchPlaywrightMcp()),
21
24
  'revealui-content': () => import('./servers/revealui-content.js'),
22
25
  'revealui-email': () => import('./servers/revealui-email.js'),
23
26
  'revealui-memory': () => import('./servers/revealui-memory.js'),
24
27
  'revealui-stripe': () => import('./servers/revealui-stripe.js'),
25
- stripe: () => import('./servers/stripe.js'),
26
- supabase: () => import('./servers/supabase.js'),
27
- vercel: () => import('./servers/vercel.js'),
28
+ stripe: () => import('./servers/stripe.js').then((m) => m.launchStripeMcp()),
29
+ vercel: () => import('./servers/vercel.js').then((m) => m.launchVercelMcp()),
28
30
  };
29
31
  const requested = process.argv[2];
30
32
  const launch = requested ? SERVERS[requested] : undefined;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;;GAWG;AAEH,MAAM,OAAO,GAA2C;IACtD,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC;IACjD,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;IACvC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;IACvC,eAAe,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,4BAA4B,CAAC;IAC3D,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC;IACnD,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,+BAA+B,CAAC;IACjE,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6BAA6B,CAAC;IAC7D,iBAAiB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC;IAC/D,iBAAiB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC;IAC/D,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAC3C,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAC/C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC;CAC5C,CAAC;AAEF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAE1D,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,IAAI,IAAI,CAAC,CAAC;IACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAChC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC;IACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,OAAO,GAA2C;IACtD,SAAS,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC;IACjD,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC;IACvC,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;IACtE,eAAe,EAAE,GAAG,EAAE,CACpB,MAAM,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,CAAC;IAC7E,UAAU,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;IACxF,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,+BAA+B,CAAC;IACjE,gBAAgB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,6BAA6B,CAAC;IAC7D,iBAAiB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC;IAC/D,iBAAiB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,8BAA8B,CAAC;IAC/D,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;IAC5E,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC;CAC7E,CAAC;AAEF,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAE1D,IAAI,CAAC,MAAM,EAAE,CAAC;IACZ,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,yDAAyD,IAAI,IAAI,CAAC,CAAC;IACxF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAChC,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,SAAS,KAAK,OAAO,IAAI,CAAC,CAAC;IACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -1,11 +1,7 @@
1
- export type McpMetricsMode = 'logs' | 'otel' | 'prometheus';
2
- export interface McpConfig {
3
- persistenceDriver: 'pglite' | 'postgres';
4
- electricDatabaseUrl: string | null;
5
- electricApiKey: string | null;
6
- metricsMode: McpMetricsMode;
7
- pgvectorEnabled: boolean;
8
- }
9
- export declare function getMcpConfig(): McpConfig;
10
- export default getMcpConfig;
1
+ /**
2
+ * MCP env config — single source is `@revealui/config/mcp`.
3
+ * This file re-exports for the historical `@revealui/mcp` barrel path.
4
+ * Do not re-implement; adapters already import from `@revealui/config/mcp`.
5
+ */
6
+ export { default, getMcpConfig, type McpConfig, type McpMetricsMode } from '@revealui/config/mcp';
11
7
  //# sourceMappingURL=index.d.ts.map
@@ -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,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,18 +1,7 @@
1
- function boolFromEnv(v, fallback = false) {
2
- if (v === undefined)
3
- return fallback;
4
- return ['1', 'true', 'yes'].includes(v.toLowerCase());
5
- }
6
- export function getMcpConfig() {
7
- const persistenceDriver = process.env.MCP_PERSISTENCE_DRIVER || 'pglite';
8
- const metricsMode = process.env.MCP_METRICS_MODE || 'logs';
9
- return {
10
- persistenceDriver,
11
- electricDatabaseUrl: process.env.ELECTRIC_DATABASE_URL || null,
12
- electricApiKey: process.env.ELECTRIC_API_KEY || null,
13
- metricsMode,
14
- pgvectorEnabled: boolFromEnv(process.env.PGVECTOR_ENABLED, false),
15
- };
16
- }
17
- export default getMcpConfig;
1
+ /**
2
+ * MCP env config — single source is `@revealui/config/mcp`.
3
+ * This file re-exports for the historical `@revealui/mcp` barrel path.
4
+ * Do not re-implement; adapters already import from `@revealui/config/mcp`.
5
+ */
6
+ export { default, getMcpConfig } from '@revealui/config/mcp';
18
7
  //# sourceMappingURL=index.js.map
@@ -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,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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,YAAY,EAAuC,MAAM,sBAAsB,CAAC"}
@@ -1,6 +1,11 @@
1
1
  /**
2
2
  * MCP Hypervisor
3
3
  *
4
+ * **INCUBATING (fleet-redundancy C11 / ADR-007).** Library surface is kept and
5
+ * tested. No RevealUI app currently constructs or starts this singleton at
6
+ * process boot. Prefer explicit `revealui-mcp` / per-server launchers until a
7
+ * dedicated WIRE ticket mounts the hypervisor with credential + metering ownership.
8
+ *
4
9
  * Manages N running MCP server processes, pings them for liveness, and
5
10
  * dynamically exposes their tools at runtime. Inspired by the
6
11
  * MCPCompatibilityLayer/MCPHypervisor pattern from AnythingLLM.
@@ -13,6 +18,7 @@
13
18
  *
14
19
  * Wire format: newline-delimited JSON-RPC 2.0 (stdin/stdout)
15
20
  */
21
+ import type { McpAuditSink } from './audit-sink.js';
16
22
  import type { McpMeterSink } from './metering.js';
17
23
  export interface MCPServerConfig {
18
24
  /** Unique name for this server (used in tool namespacing) */
@@ -91,6 +97,8 @@ export declare class MCPHypervisor {
91
97
  private tenantServers;
92
98
  private credentialResolver;
93
99
  private meterSink;
100
+ /** GAP-355 Stage 5: integrity audit sink (awaited; fail-closed when set). */
101
+ private auditSink;
94
102
  private requestCounter;
95
103
  private pendingRequests;
96
104
  private healthCheckTimer;
@@ -167,6 +175,15 @@ export declare class MCPHypervisor {
167
175
  * See `./metering.ts` for the event shape. Pass `null` to disable.
168
176
  */
169
177
  setUsageMeterSink(sink: McpMeterSink | null): void;
178
+ /**
179
+ * Install an integrity audit sink (GAP-355 Stage 5). Unlike usage metering,
180
+ * the sink is **awaited**. When non-null, a throw/reject from the sink after
181
+ * a successful tool call **fails the call** (fail-closed: unrecorded action
182
+ * does not complete as success).
183
+ *
184
+ * Pass `null` to disable.
185
+ */
186
+ setAuditSink(sink: McpAuditSink | null): void;
170
187
  /**
171
188
  * Fire the consumer-wired metering sink. Swallows errors so
172
189
  * observability can never corrupt a successful tool call.
@@ -174,6 +191,12 @@ export declare class MCPHypervisor {
174
191
  * @internal
175
192
  */
176
193
  private emitMeter;
194
+ /**
195
+ * Await the integrity audit sink. Propagates errors (fail-closed).
196
+ *
197
+ * @internal
198
+ */
199
+ private emitAudit;
177
200
  /**
178
201
  * Start an MCP server with tenant-specific credentials.
179
202
  * Each tenant gets its own isolated server process with credentials
@@ -1 +1 @@
1
- {"version":3,"file":"hypervisor.d.ts","sourceRoot":"","sources":["../src/hypervisor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hypervisor.d.ts","sourceRoot":"","sources":["../src/hypervisor.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  /**
2
2
  * MCP Hypervisor
3
3
  *
4
+ * **INCUBATING (fleet-redundancy C11 / ADR-007).** Library surface is kept and
5
+ * tested. No RevealUI app currently constructs or starts this singleton at
6
+ * process boot. Prefer explicit `revealui-mcp` / per-server launchers until a
7
+ * dedicated WIRE ticket mounts the hypervisor with credential + metering ownership.
8
+ *
4
9
  * Manages N running MCP server processes, pings them for liveness, and
5
10
  * dynamically exposes their tools at runtime. Inspired by the
6
11
  * MCPCompatibilityLayer/MCPHypervisor pattern from AnythingLLM.
@@ -50,6 +55,8 @@ export class MCPHypervisor {
50
55
  tenantServers = new Map();
51
56
  credentialResolver = null;
52
57
  meterSink = null;
58
+ /** GAP-355 Stage 5: integrity audit sink (awaited; fail-closed when set). */
59
+ auditSink = null;
53
60
  requestCounter = 0;
54
61
  pendingRequests = new Map();
55
62
  healthCheckTimer = null;
@@ -337,6 +344,13 @@ export class MCPHypervisor {
337
344
  duration_ms: durationMs,
338
345
  success: true,
339
346
  });
347
+ await this.emitAudit({
348
+ kind: 'mcp.tool.call',
349
+ serverName,
350
+ toolName,
351
+ duration_ms: durationMs,
352
+ success: true,
353
+ });
340
354
  return result;
341
355
  }
342
356
  catch (error) {
@@ -356,6 +370,23 @@ export class MCPHypervisor {
356
370
  success: false,
357
371
  error: error instanceof Error ? error.message : String(error),
358
372
  });
373
+ try {
374
+ await this.emitAudit({
375
+ kind: 'mcp.tool.call',
376
+ serverName,
377
+ toolName,
378
+ duration_ms: durationMs,
379
+ success: false,
380
+ error: error instanceof Error ? error.message : String(error),
381
+ });
382
+ }
383
+ catch (auditErr) {
384
+ // Prefer the tool failure; still surface audit failure if tool path succeeded...
385
+ // here the tool already failed, so attach audit fail only as secondary log.
386
+ logger.warn('[MCPHypervisor] audit sink failed after tool error; rethrowing tool error', {
387
+ auditError: auditErr instanceof Error ? auditErr.message : String(auditErr),
388
+ });
389
+ }
359
390
  throw error;
360
391
  }
361
392
  }
@@ -397,6 +428,17 @@ export class MCPHypervisor {
397
428
  setUsageMeterSink(sink) {
398
429
  this.meterSink = sink;
399
430
  }
431
+ /**
432
+ * Install an integrity audit sink (GAP-355 Stage 5). Unlike usage metering,
433
+ * the sink is **awaited**. When non-null, a throw/reject from the sink after
434
+ * a successful tool call **fails the call** (fail-closed: unrecorded action
435
+ * does not complete as success).
436
+ *
437
+ * Pass `null` to disable.
438
+ */
439
+ setAuditSink(sink) {
440
+ this.auditSink = sink;
441
+ }
400
442
  /**
401
443
  * Fire the consumer-wired metering sink. Swallows errors so
402
444
  * observability can never corrupt a successful tool call.
@@ -425,6 +467,17 @@ export class MCPHypervisor {
425
467
  });
426
468
  }
427
469
  }
470
+ /**
471
+ * Await the integrity audit sink. Propagates errors (fail-closed).
472
+ *
473
+ * @internal
474
+ */
475
+ async emitAudit(event) {
476
+ const sink = this.auditSink;
477
+ if (!sink)
478
+ return;
479
+ await sink(event);
480
+ }
428
481
  // ---------------------------------------------------------------------------
429
482
  // Tenant-scoped operations
430
483
  // ---------------------------------------------------------------------------
@@ -587,6 +640,14 @@ export class MCPHypervisor {
587
640
  duration_ms: durationMs,
588
641
  success: true,
589
642
  });
643
+ await this.emitAudit({
644
+ kind: 'mcp.tool.call',
645
+ serverName,
646
+ toolName,
647
+ tenantId,
648
+ duration_ms: durationMs,
649
+ success: true,
650
+ });
590
651
  return result;
591
652
  }
592
653
  catch (error) {
@@ -608,6 +669,22 @@ export class MCPHypervisor {
608
669
  success: false,
609
670
  error: error instanceof Error ? error.message : String(error),
610
671
  });
672
+ try {
673
+ await this.emitAudit({
674
+ kind: 'mcp.tool.call',
675
+ serverName,
676
+ toolName,
677
+ tenantId,
678
+ duration_ms: durationMs,
679
+ success: false,
680
+ error: error instanceof Error ? error.message : String(error),
681
+ });
682
+ }
683
+ catch (auditErr) {
684
+ logger.warn('[MCPHypervisor] audit sink failed after tool error; rethrowing tool error', {
685
+ auditError: auditErr instanceof Error ? auditErr.message : String(auditErr),
686
+ });
687
+ }
611
688
  throw error;
612
689
  }
613
690
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hypervisor.js","sourceRoot":"","sources":["../src/hypervisor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hypervisor.js","sourceRoot":"","sources":["../src/hypervisor.ts"],"names":[],"mappings":"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"}