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.
Files changed (96) hide show
  1. package/README.md +638 -0
  2. package/bin/mcp-perplexity-pro +8 -0
  3. package/bin/mcp-perplexity-pro-stdio +9 -0
  4. package/dist/claude-code-bridge.d.ts +3 -0
  5. package/dist/claude-code-bridge.d.ts.map +1 -0
  6. package/dist/claude-code-bridge.js +111 -0
  7. package/dist/claude-code-bridge.js.map +1 -0
  8. package/dist/http-index.d.ts +3 -0
  9. package/dist/http-index.d.ts.map +1 -0
  10. package/dist/http-index.js +38 -0
  11. package/dist/http-index.js.map +1 -0
  12. package/dist/http-server.d.ts +33 -0
  13. package/dist/http-server.d.ts.map +1 -0
  14. package/dist/http-server.js +362 -0
  15. package/dist/http-server.js.map +1 -0
  16. package/dist/http-streaming-server.d.ts +4 -0
  17. package/dist/http-streaming-server.d.ts.map +1 -0
  18. package/dist/http-streaming-server.js +514 -0
  19. package/dist/http-streaming-server.js.map +1 -0
  20. package/dist/index.d.ts +3 -0
  21. package/dist/index.d.ts.map +1 -0
  22. package/dist/index.js +43 -0
  23. package/dist/index.js.map +1 -0
  24. package/dist/launcher.d.ts +3 -0
  25. package/dist/launcher.d.ts.map +1 -0
  26. package/dist/launcher.js +209 -0
  27. package/dist/launcher.js.map +1 -0
  28. package/dist/mcp-server.d.ts +5 -0
  29. package/dist/mcp-server.d.ts.map +1 -0
  30. package/dist/mcp-server.js +329 -0
  31. package/dist/mcp-server.js.map +1 -0
  32. package/dist/models.d.ts +45 -0
  33. package/dist/models.d.ts.map +1 -0
  34. package/dist/models.js +284 -0
  35. package/dist/models.js.map +1 -0
  36. package/dist/perplexity-api.d.ts +59 -0
  37. package/dist/perplexity-api.d.ts.map +1 -0
  38. package/dist/perplexity-api.js +455 -0
  39. package/dist/perplexity-api.js.map +1 -0
  40. package/dist/port-utils.d.ts +31 -0
  41. package/dist/port-utils.d.ts.map +1 -0
  42. package/dist/port-utils.js +114 -0
  43. package/dist/port-utils.js.map +1 -0
  44. package/dist/project-manager.d.ts +91 -0
  45. package/dist/project-manager.d.ts.map +1 -0
  46. package/dist/project-manager.js +422 -0
  47. package/dist/project-manager.js.map +1 -0
  48. package/dist/simple-streaming.d.ts +26 -0
  49. package/dist/simple-streaming.d.ts.map +1 -0
  50. package/dist/simple-streaming.js +75 -0
  51. package/dist/simple-streaming.js.map +1 -0
  52. package/dist/sse-index.d.ts +3 -0
  53. package/dist/sse-index.d.ts.map +1 -0
  54. package/dist/sse-index.js +38 -0
  55. package/dist/sse-index.js.map +1 -0
  56. package/dist/sse-server.d.ts +4 -0
  57. package/dist/sse-server.d.ts.map +1 -0
  58. package/dist/sse-server.js +208 -0
  59. package/dist/sse-server.js.map +1 -0
  60. package/dist/stdio-bridge.d.ts +21 -0
  61. package/dist/stdio-bridge.d.ts.map +1 -0
  62. package/dist/stdio-bridge.js +157 -0
  63. package/dist/stdio-bridge.js.map +1 -0
  64. package/dist/stdio-server.d.ts +7 -0
  65. package/dist/stdio-server.d.ts.map +1 -0
  66. package/dist/stdio-server.js +396 -0
  67. package/dist/stdio-server.js.map +1 -0
  68. package/dist/storage.d.ts +65 -0
  69. package/dist/storage.d.ts.map +1 -0
  70. package/dist/storage.js +328 -0
  71. package/dist/storage.js.map +1 -0
  72. package/dist/streaming-wrapper.d.ts +63 -0
  73. package/dist/streaming-wrapper.d.ts.map +1 -0
  74. package/dist/streaming-wrapper.js +452 -0
  75. package/dist/streaming-wrapper.js.map +1 -0
  76. package/dist/tools/async.d.ts +28 -0
  77. package/dist/tools/async.d.ts.map +1 -0
  78. package/dist/tools/async.js +167 -0
  79. package/dist/tools/async.js.map +1 -0
  80. package/dist/tools/chat.d.ts +29 -0
  81. package/dist/tools/chat.d.ts.map +1 -0
  82. package/dist/tools/chat.js +233 -0
  83. package/dist/tools/chat.js.map +1 -0
  84. package/dist/tools/projects.d.ts +19 -0
  85. package/dist/tools/projects.d.ts.map +1 -0
  86. package/dist/tools/projects.js +219 -0
  87. package/dist/tools/projects.js.map +1 -0
  88. package/dist/tools/query.d.ts +13 -0
  89. package/dist/tools/query.d.ts.map +1 -0
  90. package/dist/tools/query.js +178 -0
  91. package/dist/tools/query.js.map +1 -0
  92. package/dist/types.d.ts +330 -0
  93. package/dist/types.d.ts.map +1 -0
  94. package/dist/types.js +90 -0
  95. package/dist/types.js.map +1 -0
  96. package/package.json +89 -0
@@ -0,0 +1,178 @@
1
+ import { PerplexityApiClient } from '../perplexity-api.js';
2
+ import { StorageManager, StorageError } from '../storage.js';
3
+ import { selectOptimalModel } from '../models.js';
4
+ /**
5
+ * Handles the ask_perplexity tool - stateless queries with optional streaming
6
+ */
7
+ export async function handleAskPerplexity(params, config, streamingCallbacks) {
8
+ console.error('handleAskPerplexity called with:', { query: params.query, model: params.model });
9
+ console.error('Config API key:', config.api_key ? config.api_key.substring(0, 10) + '...' : 'MISSING');
10
+ try {
11
+ const apiClient = new PerplexityApiClient(config);
12
+ // Detect project and create project-aware config if saving is requested
13
+ let storageManager;
14
+ let projectName;
15
+ let projectConfig;
16
+ if (params.save_report) {
17
+ const { detectProjectWithSuggestions } = await import('./projects.js');
18
+ projectName = await detectProjectWithSuggestions(params.project_name, config);
19
+ // Create project-specific storage config with ask subdirectory
20
+ projectConfig = {
21
+ ...config,
22
+ storage_path: `projects/${projectName}/ask`,
23
+ };
24
+ storageManager = new StorageManager(projectConfig);
25
+ }
26
+ // Select optimal model based on query or use explicit model
27
+ const selectedModel = selectOptimalModel(params.query, params.model, config.default_model);
28
+ // Prepare the request
29
+ const request = {
30
+ model: selectedModel,
31
+ messages: [{ role: 'user', content: params.query }],
32
+ temperature: params.temperature ?? 0.2,
33
+ ...(params.max_tokens && { max_tokens: params.max_tokens }),
34
+ ...(params.search_domain_filter && { search_domain_filter: params.search_domain_filter }),
35
+ ...(params.return_images !== undefined && { return_images: params.return_images }),
36
+ ...(params.return_related_questions !== undefined && {
37
+ return_related_questions: params.return_related_questions,
38
+ }),
39
+ };
40
+ // Use streaming if callbacks are provided, otherwise use regular completion
41
+ let response;
42
+ let content;
43
+ if (streamingCallbacks) {
44
+ // Stream the response with real-time callbacks
45
+ response = await apiClient.chatCompletionStream(request, streamingCallbacks);
46
+ content = response.choices[0]?.message?.content || 'No response generated';
47
+ }
48
+ else {
49
+ // Use regular completion
50
+ response = await apiClient.chatCompletion(request);
51
+ content = response.choices[0]?.message?.content || 'No response generated';
52
+ }
53
+ // Save report if requested
54
+ let reportSaved = false;
55
+ let reportPath;
56
+ if (params.save_report && storageManager && projectName && content) {
57
+ try {
58
+ const reportId = await storageManager.saveReport(content, params.query);
59
+ reportSaved = true;
60
+ reportPath = `projects/${projectName}/ask/reports/${reportId}`;
61
+ }
62
+ catch (storageError) {
63
+ // Don't fail the entire request if saving fails
64
+ console.warn('Failed to save ask report:', storageError);
65
+ }
66
+ }
67
+ // Construct response text with save information if applicable
68
+ let responseText = content;
69
+ if (params.save_report) {
70
+ if (reportSaved && reportPath) {
71
+ responseText += `\n\n---\n**Report saved to:** ${reportPath}`;
72
+ }
73
+ else {
74
+ responseText += '\n\n---\n**Note:** Report save was requested but failed.';
75
+ }
76
+ }
77
+ return {
78
+ content: [
79
+ {
80
+ type: 'text',
81
+ text: responseText,
82
+ },
83
+ ],
84
+ };
85
+ }
86
+ catch (error) {
87
+ const errorResponse = PerplexityApiClient.handleError(error, {
88
+ model: params.model || config.default_model,
89
+ query: params.query,
90
+ });
91
+ return {
92
+ content: [
93
+ {
94
+ type: 'text',
95
+ text: `Error: ${errorResponse.error.message}`,
96
+ },
97
+ ],
98
+ };
99
+ }
100
+ }
101
+ /**
102
+ * Handles the research_perplexity tool - deep research with optional saving
103
+ */
104
+ export async function handleResearchPerplexity(params, config) {
105
+ try {
106
+ // Debug logging to see what params we're receiving
107
+ console.error('handleResearchPerplexity params:', JSON.stringify(params, null, 2));
108
+ const apiClient = new PerplexityApiClient(config);
109
+ // Detect project and create project-aware config
110
+ const { detectProjectWithSuggestions } = await import('./projects.js');
111
+ const projectName = await detectProjectWithSuggestions(params.project_name, config);
112
+ // Create project-specific storage config with research subdirectory
113
+ const projectConfig = {
114
+ ...config,
115
+ storage_path: `projects/${projectName}/research`,
116
+ };
117
+ const storageManager = new StorageManager(projectConfig);
118
+ // Use sonar-deep-research by default, but allow override
119
+ const selectedModel = params.model || 'sonar-deep-research';
120
+ // For sonar-deep-research, automatically use async processing to avoid timeouts
121
+ if (selectedModel === 'sonar-deep-research') {
122
+ console.warn('Using sonar-deep-research model - consider using async_perplexity for long queries to avoid timeouts');
123
+ // Continue with synchronous processing but with warning
124
+ }
125
+ // Prepare the research request with comprehensive settings
126
+ const request = {
127
+ model: selectedModel,
128
+ messages: [
129
+ {
130
+ role: 'system',
131
+ content: 'You are a research expert. Provide comprehensive, well-structured research with clear citations and analysis. Include multiple perspectives and sources when available.',
132
+ },
133
+ {
134
+ role: 'user',
135
+ content: params.topic || params.query || 'No research topic provided',
136
+ },
137
+ ],
138
+ temperature: 0.1, // Lower temperature for more consistent research
139
+ max_tokens: params.max_tokens || 4000, // Longer responses for research
140
+ return_related_questions: true,
141
+ web_search_options: {
142
+ search_context_size: 'high',
143
+ },
144
+ };
145
+ const response = await apiClient.chatCompletion(request);
146
+ // Save report if requested
147
+ let reportSaved = false;
148
+ let reportPath;
149
+ if (params.save_report && response.choices[0]?.message?.content) {
150
+ try {
151
+ const reportId = await storageManager.saveReport(response.choices[0].message.content, params.topic || params.query || 'Research Report');
152
+ reportSaved = true;
153
+ reportPath = `projects/${projectName}/research/reports/${reportId}`;
154
+ }
155
+ catch (storageError) {
156
+ // Don't fail the entire request if saving fails
157
+ console.warn('Failed to save research report:', storageError);
158
+ }
159
+ }
160
+ return {
161
+ ...response,
162
+ selected_model: selectedModel,
163
+ model_selection_reason: params.model ? 'user_specified' : 'auto_selected_research',
164
+ report_saved: reportSaved,
165
+ ...(reportPath && { report_path: reportPath }),
166
+ };
167
+ }
168
+ catch (error) {
169
+ if (error instanceof StorageError) {
170
+ return StorageManager.handleError(error);
171
+ }
172
+ return PerplexityApiClient.handleError(error, {
173
+ model: params.model || 'sonar-deep-research',
174
+ query: params.topic,
175
+ });
176
+ }
177
+ }
178
+ //# sourceMappingURL=query.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.js","sourceRoot":"","sources":["../../src/tools/query.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,330 @@
1
+ import { z } from 'zod';
2
+ export type PerplexityModel = 'sonar' | 'sonar-pro' | 'sonar-reasoning' | 'sonar-reasoning-pro' | 'sonar-deep-research';
3
+ export declare const configSchema: z.ZodObject<{
4
+ api_key: z.ZodString;
5
+ default_model: z.ZodDefault<z.ZodEnum<["sonar", "sonar-pro", "sonar-reasoning", "sonar-reasoning-pro", "sonar-deep-research"]>>;
6
+ project_root: z.ZodString;
7
+ storage_path: z.ZodDefault<z.ZodString>;
8
+ session_id: z.ZodOptional<z.ZodString>;
9
+ }, "strip", z.ZodTypeAny, {
10
+ api_key: string;
11
+ default_model: "sonar" | "sonar-pro" | "sonar-reasoning" | "sonar-reasoning-pro" | "sonar-deep-research";
12
+ project_root: string;
13
+ storage_path: string;
14
+ session_id?: string | undefined;
15
+ }, {
16
+ api_key: string;
17
+ project_root: string;
18
+ default_model?: "sonar" | "sonar-pro" | "sonar-reasoning" | "sonar-reasoning-pro" | "sonar-deep-research" | undefined;
19
+ storage_path?: string | undefined;
20
+ session_id?: string | undefined;
21
+ }>;
22
+ export type Config = z.infer<typeof configSchema>;
23
+ export interface Message {
24
+ role: 'system' | 'user' | 'assistant';
25
+ content: string;
26
+ }
27
+ export interface ChatMessage {
28
+ role: 'system' | 'user' | 'assistant';
29
+ content: string;
30
+ timestamp: string;
31
+ }
32
+ export interface ChatCompletionRequest {
33
+ model: PerplexityModel;
34
+ messages: Message[];
35
+ temperature?: number;
36
+ max_tokens?: number;
37
+ }
38
+ export interface AsyncChatRequest {
39
+ model: PerplexityModel;
40
+ messages: Message[];
41
+ temperature?: number;
42
+ max_tokens?: number;
43
+ }
44
+ export interface AsyncJobReport {
45
+ id: string;
46
+ query: string;
47
+ model: PerplexityModel;
48
+ response?: string;
49
+ created_at?: string;
50
+ completed_at?: string;
51
+ }
52
+ export interface MCPResponse {
53
+ content: Array<{
54
+ type: 'text';
55
+ text: string;
56
+ }>;
57
+ }
58
+ export interface ChatMetadata {
59
+ id: string;
60
+ title: string;
61
+ created_at: string;
62
+ updated_at: string;
63
+ message_count: number;
64
+ model: PerplexityModel;
65
+ }
66
+ export interface Conversation {
67
+ metadata: ChatMetadata;
68
+ messages: Message[];
69
+ }
70
+ export interface PerplexityRequest {
71
+ model: PerplexityModel;
72
+ messages: Message[];
73
+ max_tokens?: number;
74
+ temperature?: number;
75
+ top_p?: number;
76
+ search_domain_filter?: string[];
77
+ return_images?: boolean;
78
+ return_related_questions?: boolean;
79
+ search_recency_filter?: string;
80
+ search_after_date_filter?: string;
81
+ search_before_date_filter?: string;
82
+ last_updated_after_filter?: string;
83
+ last_updated_before_filter?: string;
84
+ top_k?: number;
85
+ stream?: boolean;
86
+ presence_penalty?: number;
87
+ frequency_penalty?: number;
88
+ response_format?: Record<string, unknown>;
89
+ disable_search?: boolean;
90
+ enable_search_classifier?: boolean;
91
+ web_search_options?: {
92
+ search_context_size?: 'low' | 'medium' | 'high';
93
+ };
94
+ }
95
+ export interface SearchResult {
96
+ title: string;
97
+ url: string;
98
+ date?: string;
99
+ }
100
+ export interface Usage {
101
+ prompt_tokens: number;
102
+ completion_tokens: number;
103
+ total_tokens: number;
104
+ search_context_size?: string;
105
+ citation_tokens?: number;
106
+ num_search_queries?: number;
107
+ reasoning_tokens?: number;
108
+ }
109
+ export interface Choice {
110
+ index: number;
111
+ finish_reason: 'stop' | 'length' | 'content_filter';
112
+ message: {
113
+ role: 'assistant';
114
+ content: string;
115
+ };
116
+ }
117
+ export interface PerplexityResponse {
118
+ id: string;
119
+ model: string;
120
+ created: number;
121
+ usage: Usage;
122
+ object: 'chat.completion';
123
+ choices: Choice[];
124
+ search_results?: SearchResult[];
125
+ }
126
+ export interface StreamChoice {
127
+ index: number;
128
+ finish_reason?: 'stop' | 'length' | 'content_filter';
129
+ delta: {
130
+ role?: 'assistant';
131
+ content?: string;
132
+ };
133
+ }
134
+ export interface PerplexityStreamChunk {
135
+ id: string;
136
+ model: string;
137
+ created: number;
138
+ object: 'chat.completion.chunk';
139
+ choices: StreamChoice[];
140
+ search_results?: SearchResult[];
141
+ usage?: Usage;
142
+ }
143
+ export type StreamingCallback = (chunk: PerplexityStreamChunk) => void;
144
+ export type StreamingCompleteCallback = (finalResponse: PerplexityResponse) => void;
145
+ export type StreamingErrorCallback = (error: Error) => void;
146
+ export interface StreamingCallbacks {
147
+ onChunk?: StreamingCallback;
148
+ onComplete?: StreamingCompleteCallback;
149
+ onError?: StreamingErrorCallback;
150
+ }
151
+ export interface AsyncJob {
152
+ id: string;
153
+ model: string;
154
+ created_at: number;
155
+ started_at?: number;
156
+ completed_at?: number;
157
+ response?: PerplexityResponse;
158
+ failed_at?: number;
159
+ error_message?: string;
160
+ error?: string;
161
+ status: 'CREATED' | 'STARTED' | 'COMPLETED' | 'FAILED';
162
+ choices?: Choice[];
163
+ usage?: {
164
+ prompt_tokens: number;
165
+ completion_tokens: number;
166
+ total_tokens: number;
167
+ };
168
+ estimated_completion?: string;
169
+ }
170
+ export interface ErrorDetails {
171
+ suggestion: string;
172
+ fallback_model?: PerplexityModel;
173
+ retry_after?: number;
174
+ storage_path?: string;
175
+ }
176
+ export interface ErrorResponse {
177
+ error: {
178
+ type: 'rate_limit' | 'invalid_model' | 'api_error' | 'storage_error' | 'validation_error';
179
+ message: string;
180
+ details: ErrorDetails;
181
+ };
182
+ }
183
+ export interface ModelCapability {
184
+ type: 'search' | 'reasoning' | 'research';
185
+ speed: 'fast' | 'medium' | 'slow';
186
+ cost: 'low' | 'medium' | 'high';
187
+ bestFor: string[];
188
+ description: string;
189
+ capabilities: {
190
+ search: boolean;
191
+ reasoning: boolean;
192
+ realTime: boolean;
193
+ research: boolean;
194
+ };
195
+ }
196
+ export type ModelRegistry = Record<PerplexityModel, ModelCapability>;
197
+ export declare const askPerplexitySchema: z.ZodObject<{
198
+ query: z.ZodString;
199
+ project_name: z.ZodOptional<z.ZodString>;
200
+ model: z.ZodOptional<z.ZodEnum<["sonar", "sonar-pro", "sonar-reasoning", "sonar-reasoning-pro", "sonar-deep-research"]>>;
201
+ temperature: z.ZodOptional<z.ZodNumber>;
202
+ max_tokens: z.ZodOptional<z.ZodNumber>;
203
+ search_domain_filter: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
204
+ return_images: z.ZodOptional<z.ZodBoolean>;
205
+ return_related_questions: z.ZodOptional<z.ZodBoolean>;
206
+ save_report: z.ZodOptional<z.ZodBoolean>;
207
+ }, "strip", z.ZodTypeAny, {
208
+ query: string;
209
+ model?: "sonar" | "sonar-pro" | "sonar-reasoning" | "sonar-reasoning-pro" | "sonar-deep-research" | undefined;
210
+ project_name?: string | undefined;
211
+ temperature?: number | undefined;
212
+ max_tokens?: number | undefined;
213
+ search_domain_filter?: string[] | undefined;
214
+ return_images?: boolean | undefined;
215
+ return_related_questions?: boolean | undefined;
216
+ save_report?: boolean | undefined;
217
+ }, {
218
+ query: string;
219
+ model?: "sonar" | "sonar-pro" | "sonar-reasoning" | "sonar-reasoning-pro" | "sonar-deep-research" | undefined;
220
+ project_name?: string | undefined;
221
+ temperature?: number | undefined;
222
+ max_tokens?: number | undefined;
223
+ search_domain_filter?: string[] | undefined;
224
+ return_images?: boolean | undefined;
225
+ return_related_questions?: boolean | undefined;
226
+ save_report?: boolean | undefined;
227
+ }>;
228
+ export declare const chatPerplexitySchema: z.ZodObject<{
229
+ message: z.ZodString;
230
+ project_name: z.ZodOptional<z.ZodString>;
231
+ chat_id: z.ZodOptional<z.ZodString>;
232
+ title: z.ZodOptional<z.ZodString>;
233
+ model: z.ZodOptional<z.ZodEnum<["sonar", "sonar-pro", "sonar-reasoning", "sonar-reasoning-pro", "sonar-deep-research"]>>;
234
+ temperature: z.ZodOptional<z.ZodNumber>;
235
+ max_tokens: z.ZodOptional<z.ZodNumber>;
236
+ save_report: z.ZodOptional<z.ZodBoolean>;
237
+ }, "strip", z.ZodTypeAny, {
238
+ message: string;
239
+ title?: string | undefined;
240
+ model?: "sonar" | "sonar-pro" | "sonar-reasoning" | "sonar-reasoning-pro" | "sonar-deep-research" | undefined;
241
+ project_name?: string | undefined;
242
+ temperature?: number | undefined;
243
+ max_tokens?: number | undefined;
244
+ save_report?: boolean | undefined;
245
+ chat_id?: string | undefined;
246
+ }, {
247
+ message: string;
248
+ title?: string | undefined;
249
+ model?: "sonar" | "sonar-pro" | "sonar-reasoning" | "sonar-reasoning-pro" | "sonar-deep-research" | undefined;
250
+ project_name?: string | undefined;
251
+ temperature?: number | undefined;
252
+ max_tokens?: number | undefined;
253
+ save_report?: boolean | undefined;
254
+ chat_id?: string | undefined;
255
+ }>;
256
+ export declare const researchPerplexitySchema: z.ZodObject<{
257
+ topic: z.ZodString;
258
+ project_name: z.ZodOptional<z.ZodString>;
259
+ save_report: z.ZodOptional<z.ZodBoolean>;
260
+ model: z.ZodOptional<z.ZodEnum<["sonar", "sonar-pro", "sonar-reasoning", "sonar-reasoning-pro", "sonar-deep-research"]>>;
261
+ max_tokens: z.ZodOptional<z.ZodNumber>;
262
+ }, "strip", z.ZodTypeAny, {
263
+ topic: string;
264
+ model?: "sonar" | "sonar-pro" | "sonar-reasoning" | "sonar-reasoning-pro" | "sonar-deep-research" | undefined;
265
+ project_name?: string | undefined;
266
+ max_tokens?: number | undefined;
267
+ save_report?: boolean | undefined;
268
+ }, {
269
+ topic: string;
270
+ model?: "sonar" | "sonar-pro" | "sonar-reasoning" | "sonar-reasoning-pro" | "sonar-deep-research" | undefined;
271
+ project_name?: string | undefined;
272
+ max_tokens?: number | undefined;
273
+ save_report?: boolean | undefined;
274
+ }>;
275
+ export declare const asyncPerplexitySchema: z.ZodObject<{
276
+ query: z.ZodString;
277
+ model: z.ZodOptional<z.ZodEnum<["sonar", "sonar-pro", "sonar-reasoning", "sonar-reasoning-pro", "sonar-deep-research"]>>;
278
+ temperature: z.ZodOptional<z.ZodNumber>;
279
+ max_tokens: z.ZodOptional<z.ZodNumber>;
280
+ }, "strip", z.ZodTypeAny, {
281
+ query: string;
282
+ model?: "sonar" | "sonar-pro" | "sonar-reasoning" | "sonar-reasoning-pro" | "sonar-deep-research" | undefined;
283
+ temperature?: number | undefined;
284
+ max_tokens?: number | undefined;
285
+ }, {
286
+ query: string;
287
+ model?: "sonar" | "sonar-pro" | "sonar-reasoning" | "sonar-reasoning-pro" | "sonar-deep-research" | undefined;
288
+ temperature?: number | undefined;
289
+ max_tokens?: number | undefined;
290
+ }>;
291
+ export declare const checkAsyncSchema: z.ZodObject<{
292
+ job_id: z.ZodString;
293
+ }, "strip", z.ZodTypeAny, {
294
+ job_id: string;
295
+ }, {
296
+ job_id: string;
297
+ }>;
298
+ export declare const readChatSchema: z.ZodObject<{
299
+ chat_id: z.ZodString;
300
+ }, "strip", z.ZodTypeAny, {
301
+ chat_id: string;
302
+ }, {
303
+ chat_id: string;
304
+ }>;
305
+ export declare const listProjectsSchema: z.ZodObject<{
306
+ detailed: z.ZodOptional<z.ZodBoolean>;
307
+ }, "strip", z.ZodTypeAny, {
308
+ detailed?: boolean | undefined;
309
+ }, {
310
+ detailed?: boolean | undefined;
311
+ }>;
312
+ export declare const deleteProjectSchema: z.ZodObject<{
313
+ project_name: z.ZodString;
314
+ confirm: z.ZodBoolean;
315
+ }, "strip", z.ZodTypeAny, {
316
+ project_name: string;
317
+ confirm: boolean;
318
+ }, {
319
+ project_name: string;
320
+ confirm: boolean;
321
+ }>;
322
+ export type AskPerplexityParams = z.infer<typeof askPerplexitySchema>;
323
+ export type ChatPerplexityParams = z.infer<typeof chatPerplexitySchema>;
324
+ export type ResearchPerplexityParams = z.infer<typeof researchPerplexitySchema>;
325
+ export type AsyncPerplexityParams = z.infer<typeof asyncPerplexitySchema>;
326
+ export type CheckAsyncParams = z.infer<typeof checkAsyncSchema>;
327
+ export type ReadChatParams = z.infer<typeof readChatSchema>;
328
+ export type ListProjectsParams = z.infer<typeof listProjectsSchema>;
329
+ export type DeleteProjectParams = z.infer<typeof deleteProjectSchema>;
330
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,MAAM,eAAe,GACvB,OAAO,GACP,WAAW,GACX,iBAAiB,GACjB,qBAAqB,GACrB,qBAAqB,CAAC;AAG1B,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;EAYvB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAGlD,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KACd,CAAC,CAAC;CACJ;AAGD,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,eAAe,CAAC;CACxB;AAGD,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB;AAGD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,eAAe,CAAC;IACvB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,kBAAkB,CAAC,EAAE;QACnB,mBAAmB,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;KACjD,CAAC;CACH;AAGD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,KAAK;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,GAAG,QAAQ,GAAG,gBAAgB,CAAC;IACpD,OAAO,EAAE;QACP,IAAI,EAAE,WAAW,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;CACjC;AAGD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,gBAAgB,CAAC;IACrD,KAAK,EAAE;QACL,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,uBAAuB,CAAC;IAChC,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,YAAY,EAAE,CAAC;IAChC,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAGD,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;AACvE,MAAM,MAAM,yBAAyB,GAAG,CAAC,aAAa,EAAE,kBAAkB,KAAK,IAAI,CAAC;AACpF,MAAM,MAAM,sBAAsB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAGD,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IACvD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAGD,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,eAAe,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE;QACL,IAAI,EAAE,YAAY,GAAG,eAAe,GAAG,WAAW,GAAG,eAAe,GAAG,kBAAkB,CAAC;QAC1F,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,YAAY,CAAC;KACvB,CAAC;CACH;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;IAC1C,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAClC,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE;QACZ,MAAM,EAAE,OAAO,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC;QAClB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;CACH;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC;AAGrE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB9B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe/B,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;EAYnC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;EAQhC,CAAC;AAEH,eAAO,MAAM,gBAAgB;;;;;;EAE3B,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;EAEzB,CAAC;AAGH,eAAO,MAAM,kBAAkB;;;;;;EAE7B,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;;;;;EAO9B,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACxE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAChF,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAC1E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAChE,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC5D,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACpE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,90 @@
1
+ import { z } from 'zod';
2
+ // Configuration schema for MCP server
3
+ export const configSchema = z.object({
4
+ api_key: z.string().describe('Perplexity API key'),
5
+ default_model: z
6
+ .enum(['sonar', 'sonar-pro', 'sonar-reasoning', 'sonar-reasoning-pro', 'sonar-deep-research'])
7
+ .default('sonar-reasoning-pro')
8
+ .describe('Default model for queries'),
9
+ project_root: z.string().describe('Root directory of the calling project'),
10
+ storage_path: z
11
+ .string()
12
+ .default('.perplexity/chat_history')
13
+ .describe('Path relative to project_root for storing conversations'),
14
+ session_id: z.string().optional().describe('Optional session identifier for thread safety'),
15
+ });
16
+ // Tool parameter schemas
17
+ export const askPerplexitySchema = z.object({
18
+ query: z.string().describe('Your question or prompt'),
19
+ project_name: z
20
+ .string()
21
+ .optional()
22
+ .describe('Project name for organizing conversations (auto-detected if not provided)'),
23
+ model: z
24
+ .enum(['sonar', 'sonar-pro', 'sonar-reasoning', 'sonar-reasoning-pro', 'sonar-deep-research'])
25
+ .optional()
26
+ .describe('Override default model'),
27
+ temperature: z.number().min(0).max(1).optional().describe('0.0-1.0, default 0.2'),
28
+ max_tokens: z.number().positive().optional().describe('Maximum response length'),
29
+ search_domain_filter: z.array(z.string()).optional().describe('Limit search to specific domains'),
30
+ return_images: z.boolean().optional().describe('Include images in response'),
31
+ return_related_questions: z.boolean().optional().describe('Include related questions'),
32
+ save_report: z.boolean().optional().describe('Save response as a report to project directory'),
33
+ });
34
+ export const chatPerplexitySchema = z.object({
35
+ message: z.string().describe('Your message'),
36
+ project_name: z
37
+ .string()
38
+ .optional()
39
+ .describe('Project name for organizing conversations (auto-detected if not provided)'),
40
+ chat_id: z.string().optional().describe('Continue existing conversation'),
41
+ title: z.string().optional().describe('Required for new chat - conversation title'),
42
+ model: z
43
+ .enum(['sonar', 'sonar-pro', 'sonar-reasoning', 'sonar-reasoning-pro', 'sonar-deep-research'])
44
+ .optional()
45
+ .describe('Override default model'),
46
+ temperature: z.number().min(0).max(1).optional().describe('0.0-1.0, default 0.2'),
47
+ max_tokens: z.number().positive().optional().describe('Maximum response length'),
48
+ save_report: z.boolean().optional().describe('Save conversation to project directory'),
49
+ });
50
+ export const researchPerplexitySchema = z.object({
51
+ topic: z.string().describe('Research topic or question'),
52
+ project_name: z
53
+ .string()
54
+ .optional()
55
+ .describe('Project name for organizing research reports (auto-detected if not provided)'),
56
+ save_report: z.boolean().optional().describe('Save report to project directory'),
57
+ model: z
58
+ .enum(['sonar', 'sonar-pro', 'sonar-reasoning', 'sonar-reasoning-pro', 'sonar-deep-research'])
59
+ .optional()
60
+ .describe('Override default model (defaults to sonar-deep-research)'),
61
+ max_tokens: z.number().positive().optional().describe('Maximum response length'),
62
+ });
63
+ export const asyncPerplexitySchema = z.object({
64
+ query: z.string().describe('Your question or prompt'),
65
+ model: z
66
+ .enum(['sonar', 'sonar-pro', 'sonar-reasoning', 'sonar-reasoning-pro', 'sonar-deep-research'])
67
+ .optional()
68
+ .describe('Override default model'),
69
+ temperature: z.number().min(0).max(1).optional().describe('0.0-1.0, default 0.2'),
70
+ max_tokens: z.number().positive().optional().describe('Maximum response length'),
71
+ });
72
+ export const checkAsyncSchema = z.object({
73
+ job_id: z.string().describe('Async job identifier'),
74
+ });
75
+ export const readChatSchema = z.object({
76
+ chat_id: z.string().describe('Conversation identifier'),
77
+ });
78
+ // Project management schemas
79
+ export const listProjectsSchema = z.object({
80
+ detailed: z.boolean().optional().describe('Include detailed statistics for each project'),
81
+ });
82
+ export const deleteProjectSchema = z.object({
83
+ project_name: z
84
+ .string()
85
+ .describe('Name of the project to delete (all data will be permanently removed)'),
86
+ confirm: z
87
+ .boolean()
88
+ .describe('Confirmation that you want to permanently delete all project data'),
89
+ });
90
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}