From 96dbae53bbf818ad3ec8cb1796f614b5db3376b1 Mon Sep 17 00:00:00 2001 From: Doug Parker Date: Wed, 9 Sep 2026 14:53:38 -0700 Subject: [PATCH] refactor(core): expose `consequentialHint` annotation This allows `consequentialHint` to be passed to `ModelContext.registerTool`. From Angular's perspective, this is simply a pass-through option. See: https://groups.google.com/a/chromium.org/g/chrome-ai-dev-preview/c/uHu5kfclbKw/m/dgorjfHPDgAJ --- packages/core/src/webmcp/types.ts | 6 ++++++ packages/core/test/webmcp/declare_tool_spec.ts | 2 ++ 2 files changed, 8 insertions(+) diff --git a/packages/core/src/webmcp/types.ts b/packages/core/src/webmcp/types.ts index 49f8d733257..cd6e24bdc4e 100644 --- a/packages/core/src/webmcp/types.ts +++ b/packages/core/src/webmcp/types.ts @@ -75,6 +75,12 @@ export interface Annotations { * author of the tool. */ untrustedContentHint?: boolean; + + /** + * A hint that the tool will have consequential effects like mutating state or interacting + * with the external world. + */ + consequentialHint?: boolean; } /** diff --git a/packages/core/test/webmcp/declare_tool_spec.ts b/packages/core/test/webmcp/declare_tool_spec.ts index 93ea05288f7..488cceab1d8 100644 --- a/packages/core/test/webmcp/declare_tool_spec.ts +++ b/packages/core/test/webmcp/declare_tool_spec.ts @@ -79,6 +79,7 @@ describe('declareExperimentalWebMcpTool', () => { annotations: { readOnlyHint: true, untrustedContentHint: true, + consequentialHint: true, }, }, Injector.create({providers: []}), @@ -89,6 +90,7 @@ describe('declareExperimentalWebMcpTool', () => { annotations: { readOnlyHint: true, untrustedContentHint: true, + consequentialHint: true, }, }), jasmine.anything(),