0xray 2.1.1 → 2.1.3

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 (254) hide show
  1. package/.opencode/codex.codex +1 -1
  2. package/.opencode/commands/dependency-audit.md +3 -3
  3. package/.opencode/enforcer-config.json +2 -2
  4. package/AGENTS.md +3 -2
  5. package/README.md +12 -11
  6. package/dist/AGENTS.md +3 -2
  7. package/dist/CHANGELOG.md +26 -0
  8. package/dist/README.md +12 -11
  9. package/dist/agents/code-reviewer.js +1 -1
  10. package/dist/analytics/routing-refiner.js +1 -1
  11. package/dist/cli/index.js +11 -1
  12. package/dist/cli/server.js +3 -3
  13. package/dist/core/activity-logger.d.ts +2 -2
  14. package/dist/core/activity-logger.js +4 -4
  15. package/dist/core/boot-orchestrator.d.ts +1 -1
  16. package/dist/core/boot-orchestrator.js +13 -28
  17. package/dist/core/bridge.mjs +3 -3
  18. package/dist/core/codex-formatter.js +2 -2
  19. package/dist/core/codex-injector.d.ts +0 -1
  20. package/dist/core/codex-injector.js +2 -3
  21. package/dist/core/config-loader.d.ts +1 -1
  22. package/dist/core/config-loader.js +1 -1
  23. package/dist/core/config-paths.d.ts +0 -2
  24. package/dist/core/config-paths.js +7 -8
  25. package/dist/core/context-loader.d.ts +1 -1
  26. package/dist/core/context-loader.js +1 -1
  27. package/dist/core/errors.d.ts +3 -0
  28. package/dist/core/errors.js +10 -0
  29. package/dist/core/features-config.js +1 -1
  30. package/dist/core/framework-logger.d.ts +3 -3
  31. package/dist/core/framework-logger.js +17 -9
  32. package/dist/core/index.d.ts +2 -2
  33. package/dist/core/index.js +4 -2
  34. package/dist/core/logging-config.d.ts +2 -1
  35. package/dist/core/logging-config.js +7 -7
  36. package/dist/enforcement/loaders/codex-loader.js +1 -1
  37. package/dist/execution/opencode-cli-invoker.js +5 -5
  38. package/dist/governance/governance-service.js +1 -1
  39. package/dist/index.d.ts +3 -3
  40. package/dist/index.js +3 -3
  41. package/dist/inference/inference-cycle.d.ts +1 -1
  42. package/dist/inference/inference-cycle.js +10 -10
  43. package/dist/integrations/base/Integration.js +1 -1
  44. package/dist/integrations/base/registry.js +19 -19
  45. package/dist/integrations/grok/grok-cli.js +17 -17
  46. package/dist/integrations/grok/hooks/pre-tool-use.js +1 -1
  47. package/dist/integrations/hermes-agent/bridge.mjs +1 -1
  48. package/dist/integrations/openclaw/api-server.d.ts +0 -1
  49. package/dist/integrations/openclaw/api-server.js +7 -10
  50. package/dist/integrations/openclaw/client.d.ts +0 -1
  51. package/dist/integrations/openclaw/client.js +22 -24
  52. package/dist/integrations/openclaw/hooks/xray-hooks.d.ts +0 -1
  53. package/dist/integrations/openclaw/hooks/xray-hooks.js +17 -18
  54. package/dist/integrations/plugins/plugin-registry.js +5 -5
  55. package/dist/mcps/architect-tools.server.d.ts +2 -4
  56. package/dist/mcps/architect-tools.server.js +112 -195
  57. package/dist/mcps/auto-format.server.d.ts +2 -4
  58. package/dist/mcps/auto-format.server.js +49 -95
  59. package/dist/mcps/boot-orchestrator.server.d.ts +2 -4
  60. package/dist/mcps/boot-orchestrator.server.js +73 -105
  61. package/dist/mcps/config/server-config-registry.js +3 -3
  62. package/dist/mcps/enforcer-tools.server.d.ts +2 -4
  63. package/dist/mcps/enforcer-tools.server.js +202 -285
  64. package/dist/mcps/estimation.server.d.ts +2 -4
  65. package/dist/mcps/estimation.server.js +63 -107
  66. package/dist/mcps/framework-compliance-audit.server.d.ts +2 -4
  67. package/dist/mcps/framework-compliance-audit.server.js +53 -82
  68. package/dist/mcps/framework-help.server.d.ts +2 -4
  69. package/dist/mcps/framework-help.server.js +63 -101
  70. package/dist/mcps/governance.server.js +2 -2
  71. package/dist/mcps/knowledge-skills/api-design.server.d.ts +2 -4
  72. package/dist/mcps/knowledge-skills/api-design.server.js +35 -67
  73. package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts +2 -10
  74. package/dist/mcps/knowledge-skills/architecture-patterns.server.js +35 -74
  75. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.d.ts +2 -4
  76. package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +143 -162
  77. package/dist/mcps/knowledge-skills/code-analyzer.server.d.ts +3 -4
  78. package/dist/mcps/knowledge-skills/code-analyzer.server.js +20 -45
  79. package/dist/mcps/knowledge-skills/code-review.server.d.ts +2 -4
  80. package/dist/mcps/knowledge-skills/code-review.server.js +109 -143
  81. package/dist/mcps/knowledge-skills/content-creator.server.d.ts +2 -4
  82. package/dist/mcps/knowledge-skills/content-creator.server.js +205 -226
  83. package/dist/mcps/knowledge-skills/database-design.server.d.ts +2 -4
  84. package/dist/mcps/knowledge-skills/database-design.server.js +117 -151
  85. package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts +2 -4
  86. package/dist/mcps/knowledge-skills/devops-deployment.server.js +71 -160
  87. package/dist/mcps/knowledge-skills/git-workflow.server.d.ts +2 -4
  88. package/dist/mcps/knowledge-skills/git-workflow.server.js +36 -68
  89. package/dist/mcps/knowledge-skills/growth-strategist.server.d.ts +2 -4
  90. package/dist/mcps/knowledge-skills/growth-strategist.server.js +303 -324
  91. package/dist/mcps/knowledge-skills/log-monitor.server.d.ts +2 -4
  92. package/dist/mcps/knowledge-skills/log-monitor.server.js +141 -160
  93. package/dist/mcps/knowledge-skills/mobile-development.server.d.ts +2 -4
  94. package/dist/mcps/knowledge-skills/mobile-development.server.js +92 -209
  95. package/dist/mcps/knowledge-skills/multimodal-looker.server.d.ts +2 -4
  96. package/dist/mcps/knowledge-skills/multimodal-looker.server.js +123 -159
  97. package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts +2 -5
  98. package/dist/mcps/knowledge-skills/performance-optimization.server.js +155 -296
  99. package/dist/mcps/knowledge-skills/project-analysis.server.d.ts +2 -4
  100. package/dist/mcps/knowledge-skills/project-analysis.server.js +75 -226
  101. package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts +2 -4
  102. package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +63 -156
  103. package/dist/mcps/knowledge-skills/security-audit.server.d.ts +2 -4
  104. package/dist/mcps/knowledge-skills/security-audit.server.js +102 -136
  105. package/dist/mcps/knowledge-skills/seo-consultant.server.d.ts +2 -4
  106. package/dist/mcps/knowledge-skills/seo-consultant.server.js +80 -203
  107. package/dist/mcps/knowledge-skills/session-management.server.d.ts +2 -4
  108. package/dist/mcps/knowledge-skills/session-management.server.js +50 -203
  109. package/dist/mcps/knowledge-skills/skill-invocation.server.d.ts +2 -4
  110. package/dist/mcps/knowledge-skills/skill-invocation.server.js +168 -347
  111. package/dist/mcps/knowledge-skills/strategist.server.d.ts +2 -11
  112. package/dist/mcps/knowledge-skills/strategist.server.js +72 -122
  113. package/dist/mcps/knowledge-skills/tech-writer.server.d.ts +2 -4
  114. package/dist/mcps/knowledge-skills/tech-writer.server.js +87 -300
  115. package/dist/mcps/knowledge-skills/testing-best-practices.server.d.ts +2 -4
  116. package/dist/mcps/knowledge-skills/testing-best-practices.server.js +147 -182
  117. package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts +2 -4
  118. package/dist/mcps/knowledge-skills/testing-strategy.server.js +78 -153
  119. package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts +2 -5
  120. package/dist/mcps/knowledge-skills/ui-ux-design.server.js +90 -399
  121. package/dist/mcps/lint.server.d.ts +2 -4
  122. package/dist/mcps/lint.server.js +51 -92
  123. package/dist/mcps/mcp-client.js +2 -2
  124. package/dist/mcps/model-health-check.server.d.ts +2 -4
  125. package/dist/mcps/model-health-check.server.js +32 -60
  126. package/dist/mcps/performance-analysis.server.d.ts +2 -4
  127. package/dist/mcps/performance-analysis.server.js +57 -88
  128. package/dist/mcps/processor-pipeline.server.d.ts +2 -4
  129. package/dist/mcps/processor-pipeline.server.js +69 -100
  130. package/dist/mcps/registry.json +1 -1
  131. package/dist/mcps/researcher.server.d.ts +3 -5
  132. package/dist/mcps/researcher.server.js +81 -154
  133. package/dist/mcps/security-scan.server.d.ts +2 -4
  134. package/dist/mcps/security-scan.server.js +54 -96
  135. package/dist/mcps/shared/knowledge-skill-base.d.ts +14 -0
  136. package/dist/mcps/shared/knowledge-skill-base.js +45 -0
  137. package/dist/{security → mcps/shared}/security-scanner.js +1 -1
  138. package/dist/mcps/state-manager.server.d.ts +2 -4
  139. package/dist/mcps/state-manager.server.js +115 -160
  140. package/dist/orchestrator/orchestrator.d.ts +1 -1
  141. package/dist/orchestrator/orchestrator.js +1 -1
  142. package/dist/orchestrator/universal-registry-bridge.js +1 -1
  143. package/dist/plugin/xray-codex-injection.d.ts +1 -1
  144. package/dist/plugin/xray-codex-injection.js +1 -1
  145. package/dist/postprocessor/PostProcessor.d.ts +4 -44
  146. package/dist/postprocessor/PostProcessor.js +39 -553
  147. package/dist/postprocessor/analysis/CodeChangeAnalyzer.d.ts +11 -0
  148. package/dist/postprocessor/analysis/CodeChangeAnalyzer.js +50 -0
  149. package/dist/postprocessor/compliance/ArchitecturalComplianceChecker.d.ts +11 -0
  150. package/dist/postprocessor/compliance/ArchitecturalComplianceChecker.js +356 -0
  151. package/dist/postprocessor/config/ProcessorConfigLoader.d.ts +44 -0
  152. package/dist/postprocessor/config/ProcessorConfigLoader.js +21 -0
  153. package/dist/postprocessor/reporting/PostProcessorReporter.d.ts +19 -0
  154. package/dist/postprocessor/reporting/PostProcessorReporter.js +96 -0
  155. package/dist/postprocessor/triggers/GitHookTrigger.js +11 -11
  156. package/dist/processors/implementations/refactoring-logging-processor-wrapper.d.ts +32 -0
  157. package/dist/processors/implementations/refactoring-logging-processor-wrapper.js +95 -1
  158. package/dist/processors/processor-manager.js +346 -314
  159. package/dist/reporting/report-formatter.js +1 -1
  160. package/dist/security/security-hardener.d.ts +69 -2
  161. package/dist/security/security-hardener.js +129 -1
  162. package/dist/skills/registry.json +1 -1
  163. package/dist/state/index.d.ts +3 -5
  164. package/dist/state/index.js +1 -7
  165. package/dist/state/state-manager.d.ts +1 -1
  166. package/dist/state/state-manager.js +2 -3
  167. package/package.json +14 -10
  168. package/scripts/node/setup.cjs +32 -0
  169. package/scripts/node/universal-version-manager.js +11 -11
  170. package/src/mcps/architect-tools.server.ts +112 -215
  171. package/src/mcps/auto-format.server.ts +50 -110
  172. package/src/mcps/boot-orchestrator.server.ts +75 -121
  173. package/src/mcps/config/__tests__/server-config-registry.test.ts +21 -12
  174. package/src/mcps/config/server-config-registry.ts +3 -3
  175. package/src/mcps/enforcer-tools.server.ts +212 -310
  176. package/src/mcps/estimation.server.ts +62 -122
  177. package/src/mcps/framework-compliance-audit.server.ts +52 -97
  178. package/src/mcps/framework-help.server.ts +64 -114
  179. package/src/mcps/governance.server.ts +2 -2
  180. package/src/mcps/knowledge-skills/api-design.server.ts +32 -77
  181. package/src/mcps/knowledge-skills/architecture-patterns.server.ts +31 -87
  182. package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +165 -193
  183. package/src/mcps/knowledge-skills/code-analyzer.server.ts +20 -55
  184. package/src/mcps/knowledge-skills/code-review.server.ts +114 -161
  185. package/src/mcps/knowledge-skills/content-creator.server.ts +218 -255
  186. package/src/mcps/knowledge-skills/database-design.server.ts +118 -165
  187. package/src/mcps/knowledge-skills/devops-deployment.server.ts +67 -172
  188. package/src/mcps/knowledge-skills/git-workflow.server.ts +32 -77
  189. package/src/mcps/knowledge-skills/growth-strategist.server.ts +324 -361
  190. package/src/mcps/knowledge-skills/log-monitor.server.ts +160 -187
  191. package/src/mcps/knowledge-skills/mobile-development.server.ts +89 -223
  192. package/src/mcps/knowledge-skills/multimodal-looker.server.ts +128 -175
  193. package/src/mcps/knowledge-skills/performance-optimization.server.ts +156 -329
  194. package/src/mcps/knowledge-skills/project-analysis.server.ts +72 -248
  195. package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +59 -171
  196. package/src/mcps/knowledge-skills/security-audit.server.ts +104 -151
  197. package/src/mcps/knowledge-skills/seo-consultant.server.ts +80 -220
  198. package/src/mcps/knowledge-skills/session-management.server.ts +51 -232
  199. package/src/mcps/knowledge-skills/skill-invocation.server.ts +165 -372
  200. package/src/mcps/knowledge-skills/strategist.server.ts +72 -143
  201. package/src/mcps/knowledge-skills/tech-writer.server.ts +85 -350
  202. package/src/mcps/knowledge-skills/testing-best-practices.server.ts +146 -195
  203. package/src/mcps/knowledge-skills/testing-strategy.server.ts +75 -161
  204. package/src/mcps/knowledge-skills/ui-ux-design.server.ts +93 -487
  205. package/src/mcps/lint.server.ts +53 -107
  206. package/src/mcps/mcp-client.ts +2 -2
  207. package/src/mcps/model-health-check.server.ts +34 -71
  208. package/src/mcps/performance-analysis.server.ts +60 -104
  209. package/src/mcps/processor-pipeline.server.ts +72 -110
  210. package/src/mcps/registry.json +1 -1
  211. package/src/mcps/researcher.server.ts +88 -177
  212. package/src/mcps/security-scan.server.ts +55 -104
  213. package/src/mcps/shared/knowledge-skill-base.ts +62 -0
  214. package/src/mcps/shared/prompt-security-validator.ts +199 -0
  215. package/src/mcps/shared/security-scanner.ts +599 -0
  216. package/src/mcps/state-manager.server.ts +117 -175
  217. package/src/opencode/codex.codex +1 -1
  218. package/src/opencode/commands/dependency-audit.md +3 -3
  219. package/src/opencode/enforcer-config.json +2 -2
  220. package/src/skills/registry.json +1 -1
  221. package/xray/agents_template.md +109 -0
  222. package/xray/codex.json +598 -0
  223. package/xray/config.json +26 -0
  224. package/xray/features.json +132 -0
  225. package/xray/integrations.json +23 -0
  226. package/xray/routing-mappings.json +752 -0
  227. package/xray/workflow_state.json +28 -0
  228. package/dist/integrations/hermes-agent/__pycache__/__init__.cpython-313.pyc +0 -0
  229. package/dist/integrations/hermes-agent/__pycache__/conftest.cpython-313-pytest-9.0.2.pyc +0 -0
  230. package/dist/integrations/hermes-agent/__pycache__/schemas.cpython-313.pyc +0 -0
  231. package/dist/integrations/hermes-agent/__pycache__/test_plugin.cpython-313-pytest-9.0.2.pyc +0 -0
  232. package/dist/integrations/hermes-agent/__pycache__/test_plugin.cpython-313.pyc +0 -0
  233. package/dist/integrations/hermes-agent/__pycache__/tools.cpython-313.pyc +0 -0
  234. package/dist/integrations/hermes-agent/conftest.py +0 -14
  235. package/dist/integrations/hermes-agent/test_plugin.py +0 -1103
  236. package/dist/processors/implementations/refactoring-logging-processor.d.ts +0 -31
  237. package/dist/processors/implementations/refactoring-logging-processor.js +0 -96
  238. package/dist/processors/implementations/session-capture-processor.d.ts +0 -14
  239. package/dist/processors/implementations/session-capture-processor.js +0 -37
  240. package/dist/scripts/activate-kernel-pipeline.d.ts +0 -7
  241. package/dist/scripts/activate-kernel-pipeline.js +0 -101
  242. package/dist/security/index.d.ts +0 -13
  243. package/dist/security/index.js +0 -13
  244. package/dist/security/security-agent-coordinator.d.ts +0 -72
  245. package/dist/security/security-agent-coordinator.js +0 -204
  246. package/dist/security/security-auditor.d.ts +0 -56
  247. package/dist/security/security-auditor.js +0 -584
  248. package/dist/security/security-hardening-system.d.ts +0 -239
  249. package/dist/security/security-hardening-system.js +0 -727
  250. package/dist/security/security-orchestration-layer.d.ts +0 -119
  251. package/dist/security/security-orchestration-layer.js +0 -496
  252. /package/dist/{security → mcps/shared}/prompt-security-validator.d.ts +0 -0
  253. /package/dist/{security → mcps/shared}/prompt-security-validator.js +0 -0
  254. /package/dist/{security → mcps/shared}/security-scanner.d.ts +0 -0
@@ -6,14 +6,10 @@
6
6
  * and performance issues in real-time.
7
7
  */
8
8
 
9
- import { Server } from "@modelcontextprotocol/sdk/server/index.js";
10
- import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
11
- import {
12
- CallToolRequestSchema,
13
- ListToolsRequestSchema,
14
- } from "@modelcontextprotocol/sdk/types.js";
15
9
  import * as path from "path";
16
10
  import { fileURLToPath } from "url";
11
+ import { XrayKnowledgeSkillBase } from "../shared/knowledge-skill-base.js";
12
+ import { frameworkLogger } from "../../core/framework-logger.js";
17
13
 
18
14
  interface LogEntry {
19
15
  timestamp: string;
@@ -65,8 +61,7 @@ interface LogAnomaly {
65
61
  count: number;
66
62
  }
67
63
 
68
- class LogMonitorServer {
69
- private server: Server;
64
+ class LogMonitorServer extends XrayKnowledgeSkillBase {
70
65
  private patternLibrary: LogPattern[] = [
71
66
  {
72
67
  id: "memory-leak",
@@ -116,204 +111,186 @@ class LogMonitorServer {
116
111
  ];
117
112
 
118
113
  constructor() {
119
- this.server = new Server(
120
- { name: "log-monitor", version: "2.0.1" },
121
- { capabilities: { tools: {} } },
122
- );
123
- this.setupToolHandlers();
124
- }
125
-
126
- private setupToolHandlers() {
127
- this.server.setRequestHandler(ListToolsRequestSchema, async () => ({
128
- tools: [
129
- {
130
- name: "analyze_logs",
131
- description:
132
- "Analyze log entries to identify patterns, errors, and anomalies",
133
- inputSchema: {
134
- type: "object",
135
- properties: {
136
- logs: {
137
- type: "array",
138
- items: { type: "string" },
139
- description: "Log entries to analyze",
140
- },
141
- options: {
142
- type: "object",
143
- properties: {
144
- detectPatterns: { type: "boolean", default: true },
145
- findAnomalies: { type: "boolean", default: true },
146
- timeRange: {
147
- type: "string",
148
- description: "Time range to analyze",
149
- },
114
+ super("log-monitor", "2.0.1");
115
+ this.tools = [
116
+ {
117
+ name: "analyze_logs",
118
+ description:
119
+ "Analyze log entries to identify patterns, errors, and anomalies",
120
+ inputSchema: {
121
+ type: "object",
122
+ properties: {
123
+ logs: {
124
+ type: "array",
125
+ items: { type: "string" },
126
+ description: "Log entries to analyze",
127
+ },
128
+ options: {
129
+ type: "object",
130
+ properties: {
131
+ detectPatterns: { type: "boolean", default: true },
132
+ findAnomalies: { type: "boolean", default: true },
133
+ timeRange: {
134
+ type: "string",
135
+ description: "Time range to analyze",
150
136
  },
151
137
  },
152
138
  },
153
- required: ["logs"],
154
139
  },
140
+ required: ["logs"],
155
141
  },
156
- {
157
- name: "detect_patterns",
158
- description:
159
- "Detect specific patterns in logs using regex or predefined patterns",
160
- inputSchema: {
161
- type: "object",
162
- properties: {
163
- logs: { type: "array", items: { type: "string" } },
164
- customPatterns: { type: "array", items: { type: "string" } },
165
- sensitivity: {
166
- type: "number",
167
- minimum: 0,
168
- maximum: 100,
169
- default: 80,
170
- },
142
+ },
143
+ {
144
+ name: "detect_patterns",
145
+ description:
146
+ "Detect specific patterns in logs using regex or predefined patterns",
147
+ inputSchema: {
148
+ type: "object",
149
+ properties: {
150
+ logs: { type: "array", items: { type: "string" } },
151
+ customPatterns: { type: "array", items: { type: "string" } },
152
+ sensitivity: {
153
+ type: "number",
154
+ minimum: 0,
155
+ maximum: 100,
156
+ default: 80,
171
157
  },
172
- required: ["logs"],
173
158
  },
159
+ required: ["logs"],
174
160
  },
175
- {
176
- name: "alert_on_issues",
177
- description: "Generate alerts based on log analysis thresholds",
178
- inputSchema: {
179
- type: "object",
180
- properties: {
181
- analysis: {
182
- type: "object",
183
- description: "Results from analyze_logs",
184
- },
185
- thresholds: {
186
- type: "object",
187
- properties: {
188
- errorRate: { type: "number" },
189
- warnRate: { type: "number" },
190
- criticalPatterns: {
191
- type: "array",
192
- items: { type: "string" },
193
- },
161
+ },
162
+ {
163
+ name: "alert_on_issues",
164
+ description: "Generate alerts based on log analysis thresholds",
165
+ inputSchema: {
166
+ type: "object",
167
+ properties: {
168
+ analysis: {
169
+ type: "object",
170
+ description: "Results from analyze_logs",
171
+ },
172
+ thresholds: {
173
+ type: "object",
174
+ properties: {
175
+ errorRate: { type: "number" },
176
+ warnRate: { type: "number" },
177
+ criticalPatterns: {
178
+ type: "array",
179
+ items: { type: "string" },
194
180
  },
195
181
  },
196
182
  },
197
- required: ["analysis"],
198
183
  },
184
+ required: ["analysis"],
199
185
  },
200
- {
201
- name: "correlate_events",
202
- description:
203
- "Correlate log entries across multiple sources to find related events",
204
- inputSchema: {
205
- type: "object",
206
- properties: {
207
- logSets: {
208
- type: "array",
209
- items: {
210
- type: "object",
211
- properties: {
212
- source: { type: "string" },
213
- logs: { type: "array", items: { type: "string" } },
214
- },
186
+ },
187
+ {
188
+ name: "correlate_events",
189
+ description:
190
+ "Correlate log entries across multiple sources to find related events",
191
+ inputSchema: {
192
+ type: "object",
193
+ properties: {
194
+ logSets: {
195
+ type: "array",
196
+ items: {
197
+ type: "object",
198
+ properties: {
199
+ source: { type: "string" },
200
+ logs: { type: "array", items: { type: "string" } },
215
201
  },
216
202
  },
217
- timeWindow: {
218
- type: "number",
219
- description: "Time window in seconds",
220
- },
221
203
  },
222
- required: ["logSets"],
204
+ timeWindow: {
205
+ type: "number",
206
+ description: "Time window in seconds",
207
+ },
223
208
  },
209
+ required: ["logSets"],
224
210
  },
225
- {
226
- name: "generate_report",
227
- description: "Generate a comprehensive log analysis report",
228
- inputSchema: {
229
- type: "object",
230
- properties: {
231
- analysis: { type: "object" },
232
- format: {
233
- type: "string",
234
- enum: ["json", "markdown", "html"],
235
- default: "json",
236
- },
211
+ },
212
+ {
213
+ name: "generate_report",
214
+ description: "Generate a comprehensive log analysis report",
215
+ inputSchema: {
216
+ type: "object",
217
+ properties: {
218
+ analysis: { type: "object" },
219
+ format: {
220
+ type: "string",
221
+ enum: ["json", "markdown", "html"],
222
+ default: "json",
237
223
  },
238
- required: ["analysis"],
239
224
  },
225
+ required: ["analysis"],
240
226
  },
241
- ],
242
- }));
243
-
244
- this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
245
- const { name, arguments: args = {} } = request.params;
246
-
247
- try {
227
+ },
228
+ ];
229
+ this.handlers = {
230
+ "analyze_logs": async (args) => {
248
231
  const params = args as Record<string, unknown>;
249
- switch (name) {
250
- case "analyze_logs": {
251
- const result = this.analyzeLogs(
252
- (params.logs as string[]) || [],
253
- (params.options as Record<string, unknown>) || {},
254
- );
255
- return {
256
- content: [
257
- { type: "text", text: JSON.stringify(result, null, 2) },
258
- ],
259
- };
260
- }
261
- case "detect_patterns": {
262
- const result = this.detectPatterns(
263
- (params.logs as string[]) || [],
264
- (params.customPatterns as string[]) || [],
265
- (params.sensitivity as number) || 80,
266
- );
267
- return {
268
- content: [
269
- { type: "text", text: JSON.stringify(result, null, 2) },
270
- ],
271
- };
272
- }
273
- case "alert_on_issues": {
274
- const result = this.alertOnIssues(
275
- params.analysis as unknown as LogAnalysis,
276
- (params.thresholds as Record<string, unknown>) || {},
277
- );
278
- return {
279
- content: [
280
- { type: "text", text: JSON.stringify(result, null, 2) },
281
- ],
282
- };
283
- }
284
- case "correlate_events": {
285
- const result = this.correlateEvents(
286
- (params.logSets as Array<{ source: string; logs: string[] }>) ||
287
- [],
288
- (params.timeWindow as number) || 60,
289
- );
290
- return {
291
- content: [
292
- { type: "text", text: JSON.stringify(result, null, 2) },
293
- ],
294
- };
295
- }
296
- case "generate_report": {
297
- const result = this.generateReport(
298
- params.analysis as unknown as LogAnalysis,
299
- (params.format as string) || "json",
300
- );
301
- return {
302
- content: [
303
- { type: "text", text: JSON.stringify(result, null, 2) },
304
- ],
305
- };
306
- }
307
- default:
308
- throw new Error(`Unknown tool: ${name}`);
309
- }
310
- } catch (error) {
232
+ const result = this.analyzeLogs(
233
+ (params.logs as string[]) || [],
234
+ (params.options as Record<string, unknown>) || {},
235
+ );
311
236
  return {
312
- content: [{ type: "text", text: `Error: ${error}` }],
313
- isError: true,
237
+ content: [
238
+ { type: "text", text: JSON.stringify(result, null, 2) },
239
+ ],
314
240
  };
315
- }
316
- });
241
+ },
242
+ "detect_patterns": async (args) => {
243
+ const params = args as Record<string, unknown>;
244
+ const result = this.detectPatterns(
245
+ (params.logs as string[]) || [],
246
+ (params.customPatterns as string[]) || [],
247
+ (params.sensitivity as number) || 80,
248
+ );
249
+ return {
250
+ content: [
251
+ { type: "text", text: JSON.stringify(result, null, 2) },
252
+ ],
253
+ };
254
+ },
255
+ "alert_on_issues": async (args) => {
256
+ const params = args as Record<string, unknown>;
257
+ const result = this.alertOnIssues(
258
+ params.analysis as unknown as LogAnalysis,
259
+ (params.thresholds as Record<string, unknown>) || {},
260
+ );
261
+ return {
262
+ content: [
263
+ { type: "text", text: JSON.stringify(result, null, 2) },
264
+ ],
265
+ };
266
+ },
267
+ "correlate_events": async (args) => {
268
+ const params = args as Record<string, unknown>;
269
+ const result = this.correlateEvents(
270
+ (params.logSets as Array<{ source: string; logs: string[] }>) ||
271
+ [],
272
+ (params.timeWindow as number) || 60,
273
+ );
274
+ return {
275
+ content: [
276
+ { type: "text", text: JSON.stringify(result, null, 2) },
277
+ ],
278
+ };
279
+ },
280
+ "generate_report": async (args) => {
281
+ const params = args as Record<string, unknown>;
282
+ const result = this.generateReport(
283
+ params.analysis as unknown as LogAnalysis,
284
+ (params.format as string) || "json",
285
+ );
286
+ return {
287
+ content: [
288
+ { type: "text", text: JSON.stringify(result, null, 2) },
289
+ ],
290
+ };
291
+ },
292
+ };
293
+ this.setupToolHandlers();
317
294
  }
318
295
 
319
296
  private analyzeLogs(logs: string[], options: Record<string, unknown>): LogAnalysis {
@@ -604,16 +581,12 @@ ${analysis.recommendations.map((r) => `- ${r}`).join("\n")}
604
581
  return recs;
605
582
  }
606
583
 
607
- async run() {
608
- const transport = new StdioServerTransport();
609
- await this.server.connect(transport);
610
- }
611
584
  }
612
585
 
613
586
  const entryPoint = path.resolve(process.argv[1] ?? "");
614
587
  if (entryPoint && fileURLToPath(import.meta.url) === entryPoint) {
615
588
  const server = new LogMonitorServer();
616
- server.run();
589
+ server.run("log-monitor").catch((err) => { frameworkLogger.log("log-monitor", "run", "error", { error: err instanceof Error ? err.message : String(err) }); });
617
590
  }
618
591
 
619
592
  export { LogMonitorServer };