@cicctencent/agent-server 0.2.74 → 0.2.76
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.
- package/dist/cjs/agent/agent-server.d.ts.map +1 -1
- package/dist/cjs/agent/agent-server.js +149 -6
- package/dist/cjs/agent/agent-server.js.map +1 -1
- package/dist/cjs/connectors/calendar-adapter.d.ts +4 -11
- package/dist/cjs/connectors/calendar-adapter.d.ts.map +1 -1
- package/dist/cjs/connectors/calendar-adapter.js +84 -115
- package/dist/cjs/connectors/calendar-adapter.js.map +1 -1
- package/dist/cjs/connectors/db-adapter.d.ts +5 -22
- package/dist/cjs/connectors/db-adapter.d.ts.map +1 -1
- package/dist/cjs/connectors/db-adapter.js +316 -119
- package/dist/cjs/connectors/db-adapter.js.map +1 -1
- package/dist/cjs/connectors/email-adapter.d.ts +12 -14
- package/dist/cjs/connectors/email-adapter.d.ts.map +1 -1
- package/dist/cjs/connectors/email-adapter.js +286 -127
- package/dist/cjs/connectors/email-adapter.js.map +1 -1
- package/dist/cjs/connectors/fs-adapter.d.ts +3 -9
- package/dist/cjs/connectors/fs-adapter.d.ts.map +1 -1
- package/dist/cjs/connectors/fs-adapter.js +77 -87
- package/dist/cjs/connectors/fs-adapter.js.map +1 -1
- package/dist/cjs/connectors/http-adapter.d.ts +14 -18
- package/dist/cjs/connectors/http-adapter.d.ts.map +1 -1
- package/dist/cjs/connectors/http-adapter.js +260 -135
- package/dist/cjs/connectors/http-adapter.js.map +1 -1
- package/dist/cjs/connectors/index.d.ts +4 -2
- package/dist/cjs/connectors/index.d.ts.map +1 -1
- package/dist/cjs/connectors/index.js +137 -1
- package/dist/cjs/connectors/index.js.map +1 -1
- package/dist/cjs/connectors/mcp-adapter.d.ts +9 -17
- package/dist/cjs/connectors/mcp-adapter.d.ts.map +1 -1
- package/dist/cjs/connectors/mcp-adapter.js +186 -136
- package/dist/cjs/connectors/mcp-adapter.js.map +1 -1
- package/dist/cjs/connectors/mq-adapter.d.ts +10 -15
- package/dist/cjs/connectors/mq-adapter.d.ts.map +1 -1
- package/dist/cjs/connectors/mq-adapter.js +264 -142
- package/dist/cjs/connectors/mq-adapter.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +4 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/mcp/api-bridge-client.d.ts.map +1 -1
- package/dist/cjs/mcp/api-bridge-client.js +15 -1
- package/dist/cjs/mcp/api-bridge-client.js.map +1 -1
- package/dist/cjs/mcp/api-bridge-types.d.ts +15 -0
- package/dist/cjs/mcp/api-bridge-types.d.ts.map +1 -1
- package/dist/cjs/mcp/body-template.d.ts +2 -0
- package/dist/cjs/mcp/body-template.d.ts.map +1 -1
- package/dist/cjs/mcp/body-template.js +1 -0
- package/dist/cjs/mcp/body-template.js.map +1 -1
- package/dist/cjs/mcp/template-builder.d.ts.map +1 -1
- package/dist/cjs/mcp/template-builder.js +5 -3
- package/dist/cjs/mcp/template-builder.js.map +1 -1
- package/dist/cjs/prompt/prompt-builder.d.ts.map +1 -1
- package/dist/cjs/prompt/prompt-builder.js +6 -16
- package/dist/cjs/prompt/prompt-builder.js.map +1 -1
- package/dist/cjs/spi/types.d.ts +2 -0
- package/dist/cjs/spi/types.d.ts.map +1 -1
- package/dist/cjs/types.d.ts +180 -10
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/esm/agent/agent-server.d.ts.map +1 -1
- package/dist/esm/agent/agent-server.js +149 -6
- package/dist/esm/agent/agent-server.js.map +1 -1
- package/dist/esm/connectors/calendar-adapter.d.ts +4 -11
- package/dist/esm/connectors/calendar-adapter.d.ts.map +1 -1
- package/dist/esm/connectors/calendar-adapter.js +84 -115
- package/dist/esm/connectors/calendar-adapter.js.map +1 -1
- package/dist/esm/connectors/db-adapter.d.ts +5 -22
- package/dist/esm/connectors/db-adapter.d.ts.map +1 -1
- package/dist/esm/connectors/db-adapter.js +315 -118
- package/dist/esm/connectors/db-adapter.js.map +1 -1
- package/dist/esm/connectors/email-adapter.d.ts +12 -14
- package/dist/esm/connectors/email-adapter.d.ts.map +1 -1
- package/dist/esm/connectors/email-adapter.js +253 -127
- package/dist/esm/connectors/email-adapter.js.map +1 -1
- package/dist/esm/connectors/fs-adapter.d.ts +3 -9
- package/dist/esm/connectors/fs-adapter.d.ts.map +1 -1
- package/dist/esm/connectors/fs-adapter.js +77 -87
- package/dist/esm/connectors/fs-adapter.js.map +1 -1
- package/dist/esm/connectors/http-adapter.d.ts +14 -18
- package/dist/esm/connectors/http-adapter.d.ts.map +1 -1
- package/dist/esm/connectors/http-adapter.js +260 -135
- package/dist/esm/connectors/http-adapter.js.map +1 -1
- package/dist/esm/connectors/index.d.ts +4 -2
- package/dist/esm/connectors/index.d.ts.map +1 -1
- package/dist/esm/connectors/index.js +136 -1
- package/dist/esm/connectors/index.js.map +1 -1
- package/dist/esm/connectors/mcp-adapter.d.ts +9 -17
- package/dist/esm/connectors/mcp-adapter.d.ts.map +1 -1
- package/dist/esm/connectors/mcp-adapter.js +153 -136
- package/dist/esm/connectors/mcp-adapter.js.map +1 -1
- package/dist/esm/connectors/mq-adapter.d.ts +10 -15
- package/dist/esm/connectors/mq-adapter.d.ts.map +1 -1
- package/dist/esm/connectors/mq-adapter.js +230 -141
- package/dist/esm/connectors/mq-adapter.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mcp/api-bridge-client.d.ts.map +1 -1
- package/dist/esm/mcp/api-bridge-client.js +15 -1
- package/dist/esm/mcp/api-bridge-client.js.map +1 -1
- package/dist/esm/mcp/api-bridge-types.d.ts +15 -0
- package/dist/esm/mcp/api-bridge-types.d.ts.map +1 -1
- package/dist/esm/mcp/body-template.d.ts +2 -0
- package/dist/esm/mcp/body-template.d.ts.map +1 -1
- package/dist/esm/mcp/body-template.js +1 -1
- package/dist/esm/mcp/body-template.js.map +1 -1
- package/dist/esm/mcp/template-builder.d.ts.map +1 -1
- package/dist/esm/mcp/template-builder.js +5 -3
- package/dist/esm/mcp/template-builder.js.map +1 -1
- package/dist/esm/prompt/prompt-builder.d.ts.map +1 -1
- package/dist/esm/prompt/prompt-builder.js +6 -16
- package/dist/esm/prompt/prompt-builder.js.map +1 -1
- package/dist/esm/spi/types.d.ts +2 -0
- package/dist/esm/spi/types.d.ts.map +1 -1
- package/dist/esm/types.d.ts +180 -10
- package/dist/esm/types.d.ts.map +1 -1
- package/package.json +7 -3
|
@@ -1,179 +1,304 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.HTTPAPIAdapter = void 0;
|
|
4
|
+
function readService(svc) {
|
|
5
|
+
return {
|
|
6
|
+
name: svc.name,
|
|
7
|
+
apiRoot: svc.apiRoot || svc.baseUrl,
|
|
8
|
+
httpMode: svc.httpMode || (svc.openapiUrl ? 'openapi' : 'manual'),
|
|
9
|
+
auth: svc.auth || (svc.authToken ? { type: (svc.authType || 'bearer'), value: svc.authToken } : undefined),
|
|
10
|
+
endpoints: svc.endpoints || [],
|
|
11
|
+
openapiUrl: svc.openapiUrl,
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* 解析 HTTP 服务列表。
|
|
16
|
+
* 优先使用 `config.services`(work-client 多服务形态);
|
|
17
|
+
* 缺失时回退到扁平单服务配置(work-space 向导:顶层 apiMode/openapiSpec/authType/authToken)。
|
|
18
|
+
*/
|
|
19
|
+
function resolveHttpServices(config) {
|
|
20
|
+
if (config.services && config.services.length > 0)
|
|
21
|
+
return config.services;
|
|
22
|
+
return [{
|
|
23
|
+
name: config.name || 'default',
|
|
24
|
+
baseUrl: config.baseUrl,
|
|
25
|
+
apiRoot: config.apiRoot,
|
|
26
|
+
httpMode: config.apiMode,
|
|
27
|
+
openapiUrl: config.openapiSpec,
|
|
28
|
+
authToken: config.authToken,
|
|
29
|
+
authType: config.authType,
|
|
30
|
+
headers: config.globalHeaders,
|
|
31
|
+
endpoints: config.endpoints || [],
|
|
32
|
+
}];
|
|
33
|
+
}
|
|
4
34
|
class HTTPAPIAdapter {
|
|
5
35
|
type = 'http-api';
|
|
36
|
+
label = 'HTTP 服务';
|
|
6
37
|
async testConnection(config) {
|
|
7
|
-
const services = config
|
|
8
|
-
if (services.length === 0)
|
|
9
|
-
return {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
38
|
+
const services = resolveHttpServices(config);
|
|
39
|
+
if (services.length === 0)
|
|
40
|
+
return { success: false, message: '未配置任何服务' };
|
|
41
|
+
const start = Date.now();
|
|
42
|
+
const errors = [];
|
|
43
|
+
let tested = 0;
|
|
44
|
+
for (const svcRaw of services) {
|
|
45
|
+
const svc = readService(svcRaw);
|
|
46
|
+
if (!svc.apiRoot) {
|
|
47
|
+
errors.push(`${svc.name}: 缺少 API 根地址`);
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
16
50
|
try {
|
|
17
|
-
const
|
|
51
|
+
const response = await fetch(svc.apiRoot.replace(/\/$/, ''), {
|
|
18
52
|
method: 'GET',
|
|
19
|
-
headers: this.
|
|
53
|
+
headers: this.buildAuthHeaders(svc),
|
|
20
54
|
signal: AbortSignal.timeout(10000),
|
|
55
|
+
redirect: 'follow',
|
|
21
56
|
});
|
|
22
|
-
if (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
results.push(`${svc.name}: HTTP ${resp.status}`);
|
|
27
|
-
}
|
|
57
|
+
if (response.status < 400 || response.status === 404)
|
|
58
|
+
tested++;
|
|
59
|
+
else
|
|
60
|
+
errors.push(`${svc.name}: HTTP ${response.status}`);
|
|
28
61
|
}
|
|
29
|
-
catch (
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
};
|
|
62
|
+
catch (e) {
|
|
63
|
+
if (e?.cause?.code === 'ENOTFOUND' || e?.cause?.code === 'ECONNREFUSED')
|
|
64
|
+
errors.push(`${svc.name}: ${e.cause.code}`);
|
|
65
|
+
else
|
|
66
|
+
tested++;
|
|
35
67
|
}
|
|
36
68
|
}
|
|
69
|
+
const latency = Date.now() - start;
|
|
70
|
+
if (errors.length > 0 && tested === 0)
|
|
71
|
+
return { success: false, message: errors.join('; '), latency };
|
|
72
|
+
const info = { services: services.length, reachable: tested };
|
|
73
|
+
if (errors.length > 0)
|
|
74
|
+
info.warnings = errors.join('; ');
|
|
75
|
+
return { success: true, message: `连接成功,${tested} 个服务可达`, latency, info };
|
|
76
|
+
}
|
|
77
|
+
async discoverTools(config) {
|
|
78
|
+
const services = resolveHttpServices(config);
|
|
79
|
+
const allTools = [];
|
|
80
|
+
for (const svcRaw of services) {
|
|
81
|
+
const svc = readService(svcRaw);
|
|
82
|
+
if (svc.httpMode === 'openapi' && svc.openapiUrl) {
|
|
83
|
+
allTools.push(...(await this.discoverFromOpenAPI(svc)));
|
|
84
|
+
}
|
|
85
|
+
else if (svc.endpoints.length) {
|
|
86
|
+
allTools.push(...this.discoverFromEndpoints(svc));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return allTools;
|
|
90
|
+
}
|
|
91
|
+
generateManifest(config, _tools) {
|
|
92
|
+
const services = resolveHttpServices(config);
|
|
37
93
|
return {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
94
|
+
name: config.name,
|
|
95
|
+
description: config.description || `HTTP API 连接器 — ${services.length} 服务`,
|
|
96
|
+
category: 'data',
|
|
97
|
+
version: '1.0.0',
|
|
98
|
+
icon: 'globe2',
|
|
99
|
+
enabled: true,
|
|
100
|
+
requestBuilderId: 'template',
|
|
101
|
+
dataSourceType: 'http-api',
|
|
41
102
|
};
|
|
42
103
|
}
|
|
43
|
-
|
|
44
|
-
const
|
|
104
|
+
generateMCPServerConfigs(config, tools) {
|
|
105
|
+
const services = resolveHttpServices(config);
|
|
106
|
+
const all = tools && tools.length > 0 ? tools : undefined;
|
|
107
|
+
const result = [];
|
|
108
|
+
for (const svcRaw of services) {
|
|
109
|
+
const svc = readService(svcRaw);
|
|
110
|
+
const svcName = svc.name || 'default';
|
|
111
|
+
const safeName = svcName.replace(/[^a-zA-Z0-9_-]/g, '_');
|
|
112
|
+
const svcTools = (all || []).filter(t => t.executorMeta?.serviceName === svcName);
|
|
113
|
+
const toolDefs = svcTools.map(t => ({
|
|
114
|
+
name: t.name,
|
|
115
|
+
description: t.description,
|
|
116
|
+
inputSchema: t.inputSchema,
|
|
117
|
+
executorType: t.executorType,
|
|
118
|
+
executorMeta: t.executorMeta,
|
|
119
|
+
}));
|
|
120
|
+
const apiMapping = {};
|
|
121
|
+
if (svc.endpoints.length) {
|
|
122
|
+
for (const ep of svc.endpoints) {
|
|
123
|
+
apiMapping[ep.name] = {
|
|
124
|
+
entry: ep.entry || ep.path || '',
|
|
125
|
+
method: ep.method,
|
|
126
|
+
...(ep.method !== 'GET' ? { body: this.buildBodyTemplate(ep) } : {}),
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else if (svc.httpMode === 'openapi') {
|
|
131
|
+
for (const t of svcTools) {
|
|
132
|
+
const meta = t.executorMeta;
|
|
133
|
+
if (meta?.method && meta?.entry) {
|
|
134
|
+
apiMapping[t.name] = {
|
|
135
|
+
entry: meta.entry,
|
|
136
|
+
method: meta.method,
|
|
137
|
+
...(meta.method !== 'GET' ? { body: meta.bodyTemplate } : {}),
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
result.push({
|
|
143
|
+
name: safeName,
|
|
144
|
+
transport: 'api-bridge',
|
|
145
|
+
apiRoot: svc.apiRoot,
|
|
146
|
+
urlTemplate: '{apiRoot}/{entry}',
|
|
147
|
+
...(Object.keys(apiMapping).length > 0 ? { apiMapping } : {}),
|
|
148
|
+
...(svc.auth ? { auth: svc.auth } : {}),
|
|
149
|
+
requestBuilderId: 'template',
|
|
150
|
+
tools: svcTools,
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
return result;
|
|
154
|
+
}
|
|
155
|
+
buildAuthHeaders(svc) {
|
|
156
|
+
const headers = { 'User-Agent': 'WorkAI/1.0' };
|
|
157
|
+
const auth = svc.auth;
|
|
158
|
+
if (!auth)
|
|
159
|
+
return headers;
|
|
160
|
+
switch (auth.type) {
|
|
161
|
+
case 'bearer':
|
|
162
|
+
headers['Authorization'] = `Bearer ${auth.value}`;
|
|
163
|
+
break;
|
|
164
|
+
case 'basic':
|
|
165
|
+
headers['Authorization'] = `Basic ${Buffer.from(auth.value).toString('base64')}`;
|
|
166
|
+
break;
|
|
167
|
+
case 'apiKey':
|
|
168
|
+
headers[auth.name || 'X-API-Key'] = auth.value;
|
|
169
|
+
break;
|
|
170
|
+
case 'custom':
|
|
171
|
+
headers[auth.name || 'X-Custom-Auth'] = auth.value;
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
return headers;
|
|
175
|
+
}
|
|
176
|
+
discoverFromEndpoints(svc) {
|
|
45
177
|
const tools = [];
|
|
46
|
-
for (const ep of endpoints) {
|
|
47
|
-
const toolName = this.sanitizeToolName(ep.name);
|
|
178
|
+
for (const ep of svc.endpoints) {
|
|
48
179
|
const properties = {};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
description: val.description || `Query param: ${key}`,
|
|
54
|
-
};
|
|
180
|
+
// 兼容:parameters(work-client)或 bodySchema/querySchema(规范)
|
|
181
|
+
if (ep.parameters) {
|
|
182
|
+
for (const [k, v] of Object.entries(ep.parameters)) {
|
|
183
|
+
properties[k] = { type: v.type, description: v.description, ...(v.enum ? { enum: v.enum } : {}) };
|
|
55
184
|
}
|
|
56
185
|
}
|
|
57
|
-
|
|
58
|
-
for (const [
|
|
59
|
-
properties[
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
};
|
|
186
|
+
else {
|
|
187
|
+
for (const [k, v] of Object.entries(ep.querySchema?.properties || {})) {
|
|
188
|
+
properties[k] = { type: v.type || 'string', description: v.description || k };
|
|
189
|
+
}
|
|
190
|
+
for (const [k, v] of Object.entries(ep.bodySchema?.properties || {})) {
|
|
191
|
+
properties[k] = { type: v.type || 'string', description: v.description || k };
|
|
63
192
|
}
|
|
64
193
|
}
|
|
194
|
+
const required = ep.parameters
|
|
195
|
+
? Object.entries(ep.parameters).filter(([, v]) => v.required).map(([k]) => k)
|
|
196
|
+
: [...(ep.querySchema?.required || []), ...(ep.bodySchema?.required || [])];
|
|
65
197
|
tools.push({
|
|
66
|
-
name:
|
|
67
|
-
description: ep.description || `${ep.method} ${ep.path}`,
|
|
198
|
+
name: ep.name,
|
|
199
|
+
description: ep.description || `${ep.method} ${ep.entry || ep.path}`,
|
|
68
200
|
inputSchema: {
|
|
69
201
|
type: 'object',
|
|
70
202
|
properties,
|
|
71
|
-
required: [
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
203
|
+
...(required.length ? { required: [...new Set(required)] } : {}),
|
|
204
|
+
},
|
|
205
|
+
executorType: 'http-api',
|
|
206
|
+
executorMeta: {
|
|
207
|
+
serviceName: svc.name,
|
|
208
|
+
method: ep.method,
|
|
209
|
+
entry: ep.entry || ep.path,
|
|
210
|
+
apiRoot: svc.apiRoot,
|
|
75
211
|
},
|
|
76
212
|
});
|
|
77
213
|
}
|
|
78
214
|
return tools;
|
|
79
215
|
}
|
|
80
|
-
async
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
const services = config.services || [];
|
|
94
|
-
return services.map(svc => ({
|
|
95
|
-
name: `http-${svc.name}`,
|
|
96
|
-
transport: 'streamable-http',
|
|
97
|
-
url: svc.baseUrl,
|
|
98
|
-
tools: tools.filter(t => svc.endpoints?.some(ep => this.sanitizeToolName(ep.name) === t.name)),
|
|
99
|
-
}));
|
|
100
|
-
}
|
|
101
|
-
/** 收集所有端点 */
|
|
102
|
-
async collectEndpoints(config) {
|
|
103
|
-
if (config.apiMode === 'openapi' && config.openapiSpec) {
|
|
104
|
-
return this.parseOpenAPI(config);
|
|
105
|
-
}
|
|
106
|
-
const endpoints = [];
|
|
107
|
-
for (const svc of config.services || []) {
|
|
108
|
-
for (const ep of svc.endpoints || []) {
|
|
109
|
-
endpoints.push({ ...ep, service: svc.name });
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return endpoints;
|
|
113
|
-
}
|
|
114
|
-
/** 解析 OpenAPI spec */
|
|
115
|
-
async parseOpenAPI(config) {
|
|
116
|
-
let spec;
|
|
117
|
-
if (config.openapiSpec.startsWith('http://') ||
|
|
118
|
-
config.openapiSpec.startsWith('https://')) {
|
|
119
|
-
const resp = await fetch(config.openapiSpec);
|
|
120
|
-
spec = await resp.json();
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
spec = JSON.parse(config.openapiSpec);
|
|
124
|
-
}
|
|
125
|
-
const endpoints = [];
|
|
126
|
-
const basePath = spec.basePath || '';
|
|
127
|
-
const title = spec.info?.title || 'openapi-service';
|
|
128
|
-
for (const [routePath, methods] of Object.entries(spec.paths || {})) {
|
|
129
|
-
for (const [method, detail] of Object.entries(methods)) {
|
|
130
|
-
const upperMethod = method.toUpperCase();
|
|
131
|
-
if (!['GET', 'POST', 'PUT', 'DELETE', 'PATCH'].includes(upperMethod)) {
|
|
216
|
+
async discoverFromOpenAPI(svc) {
|
|
217
|
+
if (!svc.openapiUrl)
|
|
218
|
+
return [];
|
|
219
|
+
const response = await fetch(svc.openapiUrl, { signal: AbortSignal.timeout(15000) });
|
|
220
|
+
if (!response.ok)
|
|
221
|
+
throw new Error(`OpenAPI 文档获取失败: ${response.status} ${response.statusText}`);
|
|
222
|
+
const spec = await response.json();
|
|
223
|
+
const tools = [];
|
|
224
|
+
const paths = spec.paths || {};
|
|
225
|
+
const basePath = this.getBasePath(spec);
|
|
226
|
+
for (const [pathStr, pathItem] of Object.entries(paths)) {
|
|
227
|
+
for (const [method, operation] of Object.entries(pathItem)) {
|
|
228
|
+
if (!['get', 'post', 'put', 'delete', 'patch'].includes(method.toLowerCase()))
|
|
132
229
|
continue;
|
|
230
|
+
const operationId = operation.operationId || this.generateOperationId(pathStr, method);
|
|
231
|
+
const toolName = this.sanitizeToolName(operationId);
|
|
232
|
+
const entry = (basePath + pathStr).replace(/^\//, '');
|
|
233
|
+
const properties = {};
|
|
234
|
+
const requiredParams = [];
|
|
235
|
+
const allParams = [...(pathItem.parameters || []), ...(operation.parameters || [])];
|
|
236
|
+
for (const param of allParams) {
|
|
237
|
+
const pName = param.name;
|
|
238
|
+
const pSchema = param.schema || {};
|
|
239
|
+
properties[pName] = { type: pSchema.type || 'string', description: param.description || `${param.in} 参数: ${pName}`, ...(pSchema.enum ? { enum: pSchema.enum } : {}) };
|
|
240
|
+
if (param.required)
|
|
241
|
+
requiredParams.push(pName);
|
|
133
242
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
243
|
+
let bodyTemplate;
|
|
244
|
+
if (method.toLowerCase() !== 'get' && operation.requestBody?.content) {
|
|
245
|
+
const jsonContent = operation.requestBody.content['application/json'];
|
|
246
|
+
if (jsonContent?.schema?.properties) {
|
|
247
|
+
for (const pName of Object.keys(jsonContent.schema.properties))
|
|
248
|
+
properties[pName] = { type: jsonContent.schema.properties[pName].type || 'string', description: jsonContent.schema.properties[pName].description || pName };
|
|
249
|
+
if (jsonContent.schema.required)
|
|
250
|
+
requiredParams.push(...jsonContent.schema.required);
|
|
251
|
+
bodyTemplate = {};
|
|
252
|
+
for (const pName of Object.keys(jsonContent.schema.properties))
|
|
253
|
+
bodyTemplate[pName] = `\${${pName}}`;
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
tools.push({
|
|
257
|
+
name: toolName,
|
|
258
|
+
description: (operation.summary || operation.description || `${method.toUpperCase()} ${pathStr}`).slice(0, 200),
|
|
259
|
+
inputSchema: {
|
|
260
|
+
type: 'object',
|
|
261
|
+
properties,
|
|
262
|
+
...(requiredParams.length ? { required: [...new Set(requiredParams)] } : {}),
|
|
263
|
+
},
|
|
264
|
+
executorType: 'http-api',
|
|
265
|
+
executorMeta: {
|
|
266
|
+
serviceName: svc.name,
|
|
267
|
+
method: method.toUpperCase(),
|
|
268
|
+
entry,
|
|
269
|
+
apiRoot: svc.apiRoot,
|
|
270
|
+
...(bodyTemplate ? { bodyTemplate } : {}),
|
|
271
|
+
},
|
|
142
272
|
});
|
|
143
273
|
}
|
|
144
274
|
}
|
|
145
|
-
return
|
|
275
|
+
return tools;
|
|
146
276
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
if (token) {
|
|
156
|
-
switch (config.authType) {
|
|
157
|
-
case 'bearer':
|
|
158
|
-
headers['Authorization'] = `Bearer ${token}`;
|
|
159
|
-
break;
|
|
160
|
-
case 'basic':
|
|
161
|
-
headers['Authorization'] = `Basic ${Buffer.from(token).toString('base64')}`;
|
|
162
|
-
break;
|
|
163
|
-
case 'apikey':
|
|
164
|
-
headers['X-API-Key'] = token;
|
|
165
|
-
break;
|
|
277
|
+
getBasePath(spec) {
|
|
278
|
+
if (spec.servers?.length) {
|
|
279
|
+
try {
|
|
280
|
+
const url = new URL(spec.servers[0].url);
|
|
281
|
+
return url.pathname.replace(/\/$/, '') || '';
|
|
282
|
+
}
|
|
283
|
+
catch {
|
|
284
|
+
return spec.servers[0].url?.replace(/\/$/, '') || '';
|
|
166
285
|
}
|
|
167
286
|
}
|
|
168
|
-
return
|
|
287
|
+
return spec.basePath || '';
|
|
288
|
+
}
|
|
289
|
+
generateOperationId(pathStr, method) {
|
|
290
|
+
const parts = pathStr.split('/').filter(Boolean).map((p) => p.startsWith('{') ? `by_${p.slice(1, -1)}` : p.replace(/[^a-zA-Z0-9]/g, '_'));
|
|
291
|
+
return `${method.toLowerCase()}_${parts.join('_')}`;
|
|
169
292
|
}
|
|
170
|
-
/** 将端点名转为合法工具名 */
|
|
171
293
|
sanitizeToolName(name) {
|
|
172
|
-
return name
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
294
|
+
return name.replace(/[^a-zA-Z0-9_]/g, '_').replace(/_+/g, '_').replace(/^_|_$/g, '');
|
|
295
|
+
}
|
|
296
|
+
buildBodyTemplate(ep) {
|
|
297
|
+
const params = ep.parameters || {};
|
|
298
|
+
const body = {};
|
|
299
|
+
for (const pName of Object.keys(params))
|
|
300
|
+
body[pName] = `\${${pName}}`;
|
|
301
|
+
return body;
|
|
177
302
|
}
|
|
178
303
|
}
|
|
179
304
|
exports.HTTPAPIAdapter = HTTPAPIAdapter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-adapter.js","sourceRoot":"","sources":["../../../src/connectors/http-adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-adapter.js","sourceRoot":"","sources":["../../../src/connectors/http-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DataSourceAdapter, DataSourceType } from '../types.js';
|
|
1
|
+
import type { DataSourceAdapter, DataSourceType, DataSourceTypeInfo } from '../types.js';
|
|
2
2
|
/** 注册数据源适配器 */
|
|
3
3
|
export declare function registerAdapter(adapter: DataSourceAdapter): void;
|
|
4
4
|
/** 获取指定类型的适配器 */
|
|
@@ -9,5 +9,7 @@ export declare function listAdapterTypes(): DataSourceType[];
|
|
|
9
9
|
export declare function listAdapters(): DataSourceAdapter[];
|
|
10
10
|
/** 重置注册表(测试用) */
|
|
11
11
|
export declare function resetAdapters(): void;
|
|
12
|
-
export type { DataSourceType, DataSourceConfig, DataSourceAdapter, DiscoveredTool, ConnectionTestResult, MCPServerConfig, ServiceConfig, EndpointConfig, } from '../types.js';
|
|
12
|
+
export type { DataSourceType, DataSourceConfig, DataSourceAdapter, DiscoveredTool, ConnectionTestResult, MCPServerConfig, ServiceConfig, EndpointConfig, DataSourceTypeInfo, } from '../types.js';
|
|
13
|
+
/** 列出所有适配器的显示信息(供前端向导使用) */
|
|
14
|
+
export declare function listDataSourceTypes(): DataSourceTypeInfo[];
|
|
13
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/connectors/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAMzF,eAAe;AACf,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAEhE;AAED,iBAAiB;AACjB,wBAAgB,UAAU,CAAC,IAAI,EAAE,cAAc,GAAG,iBAAiB,CAMlE;AAED,oBAAoB;AACpB,wBAAgB,gBAAgB,IAAI,cAAc,EAAE,CAEnD;AAED,kBAAkB;AAClB,wBAAgB,YAAY,IAAI,iBAAiB,EAAE,CAElD;AAED,iBAAiB;AACjB,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAGD,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,cAAc,EACd,kBAAkB,GACnB,MAAM,aAAa,CAAC;AA6BrB,4BAA4B;AAC5B,wBAAgB,mBAAmB,IAAI,kBAAkB,EAAE,CAgI1D"}
|