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,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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"}
|
package/dist/types.d.ts
ADDED
|
@@ -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":"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"}
|
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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"}
|