@elliotding/ai-agent-mcp 0.1.24 → 0.1.26

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 (233) hide show
  1. package/README.md +27 -0
  2. package/package.json +4 -1
  3. package/.prompt-cache/cmd-cmd-client-sdk-ai-hub-generate-testcase.md +0 -101
  4. package/.prompt-cache/cmd-cmd-client-sdk-ai-hub-submit_zct_job.md +0 -158
  5. package/.prompt-cache/skill-skill-client-sdk-ai-hub-analyze-conf-status.md +0 -311
  6. package/.prompt-cache/skill-skill-client-sdk-ai-hub-analyze-sdk-log.md +0 -64
  7. package/.prompt-cache/skill-skill-client-sdk-ai-hub-analyze-zmb-log-errors.md +0 -84
  8. package/ai-resource-telemetry.json +0 -40
  9. package/dist/api/cached-client.d.ts +0 -48
  10. package/dist/api/cached-client.d.ts.map +0 -1
  11. package/dist/api/cached-client.js +0 -126
  12. package/dist/api/cached-client.js.map +0 -1
  13. package/dist/api/client.d.ts +0 -281
  14. package/dist/api/client.d.ts.map +0 -1
  15. package/dist/api/client.js +0 -371
  16. package/dist/api/client.js.map +0 -1
  17. package/dist/auth/index.d.ts +0 -8
  18. package/dist/auth/index.d.ts.map +0 -1
  19. package/dist/auth/index.js +0 -26
  20. package/dist/auth/index.js.map +0 -1
  21. package/dist/auth/middleware.d.ts +0 -36
  22. package/dist/auth/middleware.d.ts.map +0 -1
  23. package/dist/auth/middleware.js +0 -194
  24. package/dist/auth/middleware.js.map +0 -1
  25. package/dist/auth/permissions.d.ts +0 -60
  26. package/dist/auth/permissions.d.ts.map +0 -1
  27. package/dist/auth/permissions.js +0 -262
  28. package/dist/auth/permissions.js.map +0 -1
  29. package/dist/auth/token-validator.d.ts +0 -52
  30. package/dist/auth/token-validator.d.ts.map +0 -1
  31. package/dist/auth/token-validator.js +0 -215
  32. package/dist/auth/token-validator.js.map +0 -1
  33. package/dist/cache/cache-manager.d.ts +0 -49
  34. package/dist/cache/cache-manager.d.ts.map +0 -1
  35. package/dist/cache/cache-manager.js +0 -191
  36. package/dist/cache/cache-manager.js.map +0 -1
  37. package/dist/cache/index.d.ts +0 -6
  38. package/dist/cache/index.d.ts.map +0 -1
  39. package/dist/cache/index.js +0 -12
  40. package/dist/cache/index.js.map +0 -1
  41. package/dist/cache/redis-client.d.ts +0 -45
  42. package/dist/cache/redis-client.d.ts.map +0 -1
  43. package/dist/cache/redis-client.js +0 -210
  44. package/dist/cache/redis-client.js.map +0 -1
  45. package/dist/config/constants.d.ts +0 -28
  46. package/dist/config/constants.d.ts.map +0 -1
  47. package/dist/config/constants.js +0 -31
  48. package/dist/config/constants.js.map +0 -1
  49. package/dist/config/index.d.ts +0 -71
  50. package/dist/config/index.d.ts.map +0 -1
  51. package/dist/config/index.js +0 -190
  52. package/dist/config/index.js.map +0 -1
  53. package/dist/filesystem/manager.d.ts +0 -45
  54. package/dist/filesystem/manager.d.ts.map +0 -1
  55. package/dist/filesystem/manager.js +0 -246
  56. package/dist/filesystem/manager.js.map +0 -1
  57. package/dist/git/multi-source-manager.d.ts +0 -78
  58. package/dist/git/multi-source-manager.d.ts.map +0 -1
  59. package/dist/git/multi-source-manager.js +0 -577
  60. package/dist/git/multi-source-manager.js.map +0 -1
  61. package/dist/git/operations.d.ts +0 -27
  62. package/dist/git/operations.d.ts.map +0 -1
  63. package/dist/git/operations.js +0 -83
  64. package/dist/git/operations.js.map +0 -1
  65. package/dist/index.d.ts +0 -6
  66. package/dist/index.d.ts.map +0 -1
  67. package/dist/index.js +0 -122
  68. package/dist/index.js.map +0 -1
  69. package/dist/monitoring/health.d.ts +0 -35
  70. package/dist/monitoring/health.d.ts.map +0 -1
  71. package/dist/monitoring/health.js +0 -105
  72. package/dist/monitoring/health.js.map +0 -1
  73. package/dist/prompts/cache.d.ts +0 -69
  74. package/dist/prompts/cache.d.ts.map +0 -1
  75. package/dist/prompts/cache.js +0 -163
  76. package/dist/prompts/cache.js.map +0 -1
  77. package/dist/prompts/generator.d.ts +0 -49
  78. package/dist/prompts/generator.d.ts.map +0 -1
  79. package/dist/prompts/generator.js +0 -160
  80. package/dist/prompts/generator.js.map +0 -1
  81. package/dist/prompts/index.d.ts +0 -13
  82. package/dist/prompts/index.d.ts.map +0 -1
  83. package/dist/prompts/index.js +0 -24
  84. package/dist/prompts/index.js.map +0 -1
  85. package/dist/prompts/manager.d.ts +0 -169
  86. package/dist/prompts/manager.d.ts.map +0 -1
  87. package/dist/prompts/manager.js +0 -488
  88. package/dist/prompts/manager.js.map +0 -1
  89. package/dist/resources/index.d.ts +0 -6
  90. package/dist/resources/index.d.ts.map +0 -1
  91. package/dist/resources/index.js +0 -10
  92. package/dist/resources/index.js.map +0 -1
  93. package/dist/resources/loader.d.ts +0 -88
  94. package/dist/resources/loader.d.ts.map +0 -1
  95. package/dist/resources/loader.js +0 -492
  96. package/dist/resources/loader.js.map +0 -1
  97. package/dist/server/http.d.ts +0 -57
  98. package/dist/server/http.d.ts.map +0 -1
  99. package/dist/server/http.js +0 -435
  100. package/dist/server/http.js.map +0 -1
  101. package/dist/server.d.ts +0 -13
  102. package/dist/server.d.ts.map +0 -1
  103. package/dist/server.js +0 -200
  104. package/dist/server.js.map +0 -1
  105. package/dist/session/manager.d.ts +0 -91
  106. package/dist/session/manager.d.ts.map +0 -1
  107. package/dist/session/manager.js +0 -251
  108. package/dist/session/manager.js.map +0 -1
  109. package/dist/telemetry/index.d.ts +0 -3
  110. package/dist/telemetry/index.d.ts.map +0 -1
  111. package/dist/telemetry/index.js +0 -7
  112. package/dist/telemetry/index.js.map +0 -1
  113. package/dist/telemetry/manager.d.ts +0 -151
  114. package/dist/telemetry/manager.d.ts.map +0 -1
  115. package/dist/telemetry/manager.js +0 -367
  116. package/dist/telemetry/manager.js.map +0 -1
  117. package/dist/tools/index.d.ts +0 -12
  118. package/dist/tools/index.d.ts.map +0 -1
  119. package/dist/tools/index.js +0 -28
  120. package/dist/tools/index.js.map +0 -1
  121. package/dist/tools/manage-subscription.d.ts +0 -47
  122. package/dist/tools/manage-subscription.d.ts.map +0 -1
  123. package/dist/tools/manage-subscription.js +0 -314
  124. package/dist/tools/manage-subscription.js.map +0 -1
  125. package/dist/tools/registry.d.ts +0 -40
  126. package/dist/tools/registry.d.ts.map +0 -1
  127. package/dist/tools/registry.js +0 -85
  128. package/dist/tools/registry.js.map +0 -1
  129. package/dist/tools/search-resources.d.ts +0 -35
  130. package/dist/tools/search-resources.d.ts.map +0 -1
  131. package/dist/tools/search-resources.js +0 -159
  132. package/dist/tools/search-resources.js.map +0 -1
  133. package/dist/tools/sync-resources.d.ts +0 -54
  134. package/dist/tools/sync-resources.d.ts.map +0 -1
  135. package/dist/tools/sync-resources.js +0 -733
  136. package/dist/tools/sync-resources.js.map +0 -1
  137. package/dist/tools/track-usage.d.ts +0 -63
  138. package/dist/tools/track-usage.d.ts.map +0 -1
  139. package/dist/tools/track-usage.js +0 -90
  140. package/dist/tools/track-usage.js.map +0 -1
  141. package/dist/tools/uninstall-resource.d.ts +0 -30
  142. package/dist/tools/uninstall-resource.d.ts.map +0 -1
  143. package/dist/tools/uninstall-resource.js +0 -174
  144. package/dist/tools/uninstall-resource.js.map +0 -1
  145. package/dist/tools/upload-resource.d.ts +0 -81
  146. package/dist/tools/upload-resource.d.ts.map +0 -1
  147. package/dist/tools/upload-resource.js +0 -393
  148. package/dist/tools/upload-resource.js.map +0 -1
  149. package/dist/transport/sse.d.ts +0 -29
  150. package/dist/transport/sse.d.ts.map +0 -1
  151. package/dist/transport/sse.js +0 -271
  152. package/dist/transport/sse.js.map +0 -1
  153. package/dist/types/errors.d.ts +0 -60
  154. package/dist/types/errors.d.ts.map +0 -1
  155. package/dist/types/errors.js +0 -112
  156. package/dist/types/errors.js.map +0 -1
  157. package/dist/types/index.d.ts +0 -7
  158. package/dist/types/index.d.ts.map +0 -1
  159. package/dist/types/index.js +0 -23
  160. package/dist/types/index.js.map +0 -1
  161. package/dist/types/mcp.d.ts +0 -50
  162. package/dist/types/mcp.d.ts.map +0 -1
  163. package/dist/types/mcp.js +0 -6
  164. package/dist/types/mcp.js.map +0 -1
  165. package/dist/types/resources.d.ts +0 -109
  166. package/dist/types/resources.d.ts.map +0 -1
  167. package/dist/types/resources.js +0 -7
  168. package/dist/types/resources.js.map +0 -1
  169. package/dist/types/tools.d.ts +0 -235
  170. package/dist/types/tools.d.ts.map +0 -1
  171. package/dist/types/tools.js +0 -6
  172. package/dist/types/tools.js.map +0 -1
  173. package/dist/utils/cursor-paths.d.ts +0 -84
  174. package/dist/utils/cursor-paths.d.ts.map +0 -1
  175. package/dist/utils/cursor-paths.js +0 -166
  176. package/dist/utils/cursor-paths.js.map +0 -1
  177. package/dist/utils/log-cleaner.d.ts +0 -18
  178. package/dist/utils/log-cleaner.d.ts.map +0 -1
  179. package/dist/utils/log-cleaner.js +0 -112
  180. package/dist/utils/log-cleaner.js.map +0 -1
  181. package/dist/utils/logger.d.ts +0 -59
  182. package/dist/utils/logger.d.ts.map +0 -1
  183. package/dist/utils/logger.js +0 -292
  184. package/dist/utils/logger.js.map +0 -1
  185. package/dist/utils/validation.d.ts +0 -58
  186. package/dist/utils/validation.d.ts.map +0 -1
  187. package/dist/utils/validation.js +0 -214
  188. package/dist/utils/validation.js.map +0 -1
  189. package/src/api/cached-client.ts +0 -144
  190. package/src/api/client.ts +0 -697
  191. package/src/auth/index.ts +0 -11
  192. package/src/auth/middleware.ts +0 -244
  193. package/src/auth/permissions.ts +0 -323
  194. package/src/auth/token-validator.ts +0 -292
  195. package/src/cache/cache-manager.ts +0 -243
  196. package/src/cache/index.ts +0 -6
  197. package/src/cache/redis-client.ts +0 -249
  198. package/src/config/constants.ts +0 -33
  199. package/src/config/index.ts +0 -269
  200. package/src/filesystem/manager.ts +0 -235
  201. package/src/git/multi-source-manager.ts +0 -654
  202. package/src/git/operations.ts +0 -93
  203. package/src/index.ts +0 -157
  204. package/src/monitoring/health.ts +0 -132
  205. package/src/prompts/cache.ts +0 -140
  206. package/src/prompts/generator.ts +0 -143
  207. package/src/prompts/index.ts +0 -20
  208. package/src/prompts/manager.ts +0 -613
  209. package/src/resources/index.ts +0 -13
  210. package/src/resources/loader.ts +0 -563
  211. package/src/server/http.ts +0 -549
  212. package/src/server.ts +0 -204
  213. package/src/session/manager.ts +0 -296
  214. package/src/telemetry/index.ts +0 -10
  215. package/src/telemetry/manager.ts +0 -419
  216. package/src/tools/index.ts +0 -12
  217. package/src/tools/manage-subscription.ts +0 -385
  218. package/src/tools/registry.ts +0 -97
  219. package/src/tools/search-resources.ts +0 -185
  220. package/src/tools/sync-resources.ts +0 -827
  221. package/src/tools/track-usage.ts +0 -113
  222. package/src/tools/uninstall-resource.ts +0 -199
  223. package/src/tools/upload-resource.ts +0 -431
  224. package/src/transport/sse.ts +0 -308
  225. package/src/types/errors.ts +0 -146
  226. package/src/types/index.ts +0 -7
  227. package/src/types/mcp.ts +0 -61
  228. package/src/types/resources.ts +0 -141
  229. package/src/types/tools.ts +0 -284
  230. package/src/utils/cursor-paths.ts +0 -135
  231. package/src/utils/log-cleaner.ts +0 -92
  232. package/src/utils/logger.ts +0 -333
  233. package/src/utils/validation.ts +0 -262
@@ -1,235 +0,0 @@
1
- /**
2
- * Filesystem Manager
3
- * Atomic filesystem operations for resource management
4
- */
5
-
6
- import * as fs from 'fs/promises';
7
- import * as fsSync from 'fs';
8
- import * as path from 'path';
9
- import { logger } from '../utils/logger';
10
- import { createFileSystemError, createValidationError } from '../types/errors';
11
-
12
- class FilesystemManager {
13
- /**
14
- * Write resource file atomically
15
- */
16
- async writeResource(filePath: string, content: string): Promise<void> {
17
- const tempPath = `${filePath}.tmp`;
18
-
19
- try {
20
- // Ensure directory exists
21
- const dir = path.dirname(filePath);
22
- await fs.mkdir(dir, { recursive: true });
23
-
24
- // Write to temporary file
25
- await fs.writeFile(tempPath, content, 'utf-8');
26
-
27
- // Validate content (basic check)
28
- await this.validateResourceContent(tempPath, content);
29
-
30
- // Atomic rename
31
- await fs.rename(tempPath, filePath);
32
-
33
- logger.debug({ filePath }, 'Resource file written successfully');
34
- } catch (error) {
35
- // Cleanup temporary file
36
- try {
37
- await fs.unlink(tempPath);
38
- } catch {
39
- // Ignore cleanup errors
40
- }
41
-
42
- throw createFileSystemError('write', filePath, error as Error & { code?: string });
43
- }
44
- }
45
-
46
- /**
47
- * Read resource file with validation
48
- */
49
- async readResource(filePath: string): Promise<string> {
50
- try {
51
- // Check if file exists
52
- await fs.access(filePath, fsSync.constants.R_OK);
53
-
54
- // Read file
55
- const content = await fs.readFile(filePath, 'utf-8');
56
-
57
- // Validate format
58
- await this.validateResourceContent(filePath, content);
59
-
60
- return content;
61
- } catch (error) {
62
- throw createFileSystemError('read', filePath, error as Error & { code?: string });
63
- }
64
- }
65
-
66
- /**
67
- * Delete resource file with backup
68
- */
69
- async deleteResource(filePath: string): Promise<void> {
70
- const backupPath = `${filePath}.backup`;
71
-
72
- try {
73
- // Create backup
74
- if (fsSync.existsSync(filePath)) {
75
- await fs.copyFile(filePath, backupPath);
76
- }
77
-
78
- // Delete file
79
- await fs.unlink(filePath);
80
-
81
- // Remove backup on success
82
- try {
83
- await fs.unlink(backupPath);
84
- } catch {
85
- // Ignore backup cleanup errors
86
- }
87
-
88
- logger.debug({ filePath }, 'Resource file deleted successfully');
89
- } catch (error) {
90
- // Restore from backup on failure
91
- try {
92
- if (fsSync.existsSync(backupPath)) {
93
- await fs.copyFile(backupPath, filePath);
94
- await fs.unlink(backupPath);
95
- }
96
- } catch {
97
- // Ignore restore errors
98
- }
99
-
100
- throw createFileSystemError('delete', filePath, error as Error & { code?: string });
101
- }
102
- }
103
-
104
- /**
105
- * Validate resource content
106
- */
107
- private async validateResourceContent(filePath: string, content: string): Promise<void> {
108
- const ext = path.extname(filePath);
109
-
110
- // Check if empty
111
- if (!content || content.trim().length === 0) {
112
- throw createValidationError(filePath, ext, 'File content is empty');
113
- }
114
-
115
- // Validate based on file type
116
- if (ext === '.json') {
117
- try {
118
- JSON.parse(content);
119
- } catch (error) {
120
- throw createValidationError(filePath, 'json', 'Invalid JSON format');
121
- }
122
- } else if (ext === '.md') {
123
- // Basic markdown validation (check for minimum content)
124
- if (content.length < 10) {
125
- throw createValidationError(filePath, 'markdown', 'Markdown content too short');
126
- }
127
- }
128
- }
129
-
130
- /**
131
- * Check if file exists
132
- */
133
- async fileExists(filePath: string): Promise<boolean> {
134
- try {
135
- await fs.access(filePath, fsSync.constants.F_OK);
136
- return true;
137
- } catch {
138
- return false;
139
- }
140
- }
141
-
142
- /**
143
- * List files in directory
144
- */
145
- async listFiles(dirPath: string, pattern?: RegExp): Promise<string[]> {
146
- try {
147
- const files = await fs.readdir(dirPath, { recursive: true });
148
-
149
- if (pattern) {
150
- return files.filter((file) => pattern.test(file));
151
- }
152
-
153
- return files;
154
- } catch (error) {
155
- throw createFileSystemError('list', dirPath, error as Error & { code?: string });
156
- }
157
- }
158
-
159
- /**
160
- * Recursively scan a directory and return all text files as FileEntry[]
161
- * Supported extensions: .md, .mdc, .txt, .yaml, .yml, .json
162
- */
163
- async scanDirectory(dirPath: string): Promise<Array<{ path: string; content: string }>> {
164
- const TEXT_EXTENSIONS = new Set(['.md', '.mdc', '.txt', '.yaml', '.yml', '.json']);
165
- const results: Array<{ path: string; content: string }> = [];
166
-
167
- const walk = async (currentPath: string, relBase: string): Promise<void> => {
168
- let entries: fsSync.Dirent[];
169
- try {
170
- entries = await fs.readdir(currentPath, { withFileTypes: true });
171
- } catch (error) {
172
- throw createFileSystemError('list', currentPath, error as Error & { code?: string });
173
- }
174
-
175
- for (const entry of entries) {
176
- const fullPath = path.join(currentPath, entry.name);
177
- const relPath = path.join(relBase, entry.name);
178
-
179
- if (entry.isDirectory()) {
180
- await walk(fullPath, relPath);
181
- } else if (entry.isFile()) {
182
- const ext = path.extname(entry.name).toLowerCase();
183
- if (TEXT_EXTENSIONS.has(ext)) {
184
- try {
185
- const content = await fs.readFile(fullPath, 'utf-8');
186
- if (content.trim().length > 0) {
187
- results.push({ path: relPath, content });
188
- }
189
- } catch {
190
- // Skip unreadable files silently
191
- logger.warn({ filePath: fullPath }, 'Skipped unreadable file during directory scan');
192
- }
193
- }
194
- }
195
- }
196
- };
197
-
198
- await walk(dirPath, '');
199
-
200
- if (results.length === 0) {
201
- throw createValidationError(
202
- dirPath,
203
- 'directory',
204
- `No text files found in directory: ${dirPath}`
205
- );
206
- }
207
-
208
- logger.debug({ dirPath, fileCount: results.length }, 'Directory scan completed');
209
- return results;
210
- }
211
-
212
- /**
213
- * Remove empty directories recursively
214
- */
215
- async removeEmptyDirs(dirPath: string): Promise<void> {
216
- try {
217
- const files = await fs.readdir(dirPath);
218
-
219
- if (files.length === 0) {
220
- await fs.rmdir(dirPath);
221
- logger.debug({ dirPath }, 'Empty directory removed');
222
-
223
- // Check parent directory
224
- const parentDir = path.dirname(dirPath);
225
- if (parentDir !== dirPath) {
226
- await this.removeEmptyDirs(parentDir);
227
- }
228
- }
229
- } catch (error) {
230
- // Ignore errors (directory might not be empty or already deleted)
231
- }
232
- }
233
- }
234
-
235
- export const filesystemManager = new FilesystemManager();