mcp-perplexity-pro 1.1.0
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 +638 -0
- package/bin/mcp-perplexity-pro +8 -0
- package/bin/mcp-perplexity-pro-stdio +9 -0
- package/dist/claude-code-bridge.d.ts +3 -0
- package/dist/claude-code-bridge.d.ts.map +1 -0
- package/dist/claude-code-bridge.js +111 -0
- package/dist/claude-code-bridge.js.map +1 -0
- package/dist/http-index.d.ts +3 -0
- package/dist/http-index.d.ts.map +1 -0
- package/dist/http-index.js +38 -0
- package/dist/http-index.js.map +1 -0
- package/dist/http-server.d.ts +33 -0
- package/dist/http-server.d.ts.map +1 -0
- package/dist/http-server.js +362 -0
- package/dist/http-server.js.map +1 -0
- package/dist/http-streaming-server.d.ts +4 -0
- package/dist/http-streaming-server.d.ts.map +1 -0
- package/dist/http-streaming-server.js +514 -0
- package/dist/http-streaming-server.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -0
- package/dist/index.js.map +1 -0
- package/dist/launcher.d.ts +3 -0
- package/dist/launcher.d.ts.map +1 -0
- package/dist/launcher.js +209 -0
- package/dist/launcher.js.map +1 -0
- package/dist/mcp-server.d.ts +5 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +329 -0
- package/dist/mcp-server.js.map +1 -0
- package/dist/models.d.ts +45 -0
- package/dist/models.d.ts.map +1 -0
- package/dist/models.js +284 -0
- package/dist/models.js.map +1 -0
- package/dist/perplexity-api.d.ts +59 -0
- package/dist/perplexity-api.d.ts.map +1 -0
- package/dist/perplexity-api.js +455 -0
- package/dist/perplexity-api.js.map +1 -0
- package/dist/port-utils.d.ts +31 -0
- package/dist/port-utils.d.ts.map +1 -0
- package/dist/port-utils.js +114 -0
- package/dist/port-utils.js.map +1 -0
- package/dist/project-manager.d.ts +91 -0
- package/dist/project-manager.d.ts.map +1 -0
- package/dist/project-manager.js +422 -0
- package/dist/project-manager.js.map +1 -0
- package/dist/simple-streaming.d.ts +26 -0
- package/dist/simple-streaming.d.ts.map +1 -0
- package/dist/simple-streaming.js +75 -0
- package/dist/simple-streaming.js.map +1 -0
- package/dist/sse-index.d.ts +3 -0
- package/dist/sse-index.d.ts.map +1 -0
- package/dist/sse-index.js +38 -0
- package/dist/sse-index.js.map +1 -0
- package/dist/sse-server.d.ts +4 -0
- package/dist/sse-server.d.ts.map +1 -0
- package/dist/sse-server.js +208 -0
- package/dist/sse-server.js.map +1 -0
- package/dist/stdio-bridge.d.ts +21 -0
- package/dist/stdio-bridge.d.ts.map +1 -0
- package/dist/stdio-bridge.js +157 -0
- package/dist/stdio-bridge.js.map +1 -0
- package/dist/stdio-server.d.ts +7 -0
- package/dist/stdio-server.d.ts.map +1 -0
- package/dist/stdio-server.js +396 -0
- package/dist/stdio-server.js.map +1 -0
- package/dist/storage.d.ts +65 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +328 -0
- package/dist/storage.js.map +1 -0
- package/dist/streaming-wrapper.d.ts +63 -0
- package/dist/streaming-wrapper.d.ts.map +1 -0
- package/dist/streaming-wrapper.js +452 -0
- package/dist/streaming-wrapper.js.map +1 -0
- package/dist/tools/async.d.ts +28 -0
- package/dist/tools/async.d.ts.map +1 -0
- package/dist/tools/async.js +167 -0
- package/dist/tools/async.js.map +1 -0
- package/dist/tools/chat.d.ts +29 -0
- package/dist/tools/chat.d.ts.map +1 -0
- package/dist/tools/chat.js +233 -0
- package/dist/tools/chat.js.map +1 -0
- package/dist/tools/projects.d.ts +19 -0
- package/dist/tools/projects.d.ts.map +1 -0
- package/dist/tools/projects.js +219 -0
- package/dist/tools/projects.js.map +1 -0
- package/dist/tools/query.d.ts +13 -0
- package/dist/tools/query.d.ts.map +1 -0
- package/dist/tools/query.js +178 -0
- package/dist/tools/query.js.map +1 -0
- package/dist/types.d.ts +330 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +90 -0
- package/dist/types.js.map +1 -0
- package/package.json +89 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../src/tools/async.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { ChatPerplexityParams, ReadChatParams, Config, PerplexityResponse, ErrorResponse, ChatMetadata, Conversation } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Handles the chat_perplexity tool - conversational interface with storage
|
|
4
|
+
*/
|
|
5
|
+
export declare function handleChatPerplexity(params: ChatPerplexityParams, config: Config): Promise<(PerplexityResponse & {
|
|
6
|
+
chat_id: string;
|
|
7
|
+
selected_model: string;
|
|
8
|
+
model_selection_reason: string;
|
|
9
|
+
conversation_length: number;
|
|
10
|
+
}) | ErrorResponse>;
|
|
11
|
+
/**
|
|
12
|
+
* Handles the list_chats_perplexity tool - lists all conversations
|
|
13
|
+
*/
|
|
14
|
+
export declare function handleListChats(config: Config): Promise<ChatMetadata[] | ErrorResponse>;
|
|
15
|
+
/**
|
|
16
|
+
* Handles the read_chat_perplexity tool - retrieves conversation history
|
|
17
|
+
*/
|
|
18
|
+
export declare function handleReadChat(params: ReadChatParams, config: Config): Promise<Conversation | ErrorResponse>;
|
|
19
|
+
/**
|
|
20
|
+
* Gets storage statistics for the project
|
|
21
|
+
*/
|
|
22
|
+
export declare function handleStorageStats(config: Config): Promise<{
|
|
23
|
+
total_conversations: number;
|
|
24
|
+
total_messages: number;
|
|
25
|
+
storage_size_bytes: number;
|
|
26
|
+
last_activity: string | null;
|
|
27
|
+
storage_path: string;
|
|
28
|
+
} | ErrorResponse>;
|
|
29
|
+
//# sourceMappingURL=chat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/tools/chat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,cAAc,EACd,MAAM,EACN,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,YAAY,EACb,MAAM,aAAa,CAAC;AAKrB;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,oBAAoB,EAC5B,MAAM,EAAE,MAAM,GACb,OAAO,CACN,CAAC,kBAAkB,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC,GACF,aAAa,CAChB,CA6JA;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,aAAa,CAAC,CA2B7F;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,YAAY,GAAG,aAAa,CAAC,CA2BvC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAC7D;IACE,mBAAmB,EAAE,MAAM,CAAC;IAC5B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,CAAC;CACtB,GACD,aAAa,CAChB,CAiCA"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
import { PerplexityApiClient } from '../perplexity-api.js';
|
|
2
|
+
import { StorageManager, StorageError } from '../storage.js';
|
|
3
|
+
import { selectOptimalModel } from '../models.js';
|
|
4
|
+
/**
|
|
5
|
+
* Handles the chat_perplexity tool - conversational interface with storage
|
|
6
|
+
*/
|
|
7
|
+
export async function handleChatPerplexity(params, config) {
|
|
8
|
+
try {
|
|
9
|
+
const apiClient = new PerplexityApiClient(config);
|
|
10
|
+
// Detect project and create project-aware config
|
|
11
|
+
const { detectProjectWithSuggestions } = await import('./projects.js');
|
|
12
|
+
const projectName = await detectProjectWithSuggestions(params.project_name, config);
|
|
13
|
+
// Create project-specific storage config with chat subdirectory
|
|
14
|
+
const projectConfig = {
|
|
15
|
+
...config,
|
|
16
|
+
project_root: config.project_root,
|
|
17
|
+
storage_path: `projects/${projectName}/chat`,
|
|
18
|
+
};
|
|
19
|
+
const storageManager = new StorageManager(projectConfig);
|
|
20
|
+
let conversation;
|
|
21
|
+
let chatId;
|
|
22
|
+
let isNewChat = false;
|
|
23
|
+
// Handle existing vs new conversation
|
|
24
|
+
if (params.chat_id) {
|
|
25
|
+
// Continue existing conversation
|
|
26
|
+
conversation = await storageManager.getConversation(params.chat_id);
|
|
27
|
+
chatId = params.chat_id;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// Create new conversation
|
|
31
|
+
if (!params.title) {
|
|
32
|
+
return {
|
|
33
|
+
error: {
|
|
34
|
+
type: 'validation_error',
|
|
35
|
+
message: 'Title is required for new conversations',
|
|
36
|
+
details: {
|
|
37
|
+
suggestion: 'Provide a title parameter when starting a new conversation',
|
|
38
|
+
},
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
// Select model for the conversation
|
|
43
|
+
const selectedModel = selectOptimalModel(params.message, params.model, config.default_model);
|
|
44
|
+
// Create new conversation with the user's first message
|
|
45
|
+
const userMessage = { role: 'user', content: params.message };
|
|
46
|
+
chatId = await storageManager.createConversation(params.title, selectedModel, userMessage);
|
|
47
|
+
conversation = await storageManager.getConversation(chatId);
|
|
48
|
+
isNewChat = true;
|
|
49
|
+
}
|
|
50
|
+
// Add user message to existing conversation
|
|
51
|
+
if (!isNewChat) {
|
|
52
|
+
const userMessage = { role: 'user', content: params.message };
|
|
53
|
+
await storageManager.addMessage(chatId, userMessage);
|
|
54
|
+
conversation = await storageManager.getConversation(chatId);
|
|
55
|
+
}
|
|
56
|
+
// Select model (use conversation's model or allow override)
|
|
57
|
+
const selectedModel = params.model || conversation.metadata.model;
|
|
58
|
+
// Prepare the API request with conversation history
|
|
59
|
+
const request = {
|
|
60
|
+
model: selectedModel,
|
|
61
|
+
messages: conversation.messages,
|
|
62
|
+
temperature: params.temperature ?? 0.2,
|
|
63
|
+
...(params.max_tokens && { max_tokens: params.max_tokens }),
|
|
64
|
+
};
|
|
65
|
+
const response = await apiClient.chatCompletion(request);
|
|
66
|
+
// Add assistant's response to conversation
|
|
67
|
+
if (response.choices[0]?.message?.content) {
|
|
68
|
+
const assistantMessage = {
|
|
69
|
+
role: 'assistant',
|
|
70
|
+
content: response.choices[0].message.content,
|
|
71
|
+
};
|
|
72
|
+
await storageManager.addMessage(chatId, assistantMessage);
|
|
73
|
+
}
|
|
74
|
+
// Get updated conversation for final message count
|
|
75
|
+
const updatedConversation = await storageManager.getConversation(chatId);
|
|
76
|
+
// Save conversation report if requested
|
|
77
|
+
let reportSaved = false;
|
|
78
|
+
let reportPath;
|
|
79
|
+
if (params.save_report && response.choices[0]?.message?.content) {
|
|
80
|
+
try {
|
|
81
|
+
// Create a formatted conversation export for potential saving
|
|
82
|
+
// Note: conversationData would be used if save_report was implemented
|
|
83
|
+
// const conversationData = {
|
|
84
|
+
// chat_id: chatId,
|
|
85
|
+
// title: updatedConversation.metadata.title,
|
|
86
|
+
// model: selectedModel,
|
|
87
|
+
// created_at: updatedConversation.metadata.created_at,
|
|
88
|
+
// updated_at: updatedConversation.metadata.updated_at,
|
|
89
|
+
// message_count: updatedConversation.messages.length,
|
|
90
|
+
// conversation: updatedConversation.messages.map((msg, index) => ({
|
|
91
|
+
// message_number: index + 1,
|
|
92
|
+
// role: msg.role,
|
|
93
|
+
// content: msg.content,
|
|
94
|
+
// timestamp: 'N/A' // Messages don't have individual timestamps
|
|
95
|
+
// }))
|
|
96
|
+
// };
|
|
97
|
+
const reportContent = `# Chat Export: ${updatedConversation.metadata.title}\n\n` +
|
|
98
|
+
`**Chat ID:** ${chatId}\n` +
|
|
99
|
+
`**Model:** ${selectedModel}\n` +
|
|
100
|
+
`**Created:** ${new Date(updatedConversation.metadata.created_at).toLocaleString()}\n` +
|
|
101
|
+
`**Messages:** ${updatedConversation.messages.length}\n\n` +
|
|
102
|
+
'## Conversation\n\n' +
|
|
103
|
+
updatedConversation.messages
|
|
104
|
+
.map((msg, index) => `### Message ${index + 1} (${msg.role})\n\n${msg.content}\n`)
|
|
105
|
+
.join('\n');
|
|
106
|
+
const reportId = await storageManager.saveReport(reportContent, `Chat: ${updatedConversation.metadata.title}`);
|
|
107
|
+
reportSaved = true;
|
|
108
|
+
reportPath = `projects/${params.project_name || 'default-project'}/chat/reports/${reportId}`;
|
|
109
|
+
}
|
|
110
|
+
catch (storageError) {
|
|
111
|
+
// Don't fail the entire request if saving fails
|
|
112
|
+
console.warn('Failed to save chat report:', storageError);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return {
|
|
116
|
+
...response,
|
|
117
|
+
chat_id: chatId,
|
|
118
|
+
selected_model: selectedModel,
|
|
119
|
+
model_selection_reason: params.model
|
|
120
|
+
? 'user_specified'
|
|
121
|
+
: isNewChat
|
|
122
|
+
? 'auto_selected'
|
|
123
|
+
: 'conversation_default',
|
|
124
|
+
conversation_length: updatedConversation.messages.length,
|
|
125
|
+
...(params.save_report && { report_saved: reportSaved }),
|
|
126
|
+
...(reportPath && { report_path: reportPath }),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
catch (error) {
|
|
130
|
+
if (error instanceof StorageError) {
|
|
131
|
+
return StorageManager.handleError(error);
|
|
132
|
+
}
|
|
133
|
+
return PerplexityApiClient.handleError(error, {
|
|
134
|
+
model: params.model || config.default_model,
|
|
135
|
+
query: params.message,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Handles the list_chats_perplexity tool - lists all conversations
|
|
141
|
+
*/
|
|
142
|
+
export async function handleListChats(config) {
|
|
143
|
+
try {
|
|
144
|
+
// Use default project for listing chats
|
|
145
|
+
const { detectProjectWithSuggestions } = await import('./projects.js');
|
|
146
|
+
const projectName = await detectProjectWithSuggestions(undefined, config);
|
|
147
|
+
const projectConfig = {
|
|
148
|
+
...config,
|
|
149
|
+
storage_path: `projects/${projectName}/chat`,
|
|
150
|
+
};
|
|
151
|
+
const storageManager = new StorageManager(projectConfig);
|
|
152
|
+
return await storageManager.listConversations();
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
if (error instanceof StorageError) {
|
|
156
|
+
return StorageManager.handleError(error);
|
|
157
|
+
}
|
|
158
|
+
return {
|
|
159
|
+
error: {
|
|
160
|
+
type: 'storage_error',
|
|
161
|
+
message: error instanceof Error ? error.message : 'Unknown error listing conversations',
|
|
162
|
+
details: {
|
|
163
|
+
suggestion: 'Check storage configuration and file permissions',
|
|
164
|
+
},
|
|
165
|
+
},
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Handles the read_chat_perplexity tool - retrieves conversation history
|
|
171
|
+
*/
|
|
172
|
+
export async function handleReadChat(params, config) {
|
|
173
|
+
try {
|
|
174
|
+
// Use default project for reading chats
|
|
175
|
+
const { detectProjectWithSuggestions } = await import('./projects.js');
|
|
176
|
+
const projectName = await detectProjectWithSuggestions(undefined, config);
|
|
177
|
+
const projectConfig = {
|
|
178
|
+
...config,
|
|
179
|
+
storage_path: `projects/${projectName}/chat`,
|
|
180
|
+
};
|
|
181
|
+
const storageManager = new StorageManager(projectConfig);
|
|
182
|
+
return await storageManager.getConversation(params.chat_id);
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
if (error instanceof StorageError) {
|
|
186
|
+
return StorageManager.handleError(error);
|
|
187
|
+
}
|
|
188
|
+
return {
|
|
189
|
+
error: {
|
|
190
|
+
type: 'storage_error',
|
|
191
|
+
message: error instanceof Error ? error.message : 'Unknown error reading conversation',
|
|
192
|
+
details: {
|
|
193
|
+
suggestion: 'Check that the conversation ID exists and is accessible',
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Gets storage statistics for the project
|
|
201
|
+
*/
|
|
202
|
+
export async function handleStorageStats(config) {
|
|
203
|
+
try {
|
|
204
|
+
// Use default project for storage stats
|
|
205
|
+
const { detectProjectWithSuggestions } = await import('./projects.js');
|
|
206
|
+
const projectName = await detectProjectWithSuggestions(undefined, config);
|
|
207
|
+
const projectConfig = {
|
|
208
|
+
...config,
|
|
209
|
+
storage_path: `projects/${projectName}/chat`,
|
|
210
|
+
};
|
|
211
|
+
const storageManager = new StorageManager(projectConfig);
|
|
212
|
+
const stats = await storageManager.getStorageStats();
|
|
213
|
+
return {
|
|
214
|
+
...stats,
|
|
215
|
+
storage_path: `projects/${projectName}/chat`,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
if (error instanceof StorageError) {
|
|
220
|
+
return StorageManager.handleError(error);
|
|
221
|
+
}
|
|
222
|
+
return {
|
|
223
|
+
error: {
|
|
224
|
+
type: 'storage_error',
|
|
225
|
+
message: error instanceof Error ? error.message : 'Unknown error getting storage statistics',
|
|
226
|
+
details: {
|
|
227
|
+
suggestion: 'Check storage configuration and file permissions',
|
|
228
|
+
},
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/tools/chat.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
+
import type { Config, ListProjectsParams, DeleteProjectParams } from '../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Lists all existing projects with optional detailed statistics
|
|
5
|
+
*/
|
|
6
|
+
export declare function handleListProjects(args: ListProjectsParams, config: Config): Promise<CallToolResult>;
|
|
7
|
+
/**
|
|
8
|
+
* Helper function to handle project detection with user-friendly error messages
|
|
9
|
+
*/
|
|
10
|
+
export declare function detectProjectWithSuggestions(explicitProject: string | undefined, config: Config): Promise<string>;
|
|
11
|
+
/**
|
|
12
|
+
* Deletes a project and all its data permanently
|
|
13
|
+
*/
|
|
14
|
+
export declare function handleDeleteProject(args: DeleteProjectParams, config: Config): Promise<CallToolResult>;
|
|
15
|
+
/**
|
|
16
|
+
* Gets project-aware storage path for a given project
|
|
17
|
+
*/
|
|
18
|
+
export declare function getProjectStoragePath(config: Config, projectName: string): string;
|
|
19
|
+
//# sourceMappingURL=projects.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAC;AAEzE,OAAO,KAAK,EAAE,MAAM,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEnF;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC,CA8GzB;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAChD,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,mBAAmB,EACzB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,cAAc,CAAC,CA0FzB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAGjF"}
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { ProjectManager, ProjectDetectionError } from '../project-manager.js';
|
|
2
|
+
/**
|
|
3
|
+
* Lists all existing projects with optional detailed statistics
|
|
4
|
+
*/
|
|
5
|
+
export async function handleListProjects(args, config) {
|
|
6
|
+
try {
|
|
7
|
+
const projectManager = new ProjectManager(config.project_root);
|
|
8
|
+
if (args.detailed) {
|
|
9
|
+
const projectsInfo = await projectManager.getProjectsInfo();
|
|
10
|
+
if (projectsInfo.length === 0) {
|
|
11
|
+
return {
|
|
12
|
+
content: [
|
|
13
|
+
{
|
|
14
|
+
type: 'text',
|
|
15
|
+
text: `📁 **No Projects Found**
|
|
16
|
+
|
|
17
|
+
No project folders exist yet in your storage directory.
|
|
18
|
+
|
|
19
|
+
**Next Steps:**
|
|
20
|
+
- Use any Perplexity tool with a \`project_name\` parameter to create your first project
|
|
21
|
+
- Or run from a project directory for auto-detection
|
|
22
|
+
|
|
23
|
+
**Storage Location:** \`${config.project_root}/projects/\``,
|
|
24
|
+
},
|
|
25
|
+
],
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
let response = `📁 **Project Directory Overview** (${projectsInfo.length} project${projectsInfo.length === 1 ? '' : 's'})\n\n`;
|
|
29
|
+
projectsInfo.forEach((project, index) => {
|
|
30
|
+
const lastUsed = project.lastUsed
|
|
31
|
+
? `Last used: ${new Date(project.lastUsed).toLocaleDateString()}`
|
|
32
|
+
: 'Never used';
|
|
33
|
+
response += `**${index + 1}. \`${project.name}\`**
|
|
34
|
+
- 💬 ${project.chatCount} conversation${project.chatCount === 1 ? '' : 's'}
|
|
35
|
+
- 📊 ${project.reportCount} research report${project.reportCount === 1 ? '' : 's'}
|
|
36
|
+
- ⏳ ${project.jobCount} async job${project.jobCount === 1 ? '' : 's'}
|
|
37
|
+
- 🕒 ${lastUsed}
|
|
38
|
+
|
|
39
|
+
`;
|
|
40
|
+
});
|
|
41
|
+
response += `**Storage Location:** \`${config.project_root}/projects/\`
|
|
42
|
+
|
|
43
|
+
**Quick Actions:**
|
|
44
|
+
- Use \`project_name: "project-name"\` in any tool to work with a specific project
|
|
45
|
+
- Projects are automatically organized and isolated from each other`;
|
|
46
|
+
return {
|
|
47
|
+
content: [
|
|
48
|
+
{
|
|
49
|
+
type: 'text',
|
|
50
|
+
text: response,
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
// Simple list view
|
|
57
|
+
const projectNames = await projectManager.listExistingProjects();
|
|
58
|
+
if (projectNames.length === 0) {
|
|
59
|
+
return {
|
|
60
|
+
content: [
|
|
61
|
+
{
|
|
62
|
+
type: 'text',
|
|
63
|
+
text: `📁 **No Projects Found**
|
|
64
|
+
|
|
65
|
+
No project folders exist yet in your storage directory.
|
|
66
|
+
|
|
67
|
+
**To create your first project:**
|
|
68
|
+
1. Use any Perplexity tool with \`project_name: "my-project"\`
|
|
69
|
+
2. Or run from a project directory for auto-detection
|
|
70
|
+
|
|
71
|
+
**Storage Location:** \`${config.project_root}/projects/\``,
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
let response = `📁 **Available Projects** (${projectNames.length} total)\n\n`;
|
|
77
|
+
projectNames.forEach((name, index) => {
|
|
78
|
+
response += `${index + 1}. \`${name}\`\n`;
|
|
79
|
+
});
|
|
80
|
+
response += `\n**Usage:**
|
|
81
|
+
- Add \`project_name: "project-name"\` to any tool to work with that project
|
|
82
|
+
- Use \`list_projects_perplexity: {detailed: true}\` for detailed statistics
|
|
83
|
+
|
|
84
|
+
**Storage Location:** \`${config.project_root}/projects/\``;
|
|
85
|
+
return {
|
|
86
|
+
content: [
|
|
87
|
+
{
|
|
88
|
+
type: 'text',
|
|
89
|
+
text: response,
|
|
90
|
+
},
|
|
91
|
+
],
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
return {
|
|
97
|
+
content: [
|
|
98
|
+
{
|
|
99
|
+
type: 'text',
|
|
100
|
+
text: `❌ **Error listing projects:** ${error instanceof Error ? error.message : 'Unknown error occurred'}`,
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Helper function to handle project detection with user-friendly error messages
|
|
108
|
+
*/
|
|
109
|
+
export async function detectProjectWithSuggestions(explicitProject, config) {
|
|
110
|
+
const projectManager = new ProjectManager(config.project_root);
|
|
111
|
+
try {
|
|
112
|
+
return await projectManager.detectProject(explicitProject, config.session_id);
|
|
113
|
+
}
|
|
114
|
+
catch (error) {
|
|
115
|
+
if (error instanceof ProjectDetectionError) {
|
|
116
|
+
// Use a default project name instead of throwing an error
|
|
117
|
+
return 'default-project';
|
|
118
|
+
}
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Deletes a project and all its data permanently
|
|
124
|
+
*/
|
|
125
|
+
export async function handleDeleteProject(args, config) {
|
|
126
|
+
const projectManager = new ProjectManager(config.project_root);
|
|
127
|
+
// Safety check: require confirmation
|
|
128
|
+
if (!args.confirm) {
|
|
129
|
+
return {
|
|
130
|
+
content: [
|
|
131
|
+
{
|
|
132
|
+
type: 'text',
|
|
133
|
+
text: `⚠️ **Deletion Requires Confirmation**
|
|
134
|
+
|
|
135
|
+
To delete project "${args.project_name}" and ALL its data permanently, you must set \`confirm: true\`.
|
|
136
|
+
|
|
137
|
+
**This will permanently delete:**
|
|
138
|
+
- All conversations and chat history
|
|
139
|
+
- All research reports
|
|
140
|
+
- All async job results
|
|
141
|
+
- The entire project directory
|
|
142
|
+
|
|
143
|
+
**Usage:**
|
|
144
|
+
\`\`\`
|
|
145
|
+
delete_project_perplexity: {
|
|
146
|
+
project_name: "${args.project_name}",
|
|
147
|
+
confirm: true
|
|
148
|
+
}
|
|
149
|
+
\`\`\`
|
|
150
|
+
|
|
151
|
+
**⚠️ This action cannot be undone!**`,
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
try {
|
|
157
|
+
const result = await projectManager.deleteProject(args.project_name);
|
|
158
|
+
if (result.deleted) {
|
|
159
|
+
let response = `✅ **Project Successfully Deleted**
|
|
160
|
+
|
|
161
|
+
${result.message}
|
|
162
|
+
|
|
163
|
+
`;
|
|
164
|
+
if (result.stats && result.stats.totalFiles > 0) {
|
|
165
|
+
response += `**What was deleted:**
|
|
166
|
+
- 💬 ${result.stats.chatCount} conversation${result.stats.chatCount === 1 ? '' : 's'}
|
|
167
|
+
- 📊 ${result.stats.reportCount} research report${result.stats.reportCount === 1 ? '' : 's'}
|
|
168
|
+
- ⏳ ${result.stats.jobCount} async job${result.stats.jobCount === 1 ? '' : 's'}
|
|
169
|
+
- 📁 ${result.stats.totalFiles} total file${result.stats.totalFiles === 1 ? '' : 's'}
|
|
170
|
+
|
|
171
|
+
`;
|
|
172
|
+
}
|
|
173
|
+
response += `The project has been completely removed from your storage directory.`;
|
|
174
|
+
return {
|
|
175
|
+
content: [
|
|
176
|
+
{
|
|
177
|
+
type: 'text',
|
|
178
|
+
text: response,
|
|
179
|
+
},
|
|
180
|
+
],
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
return {
|
|
185
|
+
content: [
|
|
186
|
+
{
|
|
187
|
+
type: 'text',
|
|
188
|
+
text: `❌ **Deletion Failed**
|
|
189
|
+
|
|
190
|
+
${result.message}
|
|
191
|
+
|
|
192
|
+
**Troubleshooting:**
|
|
193
|
+
- Check that the project name is spelled correctly
|
|
194
|
+
- Use \`list_projects_perplexity\` to see available projects
|
|
195
|
+
- Ensure you have write permissions to the storage directory`,
|
|
196
|
+
},
|
|
197
|
+
],
|
|
198
|
+
};
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
catch (error) {
|
|
202
|
+
return {
|
|
203
|
+
content: [
|
|
204
|
+
{
|
|
205
|
+
type: 'text',
|
|
206
|
+
text: `❌ **Error deleting project:** ${error instanceof Error ? error.message : 'Unknown error occurred'}`,
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Gets project-aware storage path for a given project
|
|
214
|
+
*/
|
|
215
|
+
export function getProjectStoragePath(config, projectName) {
|
|
216
|
+
const projectManager = new ProjectManager(config.project_root);
|
|
217
|
+
return projectManager.getProjectStoragePath(projectName);
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=projects.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/tools/projects.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { AskPerplexityParams, ResearchPerplexityParams, Config, PerplexityResponse, StreamingCallbacks, ErrorResponse, MCPResponse } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Handles the ask_perplexity tool - stateless queries with optional streaming
|
|
4
|
+
*/
|
|
5
|
+
export declare function handleAskPerplexity(params: AskPerplexityParams, config: Config, streamingCallbacks?: StreamingCallbacks): Promise<MCPResponse>;
|
|
6
|
+
/**
|
|
7
|
+
* Handles the research_perplexity tool - deep research with optional saving
|
|
8
|
+
*/
|
|
9
|
+
export declare function handleResearchPerplexity(params: ResearchPerplexityParams, config: Config): Promise<(PerplexityResponse & {
|
|
10
|
+
report_saved?: boolean;
|
|
11
|
+
report_path?: string;
|
|
12
|
+
}) | ErrorResponse>;
|
|
13
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,WAAW,EACZ,MAAM,aAAa,CAAC;AAKrB;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,MAAM,EACd,kBAAkB,CAAC,EAAE,kBAAkB,GACtC,OAAO,CAAC,WAAW,CAAC,CA0GtB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,wBAAwB,EAChC,MAAM,EAAE,MAAM,GACb,OAAO,CACR,CAAC,kBAAkB,GAAG;IAAE,YAAY,CAAC,EAAE,OAAO,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,aAAa,CACxF,CA4FA"}
|