@tuskydp/cli 0.1.2 → 0.2.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/bin/tusky-dev.sh +5 -0
- package/dist/src/commands/account.d.ts.map +1 -1
- package/dist/src/commands/account.js +32 -2
- package/dist/src/commands/account.js.map +1 -1
- package/dist/src/commands/download.d.ts.map +1 -1
- package/dist/src/commands/download.js +27 -7
- package/dist/src/commands/download.js.map +1 -1
- package/dist/src/commands/upload.d.ts.map +1 -1
- package/dist/src/commands/upload.js +23 -2
- package/dist/src/commands/upload.js.map +1 -1
- package/dist/src/commands/vault.d.ts.map +1 -1
- package/dist/src/commands/vault.js +145 -7
- package/dist/src/commands/vault.js.map +1 -1
- package/dist/src/config.d.ts +5 -0
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +7 -0
- package/dist/src/config.js.map +1 -1
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/context.d.ts +11 -2
- package/dist/src/mcp/context.d.ts.map +1 -1
- package/dist/src/mcp/context.js +3 -2
- package/dist/src/mcp/context.js.map +1 -1
- package/dist/src/mcp/server.d.ts.map +1 -1
- package/dist/src/mcp/server.js +13 -0
- package/dist/src/mcp/server.js.map +1 -1
- package/dist/src/mcp/tools/files.d.ts +2 -1
- package/dist/src/mcp/tools/files.d.ts.map +1 -1
- package/dist/src/mcp/tools/files.js +49 -12
- package/dist/src/mcp/tools/files.js.map +1 -1
- package/dist/src/mcp/tools/sharedVaults.d.ts +7 -0
- package/dist/src/mcp/tools/sharedVaults.d.ts.map +1 -0
- package/dist/src/mcp/tools/sharedVaults.js +90 -0
- package/dist/src/mcp/tools/sharedVaults.js.map +1 -0
- package/dist/src/mcp/tools/vaults.js +1 -1
- package/dist/src/mcp/tools/vaults.js.map +1 -1
- package/dist/src/seal.d.ts +58 -0
- package/dist/src/seal.d.ts.map +1 -0
- package/dist/src/seal.js +207 -0
- package/dist/src/seal.js.map +1 -0
- package/package.json +16 -13
- package/src/__tests__/seal.test.ts +357 -0
- package/src/commands/account.ts +35 -2
- package/src/commands/download.ts +34 -13
- package/src/commands/upload.ts +25 -2
- package/src/commands/vault.ts +158 -7
- package/src/config.ts +8 -0
- package/src/index.ts +3 -1
- package/src/mcp/context.ts +13 -2
- package/src/mcp/server.ts +13 -0
- package/src/mcp/tools/files.ts +61 -19
- package/src/mcp/tools/sharedVaults.ts +122 -0
- package/src/mcp/tools/vaults.ts +2 -2
- package/src/seal.ts +266 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared context for MCP tool handlers.
|
|
3
3
|
*
|
|
4
|
-
* Holds the authenticated SDK client
|
|
5
|
-
*
|
|
4
|
+
* Holds the authenticated SDK client, the unlocked master key for
|
|
5
|
+
* private vault encryption, and the Sui keypair for shared vault
|
|
6
|
+
* SEAL encryption/decryption.
|
|
6
7
|
*/
|
|
7
8
|
import type { TuskyClient } from '@tuskydp/sdk';
|
|
9
|
+
import type { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
|
|
8
10
|
export interface McpContext {
|
|
9
11
|
/** Authenticated Tusky SDK client. */
|
|
10
12
|
sdk: TuskyClient;
|
|
@@ -15,5 +17,12 @@ export interface McpContext {
|
|
|
15
17
|
getMasterKey(): Buffer | null;
|
|
16
18
|
/** True when the master key is available for encrypt/decrypt operations. */
|
|
17
19
|
isEncryptionReady(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Returns the Sui Ed25519 keypair for SEAL operations, or null if
|
|
22
|
+
* TUSKYDP_SUI_PRIVATE_KEY was not provided.
|
|
23
|
+
*/
|
|
24
|
+
getSuiKeypair(): Ed25519Keypair | null;
|
|
25
|
+
/** True when the Sui keypair is available for shared vault operations. */
|
|
26
|
+
isSealReady(): boolean;
|
|
18
27
|
}
|
|
19
28
|
//# sourceMappingURL=context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/mcp/context.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/mcp/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,GAAG,EAAE,WAAW,CAAC;IAEjB;;;OAGG;IACH,YAAY,IAAI,MAAM,GAAG,IAAI,CAAC;IAE9B,4EAA4E;IAC5E,iBAAiB,IAAI,OAAO,CAAC;IAE7B;;;OAGG;IACH,aAAa,IAAI,cAAc,GAAG,IAAI,CAAC;IAEvC,0EAA0E;IAC1E,WAAW,IAAI,OAAO,CAAC;CACxB"}
|
package/dist/src/mcp/context.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared context for MCP tool handlers.
|
|
3
3
|
*
|
|
4
|
-
* Holds the authenticated SDK client
|
|
5
|
-
*
|
|
4
|
+
* Holds the authenticated SDK client, the unlocked master key for
|
|
5
|
+
* private vault encryption, and the Sui keypair for shared vault
|
|
6
|
+
* SEAL encryption/decryption.
|
|
6
7
|
*/
|
|
7
8
|
export {};
|
|
8
9
|
//# sourceMappingURL=context.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/mcp/context.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/mcp/context.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8EH,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+D7E"}
|
package/dist/src/mcp/server.js
CHANGED
|
@@ -10,12 +10,14 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
10
10
|
import { TuskyClient, TuskyError } from '@tuskydp/sdk';
|
|
11
11
|
import { deriveMasterKey, verifyPassphrase, unwrapMasterKey, } from '../crypto.js';
|
|
12
12
|
import { loadMasterKey } from '../lib/keyring.js';
|
|
13
|
+
import { getSuiKeypair } from '../seal.js';
|
|
13
14
|
// Tool registrars
|
|
14
15
|
import { registerAccountTools } from './tools/account.js';
|
|
15
16
|
import { registerVaultTools } from './tools/vaults.js';
|
|
16
17
|
import { registerFolderTools } from './tools/folders.js';
|
|
17
18
|
import { registerFileTools } from './tools/files.js';
|
|
18
19
|
import { registerTrashTools } from './tools/trash.js';
|
|
20
|
+
import { registerSharedVaultTools } from './tools/sharedVaults.js';
|
|
19
21
|
// ---------------------------------------------------------------------------
|
|
20
22
|
// Encryption bootstrap
|
|
21
23
|
// ---------------------------------------------------------------------------
|
|
@@ -88,11 +90,21 @@ export async function startMcpServer(options) {
|
|
|
88
90
|
console.error('[tusky-mcp] Encryption not unlocked — private vault encrypt/decrypt unavailable.');
|
|
89
91
|
console.error('[tusky-mcp] Set TUSKYDP_PASSWORD env var or run `tusky encryption unlock` first.');
|
|
90
92
|
}
|
|
93
|
+
// Load Sui keypair for SEAL shared vault operations (best effort)
|
|
94
|
+
const suiKeypair = getSuiKeypair();
|
|
95
|
+
if (suiKeypair) {
|
|
96
|
+
console.error(`[tusky-mcp] Sui wallet loaded (${suiKeypair.toSuiAddress()}) — shared vault operations available.`);
|
|
97
|
+
}
|
|
98
|
+
else {
|
|
99
|
+
console.error('[tusky-mcp] No TUSKYDP_SUI_PRIVATE_KEY — shared vault encrypt/decrypt unavailable.');
|
|
100
|
+
}
|
|
91
101
|
// Build context
|
|
92
102
|
const ctx = {
|
|
93
103
|
sdk,
|
|
94
104
|
getMasterKey: () => masterKey,
|
|
95
105
|
isEncryptionReady: () => masterKey !== null,
|
|
106
|
+
getSuiKeypair: () => suiKeypair,
|
|
107
|
+
isSealReady: () => suiKeypair !== null,
|
|
96
108
|
};
|
|
97
109
|
// Create MCP server
|
|
98
110
|
const server = new McpServer({
|
|
@@ -105,6 +117,7 @@ export async function startMcpServer(options) {
|
|
|
105
117
|
registerFolderTools(server, ctx);
|
|
106
118
|
registerFileTools(server, ctx);
|
|
107
119
|
registerTrashTools(server, ctx);
|
|
120
|
+
registerSharedVaultTools(server, ctx);
|
|
108
121
|
// Connect via stdio transport
|
|
109
122
|
const transport = new StdioServerTransport();
|
|
110
123
|
await server.connect(transport);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mcp/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* MCP tools — File operations
|
|
3
3
|
*
|
|
4
4
|
* Handles upload with client-side encryption for private vaults,
|
|
5
|
-
*
|
|
5
|
+
* SEAL encryption for shared vaults, download with decryption and
|
|
6
|
+
* rehydration polling for cold files.
|
|
6
7
|
*/
|
|
7
8
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
8
9
|
import type { McpContext } from '../context.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/files.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/files.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAwMhD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,QA+PnE"}
|
|
@@ -2,13 +2,16 @@
|
|
|
2
2
|
* MCP tools — File operations
|
|
3
3
|
*
|
|
4
4
|
* Handles upload with client-side encryption for private vaults,
|
|
5
|
-
*
|
|
5
|
+
* SEAL encryption for shared vaults, download with decryption and
|
|
6
|
+
* rehydration polling for cold files.
|
|
6
7
|
*/
|
|
7
8
|
import { z } from 'zod';
|
|
9
|
+
import { randomUUID } from 'crypto';
|
|
8
10
|
import { readFileSync, writeFileSync, statSync } from 'fs';
|
|
9
11
|
import { basename, resolve } from 'path';
|
|
10
12
|
import { lookup } from 'mime-types';
|
|
11
13
|
import { encryptBuffer, decryptBuffer } from '../../crypto.js';
|
|
14
|
+
import { isSealConfigured, sealEncrypt, sealDecrypt } from '../../seal.js';
|
|
12
15
|
import { wrapToolError } from './helpers.js';
|
|
13
16
|
// ---------------------------------------------------------------------------
|
|
14
17
|
// Shared helpers
|
|
@@ -67,14 +70,30 @@ async function fetchAndDecryptFile(fileId, ctx) {
|
|
|
67
70
|
}
|
|
68
71
|
const arrayBuf = await response.arrayBuffer();
|
|
69
72
|
let fileBuffer = Buffer.from(arrayBuf);
|
|
70
|
-
// Decrypt if needed
|
|
73
|
+
// Decrypt if needed — dispatch on encryption type
|
|
71
74
|
if (encryption?.encrypted) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
75
|
+
if ('type' in encryption && encryption.type === 'seal') {
|
|
76
|
+
// SEAL-encrypted (shared vault)
|
|
77
|
+
const keypair = ctx.getSuiKeypair();
|
|
78
|
+
if (!keypair) {
|
|
79
|
+
throw new Error('Sui wallet key required to decrypt shared vault files. ' +
|
|
80
|
+
'Set the TUSKYDP_SUI_PRIVATE_KEY environment variable in your MCP server config.');
|
|
81
|
+
}
|
|
82
|
+
const fileInfo = await ctx.sdk.files.get(fileId);
|
|
83
|
+
const vault = await ctx.sdk.vaults.get(fileInfo.vaultId);
|
|
84
|
+
const decrypted = await sealDecrypt(new Uint8Array(fileBuffer), vault, keypair);
|
|
85
|
+
fileBuffer = Buffer.from(decrypted);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
// Passphrase-encrypted (private vault)
|
|
89
|
+
const masterKey = ctx.getMasterKey();
|
|
90
|
+
if (!masterKey) {
|
|
91
|
+
throw new Error('Encryption passphrase required to decrypt this file. ' +
|
|
92
|
+
'Set the TUSKYDP_PASSWORD environment variable in your MCP server config.');
|
|
93
|
+
}
|
|
94
|
+
const enc = encryption;
|
|
95
|
+
fileBuffer = decryptBuffer(fileBuffer, enc.wrappedKey, enc.iv, masterKey, enc.plaintextChecksumSha256 ?? undefined);
|
|
76
96
|
}
|
|
77
|
-
fileBuffer = decryptBuffer(fileBuffer, encryption.wrappedKey, encryption.iv, masterKey, encryption.plaintextChecksumSha256 ?? undefined);
|
|
78
97
|
}
|
|
79
98
|
return { fileBuffer, encryption };
|
|
80
99
|
}
|
|
@@ -85,6 +104,7 @@ async function fetchAndDecryptFile(fileId, ctx) {
|
|
|
85
104
|
async function encryptAndUpload(fileBuffer, fileName, mimeType, vaultId, folderId, ctx) {
|
|
86
105
|
const vault = await ctx.sdk.vaults.get(vaultId);
|
|
87
106
|
const isPrivate = vault.visibility === 'private';
|
|
107
|
+
const isShared = vault.visibility === 'shared' && isSealConfigured(vault);
|
|
88
108
|
let uploadBody;
|
|
89
109
|
let encryptionMeta = {};
|
|
90
110
|
if (isPrivate) {
|
|
@@ -102,6 +122,21 @@ async function encryptAndUpload(fileBuffer, fileName, mimeType, vaultId, folderI
|
|
|
102
122
|
plaintextChecksumSha256: plaintextChecksum,
|
|
103
123
|
};
|
|
104
124
|
}
|
|
125
|
+
else if (isShared) {
|
|
126
|
+
const keypair = ctx.getSuiKeypair();
|
|
127
|
+
if (!keypair) {
|
|
128
|
+
throw new Error('Sui wallet key required for shared vault uploads (SEAL encryption). ' +
|
|
129
|
+
'Set the TUSKYDP_SUI_PRIVATE_KEY environment variable in your MCP server config.');
|
|
130
|
+
}
|
|
131
|
+
const fileNonce = randomUUID();
|
|
132
|
+
const sealResult = await sealEncrypt(new Uint8Array(fileBuffer), vault, fileNonce);
|
|
133
|
+
uploadBody = Buffer.from(sealResult.encryptedData);
|
|
134
|
+
encryptionMeta = {
|
|
135
|
+
sealIdentity: sealResult.sealIdentity,
|
|
136
|
+
sealEncryptedObject: sealResult.sealEncryptedObject,
|
|
137
|
+
plaintextSizeBytes: fileBuffer.length,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
105
140
|
else {
|
|
106
141
|
uploadBody = fileBuffer;
|
|
107
142
|
}
|
|
@@ -126,7 +161,7 @@ async function encryptAndUpload(fileBuffer, fileName, mimeType, vaultId, folderI
|
|
|
126
161
|
}
|
|
127
162
|
// Confirm upload
|
|
128
163
|
const file = await ctx.sdk.files.confirmUpload(fileId);
|
|
129
|
-
return { file, isPrivate, uploadedSizeBytes: uploadBody.length };
|
|
164
|
+
return { file, isPrivate, isShared, uploadedSizeBytes: uploadBody.length };
|
|
130
165
|
}
|
|
131
166
|
// ---------------------------------------------------------------------------
|
|
132
167
|
// Tool registration
|
|
@@ -154,12 +189,13 @@ export function registerFileTools(server, ctx) {
|
|
|
154
189
|
const fileBuffer = readFileSync(resolvedPath);
|
|
155
190
|
const fileName = basename(resolvedPath);
|
|
156
191
|
const mimeType = lookup(resolvedPath) || 'application/octet-stream';
|
|
157
|
-
const { file, isPrivate, uploadedSizeBytes } = await encryptAndUpload(fileBuffer, fileName, mimeType, vaultId, folderId, ctx);
|
|
192
|
+
const { file, isPrivate, isShared, uploadedSizeBytes } = await encryptAndUpload(fileBuffer, fileName, mimeType, vaultId, folderId, ctx);
|
|
158
193
|
return {
|
|
159
194
|
content: [{ type: 'text', text: JSON.stringify({
|
|
160
195
|
...file,
|
|
161
196
|
localPath: resolvedPath,
|
|
162
|
-
encrypted: isPrivate,
|
|
197
|
+
encrypted: isPrivate || isShared,
|
|
198
|
+
encryptionType: isPrivate ? 'passphrase' : isShared ? 'seal' : 'none',
|
|
163
199
|
uploadedSizeBytes,
|
|
164
200
|
}, null, 2) }],
|
|
165
201
|
};
|
|
@@ -182,11 +218,12 @@ export function registerFileTools(server, ctx) {
|
|
|
182
218
|
? Buffer.from(content, 'base64')
|
|
183
219
|
: Buffer.from(content, 'utf-8');
|
|
184
220
|
const mimeType = lookup(name) || 'application/octet-stream';
|
|
185
|
-
const { file, isPrivate, uploadedSizeBytes } = await encryptAndUpload(fileBuffer, name, mimeType, vaultId, folderId, ctx);
|
|
221
|
+
const { file, isPrivate, isShared, uploadedSizeBytes } = await encryptAndUpload(fileBuffer, name, mimeType, vaultId, folderId, ctx);
|
|
186
222
|
return {
|
|
187
223
|
content: [{ type: 'text', text: JSON.stringify({
|
|
188
224
|
...file,
|
|
189
|
-
encrypted: isPrivate,
|
|
225
|
+
encrypted: isPrivate || isShared,
|
|
226
|
+
encryptionType: isPrivate ? 'passphrase' : isShared ? 'seal' : 'none',
|
|
190
227
|
uploadedSizeBytes,
|
|
191
228
|
}, null, 2) }],
|
|
192
229
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../../src/mcp/tools/files.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../../../src/mcp/tools/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tools — Shared vault member management
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { McpContext } from '../context.js';
|
|
6
|
+
export declare function registerSharedVaultTools(server: McpServer, ctx: McpContext): void;
|
|
7
|
+
//# sourceMappingURL=sharedVaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharedVaults.d.ts","sourceRoot":"","sources":["../../../../src/mcp/tools/sharedVaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,QAgH1E"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP tools — Shared vault member management
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { wrapToolError } from './helpers.js';
|
|
6
|
+
export function registerSharedVaultTools(server, ctx) {
|
|
7
|
+
// ── Grant access to a shared vault ─────────────────────────────────
|
|
8
|
+
server.tool('tusky_vault_grant_access', 'Grant another user or agent access to a shared vault by their Sui address.', {
|
|
9
|
+
vaultId: z.string().describe('Shared vault ID'),
|
|
10
|
+
suiAddress: z.string().describe('Sui address of the user/agent to grant access'),
|
|
11
|
+
}, async ({ vaultId, suiAddress }) => {
|
|
12
|
+
try {
|
|
13
|
+
const result = await ctx.sdk.sharedVaults.addMember(vaultId, { suiAddress });
|
|
14
|
+
return {
|
|
15
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
return wrapToolError(err);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
// ── Revoke access from a shared vault ──────────────────────────────
|
|
23
|
+
server.tool('tusky_vault_revoke_access', 'Revoke access from a shared vault member.', {
|
|
24
|
+
vaultId: z.string().describe('Shared vault ID'),
|
|
25
|
+
memberId: z.string().describe('Member ID to revoke'),
|
|
26
|
+
}, async ({ vaultId, memberId }) => {
|
|
27
|
+
try {
|
|
28
|
+
await ctx.sdk.sharedVaults.removeMember(vaultId, memberId);
|
|
29
|
+
return {
|
|
30
|
+
content: [{ type: 'text', text: `Access revoked for member ${memberId}.` }],
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
catch (err) {
|
|
34
|
+
return wrapToolError(err);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
// ── List members of a shared vault ─────────────────────────────────
|
|
38
|
+
server.tool('tusky_vault_list_members', 'List all members of a shared vault.', {
|
|
39
|
+
vaultId: z.string().describe('Shared vault ID'),
|
|
40
|
+
}, async ({ vaultId }) => {
|
|
41
|
+
try {
|
|
42
|
+
const result = await ctx.sdk.sharedVaults.listMembers(vaultId);
|
|
43
|
+
return {
|
|
44
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
return wrapToolError(err);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
// ── List shared vaults the user is a member of ─────────────────────
|
|
52
|
+
server.tool('tusky_vault_list_shared', 'List all shared vaults that the authenticated user is a member of (not owner).', {}, async () => {
|
|
53
|
+
try {
|
|
54
|
+
const result = await ctx.sdk.sharedVaults.list();
|
|
55
|
+
return {
|
|
56
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
return wrapToolError(err);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
// ── Link Sui address to account ────────────────────────────────────
|
|
64
|
+
server.tool('tusky_account_link_sui', 'Link a Sui wallet address to the authenticated account. Required for shared vault access.', {
|
|
65
|
+
suiAddress: z.string().describe('Sui wallet address (0x followed by 64 hex characters)'),
|
|
66
|
+
}, async ({ suiAddress }) => {
|
|
67
|
+
try {
|
|
68
|
+
await ctx.sdk.sharedVaults.linkSuiAddress(suiAddress);
|
|
69
|
+
return {
|
|
70
|
+
content: [{ type: 'text', text: `Sui address ${suiAddress} linked to account.` }],
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
return wrapToolError(err);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
// ── Unlink Sui address from account ─────────────────────────────────
|
|
78
|
+
server.tool('tusky_account_unlink_sui', 'Unlink the Sui wallet address from the authenticated account.', {}, async () => {
|
|
79
|
+
try {
|
|
80
|
+
await ctx.sdk.sharedVaults.unlinkSuiAddress();
|
|
81
|
+
return {
|
|
82
|
+
content: [{ type: 'text', text: 'Sui address unlinked from account.' }],
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
return wrapToolError(err);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=sharedVaults.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sharedVaults.js","sourceRoot":"","sources":["../../../../src/mcp/tools/sharedVaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ export function registerVaultTools(server, ctx) {
|
|
|
8
8
|
server.tool('tusky_vault_create', 'Create a new storage vault. Visibility is immutable after creation.', {
|
|
9
9
|
name: z.string().describe('Vault name'),
|
|
10
10
|
description: z.string().optional().describe('Vault description'),
|
|
11
|
-
visibility: z.enum(['public', 'private']).optional().describe('Vault visibility. "private"
|
|
11
|
+
visibility: z.enum(['public', 'private', 'shared']).optional().describe('Vault visibility. "private" uses passphrase-based E2E encryption. "shared" uses SEAL protocol for multi-party access. Defaults to "private".'),
|
|
12
12
|
}, async ({ name, description, visibility }) => {
|
|
13
13
|
try {
|
|
14
14
|
const vault = await ctx.sdk.vaults.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vaults.js","sourceRoot":"","sources":["../../../../src/mcp/tools/vaults.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,UAAU,kBAAkB,CAAC,MAAiB,EAAE,GAAe;IACnE,wEAAwE;IACxE,MAAM,CAAC,IAAI,CACT,oBAAoB,EACpB,qEAAqE,EACrE;QACE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACvC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAChE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,
|
|
1
|
+
{"version":3,"file":"vaults.js","sourceRoot":"","sources":["../../../../src/mcp/tools/vaults.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SEAL encryption service for shared vaults (headless/CLI mode).
|
|
3
|
+
*
|
|
4
|
+
* Ported from packages/web/src/lib/seal.ts, adapted for headless use
|
|
5
|
+
* with an Ed25519 keypair instead of a browser wallet signer.
|
|
6
|
+
*
|
|
7
|
+
* Handles client-side encrypt/decrypt using the @mysten/seal SDK.
|
|
8
|
+
* - Encrypt: uses the vault's Whitelist object ID as the identity namespace
|
|
9
|
+
* - Decrypt: creates a SessionKey, signs with Ed25519 keypair, builds seal_approve PTB
|
|
10
|
+
*
|
|
11
|
+
* Requires TUSKYDP_SUI_PRIVATE_KEY env var for decrypt operations.
|
|
12
|
+
* Encrypt only requires a Sui RPC client (no signing needed).
|
|
13
|
+
*/
|
|
14
|
+
import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
|
|
15
|
+
import type { VaultResponse } from '@tuskydp/sdk';
|
|
16
|
+
/**
|
|
17
|
+
* Load the Sui keypair from TUSKYDP_SUI_PRIVATE_KEY env var.
|
|
18
|
+
* Returns null if the env var is not set.
|
|
19
|
+
* Cached after first call.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getSuiKeypair(): Ed25519Keypair | null;
|
|
22
|
+
/**
|
|
23
|
+
* Get the Sui address for the loaded keypair, or null.
|
|
24
|
+
*/
|
|
25
|
+
export declare function getSuiAddress(): string | null;
|
|
26
|
+
/**
|
|
27
|
+
* Build SEAL identity bytes for a file in a shared vault.
|
|
28
|
+
* Format: [whitelist_object_id_bytes][file_nonce_hex]
|
|
29
|
+
* Must match the web implementation in packages/web/src/lib/seal.ts.
|
|
30
|
+
*/
|
|
31
|
+
export declare function buildSealId(whitelistObjectId: string, fileNonce: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* Check if a vault is SEAL-configured (has the necessary on-chain objects).
|
|
34
|
+
*/
|
|
35
|
+
export declare function isSealConfigured(vault: VaultResponse): boolean;
|
|
36
|
+
export interface SealEncryptResult {
|
|
37
|
+
/** The encrypted data (BCS-encoded EncryptedObject) */
|
|
38
|
+
encryptedData: Uint8Array;
|
|
39
|
+
/** The SEAL identity used for encryption */
|
|
40
|
+
sealIdentity: string;
|
|
41
|
+
/** Base64-encoded serialized EncryptedObject metadata (for API storage) */
|
|
42
|
+
sealEncryptedObject: string;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Encrypt file data using SEAL for a shared vault.
|
|
46
|
+
*
|
|
47
|
+
* Does NOT require a Sui keypair — encryption is purely a client-side
|
|
48
|
+
* operation using the SEAL key servers and vault's allowlist identity.
|
|
49
|
+
*/
|
|
50
|
+
export declare function sealEncrypt(data: Uint8Array, vault: VaultResponse, fileNonce: string): Promise<SealEncryptResult>;
|
|
51
|
+
/**
|
|
52
|
+
* Decrypt SEAL-encrypted file data.
|
|
53
|
+
*
|
|
54
|
+
* Requires a Sui keypair (TUSKYDP_SUI_PRIVATE_KEY) to sign the SessionKey
|
|
55
|
+
* and authorize decryption through the SEAL key servers.
|
|
56
|
+
*/
|
|
57
|
+
export declare function sealDecrypt(encryptedData: Uint8Array, vault: VaultResponse, keypair: Ed25519Keypair): Promise<Uint8Array>;
|
|
58
|
+
//# sourceMappingURL=seal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"seal.d.ts","sourceRoot":"","sources":["../../src/seal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAK9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AA6BlD;;;;GAIG;AACH,wBAAgB,aAAa,IAAI,cAAc,GAAG,IAAI,CAcrD;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAG7C;AA4BD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAMhF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAO9D;AAMD,MAAM,WAAW,iBAAiB;IAChC,uDAAuD;IACvD,aAAa,EAAE,UAAU,CAAC;IAC1B,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,aAAa,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAwC5B;AAQD;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,aAAa,EAAE,UAAU,EACzB,KAAK,EAAE,aAAa,EACpB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,UAAU,CAAC,CAsDrB"}
|