musubi-sdd 5.0.0 → 5.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +106 -48
- package/README.md +110 -32
- package/bin/musubi-analyze.js +74 -67
- package/bin/musubi-browser.js +27 -26
- package/bin/musubi-change.js +48 -47
- package/bin/musubi-checkpoint.js +10 -7
- package/bin/musubi-convert.js +25 -25
- package/bin/musubi-costs.js +27 -10
- package/bin/musubi-gui.js +52 -46
- package/bin/musubi-init.js +1952 -10
- package/bin/musubi-orchestrate.js +327 -239
- package/bin/musubi-remember.js +69 -56
- package/bin/musubi-resolve.js +53 -45
- package/bin/musubi-trace.js +51 -22
- package/bin/musubi-validate.js +39 -30
- package/bin/musubi-workflow.js +33 -34
- package/bin/musubi.js +39 -2
- package/package.json +1 -1
- package/src/agents/agent-loop.js +94 -95
- package/src/agents/agentic/code-generator.js +119 -109
- package/src/agents/agentic/code-reviewer.js +105 -108
- package/src/agents/agentic/index.js +4 -4
- package/src/agents/browser/action-executor.js +13 -13
- package/src/agents/browser/ai-comparator.js +11 -10
- package/src/agents/browser/context-manager.js +6 -6
- package/src/agents/browser/index.js +5 -5
- package/src/agents/browser/nl-parser.js +31 -46
- package/src/agents/browser/screenshot.js +2 -2
- package/src/agents/browser/test-generator.js +6 -4
- package/src/agents/function-tool.js +71 -65
- package/src/agents/index.js +7 -7
- package/src/agents/schema-generator.js +98 -94
- package/src/analyzers/ast-extractor.js +164 -145
- package/src/analyzers/codegraph-auto-update.js +858 -0
- package/src/analyzers/complexity-analyzer.js +536 -0
- package/src/analyzers/context-optimizer.js +247 -125
- package/src/analyzers/impact-analyzer.js +1 -1
- package/src/analyzers/large-project-analyzer.js +766 -0
- package/src/analyzers/repository-map.js +83 -80
- package/src/analyzers/security-analyzer.js +19 -11
- package/src/analyzers/stuck-detector.js +19 -17
- package/src/converters/index.js +78 -57
- package/src/converters/ir/types.js +12 -12
- package/src/converters/parsers/musubi-parser.js +134 -126
- package/src/converters/parsers/openapi-parser.js +70 -53
- package/src/converters/parsers/speckit-parser.js +239 -175
- package/src/converters/writers/musubi-writer.js +123 -118
- package/src/converters/writers/speckit-writer.js +124 -113
- package/src/generators/rust-migration-generator.js +512 -0
- package/src/gui/public/index.html +1365 -1211
- package/src/gui/server.js +41 -40
- package/src/gui/services/file-watcher.js +23 -8
- package/src/gui/services/project-scanner.js +26 -20
- package/src/gui/services/replanning-service.js +27 -23
- package/src/gui/services/traceability-service.js +8 -8
- package/src/gui/services/workflow-service.js +14 -7
- package/src/index.js +151 -0
- package/src/integrations/cicd.js +90 -104
- package/src/integrations/codegraph-mcp.js +643 -0
- package/src/integrations/documentation.js +142 -103
- package/src/integrations/examples.js +95 -80
- package/src/integrations/github-client.js +17 -17
- package/src/integrations/index.js +5 -5
- package/src/integrations/mcp/index.js +21 -21
- package/src/integrations/mcp/mcp-context-provider.js +76 -78
- package/src/integrations/mcp/mcp-discovery.js +74 -72
- package/src/integrations/mcp/mcp-tool-registry.js +99 -94
- package/src/integrations/mcp-connector.js +70 -66
- package/src/integrations/platforms.js +50 -49
- package/src/integrations/tool-discovery.js +37 -31
- package/src/llm-providers/anthropic-provider.js +11 -11
- package/src/llm-providers/base-provider.js +16 -18
- package/src/llm-providers/copilot-provider.js +22 -19
- package/src/llm-providers/index.js +26 -25
- package/src/llm-providers/ollama-provider.js +11 -11
- package/src/llm-providers/openai-provider.js +12 -12
- package/src/managers/agent-memory.js +36 -24
- package/src/managers/checkpoint-manager.js +4 -8
- package/src/managers/delta-spec.js +19 -19
- package/src/managers/index.js +13 -4
- package/src/managers/memory-condenser.js +35 -45
- package/src/managers/repo-skill-manager.js +57 -31
- package/src/managers/skill-loader.js +25 -22
- package/src/managers/skill-tools.js +36 -72
- package/src/managers/workflow.js +30 -22
- package/src/monitoring/cost-tracker.js +53 -44
- package/src/monitoring/incident-manager.js +123 -103
- package/src/monitoring/index.js +144 -134
- package/src/monitoring/observability.js +82 -59
- package/src/monitoring/quality-dashboard.js +51 -39
- package/src/monitoring/release-manager.js +70 -50
- package/src/orchestration/agent-skill-binding.js +39 -47
- package/src/orchestration/error-handler.js +65 -107
- package/src/orchestration/guardrails/base-guardrail.js +26 -24
- package/src/orchestration/guardrails/guardrail-rules.js +50 -64
- package/src/orchestration/guardrails/index.js +5 -5
- package/src/orchestration/guardrails/input-guardrail.js +58 -45
- package/src/orchestration/guardrails/output-guardrail.js +104 -81
- package/src/orchestration/guardrails/safety-check.js +79 -79
- package/src/orchestration/index.js +38 -55
- package/src/orchestration/mcp-tool-adapters.js +96 -99
- package/src/orchestration/orchestration-engine.js +21 -21
- package/src/orchestration/pattern-registry.js +60 -45
- package/src/orchestration/patterns/auto.js +34 -47
- package/src/orchestration/patterns/group-chat.js +59 -65
- package/src/orchestration/patterns/handoff.js +67 -65
- package/src/orchestration/patterns/human-in-loop.js +51 -72
- package/src/orchestration/patterns/nested.js +25 -40
- package/src/orchestration/patterns/sequential.js +35 -34
- package/src/orchestration/patterns/swarm.js +63 -56
- package/src/orchestration/patterns/triage.js +150 -109
- package/src/orchestration/reasoning/index.js +9 -9
- package/src/orchestration/reasoning/planning-engine.js +143 -140
- package/src/orchestration/reasoning/reasoning-engine.js +206 -144
- package/src/orchestration/reasoning/self-correction.js +121 -128
- package/src/orchestration/replanning/adaptive-goal-modifier.js +107 -112
- package/src/orchestration/replanning/alternative-generator.js +37 -42
- package/src/orchestration/replanning/config.js +63 -59
- package/src/orchestration/replanning/goal-progress-tracker.js +98 -100
- package/src/orchestration/replanning/index.js +24 -20
- package/src/orchestration/replanning/plan-evaluator.js +49 -50
- package/src/orchestration/replanning/plan-monitor.js +32 -28
- package/src/orchestration/replanning/proactive-path-optimizer.js +175 -178
- package/src/orchestration/replanning/replan-history.js +33 -26
- package/src/orchestration/replanning/replanning-engine.js +106 -108
- package/src/orchestration/skill-executor.js +107 -109
- package/src/orchestration/skill-registry.js +85 -89
- package/src/orchestration/workflow-examples.js +228 -231
- package/src/orchestration/workflow-executor.js +65 -68
- package/src/orchestration/workflow-orchestrator.js +72 -73
- package/src/phase4-integration.js +47 -40
- package/src/phase5-integration.js +89 -30
- package/src/reporters/coverage-report.js +82 -30
- package/src/reporters/hierarchical-reporter.js +498 -0
- package/src/reporters/traceability-matrix-report.js +29 -20
- package/src/resolvers/issue-resolver.js +43 -31
- package/src/steering/advanced-validation.js +133 -124
- package/src/steering/auto-updater.js +60 -73
- package/src/steering/index.js +6 -6
- package/src/steering/quality-metrics.js +41 -35
- package/src/steering/steering-auto-update.js +83 -86
- package/src/steering/steering-validator.js +98 -106
- package/src/steering/template-constraints.js +53 -54
- package/src/templates/agents/claude-code/CLAUDE.md +32 -32
- package/src/templates/agents/claude-code/skills/agent-assistant/SKILL.md +13 -5
- package/src/templates/agents/claude-code/skills/ai-ml-engineer/mlops-guide.md +23 -23
- package/src/templates/agents/claude-code/skills/ai-ml-engineer/model-card-template.md +60 -41
- package/src/templates/agents/claude-code/skills/api-designer/api-patterns.md +27 -19
- package/src/templates/agents/claude-code/skills/api-designer/openapi-template.md +11 -7
- package/src/templates/agents/claude-code/skills/bug-hunter/SKILL.md +4 -3
- package/src/templates/agents/claude-code/skills/bug-hunter/root-cause-analysis.md +37 -15
- package/src/templates/agents/claude-code/skills/change-impact-analyzer/dependency-graph-patterns.md +36 -42
- package/src/templates/agents/claude-code/skills/change-impact-analyzer/impact-analysis-template.md +69 -60
- package/src/templates/agents/claude-code/skills/cloud-architect/aws-patterns.md +31 -38
- package/src/templates/agents/claude-code/skills/cloud-architect/azure-patterns.md +28 -23
- package/src/templates/agents/claude-code/skills/code-reviewer/SKILL.md +61 -0
- package/src/templates/agents/claude-code/skills/code-reviewer/best-practices.md +27 -0
- package/src/templates/agents/claude-code/skills/code-reviewer/review-checklist.md +29 -10
- package/src/templates/agents/claude-code/skills/code-reviewer/review-standards.md +29 -24
- package/src/templates/agents/claude-code/skills/constitution-enforcer/SKILL.md +8 -6
- package/src/templates/agents/claude-code/skills/constitution-enforcer/constitutional-articles.md +62 -26
- package/src/templates/agents/claude-code/skills/constitution-enforcer/phase-minus-one-gates.md +35 -16
- package/src/templates/agents/claude-code/skills/database-administrator/backup-recovery.md +27 -17
- package/src/templates/agents/claude-code/skills/database-administrator/tuning-guide.md +25 -20
- package/src/templates/agents/claude-code/skills/database-schema-designer/schema-patterns.md +39 -22
- package/src/templates/agents/claude-code/skills/devops-engineer/ci-cd-templates.md +25 -22
- package/src/templates/agents/claude-code/skills/issue-resolver/SKILL.md +24 -21
- package/src/templates/agents/claude-code/skills/orchestrator/SKILL.md +148 -63
- package/src/templates/agents/claude-code/skills/orchestrator/patterns.md +35 -16
- package/src/templates/agents/claude-code/skills/orchestrator/selection-matrix.md +69 -64
- package/src/templates/agents/claude-code/skills/performance-engineer/optimization-playbook.md +47 -47
- package/src/templates/agents/claude-code/skills/performance-optimizer/SKILL.md +69 -0
- package/src/templates/agents/claude-code/skills/performance-optimizer/benchmark-template.md +63 -45
- package/src/templates/agents/claude-code/skills/performance-optimizer/optimization-patterns.md +33 -35
- package/src/templates/agents/claude-code/skills/project-manager/SKILL.md +7 -6
- package/src/templates/agents/claude-code/skills/project-manager/agile-ceremonies.md +47 -28
- package/src/templates/agents/claude-code/skills/project-manager/project-templates.md +94 -78
- package/src/templates/agents/claude-code/skills/quality-assurance/SKILL.md +20 -17
- package/src/templates/agents/claude-code/skills/quality-assurance/qa-plan-template.md +63 -49
- package/src/templates/agents/claude-code/skills/release-coordinator/SKILL.md +5 -5
- package/src/templates/agents/claude-code/skills/release-coordinator/feature-flag-guide.md +30 -26
- package/src/templates/agents/claude-code/skills/release-coordinator/release-plan-template.md +67 -35
- package/src/templates/agents/claude-code/skills/requirements-analyst/ears-format.md +54 -42
- package/src/templates/agents/claude-code/skills/requirements-analyst/validation-rules.md +36 -33
- package/src/templates/agents/claude-code/skills/security-auditor/SKILL.md +77 -19
- package/src/templates/agents/claude-code/skills/security-auditor/audit-checklists.md +24 -24
- package/src/templates/agents/claude-code/skills/security-auditor/owasp-top-10.md +61 -20
- package/src/templates/agents/claude-code/skills/security-auditor/vulnerability-patterns.md +43 -11
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/SKILL.md +1 -0
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/incident-response-template.md +55 -25
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/observability-patterns.md +78 -68
- package/src/templates/agents/claude-code/skills/site-reliability-engineer/slo-sli-guide.md +73 -53
- package/src/templates/agents/claude-code/skills/software-developer/solid-principles.md +83 -37
- package/src/templates/agents/claude-code/skills/software-developer/test-first-workflow.md +38 -31
- package/src/templates/agents/claude-code/skills/steering/SKILL.md +1 -0
- package/src/templates/agents/claude-code/skills/steering/auto-update-rules.md +31 -0
- package/src/templates/agents/claude-code/skills/system-architect/adr-template.md +25 -7
- package/src/templates/agents/claude-code/skills/system-architect/c4-model-guide.md +74 -61
- package/src/templates/agents/claude-code/skills/technical-writer/doc-templates/documentation-templates.md +70 -52
- package/src/templates/agents/claude-code/skills/test-engineer/SKILL.md +2 -0
- package/src/templates/agents/claude-code/skills/test-engineer/ears-test-mapping.md +75 -71
- package/src/templates/agents/claude-code/skills/test-engineer/test-types.md +85 -63
- package/src/templates/agents/claude-code/skills/traceability-auditor/coverage-matrix-template.md +39 -36
- package/src/templates/agents/claude-code/skills/traceability-auditor/gap-detection-rules.md +22 -17
- package/src/templates/agents/claude-code/skills/ui-ux-designer/SKILL.md +1 -0
- package/src/templates/agents/claude-code/skills/ui-ux-designer/accessibility-guidelines.md +49 -75
- package/src/templates/agents/claude-code/skills/ui-ux-designer/design-system-components.md +71 -59
- package/src/templates/agents/codex/AGENTS.md +74 -42
- package/src/templates/agents/cursor/AGENTS.md +74 -42
- package/src/templates/agents/gemini-cli/GEMINI.md +74 -42
- package/src/templates/agents/github-copilot/AGENTS.md +83 -51
- package/src/templates/agents/qwen-code/QWEN.md +74 -42
- package/src/templates/agents/windsurf/AGENTS.md +74 -42
- package/src/templates/architectures/README.md +41 -0
- package/src/templates/architectures/clean-architecture/README.md +113 -0
- package/src/templates/architectures/event-driven/README.md +162 -0
- package/src/templates/architectures/hexagonal/README.md +130 -0
- package/src/templates/index.js +6 -1
- package/src/templates/locale-manager.js +16 -16
- package/src/templates/shared/delta-spec-template.md +20 -13
- package/src/templates/shared/github-actions/musubi-issue-resolver.yml +5 -5
- package/src/templates/shared/github-actions/musubi-security-check.yml +3 -3
- package/src/templates/shared/github-actions/musubi-validate.yml +4 -4
- package/src/templates/shared/steering/structure.md +95 -0
- package/src/templates/skills/browser-agent.md +21 -16
- package/src/templates/skills/web-gui.md +8 -0
- package/src/templates/template-constraints.js +50 -53
- package/src/validators/advanced-validation.js +30 -36
- package/src/validators/constitutional-validator.js +77 -73
- package/src/validators/critic-system.js +49 -59
- package/src/validators/delta-format.js +59 -55
- package/src/validators/traceability-validator.js +7 -11
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @fileoverview MCP (Model Context Protocol) Connector
|
|
3
3
|
* @description Base MCP client integration for tool ecosystem connectivity
|
|
4
4
|
* @version 3.11.0
|
|
5
|
-
*
|
|
5
|
+
*
|
|
6
6
|
* Supports:
|
|
7
7
|
* - Standard MCP server connections (stdio, SSE, HTTP)
|
|
8
8
|
* - Tool discovery and invocation
|
|
@@ -23,7 +23,7 @@ const ConnectionState = {
|
|
|
23
23
|
CONNECTING: 'connecting',
|
|
24
24
|
CONNECTED: 'connected',
|
|
25
25
|
RECONNECTING: 'reconnecting',
|
|
26
|
-
ERROR: 'error'
|
|
26
|
+
ERROR: 'error',
|
|
27
27
|
};
|
|
28
28
|
|
|
29
29
|
/**
|
|
@@ -33,7 +33,7 @@ const TransportType = {
|
|
|
33
33
|
STDIO: 'stdio',
|
|
34
34
|
SSE: 'sse',
|
|
35
35
|
HTTP: 'http',
|
|
36
|
-
WEBSOCKET: 'websocket'
|
|
36
|
+
WEBSOCKET: 'websocket',
|
|
37
37
|
};
|
|
38
38
|
|
|
39
39
|
/**
|
|
@@ -46,7 +46,7 @@ const DEFAULT_CONFIG = {
|
|
|
46
46
|
keepAlive: true,
|
|
47
47
|
keepAliveInterval: 30000,
|
|
48
48
|
maxConcurrentRequests: 10,
|
|
49
|
-
enableLogging: false
|
|
49
|
+
enableLogging: false,
|
|
50
50
|
};
|
|
51
51
|
|
|
52
52
|
/**
|
|
@@ -94,7 +94,7 @@ class MCPTool {
|
|
|
94
94
|
|
|
95
95
|
return {
|
|
96
96
|
valid: errors.length === 0,
|
|
97
|
-
errors
|
|
97
|
+
errors,
|
|
98
98
|
};
|
|
99
99
|
}
|
|
100
100
|
|
|
@@ -103,7 +103,7 @@ class MCPTool {
|
|
|
103
103
|
name: this.name,
|
|
104
104
|
description: this.description,
|
|
105
105
|
inputSchema: this.inputSchema,
|
|
106
|
-
annotations: this.annotations
|
|
106
|
+
annotations: this.annotations,
|
|
107
107
|
};
|
|
108
108
|
}
|
|
109
109
|
}
|
|
@@ -126,7 +126,7 @@ class MCPResource {
|
|
|
126
126
|
name: this.name,
|
|
127
127
|
description: this.description,
|
|
128
128
|
mimeType: this.mimeType,
|
|
129
|
-
annotations: this.annotations
|
|
129
|
+
annotations: this.annotations,
|
|
130
130
|
};
|
|
131
131
|
}
|
|
132
132
|
}
|
|
@@ -145,7 +145,7 @@ class MCPPrompt {
|
|
|
145
145
|
return {
|
|
146
146
|
name: this.name,
|
|
147
147
|
description: this.description,
|
|
148
|
-
arguments: this.arguments
|
|
148
|
+
arguments: this.arguments,
|
|
149
149
|
};
|
|
150
150
|
}
|
|
151
151
|
}
|
|
@@ -199,7 +199,7 @@ class MCPServerConnection extends EventEmitter {
|
|
|
199
199
|
await this._initializeTransport();
|
|
200
200
|
await this._initialize();
|
|
201
201
|
await this._discoverCapabilities();
|
|
202
|
-
|
|
202
|
+
|
|
203
203
|
this.state = ConnectionState.CONNECTED;
|
|
204
204
|
this.emit('connected', this.serverInfo);
|
|
205
205
|
|
|
@@ -245,12 +245,12 @@ class MCPServerConnection extends EventEmitter {
|
|
|
245
245
|
this.transport = {
|
|
246
246
|
type: this.transportType,
|
|
247
247
|
connected: true,
|
|
248
|
-
send: async
|
|
248
|
+
send: async message => {
|
|
249
249
|
if (this.options.enableLogging) {
|
|
250
250
|
console.log(`[MCP ${this.name}] Sending:`, JSON.stringify(message));
|
|
251
251
|
}
|
|
252
252
|
return this._handleMessage(message);
|
|
253
|
-
}
|
|
253
|
+
},
|
|
254
254
|
};
|
|
255
255
|
}
|
|
256
256
|
|
|
@@ -274,12 +274,12 @@ class MCPServerConnection extends EventEmitter {
|
|
|
274
274
|
protocolVersion: '2024-11-05',
|
|
275
275
|
capabilities: {
|
|
276
276
|
roots: { listChanged: true },
|
|
277
|
-
sampling: {}
|
|
277
|
+
sampling: {},
|
|
278
278
|
},
|
|
279
279
|
clientInfo: {
|
|
280
280
|
name: 'musubi-sdd',
|
|
281
|
-
version: '3.11.0'
|
|
282
|
-
}
|
|
281
|
+
version: '3.11.0',
|
|
282
|
+
},
|
|
283
283
|
});
|
|
284
284
|
|
|
285
285
|
this.serverInfo = response.serverInfo || {};
|
|
@@ -329,7 +329,7 @@ class MCPServerConnection extends EventEmitter {
|
|
|
329
329
|
jsonrpc: '2.0',
|
|
330
330
|
id,
|
|
331
331
|
method,
|
|
332
|
-
params
|
|
332
|
+
params,
|
|
333
333
|
};
|
|
334
334
|
|
|
335
335
|
return new Promise((resolve, reject) => {
|
|
@@ -341,19 +341,22 @@ class MCPServerConnection extends EventEmitter {
|
|
|
341
341
|
this.pendingRequests.set(id, { resolve, reject, timeout });
|
|
342
342
|
|
|
343
343
|
if (this.transport) {
|
|
344
|
-
this.transport
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
344
|
+
this.transport
|
|
345
|
+
.send(message)
|
|
346
|
+
.then(response => {
|
|
347
|
+
clearTimeout(timeout);
|
|
348
|
+
this.pendingRequests.delete(id);
|
|
349
|
+
if (response.error) {
|
|
350
|
+
reject(new Error(response.error.message || 'Unknown error'));
|
|
351
|
+
} else {
|
|
352
|
+
resolve(response.result || {});
|
|
353
|
+
}
|
|
354
|
+
})
|
|
355
|
+
.catch(error => {
|
|
356
|
+
clearTimeout(timeout);
|
|
357
|
+
this.pendingRequests.delete(id);
|
|
358
|
+
reject(error);
|
|
359
|
+
});
|
|
357
360
|
} else {
|
|
358
361
|
clearTimeout(timeout);
|
|
359
362
|
this.pendingRequests.delete(id);
|
|
@@ -370,7 +373,7 @@ class MCPServerConnection extends EventEmitter {
|
|
|
370
373
|
const message = {
|
|
371
374
|
jsonrpc: '2.0',
|
|
372
375
|
method,
|
|
373
|
-
params
|
|
376
|
+
params,
|
|
374
377
|
};
|
|
375
378
|
|
|
376
379
|
if (this.transport) {
|
|
@@ -385,7 +388,7 @@ class MCPServerConnection extends EventEmitter {
|
|
|
385
388
|
async _handleMessage(message) {
|
|
386
389
|
// Mock responses for testing
|
|
387
390
|
const method = message.method;
|
|
388
|
-
|
|
391
|
+
|
|
389
392
|
if (method === 'initialize') {
|
|
390
393
|
return {
|
|
391
394
|
result: {
|
|
@@ -393,37 +396,37 @@ class MCPServerConnection extends EventEmitter {
|
|
|
393
396
|
capabilities: {
|
|
394
397
|
tools: { listChanged: true },
|
|
395
398
|
resources: { subscribe: true, listChanged: true },
|
|
396
|
-
prompts: { listChanged: true }
|
|
399
|
+
prompts: { listChanged: true },
|
|
397
400
|
},
|
|
398
401
|
serverInfo: {
|
|
399
402
|
name: this.config.name || 'mock-server',
|
|
400
|
-
version: '1.0.0'
|
|
401
|
-
}
|
|
402
|
-
}
|
|
403
|
+
version: '1.0.0',
|
|
404
|
+
},
|
|
405
|
+
},
|
|
403
406
|
};
|
|
404
407
|
}
|
|
405
408
|
|
|
406
409
|
if (method === 'tools/list') {
|
|
407
410
|
return {
|
|
408
411
|
result: {
|
|
409
|
-
tools: this.config.mockTools || []
|
|
410
|
-
}
|
|
412
|
+
tools: this.config.mockTools || [],
|
|
413
|
+
},
|
|
411
414
|
};
|
|
412
415
|
}
|
|
413
416
|
|
|
414
417
|
if (method === 'resources/list') {
|
|
415
418
|
return {
|
|
416
419
|
result: {
|
|
417
|
-
resources: this.config.mockResources || []
|
|
418
|
-
}
|
|
420
|
+
resources: this.config.mockResources || [],
|
|
421
|
+
},
|
|
419
422
|
};
|
|
420
423
|
}
|
|
421
424
|
|
|
422
425
|
if (method === 'prompts/list') {
|
|
423
426
|
return {
|
|
424
427
|
result: {
|
|
425
|
-
prompts: this.config.mockPrompts || []
|
|
426
|
-
}
|
|
428
|
+
prompts: this.config.mockPrompts || [],
|
|
429
|
+
},
|
|
427
430
|
};
|
|
428
431
|
}
|
|
429
432
|
|
|
@@ -433,10 +436,10 @@ class MCPServerConnection extends EventEmitter {
|
|
|
433
436
|
content: [
|
|
434
437
|
{
|
|
435
438
|
type: 'text',
|
|
436
|
-
text: `Tool ${message.params.name} executed successfully
|
|
437
|
-
}
|
|
438
|
-
]
|
|
439
|
-
}
|
|
439
|
+
text: `Tool ${message.params.name} executed successfully`,
|
|
440
|
+
},
|
|
441
|
+
],
|
|
442
|
+
},
|
|
440
443
|
};
|
|
441
444
|
}
|
|
442
445
|
|
|
@@ -447,10 +450,10 @@ class MCPServerConnection extends EventEmitter {
|
|
|
447
450
|
{
|
|
448
451
|
uri: message.params.uri,
|
|
449
452
|
mimeType: 'text/plain',
|
|
450
|
-
text: `Content of ${message.params.uri}
|
|
451
|
-
}
|
|
452
|
-
]
|
|
453
|
-
}
|
|
453
|
+
text: `Content of ${message.params.uri}`,
|
|
454
|
+
},
|
|
455
|
+
],
|
|
456
|
+
},
|
|
454
457
|
};
|
|
455
458
|
}
|
|
456
459
|
|
|
@@ -462,11 +465,11 @@ class MCPServerConnection extends EventEmitter {
|
|
|
462
465
|
role: 'user',
|
|
463
466
|
content: {
|
|
464
467
|
type: 'text',
|
|
465
|
-
text: `Prompt: ${message.params.name}
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
]
|
|
469
|
-
}
|
|
468
|
+
text: `Prompt: ${message.params.name}`,
|
|
469
|
+
},
|
|
470
|
+
},
|
|
471
|
+
],
|
|
472
|
+
},
|
|
470
473
|
};
|
|
471
474
|
}
|
|
472
475
|
|
|
@@ -522,7 +525,7 @@ class MCPServerConnection extends EventEmitter {
|
|
|
522
525
|
|
|
523
526
|
const response = await this._sendRequest('tools/call', {
|
|
524
527
|
name: toolName,
|
|
525
|
-
arguments: args
|
|
528
|
+
arguments: args,
|
|
526
529
|
});
|
|
527
530
|
|
|
528
531
|
return response;
|
|
@@ -547,7 +550,7 @@ class MCPServerConnection extends EventEmitter {
|
|
|
547
550
|
async getPrompt(promptName, args = {}) {
|
|
548
551
|
const response = await this._sendRequest('prompts/get', {
|
|
549
552
|
name: promptName,
|
|
550
|
-
arguments: args
|
|
553
|
+
arguments: args,
|
|
551
554
|
});
|
|
552
555
|
return response;
|
|
553
556
|
}
|
|
@@ -565,7 +568,7 @@ class MCPServerConnection extends EventEmitter {
|
|
|
565
568
|
resourceCount: this.resources.size,
|
|
566
569
|
promptCount: this.prompts.size,
|
|
567
570
|
serverInfo: this.serverInfo,
|
|
568
|
-
capabilities: this.capabilities
|
|
571
|
+
capabilities: this.capabilities,
|
|
569
572
|
};
|
|
570
573
|
}
|
|
571
574
|
}
|
|
@@ -596,9 +599,9 @@ class MCPConnector extends EventEmitter {
|
|
|
596
599
|
const connection = new MCPServerConnection(serverConfig, this.options);
|
|
597
600
|
|
|
598
601
|
// Forward events
|
|
599
|
-
connection.on('connected',
|
|
602
|
+
connection.on('connected', info => this.emit('serverConnected', name, info));
|
|
600
603
|
connection.on('disconnected', () => this.emit('serverDisconnected', name));
|
|
601
|
-
connection.on('error',
|
|
604
|
+
connection.on('error', error => this.emit('serverError', name, error));
|
|
602
605
|
|
|
603
606
|
this.servers.set(name, connection);
|
|
604
607
|
return connection;
|
|
@@ -640,7 +643,7 @@ class MCPConnector extends EventEmitter {
|
|
|
640
643
|
async connectAll() {
|
|
641
644
|
const results = {
|
|
642
645
|
success: [],
|
|
643
|
-
failed: []
|
|
646
|
+
failed: [],
|
|
644
647
|
};
|
|
645
648
|
|
|
646
649
|
for (const [name, connection] of this.servers) {
|
|
@@ -735,7 +738,7 @@ class MCPConnector extends EventEmitter {
|
|
|
735
738
|
|
|
736
739
|
const connection = this.servers.get(serverName);
|
|
737
740
|
const tool = connection?.tools.get(toolName);
|
|
738
|
-
|
|
741
|
+
|
|
739
742
|
return tool ? { tool, server: serverName } : null;
|
|
740
743
|
}
|
|
741
744
|
|
|
@@ -767,10 +770,11 @@ class MCPConnector extends EventEmitter {
|
|
|
767
770
|
|
|
768
771
|
return {
|
|
769
772
|
serverCount: this.servers.size,
|
|
770
|
-
connectedCount: Array.from(this.servers.values())
|
|
771
|
-
|
|
773
|
+
connectedCount: Array.from(this.servers.values()).filter(
|
|
774
|
+
c => c.state === ConnectionState.CONNECTED
|
|
775
|
+
).length,
|
|
772
776
|
totalTools: this.toolIndex.size,
|
|
773
|
-
servers
|
|
777
|
+
servers,
|
|
774
778
|
};
|
|
775
779
|
}
|
|
776
780
|
|
|
@@ -781,7 +785,7 @@ class MCPConnector extends EventEmitter {
|
|
|
781
785
|
*/
|
|
782
786
|
loadConfig(config) {
|
|
783
787
|
const servers = config.mcpServers || config.servers || {};
|
|
784
|
-
|
|
788
|
+
|
|
785
789
|
for (const [name, serverConfig] of Object.entries(servers)) {
|
|
786
790
|
this.addServer(name, serverConfig);
|
|
787
791
|
}
|
|
@@ -798,7 +802,7 @@ class MCPConnector extends EventEmitter {
|
|
|
798
802
|
for (const [name, connection] of this.servers) {
|
|
799
803
|
servers[name] = {
|
|
800
804
|
transport: connection.transportType,
|
|
801
|
-
...connection.config
|
|
805
|
+
...connection.config,
|
|
802
806
|
};
|
|
803
807
|
}
|
|
804
808
|
|
|
@@ -814,5 +818,5 @@ module.exports = {
|
|
|
814
818
|
MCPPrompt,
|
|
815
819
|
ConnectionState,
|
|
816
820
|
TransportType,
|
|
817
|
-
DEFAULT_CONFIG
|
|
821
|
+
DEFAULT_CONFIG,
|
|
818
822
|
};
|