@revealui/mcp 0.7.1 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/cli.d.ts +17 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +41 -0
- package/dist/cli.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/oauth.d.ts +2 -52
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +2 -139
- package/dist/oauth.js.map +1 -1
- package/dist/servers/factories/contracts.d.ts +245 -1
- package/dist/servers/factories/contracts.d.ts.map +1 -1
- package/dist/servers/factories/revealui-content.d.ts +126 -0
- package/dist/servers/factories/revealui-content.d.ts.map +1 -1
- package/dist/servers/factories/revealui-content.js +279 -63
- package/dist/servers/factories/revealui-content.js.map +1 -1
- package/dist/servers/revealui-memory.d.ts +2 -2
- package/dist/streamable-http.d.ts +35 -3
- package/dist/streamable-http.d.ts.map +1 -1
- package/dist/streamable-http.js +18 -3
- package/dist/streamable-http.js.map +1 -1
- package/package.json +17 -8
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ 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**
|
|
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.
|
|
23
23
|
- **Configuration Templates** - For Claude Code / Claude Desktop
|
|
24
24
|
- **Utilities** - Config management, database adapters
|
|
25
25
|
- **Documentation** - Complete guides and per-server docs
|
|
@@ -237,7 +237,7 @@ pnpm setup:mcp
|
|
|
237
237
|
|
|
238
238
|
```typescript
|
|
239
239
|
// Config utilities
|
|
240
|
-
import {
|
|
240
|
+
import { getMcpConfig } from '@revealui/mcp/config'
|
|
241
241
|
```
|
|
242
242
|
|
|
243
243
|
## Migration from Old Structure
|
|
@@ -272,5 +272,5 @@ FSL-1.1-MIT (Fair Source — converts to MIT after 2 years). See [LICENSE](../..
|
|
|
272
272
|
---
|
|
273
273
|
|
|
274
274
|
**Status:** ✅ Consolidated and Active
|
|
275
|
-
**Servers:**
|
|
275
|
+
**Servers:** 14 available (ground truth: `pnpm validate:claims` — source of truth is `packages/mcp/src/servers/`)
|
|
276
276
|
**Last Updated:** 2026-05-03
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* revealui-mcp — launch a first-party RevealUI MCP server by name.
|
|
4
|
+
*
|
|
5
|
+
* Usage:
|
|
6
|
+
* revealui-mcp <server>
|
|
7
|
+
* npx @revealui/mcp <server>
|
|
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.
|
|
11
|
+
* code-validator is repo-only (tsx, excluded from the build) and is not
|
|
12
|
+
* listed here.
|
|
13
|
+
*/
|
|
14
|
+
declare const SERVERS: Record<string, () => Promise<unknown>>;
|
|
15
|
+
declare const requested: string | undefined;
|
|
16
|
+
declare const launch: (() => Promise<unknown>) | undefined;
|
|
17
|
+
//# sourceMappingURL=cli.d.ts.map
|
|
@@ -0,0 +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"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
/**
|
|
4
|
+
* revealui-mcp — launch a first-party RevealUI MCP server by name.
|
|
5
|
+
*
|
|
6
|
+
* Usage:
|
|
7
|
+
* revealui-mcp <server>
|
|
8
|
+
* npx @revealui/mcp <server>
|
|
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.
|
|
12
|
+
* code-validator is repo-only (tsx, excluded from the build) and is not
|
|
13
|
+
* listed here.
|
|
14
|
+
*/
|
|
15
|
+
const SERVERS = {
|
|
16
|
+
contracts: () => import('./servers/contracts.js'),
|
|
17
|
+
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
|
+
'revealui-content': () => import('./servers/revealui-content.js'),
|
|
22
|
+
'revealui-email': () => import('./servers/revealui-email.js'),
|
|
23
|
+
'revealui-memory': () => import('./servers/revealui-memory.js'),
|
|
24
|
+
'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
|
+
};
|
|
29
|
+
const requested = process.argv[2];
|
|
30
|
+
const launch = requested ? SERVERS[requested] : undefined;
|
|
31
|
+
if (!launch) {
|
|
32
|
+
const list = Object.keys(SERVERS).join('\n ');
|
|
33
|
+
process.stderr.write(`Usage: revealui-mcp <server>\n\nAvailable servers:\n ${list}\n`);
|
|
34
|
+
process.exit(2);
|
|
35
|
+
}
|
|
36
|
+
launch().catch((error) => {
|
|
37
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
38
|
+
process.stderr.write(`revealui-mcp: failed to start ${requested}: ${message}\n`);
|
|
39
|
+
process.exit(1);
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -26,13 +26,13 @@ export { disposeAllAdapters, generateIdempotencyKey, generateUniqueIdempotencyKe
|
|
|
26
26
|
export { type ContractCategoryName, type ContractCategorySchemas, type CreateContractsServerOptions, createContractsServer, getContractsCatalog, REGISTERED_CATEGORIES, validatePayload, } from './servers/factories/contracts.js';
|
|
27
27
|
export { type CreateDocsServerOptions, createDocsServer, enumeratePackages, getLibraryDoc, type LibraryDoc, listLibraries, type PackageEntry, type ResolveResult, resolveLibrary, } from './servers/factories/docs.js';
|
|
28
28
|
export { type AssembledContext, type CreateKnowledgeGraphServerOptions, createKnowledgeGraphServer, } from './servers/factories/knowledge-graph.js';
|
|
29
|
-
export { createRevealuiContentServer, setCredentials as setRevealuiContentCredentials, } from './servers/factories/revealui-content.js';
|
|
29
|
+
export { type CreateRevealuiContentServerOptions, type CredentialsProvider, createRevealuiContentServer, type McpToolAuditOutcome, type McpToolAuditRecord, type McpToolAuditSink, type McpToolCallContext, type ResolvedApiCredentials, setCredentials as setRevealuiContentCredentials, } from './servers/factories/revealui-content.js';
|
|
30
30
|
export { launchNeonMcp } from './servers/neon.js';
|
|
31
31
|
export { launchNextDevtoolsMcp } from './servers/next-devtools.js';
|
|
32
32
|
export { launchPlaywrightMcp } from './servers/playwright.js';
|
|
33
33
|
export { launchStripeMcp } from './servers/stripe.js';
|
|
34
34
|
export { launchSupabaseMcp } from './servers/supabase.js';
|
|
35
35
|
export { launchVercelMcp } from './servers/vercel.js';
|
|
36
|
-
export { createNodeStreamableHttpHandler, type StreamableHttpHandler, type StreamableHttpHandlerOptions, } from './streamable-http.js';
|
|
36
|
+
export { createNodeStreamableHttpHandler, type StreamableHttpControl, type StreamableHttpHandler, type StreamableHttpHandlerOptions, } from './streamable-http.js';
|
|
37
37
|
export { type McpEvent, type McpEventHandler, type McpEventType, McpTelemetry, } from './telemetry.js';
|
|
38
38
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,mBAAmB;AACnB,OAAO,EACL,aAAa,EACb,eAAe,EACf,iBAAiB,GAKlB,MAAM,kBAAkB,CAAC;AAC1B,2DAA2D;AAC3D,OAAO,EACL,iBAAiB,EAEjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,wFAAwF;AACxF,OAAO,EAiBL,kBAAkB,EAClB,SAAS,EAET,oBAAoB,GAoBrB,MAAM,aAAa,CAAC;AACrB,gBAAgB;AAChB,OAAO,EACL,YAAY,GAGb,MAAM,mBAAmB,CAAC;AAC3B,0CAA0C;AAC1C,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,gCAAgC,EAEhC,sBAAsB,EAGtB,uBAAuB,EACvB,gBAAgB,EAGhB,yBAAyB,EACzB,iBAAiB,EACjB,gCAAgC,EAEhC,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,0DAA0D;AAC1D,OAAO,EAEL,aAAa,GAKd,MAAM,iBAAiB,CAAC;AAGzB,kFAAkF;AAClF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EAEnB,gBAAgB,EAEhB,aAAa,EAKb,aAAa,GAGd,MAAM,YAAY,CAAC;AACpB,yCAAyC;AACzC,OAAO,EACL,eAAe,GAIhB,MAAM,eAAe,CAAC;AACvB,yCAAyC;AACzC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAC/B,2BAA2B;AAC3B,OAAO,EACL,mBAAmB,EACnB,cAAc,GAIf,MAAM,mBAAmB,CAAC;AAC3B,oBAAoB;AACpB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAE5B,UAAU,GAEX,MAAM,sBAAsB,CAAC;AAC9B,4EAA4E;AAC5E,OAAO,EAIL,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAC1C,+EAA+E;AAC/E,OAAO,EAEL,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EAEb,aAAa,EAGb,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,2EAA2E;AAC3E,+EAA+E;AAC/E,OAAO,EAGL,0BAA0B,GAC3B,MAAM,wCAAwC,CAAC;AAChD,qEAAqE;AACrE,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,mBAAmB;AACnB,OAAO,EACL,aAAa,EACb,eAAe,EACf,iBAAiB,GAKlB,MAAM,kBAAkB,CAAC;AAC1B,2DAA2D;AAC3D,OAAO,EACL,iBAAiB,EAEjB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,WAAW,CAAC;AACnB,wFAAwF;AACxF,OAAO,EAiBL,kBAAkB,EAClB,SAAS,EAET,oBAAoB,GAoBrB,MAAM,aAAa,CAAC;AACrB,gBAAgB;AAChB,OAAO,EACL,YAAY,GAGb,MAAM,mBAAmB,CAAC;AAC3B,0CAA0C;AAC1C,OAAO,EACL,0BAA0B,EAC1B,yBAAyB,EACzB,gCAAgC,EAEhC,sBAAsB,EAGtB,uBAAuB,EACvB,gBAAgB,EAGhB,yBAAyB,EACzB,iBAAiB,EACjB,gCAAgC,EAEhC,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,0DAA0D;AAC1D,OAAO,EAEL,aAAa,GAKd,MAAM,iBAAiB,CAAC;AAGzB,kFAAkF;AAClF,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EAEnB,gBAAgB,EAEhB,aAAa,EAKb,aAAa,GAGd,MAAM,YAAY,CAAC;AACpB,yCAAyC;AACzC,OAAO,EACL,eAAe,GAIhB,MAAM,eAAe,CAAC;AACvB,yCAAyC;AACzC,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GAGrB,MAAM,uBAAuB,CAAC;AAC/B,2BAA2B;AAC3B,OAAO,EACL,mBAAmB,EACnB,cAAc,GAIf,MAAM,mBAAmB,CAAC;AAC3B,oBAAoB;AACpB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,4BAA4B,EAE5B,UAAU,GAEX,MAAM,sBAAsB,CAAC;AAC9B,4EAA4E;AAC5E,OAAO,EAIL,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,GAChB,MAAM,kCAAkC,CAAC;AAC1C,+EAA+E;AAC/E,OAAO,EAEL,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EAEb,aAAa,EAGb,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,2EAA2E;AAC3E,+EAA+E;AAC/E,OAAO,EAGL,0BAA0B,GAC3B,MAAM,wCAAwC,CAAC;AAChD,qEAAqE;AACrE,OAAO,EAGL,2BAA2B,EAM3B,cAAc,IAAI,6BAA6B,GAChD,MAAM,yCAAyC,CAAC;AACjD,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,sDAAsD;AACtD,OAAO,EACL,+BAA+B,GAIhC,MAAM,sBAAsB,CAAC;AAC9B,8CAA8C;AAC9C,OAAO,EAIL,YAAY,GACb,MAAM,gBAAgB,CAAC"}
|
package/dist/oauth.d.ts
CHANGED
|
@@ -39,58 +39,8 @@
|
|
|
39
39
|
*/
|
|
40
40
|
import type { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
|
|
41
41
|
import type { OAuthClientInformation, OAuthClientInformationFull, OAuthClientInformationMixed, OAuthClientMetadata, OAuthTokens } from '@modelcontextprotocol/sdk/shared/auth.js';
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
*
|
|
45
|
-
* Keys are revvault-style slash-delimited paths (e.g. `mcp/acme/linear/tokens`).
|
|
46
|
-
* Values are opaque strings; the provider JSON-encodes structured values
|
|
47
|
-
* before calling `set`.
|
|
48
|
-
*/
|
|
49
|
-
export interface Vault {
|
|
50
|
-
/** Returns the value at `path`, or `undefined` if not present. */
|
|
51
|
-
get(path: string): Promise<string | undefined>;
|
|
52
|
-
/** Stores `value` at `path`, overwriting any prior value. */
|
|
53
|
-
set(path: string, value: string): Promise<void>;
|
|
54
|
-
/** Deletes the value at `path`. No-op if not present. */
|
|
55
|
-
delete(path: string): Promise<void>;
|
|
56
|
-
/**
|
|
57
|
-
* Lists every path that starts with `prefix`. Returns an empty array when
|
|
58
|
-
* no matches exist. The return order is implementation-defined.
|
|
59
|
-
*
|
|
60
|
-
* Used by admin catalog tooling to enumerate configured servers without
|
|
61
|
-
* requiring an out-of-band registry.
|
|
62
|
-
*/
|
|
63
|
-
list(prefix: string): Promise<string[]>;
|
|
64
|
-
}
|
|
65
|
-
export interface RevvaultVaultOptions {
|
|
66
|
-
/** Path to the `revvault` binary. Defaults to `~/.local/bin/revvault`. */
|
|
67
|
-
binPath?: string;
|
|
68
|
-
/**
|
|
69
|
-
* Age identity path. Passed via `REVVAULT_IDENTITY` env var. Defaults to
|
|
70
|
-
* `~/.config/age/keys.txt`, matching revvault's own default.
|
|
71
|
-
*/
|
|
72
|
-
identityPath?: string;
|
|
73
|
-
/** Spawn timeout in ms. Defaults to 10_000. */
|
|
74
|
-
timeoutMs?: number;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Creates a {@link Vault} backed by the `revvault` CLI. Requires `revvault` to
|
|
78
|
-
* be installed on the host and the age identity to be readable.
|
|
79
|
-
*
|
|
80
|
-
* Production default for RevealUI deployments. In CI or test environments
|
|
81
|
-
* without revvault, prefer {@link createMemoryVault}.
|
|
82
|
-
*/
|
|
83
|
-
export declare function createRevvaultVault(options?: RevvaultVaultOptions): Vault;
|
|
84
|
-
export declare class RevvaultError extends Error {
|
|
85
|
-
constructor(message: string);
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Creates an in-memory {@link Vault} backed by a `Map`. Intended for tests and
|
|
89
|
-
* for short-lived processes where persistence is not required.
|
|
90
|
-
*
|
|
91
|
-
* An optional `seed` object prepopulates the map.
|
|
92
|
-
*/
|
|
93
|
-
export declare function createMemoryVault(seed?: Record<string, string>): Vault;
|
|
42
|
+
import { createMemoryVault, createRevvaultVault, RevvaultError, type RevvaultVaultOptions, type Vault } from '@revealui/setup/revvault';
|
|
43
|
+
export { createMemoryVault, createRevvaultVault, RevvaultError, type RevvaultVaultOptions, type Vault, };
|
|
94
44
|
/**
|
|
95
45
|
* Canonical revvault path layout for MCP OAuth credentials. Exported so admin
|
|
96
46
|
* tooling and audits can introspect the layout without reimplementing it.
|
package/dist/oauth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;
|
|
1
|
+
{"version":3,"file":"oauth.d.ts","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
|
package/dist/oauth.js
CHANGED
|
@@ -37,145 +37,8 @@
|
|
|
37
37
|
* rotation is transparent — the rotated refresh_token flows through
|
|
38
38
|
* `saveTokens` verbatim.
|
|
39
39
|
*/
|
|
40
|
-
import {
|
|
41
|
-
|
|
42
|
-
import { join } from 'node:path';
|
|
43
|
-
/**
|
|
44
|
-
* Creates a {@link Vault} backed by the `revvault` CLI. Requires `revvault` to
|
|
45
|
-
* be installed on the host and the age identity to be readable.
|
|
46
|
-
*
|
|
47
|
-
* Production default for RevealUI deployments. In CI or test environments
|
|
48
|
-
* without revvault, prefer {@link createMemoryVault}.
|
|
49
|
-
*/
|
|
50
|
-
export function createRevvaultVault(options = {}) {
|
|
51
|
-
const binPath = options.binPath ?? join(homedir(), '.local/bin/revvault');
|
|
52
|
-
const identityPath = options.identityPath ??
|
|
53
|
-
process.env.REVVAULT_IDENTITY ??
|
|
54
|
-
join(homedir(), '.config/age/keys.txt');
|
|
55
|
-
const timeoutMs = options.timeoutMs ?? 10_000;
|
|
56
|
-
const env = { ...process.env, REVVAULT_IDENTITY: identityPath };
|
|
57
|
-
const run = (args, stdin) => new Promise((resolve, reject) => {
|
|
58
|
-
const child = spawn(binPath, args, { env, timeout: timeoutMs });
|
|
59
|
-
let stdout = '';
|
|
60
|
-
let stderr = '';
|
|
61
|
-
child.stdout.setEncoding('utf8');
|
|
62
|
-
child.stderr.setEncoding('utf8');
|
|
63
|
-
child.stdout.on('data', (chunk) => {
|
|
64
|
-
stdout += chunk;
|
|
65
|
-
});
|
|
66
|
-
child.stderr.on('data', (chunk) => {
|
|
67
|
-
stderr += chunk;
|
|
68
|
-
});
|
|
69
|
-
child.on('error', reject);
|
|
70
|
-
child.on('close', (code) => {
|
|
71
|
-
resolve({ code, stdout, stderr });
|
|
72
|
-
});
|
|
73
|
-
if (stdin !== undefined) {
|
|
74
|
-
child.stdin.end(stdin);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
child.stdin.end();
|
|
78
|
-
}
|
|
79
|
-
});
|
|
80
|
-
return {
|
|
81
|
-
async get(path) {
|
|
82
|
-
assertSafePath(path);
|
|
83
|
-
const { code, stdout, stderr } = await run(['get', '--full', path]);
|
|
84
|
-
if (code !== 0) {
|
|
85
|
-
throw new RevvaultError(`revvault get exited ${code}: ${stderr.trim()}`);
|
|
86
|
-
}
|
|
87
|
-
if (stdout.length === 0 && /not found/i.test(stderr)) {
|
|
88
|
-
return undefined;
|
|
89
|
-
}
|
|
90
|
-
if (stdout.length === 0) {
|
|
91
|
-
throw new RevvaultError(`revvault get returned empty output: ${stderr.trim()}`);
|
|
92
|
-
}
|
|
93
|
-
return stdout.endsWith('\n') ? stdout.slice(0, -1) : stdout;
|
|
94
|
-
},
|
|
95
|
-
async set(path, value) {
|
|
96
|
-
assertSafePath(path);
|
|
97
|
-
const { code, stderr } = await run(['set', '--force', path], value);
|
|
98
|
-
if (code !== 0) {
|
|
99
|
-
throw new RevvaultError(`revvault set exited ${code}: ${stderr.trim()}`);
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
async delete(path) {
|
|
103
|
-
assertSafePath(path);
|
|
104
|
-
const { code, stderr } = await run(['delete', '--force', path]);
|
|
105
|
-
if (code !== 0 && !/not found/i.test(stderr)) {
|
|
106
|
-
throw new RevvaultError(`revvault delete exited ${code}: ${stderr.trim()}`);
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
async list(prefix) {
|
|
110
|
-
assertSafePrefix(prefix);
|
|
111
|
-
const { code, stdout, stderr } = await run(['list', prefix]);
|
|
112
|
-
if (code !== 0) {
|
|
113
|
-
throw new RevvaultError(`revvault list exited ${code}: ${stderr.trim()}`);
|
|
114
|
-
}
|
|
115
|
-
// `revvault list` emits one path per line. Empty / informational output
|
|
116
|
-
// (e.g. `No secrets found.`) returns an empty array.
|
|
117
|
-
return stdout
|
|
118
|
-
.split('\n')
|
|
119
|
-
.map((line) => line.trim())
|
|
120
|
-
.filter((line) => line.length > 0 && line.startsWith(prefix));
|
|
121
|
-
},
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
/** Reject shell-metacharacter and traversal patterns in vault paths. */
|
|
125
|
-
function assertSafePath(path) {
|
|
126
|
-
if (!/^[A-Za-z0-9/_\-.]+$/.test(path)) {
|
|
127
|
-
throw new RevvaultError(`Vault path contains disallowed characters: ${path}`);
|
|
128
|
-
}
|
|
129
|
-
if (path.includes('..') || path.startsWith('/') || path.endsWith('/')) {
|
|
130
|
-
throw new RevvaultError(`Vault path is not well-formed: ${path}`);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
/** Same rules as {@link assertSafePath} but allows the trailing slash of a prefix. */
|
|
134
|
-
function assertSafePrefix(prefix) {
|
|
135
|
-
if (!/^[A-Za-z0-9/_\-.]+$/.test(prefix)) {
|
|
136
|
-
throw new RevvaultError(`Vault prefix contains disallowed characters: ${prefix}`);
|
|
137
|
-
}
|
|
138
|
-
if (prefix.includes('..') || prefix.startsWith('/')) {
|
|
139
|
-
throw new RevvaultError(`Vault prefix is not well-formed: ${prefix}`);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
export class RevvaultError extends Error {
|
|
143
|
-
constructor(message) {
|
|
144
|
-
super(message);
|
|
145
|
-
this.name = 'RevvaultError';
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
// ---------------------------------------------------------------------------
|
|
149
|
-
// In-memory vault (tests / ephemeral flows)
|
|
150
|
-
// ---------------------------------------------------------------------------
|
|
151
|
-
/**
|
|
152
|
-
* Creates an in-memory {@link Vault} backed by a `Map`. Intended for tests and
|
|
153
|
-
* for short-lived processes where persistence is not required.
|
|
154
|
-
*
|
|
155
|
-
* An optional `seed` object prepopulates the map.
|
|
156
|
-
*/
|
|
157
|
-
export function createMemoryVault(seed) {
|
|
158
|
-
const store = new Map(seed ? Object.entries(seed) : undefined);
|
|
159
|
-
return {
|
|
160
|
-
async get(path) {
|
|
161
|
-
return store.get(path);
|
|
162
|
-
},
|
|
163
|
-
async set(path, value) {
|
|
164
|
-
store.set(path, value);
|
|
165
|
-
},
|
|
166
|
-
async delete(path) {
|
|
167
|
-
store.delete(path);
|
|
168
|
-
},
|
|
169
|
-
async list(prefix) {
|
|
170
|
-
const out = [];
|
|
171
|
-
for (const key of store.keys()) {
|
|
172
|
-
if (key.startsWith(prefix))
|
|
173
|
-
out.push(key);
|
|
174
|
-
}
|
|
175
|
-
return out;
|
|
176
|
-
},
|
|
177
|
-
};
|
|
178
|
-
}
|
|
40
|
+
import { createMemoryVault, createRevvaultVault, RevvaultError, } from '@revealui/setup/revvault';
|
|
41
|
+
export { createMemoryVault, createRevvaultVault, RevvaultError, };
|
|
179
42
|
/** Build the {@link McpOAuthPaths} for a given `(tenant, server)` pair. */
|
|
180
43
|
export function mcpOAuthPaths(tenant, server) {
|
|
181
44
|
const prefix = `mcp/${tenant}/${server}`;
|
package/dist/oauth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;
|
|
1
|
+
{"version":3,"file":"oauth.js","sourceRoot":"","sources":["../src/oauth.ts"],"names":[],"mappings":"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"}
|