Files
wehub-resource-sync 23f7624596
ADR-166 MCP Bridge Security Lock / Static-source security lock (push) Failing after 0s
ADR-166 MCP Bridge Security Lock / Compose default binds loopback + Mongo has auth (push) Failing after 2s
CodeQL Advanced / Analyze (rust) (push) Failing after 0s
ADR-166 MCP Bridge Security Lock / plugin-agent-federation bindHost default (push) Failing after 1s
ADR-166 MCP Bridge Security Lock / Runtime behavior — 401 + terminal gate + fail-closed (push) Failing after 4s
business-pods-smoke / smoke (push) Failing after 1s
all-plugins-smoke / smoke-all (push) Failing after 2s
CI/CD Pipeline / Security & Code Quality (push) Failing after 1s
CI/CD Pipeline / Test Suite (ubuntu-latest) (push) Failing after 1s
CI/CD Pipeline / Build & Package (macos-latest) (push) Has been skipped
CI/CD Pipeline / Build & Package (ubuntu-latest) (push) Has been skipped
CI/CD Pipeline / Build & Package (windows-latest) (push) Has been skipped
CI/CD Pipeline / Documentation & Examples (push) Failing after 1s
Clone Tracker (14-day rolling) / Snapshot clones for ruflo ecosystem (push) Failing after 1s
CodeQL Advanced / Analyze (actions) (push) Failing after 1s
CodeQL Advanced / Analyze (javascript-typescript) (push) Failing after 1s
federation-peer-rust / stable-noop (push) Failing after 1s
metaharness-ci / score (push) Failing after 1s
metaharness-ci / router-compat (push) Failing after 0s
metaharness-ci / similarity-tests (push) Failing after 0s
no-agentbbs-smoke / smoke-without-agentbbs (push) Failing after 1s
V3 CI/CD Pipeline / Build V3 (windows-latest) (push) Has been skipped
codex-integration-audit / Codex integration audit (push) Failing after 1s
helpers-manifest-guard / guard (push) Failing after 1s
🔗 Cross-Agent Integration Tests / 🤝 Agent Coordination Tests (push) Has been skipped
🔗 Cross-Agent Integration Tests / 🧠 Memory Sharing Integration (push) Has been skipped
🔗 Cross-Agent Integration Tests / 🛡️ Fault Tolerance Tests (push) Has been skipped
🔗 Cross-Agent Integration Tests / ⚡ Performance Integration Tests (push) Has been skipped
metaharness-ci / mcp-scan (push) Failing after 1s
metaharness-ci / eject-dryrun (push) Failing after 1s
metaharness-ci / metaharness-real-data (push) Failing after 0s
no-cli-optdep-bloat-2561 / guard (push) Failing after 1s
no-metaharness-smoke / smoke-without-metaharness (push) Failing after 1s
no-phantom-agentic-flow-subpath / guard (push) Failing after 1s
🔄 Automated Rollback Manager / 🚨 Failure Detection (push) Failing after 1s
V3 CI/CD Pipeline / Plugin hooks smoke / ubuntu-latest / Node 22 (push) Failing after 1s
V3 CI/CD Pipeline / ruflo-graph-intelligence build + test smoke (#2044, ADR-123) (push) Failing after 1s
CVE Audit Gate / Audit root (critical-blocking) (push) Failing after 2s
cost-tracker-smoke / smoke (push) Failing after 3s
oia-audit-weekly / audit (push) Failing after 2s
ruflo-agent-smoke / ruflo-agent structural smoke (push) Failing after 1s
📊 Status Badges Update / 📊 Update Status Badges (push) Failing after 1s
V3 CI/CD Pipeline / Static regression guards (#2267 YAML + (push) Failing after 1s
V3 CI/CD Pipeline / Test V3 Packages (push) Failing after 0s
V3 CI/CD Pipeline / agent_execute provider routing smoke (#2042) (push) Failing after 0s
CVE Audit Gate / Audit v3 (critical-blocking) (push) Failing after 1s
federation-peer-rust / stable-native (push) Failing after 2s
🔗 Cross-Agent Integration Tests / 🚀 Integration Test Setup (push) Failing after 2s
neural-trader-smoke / runtime-smoke (push) Failing after 1s
V3 CI/CD Pipeline / Build V3 (macos-latest) (push) Has been skipped
V3 CI/CD Pipeline / Build V3 (ubuntu-latest) (push) Has been skipped
V3 CI/CD Pipeline / Type Check V3 (push) Failing after 1s
V3 CI/CD Pipeline / Smoke (no better-sqlite3) / ubuntu-latest / Node 24 (push) Failing after 1s
V3 CI/CD Pipeline / Smoke (no better-sqlite3) / ubuntu-latest / Node 22 (push) Failing after 2s
V3 CI/CD Pipeline / browser rvf create flag smoke (#2015) (push) Failing after 0s
V3 CI/CD Pipeline / Dependency review (#2046) (push) Has been skipped
V3 CI/CD Pipeline / Supply-chain audit (#2046) (push) Failing after 0s
V3 CI/CD Pipeline / witness marker drift smoke (#2021) (push) Failing after 1s
V3 CI/CD Pipeline / neural-trader portfolio CG smoke (#2068, ADR-126 Phase 3) (push) Failing after 1s
V3 CI/CD Pipeline / neural-trader backtest signing smoke (#2068, ADR-126 Phase 4) (push) Failing after 1s
V3 CI/CD Pipeline / kg-extract type-import classification smoke (#2049) (push) Failing after 0s
V3 CI/CD Pipeline / witness verify precondition smoke (#1880) (push) Failing after 2s
V3 CI/CD Pipeline / neural-trader pipeline risk-gate smoke (#2068, ADR-126 Phase 5) (push) Failing after 0s
V3 CI/CD Pipeline / neural-trader feature attribution smoke (#2068, ADR-126 Phase 6) (push) Failing after 0s
V3 CI/CD Pipeline / plugin-registry signature verification smoke (#1922, CWE-347) (push) Failing after 4s
V3 CI/CD Pipeline / memory stats legacy-DB smoke (#2120) (push) Failing after 4s
V3 CI/CD Pipeline / github deprecated actions smoke (#2089, ADR-127 Phase 3) (push) Failing after 1s
V3 CI/CD Pipeline / graph query + pathfinder smoke (ADR-130 P2+P5) (push) Has been skipped
V3 CI/CD Pipeline / graph trajectory hooks smoke (ADR-130 P3) (push) Has been skipped
V3 CI/CD Pipeline / graph plugin adapter smoke (ADR-130 P4) (push) Has been skipped
V3 CI/CD Pipeline / graph benchmark (ADR-130 P6) (push) Has been skipped
V3 CI/CD Pipeline / statusline generator delegation smoke (#2195) (push) Failing after 1s
V3 CI/CD Pipeline / wizard init regression guard (#2206 (push) Failing after 1s
V3 CI/CD Pipeline / memory no-stray-db smoke (ADR-125 P7) (push) Failing after 1s
V3 CI/CD Pipeline / github-safe injection smoke (#2089, ADR-127 Phase 1) (push) Failing after 1s
V3 CI/CD Pipeline / github actions pin smoke (#2089, ADR-127 Phase 1) (push) Failing after 1s
V3 CI/CD Pipeline / github attribution opt-in smoke (#2089, ADR-127 Phase 4) (push) Failing after 1s
V3 CI/CD Pipeline / pre-bash hook safety smoke (#2017) (push) Failing after 1s
V3 CI/CD Pipeline / Memory import smoke / ubuntu-latest (push) Failing after 0s
V3 CI/CD Pipeline / MCP protocol smoke / ubuntu-latest (push) Failing after 2s
V3 CI/CD Pipeline / ruvllm WASM auto-init smoke (#2086) (push) Failing after 4s
V3 CI/CD Pipeline / MCP paired-tool round-trip smoke (#1889) (push) Failing after 1s
V3 CI/CD Pipeline / Plugin package install-safety (#1902/#1903/#1904) (push) Failing after 1s
V3 CI/CD Pipeline / Tool description discoverability (ADR-112) (push) Failing after 3s
V3 CI/CD Pipeline / CLI npx-install smoke (#1147 / (22) (push) Failing after 1s
V3 CI/CD Pipeline / CLI npx-install smoke (#1147 / (24) (push) Failing after 1s
V3 CI/CD Pipeline / Windows hook shim smoke (#2132) / ubuntu-latest (push) Failing after 2s
V3 CI/CD Pipeline / Windows hook execution smoke (#2132) / ubuntu-latest (push) Failing after 1s
V3 CI/CD Pipeline / Windows init hooks smoke (#2132) / ubuntu-latest (push) Failing after 1s
V3 CI/CD Pipeline / Vector-index dimension audit (#1947) (push) Failing after 0s
V3 CI/CD Pipeline / Hook-command install safety (#1921) (push) Failing after 1s
V3 CI/CD Pipeline / ToolOutputGuardrail smoke (ADR-131, (push) Failing after 1s
V3 CI/CD Pipeline / init-bundle invariants smoke (#2095, ADR-128 Phase 5) (push) Failing after 1s
V3 CI/CD Pipeline / wasm provider bridge smoke (ADR-129 P1) (push) Failing after 2s
V3 CI/CD Pipeline / wasm gallery CRUD smoke (ADR-129 P3) (push) Failing after 1s
V3 CI/CD Pipeline / wasm plugin bridge smoke (ADR-129 P4) (push) Failing after 0s
V3 CI/CD Pipeline / wasm compose smoke (ADR-129 P2) (push) Failing after 4s
V3 CI/CD Pipeline / graph schema smoke (ADR-130 P1) (push) Failing after 0s
Validate Marketplace / validate (push) Failing after 1s
🔍 Verification Pipeline / 🚀 Setup Verification (push) Failing after 1s
🔍 Verification Pipeline / 🛡️ Security Verification (push) Has been skipped
🔍 Verification Pipeline / 📝 Code Quality (push) Has been skipped
🔍 Verification Pipeline / 🧪 Test Verification (${{ matrix.os }}, Node ${{ matrix.node }}) (push) Has been skipped
🔍 Verification Pipeline / 🏗️ Build Verification (push) Has been skipped
🔍 Verification Pipeline / 📚 Documentation Verification (push) Has been skipped
CVE Audit Gate / High-severity report (warn only) (push) Has been cancelled
🔄 Automated Rollback Manager / 🔄 Execute Rollback (push) Has been cancelled
🔄 Automated Rollback Manager / ✅ Post-Rollback Verification (push) Has been cancelled
🔄 Automated Rollback Manager / 📊 Rollback Monitoring (push) Has been cancelled
V3 CI/CD Pipeline / Windows init hooks smoke (#2132) / windows-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook execution smoke (#2132) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook execution smoke (#2132) / windows-latest (push) Has been cancelled
🔄 Automated Rollback Manager / ⏳ Manual Rollback Approval (push) Has been cancelled
V3 CI/CD Pipeline / MCP protocol smoke / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Memory import smoke / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook shim smoke (#2132) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows hook shim smoke (#2132) / windows-latest (push) Has been cancelled
V3 CI/CD Pipeline / Windows init hooks smoke (#2132) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Witness verify (signed manifest) / macos-latest (push) Has been cancelled
V3 CI/CD Pipeline / Witness verify (signed manifest) / ubuntu-latest (push) Has been cancelled
V3 CI/CD Pipeline / Witness verify (signed manifest) / windows-latest (push) Has been cancelled
V3 CI/CD Pipeline / Publish to npm (alpha) (push) Has been cancelled
V3 CI/CD Pipeline / Smoke (no better-sqlite3) / macos-latest / Node 22 (push) Has been cancelled
V3 CI/CD Pipeline / Plugin hooks smoke / macos-latest / Node 22 (push) Has been cancelled
CI/CD Pipeline / Deploy & Release (push) Has been cancelled
CI/CD Pipeline / CI Status (push) Has been cancelled
🔗 Cross-Agent Integration Tests / 📊 Integration Test Report (push) Has been cancelled
🔄 Automated Rollback Manager / 🔍 Pre-Rollback Validation (push) Has been cancelled
🔍 Verification Pipeline / ⚡ Performance Verification (push) Has been cancelled
🔍 Verification Pipeline / 📊 Verification Report (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:02:19 +08:00

566 lines
12 KiB
TypeScript

/**
* V3 MCP Types and Interfaces
*
* Optimized type definitions for the V3 MCP server with:
* - Strict typing for performance
* - Connection pooling types
* - Transport layer abstractions
* - Tool registry interfaces
*
* Performance Targets:
* - Server startup: <400ms
* - Tool registration: <10ms
* - Tool execution: <50ms overhead
*/
// ============================================================================
// Core Protocol Types
// ============================================================================
/**
* JSON-RPC 2.0 Protocol Version
*/
export type JsonRpcVersion = '2.0';
/**
* MCP Protocol Version
*/
export interface MCPProtocolVersion {
major: number;
minor: number;
patch: number;
}
/**
* MCP Request ID (can be string, number, or null)
*/
export type RequestId = string | number | null;
/**
* Base MCP Message
*/
export interface MCPMessage {
jsonrpc: JsonRpcVersion;
}
/**
* MCP Request
*/
export interface MCPRequest extends MCPMessage {
id: RequestId;
method: string;
params?: Record<string, unknown>;
}
/**
* MCP Notification (request without id)
*/
export interface MCPNotification extends MCPMessage {
method: string;
params?: Record<string, unknown>;
}
/**
* MCP Error
*/
export interface MCPError {
code: number;
message: string;
data?: unknown;
}
/**
* MCP Response
*/
export interface MCPResponse extends MCPMessage {
id: RequestId;
result?: unknown;
error?: MCPError;
}
// ============================================================================
// Server Configuration
// ============================================================================
/**
* Transport type options
*/
export type TransportType = 'stdio' | 'http' | 'websocket' | 'in-process';
/**
* Authentication method
*/
export type AuthMethod = 'token' | 'oauth' | 'api-key' | 'none';
/**
* Authentication configuration
*/
export interface AuthConfig {
enabled: boolean;
method: AuthMethod;
tokens?: string[];
apiKeys?: string[];
jwtSecret?: string;
oauth?: {
clientId: string;
clientSecret: string;
authorizationUrl: string;
tokenUrl: string;
};
}
/**
* Load balancer configuration
*/
export interface LoadBalancerConfig {
enabled: boolean;
maxConcurrentRequests: number;
rateLimit?: {
requestsPerSecond: number;
burstSize: number;
};
circuitBreaker?: {
failureThreshold: number;
resetTimeout: number;
};
}
/**
* Connection pool configuration
*/
export interface ConnectionPoolConfig {
maxConnections: number;
minConnections: number;
idleTimeout: number;
acquireTimeout: number;
maxWaitingClients: number;
evictionRunInterval: number;
}
/**
* MCP Server configuration
*/
export interface MCPServerConfig {
name: string;
version: string;
transport: TransportType;
host?: string;
port?: number;
tlsEnabled?: boolean;
tlsCert?: string;
tlsKey?: string;
auth?: AuthConfig;
loadBalancer?: LoadBalancerConfig;
connectionPool?: ConnectionPoolConfig;
corsEnabled?: boolean;
corsOrigins?: string[];
maxRequestSize?: number;
requestTimeout?: number;
enableMetrics?: boolean;
enableCaching?: boolean;
cacheTTL?: number;
logLevel?: 'debug' | 'info' | 'warn' | 'error';
}
// ============================================================================
// Session Types
// ============================================================================
/**
* MCP Session state
*/
export type SessionState = 'created' | 'initializing' | 'ready' | 'closing' | 'closed' | 'error';
/**
* MCP Session
*/
export interface MCPSession {
id: string;
state: SessionState;
transport: TransportType;
createdAt: Date;
lastActivityAt: Date;
isInitialized: boolean;
isAuthenticated: boolean;
clientInfo?: MCPClientInfo;
protocolVersion?: MCPProtocolVersion;
capabilities?: MCPCapabilities;
metadata?: Record<string, unknown>;
}
/**
* Client information from initialization
*/
export interface MCPClientInfo {
name: string;
version: string;
}
// ============================================================================
// Capability Types
// ============================================================================
/**
* MCP Capabilities
*/
export interface MCPCapabilities {
logging?: {
level: 'debug' | 'info' | 'warn' | 'error';
};
tools?: {
listChanged: boolean;
};
resources?: {
listChanged: boolean;
subscribe: boolean;
};
prompts?: {
listChanged: boolean;
};
experimental?: Record<string, unknown>;
}
/**
* Initialize request parameters
*/
export interface MCPInitializeParams {
protocolVersion: MCPProtocolVersion;
capabilities: MCPCapabilities;
clientInfo: MCPClientInfo;
}
/**
* Initialize response result
*/
export interface MCPInitializeResult {
protocolVersion: MCPProtocolVersion;
capabilities: MCPCapabilities;
serverInfo: {
name: string;
version: string;
};
instructions?: string;
}
// ============================================================================
// Tool Types
// ============================================================================
/**
* JSON Schema type for tool input
*/
export interface JSONSchema {
type: string;
properties?: Record<string, JSONSchema>;
required?: string[];
items?: JSONSchema;
enum?: string[];
description?: string;
default?: unknown;
minimum?: number;
maximum?: number;
minLength?: number;
maxLength?: number;
pattern?: string;
additionalProperties?: boolean | JSONSchema;
}
/**
* Tool execution context
*/
export interface ToolContext {
sessionId: string;
requestId?: RequestId;
orchestrator?: unknown;
swarmCoordinator?: unknown;
agentManager?: unknown;
resourceManager?: unknown;
messageBus?: unknown;
monitor?: unknown;
metadata?: Record<string, unknown>;
}
/**
* Tool handler function type
*/
export type ToolHandler<TInput = unknown, TOutput = unknown> = (
input: TInput,
context?: ToolContext
) => Promise<TOutput>;
/**
* MCP Tool definition
*/
export interface MCPTool<TInput = unknown, TOutput = unknown> {
name: string;
description: string;
inputSchema: JSONSchema;
handler: ToolHandler<TInput, TOutput>;
category?: string;
tags?: string[];
version?: string;
deprecated?: boolean;
cacheable?: boolean;
cacheTTL?: number;
timeout?: number;
}
/**
* Tool call result
*/
export interface ToolCallResult {
content: Array<{
type: 'text' | 'image' | 'resource';
text?: string;
data?: string;
mimeType?: string;
}>;
isError: boolean;
}
/**
* Tool registration options
*/
export interface ToolRegistrationOptions {
override?: boolean;
validate?: boolean;
preload?: boolean;
}
// ============================================================================
// Transport Types
// ============================================================================
/**
* Request handler function type
*/
export type RequestHandler = (request: MCPRequest) => Promise<MCPResponse>;
/**
* Notification handler function type
*/
export type NotificationHandler = (notification: MCPNotification) => Promise<void>;
/**
* Transport health status
*/
export interface TransportHealthStatus {
healthy: boolean;
error?: string;
metrics?: Record<string, number>;
}
/**
* Transport interface
*/
export interface ITransport {
readonly type: TransportType;
start(): Promise<void>;
stop(): Promise<void>;
onRequest(handler: RequestHandler): void;
onNotification(handler: NotificationHandler): void;
sendNotification?(notification: MCPNotification): Promise<void>;
getHealthStatus(): Promise<TransportHealthStatus>;
}
// ============================================================================
// Connection Pool Types
// ============================================================================
/**
* Connection state
*/
export type ConnectionState = 'idle' | 'busy' | 'closing' | 'closed' | 'error';
/**
* Pooled connection
*/
export interface PooledConnection {
id: string;
state: ConnectionState;
createdAt: Date;
lastUsedAt: Date;
useCount: number;
transport: TransportType;
metadata?: Record<string, unknown>;
}
/**
* Connection pool statistics
*/
export interface ConnectionPoolStats {
totalConnections: number;
idleConnections: number;
busyConnections: number;
pendingRequests: number;
totalAcquired: number;
totalReleased: number;
totalCreated: number;
totalDestroyed: number;
avgAcquireTime: number;
}
/**
* Connection pool interface
*/
export interface IConnectionPool {
acquire(): Promise<PooledConnection>;
release(connection: PooledConnection): void;
destroy(connection: PooledConnection): void;
getStats(): ConnectionPoolStats;
drain(): Promise<void>;
clear(): Promise<void>;
}
// ============================================================================
// Metrics Types
// ============================================================================
/**
* Tool call metrics
*/
export interface ToolCallMetrics {
toolName: string;
duration: number;
success: boolean;
timestamp: number;
transport: TransportType;
cached?: boolean;
}
/**
* MCP Server metrics
*/
export interface MCPServerMetrics {
totalRequests: number;
successfulRequests: number;
failedRequests: number;
averageResponseTime: number;
activeSessions: number;
toolInvocations: Record<string, number>;
errors: Record<string, number>;
lastReset: Date;
startupTime?: number;
uptime?: number;
}
/**
* Session metrics
*/
export interface SessionMetrics {
total: number;
active: number;
authenticated: number;
expired: number;
}
// ============================================================================
// Event Types
// ============================================================================
/**
* MCP Event types
*/
export type MCPEventType =
| 'server:started'
| 'server:stopped'
| 'server:error'
| 'session:created'
| 'session:initialized'
| 'session:closed'
| 'session:error'
| 'tool:registered'
| 'tool:unregistered'
| 'tool:called'
| 'tool:completed'
| 'tool:error'
| 'transport:connected'
| 'transport:disconnected'
| 'transport:error'
| 'pool:connection:acquired'
| 'pool:connection:released'
| 'pool:connection:created'
| 'pool:connection:destroyed';
/**
* MCP Event
*/
export interface MCPEvent {
type: MCPEventType;
timestamp: Date;
data?: unknown;
}
/**
* Event handler function type
*/
export type EventHandler = (event: MCPEvent) => void;
// ============================================================================
// Logger Interface
// ============================================================================
/**
* Log level
*/
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
/**
* Logger interface
*/
export interface ILogger {
debug(message: string, data?: unknown): void;
info(message: string, data?: unknown): void;
warn(message: string, data?: unknown): void;
error(message: string, data?: unknown): void;
}
// ============================================================================
// Error Codes
// ============================================================================
/**
* Standard JSON-RPC error codes
*/
export const ErrorCodes = {
PARSE_ERROR: -32700,
INVALID_REQUEST: -32600,
METHOD_NOT_FOUND: -32601,
INVALID_PARAMS: -32602,
INTERNAL_ERROR: -32603,
SERVER_NOT_INITIALIZED: -32002,
UNKNOWN_ERROR: -32001,
REQUEST_CANCELLED: -32800,
RATE_LIMITED: -32000,
AUTHENTICATION_REQUIRED: -32001,
AUTHORIZATION_FAILED: -32002,
} as const;
/**
* MCP Error class
*/
export class MCPServerError extends Error {
constructor(
message: string,
public code: number = ErrorCodes.INTERNAL_ERROR,
public data?: unknown
) {
super(message);
this.name = 'MCPServerError';
}
toMCPError(): MCPError {
return {
code: this.code,
message: this.message,
data: this.data,
};
}
}