@steprotech/n8n-nodes-composio 0.0.0-stage → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +124 -2
  3. package/dist/credentials/ComposioApi.credentials.d.ts +43 -0
  4. package/dist/credentials/ComposioApi.credentials.js +78 -0
  5. package/dist/credentials/ComposioApi.credentials.js.map +1 -0
  6. package/dist/credentials/composio.dark.svg +266 -0
  7. package/dist/credentials/composio.svg +266 -0
  8. package/dist/nodes/Composio/Composio.node.d.ts +12 -0
  9. package/dist/nodes/Composio/Composio.node.js +450 -0
  10. package/dist/nodes/Composio/Composio.node.js.map +1 -0
  11. package/dist/nodes/Composio/ComposioTrigger.node.d.ts +12 -0
  12. package/dist/nodes/Composio/ComposioTrigger.node.js +172 -0
  13. package/dist/nodes/Composio/ComposioTrigger.node.js.map +1 -0
  14. package/dist/nodes/Composio/GenericFunctions.d.ts +24 -0
  15. package/dist/nodes/Composio/GenericFunctions.js +163 -0
  16. package/dist/nodes/Composio/GenericFunctions.js.map +1 -0
  17. package/dist/nodes/Composio/catalog.d.ts +25 -0
  18. package/dist/nodes/Composio/catalog.js +195 -0
  19. package/dist/nodes/Composio/catalog.js.map +1 -0
  20. package/dist/nodes/Composio/composio.dark.svg +266 -0
  21. package/dist/nodes/Composio/composio.svg +266 -0
  22. package/dist/nodes/Composio/metatools.d.ts +37 -0
  23. package/dist/nodes/Composio/metatools.js +27 -0
  24. package/dist/nodes/Composio/metatools.js.map +1 -0
  25. package/dist/nodes/Composio/signature.d.ts +16 -0
  26. package/dist/nodes/Composio/signature.js +55 -0
  27. package/dist/nodes/Composio/signature.js.map +1 -0
  28. package/dist/nodes/ComposioTrigger/composio.dark.svg +266 -0
  29. package/dist/nodes/ComposioTrigger/composio.svg +266 -0
  30. package/dist/package.json +58 -0
  31. package/package.json +57 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ComposioTrigger.node.js","sourceRoot":"","sources":["../../../nodes/Composio/ComposioTrigger.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { IExecuteFunctions, ILoadOptionsFunctions } from 'n8n-workflow';
2
+ type ComposioContext = IExecuteFunctions | ILoadOptionsFunctions;
3
+ interface JsonRpcError {
4
+ code?: number;
5
+ message?: string;
6
+ data?: unknown;
7
+ }
8
+ interface JsonRpcEnvelope {
9
+ result?: unknown;
10
+ error?: JsonRpcError;
11
+ }
12
+ export declare function buildToolArguments(pairs: Record<string, unknown>): Record<string, unknown>;
13
+ export declare function parseMcpPayload(body: unknown, expectedId: number): JsonRpcEnvelope;
14
+ export interface MetaToolOutcome {
15
+ tool: string;
16
+ text: string;
17
+ data: unknown;
18
+ isError: boolean;
19
+ }
20
+ export declare function searchCatalog(ctx: ComposioContext, useCase: string): Promise<unknown>;
21
+ export declare function fetchToolSchemas(ctx: ComposioContext, toolSlugs: string[]): Promise<unknown>;
22
+ export declare function manageConnections(ctx: ComposioContext, toolkits: string[], reinitiateAll?: boolean): Promise<MetaToolOutcome>;
23
+ export declare function callMetaTool(ctx: ComposioContext, tool: string, args: Record<string, unknown>): Promise<MetaToolOutcome>;
24
+ export {};
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildToolArguments = buildToolArguments;
4
+ exports.parseMcpPayload = parseMcpPayload;
5
+ exports.searchCatalog = searchCatalog;
6
+ exports.fetchToolSchemas = fetchToolSchemas;
7
+ exports.manageConnections = manageConnections;
8
+ exports.callMetaTool = callMetaTool;
9
+ const metatools_1 = require("./metatools");
10
+ const sessionCache = new WeakMap();
11
+ let nextRequestId = 1;
12
+ function buildToolArguments(pairs) {
13
+ const args = {};
14
+ for (const [key, value] of Object.entries(pairs)) {
15
+ if (value === undefined || value === null || value === '')
16
+ continue;
17
+ args[key] = value;
18
+ }
19
+ return args;
20
+ }
21
+ function parseMcpPayload(body, expectedId) {
22
+ if (typeof body === 'string') {
23
+ const trimmed = body.trim();
24
+ if (trimmed === '') {
25
+ throw new Error('Composio returned an empty response');
26
+ }
27
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
28
+ try {
29
+ const parsed = JSON.parse(trimmed);
30
+ if (parsed !== null && typeof parsed === 'object')
31
+ return parsed;
32
+ }
33
+ catch {
34
+ }
35
+ }
36
+ const events = trimmed.split(/\r?\n\r?\n/);
37
+ let fallback;
38
+ for (const event of events) {
39
+ const dataLines = event
40
+ .split(/\r?\n/)
41
+ .filter((line) => line.startsWith('data:'))
42
+ .map((line) => line.slice(5).trim());
43
+ if (dataLines.length === 0)
44
+ continue;
45
+ try {
46
+ const parsed = JSON.parse(dataLines.join('\n'));
47
+ if (parsed.id === expectedId)
48
+ return parsed;
49
+ if (fallback === undefined)
50
+ fallback = parsed;
51
+ }
52
+ catch {
53
+ continue;
54
+ }
55
+ }
56
+ if (fallback !== undefined)
57
+ return fallback;
58
+ throw new Error('Composio returned an event stream that could not be read as JSON-RPC');
59
+ }
60
+ if (body !== null && typeof body === 'object')
61
+ return body;
62
+ throw new Error('Composio returned an empty response');
63
+ }
64
+ async function mcpRequest(ctx, method, params) {
65
+ var _a;
66
+ const id = nextRequestId++;
67
+ const options = {
68
+ method: 'POST',
69
+ url: '/mcp',
70
+ headers: {
71
+ Accept: 'application/json, text/event-stream',
72
+ 'Content-Type': 'application/json',
73
+ },
74
+ body: {
75
+ jsonrpc: '2.0',
76
+ id,
77
+ method,
78
+ params,
79
+ },
80
+ json: true,
81
+ returnFullResponse: true,
82
+ };
83
+ const cachedSession = sessionCache.get(ctx);
84
+ if (cachedSession !== undefined) {
85
+ options.headers['mcp-session-id'] = cachedSession;
86
+ }
87
+ const response = (await ctx.helpers.httpRequestWithAuthentication.call(ctx, 'composioApi', options));
88
+ const sessionHeader = (_a = response.headers) === null || _a === void 0 ? void 0 : _a['mcp-session-id'];
89
+ const sessionId = Array.isArray(sessionHeader) ? sessionHeader[0] : sessionHeader;
90
+ if (typeof sessionId === 'string' && sessionId !== '') {
91
+ sessionCache.set(ctx, sessionId);
92
+ }
93
+ const body = response.body;
94
+ if (method.startsWith('notifications/') && (body === '' || body === null || body === undefined)) {
95
+ return {};
96
+ }
97
+ return parseMcpPayload(body, id);
98
+ }
99
+ async function ensureSession(ctx) {
100
+ var _a;
101
+ if (sessionCache.has(ctx))
102
+ return;
103
+ const envelope = await mcpRequest(ctx, 'initialize', {
104
+ protocolVersion: '2025-06-18',
105
+ capabilities: {},
106
+ clientInfo: { name: 'n8n-nodes-composio', version: '0.1.1' },
107
+ });
108
+ if (envelope.error !== undefined) {
109
+ throw new Error(`Composio refused the MCP session: ${(_a = envelope.error.message) !== null && _a !== void 0 ? _a : 'unknown error'}`);
110
+ }
111
+ await mcpRequest(ctx, 'notifications/initialized', {});
112
+ }
113
+ async function searchCatalog(ctx, useCase) {
114
+ const outcome = await callMetaTool(ctx, metatools_1.META_TOOLS.searchTools, {
115
+ queries: [{ use_case: useCase }],
116
+ session: { generate_id: true },
117
+ search_strategy: 'tool_search',
118
+ });
119
+ return outcome.data;
120
+ }
121
+ async function fetchToolSchemas(ctx, toolSlugs) {
122
+ const outcome = await callMetaTool(ctx, metatools_1.META_TOOLS.getToolSchemas, {
123
+ tool_slugs: toolSlugs,
124
+ include: ['input_schema'],
125
+ });
126
+ return outcome.data;
127
+ }
128
+ async function manageConnections(ctx, toolkits, reinitiateAll = false) {
129
+ const args = { toolkits };
130
+ if (reinitiateAll)
131
+ args.reinitiate_all = true;
132
+ return await callMetaTool(ctx, metatools_1.META_TOOLS.manageConnections, args);
133
+ }
134
+ async function callMetaTool(ctx, tool, args) {
135
+ var _a, _b, _c;
136
+ await ensureSession(ctx);
137
+ const envelope = await mcpRequest(ctx, 'tools/call', { name: tool, arguments: args });
138
+ if (envelope.error !== undefined) {
139
+ throw new Error(`Composio meta-tool ${tool} failed: ${(_a = envelope.error.message) !== null && _a !== void 0 ? _a : 'unknown error'}`);
140
+ }
141
+ const result = ((_b = envelope.result) !== null && _b !== void 0 ? _b : {});
142
+ const text = ((_c = result.content) !== null && _c !== void 0 ? _c : [])
143
+ .filter((part) => typeof part.text === 'string')
144
+ .map((part) => part.text)
145
+ .join('\n')
146
+ .trim();
147
+ let data = result.structuredContent;
148
+ if (data === undefined && text !== '') {
149
+ try {
150
+ data = JSON.parse(text);
151
+ }
152
+ catch {
153
+ data = undefined;
154
+ }
155
+ }
156
+ return {
157
+ tool,
158
+ text,
159
+ data: data === undefined ? text : data,
160
+ isError: result.isError === true,
161
+ };
162
+ }
163
+ //# sourceMappingURL=GenericFunctions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/Composio/GenericFunctions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export interface ToolkitOption {
2
+ toolkit: string;
3
+ description: string;
4
+ connected: boolean;
5
+ }
6
+ export interface ToolOption {
7
+ slug: string;
8
+ description: string;
9
+ toolkit: string;
10
+ requiredFields: string[];
11
+ }
12
+ export interface ToolParameter {
13
+ name: string;
14
+ type: string;
15
+ required: boolean;
16
+ description: string;
17
+ }
18
+ export declare function extractToolkits(payload: unknown): ToolkitOption[];
19
+ export declare function extractTools(payload: unknown): ToolOption[];
20
+ export declare function extractParameters(payload: unknown, slug?: string): ToolParameter[];
21
+ export declare function coerceParameterValue(raw: unknown): unknown;
22
+ export declare function buildArgumentsFromRows(rows: Array<{
23
+ name?: unknown;
24
+ value?: unknown;
25
+ }> | undefined): Record<string, unknown>;
@@ -0,0 +1,195 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractToolkits = extractToolkits;
4
+ exports.extractTools = extractTools;
5
+ exports.extractParameters = extractParameters;
6
+ exports.coerceParameterValue = coerceParameterValue;
7
+ exports.buildArgumentsFromRows = buildArgumentsFromRows;
8
+ function isRecord(value) {
9
+ return value !== null && typeof value === 'object' && !Array.isArray(value);
10
+ }
11
+ function asString(value) {
12
+ return typeof value === 'string' && value !== '' ? value : undefined;
13
+ }
14
+ function findArrayOfRecords(value, keys, depth = 0) {
15
+ if (depth > 6)
16
+ return undefined;
17
+ if (Array.isArray(value)) {
18
+ for (const item of value) {
19
+ const found = findArrayOfRecords(item, keys, depth + 1);
20
+ if (found !== undefined)
21
+ return found;
22
+ }
23
+ return undefined;
24
+ }
25
+ if (!isRecord(value))
26
+ return undefined;
27
+ for (const child of Object.values(value)) {
28
+ if (Array.isArray(child) && child.length > 0 && child.every((item) => isRecord(item) && keys.every((key) => key in item))) {
29
+ return child;
30
+ }
31
+ }
32
+ for (const child of Object.values(value)) {
33
+ const found = findArrayOfRecords(child, keys, depth + 1);
34
+ if (found !== undefined)
35
+ return found;
36
+ }
37
+ return undefined;
38
+ }
39
+ function findRecordByKey(value, key, depth = 0) {
40
+ if (depth > 6 || !isRecord(value))
41
+ return undefined;
42
+ const direct = value[key];
43
+ if (isRecord(direct))
44
+ return direct;
45
+ for (const child of Object.values(value)) {
46
+ const found = findRecordByKey(child, key, depth + 1);
47
+ if (found !== undefined)
48
+ return found;
49
+ }
50
+ return undefined;
51
+ }
52
+ function findJsonSchema(value, depth = 0) {
53
+ if (depth > 6)
54
+ return undefined;
55
+ if (isRecord(value)) {
56
+ if (isRecord(value.properties))
57
+ return value;
58
+ for (const child of Object.values(value)) {
59
+ const found = findJsonSchema(child, depth + 1);
60
+ if (found !== undefined)
61
+ return found;
62
+ }
63
+ }
64
+ return undefined;
65
+ }
66
+ function slugToToolkit(slug) {
67
+ const first = slug.split('_')[0];
68
+ return first === undefined ? '' : first.toLowerCase();
69
+ }
70
+ function extractToolkits(payload) {
71
+ var _a, _b;
72
+ const out = new Map();
73
+ const statuses = findArrayOfRecords(payload, ['toolkit', 'has_active_connection']);
74
+ for (const entry of statuses !== null && statuses !== void 0 ? statuses : []) {
75
+ const toolkit = asString(entry.toolkit);
76
+ if (toolkit === undefined)
77
+ continue;
78
+ const existing = out.get(toolkit);
79
+ const option = {
80
+ toolkit,
81
+ description: (_b = (_a = asString(entry.description)) !== null && _a !== void 0 ? _a : existing === null || existing === void 0 ? void 0 : existing.description) !== null && _b !== void 0 ? _b : '',
82
+ connected: entry.has_active_connection === true || (existing === null || existing === void 0 ? void 0 : existing.connected) === true,
83
+ };
84
+ out.set(toolkit, option);
85
+ }
86
+ for (const tool of extractTools(payload)) {
87
+ if (tool.toolkit === '' || out.has(tool.toolkit))
88
+ continue;
89
+ out.set(tool.toolkit, { toolkit: tool.toolkit, description: '', connected: false });
90
+ }
91
+ return [...out.values()].sort((a, b) => a.toolkit.localeCompare(b.toolkit));
92
+ }
93
+ function extractTools(payload) {
94
+ var _a, _b, _c, _d;
95
+ const out = new Map();
96
+ const schemas = findRecordByKey(payload, 'tool_schemas');
97
+ if (schemas !== undefined) {
98
+ for (const [slug, value] of Object.entries(schemas)) {
99
+ const record = isRecord(value) ? value : {};
100
+ out.set(slug, {
101
+ slug,
102
+ description: (_a = asString(record.description)) !== null && _a !== void 0 ? _a : '',
103
+ toolkit: (_c = (_b = asString(record.toolkit)) !== null && _b !== void 0 ? _b : asString(record.toolkit_slug)) !== null && _c !== void 0 ? _c : slugToToolkit(slug),
104
+ requiredFields: requiredFieldsOf((_d = record.input_schema) !== null && _d !== void 0 ? _d : record.input_parameters),
105
+ });
106
+ }
107
+ }
108
+ const results = findArrayOfRecords(payload, ['primary_tool_slugs', 'related_tool_slugs']);
109
+ for (const entry of results !== null && results !== void 0 ? results : []) {
110
+ for (const key of ['primary_tool_slugs', 'related_tool_slugs']) {
111
+ const slugs = entry[key];
112
+ if (!Array.isArray(slugs))
113
+ continue;
114
+ for (const slug of slugs) {
115
+ const name = asString(slug);
116
+ if (name === undefined || out.has(name))
117
+ continue;
118
+ out.set(name, { slug: name, description: '', toolkit: slugToToolkit(name), requiredFields: [] });
119
+ }
120
+ }
121
+ }
122
+ return [...out.values()].sort((a, b) => a.slug.localeCompare(b.slug));
123
+ }
124
+ function requiredFieldsOf(schema) {
125
+ if (!isRecord(schema))
126
+ return [];
127
+ const required = schema.required;
128
+ return Array.isArray(required) ? required.filter((item) => typeof item === 'string') : [];
129
+ }
130
+ function extractParameters(payload, slug) {
131
+ var _a;
132
+ let schema;
133
+ if (slug !== undefined && isRecord(payload)) {
134
+ const direct = payload[slug];
135
+ if (isRecord(direct))
136
+ schema = findJsonSchema((_a = direct.input_schema) !== null && _a !== void 0 ? _a : direct);
137
+ }
138
+ if (schema === undefined)
139
+ schema = findJsonSchema(payload);
140
+ if (schema === undefined)
141
+ return [];
142
+ const properties = isRecord(schema.properties) ? schema.properties : {};
143
+ const required = requiredFieldsOf(schema);
144
+ return Object.entries(properties)
145
+ .map(([name, value]) => {
146
+ var _a, _b, _c, _d;
147
+ const record = isRecord(value) ? value : {};
148
+ const type = (_c = (_b = (_a = asString(record.type)) !== null && _a !== void 0 ? _a : (Array.isArray(record.anyOf) ? 'any' : undefined)) !== null && _b !== void 0 ? _b : (isRecord(record.items) ? 'array' : undefined)) !== null && _c !== void 0 ? _c : 'string';
149
+ return {
150
+ name,
151
+ type,
152
+ required: required.includes(name),
153
+ description: (_d = asString(record.description)) !== null && _d !== void 0 ? _d : '',
154
+ };
155
+ })
156
+ .sort((a, b) => Number(b.required) - Number(a.required) || a.name.localeCompare(b.name));
157
+ }
158
+ function coerceParameterValue(raw) {
159
+ if (typeof raw !== 'string')
160
+ return raw;
161
+ const trimmed = raw.trim();
162
+ if (trimmed === '')
163
+ return '';
164
+ if (trimmed === 'true')
165
+ return true;
166
+ if (trimmed === 'false')
167
+ return false;
168
+ if (trimmed === 'null')
169
+ return null;
170
+ if (/^-?(0|[1-9]\d*)(\.\d+)?$/.test(trimmed) && String(Number(trimmed)) === trimmed) {
171
+ return Number(trimmed);
172
+ }
173
+ if ((trimmed.startsWith('{') && trimmed.endsWith('}')) ||
174
+ (trimmed.startsWith('[') && trimmed.endsWith(']')) ||
175
+ (trimmed.startsWith('"') && trimmed.endsWith('"'))) {
176
+ try {
177
+ return JSON.parse(trimmed);
178
+ }
179
+ catch {
180
+ return raw;
181
+ }
182
+ }
183
+ return raw;
184
+ }
185
+ function buildArgumentsFromRows(rows) {
186
+ const args = {};
187
+ for (const row of rows !== null && rows !== void 0 ? rows : []) {
188
+ const name = asString(row.name);
189
+ if (name === undefined)
190
+ continue;
191
+ args[name] = coerceParameterValue(row.value);
192
+ }
193
+ return args;
194
+ }
195
+ //# sourceMappingURL=catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../nodes/Composio/catalog.ts"],"names":[],"mappings":"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"}