Plugin SDK
Build against a small, explicit contract.
import { definePlugin } from './sdk/index.mjs';
export default definePlugin({
id: 'my-adapter',
name: 'My Adapter',
version: '1.0.0',
kind: 'discovery',
permissions: ['intent:read'],
outboundDomains: ['api.example.com'],
inputSchema: { type: 'object', properties: {} },
async handler(input, { graph, secrets }) {
return { intent: graph.summary };
}
});Required metadata
Plugins declare an id, name, version, kind and handler. They can also declare input schema, requested permissions, required credentials and outbound domains.
Permission philosophy
Plugins should receive the reduced Intent Graph by default. A future marketplace can use declared scopes and outbound domains to show users exactly what an integration can access.