From 711b662cd9e6c2666959bcc3067a8b3319c027ba Mon Sep 17 00:00:00 2001 From: Dan Kolafa Date: Fri, 28 Aug 2026 00:27:32 +0200 Subject: [PATCH 1/2] fix: allow null features in repository tag image schema Signed-off-by: Dan Kolafa --- src/repos.ts | 2 +- tools.json | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/repos.ts b/src/repos.ts index c9ca187..53a26a6 100644 --- a/src/repos.ts +++ b/src/repos.ts @@ -151,7 +151,7 @@ const RepositoryTag = z.object({ .array( z.object({ architecture: z.string().describe('The architecture of the tag'), - features: z.string().describe('The features of the tag'), + features: z.string().nullable().describe('The features of the tag'), variant: z.string().optional().nullable().describe('The variant of the tag'), digest: z.string().nullable().describe('image layer digest'), layers: z diff --git a/tools.json b/tools.json index fe2c199..dcd8370 100644 --- a/tools.json +++ b/tools.json @@ -2408,7 +2408,10 @@ "description": "The architecture of the tag" }, "features": { - "type": "string", + "type": [ + "string", + "null" + ], "description": "The features of the tag" }, "variant": { @@ -2906,7 +2909,7 @@ "description": "The architecture of the tag" }, "features": { - "type": "string", + "type": ["string", "null"], "description": "The features of the tag" }, "variant": { From 148f3546cbe5976630a5f81a0d5a3c5b471dc915 Mon Sep 17 00:00:00 2001 From: Dan Kolafa Date: Fri, 28 Aug 2026 00:42:15 +0200 Subject: [PATCH 2/2] feat: add name substring filter to listRepositoryTags for partial tag lookup Signed-off-by: Dan Kolafa --- src/repos.ts | 11 +++++++++++ tools.json | 4 ++++ 2 files changed, 15 insertions(+) diff --git a/src/repos.ts b/src/repos.ts index 53a26a6..db54ccf 100644 --- a/src/repos.ts +++ b/src/repos.ts @@ -421,6 +421,12 @@ export class Repos extends Asset { .describe( 'The operating system to list tags from. If not provided, all operating systems will be listed.' ), + name: z + .string() + .optional() + .describe( + 'Filter tags by name substring. Useful for resolving a partial git SHA (e.g. a short commit hash) to a full tag.' + ), }).shape, outputSchema: repositoryTagPaginatedResponseSchema.shape, annotations: { @@ -526,6 +532,7 @@ export class Repos extends Asset { page_size, architecture, os, + name, }: { repository: string; namespace?: string; @@ -533,6 +540,7 @@ export class Repos extends Asset { page_size?: number; architecture?: string; os?: string; + name?: string; }): Promise { if (!namespace) { namespace = 'library'; @@ -554,6 +562,9 @@ export class Repos extends Asset { if (os) { params.os = os; } + if (name) { + params.name = name; + } if (Object.keys(params).length > 0) { url += `?${new URLSearchParams(params).toString()}`; } diff --git a/tools.json b/tools.json index dcd8370..a348380 100644 --- a/tools.json +++ b/tools.json @@ -2326,6 +2326,10 @@ "os": { "type": "string", "description": "The operating system to list tags from. If not provided, all operating systems will be listed." + }, + "name": { + "type": "string", + "description": "Filter tags by name substring. Useful for resolving a partial git SHA (e.g. a short commit hash) to a full tag." } }, "required": ["repository"],