From a17d9ff12b822674edbc150d812d1723311639c4 Mon Sep 17 00:00:00 2001 From: Ben Rabinovich Date: Thu, 15 Jan 2026 10:58:22 +0200 Subject: [PATCH] feat: meta tools annotations --- package.json | 2 +- src/meta/registerMetaTools.ts | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 7d0474a..325e987 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "toolception", - "version": "0.5.3", + "version": "0.5.4", "private": false, "type": "module", "main": "dist/index.js", diff --git a/src/meta/registerMetaTools.ts b/src/meta/registerMetaTools.ts index 5a1ace7..d70e5f0 100644 --- a/src/meta/registerMetaTools.ts +++ b/src/meta/registerMetaTools.ts @@ -30,6 +30,7 @@ export function registerMetaTools( "enable_toolset", "Enable a toolset by name", { name: z.string().describe("Toolset name") }, + { destructiveHint: true, idempotentHint: true }, async (args: { name: string }) => { const result = await manager.enableToolset(args.name); return { @@ -42,6 +43,7 @@ export function registerMetaTools( "disable_toolset", "Disable a toolset by name (state only)", { name: z.string().describe("Toolset name") }, + { destructiveHint: true, idempotentHint: true }, async (args: { name: string }) => { const result = await manager.disableToolset(args.name); return { @@ -54,6 +56,7 @@ export function registerMetaTools( "list_toolsets", "List available toolsets with active status and definitions", {}, + { readOnlyHint: true, idempotentHint: true }, async () => { const available = manager.getAvailableToolsets(); const byToolset = manager.getStatus().toolsetToTools; @@ -85,6 +88,7 @@ export function registerMetaTools( "describe_toolset", "Describe a toolset with definition, active status and tools", { name: z.string().describe("Toolset name") }, + { readOnlyHint: true, idempotentHint: true }, async (args: { name: string }) => { const def = manager.getToolsetDefinition(args.name); const byToolset = manager.getStatus().toolsetToTools; @@ -121,6 +125,7 @@ export function registerMetaTools( "list_tools", "List currently registered tool names (best effort)", {}, + { readOnlyHint: true, idempotentHint: true }, async () => { const status = manager.getStatus(); const payload = {