ftown 0.19.51 → 0.19.53

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 (129) hide show
  1. package/claude-mod/hooks/register.js +6 -5
  2. package/dist/attention-store.d.ts +8 -0
  3. package/dist/attention-store.js +30 -0
  4. package/dist/attention-store.js.map +1 -1
  5. package/dist/bridge-auth.d.ts +1 -0
  6. package/dist/bridge-auth.js +2 -2
  7. package/dist/bridge-auth.js.map +1 -1
  8. package/dist/browser-access.js +8 -1
  9. package/dist/browser-access.js.map +1 -1
  10. package/dist/centrifugo-client.d.ts +11 -1
  11. package/dist/centrifugo-client.js +71 -69
  12. package/dist/centrifugo-client.js.map +1 -1
  13. package/dist/cli-client.d.ts +6 -0
  14. package/dist/cli-client.js +43 -18
  15. package/dist/cli-client.js.map +1 -1
  16. package/dist/command-rpc.d.ts +7 -2
  17. package/dist/command-rpc.js +62 -4
  18. package/dist/command-rpc.js.map +1 -1
  19. package/dist/direct-transport/loopback-server.d.ts +5 -1
  20. package/dist/direct-transport/loopback-server.js +19 -6
  21. package/dist/direct-transport/loopback-server.js.map +1 -1
  22. package/dist/direct-transport/peer-manager.d.ts +4 -0
  23. package/dist/direct-transport/peer-manager.js +16 -2
  24. package/dist/direct-transport/peer-manager.js.map +1 -1
  25. package/dist/ftown-cli.js +4 -1
  26. package/dist/ftown-cli.js.map +1 -1
  27. package/dist/index.js +54 -36
  28. package/dist/index.js.map +1 -1
  29. package/dist/local-api-server.d.ts +12 -0
  30. package/dist/local-api-server.js +190 -44
  31. package/dist/local-api-server.js.map +1 -1
  32. package/dist/local-pair-cli.d.ts +2 -3
  33. package/dist/local-pair-cli.js +12 -53
  34. package/dist/local-pair-cli.js.map +1 -1
  35. package/dist/mcp/fleet.d.ts +11 -9
  36. package/dist/mcp/fleet.js +61 -44
  37. package/dist/mcp/fleet.js.map +1 -1
  38. package/dist/mcp/http.d.ts +10 -9
  39. package/dist/mcp/http.js +133 -8
  40. package/dist/mcp/http.js.map +1 -1
  41. package/dist/mcp/legacy-relay.d.ts +2 -2
  42. package/dist/mcp/legacy-relay.js +4 -43
  43. package/dist/mcp/legacy-relay.js.map +1 -1
  44. package/dist/mcp/mcp-key-store.d.ts +52 -0
  45. package/dist/mcp/mcp-key-store.js +206 -0
  46. package/dist/mcp/mcp-key-store.js.map +1 -0
  47. package/dist/mcp/oauth.d.ts +5 -1
  48. package/dist/mcp/oauth.js +113 -39
  49. package/dist/mcp/oauth.js.map +1 -1
  50. package/dist/mcp/relay-handler.d.ts +2 -1
  51. package/dist/mcp/relay-handler.js +5 -40
  52. package/dist/mcp/relay-handler.js.map +1 -1
  53. package/dist/mcp/relay.d.ts +4 -4
  54. package/dist/mcp/relay.js +35 -85
  55. package/dist/mcp/relay.js.map +1 -1
  56. package/dist/mcp/secure-client.d.ts +23 -0
  57. package/dist/mcp/secure-client.js +124 -0
  58. package/dist/mcp/secure-client.js.map +1 -0
  59. package/dist/mcp/security-events.d.ts +65 -0
  60. package/dist/mcp/security-events.js +210 -0
  61. package/dist/mcp/security-events.js.map +1 -0
  62. package/dist/mcp/server.d.ts +1 -0
  63. package/dist/mcp/server.js +2 -2
  64. package/dist/mcp/server.js.map +1 -1
  65. package/dist/mcp/test-support.d.ts +32 -0
  66. package/dist/mcp/test-support.js +120 -0
  67. package/dist/mcp/test-support.js.map +1 -0
  68. package/dist/mcp-cli.js +56 -36
  69. package/dist/mcp-cli.js.map +1 -1
  70. package/dist/pairing-client.d.ts +1 -0
  71. package/dist/pairing-client.js +2 -2
  72. package/dist/pairing-client.js.map +1 -1
  73. package/dist/push-notifier.js +3 -1
  74. package/dist/push-notifier.js.map +1 -1
  75. package/dist/security/bridge/audit.d.ts +37 -0
  76. package/dist/security/bridge/audit.js +185 -0
  77. package/dist/security/bridge/audit.js.map +1 -0
  78. package/dist/security/bridge/direct.d.ts +22 -0
  79. package/dist/security/bridge/direct.js +72 -0
  80. package/dist/security/bridge/direct.js.map +1 -0
  81. package/dist/security/bridge/errors.d.ts +7 -0
  82. package/dist/security/bridge/errors.js +12 -0
  83. package/dist/security/bridge/errors.js.map +1 -0
  84. package/dist/security/bridge/execute.d.ts +3 -0
  85. package/dist/security/bridge/execute.js +37 -0
  86. package/dist/security/bridge/execute.js.map +1 -0
  87. package/dist/security/bridge/identity.d.ts +5 -0
  88. package/dist/security/bridge/identity.js +42 -0
  89. package/dist/security/bridge/identity.js.map +1 -0
  90. package/dist/security/bridge/local-client.d.ts +4 -0
  91. package/dist/security/bridge/local-client.js +43 -0
  92. package/dist/security/bridge/local-client.js.map +1 -0
  93. package/dist/security/bridge/metadata.d.ts +99 -0
  94. package/dist/security/bridge/metadata.js +23 -0
  95. package/dist/security/bridge/metadata.js.map +1 -0
  96. package/dist/security/bridge/native-wake.d.ts +16 -0
  97. package/dist/security/bridge/native-wake.js +15 -0
  98. package/dist/security/bridge/native-wake.js.map +1 -0
  99. package/dist/security/bridge/permissions.d.ts +11 -0
  100. package/dist/security/bridge/permissions.js +97 -0
  101. package/dist/security/bridge/permissions.js.map +1 -0
  102. package/dist/security/bridge/policy.d.ts +35 -0
  103. package/dist/security/bridge/policy.js +263 -0
  104. package/dist/security/bridge/policy.js.map +1 -0
  105. package/dist/security/bridge/security.d.ts +50 -0
  106. package/dist/security/bridge/security.js +298 -0
  107. package/dist/security/bridge/security.js.map +1 -0
  108. package/dist/security/bridge/snapshot.d.ts +14 -0
  109. package/dist/security/bridge/snapshot.js +77 -0
  110. package/dist/security/bridge/snapshot.js.map +1 -0
  111. package/dist/security/crypto.d.ts +17 -0
  112. package/dist/security/crypto.js +280 -0
  113. package/dist/security/crypto.js.map +1 -0
  114. package/dist/security/protocol.d.ts +389 -0
  115. package/dist/security/protocol.js +9 -0
  116. package/dist/security/protocol.js.map +1 -0
  117. package/dist/security-cli.d.ts +3 -0
  118. package/dist/security-cli.js +62 -0
  119. package/dist/security-cli.js.map +1 -0
  120. package/dist/solo/solo-server.js +24 -2
  121. package/dist/solo/solo-server.js.map +1 -1
  122. package/dist/types.d.ts +9 -2
  123. package/dist/wire-types.d.ts +3 -0
  124. package/dist/wire-types.js.map +1 -1
  125. package/hooks/notify.sh +1 -1
  126. package/muse-plugin/lib/ftown-hook.sh +6 -22
  127. package/opencode-plugin/ftown.js +33 -5
  128. package/package.json +4 -2
  129. package/pi-extension/ftown.js +33 -5
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/mcp/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/mcp/http.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import { type BridgeRequest } from "./fleet.js";
2
- /** Fixed loopback client for pre-MCP workers. Only base64 enters shell syntax. */
3
- export declare function legacyRelayCommand(machineId: string, input: BridgeRequest, deadline: number): string;
2
+ /** Kept only to fail explicitly for callers of the removed plaintext helper. */
3
+ export declare function legacyRelayCommand(_machineId: string, _request: BridgeRequest, _deadline: number): never;
@@ -1,45 +1,6 @@
1
- import { FleetError, requestSchema } from "./fleet.js";
2
- /** Fixed loopback client for pre-MCP workers. Only base64 enters shell syntax. */
3
- export function legacyRelayCommand(machineId, input, deadline) {
4
- const request = requestSchema.parse(input);
5
- const source = `
6
- const fs = require('node:fs'), os = require('node:os'), path = require('node:path');
7
- const { machineId, request, deadline } = ${JSON.stringify({ machineId, request, deadline })};
8
- const mutation = request.method !== 'GET';
9
- let sent = false;
10
- const fail = (code, message, outcomeUnknown = false, status) => {
11
- process.stdout.write(JSON.stringify({ error: { code, message, outcomeUnknown, ...(status ? {status} : {}) } }));
12
- };
13
- (async () => {
14
- if (Date.now() >= deadline) return fail('timeout', 'Request expired before execution');
15
- const credentials = JSON.parse(fs.readFileSync(path.join(os.homedir(), '.ftown', 'bridge.json'), 'utf8'));
16
- if (credentials.bridgeId !== machineId || !Number.isInteger(credentials.port) || credentials.port < 1 || credentials.port > 65535 || typeof credentials.token !== 'string' || !credentials.token)
17
- return fail('configuration_error', 'Local bridge identity does not match the requested computer');
18
- const origin = 'http://127.0.0.1:' + credentials.port;
19
- const url = new URL(request.path, origin);
20
- if (url.origin !== origin) return fail('configuration_error', 'Invalid local bridge origin');
21
- if (Date.now() >= deadline) return fail('timeout', 'Request expired before execution');
22
- sent = true;
23
- const response = await fetch(url, {
24
- method: request.method, redirect: 'error',
25
- headers: { authorization: 'Bearer ' + credentials.token, 'content-type': 'application/json' },
26
- body: request.body === undefined ? undefined : JSON.stringify(request.body),
27
- signal: AbortSignal.timeout(Math.max(1, deadline - Date.now())),
28
- });
29
- const chunks = []; let size = 0;
30
- for await (const chunk of response.body) {
31
- size += chunk.length;
32
- if (size > 400000) return fail('response_too_large', 'Request a smaller history or session page', mutation);
33
- chunks.push(chunk);
34
- }
35
- if (!response.ok) return fail('bridge_error', 'Local bridge rejected the request (HTTP ' + response.status + ')', mutation && response.status >= 500, response.status);
36
- const data = JSON.parse(Buffer.concat(chunks).toString('utf8'));
37
- process.stdout.write(JSON.stringify({ data }));
38
- })().catch(() => fail('bridge_error', 'Legacy bridge loopback request failed', sent && mutation));
39
- `;
40
- const encoded = Buffer.from(source).toString("base64");
41
- if (encoded.length > 100000)
42
- throw new FleetError("request_too_large", "Request is too large for this older bridge; upgrade the bridge or shorten the input");
43
- return `node -e "eval(Buffer.from('${encoded}','base64').toString())"`;
1
+ import { FleetError } from "./fleet.js";
2
+ /** Kept only to fail explicitly for callers of the removed plaintext helper. */
3
+ export function legacyRelayCommand(_machineId, _request, _deadline) {
4
+ throw new FleetError("upgrade_required", "Plaintext legacy MCP execution is no longer supported; approve an encrypted endpoint");
44
5
  }
45
6
  //# sourceMappingURL=legacy-relay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"legacy-relay.js","sourceRoot":"","sources":["../../src/mcp/legacy-relay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,aAAa,EAAsB,MAAM,YAAY,CAAC;AAE3E,kFAAkF;AAClF,MAAM,UAAU,kBAAkB,CAAC,SAAiB,EAAE,KAAoB,EAAE,QAAgB;IAC1F,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3C,MAAM,MAAM,GAAG;;2CAE0B,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgC1F,CAAC;IACA,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM;QACzB,MAAM,IAAI,UAAU,CAAC,mBAAmB,EAAE,qFAAqF,CAAC,CAAC;IACnI,OAAO,8BAA8B,OAAO,0BAA0B,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"legacy-relay.js","sourceRoot":"","sources":["../../src/mcp/legacy-relay.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,YAAY,CAAC;AAE5D,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,QAAuB,EAAE,SAAiB;IAC/F,MAAM,IAAI,UAAU,CAAC,kBAAkB,EAAE,sFAAsF,CAAC,CAAC;AACnI,CAAC"}
@@ -0,0 +1,52 @@
1
+ import type { Pool } from 'pg';
2
+ import { importEndpoint } from '../security/crypto.js';
3
+ import type { ApprovedBridge, McpConsentSecurity, McpKeyEncryptionConfig } from '../security/protocol.js';
4
+ export interface McpGrantIdentity {
5
+ ownerId: string;
6
+ requestId: string;
7
+ grantId: string;
8
+ identity: Awaited<ReturnType<typeof importEndpoint>>;
9
+ bridges: ApprovedBridge[];
10
+ permissions: ('read' | 'control')[];
11
+ pendingExpiresAt: string;
12
+ activeExpiresAt: string;
13
+ state: 'pending' | 'approved' | 'active' | 'revoked';
14
+ }
15
+ export interface McpIdentityStore {
16
+ ensurePendingIdentity(requestId: string, ownerId: string, permissions: ('read' | 'control')[]): Promise<McpConsentSecurity>;
17
+ loadByRequest(ownerId: string, requestId: string): Promise<McpGrantIdentity>;
18
+ loadGrantIdentity(ownerId: string, grantId: string): Promise<McpGrantIdentity>;
19
+ approve(ownerId: string, requestId: string, bridges: ApprovedBridge[]): Promise<McpGrantIdentity>;
20
+ markActive(ownerId: string, requestId: string): Promise<void>;
21
+ revoke(ownerId: string, requestId: string): Promise<void>;
22
+ }
23
+ /** All columns used as context are authenticated, including lookup and expiry metadata. */
24
+ export interface EncryptedMcpIdentity {
25
+ version: 1;
26
+ ownerId: string;
27
+ requestId: string;
28
+ grantId: string;
29
+ endpointId: string;
30
+ expiresAt: string;
31
+ keyId: string;
32
+ nonce: string;
33
+ ciphertext: string;
34
+ }
35
+ export declare function encryptMcpIdentity(identity: McpGrantIdentity, privateKey: JsonWebKey, config: McpKeyEncryptionConfig): Promise<EncryptedMcpIdentity>;
36
+ export declare function decryptMcpIdentity(row: EncryptedMcpIdentity, config: McpKeyEncryptionConfig): Promise<McpGrantIdentity>;
37
+ /** Uses the gateway's existing pool; no second connection-string/secret source. */
38
+ export declare class McpKeyStore implements McpIdentityStore {
39
+ readonly pool: Pool;
40
+ private readonly now;
41
+ private readonly config;
42
+ constructor(pool: Pool, config: McpKeyEncryptionConfig, now?: () => number);
43
+ checkSchema(): Promise<void>;
44
+ ensurePendingIdentity(requestId: string, ownerId: string, permissions: ('read' | 'control')[]): Promise<McpConsentSecurity>;
45
+ loadByRequest(ownerId: string, requestId: string): Promise<McpGrantIdentity>;
46
+ loadGrantIdentity(ownerId: string, grantId: string): Promise<McpGrantIdentity>;
47
+ /** Caller must verify exact bridge Auth receipts before supplying these pins. */
48
+ approve(ownerId: string, requestId: string, bridges: ApprovedBridge[]): Promise<McpGrantIdentity>;
49
+ markActive(ownerId: string, requestId: string): Promise<void>;
50
+ revoke(ownerId: string, requestId: string): Promise<void>;
51
+ private update;
52
+ }
@@ -0,0 +1,206 @@
1
+ import { randomBytes } from 'node:crypto';
2
+ import { z } from 'zod';
3
+ import { generateEndpoint, importEndpoint, importPublicKey, SecurityError } from '../security/crypto.js';
4
+ const MAX_RECORD_BYTES = 65_536;
5
+ const MAX_ACTIVE_MS = 30 * 24 * 60 * 60 * 1000;
6
+ const endpointSchema = z.object({ version: z.literal(1), id: z.string().regex(/^[A-Za-z0-9_-]{43}$/), ownerId: z.string().uuid(), kind: z.enum(['bridge', 'browser', 'mcp', 'local-cli']), publicKey: z.string().regex(/^[A-Za-z0-9_-]{87}$/) }).strict();
7
+ const pinSchema = z.object({ bridgeId: z.string().regex(/^[A-Za-z0-9_-]{1,200}$/), endpoint: endpointSchema, permissions: z.array(z.enum(['read', 'control'])).min(1).max(2) }).strict();
8
+ const keySchema = z.object({ kty: z.literal('EC'), crv: z.literal('P-256'), x: z.string().regex(/^[A-Za-z0-9_-]{43}$/), y: z.string().regex(/^[A-Za-z0-9_-]{43}$/), d: z.string().regex(/^[A-Za-z0-9_-]{43}$/) }).strict();
9
+ const storedSchema = z.object({
10
+ version: z.literal(1), ownerId: z.string().uuid(), requestId: z.string().regex(/^[A-Za-z0-9_-]{43}$/), grantId: z.string().regex(/^[A-Za-z0-9_-]{43}$/),
11
+ endpoint: endpointSchema, privateKey: keySchema, bridges: z.array(pinSchema).max(64),
12
+ permissions: z.array(z.enum(['read', 'control'])).min(1).max(2),
13
+ pendingExpiresAt: z.string().datetime(), activeExpiresAt: z.string().datetime(), state: z.enum(['pending', 'approved', 'active', 'revoked']),
14
+ }).strict();
15
+ const safeUnavailable = () => new SecurityError('key_unavailable', 'MCP encryption identity is unavailable');
16
+ const b64 = (value) => Buffer.from(value).toString('base64url');
17
+ function from64(value, min, max = min) {
18
+ if (typeof value !== 'string' || !/^[A-Za-z0-9_-]+$/.test(value) || value.length > Math.ceil(max * 4 / 3))
19
+ throw safeUnavailable();
20
+ const decoded = Uint8Array.from(Buffer.from(value, 'base64url'));
21
+ if (decoded.length < min || decoded.length > max || b64(decoded) !== value)
22
+ throw safeUnavailable();
23
+ return decoded;
24
+ }
25
+ function context(row) {
26
+ return new TextEncoder().encode(JSON.stringify(['ftown/mcp-private-key/v1', row.version, row.ownerId, row.requestId, row.grantId, row.endpointId, row.expiresAt, row.keyId]));
27
+ }
28
+ function configKey(config) {
29
+ if (!/^[A-Za-z0-9_-]{1,64}$/.test(config.keyId) || config.key.byteLength !== 32)
30
+ throw new SecurityError('security_setup_required', 'MCP encryption wrapping key and key ID must be provisioned');
31
+ return crypto.subtle.importKey('raw', Uint8Array.from(config.key), 'AES-GCM', false, ['encrypt', 'decrypt']);
32
+ }
33
+ async function validatePins(pins, ownerId) {
34
+ if (pins.length > 64 || new Set(pins.map(pin => pin.bridgeId)).size !== pins.length || new Set(pins.map(pin => pin.endpoint.id)).size !== pins.length)
35
+ throw safeUnavailable();
36
+ for (const pin of pins) {
37
+ if (pin.endpoint.ownerId !== ownerId || pin.endpoint.kind !== 'bridge' || !pin.permissions.includes('read') || pin.permissions.some(permission => permission === 'admin'))
38
+ throw safeUnavailable();
39
+ await importPublicKey(pin.endpoint.publicKey);
40
+ if (b64(new Uint8Array(await crypto.subtle.digest('SHA-256', from64(pin.endpoint.publicKey, 65)))) !== pin.endpoint.id)
41
+ throw safeUnavailable();
42
+ }
43
+ }
44
+ function stored(identity, privateKey) {
45
+ const parsed = storedSchema.safeParse({
46
+ version: 1, ownerId: identity.ownerId, requestId: identity.requestId, grantId: identity.grantId,
47
+ endpoint: identity.identity.endpoint, privateKey: { kty: privateKey.kty, crv: privateKey.crv, x: privateKey.x, y: privateKey.y, d: privateKey.d },
48
+ bridges: identity.bridges, permissions: identity.permissions, pendingExpiresAt: identity.pendingExpiresAt,
49
+ activeExpiresAt: identity.activeExpiresAt, state: identity.state,
50
+ });
51
+ if (!parsed.success)
52
+ throw safeUnavailable();
53
+ return parsed.data;
54
+ }
55
+ export async function encryptMcpIdentity(identity, privateKey, config) {
56
+ const value = stored(identity, privateKey);
57
+ await importEndpoint(value.endpoint, value.privateKey);
58
+ await validatePins(value.bridges, value.ownerId);
59
+ if (value.endpoint.kind !== 'mcp' || value.endpoint.ownerId !== value.ownerId)
60
+ throw safeUnavailable();
61
+ const plaintext = new TextEncoder().encode(JSON.stringify(value));
62
+ if (plaintext.byteLength > MAX_RECORD_BYTES)
63
+ throw safeUnavailable();
64
+ const row = { version: 1, ownerId: value.ownerId, requestId: value.requestId, grantId: value.grantId, endpointId: value.endpoint.id, expiresAt: value.activeExpiresAt, keyId: config.keyId, nonce: b64(randomBytes(12)), ciphertext: '' };
65
+ const key = await configKey(config);
66
+ row.ciphertext = b64(new Uint8Array(await crypto.subtle.encrypt({ name: 'AES-GCM', iv: from64(row.nonce, 12), additionalData: context(row), tagLength: 128 }, key, plaintext)));
67
+ return row;
68
+ }
69
+ export async function decryptMcpIdentity(row, config) {
70
+ const key = await configKey(config);
71
+ try {
72
+ if (row.version !== 1 || row.keyId !== config.keyId || Object.keys(row).length !== 9)
73
+ throw safeUnavailable();
74
+ const plaintext = await crypto.subtle.decrypt({ name: 'AES-GCM', iv: from64(row.nonce, 12), additionalData: context(row), tagLength: 128 }, key, from64(row.ciphertext, 16, MAX_RECORD_BYTES + 16));
75
+ const parsed = storedSchema.safeParse(JSON.parse(new TextDecoder('utf-8', { fatal: true }).decode(plaintext)));
76
+ if (!parsed.success)
77
+ throw safeUnavailable();
78
+ const value = parsed.data;
79
+ if (value.ownerId !== row.ownerId || value.requestId !== row.requestId || value.grantId !== row.grantId || value.endpoint.id !== row.endpointId || value.activeExpiresAt !== row.expiresAt || value.endpoint.ownerId !== value.ownerId || value.endpoint.kind !== 'mcp')
80
+ throw safeUnavailable();
81
+ await validatePins(value.bridges, value.ownerId);
82
+ return { ownerId: value.ownerId, requestId: value.requestId, grantId: value.grantId, identity: await importEndpoint(value.endpoint, value.privateKey), bridges: value.bridges, permissions: value.permissions, pendingExpiresAt: value.pendingExpiresAt, activeExpiresAt: value.activeExpiresAt, state: value.state };
83
+ }
84
+ catch {
85
+ throw safeUnavailable();
86
+ }
87
+ }
88
+ function dbEnvelope(row) {
89
+ if (row.envelope.ownerId !== row.owner_id || row.envelope.requestId !== row.request_id || row.envelope.grantId !== row.grant_id
90
+ || row.envelope.endpointId !== row.endpoint_id || row.envelope.expiresAt !== row.expires_at.toISOString())
91
+ throw safeUnavailable();
92
+ return row.envelope;
93
+ }
94
+ function securityDetails(identity) {
95
+ return { requestId: identity.requestId, grantId: identity.grantId, endpoint: identity.identity.endpoint, expiresAt: identity.pendingExpiresAt, activeExpiresAt: identity.activeExpiresAt, permissions: identity.permissions };
96
+ }
97
+ /** Uses the gateway's existing pool; no second connection-string/secret source. */
98
+ export class McpKeyStore {
99
+ pool;
100
+ now;
101
+ config;
102
+ constructor(pool, config, now = Date.now) {
103
+ this.pool = pool;
104
+ this.now = now;
105
+ if (!/^[A-Za-z0-9_-]{1,64}$/.test(config.keyId) || config.key.byteLength !== 32)
106
+ throw new SecurityError('security_setup_required', 'MCP encryption wrapping key and key ID must be provisioned');
107
+ this.config = { keyId: config.keyId, key: Uint8Array.from(config.key) };
108
+ }
109
+ async checkSchema() {
110
+ try {
111
+ await this.pool.query('SELECT owner_id,request_id,grant_id,endpoint_id,envelope,expires_at FROM mcp_endpoint_identities LIMIT 0');
112
+ }
113
+ catch {
114
+ throw new SecurityError('security_setup_required', 'MCP encryption database migration is required');
115
+ }
116
+ }
117
+ async ensurePendingIdentity(requestId, ownerId, permissions) {
118
+ const existing = await this.pool.query('SELECT * FROM mcp_endpoint_identities WHERE request_id=$1', [requestId]);
119
+ if (existing.rows[0]) {
120
+ const current = await decryptMcpIdentity(dbEnvelope(existing.rows[0]), this.config);
121
+ if (current.ownerId !== ownerId || current.state !== 'pending' || Date.parse(current.pendingExpiresAt) <= this.now() || current.permissions.join(' ') !== permissions.join(' '))
122
+ throw safeUnavailable();
123
+ return securityDetails(current);
124
+ }
125
+ const identity = await generateEndpoint(ownerId, 'mcp', true);
126
+ const privateKey = await crypto.subtle.exportKey('jwk', identity.keyPair.privateKey);
127
+ const record = {
128
+ ownerId, requestId, grantId: b64(randomBytes(32)), identity, bridges: [], permissions,
129
+ pendingExpiresAt: new Date(this.now() + 300_000).toISOString(), activeExpiresAt: new Date(this.now() + MAX_ACTIVE_MS).toISOString(), state: 'pending',
130
+ };
131
+ const envelope = await encryptMcpIdentity(record, privateKey, this.config);
132
+ await this.pool.query('INSERT INTO mcp_endpoint_identities(owner_id,request_id,grant_id,endpoint_id,envelope,expires_at) VALUES($1,$2,$3,$4,$5,$6) ON CONFLICT(request_id) DO NOTHING', [ownerId, requestId, record.grantId, identity.endpoint.id, JSON.stringify(envelope), record.activeExpiresAt]);
133
+ // Reload the winner, including under concurrent consent inspections.
134
+ return this.ensurePendingIdentity(requestId, ownerId, permissions);
135
+ }
136
+ async loadByRequest(ownerId, requestId) {
137
+ const result = await this.pool.query('SELECT * FROM mcp_endpoint_identities WHERE owner_id=$1 AND request_id=$2', [ownerId, requestId]);
138
+ if (!result.rows[0])
139
+ throw safeUnavailable();
140
+ return decryptMcpIdentity(dbEnvelope(result.rows[0]), this.config);
141
+ }
142
+ async loadGrantIdentity(ownerId, grantId) {
143
+ const result = await this.pool.query('SELECT * FROM mcp_endpoint_identities WHERE owner_id=$1 AND grant_id=$2 AND expires_at>NOW()', [ownerId, grantId]);
144
+ if (!result.rows[0])
145
+ throw safeUnavailable();
146
+ const identity = await decryptMcpIdentity(dbEnvelope(result.rows[0]), this.config);
147
+ if ((identity.state !== 'approved' && identity.state !== 'active') || Date.parse(identity.activeExpiresAt) <= this.now())
148
+ throw safeUnavailable();
149
+ if (identity.state === 'approved' && Date.parse(identity.pendingExpiresAt) <= this.now())
150
+ throw safeUnavailable();
151
+ return identity;
152
+ }
153
+ /** Caller must verify exact bridge Auth receipts before supplying these pins. */
154
+ async approve(ownerId, requestId, bridges) {
155
+ if (!bridges.length)
156
+ throw safeUnavailable();
157
+ return this.update(ownerId, requestId, current => {
158
+ if (current.state !== 'pending' || Date.parse(current.pendingExpiresAt) <= this.now()
159
+ || bridges.some(bridge => bridge.permissions.some(permission => !current.permissions.includes(permission === 'admin' ? 'control' : permission)) || bridge.permissions.includes('admin')))
160
+ throw safeUnavailable();
161
+ return { ...current, state: 'approved', bridges };
162
+ });
163
+ }
164
+ async markActive(ownerId, requestId) {
165
+ await this.update(ownerId, requestId, current => {
166
+ if (current.state === 'active' && Date.parse(current.activeExpiresAt) > this.now())
167
+ return current;
168
+ if (current.state !== 'approved' || Date.parse(current.pendingExpiresAt) <= this.now())
169
+ throw safeUnavailable();
170
+ return { ...current, state: 'active' };
171
+ });
172
+ }
173
+ async revoke(ownerId, requestId) {
174
+ await this.update(ownerId, requestId, current => ({ ...current, state: 'revoked' }));
175
+ }
176
+ async update(ownerId, requestId, change) {
177
+ const client = await this.pool.connect();
178
+ try {
179
+ await client.query('BEGIN');
180
+ const result = await client.query('SELECT * FROM mcp_endpoint_identities WHERE owner_id=$1 AND request_id=$2 FOR UPDATE', [ownerId, requestId]);
181
+ if (!result.rows[0])
182
+ throw safeUnavailable();
183
+ const envelope = dbEnvelope(result.rows[0]);
184
+ const current = await decryptMcpIdentity(envelope, this.config);
185
+ const updated = change(current);
186
+ // Private keys are non-extractable after loading. Recover original plaintext only inside the wrapping boundary.
187
+ const key = await configKey(this.config);
188
+ const plain = await crypto.subtle.decrypt({ name: 'AES-GCM', iv: from64(envelope.nonce, 12), additionalData: context(envelope), tagLength: 128 }, key, from64(envelope.ciphertext, 16, MAX_RECORD_BYTES + 16));
189
+ const original = storedSchema.parse(JSON.parse(new TextDecoder().decode(plain)));
190
+ const encrypted = await encryptMcpIdentity(updated, original.privateKey, this.config);
191
+ await client.query('UPDATE mcp_endpoint_identities SET envelope=$1 WHERE owner_id=$2 AND request_id=$3', [JSON.stringify(encrypted), ownerId, requestId]);
192
+ await client.query('COMMIT');
193
+ return updated;
194
+ }
195
+ catch (error) {
196
+ await client.query('ROLLBACK');
197
+ if (error instanceof SecurityError)
198
+ throw error;
199
+ throw safeUnavailable();
200
+ }
201
+ finally {
202
+ client.release();
203
+ }
204
+ }
205
+ }
206
+ //# sourceMappingURL=mcp-key-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-key-store.js","sourceRoot":"","sources":["../../src/mcp/mcp-key-store.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import type { OAuthServerProvider, AuthorizationParams } from "@modelcontextprot
3
3
  import type { OAuthClientInformationFull, OAuthTokenRevocationRequest } from "@modelcontextprotocol/sdk/shared/auth.js";
4
4
  import type { AuthInfo } from "@modelcontextprotocol/sdk/server/auth/types.js";
5
5
  import type { OAuthStore } from "./oauth-store.js";
6
+ import type { McpIdentityStore } from './mcp-key-store.js';
6
7
  export declare const MCP_SCOPES: string[];
7
8
  export interface OAuthOptions {
8
9
  publicUrl: string;
@@ -16,8 +17,9 @@ export interface OAuthOptions {
16
17
  export declare class FtownOAuthProvider implements OAuthServerProvider {
17
18
  readonly store: OAuthStore;
18
19
  readonly options: OAuthOptions;
20
+ readonly keys?: McpIdentityStore | undefined;
19
21
  readonly resource: string;
20
- constructor(store: OAuthStore, options: OAuthOptions);
22
+ constructor(store: OAuthStore, options: OAuthOptions, keys?: McpIdentityStore | undefined);
21
23
  private currentMachines;
22
24
  readonly clientsStore: {
23
25
  getClient: (id: string) => Promise<{
@@ -52,8 +54,10 @@ export declare class FtownOAuthProvider implements OAuthServerProvider {
52
54
  redirectUri: string;
53
55
  scopes: string[];
54
56
  machines: string[];
57
+ security: import("../security/protocol.js").McpConsentSecurity;
55
58
  }>;
56
59
  approve(assertion: string, deny?: boolean): Promise<string>;
60
+ private approvalPins;
57
61
  challengeForAuthorizationCode(client: OAuthClientInformationFull, code: string): Promise<string>;
58
62
  private tokens;
59
63
  exchangeAuthorizationCode(client: OAuthClientInformationFull, code: string, _verifier?: string, redirectUri?: string, resource?: URL): Promise<{