diff --git a/index.bs b/index.bs index d7b004f..bcbcee9 100644 --- a/index.bs +++ b/index.bs @@ -230,6 +230,9 @@ An annotations is a [=struct=] with the following [=struct/items=]: : consequential hint :: a [=boolean=], initially false. + : open world hint + :: a [=boolean=], initially true. + : debugging :: a [=boolean=], initially false. @@ -855,6 +858,9 @@ The registerTool(tool, optionsgetTools(options) method steps {{ToolAnnotations/untrustedContentHint}} is |tool definition|'s [=tool definition/annotations=]'s [=annotations/untrusted content hint=], {{ToolAnnotations/consequentialHint}} is |tool definition|'s [=tool - definition/annotations=]'s [=annotations/consequential hint=], and + definition/annotations=]'s [=annotations/consequential hint=], + {{ToolAnnotations/openWorldHint}} is |tool definition|'s [=tool + definition/annotations=]'s [=annotations/open world hint=], and {{ToolAnnotations/debugging}} is |tool definition|'s [=tool definition/annotations=]'s [=annotations/debugging=]. @@ -1181,6 +1189,7 @@ dictionary ToolAnnotations { boolean readOnlyHint = false; boolean untrustedContentHint = false; boolean consequentialHint = false; + boolean openWorldHint = true; boolean debugging = false; }; @@ -1242,10 +1251,27 @@ The {{ToolAnnotations}} dictionary provides optional metadata about a tool: : annotations["{{ToolAnnotations/consequentialHint}}"] :: If true, indicates that executing the tool will result in consequential actions that are significant, real-world, or non-reversible, ex: booking a flight, transferring money. + : annotations["{{ToolAnnotations/openWorldHint}}"] + :: If true, indicates that the tool may send data to, or read data from, parties other than the + [=Document/origin=] of the page that registered it, for example through requests to other + origins. If false, indicates that the tool only uses the page and its own origin. Unlike the + other hints this one is true when it is not specified, so a tool that does not declare it is + treated as open to the world. The [=user agent=] does not enforce it. + : annotations["{{ToolAnnotations/debugging}}"] :: If true, indicates that the tool is intended for debugging and developer tooling rather than end-user interactions. +Note: A member that is not specified has its default value, and once the dictionary is converted a +tool that leaves a member out cannot be told apart from one that sets it to that value. A false +{{ToolAnnotations/consequentialHint}} or {{ToolAnnotations/untrustedContentHint}} is therefore not +an assurance from the site that the tool's effects are minor or that its output can be trusted. It +can mean only that the site made no claim. The annotations are supplied by the site that registers +the tool and are not verified by the [=user agent=] (see [[#misrepresentation-of-intent]]). +[=Agents=] are encouraged to honor a hint that increases scrutiny, and not to rely on a hint that +decreases it as the only reason to skip a user confirmation or a sanitization step that they would +otherwise apply. +

ToolExecuteCallbackOptions Dictionary

The {{ToolExecuteCallbackOptions}} dictionary carries options passed to a tool's