Skip to content

Commit 658a9fa

Browse files
committed
fix: replace Type.Record with Type.Object for metadata_filters schema
Type.Record(Type.String(), Type.Unknown()) emits patternProperties, which several provider compat paths strip or reject (Gemini drops patternProperties; OpenAI strict-tools rejects it). The result was that metadata_filters disappeared from the schema presented to some models (e.g. github-copilot/gpt-5.4). Switch to Type.Object({}, { additionalProperties: true }) so the parameter renders as a plain open-ended object that survives every provider's schema sanitizer. Runtime/types unchanged — the handler still casts to Record<string, unknown>. Fixes #38
1 parent 090e98b commit 658a9fa

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

tools/search-notes.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,14 @@ export function registerSearchTool(
2626
}),
2727
),
2828
metadata_filters: Type.Optional(
29-
Type.Record(Type.String(), Type.Unknown(), {
30-
description:
31-
"Filter by frontmatter fields. Supports equality, $in, $gt/$gte/$lt/$lte, $between, and array-contains operators.",
32-
}),
29+
Type.Object(
30+
{},
31+
{
32+
additionalProperties: true,
33+
description:
34+
"Filter by frontmatter fields. Supports equality, $in, $gt/$gte/$lt/$lte, $between, and array-contains operators.",
35+
},
36+
),
3337
),
3438
tags: Type.Optional(
3539
Type.Array(Type.String(), {

0 commit comments

Comments
 (0)