@doxhub/mcp-server 0.1.2 → 0.1.5
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/dist/api-client.d.ts +17 -0
- package/dist/api-client.d.ts.map +1 -1
- package/dist/api-client.js +18 -0
- package/dist/api-client.js.map +1 -1
- package/dist/auth/verify-token.d.ts +1 -1
- package/dist/auth/verify-token.d.ts.map +1 -1
- package/dist/auth/verify-token.js +2 -1
- package/dist/auth/verify-token.js.map +1 -1
- package/dist/cli/create-file.d.ts +8 -0
- package/dist/cli/create-file.d.ts.map +1 -0
- package/dist/cli/create-file.js +44 -0
- package/dist/cli/create-file.js.map +1 -0
- package/dist/cli/delete-file.d.ts +4 -0
- package/dist/cli/delete-file.d.ts.map +1 -0
- package/dist/cli/delete-file.js +62 -0
- package/dist/cli/delete-file.js.map +1 -0
- package/dist/cli/get-file.d.ts +5 -0
- package/dist/cli/get-file.d.ts.map +1 -0
- package/dist/cli/get-file.js +61 -0
- package/dist/cli/get-file.js.map +1 -0
- package/dist/cli/list-files.d.ts +2 -0
- package/dist/cli/list-files.d.ts.map +1 -0
- package/dist/cli/list-files.js +46 -0
- package/dist/cli/list-files.js.map +1 -0
- package/dist/cli/list-projects.d.ts +2 -0
- package/dist/cli/list-projects.d.ts.map +1 -0
- package/dist/cli/list-projects.js +52 -0
- package/dist/cli/list-projects.js.map +1 -0
- package/dist/cli/list-workspaces.d.ts +2 -0
- package/dist/cli/list-workspaces.d.ts.map +1 -0
- package/dist/cli/list-workspaces.js +41 -0
- package/dist/cli/list-workspaces.js.map +1 -0
- package/dist/cli/search.d.ts +5 -0
- package/dist/cli/search.d.ts.map +1 -0
- package/dist/cli/search.js +59 -0
- package/dist/cli/search.js.map +1 -0
- package/dist/cli/update-file.d.ts +9 -0
- package/dist/cli/update-file.d.ts.map +1 -0
- package/dist/cli/update-file.js +59 -0
- package/dist/cli/update-file.js.map +1 -0
- package/dist/index.js +156 -16
- package/dist/index.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +30 -5
- package/dist/server.js.map +1 -1
- package/dist/tools/create-file.d.ts +38 -0
- package/dist/tools/create-file.d.ts.map +1 -0
- package/dist/tools/create-file.js +75 -0
- package/dist/tools/create-file.js.map +1 -0
- package/dist/tools/delete-file.d.ts +22 -0
- package/dist/tools/delete-file.d.ts.map +1 -0
- package/dist/tools/delete-file.js +41 -0
- package/dist/tools/delete-file.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +3 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/update-file.d.ts +55 -0
- package/dist/tools/update-file.d.ts.map +1 -0
- package/dist/tools/update-file.js +102 -0
- package/dist/tools/update-file.js.map +1 -0
- package/package.json +1 -1
package/dist/api-client.d.ts
CHANGED
|
@@ -20,6 +20,23 @@ declare class ApiClient {
|
|
|
20
20
|
getFileVersions(fileId: string): Promise<any[]>;
|
|
21
21
|
getFileVersion(fileId: string, versionId: string): Promise<any>;
|
|
22
22
|
searchFiles(workspaceId: string, query: string, projectId?: string): Promise<any[]>;
|
|
23
|
+
createFile(projectId: string, data: {
|
|
24
|
+
title: string;
|
|
25
|
+
path: string;
|
|
26
|
+
content?: string;
|
|
27
|
+
folderId?: string | null;
|
|
28
|
+
}): Promise<any>;
|
|
29
|
+
updateFile(fileId: string, data: {
|
|
30
|
+
title?: string;
|
|
31
|
+
path?: string;
|
|
32
|
+
content?: string;
|
|
33
|
+
status?: 'active' | 'archived';
|
|
34
|
+
folderId?: string | null;
|
|
35
|
+
projectId?: string;
|
|
36
|
+
changeSummary?: string;
|
|
37
|
+
createVersion?: boolean;
|
|
38
|
+
}): Promise<any>;
|
|
39
|
+
deleteFile(fileId: string): Promise<any>;
|
|
23
40
|
}
|
|
24
41
|
export declare function initializeApiClient(config: ApiClientConfig): void;
|
|
25
42
|
export declare function getApiClient(): ApiClient;
|
package/dist/api-client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,cAAM,SAAS;IACb,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,eAAe;YAIrB,OAAO;IAsBf,aAAa;IAIb,YAAY,CAAC,WAAW,EAAE,MAAM;IAKhC,WAAW,CAAC,WAAW,EAAE,MAAM;IAI/B,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKlD,QAAQ,CAAC,SAAS,EAAE,MAAM;IAI1B,OAAO,CAAC,MAAM,EAAE,MAAM;IAItB,cAAc,CAAC,MAAM,EAAE,MAAM;IAI7B,eAAe,CAAC,MAAM,EAAE,MAAM;IAI9B,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKhD,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,cAAM,SAAS;IACb,OAAO,CAAC,MAAM,CAAkB;gBAEpB,MAAM,EAAE,eAAe;YAIrB,OAAO;IAsBf,aAAa;IAIb,YAAY,CAAC,WAAW,EAAE,MAAM;IAKhC,WAAW,CAAC,WAAW,EAAE,MAAM;IAI/B,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKlD,QAAQ,CAAC,SAAS,EAAE,MAAM;IAI1B,OAAO,CAAC,MAAM,EAAE,MAAM;IAItB,cAAc,CAAC,MAAM,EAAE,MAAM;IAI7B,eAAe,CAAC,MAAM,EAAE,MAAM;IAI9B,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAKhD,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;IAOlE,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;QACxC,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC1B;IAOK,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QACrC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;QAC/B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB;IAOK,UAAU,CAAC,MAAM,EAAE,MAAM;CAKhC;AAID,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,eAAe,QAE1D;AAED,wBAAgB,YAAY,IAAI,SAAS,CAKxC"}
|
package/dist/api-client.js
CHANGED
|
@@ -61,6 +61,24 @@ class ApiClient {
|
|
|
61
61
|
params.append('projectId', projectId);
|
|
62
62
|
return this.request(`/workspaces/${workspaceId}/search?${params}`);
|
|
63
63
|
}
|
|
64
|
+
// File write endpoints
|
|
65
|
+
async createFile(projectId, data) {
|
|
66
|
+
return this.request(`/projects/${projectId}/files`, {
|
|
67
|
+
method: 'POST',
|
|
68
|
+
body: JSON.stringify(data),
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
async updateFile(fileId, data) {
|
|
72
|
+
return this.request(`/files/${fileId}`, {
|
|
73
|
+
method: 'PUT',
|
|
74
|
+
body: JSON.stringify(data),
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
async deleteFile(fileId) {
|
|
78
|
+
return this.request(`/files/${fileId}`, {
|
|
79
|
+
method: 'DELETE',
|
|
80
|
+
});
|
|
81
|
+
}
|
|
64
82
|
}
|
|
65
83
|
let apiClientInstance = null;
|
|
66
84
|
export function initializeApiClient(config) {
|
package/dist/api-client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { AuthContext } from '../types.js';
|
|
2
2
|
export declare function verifyAccessToken(token: string): AuthContext;
|
|
3
|
-
export declare function getAuthContext(): Promise<AuthContext>;
|
|
3
|
+
export declare function getAuthContext(): Promise<AuthContext | null>;
|
|
4
4
|
//# sourceMappingURL=verify-token.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-token.d.ts","sourceRoot":"","sources":["../../src/auth/verify-token.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,aAAa,CAAC;AAK3D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAoB5D;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"verify-token.d.ts","sourceRoot":"","sources":["../../src/auth/verify-token.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAc,WAAW,EAAE,MAAM,aAAa,CAAC;AAK3D,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,WAAW,CAoB5D;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CA0ClE"}
|
|
@@ -42,7 +42,8 @@ export async function getAuthContext() {
|
|
|
42
42
|
apiUrl = process.env.DOXHUB_API_URL || apiUrl;
|
|
43
43
|
}
|
|
44
44
|
if (!token) {
|
|
45
|
-
|
|
45
|
+
// Return null instead of throwing - let callers handle missing auth
|
|
46
|
+
return null;
|
|
46
47
|
}
|
|
47
48
|
// Initialize API client with token and URL
|
|
48
49
|
initializeApiClient({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-token.js","sourceRoot":"","sources":["../../src/auth/verify-token.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,cAAc,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAEzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAe,CAAC;QAE3D,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,GAAG,CAAC,iBAAiB,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,KAAyB,CAAC;IAC9B,IAAI,MAAM,GAAW,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,8BAA8B,CAAC;IAElF,0CAA0C;IAC1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;YAC5B,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,+DAA+D;IACjE,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACxC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,
|
|
1
|
+
{"version":3,"file":"verify-token.js","sourceRoot":"","sources":["../../src/auth/verify-token.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,cAAc,CAAC;AAE/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE1D,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;IAEzC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAe,CAAC;QAE3D,OAAO;YACL,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,GAAG,CAAC,iBAAiB,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc;IAClC,IAAI,KAAyB,CAAC;IAC9B,IAAI,MAAM,GAAW,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,8BAA8B,CAAC;IAElF,0CAA0C;IAC1C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,IAAI,OAAO,EAAE,CAAC;YACZ,KAAK,GAAG,OAAO,CAAC,WAAW,CAAC;YAC5B,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;YACxB,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,+DAA+D;IACjE,CAAC;IAED,qCAAqC;IACrC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;QACxC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC;IAChD,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,oEAAoE;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2CAA2C;IAC3C,mBAAmB,CAAC;QAClB,OAAO,EAAE,MAAM;QACf,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;IAEH,mDAAmD;IACnD,IAAI,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;QACzC,OAAO,MAAM,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,mBAAmB;IACnB,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC1C,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-file.d.ts","sourceRoot":"","sources":["../../src/cli/create-file.ts"],"names":[],"mappings":"AAIA,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4ChB"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { getAuthContext } from '../auth/verify-token.js';
|
|
2
|
+
import { getApiClient, initializeApiClient } from '../api-client.js';
|
|
3
|
+
import { getCurrentProfile } from './credentials.js';
|
|
4
|
+
export async function createFileCommand(options) {
|
|
5
|
+
try {
|
|
6
|
+
const { projectId, title, path, content, folderId } = options;
|
|
7
|
+
if (!projectId || !title || !path) {
|
|
8
|
+
console.error('❌ Required parameters missing\n');
|
|
9
|
+
console.error('Usage: npx @doxhub/mcp-server create-file --project <id> --title <title> --path <path> [--content <content>] [--folder <id>]\n');
|
|
10
|
+
process.exit(1);
|
|
11
|
+
}
|
|
12
|
+
const profile = getCurrentProfile();
|
|
13
|
+
if (!profile) {
|
|
14
|
+
console.error('❌ Not authenticated. Run "npx @doxhub/mcp-server setup" first.\n');
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
initializeApiClient({
|
|
18
|
+
baseUrl: profile.apiUrl,
|
|
19
|
+
accessToken: profile.accessToken,
|
|
20
|
+
});
|
|
21
|
+
const auth = await getAuthContext();
|
|
22
|
+
if (!auth) {
|
|
23
|
+
console.error('❌ Authentication failed\n');
|
|
24
|
+
process.exit(1);
|
|
25
|
+
}
|
|
26
|
+
const apiClient = getApiClient();
|
|
27
|
+
const file = await apiClient.createFile(projectId, {
|
|
28
|
+
title,
|
|
29
|
+
path,
|
|
30
|
+
content: content || '',
|
|
31
|
+
folderId: folderId || null,
|
|
32
|
+
});
|
|
33
|
+
console.log('\n✅ File created successfully!\n');
|
|
34
|
+
console.log(` Title: ${file.title}`);
|
|
35
|
+
console.log(` ID: ${file.id}`);
|
|
36
|
+
console.log(` Path: ${file.path}`);
|
|
37
|
+
console.log(` Version: ${file.currentVersion}\n`);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
console.error(`❌ Error: ${error instanceof Error ? error.message : error}\n`);
|
|
41
|
+
process.exit(1);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=create-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-file.js","sourceRoot":"","sources":["../../src/cli/create-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAMvC;IACC,IAAI,CAAC;QACH,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE9D,IAAI,CAAC,SAAS,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;YAClC,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,gIAAgI,CAAC,CAAC;YAChJ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mBAAmB,CAAC;YAClB,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE;YACjD,KAAK;YACL,IAAI;YACJ,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,QAAQ,EAAE,QAAQ,IAAI,IAAI;SAC3B,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACpC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-file.d.ts","sourceRoot":"","sources":["../../src/cli/delete-file.ts"],"names":[],"mappings":"AAmBA,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;IAC/D,KAAK,CAAC,EAAE,OAAO,CAAC;CACZ,GAAG,OAAO,CAAC,IAAI,CAAC,CAmDrB"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import readline from 'readline';
|
|
2
|
+
import { getAuthContext } from '../auth/verify-token.js';
|
|
3
|
+
import { getApiClient, initializeApiClient } from '../api-client.js';
|
|
4
|
+
import { getCurrentProfile } from './credentials.js';
|
|
5
|
+
async function askConfirmation(question) {
|
|
6
|
+
const rl = readline.createInterface({
|
|
7
|
+
input: process.stdin,
|
|
8
|
+
output: process.stdout,
|
|
9
|
+
});
|
|
10
|
+
return new Promise((resolve) => {
|
|
11
|
+
rl.question(`${question} (y/n): `, (answer) => {
|
|
12
|
+
rl.close();
|
|
13
|
+
resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
export async function deleteFileCommand(fileId, options = {}) {
|
|
18
|
+
try {
|
|
19
|
+
if (!fileId) {
|
|
20
|
+
console.error('❌ File ID required\n');
|
|
21
|
+
console.error('Usage: npx @doxhub/mcp-server delete-file <fileId> [--force]\n');
|
|
22
|
+
process.exit(1);
|
|
23
|
+
}
|
|
24
|
+
const profile = getCurrentProfile();
|
|
25
|
+
if (!profile) {
|
|
26
|
+
console.error('❌ Not authenticated. Run "npx @doxhub/mcp-server setup" first.\n');
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
initializeApiClient({
|
|
30
|
+
baseUrl: profile.apiUrl,
|
|
31
|
+
accessToken: profile.accessToken,
|
|
32
|
+
});
|
|
33
|
+
const auth = await getAuthContext();
|
|
34
|
+
if (!auth) {
|
|
35
|
+
console.error('❌ Authentication failed\n');
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
// Get file info first
|
|
39
|
+
const apiClient = getApiClient();
|
|
40
|
+
const file = await apiClient.getFile(fileId);
|
|
41
|
+
console.log('\n⚠️ You are about to delete this file:\n');
|
|
42
|
+
console.log(` Title: ${file.title}`);
|
|
43
|
+
console.log(` Path: ${file.path}`);
|
|
44
|
+
console.log(` ID: ${file.id}\n`);
|
|
45
|
+
console.log('The file will be moved to trash and can be restored later.\n');
|
|
46
|
+
// Ask for confirmation unless --force flag is used
|
|
47
|
+
if (!options.force) {
|
|
48
|
+
const confirmed = await askConfirmation('Are you sure?');
|
|
49
|
+
if (!confirmed) {
|
|
50
|
+
console.log('\nCancelled\n');
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
await apiClient.deleteFile(fileId);
|
|
55
|
+
console.log('\n✅ File deleted successfully (moved to trash)\n');
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
console.error(`❌ Error: ${error instanceof Error ? error.message : error}\n`);
|
|
59
|
+
process.exit(1);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=delete-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete-file.js","sourceRoot":"","sources":["../../src/cli/delete-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-file.d.ts","sourceRoot":"","sources":["../../src/cli/get-file.ts"],"names":[],"mappings":"AAIA,wBAAsB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACf,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DrB"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { getAuthContext } from '../auth/verify-token.js';
|
|
2
|
+
import { getApiClient, initializeApiClient } from '../api-client.js';
|
|
3
|
+
import { getCurrentProfile } from './credentials.js';
|
|
4
|
+
export async function getFileCommand(fileId, options = {}) {
|
|
5
|
+
try {
|
|
6
|
+
if (!fileId) {
|
|
7
|
+
console.error('❌ File ID required\n');
|
|
8
|
+
console.error('Usage: npx @doxhub/mcp-server get-file <fileId> [--content-only] [--metadata]\n');
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
const profile = getCurrentProfile();
|
|
12
|
+
if (!profile) {
|
|
13
|
+
console.error('❌ Not authenticated. Run "npx @doxhub/mcp-server setup" first.\n');
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
initializeApiClient({
|
|
17
|
+
baseUrl: profile.apiUrl,
|
|
18
|
+
accessToken: profile.accessToken,
|
|
19
|
+
});
|
|
20
|
+
const auth = await getAuthContext();
|
|
21
|
+
if (!auth) {
|
|
22
|
+
console.error('❌ Authentication failed\n');
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const apiClient = getApiClient();
|
|
26
|
+
const file = await apiClient.getFile(fileId);
|
|
27
|
+
// Content only mode - just output the file content
|
|
28
|
+
if (options.contentOnly) {
|
|
29
|
+
console.log(file.content || '');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
// Metadata mode - show file details without content
|
|
33
|
+
if (options.metadata) {
|
|
34
|
+
console.log('\n📄 File Details:\n');
|
|
35
|
+
console.log(` Title: ${file.title}`);
|
|
36
|
+
console.log(` ID: ${file.id}`);
|
|
37
|
+
console.log(` Path: ${file.path}`);
|
|
38
|
+
console.log(` Status: ${file.status}`);
|
|
39
|
+
console.log(` Version: ${file.currentVersion}`);
|
|
40
|
+
console.log(` Project: ${file.projectName || file.projectId}`);
|
|
41
|
+
console.log(` Created: ${new Date(file.createdAt).toLocaleString()}`);
|
|
42
|
+
console.log(` Updated: ${new Date(file.updatedAt).toLocaleString()}`);
|
|
43
|
+
console.log(` Content length: ${file.content?.length || 0} characters\n`);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
// Default mode - show both metadata and content
|
|
47
|
+
console.log('\n📄 File Details:\n');
|
|
48
|
+
console.log(` Title: ${file.title}`);
|
|
49
|
+
console.log(` Path: ${file.path}`);
|
|
50
|
+
console.log(` ID: ${file.id}`);
|
|
51
|
+
console.log(` Version: ${file.currentVersion}`);
|
|
52
|
+
console.log('\n─────────────────────────────────────────────\n');
|
|
53
|
+
console.log(file.content || '(empty file)');
|
|
54
|
+
console.log('\n─────────────────────────────────────────────\n');
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
console.error(`❌ Error: ${error instanceof Error ? error.message : error}\n`);
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=get-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-file.js","sourceRoot":"","sources":["../../src/cli/get-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-files.d.ts","sourceRoot":"","sources":["../../src/cli/list-files.ts"],"names":[],"mappings":"AAIA,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8CvE"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { getAuthContext } from '../auth/verify-token.js';
|
|
2
|
+
import { getApiClient, initializeApiClient } from '../api-client.js';
|
|
3
|
+
import { getCurrentProfile } from './credentials.js';
|
|
4
|
+
export async function listFilesCommand(projectId) {
|
|
5
|
+
try {
|
|
6
|
+
if (!projectId) {
|
|
7
|
+
console.error('❌ Project ID required\n');
|
|
8
|
+
console.error('Usage: npx @doxhub/mcp-server list-files <projectId>\n');
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
const profile = getCurrentProfile();
|
|
12
|
+
if (!profile) {
|
|
13
|
+
console.error('❌ Not authenticated. Run "npx @doxhub/mcp-server setup" first.\n');
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
initializeApiClient({
|
|
17
|
+
baseUrl: profile.apiUrl,
|
|
18
|
+
accessToken: profile.accessToken,
|
|
19
|
+
});
|
|
20
|
+
const auth = await getAuthContext();
|
|
21
|
+
if (!auth) {
|
|
22
|
+
console.error('❌ Authentication failed\n');
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const apiClient = getApiClient();
|
|
26
|
+
const files = await apiClient.getFiles(projectId);
|
|
27
|
+
if (files.length === 0) {
|
|
28
|
+
console.log('No files found\n');
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
console.log('\n📄 Files:\n');
|
|
32
|
+
files.forEach((file) => {
|
|
33
|
+
console.log(` ${file.title}`);
|
|
34
|
+
console.log(` ID: ${file.id}`);
|
|
35
|
+
console.log(` Path: ${file.path}`);
|
|
36
|
+
console.log(` Version: ${file.currentVersion}`);
|
|
37
|
+
console.log(` Updated: ${new Date(file.updatedAt).toLocaleString()}`);
|
|
38
|
+
console.log('');
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
console.error(`❌ Error: ${error instanceof Error ? error.message : error}\n`);
|
|
43
|
+
process.exit(1);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=list-files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-files.js","sourceRoot":"","sources":["../../src/cli/list-files.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAiB;IACtD,IAAI,CAAC;QACH,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACzC,OAAO,CAAC,KAAK,CAAC,wDAAwD,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mBAAmB,CAAC;YAClB,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAElD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvB,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;YAChC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7B,KAAK,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;YAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACvE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-projects.d.ts","sourceRoot":"","sources":["../../src/cli/list-projects.ts"],"names":[],"mappings":"AAIA,wBAAsB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsD7E"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { getAuthContext } from '../auth/verify-token.js';
|
|
2
|
+
import { getApiClient, initializeApiClient } from '../api-client.js';
|
|
3
|
+
import { getCurrentProfile } from './credentials.js';
|
|
4
|
+
export async function listProjectsCommand(workspaceId) {
|
|
5
|
+
try {
|
|
6
|
+
const profile = getCurrentProfile();
|
|
7
|
+
if (!profile) {
|
|
8
|
+
console.error('❌ Not authenticated. Run "npx @doxhub/mcp-server setup" first.\n');
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
initializeApiClient({
|
|
12
|
+
baseUrl: profile.apiUrl,
|
|
13
|
+
accessToken: profile.accessToken,
|
|
14
|
+
});
|
|
15
|
+
const auth = await getAuthContext();
|
|
16
|
+
if (!auth) {
|
|
17
|
+
console.error('❌ Authentication failed\n');
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
const apiClient = getApiClient();
|
|
21
|
+
// If no workspace ID provided, use the one from profile or get first workspace
|
|
22
|
+
let targetWorkspaceId = workspaceId || profile.workspaceId;
|
|
23
|
+
if (!targetWorkspaceId) {
|
|
24
|
+
const workspaces = await apiClient.getWorkspaces();
|
|
25
|
+
if (workspaces.length === 0) {
|
|
26
|
+
console.error('❌ No workspaces found\n');
|
|
27
|
+
process.exit(1);
|
|
28
|
+
}
|
|
29
|
+
targetWorkspaceId = workspaces[0].id;
|
|
30
|
+
console.log(`Using workspace: ${workspaces[0].name}\n`);
|
|
31
|
+
}
|
|
32
|
+
const projects = await apiClient.getProjects(targetWorkspaceId);
|
|
33
|
+
if (projects.length === 0) {
|
|
34
|
+
console.log('No projects found\n');
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
console.log('\n📂 Projects:\n');
|
|
38
|
+
projects.forEach((project) => {
|
|
39
|
+
console.log(` ${project.name}`);
|
|
40
|
+
console.log(` ID: ${project.id}`);
|
|
41
|
+
if (project.description) {
|
|
42
|
+
console.log(` Description: ${project.description}`);
|
|
43
|
+
}
|
|
44
|
+
console.log('');
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
console.error(`❌ Error: ${error instanceof Error ? error.message : error}\n`);
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=list-projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-projects.js","sourceRoot":"","sources":["../../src/cli/list-projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,WAAoB;IAC5D,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mBAAmB,CAAC;YAClB,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QAEjC,+EAA+E;QAC/E,IAAI,iBAAiB,GAAG,WAAW,IAAI,OAAO,CAAC,WAAW,CAAC;QAE3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC;YACnD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;gBACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,oBAAoB,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QAC1D,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,WAAW,CAAC,iBAAkB,CAAC,CAAC;QAEjE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;YACnC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QAChC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAY,EAAE,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,SAAS,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YACnC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,kBAAkB,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-workspaces.d.ts","sourceRoot":"","sources":["../../src/cli/list-workspaces.ts"],"names":[],"mappings":"AAIA,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAwC3D"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { getAuthContext } from '../auth/verify-token.js';
|
|
2
|
+
import { getApiClient, initializeApiClient } from '../api-client.js';
|
|
3
|
+
import { getCurrentProfile } from './credentials.js';
|
|
4
|
+
export async function listWorkspacesCommand() {
|
|
5
|
+
try {
|
|
6
|
+
const profile = getCurrentProfile();
|
|
7
|
+
if (!profile) {
|
|
8
|
+
console.error('❌ Not authenticated. Run "npx @doxhub/mcp-server setup" first.\n');
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
initializeApiClient({
|
|
12
|
+
baseUrl: profile.apiUrl,
|
|
13
|
+
accessToken: profile.accessToken,
|
|
14
|
+
});
|
|
15
|
+
const auth = await getAuthContext();
|
|
16
|
+
if (!auth) {
|
|
17
|
+
console.error('❌ Authentication failed\n');
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
20
|
+
const apiClient = getApiClient();
|
|
21
|
+
const workspaces = await apiClient.getWorkspaces();
|
|
22
|
+
if (workspaces.length === 0) {
|
|
23
|
+
console.log('No workspaces found\n');
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
console.log('\n📁 Your Workspaces:\n');
|
|
27
|
+
workspaces.forEach((ws) => {
|
|
28
|
+
console.log(` ${ws.name}`);
|
|
29
|
+
console.log(` ID: ${ws.id}`);
|
|
30
|
+
if (ws.description) {
|
|
31
|
+
console.log(` Description: ${ws.description}`);
|
|
32
|
+
}
|
|
33
|
+
console.log('');
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
console.error(`❌ Error: ${error instanceof Error ? error.message : error}\n`);
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=list-workspaces.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-workspaces.js","sourceRoot":"","sources":["../../src/cli/list-workspaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,iBAAiB,EAAE,CAAC;QACpC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,kEAAkE,CAAC,CAAC;YAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,mBAAmB,CAAC;YAClB,OAAO,EAAE,OAAO,CAAC,MAAM;YACvB,WAAW,EAAE,OAAO,CAAC,WAAW;SACjC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,MAAM,cAAc,EAAE,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC3C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,aAAa,EAAE,CAAC;QAEnD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QACvC,UAAU,CAAC,OAAO,CAAC,CAAC,EAAO,EAAE,EAAE;YAC7B,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC9B,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;QAC9E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/cli/search.ts"],"names":[],"mappings":"AAIA,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,GAAE;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACf,GAAG,OAAO,CAAC,IAAI,CAAC,CA8DrB"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { getAuthContext } from '../auth/verify-token.js';
|
|
2
|
+
import { getApiClient, initializeApiClient } from '../api-client.js';
|
|
3
|
+
import { getCurrentProfile } from './credentials.js';
|
|
4
|
+
export async function searchCommand(query, options = {}) {
|
|
5
|
+
try {
|
|
6
|
+
if (!query) {
|
|
7
|
+
console.error('❌ Search query required\n');
|
|
8
|
+
console.error('Usage: npx @doxhub/mcp-server search <query> [--workspace <id>] [--project <id>]\n');
|
|
9
|
+
process.exit(1);
|
|
10
|
+
}
|
|
11
|
+
const profile = getCurrentProfile();
|
|
12
|
+
if (!profile) {
|
|
13
|
+
console.error('❌ Not authenticated. Run "npx @doxhub/mcp-server setup" first.\n');
|
|
14
|
+
process.exit(1);
|
|
15
|
+
}
|
|
16
|
+
initializeApiClient({
|
|
17
|
+
baseUrl: profile.apiUrl,
|
|
18
|
+
accessToken: profile.accessToken,
|
|
19
|
+
});
|
|
20
|
+
const auth = await getAuthContext();
|
|
21
|
+
if (!auth) {
|
|
22
|
+
console.error('❌ Authentication failed\n');
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const apiClient = getApiClient();
|
|
26
|
+
// Get workspace ID
|
|
27
|
+
let workspaceId = options.workspaceId || profile.workspaceId;
|
|
28
|
+
if (!workspaceId) {
|
|
29
|
+
const workspaces = await apiClient.getWorkspaces();
|
|
30
|
+
if (workspaces.length === 0) {
|
|
31
|
+
console.error('❌ No workspaces found\n');
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
workspaceId = workspaces[0].id;
|
|
35
|
+
}
|
|
36
|
+
const results = await apiClient.searchFiles(workspaceId, query, options.projectId);
|
|
37
|
+
if (results.length === 0) {
|
|
38
|
+
console.log(`\nNo results found for: "${query}"\n`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
console.log(`\n🔍 Search results for: "${query}"\n`);
|
|
42
|
+
console.log(`Found ${results.length} result(s)\n`);
|
|
43
|
+
results.forEach((result, index) => {
|
|
44
|
+
console.log(`${index + 1}. ${result.title}`);
|
|
45
|
+
console.log(` ID: ${result.id}`);
|
|
46
|
+
console.log(` Path: ${result.path}`);
|
|
47
|
+
console.log(` Project: ${result.projectName || result.projectId}`);
|
|
48
|
+
if (result.snippet) {
|
|
49
|
+
console.log(` Preview: ${result.snippet.substring(0, 100)}...`);
|
|
50
|
+
}
|
|
51
|
+
console.log('');
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
console.error(`❌ Error: ${error instanceof Error ? error.message : error}\n`);
|
|
56
|
+
process.exit(1);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/cli/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare function updateFileCommand(fileId: string, options: {
|
|
2
|
+
title?: string;
|
|
3
|
+
path?: string;
|
|
4
|
+
content?: string;
|
|
5
|
+
status?: 'active' | 'archived';
|
|
6
|
+
changeSummary?: string;
|
|
7
|
+
createVersion?: boolean;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=update-file.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-file.d.ts","sourceRoot":"","sources":["../../src/cli/update-file.ts"],"names":[],"mappings":"AAIA,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IACP,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB,GACA,OAAO,CAAC,IAAI,CAAC,CAwDf"}
|