@cicctencent/agent-server 0.2.74 → 0.2.75

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 (87) hide show
  1. package/dist/cjs/agent/agent-server.d.ts.map +1 -1
  2. package/dist/cjs/agent/agent-server.js +90 -6
  3. package/dist/cjs/agent/agent-server.js.map +1 -1
  4. package/dist/cjs/connectors/calendar-adapter.d.ts +4 -11
  5. package/dist/cjs/connectors/calendar-adapter.d.ts.map +1 -1
  6. package/dist/cjs/connectors/calendar-adapter.js +84 -115
  7. package/dist/cjs/connectors/calendar-adapter.js.map +1 -1
  8. package/dist/cjs/connectors/db-adapter.d.ts +5 -22
  9. package/dist/cjs/connectors/db-adapter.d.ts.map +1 -1
  10. package/dist/cjs/connectors/db-adapter.js +316 -119
  11. package/dist/cjs/connectors/db-adapter.js.map +1 -1
  12. package/dist/cjs/connectors/email-adapter.d.ts +12 -14
  13. package/dist/cjs/connectors/email-adapter.d.ts.map +1 -1
  14. package/dist/cjs/connectors/email-adapter.js +286 -127
  15. package/dist/cjs/connectors/email-adapter.js.map +1 -1
  16. package/dist/cjs/connectors/fs-adapter.d.ts +3 -9
  17. package/dist/cjs/connectors/fs-adapter.d.ts.map +1 -1
  18. package/dist/cjs/connectors/fs-adapter.js +77 -87
  19. package/dist/cjs/connectors/fs-adapter.js.map +1 -1
  20. package/dist/cjs/connectors/http-adapter.d.ts +14 -18
  21. package/dist/cjs/connectors/http-adapter.d.ts.map +1 -1
  22. package/dist/cjs/connectors/http-adapter.js +260 -135
  23. package/dist/cjs/connectors/http-adapter.js.map +1 -1
  24. package/dist/cjs/connectors/index.d.ts +4 -2
  25. package/dist/cjs/connectors/index.d.ts.map +1 -1
  26. package/dist/cjs/connectors/index.js +137 -1
  27. package/dist/cjs/connectors/index.js.map +1 -1
  28. package/dist/cjs/connectors/mcp-adapter.d.ts +9 -17
  29. package/dist/cjs/connectors/mcp-adapter.d.ts.map +1 -1
  30. package/dist/cjs/connectors/mcp-adapter.js +186 -136
  31. package/dist/cjs/connectors/mcp-adapter.js.map +1 -1
  32. package/dist/cjs/connectors/mq-adapter.d.ts +10 -15
  33. package/dist/cjs/connectors/mq-adapter.d.ts.map +1 -1
  34. package/dist/cjs/connectors/mq-adapter.js +264 -142
  35. package/dist/cjs/connectors/mq-adapter.js.map +1 -1
  36. package/dist/cjs/index.d.ts +1 -1
  37. package/dist/cjs/index.d.ts.map +1 -1
  38. package/dist/cjs/index.js +4 -3
  39. package/dist/cjs/index.js.map +1 -1
  40. package/dist/cjs/spi/types.d.ts +2 -0
  41. package/dist/cjs/spi/types.d.ts.map +1 -1
  42. package/dist/cjs/types.d.ts +170 -10
  43. package/dist/cjs/types.d.ts.map +1 -1
  44. package/dist/esm/agent/agent-server.d.ts.map +1 -1
  45. package/dist/esm/agent/agent-server.js +90 -6
  46. package/dist/esm/agent/agent-server.js.map +1 -1
  47. package/dist/esm/connectors/calendar-adapter.d.ts +4 -11
  48. package/dist/esm/connectors/calendar-adapter.d.ts.map +1 -1
  49. package/dist/esm/connectors/calendar-adapter.js +84 -115
  50. package/dist/esm/connectors/calendar-adapter.js.map +1 -1
  51. package/dist/esm/connectors/db-adapter.d.ts +5 -22
  52. package/dist/esm/connectors/db-adapter.d.ts.map +1 -1
  53. package/dist/esm/connectors/db-adapter.js +315 -118
  54. package/dist/esm/connectors/db-adapter.js.map +1 -1
  55. package/dist/esm/connectors/email-adapter.d.ts +12 -14
  56. package/dist/esm/connectors/email-adapter.d.ts.map +1 -1
  57. package/dist/esm/connectors/email-adapter.js +253 -127
  58. package/dist/esm/connectors/email-adapter.js.map +1 -1
  59. package/dist/esm/connectors/fs-adapter.d.ts +3 -9
  60. package/dist/esm/connectors/fs-adapter.d.ts.map +1 -1
  61. package/dist/esm/connectors/fs-adapter.js +77 -87
  62. package/dist/esm/connectors/fs-adapter.js.map +1 -1
  63. package/dist/esm/connectors/http-adapter.d.ts +14 -18
  64. package/dist/esm/connectors/http-adapter.d.ts.map +1 -1
  65. package/dist/esm/connectors/http-adapter.js +260 -135
  66. package/dist/esm/connectors/http-adapter.js.map +1 -1
  67. package/dist/esm/connectors/index.d.ts +4 -2
  68. package/dist/esm/connectors/index.d.ts.map +1 -1
  69. package/dist/esm/connectors/index.js +136 -1
  70. package/dist/esm/connectors/index.js.map +1 -1
  71. package/dist/esm/connectors/mcp-adapter.d.ts +9 -17
  72. package/dist/esm/connectors/mcp-adapter.d.ts.map +1 -1
  73. package/dist/esm/connectors/mcp-adapter.js +153 -136
  74. package/dist/esm/connectors/mcp-adapter.js.map +1 -1
  75. package/dist/esm/connectors/mq-adapter.d.ts +10 -15
  76. package/dist/esm/connectors/mq-adapter.d.ts.map +1 -1
  77. package/dist/esm/connectors/mq-adapter.js +230 -141
  78. package/dist/esm/connectors/mq-adapter.js.map +1 -1
  79. package/dist/esm/index.d.ts +1 -1
  80. package/dist/esm/index.d.ts.map +1 -1
  81. package/dist/esm/index.js +1 -1
  82. package/dist/esm/index.js.map +1 -1
  83. package/dist/esm/spi/types.d.ts +2 -0
  84. package/dist/esm/spi/types.d.ts.map +1 -1
  85. package/dist/esm/types.d.ts +170 -10
  86. package/dist/esm/types.d.ts.map +1 -1
  87. package/package.json +7 -3
@@ -1,159 +1,149 @@
1
1
  /**
2
2
  * 文件系统适配器
3
3
  *
4
- * 生成 list_directory / read_file / search_files / file_info / write_file 工具。
5
- * testConnection 检查根目录是否可访问。
4
+ * 提供目录扫描、文件读取、搜索、信息、写入工具(写入需开启)。
5
+ * 工具通过 executorType(fs-*) 路由到 work-client 运行时执行器(见 mcp.service)。
6
+ *
7
+ * 字段读取兼容规范键(rootPath / allowedExtensions / readOnly)与历史别名(fsRootPath / fsAllowedExtensions / fsWritable)。
6
8
  */
7
9
  import * as fs from 'fs/promises';
10
+ function readFsConfig(config) {
11
+ return {
12
+ rootPath: config.rootPath || config.fsRootPath,
13
+ allowedExtensions: config.allowedExtensions || config.fsAllowedExtensions,
14
+ // 可写:规范 readOnly 取反,或历史 fsWritable 为真
15
+ writable: config.fsWritable === true || config.readOnly === false,
16
+ };
17
+ }
8
18
  export class FileSystemAdapter {
9
19
  type = 'filesystem';
20
+ label = '文件系统';
10
21
  async testConnection(config) {
11
- const rootPath = config.rootPath;
12
- if (!rootPath) {
13
- return {
14
- success: false,
15
- message: '未配置根目录路径',
16
- };
17
- }
22
+ const { rootPath } = readFsConfig(config);
23
+ if (!rootPath)
24
+ return { success: false, message: '未配置根目录路径' };
25
+ const start = Date.now();
18
26
  try {
19
27
  const stat = await fs.stat(rootPath);
20
- if (!stat.isDirectory()) {
21
- return {
22
- success: false,
23
- message: `${rootPath} 不是目录`,
24
- };
25
- }
28
+ if (!stat.isDirectory())
29
+ return { success: false, message: `${rootPath} 不是目录` };
26
30
  const entries = await fs.readdir(rootPath);
27
31
  return {
28
32
  success: true,
29
33
  message: `连接成功,根目录包含 ${entries.length} 个条目`,
30
34
  resources: entries.slice(0, 50),
35
+ latency: Date.now() - start,
36
+ info: { rootPath, entryCount: entries.length, writable: readFsConfig(config).writable },
31
37
  };
32
38
  }
33
39
  catch (err) {
34
- return {
35
- success: false,
36
- message: '无法访问根目录',
37
- error: err.message,
38
- };
40
+ return { success: false, message: '无法访问根目录', error: err.message, latency: Date.now() - start };
39
41
  }
40
42
  }
41
43
  async discoverTools(config) {
42
- const readOnly = config.readOnly !== false;
44
+ const { rootPath, allowedExtensions, writable } = readFsConfig(config);
45
+ const rootLabel = rootPath || '指定目录';
43
46
  const tools = [
44
47
  {
45
- name: 'list_directory',
46
- description: `列出指定目录下的文件和子目录(根目录: ${config.rootPath})`,
48
+ name: 'fs_list_directory',
49
+ description: `列出 ${rootLabel} 下的目录和文件`,
47
50
  inputSchema: {
48
51
  type: 'object',
49
52
  properties: {
50
- dirPath: {
51
- type: 'string',
52
- description: '相对于根目录的路径,默认为根目录',
53
- default: '.',
54
- },
53
+ relative_path: { type: 'string', description: '相对于根目录的子路径,默认 "."(根目录本身)' },
54
+ recursive: { type: 'boolean', description: '是否递归列出子目录,默认 false' },
55
+ max_depth: { type: 'number', description: '递归最大深度,默认 3' },
55
56
  },
56
57
  },
58
+ executorType: 'fs-list',
59
+ executorMeta: { rootPath, allowedExtensions },
57
60
  },
58
61
  {
59
- name: 'read_file',
60
- description: '读取文件内容',
62
+ name: 'fs_read_file',
63
+ description: `读取 ${rootLabel} 下的文件内容`,
61
64
  inputSchema: {
62
65
  type: 'object',
63
66
  properties: {
64
- filePath: {
65
- type: 'string',
66
- description: '相对于根目录的文件路径',
67
- },
68
- encoding: {
69
- type: 'string',
70
- description: '文件编码',
71
- default: 'utf-8',
72
- },
67
+ relative_path: { type: 'string', description: '相对于根目录的文件路径' },
68
+ encoding: { type: 'string', description: '文件编码: utf-8(默认)或 base64', enum: ['utf-8', 'base64'] },
69
+ max_size: { type: 'number', description: '最大读取大小(字节),默认 1MB' },
73
70
  },
74
- required: ['filePath'],
71
+ required: ['relative_path'],
75
72
  },
73
+ executorType: 'fs-read',
74
+ executorMeta: { rootPath, allowedExtensions },
76
75
  },
77
76
  {
78
- name: 'search_files',
79
- description: '按名称模式搜索文件',
77
+ name: 'fs_search_files',
78
+ description: `在 ${rootLabel} 下按文件名模式搜索文件`,
80
79
  inputSchema: {
81
80
  type: 'object',
82
81
  properties: {
83
- pattern: {
84
- type: 'string',
85
- description: '文件名匹配模式(支持 * 通配符)',
86
- },
87
- dirPath: {
88
- type: 'string',
89
- description: '搜索起始目录(相对于根目录)',
90
- default: '.',
91
- },
82
+ pattern: { type: 'string', description: '文件名匹配模式(支持 * 和 ? 通配符),如 "*.ts" 或 "config.*"' },
83
+ relative_path: { type: 'string', description: '搜索起始子路径,默认根目录' },
84
+ max_results: { type: 'number', description: '最大返回结果数,默认 50' },
92
85
  },
93
86
  required: ['pattern'],
94
87
  },
88
+ executorType: 'fs-search',
89
+ executorMeta: { rootPath, allowedExtensions },
95
90
  },
96
91
  {
97
- name: 'file_info',
98
- description: '获取文件或目录的元信息',
92
+ name: 'fs_file_info',
93
+ description: `获取 ${rootLabel} 下文件/目录的元信息(大小、修改时间、权限等)`,
99
94
  inputSchema: {
100
95
  type: 'object',
101
- properties: {
102
- filePath: {
103
- type: 'string',
104
- description: '相对于根目录的路径',
105
- },
106
- },
107
- required: ['filePath'],
96
+ properties: { relative_path: { type: 'string', description: '相对于根目录的路径' } },
97
+ required: ['relative_path'],
108
98
  },
99
+ executorType: 'fs-info',
100
+ executorMeta: { rootPath },
109
101
  },
110
102
  ];
111
- if (!readOnly) {
103
+ if (writable) {
112
104
  tools.push({
113
- name: 'write_file',
114
- description: '写入内容到文件',
105
+ name: 'fs_write_file',
106
+ description: `写入文件到 ${rootLabel}(覆盖或追加)`,
115
107
  inputSchema: {
116
108
  type: 'object',
117
109
  properties: {
118
- filePath: {
119
- type: 'string',
120
- description: '相对于根目录的文件路径',
121
- },
122
- content: {
123
- type: 'string',
124
- description: '文件内容',
125
- },
110
+ relative_path: { type: 'string', description: '相对于根目录的文件路径' },
111
+ content: { type: 'string', description: '写入内容' },
112
+ append: { type: 'boolean', description: '是否追加模式,默认 false(覆盖)' },
126
113
  },
127
- required: ['filePath', 'content'],
114
+ required: ['relative_path', 'content'],
128
115
  },
116
+ executorType: 'fs-write',
117
+ executorMeta: { rootPath },
129
118
  });
130
119
  }
131
120
  return tools;
132
121
  }
133
- async generateManifest(config) {
134
- const tools = await this.discoverTools(config);
122
+ generateManifest(config, _tools) {
123
+ const { rootPath, allowedExtensions, writable } = readFsConfig(config);
135
124
  return {
136
- tools,
137
- metadata: {
138
- rootPath: config.rootPath,
139
- readOnly: config.readOnly,
140
- allowedExtensions: config.allowedExtensions,
125
+ name: config.name,
126
+ description: config.description || `文件系统连接器 — ${rootPath}`,
127
+ category: 'data',
128
+ version: '1.0.0',
129
+ icon: 'folder2-open',
130
+ enabled: true,
131
+ dataSourceType: 'filesystem',
132
+ dataSourceConfig: {
133
+ rootPath,
134
+ allowedExtensions,
135
+ readOnly: !writable,
141
136
  },
142
137
  };
143
138
  }
144
- async generateMCPServerConfigs(config) {
145
- const tools = await this.discoverTools(config);
139
+ generateMCPServerConfigs(_config, tools) {
146
140
  return [
147
141
  {
148
- name: `fs-${config.name || 'default'}`,
142
+ name: 'fs-tools',
149
143
  transport: 'stdio',
150
144
  command: 'node',
151
145
  args: ['-e', '/* MCP server for filesystem */'],
152
- env: {
153
- FS_ROOT: config.rootPath || '',
154
- FS_READ_ONLY: String(config.readOnly ?? true),
155
- },
156
- tools,
146
+ tools: tools || [],
157
147
  },
158
148
  ];
159
149
  }
@@ -1 +1 @@
1
- {"version":3,"file":"fs-adapter.js","sourceRoot":"","sources":["../../../src/connectors/fs-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fs-adapter.js","sourceRoot":"","sources":["../../../src/connectors/fs-adapter.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,26 @@
1
1
  /**
2
2
  * HTTP API 适配器
3
3
  *
4
- * 支持 manual(手动定义端点)和 openapi(从 OpenAPI spec 解析)两种模式。
5
- * testConnection 尝试请求 baseUrl,discoverTools 将端点转为工具定义。
4
+ * 支持 manual(手动定义端点)/ openapi(导入 OpenAPI 文档)两种模式,多服务实例。
5
+ * 工具通过 executorType(http-api) 路由到 work-client 运行时 api-bridge 执行器(见 mcp.service)。
6
+ *
7
+ * 字段读取兼容规范键(baseUrl / endpoints[{ path, bodySchema, querySchema }] / authToken / authType)
8
+ * 与历史别名(apiRoot / endpoints[{ entry, parameters }] / httpMode / openapiUrl / auth)。
6
9
  */
7
10
  import type { DataSourceConfig, DiscoveredTool, ConnectionTestResult, DataSourceAdapter, MCPServerConfig } from '../types.js';
8
11
  export declare class HTTPAPIAdapter implements DataSourceAdapter {
9
12
  readonly type: "http-api";
13
+ readonly label = "HTTP \u670D\u52A1";
10
14
  testConnection(config: DataSourceConfig): Promise<ConnectionTestResult>;
11
15
  discoverTools(config: DataSourceConfig): Promise<DiscoveredTool[]>;
12
- generateManifest(config: DataSourceConfig): Promise<{
13
- tools: DiscoveredTool[];
14
- metadata: {
15
- apiMode: "manual" | "openapi";
16
- serviceCount: number;
17
- endpointCount: number;
18
- };
19
- }>;
20
- generateMCPServerConfigs(config: DataSourceConfig): Promise<MCPServerConfig[]>;
21
- /** 收集所有端点 */
22
- private collectEndpoints;
23
- /** 解析 OpenAPI spec */
24
- private parseOpenAPI;
25
- /** 构建请求头 */
26
- private buildHeaders;
27
- /** 将端点名转为合法工具名 */
16
+ generateManifest(config: DataSourceConfig, _tools?: DiscoveredTool[]): Record<string, unknown>;
17
+ generateMCPServerConfigs(config: DataSourceConfig, tools?: DiscoveredTool[]): MCPServerConfig[];
18
+ private buildAuthHeaders;
19
+ private discoverFromEndpoints;
20
+ private discoverFromOpenAPI;
21
+ private getBasePath;
22
+ private generateOperationId;
28
23
  private sanitizeToolName;
24
+ private buildBodyTemplate;
29
25
  }
30
26
  //# sourceMappingURL=http-adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-adapter.d.ts","sourceRoot":"","sources":["../../../src/connectors/http-adapter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EACR,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAElB,MAAM,aAAa,CAAC;AAErB,qBAAa,cAAe,YAAW,iBAAiB;IACpD,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IAE9B,cAAc,CAChB,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,oBAAoB,CAAC;IAsC1B,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAiDlE,gBAAgB,CAAC,MAAM,EAAE,gBAAgB;;;;;;;;IAYzC,wBAAwB,CAC1B,MAAM,EAAE,gBAAgB,GACzB,OAAO,CAAC,eAAe,EAAE,CAAC;IAgB7B,aAAa;YACC,gBAAgB;IAgB9B,sBAAsB;YACR,YAAY;IAiD1B,YAAY;IACZ,OAAO,CAAC,YAAY;IA8BpB,kBAAkB;IAClB,OAAO,CAAC,gBAAgB;CAO3B"}
1
+ {"version":3,"file":"http-adapter.d.ts","sourceRoot":"","sources":["../../../src/connectors/http-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,EAGhB,MAAM,aAAa,CAAC;AAiCrB,qBAAa,cAAe,YAAW,iBAAiB;IACtD,QAAQ,CAAC,IAAI,EAAG,UAAU,CAAU;IACpC,QAAQ,CAAC,KAAK,uBAAa;IAErB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA8BvE,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAcxE,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAc9F,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,cAAc,EAAE,GAAG,eAAe,EAAE;IAsD/F,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,qBAAqB;YAyCf,mBAAmB;IAwDjC,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,iBAAiB;CAM1B"}