genUiTool method
GenUiToolHandle
genUiTool(
- GenUiChatTarget chat, {
- required ActionBlockTarget actionBlock,
- String loadingMessage = 'Processing...',
- String description = '',
Registers an app-level action block as a GenUI tool on a chat widget.
The target chat is resolved by name after pages and components compile, so
the name must match exactly one GenUiChat(...) in the app.
Implementation
GenUiToolHandle genUiTool(
GenUiChatTarget chat, {
required ActionBlockTarget actionBlock,
String loadingMessage = 'Processing...',
String description = '',
}) {
final chatName = chat.chatName;
final actionBlockName = actionBlock.name;
final duplicate = _genUiTools.any(
(tool) =>
tool.chatName == chatName && tool.actionBlock.name == actionBlockName,
);
if (duplicate) {
throw ArgumentError(
'GenUI tool "$actionBlockName" is already registered on "$chatName".',
);
}
_genUiTools.add(
GenUiToolDeclaration(
chatName: chatName,
actionBlock: actionBlock,
loadingMessage: loadingMessage,
description: description,
),
);
return GenUiToolHandle(
chatName: chatName,
actionBlockName: actionBlockName,
);
}