import {
PluginRuntime,
MemoryPluginStateStore,
definePlugin,
definePluginCapability,
createPluginClient,
} from '@rpamis/comet/plugins';
const plugin = definePlugin({
id: 'example.notes',
kind: 'third-party',
version: '1',
scopes: ['user'],
compatible: (version) => version === '0.5.0',
create: () => ({
capabilities: {
length: definePluginCapability({
parseInput(value: unknown) {
if (typeof value !== 'string') throw new Error('Expected text');
return value;
},
invoke: (text) => text.length,
}),
},
}),
});
const plugins = new PluginRuntime({
cometVersion: '0.5.0',
store: new MemoryPluginStateStore(),
descriptors: [plugin],
});
// Agent 平台取得安装授权后执行;本例只有进程内状态。
await plugins.install(plugin.id, 'user');
const client = createPluginClient(plugins, plugin);
const length: number = await client.invoke('length', 'hello');
console.log(length);