Skip to content

Commit 59aaef3

Browse files
author
zho
committed
#15-fix second errors
1 parent 029c07b commit 59aaef3

9 files changed

Lines changed: 24 additions & 23 deletions

File tree

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
},
3838
"scripts": {
3939
"clean": "node -e \"const fs=require('fs'); fs.rmSync('dist',{recursive:true,force:true});\"",
40-
"build": "npm run clean && node ./node_modules/typescript/bin/tsc",
40+
"build": "npm run clean && npx tsc",
4141
"build:watch": "tsc --watch",
4242
"dev": "tsx watch src/index.ts",
4343
"start": "node dist/index.js",
@@ -52,7 +52,7 @@
5252
"format:check": "prettier --check \"src/**/*.ts\" \"*.json\" \".prettierrc\"",
5353
"typecheck": "tsc --noEmit",
5454
"ci": "npm run typecheck && npm run lint && npm run format:check && npm run build && npm test",
55-
"release:check": "npm run ci && npm pack --dry-run",
55+
"release:check": "npm run ci && npm pack --dry-run --ignore-scripts",
5656
"ci:local": "bash scripts/ci-local.sh",
5757
"prepublishOnly": "npm run ci",
5858
"prepack": "npm run build"

src/index.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,12 +105,10 @@ async function main(): Promise<void> {
105105
const rawLevel =
106106
options.logLevel ||
107107
process.env['PINECONE_READ_ONLY_MCP_LOG_LEVEL'] ||
108-
process.env['LOG_LEVEL'] ||
109108
'INFO';
110109
const logLevel = (
111110
['DEBUG', 'INFO', 'WARN', 'ERROR'].includes(rawLevel) ? rawLevel : 'INFO'
112111
) as LogLevel;
113-
process.env['LOG_LEVEL'] = logLevel;
114112
setLogLevel(logLevel);
115113

116114
// Get API key

src/logger.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,17 @@ function shouldLog(level: LogLevel): boolean {
3030
}
3131

3232
/** Format a single log line: timestamp, level, message, and optional JSON data. */
33-
function formatMessage(level: string, msg: string, data?: unknown): string {
33+
function formatMessage(level: LogLevel, msg: string, data?: unknown): string {
3434
const ts = new Date().toISOString();
3535
const prefix = `[${ts}] [${level}]`;
3636
if (data !== undefined) {
37-
return `${prefix} ${msg} ${JSON.stringify(data)}`;
37+
let serialized: string;
38+
try {
39+
serialized = JSON.stringify(data);
40+
} catch {
41+
serialized = String(data);
42+
}
43+
return `${prefix} ${msg} ${serialized}`;
3844
}
3945
return `${prefix} ${msg}`;
4046
}
@@ -63,10 +69,6 @@ export function warn(msg: string, data?: unknown): void {
6369
/** Log an ERROR-level message to stderr with optional error (message and stack). */
6470
export function error(msg: string, err?: unknown): void {
6571
if (shouldLog('ERROR')) {
66-
// const detail = err instanceof Error ? err.message : err !== undefined ? String(err) : undefined;
67-
// console.error(
68-
// formatMessage('ERROR', msg, detail !== undefined ? { error: detail } : undefined)
69-
// );
7072
const detail =
7173
err instanceof Error
7274
? { message: err.message, stack: err.stack }

src/pinecone-client.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ export class PineconeClient {
168168
if (!(key in metadataFields)) {
169169
metadataFields[key] = inferredType;
170170
} else if (
171-
metadataFields[key] === 'object' &&
171+
metadataFields[key] === 'object' || metadataFields[key] === 'array' &&
172172
inferredType === 'string[]'
173173
) {
174174
// Prefer array type over generic object when we see it in another sample
@@ -227,9 +227,7 @@ export class PineconeClient {
227227
// Include filter when explicitly provided (matches Python behavior).
228228
if (metadataFilter !== undefined) {
229229
queryPayload['filter'] = metadataFilter;
230-
if (!options?.fields) {
231-
logDebug('Applying metadata filter', metadataFilter);
232-
}
230+
logDebug('Applying metadata filter', metadataFilter);
233231
}
234232

235233
try {

src/server/format-query-result.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,10 @@ export function formatSearchResultAsRow(
4646
const docNum = metadata['document_number'];
4747
const filename = metadata['filename'];
4848
const paper_number =
49-
(typeof docNum === 'string' ? docNum : null) ??
50-
(typeof filename === 'string' ? filename.replace(/\.md$/i, '').toUpperCase() : null) ??
49+
(typeof docNum === 'string' && docNum.length > 0 ? docNum : null) ??
50+
(typeof filename === 'string' && filename.length > 0
51+
? filename.replace(/\.md$/i, '').toUpperCase()
52+
: null) ??
5153
null;
5254

5355
return {

src/server/tools/count-tool.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { jsonErrorResponse, jsonResponse } from '../tool-response.js';
99
const COUNT_RESPONSE_STATUS = 'success' as const;
1010
type CountResponse =
1111
| {
12-
status: typeof COUNT_RESPONSE_STATUS;
12+
status: 'success';
1313
count: number;
1414
truncated: boolean;
1515
namespace: string;
@@ -78,7 +78,7 @@ export function registerCountTool(server: McpServer): void {
7878
count,
7979
truncated,
8080
namespace,
81-
metadata_filter: metadata_filter,
81+
metadata_filter,
8282
};
8383
return jsonResponse(response);
8484
} catch (error) {

src/server/tools/generate-urls-tool.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export function registerGenerateUrlsTool(server: McpServer): void {
2929
),
3030
records: z
3131
.array(z.record(z.string(), z.unknown()))
32+
.max(500)
3233
.describe(
3334
'Array of records from retrieval results. Each item may be either metadata itself or an object containing a metadata field.'
3435
),

src/server/tools/query-documents-tool.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ export function registerQueryDocumentsTool(server: McpServer): void {
111111
status: 'success',
112112
query: query_text.trim(),
113113
namespace,
114-
metadata_filter: metadata_filter ?? undefined,
114+
metadata_filter,
115115
result_count: topDocuments.length,
116116
documents: topDocuments.map((doc) => ({
117117
document_id: doc.document_id,

src/server/tools/query-tool.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ type QueryExecParams = {
2525
async function executeQuery(params: QueryExecParams) {
2626
const { query_text, namespace, top_k, use_reranking, metadata_filter, fields, mode } = params;
2727
try {
28-
if (!query_text || !query_text.trim()) {
28+
if (!query_text.trim()) {
2929
const response: QueryResponse = {
3030
status: 'error',
3131
message: 'Query text cannot be empty',
@@ -128,8 +128,8 @@ export function registerQueryTool(server: McpServer): void {
128128
async (params) =>
129129
executeQuery({
130130
...params,
131-
top_k: params.top_k ?? 10,
132-
use_reranking: params.use_reranking ?? true,
131+
top_k: params.top_k,
132+
use_reranking: params.use_reranking,
133133
mode: 'query',
134134
})
135135
);
@@ -147,7 +147,7 @@ export function registerQueryTool(server: McpServer): void {
147147
async (params) =>
148148
executeQuery({
149149
...params,
150-
top_k: params.top_k ?? 10,
150+
top_k: params.top_k,
151151
use_reranking: false,
152152
fields: params.fields?.length ? params.fields : [...FAST_QUERY_FIELDS],
153153
mode: 'query_fast',

0 commit comments

Comments
 (0)