@kawoou/kadoc-mcp 0.1.3 → 0.1.9
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 +1 -1
- package/dist/client/kadoc-client.d.ts +13 -12
- package/dist/client/kadoc-client.d.ts.map +1 -1
- package/dist/client/kadoc-client.js +114 -65
- package/dist/client/kadoc-client.js.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/tools/folders.d.ts.map +1 -1
- package/dist/tools/folders.js +13 -1
- package/dist/tools/folders.js.map +1 -1
- package/dist/tools/{documents.d.ts → json.d.ts} +3 -3
- package/dist/tools/json.d.ts.map +1 -0
- package/dist/tools/json.js +112 -0
- package/dist/tools/json.js.map +1 -0
- package/package.json +1 -1
- package/dist/tools/documents.d.ts.map +0 -1
- package/dist/tools/documents.js +0 -133
- package/dist/tools/documents.js.map +0 -1
package/README.md
CHANGED
|
@@ -121,7 +121,7 @@ curl -X POST http://localhost:3000/auth/register
|
|
|
121
121
|
| 도구 | 설명 |
|
|
122
122
|
|------|------|
|
|
123
123
|
| `create_folder` | 폴더 생성 (path) |
|
|
124
|
-
| `list_folders` | 폴더 목록 조회 (limit?) |
|
|
124
|
+
| `list_folders` | 폴더 목록 조회 (limit?, sort?, order?) |
|
|
125
125
|
| `delete_folder` | 폴더 및 하위 문서 삭제 (path) |
|
|
126
126
|
| `get_index_settings` | 인덱스 설정 조회 (path) |
|
|
127
127
|
| `set_index_settings` | 인덱스 설정 변경 (path, indexFields?) |
|
|
@@ -19,10 +19,12 @@ export declare class KadocClient {
|
|
|
19
19
|
/**
|
|
20
20
|
* Make an RPC request to the kadoc-server via POST /req
|
|
21
21
|
* All authenticated requests go through this single encrypted endpoint
|
|
22
|
+
* Automatically handles session expiration and retries
|
|
22
23
|
*/
|
|
23
24
|
private rpc;
|
|
24
25
|
/**
|
|
25
26
|
* Perform handshake with server to establish encrypted session
|
|
27
|
+
* Uses the same authKey to maintain user identity across sessions
|
|
26
28
|
*/
|
|
27
29
|
handshake(serverName?: string): Promise<void>;
|
|
28
30
|
/**
|
|
@@ -33,22 +35,19 @@ export declare class KadocClient {
|
|
|
33
35
|
* Check if session is established and valid
|
|
34
36
|
*/
|
|
35
37
|
hasSession(serverName?: string): boolean;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
title: string;
|
|
39
|
-
content: string;
|
|
40
|
-
metadata?: Record<string, unknown>;
|
|
38
|
+
readJson(path: string, options?: {
|
|
39
|
+
jsonPath?: string;
|
|
41
40
|
}): Promise<unknown>;
|
|
42
|
-
|
|
43
|
-
updateDocument(params: {
|
|
41
|
+
writeJson(params: {
|
|
44
42
|
path: string;
|
|
45
|
-
title
|
|
46
|
-
|
|
43
|
+
title: string;
|
|
44
|
+
data?: unknown;
|
|
45
|
+
jsonPath?: string;
|
|
47
46
|
metadata?: Record<string, unknown>;
|
|
48
47
|
}): Promise<unknown>;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
folder
|
|
48
|
+
deleteJson(path: string): Promise<unknown>;
|
|
49
|
+
listJson(params: {
|
|
50
|
+
folder: string;
|
|
52
51
|
cursor?: string;
|
|
53
52
|
limit?: number;
|
|
54
53
|
}): Promise<unknown>;
|
|
@@ -63,6 +62,8 @@ export declare class KadocClient {
|
|
|
63
62
|
listFolders(params: {
|
|
64
63
|
cursor?: string;
|
|
65
64
|
limit?: number;
|
|
65
|
+
sort?: 'path' | 'createdAt';
|
|
66
|
+
order?: 'asc' | 'desc';
|
|
66
67
|
}): Promise<unknown>;
|
|
67
68
|
deleteFolder(path: string): Promise<unknown>;
|
|
68
69
|
getIndexSettings(path: string): Promise<unknown>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kadoc-client.d.ts","sourceRoot":"","sources":["../../src/client/kadoc-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAmB,MAAM,cAAc,CAAC;AAYvD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAyBD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAuC;gBAE3C,MAAM,EAAE,MAAM;IAI1B
|
|
1
|
+
{"version":3,"file":"kadoc-client.d.ts","sourceRoot":"","sources":["../../src/client/kadoc-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAmB,MAAM,cAAc,CAAC;AAYvD,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;CAClB;AAyBD,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAuC;gBAE3C,MAAM,EAAE,MAAM;IAI1B;;;;OAIG;YACW,GAAG;IA8HjB;;;OAGG;IACG,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8CnD;;OAEG;IACG,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAepD;;OAEG;IACH,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO;IAQlC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAOtD,SAAS,CAAC,MAAM,EAAE;QACtB,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,OAAO,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC;IAUK,UAAU,CAAC,IAAI,EAAE,MAAM;IAIvB,QAAQ,CAAC,MAAM,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IASpE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE;IASjE,YAAY,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAIrC,WAAW,CAAC,MAAM,EAAE;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;QAC5B,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;KACxB;IASK,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB,gBAAgB,CAAC,IAAI,EAAE,MAAM;IAI7B,gBAAgB,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE;IAQjE,KAAK;IAIL,SAAS;IAIT,UAAU;CAGjB"}
|
|
@@ -10,6 +10,7 @@ export class KadocClient {
|
|
|
10
10
|
/**
|
|
11
11
|
* Make an RPC request to the kadoc-server via POST /req
|
|
12
12
|
* All authenticated requests go through this single encrypted endpoint
|
|
13
|
+
* Automatically handles session expiration and retries
|
|
13
14
|
*/
|
|
14
15
|
async rpc(method, params, serverName) {
|
|
15
16
|
const serverConfig = getServerConfig(this.config, serverName);
|
|
@@ -23,72 +24,119 @@ export class KadocClient {
|
|
|
23
24
|
throw new Error('Failed to establish session');
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
27
|
+
const makeRequest = async () => {
|
|
28
|
+
const url = `${serverConfig.url}/req`;
|
|
29
|
+
// Create RPC request payload
|
|
30
|
+
const rpcPayload = {
|
|
31
|
+
method,
|
|
32
|
+
params: params ?? {},
|
|
33
|
+
};
|
|
34
|
+
// Encrypt request body
|
|
35
|
+
const encrypted = encrypt(rpcPayload, session.sharedSecret);
|
|
36
|
+
const nonce = generateNonce();
|
|
37
|
+
const requestBody = { encrypted, nonce };
|
|
38
|
+
const response = await request(url, {
|
|
39
|
+
method: 'POST',
|
|
40
|
+
headers: {
|
|
41
|
+
'Content-Type': 'application/json',
|
|
42
|
+
'X-Session-Id': session.sessionId,
|
|
43
|
+
},
|
|
44
|
+
body: JSON.stringify(requestBody),
|
|
45
|
+
});
|
|
46
|
+
// Handle 204 No Content responses (e.g., delete operations)
|
|
47
|
+
if (response.statusCode === 204) {
|
|
48
|
+
return {};
|
|
49
|
+
}
|
|
50
|
+
// Read response text first to handle empty body
|
|
51
|
+
const responseText = await response.body.text();
|
|
52
|
+
let responseBody;
|
|
53
|
+
try {
|
|
54
|
+
responseBody = responseText ? JSON.parse(responseText) : {};
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
// If response is not JSON, return empty object for success, throw for error
|
|
58
|
+
if (response.statusCode >= 400) {
|
|
59
|
+
throw new Error(`HTTP ${response.statusCode}: ${responseText}`);
|
|
60
|
+
}
|
|
61
|
+
return {};
|
|
62
|
+
}
|
|
56
63
|
if (response.statusCode >= 400) {
|
|
57
|
-
|
|
64
|
+
const error = responseBody;
|
|
65
|
+
const errorCode = error.error?.code || 'ERROR';
|
|
66
|
+
const errorMessage = error.error?.message || 'Unknown error';
|
|
67
|
+
// Handle SESSION_EXPIRED error specifically
|
|
68
|
+
if (errorCode === 'SESSION_EXPIRED') {
|
|
69
|
+
// Clear the expired session
|
|
70
|
+
this.sessions.delete(serverKey);
|
|
71
|
+
// Throw specific error for retry logic
|
|
72
|
+
throw new Error(`[SESSION_EXPIRED] ${errorMessage}`);
|
|
73
|
+
}
|
|
74
|
+
throw new Error(`[${errorCode}] ${errorMessage}`);
|
|
58
75
|
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
76
|
+
// Decrypt response if encrypted
|
|
77
|
+
if (responseBody.encrypted) {
|
|
78
|
+
const encryptedResponse = responseBody;
|
|
79
|
+
const decrypted = decryptJson(encryptedResponse.encrypted, session.sharedSecret);
|
|
80
|
+
if (!decrypted) {
|
|
81
|
+
throw new Error('Failed to decrypt response');
|
|
82
|
+
}
|
|
83
|
+
return decrypted.data;
|
|
84
|
+
}
|
|
85
|
+
// Handle unencrypted response (shouldn't happen for /req, but handle gracefully)
|
|
86
|
+
const rpcResponse = responseBody;
|
|
87
|
+
return rpcResponse.data;
|
|
88
|
+
};
|
|
89
|
+
// Try the request, retry once if session expired
|
|
90
|
+
try {
|
|
91
|
+
return await makeRequest();
|
|
64
92
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
93
|
+
catch (error) {
|
|
94
|
+
// If session expired, try to re-establish and retry once
|
|
95
|
+
if (error instanceof Error && error.message.includes('[SESSION_EXPIRED]')) {
|
|
96
|
+
console.error(`[kadoc-mcp] SESSION_EXPIRED detected for ${method}, re-establishing session...`);
|
|
97
|
+
try {
|
|
98
|
+
// Re-establish session
|
|
99
|
+
await this.handshake(serverName);
|
|
100
|
+
session = this.sessions.get(serverKey);
|
|
101
|
+
if (!session) {
|
|
102
|
+
throw new Error('Failed to re-establish session after expiration');
|
|
103
|
+
}
|
|
104
|
+
console.error(`[kadoc-mcp] Session re-established, retrying ${method}...`);
|
|
105
|
+
// Retry the request with new session
|
|
106
|
+
const result = await makeRequest();
|
|
107
|
+
console.error(`[kadoc-mcp] ${method} succeeded after retry`);
|
|
108
|
+
return result;
|
|
109
|
+
}
|
|
110
|
+
catch (retryError) {
|
|
111
|
+
console.error(`[kadoc-mcp] Retry failed for ${method}:`, retryError);
|
|
112
|
+
// Don't re-throw SESSION_EXPIRED, throw a more user-friendly error
|
|
113
|
+
if (retryError instanceof Error && retryError.message.includes('Failed to re-establish')) {
|
|
114
|
+
throw retryError;
|
|
115
|
+
}
|
|
116
|
+
// For any other error during retry, wrap it
|
|
117
|
+
throw new Error(`Failed to recover from session expiration: ${retryError instanceof Error ? retryError.message : String(retryError)}`);
|
|
118
|
+
}
|
|
71
119
|
}
|
|
72
|
-
|
|
120
|
+
// Re-throw other errors
|
|
121
|
+
throw error;
|
|
73
122
|
}
|
|
74
|
-
// Handle unencrypted response (shouldn't happen for /req, but handle gracefully)
|
|
75
|
-
const rpcResponse = responseBody;
|
|
76
|
-
return rpcResponse.data;
|
|
77
123
|
}
|
|
78
124
|
/**
|
|
79
125
|
* Perform handshake with server to establish encrypted session
|
|
126
|
+
* Uses the same authKey to maintain user identity across sessions
|
|
80
127
|
*/
|
|
81
128
|
async handshake(serverName) {
|
|
82
129
|
const serverConfig = getServerConfig(this.config, serverName);
|
|
83
130
|
const serverKey = serverName ?? this.config.defaultServer;
|
|
84
|
-
|
|
131
|
+
console.error(`[kadoc-mcp] Initiating handshake with ${serverConfig.url}...`);
|
|
132
|
+
// Generate ephemeral key pair for this session
|
|
85
133
|
const clientKeyPair = generateKeyPair();
|
|
86
134
|
const url = `${serverConfig.url}/auth/handshake`;
|
|
87
135
|
const response = await request(url, {
|
|
88
136
|
method: 'POST',
|
|
89
137
|
headers: {
|
|
90
138
|
'Content-Type': 'application/json',
|
|
91
|
-
'X-Auth-Key': serverConfig.auth.authKey,
|
|
139
|
+
'X-Auth-Key': serverConfig.auth.authKey, // User identity (persistent)
|
|
92
140
|
},
|
|
93
141
|
body: JSON.stringify({
|
|
94
142
|
clientPublicKey: encodePublicKey(clientKeyPair.publicKey),
|
|
@@ -97,6 +145,7 @@ export class KadocClient {
|
|
|
97
145
|
const responseBody = await response.body.json();
|
|
98
146
|
if (response.statusCode >= 400) {
|
|
99
147
|
const error = responseBody;
|
|
148
|
+
console.error(`[kadoc-mcp] Handshake failed: [${error.error.code}] ${error.error.message}`);
|
|
100
149
|
throw new Error(`[${error.error.code}] ${error.error.message}`);
|
|
101
150
|
}
|
|
102
151
|
const handshakeResponse = responseBody;
|
|
@@ -109,6 +158,8 @@ export class KadocClient {
|
|
|
109
158
|
sharedSecret,
|
|
110
159
|
expiresAt: handshakeResponse.data.expiresAt,
|
|
111
160
|
});
|
|
161
|
+
const expiresInMinutes = Math.round((handshakeResponse.data.expiresAt - Date.now()) / 60000);
|
|
162
|
+
console.error(`[kadoc-mcp] Handshake successful, session: ${handshakeResponse.data.sessionId}, expires in ${expiresInMinutes} minutes`);
|
|
112
163
|
}
|
|
113
164
|
/**
|
|
114
165
|
* End encrypted session
|
|
@@ -134,31 +185,27 @@ export class KadocClient {
|
|
|
134
185
|
const session = this.sessions.get(serverKey);
|
|
135
186
|
return !!session && Date.now() < session.expiresAt;
|
|
136
187
|
}
|
|
137
|
-
//
|
|
138
|
-
async
|
|
139
|
-
return this.rpc('
|
|
140
|
-
path
|
|
141
|
-
|
|
142
|
-
content: params.content,
|
|
143
|
-
metadata: params.metadata,
|
|
188
|
+
// JSON operations
|
|
189
|
+
async readJson(path, options) {
|
|
190
|
+
return this.rpc('json.read', {
|
|
191
|
+
path,
|
|
192
|
+
jsonPath: options?.jsonPath,
|
|
144
193
|
});
|
|
145
194
|
}
|
|
146
|
-
async
|
|
147
|
-
return this.rpc('
|
|
148
|
-
}
|
|
149
|
-
async updateDocument(params) {
|
|
150
|
-
return this.rpc('documents.update', {
|
|
195
|
+
async writeJson(params) {
|
|
196
|
+
return this.rpc('json.write', {
|
|
151
197
|
path: params.path,
|
|
152
198
|
title: params.title,
|
|
153
|
-
|
|
199
|
+
data: params.data,
|
|
200
|
+
jsonPath: params.jsonPath,
|
|
154
201
|
metadata: params.metadata,
|
|
155
202
|
});
|
|
156
203
|
}
|
|
157
|
-
async
|
|
158
|
-
return this.rpc('
|
|
204
|
+
async deleteJson(path) {
|
|
205
|
+
return this.rpc('json.delete', { path });
|
|
159
206
|
}
|
|
160
|
-
async
|
|
161
|
-
return this.rpc('
|
|
207
|
+
async listJson(params) {
|
|
208
|
+
return this.rpc('json.list', {
|
|
162
209
|
folder: params.folder,
|
|
163
210
|
cursor: params.cursor,
|
|
164
211
|
limit: params.limit,
|
|
@@ -180,6 +227,8 @@ export class KadocClient {
|
|
|
180
227
|
return this.rpc('folders.list', {
|
|
181
228
|
cursor: params.cursor,
|
|
182
229
|
limit: params.limit,
|
|
230
|
+
sort: params.sort,
|
|
231
|
+
order: params.order,
|
|
183
232
|
});
|
|
184
233
|
}
|
|
185
234
|
async deleteFolder(path) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kadoc-client.js","sourceRoot":"","sources":["../../src/client/kadoc-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAU,eAAe,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,OAAO,EACP,WAAW,EACX,aAAa,GAEd,MAAM,uBAAuB,CAAC;AAwC/B,MAAM,OAAO,WAAW;IACd,MAAM,CAAS;IACf,QAAQ,GAA6B,IAAI,GAAG,EAAE,CAAC,CAAC,wBAAwB;IAEhF,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"kadoc-client.js","sourceRoot":"","sources":["../../src/client/kadoc-client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
|
|
|
4
4
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from '@modelcontextprotocol/sdk/types.js';
|
|
5
5
|
import { loadConfigAsync } from './config.js';
|
|
6
6
|
import { KadocClient } from './client/kadoc-client.js';
|
|
7
|
-
import {
|
|
7
|
+
import { jsonTools, handleJsonTool } from './tools/json.js';
|
|
8
8
|
import { searchTools, handleSearchTool } from './tools/search.js';
|
|
9
9
|
import { folderTools, handleFolderTool } from './tools/folders.js';
|
|
10
10
|
async function main() {
|
|
@@ -32,7 +32,7 @@ async function main() {
|
|
|
32
32
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
33
33
|
return {
|
|
34
34
|
tools: [
|
|
35
|
-
...
|
|
35
|
+
...jsonTools,
|
|
36
36
|
...searchTools,
|
|
37
37
|
...folderTools,
|
|
38
38
|
],
|
|
@@ -42,9 +42,9 @@ async function main() {
|
|
|
42
42
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
43
43
|
const { name, arguments: args } = request.params;
|
|
44
44
|
try {
|
|
45
|
-
//
|
|
46
|
-
if (['
|
|
47
|
-
return await
|
|
45
|
+
// JSON tools
|
|
46
|
+
if (['read_json', 'write_json', 'delete_json', 'list_json'].includes(name)) {
|
|
47
|
+
return await handleJsonTool(client, name, args);
|
|
48
48
|
}
|
|
49
49
|
// Search tools
|
|
50
50
|
if (name === 'search') {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEnE,KAAK,UAAU,IAAI;IACjB,sDAAsD;IACtD,IAAI,MAAM,CAAC;IACX,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,eAAe,EAAE,CAAC;IACnC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,sBAAsB;IACtB,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC;IAEvC,oBAAoB;IACpB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,WAAW;QACjB,OAAO,EAAE,OAAO;KACjB,EACD;QACE,YAAY,EAAE;YACZ,KAAK,EAAE,EAAE;SACV;KACF,CACF,CAAC;IAEF,uBAAuB;IACvB,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE;QAC1D,OAAO;YACL,KAAK,EAAE;gBACL,GAAG,SAAS;gBACZ,GAAG,WAAW;gBACd,GAAG,WAAW;aACf;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,oBAAoB;IACpB,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,IAAI,CAAC;YACH,aAAa;YACb,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3E,OAAO,MAAM,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YAClD,CAAC;YAED,eAAe;YACf,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,OAAO,MAAM,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;YAED,eAAe;YACf,IAAI,CAAC,cAAc,EAAE,eAAe,EAAE,oBAAoB,EAAE,oBAAoB,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjG,OAAO,MAAM,gBAAgB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;YACpD,CAAC;YAED,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,iBAAiB,IAAI,EAAE;qBAC9B;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;qBACzE;iBACF;gBACD,OAAO,EAAE,IAAI;aACd,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,eAAe;IACf,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEhC,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC5C,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folders.d.ts","sourceRoot":"","sources":["../../src/tools/folders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,eAAO,MAAM,WAAW,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"folders.d.ts","sourceRoot":"","sources":["../../src/tools/folders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,eAAO,MAAM,WAAW,EAAE,IAAI,EA4D7B,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAoDhF"}
|
package/dist/tools/folders.js
CHANGED
|
@@ -6,6 +6,16 @@ export const folderTools = [
|
|
|
6
6
|
type: 'object',
|
|
7
7
|
properties: {
|
|
8
8
|
limit: { type: 'number', description: 'optional, default: 20' },
|
|
9
|
+
sort: {
|
|
10
|
+
type: 'string',
|
|
11
|
+
enum: ['path', 'createdAt'],
|
|
12
|
+
description: 'optional',
|
|
13
|
+
},
|
|
14
|
+
order: {
|
|
15
|
+
type: 'string',
|
|
16
|
+
enum: ['asc', 'desc'],
|
|
17
|
+
description: 'optional',
|
|
18
|
+
},
|
|
9
19
|
},
|
|
10
20
|
},
|
|
11
21
|
},
|
|
@@ -41,7 +51,7 @@ export const folderTools = [
|
|
|
41
51
|
indexFields: {
|
|
42
52
|
type: 'array',
|
|
43
53
|
items: { type: 'string' },
|
|
44
|
-
description: 'Metadata fields to index (e.g., ["author", "tags"])
|
|
54
|
+
description: 'optional, Metadata fields to index (e.g., ["author", "tags"])',
|
|
45
55
|
},
|
|
46
56
|
},
|
|
47
57
|
required: ['path'],
|
|
@@ -55,6 +65,8 @@ export async function handleFolderTool(client, name, args) {
|
|
|
55
65
|
case 'list_folders': {
|
|
56
66
|
const result = await client.listFolders({
|
|
57
67
|
limit: params.limit,
|
|
68
|
+
sort: params.sort,
|
|
69
|
+
order: params.order,
|
|
58
70
|
});
|
|
59
71
|
return {
|
|
60
72
|
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"folders.js","sourceRoot":"","sources":["../../src/tools/folders.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,WAAW,GAAW;IACjC;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE;YACX,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;
|
|
1
|
+
{"version":3,"file":"folders.js","sourceRoot":"","sources":["../../src/tools/folders.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
2
|
import { KadocClient } from '../client/kadoc-client.js';
|
|
3
|
-
export declare const
|
|
4
|
-
export declare function
|
|
3
|
+
export declare const jsonTools: Tool[];
|
|
4
|
+
export declare function handleJsonTool(client: KadocClient, name: string, args: Record<string, unknown> | undefined): Promise<{
|
|
5
5
|
content: Array<{
|
|
6
6
|
type: string;
|
|
7
7
|
text: string;
|
|
8
8
|
}>;
|
|
9
9
|
isError?: boolean;
|
|
10
10
|
}>;
|
|
11
|
-
//# sourceMappingURL=
|
|
11
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../src/tools/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,eAAO,MAAM,SAAS,EAAE,IAAI,EAwD3B,CAAC;AAEF,wBAAsB,cAAc,CAClC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAyDhF"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
export const jsonTools = [
|
|
2
|
+
{
|
|
3
|
+
name: 'read_json',
|
|
4
|
+
description: 'Read a JSON document',
|
|
5
|
+
inputSchema: {
|
|
6
|
+
type: 'object',
|
|
7
|
+
properties: {
|
|
8
|
+
path: { type: 'string' },
|
|
9
|
+
jsonPath: { type: 'string', description: 'optional, default: "$." (root)' },
|
|
10
|
+
},
|
|
11
|
+
required: ['path'],
|
|
12
|
+
},
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
name: 'write_json',
|
|
16
|
+
description: 'Create or update a JSON document',
|
|
17
|
+
inputSchema: {
|
|
18
|
+
type: 'object',
|
|
19
|
+
properties: {
|
|
20
|
+
path: { type: 'string' },
|
|
21
|
+
title: { type: 'string' },
|
|
22
|
+
data: { description: 'optional, full JSON data or value for jsonPath update' },
|
|
23
|
+
jsonPath: { type: 'string', description: 'optional, default: "$." (replace entire data)' },
|
|
24
|
+
metadata: {
|
|
25
|
+
type: 'object',
|
|
26
|
+
description: 'optional, Custom metadata fields',
|
|
27
|
+
additionalProperties: true,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
required: ['path', 'title'],
|
|
31
|
+
},
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'list_json',
|
|
35
|
+
description: 'List JSON documents in a folder',
|
|
36
|
+
inputSchema: {
|
|
37
|
+
type: 'object',
|
|
38
|
+
properties: {
|
|
39
|
+
folder: { type: 'string' },
|
|
40
|
+
cursor: { type: 'string', description: 'optional' },
|
|
41
|
+
limit: { type: 'number', description: 'optional, default: 10' },
|
|
42
|
+
},
|
|
43
|
+
required: ['folder'],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'delete_json',
|
|
48
|
+
description: 'Delete a JSON document',
|
|
49
|
+
inputSchema: {
|
|
50
|
+
type: 'object',
|
|
51
|
+
properties: {
|
|
52
|
+
path: { type: 'string' },
|
|
53
|
+
},
|
|
54
|
+
required: ['path'],
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
];
|
|
58
|
+
export async function handleJsonTool(client, name, args) {
|
|
59
|
+
const params = args ?? {};
|
|
60
|
+
try {
|
|
61
|
+
switch (name) {
|
|
62
|
+
case 'read_json': {
|
|
63
|
+
const result = await client.readJson(params.path, {
|
|
64
|
+
jsonPath: params.jsonPath,
|
|
65
|
+
});
|
|
66
|
+
return {
|
|
67
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
case 'write_json': {
|
|
71
|
+
const result = await client.writeJson({
|
|
72
|
+
path: params.path,
|
|
73
|
+
title: params.title,
|
|
74
|
+
data: params.data,
|
|
75
|
+
jsonPath: params.jsonPath,
|
|
76
|
+
metadata: params.metadata,
|
|
77
|
+
});
|
|
78
|
+
return {
|
|
79
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
case 'list_json': {
|
|
83
|
+
const result = await client.listJson({
|
|
84
|
+
folder: params.folder,
|
|
85
|
+
cursor: params.cursor,
|
|
86
|
+
limit: params.limit,
|
|
87
|
+
});
|
|
88
|
+
return {
|
|
89
|
+
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
case 'delete_json': {
|
|
93
|
+
await client.deleteJson(params.path);
|
|
94
|
+
return {
|
|
95
|
+
content: [{ type: 'text', text: 'JSON document deleted successfully' }],
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
default:
|
|
99
|
+
return {
|
|
100
|
+
content: [{ type: 'text', text: `Unknown JSON tool: ${name}` }],
|
|
101
|
+
isError: true,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
return {
|
|
107
|
+
content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }],
|
|
108
|
+
isError: true,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/tools/json.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"documents.d.ts","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,eAAO,MAAM,aAAa,EAAE,IAAI,EAsE/B,CAAC;AAEF,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACxC,OAAO,CAAC;IAAE,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAiEhF"}
|
package/dist/tools/documents.js
DELETED
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
export const documentTools = [
|
|
2
|
-
{
|
|
3
|
-
name: 'write_document',
|
|
4
|
-
description: 'Create a new document',
|
|
5
|
-
inputSchema: {
|
|
6
|
-
type: 'object',
|
|
7
|
-
properties: {
|
|
8
|
-
path: { type: 'string', description: 'e.g., notes/meeting' },
|
|
9
|
-
title: { type: 'string' },
|
|
10
|
-
content: { type: 'string', description: 'Markdown' },
|
|
11
|
-
metadata: {
|
|
12
|
-
type: 'object',
|
|
13
|
-
description: 'Custom metadata fields (e.g., { "author": "...", "tags": [...] })',
|
|
14
|
-
additionalProperties: true,
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
required: ['path', 'title', 'content'],
|
|
18
|
-
},
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
name: 'read_document',
|
|
22
|
-
description: 'Read a document',
|
|
23
|
-
inputSchema: {
|
|
24
|
-
type: 'object',
|
|
25
|
-
properties: {
|
|
26
|
-
path: { type: 'string' },
|
|
27
|
-
},
|
|
28
|
-
required: ['path'],
|
|
29
|
-
},
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
name: 'delete_document',
|
|
33
|
-
description: 'Delete a document',
|
|
34
|
-
inputSchema: {
|
|
35
|
-
type: 'object',
|
|
36
|
-
properties: {
|
|
37
|
-
path: { type: 'string' },
|
|
38
|
-
},
|
|
39
|
-
required: ['path'],
|
|
40
|
-
},
|
|
41
|
-
},
|
|
42
|
-
{
|
|
43
|
-
name: 'update_document',
|
|
44
|
-
description: 'Update a document',
|
|
45
|
-
inputSchema: {
|
|
46
|
-
type: 'object',
|
|
47
|
-
properties: {
|
|
48
|
-
path: { type: 'string' },
|
|
49
|
-
title: { type: 'string', description: 'optional' },
|
|
50
|
-
content: { type: 'string', description: 'optional' },
|
|
51
|
-
metadata: {
|
|
52
|
-
type: 'object',
|
|
53
|
-
description: 'Custom metadata fields to update',
|
|
54
|
-
additionalProperties: true,
|
|
55
|
-
},
|
|
56
|
-
},
|
|
57
|
-
required: ['path'],
|
|
58
|
-
},
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
name: 'list_documents',
|
|
62
|
-
description: 'List documents',
|
|
63
|
-
inputSchema: {
|
|
64
|
-
type: 'object',
|
|
65
|
-
properties: {
|
|
66
|
-
folder: { type: 'string', description: 'optional' },
|
|
67
|
-
limit: { type: 'number', description: 'optional, default: 20' },
|
|
68
|
-
},
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
];
|
|
72
|
-
export async function handleDocumentTool(client, name, args) {
|
|
73
|
-
const params = args ?? {};
|
|
74
|
-
try {
|
|
75
|
-
switch (name) {
|
|
76
|
-
case 'write_document': {
|
|
77
|
-
const result = await client.createDocument({
|
|
78
|
-
path: params.path,
|
|
79
|
-
title: params.title,
|
|
80
|
-
content: params.content,
|
|
81
|
-
metadata: params.metadata,
|
|
82
|
-
});
|
|
83
|
-
return {
|
|
84
|
-
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
case 'read_document': {
|
|
88
|
-
const result = await client.readDocument(params.path);
|
|
89
|
-
return {
|
|
90
|
-
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
case 'delete_document': {
|
|
94
|
-
await client.deleteDocument(params.path);
|
|
95
|
-
return {
|
|
96
|
-
content: [{ type: 'text', text: 'Document deleted successfully' }],
|
|
97
|
-
};
|
|
98
|
-
}
|
|
99
|
-
case 'update_document': {
|
|
100
|
-
const result = await client.updateDocument({
|
|
101
|
-
path: params.path,
|
|
102
|
-
title: params.title,
|
|
103
|
-
content: params.content,
|
|
104
|
-
metadata: params.metadata,
|
|
105
|
-
});
|
|
106
|
-
return {
|
|
107
|
-
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
case 'list_documents': {
|
|
111
|
-
const result = await client.listDocuments({
|
|
112
|
-
folder: params.folder,
|
|
113
|
-
limit: params.limit,
|
|
114
|
-
});
|
|
115
|
-
return {
|
|
116
|
-
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
default:
|
|
120
|
-
return {
|
|
121
|
-
content: [{ type: 'text', text: `Unknown document tool: ${name}` }],
|
|
122
|
-
isError: true,
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
catch (error) {
|
|
127
|
-
return {
|
|
128
|
-
content: [{ type: 'text', text: `Error: ${error instanceof Error ? error.message : String(error)}` }],
|
|
129
|
-
isError: true,
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=documents.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"documents.js","sourceRoot":"","sources":["../../src/tools/documents.ts"],"names":[],"mappings":"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"}
|