@elliotding/ai-agent-mcp 0.1.25 → 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 (237) hide show
  1. package/package.json +4 -1
  2. package/.prompt-cache/cmd-cmd-client-sdk-ai-hub-generate-testcase.md +0 -101
  3. package/.prompt-cache/cmd-cmd-client-sdk-ai-hub-submit_zct_job.md +0 -158
  4. package/.prompt-cache/skill-skill-client-sdk-ai-hub-analyze-conf-status.md +0 -311
  5. package/.prompt-cache/skill-skill-client-sdk-ai-hub-analyze-sdk-log.md +0 -64
  6. package/.prompt-cache/skill-skill-client-sdk-ai-hub-analyze-zmb-log-errors.md +0 -84
  7. package/ai-resource-telemetry.json +0 -40
  8. package/dist/api/cached-client.d.ts +0 -48
  9. package/dist/api/cached-client.d.ts.map +0 -1
  10. package/dist/api/cached-client.js +0 -126
  11. package/dist/api/cached-client.js.map +0 -1
  12. package/dist/api/client.d.ts +0 -281
  13. package/dist/api/client.d.ts.map +0 -1
  14. package/dist/api/client.js +0 -371
  15. package/dist/api/client.js.map +0 -1
  16. package/dist/auth/index.d.ts +0 -8
  17. package/dist/auth/index.d.ts.map +0 -1
  18. package/dist/auth/index.js +0 -26
  19. package/dist/auth/index.js.map +0 -1
  20. package/dist/auth/middleware.d.ts +0 -36
  21. package/dist/auth/middleware.d.ts.map +0 -1
  22. package/dist/auth/middleware.js +0 -194
  23. package/dist/auth/middleware.js.map +0 -1
  24. package/dist/auth/permissions.d.ts +0 -60
  25. package/dist/auth/permissions.d.ts.map +0 -1
  26. package/dist/auth/permissions.js +0 -262
  27. package/dist/auth/permissions.js.map +0 -1
  28. package/dist/auth/token-validator.d.ts +0 -52
  29. package/dist/auth/token-validator.d.ts.map +0 -1
  30. package/dist/auth/token-validator.js +0 -215
  31. package/dist/auth/token-validator.js.map +0 -1
  32. package/dist/cache/cache-manager.d.ts +0 -49
  33. package/dist/cache/cache-manager.d.ts.map +0 -1
  34. package/dist/cache/cache-manager.js +0 -191
  35. package/dist/cache/cache-manager.js.map +0 -1
  36. package/dist/cache/index.d.ts +0 -6
  37. package/dist/cache/index.d.ts.map +0 -1
  38. package/dist/cache/index.js +0 -12
  39. package/dist/cache/index.js.map +0 -1
  40. package/dist/cache/redis-client.d.ts +0 -45
  41. package/dist/cache/redis-client.d.ts.map +0 -1
  42. package/dist/cache/redis-client.js +0 -210
  43. package/dist/cache/redis-client.js.map +0 -1
  44. package/dist/config/constants.d.ts +0 -28
  45. package/dist/config/constants.d.ts.map +0 -1
  46. package/dist/config/constants.js +0 -31
  47. package/dist/config/constants.js.map +0 -1
  48. package/dist/config/index.d.ts +0 -71
  49. package/dist/config/index.d.ts.map +0 -1
  50. package/dist/config/index.js +0 -190
  51. package/dist/config/index.js.map +0 -1
  52. package/dist/filesystem/manager.d.ts +0 -45
  53. package/dist/filesystem/manager.d.ts.map +0 -1
  54. package/dist/filesystem/manager.js +0 -246
  55. package/dist/filesystem/manager.js.map +0 -1
  56. package/dist/git/multi-source-manager.d.ts +0 -78
  57. package/dist/git/multi-source-manager.d.ts.map +0 -1
  58. package/dist/git/multi-source-manager.js +0 -577
  59. package/dist/git/multi-source-manager.js.map +0 -1
  60. package/dist/git/operations.d.ts +0 -27
  61. package/dist/git/operations.d.ts.map +0 -1
  62. package/dist/git/operations.js +0 -83
  63. package/dist/git/operations.js.map +0 -1
  64. package/dist/index.d.ts +0 -6
  65. package/dist/index.d.ts.map +0 -1
  66. package/dist/index.js +0 -122
  67. package/dist/index.js.map +0 -1
  68. package/dist/monitoring/health.d.ts +0 -35
  69. package/dist/monitoring/health.d.ts.map +0 -1
  70. package/dist/monitoring/health.js +0 -105
  71. package/dist/monitoring/health.js.map +0 -1
  72. package/dist/prompts/cache.d.ts +0 -69
  73. package/dist/prompts/cache.d.ts.map +0 -1
  74. package/dist/prompts/cache.js +0 -163
  75. package/dist/prompts/cache.js.map +0 -1
  76. package/dist/prompts/generator.d.ts +0 -49
  77. package/dist/prompts/generator.d.ts.map +0 -1
  78. package/dist/prompts/generator.js +0 -160
  79. package/dist/prompts/generator.js.map +0 -1
  80. package/dist/prompts/index.d.ts +0 -13
  81. package/dist/prompts/index.d.ts.map +0 -1
  82. package/dist/prompts/index.js +0 -24
  83. package/dist/prompts/index.js.map +0 -1
  84. package/dist/prompts/manager.d.ts +0 -207
  85. package/dist/prompts/manager.d.ts.map +0 -1
  86. package/dist/prompts/manager.js +0 -566
  87. package/dist/prompts/manager.js.map +0 -1
  88. package/dist/resources/index.d.ts +0 -6
  89. package/dist/resources/index.d.ts.map +0 -1
  90. package/dist/resources/index.js +0 -10
  91. package/dist/resources/index.js.map +0 -1
  92. package/dist/resources/loader.d.ts +0 -88
  93. package/dist/resources/loader.d.ts.map +0 -1
  94. package/dist/resources/loader.js +0 -492
  95. package/dist/resources/loader.js.map +0 -1
  96. package/dist/server/http.d.ts +0 -57
  97. package/dist/server/http.d.ts.map +0 -1
  98. package/dist/server/http.js +0 -435
  99. package/dist/server/http.js.map +0 -1
  100. package/dist/server.d.ts +0 -13
  101. package/dist/server.d.ts.map +0 -1
  102. package/dist/server.js +0 -201
  103. package/dist/server.js.map +0 -1
  104. package/dist/session/manager.d.ts +0 -91
  105. package/dist/session/manager.d.ts.map +0 -1
  106. package/dist/session/manager.js +0 -251
  107. package/dist/session/manager.js.map +0 -1
  108. package/dist/telemetry/index.d.ts +0 -3
  109. package/dist/telemetry/index.d.ts.map +0 -1
  110. package/dist/telemetry/index.js +0 -7
  111. package/dist/telemetry/index.js.map +0 -1
  112. package/dist/telemetry/manager.d.ts +0 -151
  113. package/dist/telemetry/manager.d.ts.map +0 -1
  114. package/dist/telemetry/manager.js +0 -367
  115. package/dist/telemetry/manager.js.map +0 -1
  116. package/dist/tools/index.d.ts +0 -13
  117. package/dist/tools/index.d.ts.map +0 -1
  118. package/dist/tools/index.js +0 -29
  119. package/dist/tools/index.js.map +0 -1
  120. package/dist/tools/manage-subscription.d.ts +0 -47
  121. package/dist/tools/manage-subscription.d.ts.map +0 -1
  122. package/dist/tools/manage-subscription.js +0 -317
  123. package/dist/tools/manage-subscription.js.map +0 -1
  124. package/dist/tools/registry.d.ts +0 -40
  125. package/dist/tools/registry.d.ts.map +0 -1
  126. package/dist/tools/registry.js +0 -85
  127. package/dist/tools/registry.js.map +0 -1
  128. package/dist/tools/resolve-prompt-content.d.ts +0 -35
  129. package/dist/tools/resolve-prompt-content.d.ts.map +0 -1
  130. package/dist/tools/resolve-prompt-content.js +0 -99
  131. package/dist/tools/resolve-prompt-content.js.map +0 -1
  132. package/dist/tools/search-resources.d.ts +0 -35
  133. package/dist/tools/search-resources.d.ts.map +0 -1
  134. package/dist/tools/search-resources.js +0 -159
  135. package/dist/tools/search-resources.js.map +0 -1
  136. package/dist/tools/sync-resources.d.ts +0 -54
  137. package/dist/tools/sync-resources.d.ts.map +0 -1
  138. package/dist/tools/sync-resources.js +0 -735
  139. package/dist/tools/sync-resources.js.map +0 -1
  140. package/dist/tools/track-usage.d.ts +0 -63
  141. package/dist/tools/track-usage.d.ts.map +0 -1
  142. package/dist/tools/track-usage.js +0 -90
  143. package/dist/tools/track-usage.js.map +0 -1
  144. package/dist/tools/uninstall-resource.d.ts +0 -30
  145. package/dist/tools/uninstall-resource.d.ts.map +0 -1
  146. package/dist/tools/uninstall-resource.js +0 -174
  147. package/dist/tools/uninstall-resource.js.map +0 -1
  148. package/dist/tools/upload-resource.d.ts +0 -81
  149. package/dist/tools/upload-resource.d.ts.map +0 -1
  150. package/dist/tools/upload-resource.js +0 -393
  151. package/dist/tools/upload-resource.js.map +0 -1
  152. package/dist/transport/sse.d.ts +0 -29
  153. package/dist/transport/sse.d.ts.map +0 -1
  154. package/dist/transport/sse.js +0 -271
  155. package/dist/transport/sse.js.map +0 -1
  156. package/dist/types/errors.d.ts +0 -60
  157. package/dist/types/errors.d.ts.map +0 -1
  158. package/dist/types/errors.js +0 -112
  159. package/dist/types/errors.js.map +0 -1
  160. package/dist/types/index.d.ts +0 -7
  161. package/dist/types/index.d.ts.map +0 -1
  162. package/dist/types/index.js +0 -23
  163. package/dist/types/index.js.map +0 -1
  164. package/dist/types/mcp.d.ts +0 -50
  165. package/dist/types/mcp.d.ts.map +0 -1
  166. package/dist/types/mcp.js +0 -6
  167. package/dist/types/mcp.js.map +0 -1
  168. package/dist/types/resources.d.ts +0 -109
  169. package/dist/types/resources.d.ts.map +0 -1
  170. package/dist/types/resources.js +0 -7
  171. package/dist/types/resources.js.map +0 -1
  172. package/dist/types/tools.d.ts +0 -253
  173. package/dist/types/tools.d.ts.map +0 -1
  174. package/dist/types/tools.js +0 -6
  175. package/dist/types/tools.js.map +0 -1
  176. package/dist/utils/cursor-paths.d.ts +0 -84
  177. package/dist/utils/cursor-paths.d.ts.map +0 -1
  178. package/dist/utils/cursor-paths.js +0 -166
  179. package/dist/utils/cursor-paths.js.map +0 -1
  180. package/dist/utils/log-cleaner.d.ts +0 -18
  181. package/dist/utils/log-cleaner.d.ts.map +0 -1
  182. package/dist/utils/log-cleaner.js +0 -112
  183. package/dist/utils/log-cleaner.js.map +0 -1
  184. package/dist/utils/logger.d.ts +0 -59
  185. package/dist/utils/logger.d.ts.map +0 -1
  186. package/dist/utils/logger.js +0 -292
  187. package/dist/utils/logger.js.map +0 -1
  188. package/dist/utils/validation.d.ts +0 -58
  189. package/dist/utils/validation.d.ts.map +0 -1
  190. package/dist/utils/validation.js +0 -214
  191. package/dist/utils/validation.js.map +0 -1
  192. package/src/api/cached-client.ts +0 -144
  193. package/src/api/client.ts +0 -697
  194. package/src/auth/index.ts +0 -11
  195. package/src/auth/middleware.ts +0 -244
  196. package/src/auth/permissions.ts +0 -323
  197. package/src/auth/token-validator.ts +0 -292
  198. package/src/cache/cache-manager.ts +0 -243
  199. package/src/cache/index.ts +0 -6
  200. package/src/cache/redis-client.ts +0 -249
  201. package/src/config/constants.ts +0 -33
  202. package/src/config/index.ts +0 -269
  203. package/src/filesystem/manager.ts +0 -235
  204. package/src/git/multi-source-manager.ts +0 -654
  205. package/src/git/operations.ts +0 -93
  206. package/src/index.ts +0 -157
  207. package/src/monitoring/health.ts +0 -132
  208. package/src/prompts/cache.ts +0 -140
  209. package/src/prompts/generator.ts +0 -143
  210. package/src/prompts/index.ts +0 -20
  211. package/src/prompts/manager.ts +0 -718
  212. package/src/resources/index.ts +0 -13
  213. package/src/resources/loader.ts +0 -563
  214. package/src/server/http.ts +0 -549
  215. package/src/server.ts +0 -206
  216. package/src/session/manager.ts +0 -296
  217. package/src/telemetry/index.ts +0 -10
  218. package/src/telemetry/manager.ts +0 -419
  219. package/src/tools/index.ts +0 -13
  220. package/src/tools/manage-subscription.ts +0 -388
  221. package/src/tools/registry.ts +0 -97
  222. package/src/tools/resolve-prompt-content.ts +0 -113
  223. package/src/tools/search-resources.ts +0 -185
  224. package/src/tools/sync-resources.ts +0 -829
  225. package/src/tools/track-usage.ts +0 -113
  226. package/src/tools/uninstall-resource.ts +0 -199
  227. package/src/tools/upload-resource.ts +0 -431
  228. package/src/transport/sse.ts +0 -308
  229. package/src/types/errors.ts +0 -146
  230. package/src/types/index.ts +0 -7
  231. package/src/types/mcp.ts +0 -61
  232. package/src/types/resources.ts +0 -141
  233. package/src/types/tools.ts +0 -305
  234. package/src/utils/cursor-paths.ts +0 -135
  235. package/src/utils/log-cleaner.ts +0 -92
  236. package/src/utils/logger.ts +0 -333
  237. package/src/utils/validation.ts +0 -262
@@ -1,83 +0,0 @@
1
- "use strict";
2
- /**
3
- * Git Operations Module
4
- * Per-repo git helpers used by upload_resource to target a specific source repo.
5
- * All repo URLs and branches come from AI-Resources/ai-resources-config.json —
6
- * not from environment variables.
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.gitOperations = void 0;
13
- const simple_git_1 = __importDefault(require("simple-git"));
14
- const config_1 = require("../config");
15
- const logger_1 = require("../utils/logger");
16
- const errors_1 = require("../types/errors");
17
- class GitOperations {
18
- // ---- Per-repo helpers (used by upload_resource to target a specific source) ----
19
- /**
20
- * Check whether a git repository exists at an arbitrary local path
21
- */
22
- async repositoryExistsAt(repoPath) {
23
- try {
24
- const git = (0, simple_git_1.default)({ baseDir: repoPath, binary: 'git', maxConcurrentProcesses: 6 });
25
- await git.status();
26
- return true;
27
- }
28
- catch {
29
- return false;
30
- }
31
- }
32
- /**
33
- * Get current branch of an arbitrary local repo
34
- */
35
- async getCurrentBranchAt(repoPath) {
36
- try {
37
- const git = (0, simple_git_1.default)({ baseDir: repoPath, binary: 'git', maxConcurrentProcesses: 6 });
38
- const branchSummary = await git.branch();
39
- return branchSummary.current;
40
- }
41
- catch (error) {
42
- throw (0, errors_1.createGitError)('get-branch', error);
43
- }
44
- }
45
- /**
46
- * Commit and push to a specific repo / remote url / branch.
47
- * Creates a unique remote testing branch and returns a PR URL.
48
- */
49
- async commitAndPushRepo(repoPath, remoteUrl, baseBranch, message, files) {
50
- try {
51
- const git = (0, simple_git_1.default)({ baseDir: repoPath, binary: 'git', maxConcurrentProcesses: 6 });
52
- logger_1.logger.info({ repoPath, remoteUrl, message, fileCount: files?.length }, 'Committing and pushing to source repo...');
53
- await git.addConfig('user.name', config_1.config.git.userName);
54
- await git.addConfig('user.email', config_1.config.git.userEmail);
55
- const branchSummary = await git.branch();
56
- const currentBranch = branchSummary.current;
57
- const timestamp = Date.now();
58
- const randomSuffix = Math.random().toString(36).substring(2, 8);
59
- const remoteBranchName = `dev-${currentBranch}-testing-${timestamp}-${randomSuffix}`;
60
- logger_1.logger.info({ remoteBranchName }, 'Generated remote branch name for PR');
61
- if (files && files.length > 0) {
62
- await git.add(files);
63
- }
64
- else {
65
- await git.add('.');
66
- }
67
- const commitResult = await git.commit(message);
68
- const commitHash = commitResult.commit;
69
- logger_1.logger.info({ commitHash }, 'Git commit created');
70
- await git.push(remoteUrl, `${currentBranch}:${remoteBranchName}`);
71
- logger_1.logger.info({ remoteBranchName }, 'Git push completed');
72
- const repoBaseUrl = remoteUrl.replace(/\.git$/, '');
73
- const prUrl = `${repoBaseUrl}/compare/${baseBranch}...${remoteBranchName}`;
74
- logger_1.logger.info({ prUrl, commitHash }, 'PR URL generated');
75
- return { commitHash, prUrl };
76
- }
77
- catch (error) {
78
- throw (0, errors_1.createGitError)('commit-push', error, remoteUrl);
79
- }
80
- }
81
- }
82
- exports.gitOperations = new GitOperations();
83
- //# sourceMappingURL=operations.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/git/operations.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts DELETED
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env node
2
- /**
3
- * CSP AI Agent MCP Server - Main Entry Point
4
- */
5
- export {};
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA;;GAEG"}
package/dist/index.js DELETED
@@ -1,122 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- /**
4
- * CSP AI Agent MCP Server - Main Entry Point
5
- */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- const config_1 = require("./config");
8
- const logger_1 = require("./utils/logger");
9
- const log_cleaner_1 = require("./utils/log-cleaner");
10
- const server_1 = require("./server");
11
- const token_validator_1 = require("./auth/token-validator");
12
- const manager_1 = require("./session/manager");
13
- const index_js_1 = require("./telemetry/index.js");
14
- const client_js_1 = require("./api/client.js");
15
- // Global error handlers
16
- process.on('uncaughtException', (error) => {
17
- // Handle EPIPE and ECONNRESET gracefully (client disconnected)
18
- if (error.message.includes('EPIPE') || error.message.includes('ECONNRESET')) {
19
- logger_1.logger.debug({
20
- error: error.message,
21
- type: 'uncaught_exception_network'
22
- }, 'Client disconnected (EPIPE/ECONNRESET)');
23
- return; // Don't exit for network errors
24
- }
25
- // For other uncaught exceptions, log and exit
26
- logger_1.logger.error({ error, type: 'uncaught_exception' }, `Uncaught Exception: ${error.message}`);
27
- process.exit(1);
28
- });
29
- process.on('unhandledRejection', (reason, _promise) => {
30
- logger_1.logger.error({
31
- type: 'unhandled_rejection',
32
- reason: reason instanceof Error ? reason.message : String(reason),
33
- stack: reason instanceof Error ? reason.stack : undefined,
34
- }, 'Unhandled Promise Rejection');
35
- process.exit(1);
36
- });
37
- async function main() {
38
- logger_1.logger.info({
39
- nodeEnv: config_1.config.nodeEnv,
40
- port: config_1.config.port,
41
- logLevel: config_1.config.logLevel,
42
- }, 'Starting CSP AI Agent MCP Server...');
43
- // Start log cleanup scheduler
44
- const cleanupTimer = (0, log_cleaner_1.startLogCleanupSchedule)();
45
- // Wire up telemetry reporting (inject API client to avoid circular import).
46
- // Tokens are sourced exclusively from authenticated SSE connections via setUserToken().
47
- index_js_1.telemetry.configure((payload, token) => client_js_1.apiClient.reportTelemetry(payload, token));
48
- try {
49
- // Start MCP Server
50
- await (0, server_1.startServer)();
51
- logger_1.logger.info({ port: config_1.config.port }, `✅ CSP AI Agent MCP Server started successfully`);
52
- // Start periodic telemetry flush (every 10 seconds)
53
- index_js_1.telemetry.startPeriodicFlush(10_000);
54
- logger_1.logger.info('Telemetry flush scheduler started (interval: 10s)');
55
- }
56
- catch (error) {
57
- logger_1.logger.error({ error }, 'Failed to start server');
58
- (0, log_cleaner_1.stopLogCleanupSchedule)(cleanupTimer);
59
- process.exit(1);
60
- }
61
- // Graceful shutdown handlers
62
- let isShuttingDown = false;
63
- const SHUTDOWN_TIMEOUT = Number(process.env.SHUTDOWN_TIMEOUT) || 30000; // 30 seconds default
64
- const shutdown = async (signal) => {
65
- // Prevent multiple shutdown attempts
66
- if (isShuttingDown) {
67
- logger_1.logger.warn({ signal }, 'Shutdown already in progress, ignoring signal');
68
- return;
69
- }
70
- isShuttingDown = true;
71
- logger_1.logger.info({ signal, timeout: SHUTDOWN_TIMEOUT }, `Received ${signal}, starting graceful shutdown...`);
72
- // Set timeout for forced shutdown
73
- const shutdownTimer = setTimeout(() => {
74
- logger_1.logger.error({ timeout: SHUTDOWN_TIMEOUT }, `Graceful shutdown timeout (${SHUTDOWN_TIMEOUT}ms), forcing exit`);
75
- process.exit(1);
76
- }, SHUTDOWN_TIMEOUT);
77
- try {
78
- // Phase 1: Stop accepting new requests
79
- logger_1.logger.info('Phase 1: Stopping new requests...');
80
- // Phase 2: Wait for ongoing requests to complete
81
- logger_1.logger.info('Phase 2: Waiting for ongoing requests to complete...');
82
- // Stop MCP Server (this will close all active sessions and connections)
83
- await (0, server_1.stopServer)();
84
- // Phase 3: Stop background tasks
85
- logger_1.logger.info('Phase 3: Stopping background tasks...');
86
- // Stop log cleanup
87
- (0, log_cleaner_1.stopLogCleanupSchedule)(cleanupTimer);
88
- // Stop session cleanup
89
- manager_1.sessionManager.stopCleanup();
90
- logger_1.logger.info('Session cleanup stopped');
91
- // Stop token cache cleanup
92
- (0, token_validator_1.stopCacheCleanup)();
93
- logger_1.logger.info('Token cache cleanup stopped');
94
- // Stop telemetry scheduler and perform final flush
95
- index_js_1.telemetry.stopPeriodicFlush();
96
- logger_1.logger.info('Telemetry scheduler stopped, performing final flush...');
97
- await index_js_1.telemetry.flush();
98
- logger_1.logger.info('Final telemetry flush completed');
99
- // Phase 4: Flush logs
100
- logger_1.logger.info('Phase 4: Flushing logs...');
101
- // Give logger time to flush
102
- await new Promise(resolve => setTimeout(resolve, 500));
103
- // Clear shutdown timeout
104
- clearTimeout(shutdownTimer);
105
- logger_1.logger.info('✅ Graceful shutdown completed successfully');
106
- process.exit(0);
107
- }
108
- catch (error) {
109
- logger_1.logger.error({ error }, 'Error during graceful shutdown');
110
- clearTimeout(shutdownTimer);
111
- process.exit(1);
112
- }
113
- };
114
- process.on('SIGINT', () => void shutdown('SIGINT'));
115
- process.on('SIGTERM', () => void shutdown('SIGTERM'));
116
- }
117
- // Start the application
118
- void main().catch((error) => {
119
- logger_1.logger.error({ error }, 'Fatal error during startup');
120
- process.exit(1);
121
- });
122
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- import { CacheManager } from '../cache/cache-manager.js';
2
- export interface HealthStatus {
3
- status: 'healthy' | 'unhealthy';
4
- timestamp: string;
5
- services: {
6
- http: 'up' | 'down';
7
- redis: 'up' | 'down' | 'not_configured';
8
- cache: 'healthy' | 'degraded' | 'down';
9
- };
10
- details?: {
11
- redisError?: string;
12
- cacheError?: string;
13
- };
14
- }
15
- export declare class HealthChecker {
16
- private cacheManager;
17
- constructor(cacheManager?: CacheManager);
18
- /**
19
- * Check HTTP Server health
20
- */
21
- private checkHttpServer;
22
- /**
23
- * Check Redis connection health
24
- */
25
- private checkRedis;
26
- /**
27
- * Check Cache health
28
- */
29
- private checkCache;
30
- /**
31
- * Perform comprehensive health check
32
- */
33
- check(): Promise<HealthStatus>;
34
- }
35
- //# sourceMappingURL=health.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/monitoring/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,SAAS,GAAG,WAAW,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QACR,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;QACpB,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,gBAAgB,CAAC;QACxC,KAAK,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;KACxC,CAAC;IACF,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAA6B;gBAErC,YAAY,CAAC,EAAE,YAAY;IAIvC;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;YACW,UAAU;IA+BxB;;OAEG;IACH,OAAO,CAAC,UAAU;IA2BlB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,YAAY,CAAC;CAiCrC"}
@@ -1,105 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HealthChecker = void 0;
4
- class HealthChecker {
5
- cacheManager = null;
6
- constructor(cacheManager) {
7
- this.cacheManager = cacheManager || null;
8
- }
9
- /**
10
- * Check HTTP Server health
11
- */
12
- checkHttpServer() {
13
- // HTTP server is up if this code is running
14
- return 'up';
15
- }
16
- /**
17
- * Check Redis connection health
18
- */
19
- async checkRedis() {
20
- if (!this.cacheManager) {
21
- return { status: 'not_configured' };
22
- }
23
- try {
24
- // Try to check Redis connection via cache manager
25
- const redisCache = this.cacheManager.l2Cache;
26
- if (!redisCache) {
27
- return { status: 'not_configured' };
28
- }
29
- // Try a simple Redis operation (check client status)
30
- const client = redisCache.client;
31
- if (!client || !client.isReady) {
32
- return { status: 'down', error: 'Redis client not ready' };
33
- }
34
- // Try a ping operation
35
- await client.ping();
36
- return { status: 'up' };
37
- }
38
- catch (error) {
39
- return {
40
- status: 'down',
41
- error: error instanceof Error ? error.message : 'Unknown error'
42
- };
43
- }
44
- }
45
- /**
46
- * Check Cache health
47
- */
48
- checkCache() {
49
- if (!this.cacheManager) {
50
- return { status: 'down', error: 'Cache manager not initialized' };
51
- }
52
- try {
53
- // Check if cache manager is functional
54
- const stats = this.cacheManager.getStats();
55
- // Cache is healthy if stats are available
56
- if (stats && typeof stats.hitRate === 'number') {
57
- // Check if hit rate is reasonable (> 0 means cache is working)
58
- if (stats.hitRate >= 0) {
59
- return { status: 'healthy' };
60
- }
61
- return { status: 'degraded', error: 'Low cache hit rate' };
62
- }
63
- return { status: 'degraded', error: 'Cache stats unavailable' };
64
- }
65
- catch (error) {
66
- return {
67
- status: 'down',
68
- error: error instanceof Error ? error.message : 'Unknown error'
69
- };
70
- }
71
- }
72
- /**
73
- * Perform comprehensive health check
74
- */
75
- async check() {
76
- const httpStatus = this.checkHttpServer();
77
- const redisResult = await this.checkRedis();
78
- const cacheResult = this.checkCache();
79
- const allHealthy = httpStatus === 'up' &&
80
- (redisResult.status === 'up' || redisResult.status === 'not_configured') &&
81
- cacheResult.status === 'healthy';
82
- const health = {
83
- status: allHealthy ? 'healthy' : 'unhealthy',
84
- timestamp: new Date().toISOString(),
85
- services: {
86
- http: httpStatus,
87
- redis: redisResult.status,
88
- cache: cacheResult.status
89
- }
90
- };
91
- // Add error details if any
92
- if (redisResult.error || cacheResult.error) {
93
- health.details = {};
94
- if (redisResult.error) {
95
- health.details.redisError = redisResult.error;
96
- }
97
- if (cacheResult.error) {
98
- health.details.cacheError = cacheResult.error;
99
- }
100
- }
101
- return health;
102
- }
103
- }
104
- exports.HealthChecker = HealthChecker;
105
- //# sourceMappingURL=health.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/monitoring/health.ts"],"names":[],"mappings":"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"}
@@ -1,69 +0,0 @@
1
- /**
2
- * PromptCache: manages the .prompt-cache/ directory inside the MCP Server's
3
- * runtime working directory.
4
- *
5
- * Cache files hold the fully-expanded Prompt content for each Command/Skill
6
- * resource so that the MCP Prompt handler can serve them without re-generating
7
- * on every invocation.
8
- *
9
- * The cache directory is intentionally NOT committed to Git — it is regenerated
10
- * from the canonical source files after every git pull or resource upload.
11
- *
12
- * File naming: {type}-{resource_id}.md
13
- * e.g. cmd-client-sdk-generate-testcase.md
14
- * skill-client-sdk-analyze-sdk-log.md
15
- */
16
- export declare class PromptCache {
17
- private readonly cacheDir;
18
- /**
19
- * @param baseDir Absolute base directory (defaults to process.cwd()).
20
- */
21
- constructor(baseDir?: string);
22
- /** Absolute path to the cache directory. */
23
- get directory(): string;
24
- /** Ensure the cache directory exists (idempotent). */
25
- ensureDir(): void;
26
- /**
27
- * Derive the cache file name for a resource.
28
- * @param resourceType 'command' | 'skill'
29
- * @param resourceId Canonical resource ID
30
- */
31
- private cacheFileName;
32
- /** Absolute path to the cache file for a given resource. */
33
- cachePath(resourceType: string, resourceId: string): string;
34
- /**
35
- * Write (or overwrite) a resource's Prompt content to the cache.
36
- * Uses atomic write-then-rename to prevent partial reads.
37
- *
38
- * @param resourceType 'command' | 'skill'
39
- * @param resourceId Canonical resource ID
40
- * @param content Fully-expanded Prompt Markdown content
41
- */
42
- write(resourceType: string, resourceId: string, content: string): void;
43
- /**
44
- * Read the cached Prompt content for a resource.
45
- * Returns null if the cache file does not exist or cannot be read.
46
- *
47
- * @param resourceType 'command' | 'skill'
48
- * @param resourceId Canonical resource ID
49
- */
50
- read(resourceType: string, resourceId: string): string | null;
51
- /**
52
- * Delete the cache file for a resource.
53
- * Silently succeeds if the file does not exist.
54
- *
55
- * @param resourceType 'command' | 'skill'
56
- * @param resourceId Canonical resource ID
57
- */
58
- delete(resourceType: string, resourceId: string): void;
59
- /**
60
- * Check whether a valid cache entry exists for a resource.
61
- *
62
- * @param resourceType 'command' | 'skill'
63
- * @param resourceId Canonical resource ID
64
- */
65
- exists(resourceType: string, resourceId: string): boolean;
66
- }
67
- /** Singleton cache instance using the process CWD as the base directory. */
68
- export declare const promptCache: PromptCache;
69
- //# sourceMappingURL=cache.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/prompts/cache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;OAEG;gBACS,OAAO,GAAE,MAAsB;IAI3C,4CAA4C;IAC5C,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,sDAAsD;IACtD,SAAS,IAAI,IAAI;IAIjB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAQrB,4DAA4D;IAC5D,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM;IAI3D;;;;;;;OAOG;IACH,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAoBtE;;;;;;OAMG;IACH,IAAI,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAS7D;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI;IAetD;;;;;OAKG;IACH,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO;CAG1D;AAED,4EAA4E;AAC5E,eAAO,MAAM,WAAW,aAAoB,CAAC"}
@@ -1,163 +0,0 @@
1
- "use strict";
2
- /**
3
- * PromptCache: manages the .prompt-cache/ directory inside the MCP Server's
4
- * runtime working directory.
5
- *
6
- * Cache files hold the fully-expanded Prompt content for each Command/Skill
7
- * resource so that the MCP Prompt handler can serve them without re-generating
8
- * on every invocation.
9
- *
10
- * The cache directory is intentionally NOT committed to Git — it is regenerated
11
- * from the canonical source files after every git pull or resource upload.
12
- *
13
- * File naming: {type}-{resource_id}.md
14
- * e.g. cmd-client-sdk-generate-testcase.md
15
- * skill-client-sdk-analyze-sdk-log.md
16
- */
17
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
18
- if (k2 === undefined) k2 = k;
19
- var desc = Object.getOwnPropertyDescriptor(m, k);
20
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
21
- desc = { enumerable: true, get: function() { return m[k]; } };
22
- }
23
- Object.defineProperty(o, k2, desc);
24
- }) : (function(o, m, k, k2) {
25
- if (k2 === undefined) k2 = k;
26
- o[k2] = m[k];
27
- }));
28
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
29
- Object.defineProperty(o, "default", { enumerable: true, value: v });
30
- }) : function(o, v) {
31
- o["default"] = v;
32
- });
33
- var __importStar = (this && this.__importStar) || (function () {
34
- var ownKeys = function(o) {
35
- ownKeys = Object.getOwnPropertyNames || function (o) {
36
- var ar = [];
37
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
38
- return ar;
39
- };
40
- return ownKeys(o);
41
- };
42
- return function (mod) {
43
- if (mod && mod.__esModule) return mod;
44
- var result = {};
45
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
46
- __setModuleDefault(result, mod);
47
- return result;
48
- };
49
- })();
50
- Object.defineProperty(exports, "__esModule", { value: true });
51
- exports.promptCache = exports.PromptCache = void 0;
52
- const fs = __importStar(require("fs"));
53
- const path = __importStar(require("path"));
54
- const logger_js_1 = require("../utils/logger.js");
55
- /** Relative directory name inside the MCP Server CWD for cached Prompt files. */
56
- const CACHE_DIR_NAME = '.prompt-cache';
57
- class PromptCache {
58
- cacheDir;
59
- /**
60
- * @param baseDir Absolute base directory (defaults to process.cwd()).
61
- */
62
- constructor(baseDir = process.cwd()) {
63
- this.cacheDir = path.join(baseDir, CACHE_DIR_NAME);
64
- }
65
- /** Absolute path to the cache directory. */
66
- get directory() {
67
- return this.cacheDir;
68
- }
69
- /** Ensure the cache directory exists (idempotent). */
70
- ensureDir() {
71
- fs.mkdirSync(this.cacheDir, { recursive: true });
72
- }
73
- /**
74
- * Derive the cache file name for a resource.
75
- * @param resourceType 'command' | 'skill'
76
- * @param resourceId Canonical resource ID
77
- */
78
- cacheFileName(resourceType, resourceId) {
79
- // Normalise type prefix: 'command' → 'cmd', 'skill' → 'skill'
80
- const prefix = resourceType === 'command' ? 'cmd' : resourceType;
81
- // Sanitise resourceId — remove characters unsafe in filenames.
82
- const safeId = resourceId.replace(/[/\\:*?"<>|]/g, '-');
83
- return `${prefix}-${safeId}.md`;
84
- }
85
- /** Absolute path to the cache file for a given resource. */
86
- cachePath(resourceType, resourceId) {
87
- return path.join(this.cacheDir, this.cacheFileName(resourceType, resourceId));
88
- }
89
- /**
90
- * Write (or overwrite) a resource's Prompt content to the cache.
91
- * Uses atomic write-then-rename to prevent partial reads.
92
- *
93
- * @param resourceType 'command' | 'skill'
94
- * @param resourceId Canonical resource ID
95
- * @param content Fully-expanded Prompt Markdown content
96
- */
97
- write(resourceType, resourceId, content) {
98
- this.ensureDir();
99
- const dest = this.cachePath(resourceType, resourceId);
100
- const tmp = `${dest}.${process.pid}.tmp`;
101
- try {
102
- fs.writeFileSync(tmp, content, 'utf8');
103
- fs.renameSync(tmp, dest);
104
- logger_js_1.logger.debug({ resourceId, resourceType, path: dest }, 'Prompt cache written');
105
- }
106
- catch (err) {
107
- // Best-effort cleanup of temp file
108
- try {
109
- fs.unlinkSync(tmp);
110
- }
111
- catch { /* ignore */ }
112
- throw new Error(`Failed to write prompt cache for ${resourceId}: ${err.message}`);
113
- }
114
- }
115
- /**
116
- * Read the cached Prompt content for a resource.
117
- * Returns null if the cache file does not exist or cannot be read.
118
- *
119
- * @param resourceType 'command' | 'skill'
120
- * @param resourceId Canonical resource ID
121
- */
122
- read(resourceType, resourceId) {
123
- const p = this.cachePath(resourceType, resourceId);
124
- try {
125
- return fs.readFileSync(p, 'utf8');
126
- }
127
- catch {
128
- return null;
129
- }
130
- }
131
- /**
132
- * Delete the cache file for a resource.
133
- * Silently succeeds if the file does not exist.
134
- *
135
- * @param resourceType 'command' | 'skill'
136
- * @param resourceId Canonical resource ID
137
- */
138
- delete(resourceType, resourceId) {
139
- const p = this.cachePath(resourceType, resourceId);
140
- try {
141
- fs.unlinkSync(p);
142
- logger_js_1.logger.debug({ resourceId, resourceType }, 'Prompt cache deleted');
143
- }
144
- catch (err) {
145
- if (err.code !== 'ENOENT') {
146
- logger_js_1.logger.warn({ resourceId, error: err.message }, 'Failed to delete prompt cache file');
147
- }
148
- }
149
- }
150
- /**
151
- * Check whether a valid cache entry exists for a resource.
152
- *
153
- * @param resourceType 'command' | 'skill'
154
- * @param resourceId Canonical resource ID
155
- */
156
- exists(resourceType, resourceId) {
157
- return fs.existsSync(this.cachePath(resourceType, resourceId));
158
- }
159
- }
160
- exports.PromptCache = PromptCache;
161
- /** Singleton cache instance using the process CWD as the base directory. */
162
- exports.promptCache = new PromptCache();
163
- //# sourceMappingURL=cache.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../src/prompts/cache.ts"],"names":[],"mappings":"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"}