addPrompt method
void
addPrompt({
- required String name,
- required String description,
- required List<
KernelPromptArgument> arguments, - required KernelPromptHandler handler,
override
Register an MCP prompt. The handler returns a
KernelGetPromptResult (description + list of messages); the
host translates to the wire shape (mcp.GetPromptResult for the
reference impl, host-specific for custom transports).
Mirrors the addTool / addResource surface so builtin /
bundle-app callers stay on the kernel envelope and never need
package:mcp_server directly — the "OS api vs app" boundary
vibe_studio/builtin_api.dart enforces.
Implementation
@override
void addPrompt({
required String name,
required String description,
required List<KernelPromptArgument> arguments,
required KernelPromptHandler handler,
}) {
_promptDefs[name] = KernelPromptDef(
name: name,
description: description,
arguments: List<KernelPromptArgument>.unmodifiable(arguments),
);
server.addPrompt(
name: name,
description: description,
arguments: <mcp.PromptArgument>[
for (final a in arguments)
mcp.PromptArgument(
name: a.name,
description: a.description ?? '',
required: a.required,
),
],
handler: (Map<String, dynamic> args) async {
final result = await handler(args);
return _toMcpGetPromptResult(result);
},
);
}