registerSwaigFunction

View as MarkdownOpen in Claude

Register a pre-built SwaigFunction instance or a raw function descriptor (e.g., from a DataMap) on a SWMLService. Unlike defineTool(), this method accepts pre-built objects rather than taking a handler callback.

Parameters

fn
SwaigFunction | Record<string, unknown>Required

A SwaigFunction instance or a plain object with a "function" key. Typically generated by DataMap.toSwaigFunction().

Returns

SWMLService — Returns this for method chaining.

Example

import { SWMLService, DataMap, FunctionResult } from '@signalwire/sdk';
const service = new SWMLService({ name: 'swaig-host', route: '/' });
const plantTool = new DataMap('get_plant_info')
.description('Get care information for a plant')
.parameter('plantId', 'string', 'Plant ID', { required: true })
.webhook('GET', 'https://api.plants.example.com/plants/${args.plantId}')
.output(new FunctionResult(
'The plant ${args.plantId} needs ${response.water_schedule} watering.',
));
service.registerSwaigFunction(plantTool.toSwaigFunction());