0xray 3.1.1 → 3.2.0
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/.opencode/codex.codex +1 -1
- package/.opencode/commands/auto-format.md +3 -3
- package/.opencode/commands/auto-summary-capture.md +2 -2
- package/.opencode/commands/enforcer-daily-scan.md +3 -3
- package/.opencode/commands/framework-compliance-audit.md +4 -4
- package/.opencode/commands/interactive-validator.md +2 -2
- package/.opencode/commands/job-summary-logger.md +2 -2
- package/.opencode/commands/mode-switch.md +1 -1
- package/.opencode/commands/model-health-check.md +2 -2
- package/.opencode/commands/performance-analysis.md +2 -2
- package/.opencode/commands/pre-commit-introspection.md +3 -3
- package/.opencode/commands/security-scan.md +3 -3
- package/.opencode/commands/sisyphus-validation.md +3 -3
- package/.opencode/commands/summary-logger.md +2 -2
- package/AGENTS.md +3 -13
- package/README.md +3 -3
- package/dist/AGENTS.md +3 -13
- package/dist/CHANGELOG.md +29 -0
- package/dist/README.md +3 -3
- package/dist/analytics/consent-manager.js +0 -1
- package/dist/analytics/emerging-pattern-detector.js +0 -1
- package/dist/analytics/pattern-learning-engine.js +0 -1
- package/dist/analytics/pattern-performance-tracker.js +0 -1
- package/dist/analytics/predictive-analytics.js +0 -1
- package/dist/analytics/prompt-pattern-analyzer.js +0 -1
- package/dist/analytics/routing-performance-analyzer.js +0 -1
- package/dist/analytics/routing-refiner.js +0 -1
- package/dist/analytics/simple-pattern-analyzer.js +0 -1
- package/dist/cli/commands/archive-logs.js +0 -1
- package/dist/cli/commands/opencode-install.js +13 -0
- package/dist/cli/commands/plugin-commands.js +0 -1
- package/dist/cli/commands/status.js +11 -13
- package/dist/cli/index.js +2 -7
- package/dist/core/activity-logger.js +0 -1
- package/dist/core/adaptive-kernel.js +0 -1
- package/dist/core/boot-orchestrator.js +2 -12
- package/dist/core/bridge.mjs +0 -1
- package/dist/core/codex-formatter.js +0 -1
- package/dist/core/codex-injector.js +0 -1
- package/dist/core/config-loader.js +36 -28
- package/dist/core/context-loader.js +0 -1
- package/dist/core/context-validator.js +0 -1
- package/dist/core/features-config.js +37 -1
- package/dist/core/kernel-patterns.js +0 -1
- package/dist/core/model-router.js +23 -64
- package/dist/core/system-prompt-generator.js +0 -1
- package/dist/delegation/agent-delegator.js +0 -1
- package/dist/delegation/agent-expertise.js +0 -1
- package/dist/delegation/analytics/index.js +0 -1
- package/dist/delegation/analytics/learning-engine.js +0 -1
- package/dist/delegation/analytics/outcome-tracker.js +0 -1
- package/dist/delegation/analytics/routing-analytics.js +0 -1
- package/dist/delegation/ast-code-parser.js +0 -1
- package/dist/delegation/complexity-analyzer.js +0 -1
- package/dist/delegation/dependency-graph-builder.js +0 -1
- package/dist/delegation/index.js +0 -1
- package/dist/delegation/metrics-aggregator.js +0 -1
- package/dist/delegation/session-coordinator.js +0 -1
- package/dist/delegation/strategy-selector.js +0 -1
- package/dist/delegation/voting-coordinator.js +0 -1
- package/dist/delegation/voting-types.js +0 -1
- package/dist/delegation/weighted-voting-aggregator.js +0 -1
- package/dist/enforcement/core/index.js +0 -1
- package/dist/enforcement/core/rule-executor.js +0 -1
- package/dist/enforcement/core/rule-hierarchy.js +0 -1
- package/dist/enforcement/core/rule-registry.js +0 -1
- package/dist/enforcement/core/violation-fixer.js +0 -1
- package/dist/enforcement/index.js +0 -1
- package/dist/enforcement/loaders/agent-triage-loader.js +0 -1
- package/dist/enforcement/loaders/agents-md-validation-loader.js +0 -1
- package/dist/enforcement/loaders/base-loader.js +0 -1
- package/dist/enforcement/loaders/codex-loader.js +0 -1
- package/dist/enforcement/loaders/index.js +0 -1
- package/dist/enforcement/loaders/loader-orchestrator.js +0 -1
- package/dist/enforcement/loaders/processor-loader.js +0 -1
- package/dist/enforcement/types.js +0 -1
- package/dist/enforcement/validators/architecture-validators.js +0 -1
- package/dist/enforcement/validators/base-validator.js +0 -1
- package/dist/enforcement/validators/code-quality-validators.js +0 -1
- package/dist/enforcement/validators/index.js +0 -1
- package/dist/enforcement/validators/security-validators.js +0 -1
- package/dist/enforcement/validators/testing-validators.js +0 -1
- package/dist/enforcement/validators/validator-registry.js +0 -1
- package/dist/governance/codex-policy.service.js +0 -1
- package/dist/inference/inference-agent-invoker.js +67 -0
- package/dist/inference/inference-applier.js +178 -0
- package/dist/inference/inference-cycle.js +51 -827
- package/dist/inference/inference-proposal-generator.js +149 -0
- package/dist/infrastructure/iac-validator.js +465 -0
- package/dist/infrastructure/schemas/cloud-schemas.js +488 -0
- package/dist/integrations/base/ExampleIntegration.js +0 -1
- package/dist/integrations/base/Integration.js +0 -1
- package/dist/integrations/base/index.js +0 -1
- package/dist/integrations/base/registry.js +0 -1
- package/dist/integrations/base/types.js +0 -1
- package/dist/integrations/enforcement-gate.js +3 -3
- package/dist/integrations/governance/governance-client.js +0 -1
- package/dist/integrations/governance/index.js +11 -19
- package/dist/integrations/governance/types.js +0 -1
- package/dist/integrations/hermes-agent/__init__.py +4 -0
- package/dist/integrations/hermes-agent/bridge.mjs +37 -0
- package/dist/integrations/openclaw/api-server.js +0 -1
- package/dist/integrations/openclaw/client.js +0 -1
- package/dist/integrations/openclaw/config.js +0 -1
- package/dist/integrations/openclaw/hooks/xray-hooks.js +0 -1
- package/dist/integrations/openclaw/index.js +0 -1
- package/dist/integrations/openclaw/types.js +0 -1
- package/dist/integrations/plugins/index.js +0 -1
- package/dist/integrations/plugins/plugin-integration.js +0 -1
- package/dist/integrations/plugins/plugin-registry.js +0 -1
- package/dist/mcps/agent-resolver.js +0 -1
- package/dist/mcps/architect-tools.server.js +119 -185
- package/dist/mcps/auto-format.server.js +56 -74
- package/dist/mcps/boot-orchestrator.server.js +67 -85
- package/dist/mcps/config/config-loader.js +6 -0
- package/dist/mcps/config/plugin-server-registry.js +0 -1
- package/dist/mcps/enforcer-tools.server.js +207 -273
- package/dist/mcps/estimation.server.js +63 -107
- package/dist/mcps/framework-compliance-audit.server.js +52 -81
- package/dist/mcps/framework-help.server.js +71 -89
- package/dist/mcps/governance.server.js +97 -149
- package/dist/mcps/knowledge-skills/api-design.server.js +33 -65
- package/dist/mcps/knowledge-skills/architecture-patterns.server.js +33 -65
- package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +123 -163
- package/dist/mcps/knowledge-skills/code-analyzer.server.js +210 -237
- package/dist/mcps/knowledge-skills/code-review.server.js +108 -142
- package/dist/mcps/knowledge-skills/content-creator.server.js +203 -225
- package/dist/mcps/knowledge-skills/database-design.server.js +116 -150
- package/dist/mcps/knowledge-skills/devops-deployment.server.js +123 -157
- package/dist/mcps/knowledge-skills/git-workflow.server.js +34 -67
- package/dist/mcps/knowledge-skills/growth-strategist.server.js +301 -323
- package/dist/mcps/knowledge-skills/log-monitor.server.js +139 -159
- package/dist/mcps/knowledge-skills/mobile-development.server.js +170 -200
- package/dist/mcps/knowledge-skills/multimodal-looker.server.js +122 -158
- package/dist/mcps/knowledge-skills/performance-optimization.server.js +88 -138
- package/dist/mcps/knowledge-skills/project-analysis.server.js +131 -218
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +115 -150
- package/dist/mcps/knowledge-skills/security-audit.server.js +16 -143
- package/dist/mcps/knowledge-skills/seo-consultant.server.js +20 -213
- package/dist/mcps/knowledge-skills/session-management.server.js +13 -90
- package/dist/mcps/knowledge-skills/skill-invocation.server.js +43 -421
- package/dist/mcps/knowledge-skills/strategist.server.js +10 -55
- package/dist/mcps/knowledge-skills/tech-writer.server.js +16 -191
- package/dist/mcps/knowledge-skills/testing-best-practices.server.js +18 -191
- package/dist/mcps/knowledge-skills/testing-strategy.server.js +18 -156
- package/dist/mcps/knowledge-skills/ui-ux-design.server.js +22 -296
- package/dist/mcps/lint.server.js +50 -91
- package/dist/mcps/model-health-check.server.js +32 -60
- package/dist/mcps/orchestrator/aside-context.js +207 -0
- package/dist/mcps/orchestrator/handlers/complexity-handler.js +5 -1
- package/dist/mcps/orchestrator/handlers/status-handler.js +8 -1
- package/dist/mcps/orchestrator/handlers/task-handler.js +5 -0
- package/dist/mcps/orchestrator/index.js +5 -0
- package/dist/mcps/orchestrator/server.js +63 -8
- package/dist/mcps/performance-analysis.server.js +56 -87
- package/dist/mcps/processor-pipeline.server.js +68 -99
- package/dist/mcps/researcher.server.js +80 -153
- package/dist/mcps/security-scan.server.js +56 -70
- package/dist/mcps/shared/knowledge-skill-base.js +11 -4
- package/dist/mcps/state-manager.server.js +124 -152
- package/dist/monitoring/nudge-watchdog.js +0 -1
- package/dist/nucleus/default-plugins.js +13 -19
- package/dist/nucleus/index.js +0 -1
- package/dist/orchestrator/agent-spawn-governor.js +0 -1
- package/dist/orchestrator/intelligent-commit-batcher.js +2 -10
- package/dist/orchestrator/multi-agent-orchestration-coordinator.js +0 -1
- package/dist/orchestrator/orchestrator.js +8 -18
- package/dist/orchestrator/self-direction-activation.js +0 -1
- package/dist/orchestrator/universal-registry-bridge.js +0 -1
- package/dist/performance/performance-budget-enforcer.js +0 -1
- package/dist/performance/performance-regression-tester.js +0 -1
- package/dist/plugin/plugin-codex-context.js +87 -0
- package/dist/plugin/plugin-helpers.js +155 -0
- package/dist/plugin/plugin-logger.js +46 -0
- package/dist/plugin/plugin-modules.js +144 -0
- package/dist/plugin/plugin-quality-gate.js +88 -0
- package/dist/plugin/plugin-types.js +1 -0
- package/dist/plugin/xray-codex-injection.js +338 -0
- package/dist/postprocessor/PostProcessor.js +3 -9
- package/dist/postprocessor/analysis/CodeChangeAnalyzer.js +50 -0
- package/dist/postprocessor/config/ProcessorConfigLoader.js +16 -0
- package/dist/postprocessor/integration.js +194 -0
- package/dist/postprocessor/metamorphosis/SelfProposalEngine.js +472 -0
- package/dist/postprocessor/metamorphosis/index.js +1 -0
- package/dist/postprocessor/redeploy/RetryHandler.js +118 -0
- package/dist/postprocessor/services/RegressionAnalysisService.js +0 -1
- package/dist/postprocessor/triggers/APITrigger.js +0 -1
- package/dist/postprocessor/triggers/WebhookTrigger.js +0 -1
- package/dist/processors/implementations/agents-md-validation-processor.js +0 -1
- package/dist/processors/implementations/async-pattern-processor.js +0 -1
- package/dist/processors/implementations/console-log-guard-processor.js +0 -1
- package/dist/processors/implementations/coverage-analysis-processor.js +0 -1
- package/dist/processors/implementations/inference-improvement-processor.js +2 -9
- package/dist/processors/implementations/log-protection-processor.js +0 -1
- package/dist/processors/implementations/nudge-processor.js +0 -1
- package/dist/processors/implementations/performance-budget-processor.js +0 -1
- package/dist/processors/implementations/postprocessor-chain-validator.js +0 -1
- package/dist/processors/implementations/publish-preflight-processor.js +4 -12
- package/dist/processors/implementations/session-summary-processor.js +8 -16
- package/dist/processors/implementations/spawn-governance-processor.js +0 -1
- package/dist/processors/implementations/storytelling-trigger-processor.js +3 -28
- package/dist/processors/implementations/test-auto-creation-processor.js +0 -1
- package/dist/processors/implementations/typescript-compilation-processor.js +0 -1
- package/dist/processors/implementations/version-compliance-processor.js +0 -1
- package/dist/processors/processor-interfaces.js +0 -1
- package/dist/processors/processor-types.js +0 -1
- package/dist/scripts/integration.js +0 -1
- package/dist/security/comprehensive-security-audit.js +0 -1
- package/dist/security/security-agent-coordinator.js +0 -1
- package/dist/security/security-auditor.js +0 -1
- package/dist/security/security-hardener.js +0 -1
- package/dist/security/security-hardening-system.js +0 -1
- package/dist/security/security-headers.js +0 -1
- package/dist/security/security-orchestration-layer.js +0 -1
- package/dist/services/inference-tuner.js +0 -1
- package/dist/session/session-cleanup-manager.js +0 -1
- package/dist/session/session-monitor.js +0 -1
- package/dist/session/session-state-manager.js +0 -1
- package/dist/skills/xray-orchestrator/index.js +0 -1
- package/dist/utils/codex-parser.js +0 -1
- package/dist/utils/language-detector.js +0 -1
- package/dist/utils/shutdown-handler.js +0 -1
- package/dist/validation/agent-config-validator.js +280 -0
- package/dist/validation/orchestration-flow-validator.js +606 -0
- package/package.json +1 -1
- package/scripts/node/release.mjs +2 -2
- package/scripts/node/setup.cjs +28 -0
- package/scripts/node/universal-version-manager.js +1 -1
- package/src/mcps/agent-resolver.ts +0 -1
- package/src/mcps/architect-tools.server.ts +129 -211
- package/src/mcps/auto-format.server.ts +74 -103
- package/src/mcps/boot-orchestrator.server.ts +71 -96
- package/src/mcps/config/__tests__/config-loader.test.ts +6 -6
- package/src/mcps/config/config-loader.ts +7 -0
- package/src/mcps/config/plugin-server-registry.ts +0 -1
- package/src/mcps/enforcer-tools.server.ts +217 -294
- package/src/mcps/estimation.server.ts +62 -122
- package/src/mcps/framework-compliance-audit.server.ts +53 -95
- package/src/mcps/framework-help.server.ts +74 -96
- package/src/mcps/governance.server.ts +97 -162
- package/src/mcps/knowledge-skills/api-design.server.ts +33 -72
- package/src/mcps/knowledge-skills/architecture-patterns.server.ts +33 -72
- package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +148 -193
- package/src/mcps/knowledge-skills/code-analyzer.server.ts +222 -254
- package/src/mcps/knowledge-skills/code-review.server.ts +115 -157
- package/src/mcps/knowledge-skills/content-creator.server.ts +219 -246
- package/src/mcps/knowledge-skills/database-design.server.ts +119 -160
- package/src/mcps/knowledge-skills/devops-deployment.server.ts +126 -167
- package/src/mcps/knowledge-skills/git-workflow.server.ts +32 -77
- package/src/mcps/knowledge-skills/growth-strategist.server.ts +322 -360
- package/src/mcps/knowledge-skills/log-monitor.server.ts +68 -95
- package/src/mcps/knowledge-skills/mobile-development.server.ts +16 -56
- package/src/mcps/knowledge-skills/multimodal-looker.server.ts +13 -59
- package/src/mcps/knowledge-skills/performance-optimization.server.ts +13 -74
- package/src/mcps/knowledge-skills/project-analysis.server.ts +13 -120
- package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +13 -60
- package/src/mcps/knowledge-skills/security-audit.server.ts +19 -157
- package/src/mcps/knowledge-skills/seo-consultant.server.ts +23 -227
- package/src/mcps/knowledge-skills/session-management.server.ts +17 -106
- package/src/mcps/knowledge-skills/skill-invocation.server.ts +45 -446
- package/src/mcps/knowledge-skills/strategist.server.ts +13 -63
- package/src/mcps/knowledge-skills/tech-writer.server.ts +19 -204
- package/src/mcps/knowledge-skills/testing-best-practices.server.ts +21 -204
- package/src/mcps/knowledge-skills/testing-strategy.server.ts +21 -165
- package/src/mcps/knowledge-skills/ui-ux-design.server.ts +25 -342
- package/src/mcps/lint.server.ts +52 -105
- package/src/mcps/model-health-check.server.ts +34 -70
- package/src/mcps/orchestrator/aside-context.ts +245 -0
- package/src/mcps/orchestrator/handlers/complexity-handler.ts +9 -3
- package/src/mcps/orchestrator/handlers/status-handler.ts +11 -1
- package/src/mcps/orchestrator/handlers/task-handler.ts +8 -1
- package/src/mcps/orchestrator/index.ts +29 -0
- package/src/mcps/orchestrator/server.ts +79 -24
- package/src/mcps/orchestrator/types.ts +37 -0
- package/src/mcps/performance-analysis.server.ts +59 -102
- package/src/mcps/processor-pipeline.server.ts +70 -108
- package/src/mcps/researcher.server.ts +87 -175
- package/src/mcps/security-scan.server.ts +57 -76
- package/src/mcps/shared/knowledge-skill-base.ts +12 -4
- package/src/mcps/state-manager.server.ts +129 -169
- package/src/opencode/codex.codex +1 -1
- package/src/opencode/commands/auto-format.md +3 -3
- package/src/opencode/commands/auto-summary-capture.md +2 -2
- package/src/opencode/commands/enforcer-daily-scan.md +3 -3
- package/src/opencode/commands/framework-compliance-audit.md +4 -4
- package/src/opencode/commands/interactive-validator.md +2 -2
- package/src/opencode/commands/job-summary-logger.md +2 -2
- package/src/opencode/commands/mode-switch.md +1 -1
- package/src/opencode/commands/model-health-check.md +2 -2
- package/src/opencode/commands/performance-analysis.md +2 -2
- package/src/opencode/commands/pre-commit-introspection.md +3 -3
- package/src/opencode/commands/security-scan.md +3 -3
- package/src/opencode/commands/sisyphus-validation.md +3 -3
- package/src/opencode/commands/summary-logger.md +2 -2
- package/src/skills/xray-orchestrator/index.ts +0 -1
- package/dist/nucleus/orchestrator.js +0 -479
|
@@ -20,6 +20,16 @@ import { TaskHandler } from './handlers/task-handler.js';
|
|
|
20
20
|
import { ComplexityHandler } from './handlers/complexity-handler.js';
|
|
21
21
|
import { StatusHandler } from './handlers/status-handler.js';
|
|
22
22
|
import type { OrchestrationTask, OrchestrationResult } from './types.js';
|
|
23
|
+
import {
|
|
24
|
+
spawnAside,
|
|
25
|
+
closeAside,
|
|
26
|
+
closeAllAsides,
|
|
27
|
+
addObservations,
|
|
28
|
+
getActiveAsideCount,
|
|
29
|
+
getActiveAsideIds,
|
|
30
|
+
getAsideState,
|
|
31
|
+
extractGovernanceObservations,
|
|
32
|
+
} from './aside-context.js';
|
|
23
33
|
|
|
24
34
|
/**
|
|
25
35
|
* Orchestrator MCP Server
|
|
@@ -234,33 +244,65 @@ export class OrchestratorServer {
|
|
|
234
244
|
const { name, arguments: args } = request.params;
|
|
235
245
|
|
|
236
246
|
switch (name) {
|
|
237
|
-
case 'orchestrate-task':
|
|
238
|
-
|
|
247
|
+
case 'orchestrate-task': {
|
|
248
|
+
const orchArgs = args as {
|
|
239
249
|
description: string;
|
|
240
250
|
tasks?: OrchestrationTask[];
|
|
241
251
|
sessionId?: string;
|
|
242
252
|
executionMode?: string;
|
|
243
253
|
timeout?: number;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
tasks:
|
|
254
|
+
};
|
|
255
|
+
const aside = await spawnAside({
|
|
256
|
+
description: `Orchestration: ${orchArgs.description}`,
|
|
257
|
+
...(orchArgs.sessionId ? { sessionId: orchArgs.sessionId } : {}),
|
|
258
|
+
inheritedContext: { taskCount: orchArgs.tasks?.length ?? 0, executionMode: orchArgs.executionMode ?? 'optimized' },
|
|
249
259
|
});
|
|
250
|
-
|
|
260
|
+
try {
|
|
261
|
+
const result = await this.taskHandler.handleOrchestrateTask(
|
|
262
|
+
orchArgs,
|
|
263
|
+
{ taskHistory: this.taskHistory, activeTasks: this.activeTasks, asideId: aside.asideId },
|
|
264
|
+
);
|
|
265
|
+
return result;
|
|
266
|
+
} finally {
|
|
267
|
+
closeAside(aside.asideId);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
case 'analyze-complexity': {
|
|
271
|
+
const complexityArgs = args as { tasks: OrchestrationTask[] };
|
|
272
|
+
const aside = await spawnAside({
|
|
273
|
+
description: `Complexity analysis: ${complexityArgs.tasks.length} tasks`,
|
|
274
|
+
});
|
|
275
|
+
try {
|
|
276
|
+
return await this.complexityHandler.handleAnalyzeComplexity(complexityArgs, aside.asideId);
|
|
277
|
+
} finally {
|
|
278
|
+
closeAside(aside.asideId);
|
|
279
|
+
}
|
|
280
|
+
}
|
|
251
281
|
case 'get-orchestration-status':
|
|
252
282
|
return await this.statusHandler.handleGetOrchestrationStatus(args as {
|
|
253
283
|
sessionId?: string;
|
|
254
284
|
detailed?: boolean;
|
|
255
|
-
}, {
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
285
|
+
}, {
|
|
286
|
+
taskHistory: this.taskHistory,
|
|
287
|
+
activeTasks: this.activeTasks,
|
|
288
|
+
asideCount: getActiveAsideCount(),
|
|
289
|
+
asideIds: getActiveAsideIds(),
|
|
290
|
+
});
|
|
291
|
+
case 'cancel-orchestration': {
|
|
292
|
+
const cancelArgs = args as { sessionId?: string; taskId?: string; force?: boolean };
|
|
293
|
+
if (cancelArgs.force || (!cancelArgs.sessionId && !cancelArgs.taskId)) {
|
|
294
|
+
closeAllAsides();
|
|
295
|
+
} else if (cancelArgs.sessionId) {
|
|
296
|
+
const asideIds = getActiveAsideIds().filter(
|
|
297
|
+
(id) => getAsideState(id)?.sessionId === cancelArgs.sessionId,
|
|
298
|
+
);
|
|
299
|
+
for (const id of asideIds) closeAside(id);
|
|
300
|
+
}
|
|
301
|
+
return await this.statusHandler.handleCancelOrchestration(cancelArgs, {
|
|
302
|
+
taskHistory: this.taskHistory,
|
|
303
|
+
activeTasks: this.activeTasks,
|
|
304
|
+
});
|
|
305
|
+
}
|
|
264
306
|
case 'optimize-orchestration':
|
|
265
307
|
return await this.statusHandler.handleOptimizeOrchestration(args as {
|
|
266
308
|
history?: boolean;
|
|
@@ -311,26 +353,38 @@ export class OrchestratorServer {
|
|
|
311
353
|
skipApply: args.skipApply ?? false,
|
|
312
354
|
});
|
|
313
355
|
|
|
314
|
-
const
|
|
356
|
+
const aside = await spawnAside({
|
|
357
|
+
description: `Governance cycle: ${args.proposals.length} proposals`,
|
|
358
|
+
priorVerdictContext: { proposalCount: args.proposals.length },
|
|
359
|
+
});
|
|
360
|
+
|
|
361
|
+
let result: import('../../inference/inference-cycle.js').InferenceCycleResult;
|
|
362
|
+
try {
|
|
363
|
+
result = await cycle.governExternalProposals(args.proposals as any);
|
|
364
|
+
addObservations(aside.asideId, extractGovernanceObservations(result));
|
|
365
|
+
} finally {
|
|
366
|
+
closeAside(aside.asideId);
|
|
367
|
+
}
|
|
315
368
|
|
|
316
|
-
const approved = result
|
|
317
|
-
const rejected = result
|
|
369
|
+
const approved = result!.votes.filter((v) => v.decision === 'approve').length;
|
|
370
|
+
const rejected = result!.votes.length - approved;
|
|
318
371
|
|
|
319
372
|
return {
|
|
320
373
|
content: [{
|
|
321
374
|
type: 'text' as const,
|
|
322
375
|
text: JSON.stringify({
|
|
323
|
-
cycleId: result
|
|
376
|
+
cycleId: result!.cycleId,
|
|
377
|
+
asideId: aside.asideId,
|
|
324
378
|
approved,
|
|
325
379
|
rejected,
|
|
326
|
-
votes: result
|
|
327
|
-
proposals: result
|
|
380
|
+
votes: result!.votes,
|
|
381
|
+
proposals: result!.proposals.map((p) => ({
|
|
328
382
|
id: p.id,
|
|
329
383
|
title: p.title,
|
|
330
384
|
type: p.type,
|
|
331
385
|
status: p.status,
|
|
332
386
|
})),
|
|
333
|
-
duration: result
|
|
387
|
+
duration: result!.duration,
|
|
334
388
|
}, null, 2),
|
|
335
389
|
}],
|
|
336
390
|
};
|
|
@@ -360,6 +414,7 @@ export class OrchestratorServer {
|
|
|
360
414
|
* Stop the server
|
|
361
415
|
*/
|
|
362
416
|
async stop(): Promise<void> {
|
|
417
|
+
closeAllAsides();
|
|
363
418
|
await frameworkLogger.log('orchestrator.server', 'shutdown', 'info', {
|
|
364
419
|
message: '0xRay Orchestrator MCP Server shutting down',
|
|
365
420
|
});
|
|
@@ -52,6 +52,41 @@ export interface TaskValidation {
|
|
|
52
52
|
errors: string[];
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
+
export interface ActiveAside {
|
|
56
|
+
asideId: string;
|
|
57
|
+
description: string;
|
|
58
|
+
sessionId?: string;
|
|
59
|
+
parentAsideId?: string;
|
|
60
|
+
startedAt: number;
|
|
61
|
+
inheritedContext?: Record<string, unknown>;
|
|
62
|
+
priorVerdictContext?: Record<string, unknown>;
|
|
63
|
+
observations: AsideObservation[];
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface AsideObservation {
|
|
67
|
+
key: string;
|
|
68
|
+
value: string;
|
|
69
|
+
source: string;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export interface AsideContextOptions {
|
|
73
|
+
description: string;
|
|
74
|
+
inheritedContext?: Record<string, unknown>;
|
|
75
|
+
priorVerdictContext?: Record<string, unknown>;
|
|
76
|
+
sessionId?: string;
|
|
77
|
+
parentAsideId?: string;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export interface AsideResult {
|
|
81
|
+
asideId: string;
|
|
82
|
+
description: string;
|
|
83
|
+
success: boolean;
|
|
84
|
+
duration: number;
|
|
85
|
+
observations: AsideObservation[];
|
|
86
|
+
priorVerdictContext?: Record<string, unknown>;
|
|
87
|
+
error?: string;
|
|
88
|
+
}
|
|
89
|
+
|
|
55
90
|
export interface OrchestrationStatus {
|
|
56
91
|
activeSessions: number;
|
|
57
92
|
totalTasks: number;
|
|
@@ -62,6 +97,8 @@ export interface OrchestrationStatus {
|
|
|
62
97
|
tasks: number;
|
|
63
98
|
duration: number;
|
|
64
99
|
}>;
|
|
100
|
+
activeAsideCount?: number;
|
|
101
|
+
activeAsideIds?: string[];
|
|
65
102
|
}
|
|
66
103
|
|
|
67
104
|
export interface TaskExecutionContext {
|
|
@@ -4,17 +4,12 @@
|
|
|
4
4
|
* Comprehensive metrics analysis for framework integration and optimization
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
8
7
|
import { frameworkLogger, generateJobId } from "../core/framework-logger.js";
|
|
9
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
10
|
-
import {
|
|
11
|
-
CallToolRequestSchema,
|
|
12
|
-
ListToolsRequestSchema,
|
|
13
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
14
8
|
import { execSync } from "child_process";
|
|
15
9
|
import fs from "fs";
|
|
16
10
|
import os from "os";
|
|
17
11
|
import path from "path";
|
|
12
|
+
import { XrayKnowledgeSkillBase } from "./shared/knowledge-skill-base.js";
|
|
18
13
|
|
|
19
14
|
interface AnalysisMetrics {
|
|
20
15
|
runtime?: RuntimeMetrics;
|
|
@@ -57,23 +52,73 @@ interface ResourceMetrics {
|
|
|
57
52
|
recommendations: string[];
|
|
58
53
|
}
|
|
59
54
|
|
|
60
|
-
class XrayPerformanceAnalysisServer {
|
|
61
|
-
private server: Server;
|
|
55
|
+
class XrayPerformanceAnalysisServer extends XrayKnowledgeSkillBase {
|
|
62
56
|
private startTime: number;
|
|
63
57
|
|
|
64
58
|
constructor() {
|
|
65
|
-
|
|
59
|
+
super("performance-analysis", "3.1.0");
|
|
60
|
+
|
|
61
|
+
this.startTime = Date.now();
|
|
62
|
+
|
|
63
|
+
this.tools = [
|
|
66
64
|
{
|
|
67
|
-
name: "performance-analysis",
|
|
65
|
+
name: "performance-analysis",
|
|
66
|
+
description:
|
|
67
|
+
"Comprehensive metrics analysis for framework integration and optimization",
|
|
68
|
+
inputSchema: {
|
|
69
|
+
type: "object",
|
|
70
|
+
properties: {
|
|
71
|
+
scope: {
|
|
72
|
+
type: "string",
|
|
73
|
+
enum: [
|
|
74
|
+
"full",
|
|
75
|
+
"runtime",
|
|
76
|
+
"build",
|
|
77
|
+
"resources",
|
|
78
|
+
"bottlenecks",
|
|
79
|
+
],
|
|
80
|
+
default: "full",
|
|
81
|
+
description: "Scope of performance analysis",
|
|
82
|
+
},
|
|
83
|
+
duration: {
|
|
84
|
+
type: "number",
|
|
85
|
+
default: 30,
|
|
86
|
+
description: "Analysis duration in seconds",
|
|
87
|
+
},
|
|
88
|
+
detailed: {
|
|
89
|
+
type: "boolean",
|
|
90
|
+
default: false,
|
|
91
|
+
description: "Include detailed metrics and recommendations",
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
},
|
|
68
95
|
},
|
|
69
96
|
{
|
|
70
|
-
|
|
71
|
-
|
|
97
|
+
name: "bottleneck-detection",
|
|
98
|
+
description:
|
|
99
|
+
"Identify performance bottlenecks in framework operations",
|
|
100
|
+
inputSchema: {
|
|
101
|
+
type: "object",
|
|
102
|
+
properties: {
|
|
103
|
+
operation: {
|
|
104
|
+
type: "string",
|
|
105
|
+
description: "Specific operation to analyze",
|
|
106
|
+
},
|
|
107
|
+
threshold: {
|
|
108
|
+
type: "number",
|
|
109
|
+
default: 1000,
|
|
110
|
+
description: "Performance threshold in milliseconds",
|
|
111
|
+
},
|
|
112
|
+
},
|
|
72
113
|
},
|
|
73
114
|
},
|
|
74
|
-
|
|
115
|
+
];
|
|
116
|
+
|
|
117
|
+
this.handlers = {
|
|
118
|
+
"performance-analysis": async (args) => this.handlePerformanceAnalysis(args as Record<string, unknown> | undefined),
|
|
119
|
+
"bottleneck-detection": async (args) => this.handleBottleneckDetection(args as Record<string, unknown> | undefined),
|
|
120
|
+
};
|
|
75
121
|
|
|
76
|
-
this.startTime = Date.now();
|
|
77
122
|
this.setupToolHandlers();
|
|
78
123
|
frameworkLogger.log(
|
|
79
124
|
"mcp-performance-analysis",
|
|
@@ -82,81 +127,6 @@ class XrayPerformanceAnalysisServer {
|
|
|
82
127
|
);
|
|
83
128
|
}
|
|
84
129
|
|
|
85
|
-
private setupToolHandlers() {
|
|
86
|
-
// List available tools
|
|
87
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
88
|
-
return {
|
|
89
|
-
tools: [
|
|
90
|
-
{
|
|
91
|
-
name: "performance-analysis",
|
|
92
|
-
description:
|
|
93
|
-
"Comprehensive metrics analysis for framework integration and optimization",
|
|
94
|
-
inputSchema: {
|
|
95
|
-
type: "object",
|
|
96
|
-
properties: {
|
|
97
|
-
scope: {
|
|
98
|
-
type: "string",
|
|
99
|
-
enum: [
|
|
100
|
-
"full",
|
|
101
|
-
"runtime",
|
|
102
|
-
"build",
|
|
103
|
-
"resources",
|
|
104
|
-
"bottlenecks",
|
|
105
|
-
],
|
|
106
|
-
default: "full",
|
|
107
|
-
description: "Scope of performance analysis",
|
|
108
|
-
},
|
|
109
|
-
duration: {
|
|
110
|
-
type: "number",
|
|
111
|
-
default: 30,
|
|
112
|
-
description: "Analysis duration in seconds",
|
|
113
|
-
},
|
|
114
|
-
detailed: {
|
|
115
|
-
type: "boolean",
|
|
116
|
-
default: false,
|
|
117
|
-
description: "Include detailed metrics and recommendations",
|
|
118
|
-
},
|
|
119
|
-
},
|
|
120
|
-
},
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
name: "bottleneck-detection",
|
|
124
|
-
description:
|
|
125
|
-
"Identify performance bottlenecks in framework operations",
|
|
126
|
-
inputSchema: {
|
|
127
|
-
type: "object",
|
|
128
|
-
properties: {
|
|
129
|
-
operation: {
|
|
130
|
-
type: "string",
|
|
131
|
-
description: "Specific operation to analyze",
|
|
132
|
-
},
|
|
133
|
-
threshold: {
|
|
134
|
-
type: "number",
|
|
135
|
-
default: 1000,
|
|
136
|
-
description: "Performance threshold in milliseconds",
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
},
|
|
141
|
-
],
|
|
142
|
-
};
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
// Handle tool calls
|
|
146
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
147
|
-
const { name, arguments: args } = request.params;
|
|
148
|
-
|
|
149
|
-
switch (name) {
|
|
150
|
-
case "performance-analysis":
|
|
151
|
-
return await this.handlePerformanceAnalysis(args);
|
|
152
|
-
case "bottleneck-detection":
|
|
153
|
-
return await this.handleBottleneckDetection(args);
|
|
154
|
-
default:
|
|
155
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
|
|
160
130
|
private async handlePerformanceAnalysis(args: Record<string, unknown> | undefined) {
|
|
161
131
|
const scope = (args?.scope as string) || "full";
|
|
162
132
|
const duration = (args?.duration as number) || 30;
|
|
@@ -691,19 +661,6 @@ ${results.recommendations.map((r) => `• 💡 ${r}`).join("\n") || "No recommen
|
|
|
691
661
|
return report;
|
|
692
662
|
}
|
|
693
663
|
|
|
694
|
-
async run() {
|
|
695
|
-
const transport = new StdioServerTransport();
|
|
696
|
-
await this.server.connect(transport);
|
|
697
|
-
const jobId = generateJobId("mcp-performance-analysis-server");
|
|
698
|
-
await frameworkLogger.log(
|
|
699
|
-
"mcp-performance-analysis",
|
|
700
|
-
"server-started",
|
|
701
|
-
"success",
|
|
702
|
-
{},
|
|
703
|
-
undefined, // sessionId
|
|
704
|
-
jobId,
|
|
705
|
-
);
|
|
706
|
-
}
|
|
707
664
|
}
|
|
708
665
|
|
|
709
666
|
// Start the server if run directly
|
|
@@ -4,16 +4,11 @@
|
|
|
4
4
|
* Advanced processor pipeline with codex validation, compliance monitoring, and framework enforcement
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
8
|
-
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9
|
-
import {
|
|
10
|
-
CallToolRequestSchema,
|
|
11
|
-
ListToolsRequestSchema,
|
|
12
|
-
} from "@modelcontextprotocol/sdk/types.js";
|
|
13
7
|
import * as fs from "fs";
|
|
14
8
|
import { frameworkLogger } from "../core/framework-logger.js";
|
|
15
9
|
import { CodexLoader } from "../enforcement/loaders/codex-loader.js";
|
|
16
10
|
import type { RuleDefinition, RuleValidationContext } from "../enforcement/types.js";
|
|
11
|
+
import { XrayKnowledgeSkillBase } from "./shared/knowledge-skill-base.js";
|
|
17
12
|
|
|
18
13
|
interface PreProcessorArgs {
|
|
19
14
|
content: string;
|
|
@@ -88,8 +83,7 @@ interface FrameworkComplianceResult {
|
|
|
88
83
|
approved: boolean;
|
|
89
84
|
}
|
|
90
85
|
|
|
91
|
-
class XrayProcessorPipelineServer {
|
|
92
|
-
private server: Server;
|
|
86
|
+
class XrayProcessorPipelineServer extends XrayKnowledgeSkillBase {
|
|
93
87
|
private codexLoader: CodexLoader;
|
|
94
88
|
private codexRules: RuleDefinition[] = [];
|
|
95
89
|
private codexTerms: string[] = [
|
|
@@ -105,17 +99,80 @@ class XrayProcessorPipelineServer {
|
|
|
105
99
|
];
|
|
106
100
|
|
|
107
101
|
constructor() {
|
|
102
|
+
super("processor-pipeline", "3.1.0");
|
|
108
103
|
this.codexLoader = new CodexLoader();
|
|
109
|
-
|
|
104
|
+
|
|
105
|
+
this.tools = [
|
|
106
|
+
{
|
|
107
|
+
name: "execute-pre-processors",
|
|
108
|
+
description:
|
|
109
|
+
"Run pre-execution processors on content with codex validation",
|
|
110
|
+
inputSchema: {
|
|
111
|
+
type: "object",
|
|
112
|
+
properties: {
|
|
113
|
+
content: { type: "string" },
|
|
114
|
+
context: { type: "object" },
|
|
115
|
+
validateCodex: { type: "boolean", default: true },
|
|
116
|
+
strictMode: { type: "boolean", default: false },
|
|
117
|
+
},
|
|
118
|
+
required: ["content"],
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
name: "execute-post-processors",
|
|
123
|
+
description:
|
|
124
|
+
"Run post-execution processors on results with compliance monitoring",
|
|
125
|
+
inputSchema: {
|
|
126
|
+
type: "object",
|
|
127
|
+
properties: {
|
|
128
|
+
content: { type: "string" },
|
|
129
|
+
results: { type: "object" },
|
|
130
|
+
enforceCompliance: { type: "boolean", default: true },
|
|
131
|
+
auditTrail: { type: "boolean", default: true },
|
|
132
|
+
},
|
|
133
|
+
required: ["content"],
|
|
134
|
+
},
|
|
135
|
+
},
|
|
110
136
|
{
|
|
111
|
-
name: "
|
|
137
|
+
name: "codex-validation",
|
|
138
|
+
description:
|
|
139
|
+
"Validate content against Universal Development Codex terms",
|
|
140
|
+
inputSchema: {
|
|
141
|
+
type: "object",
|
|
142
|
+
properties: {
|
|
143
|
+
content: { type: "string" },
|
|
144
|
+
terms: {
|
|
145
|
+
type: "array",
|
|
146
|
+
items: { type: "string" },
|
|
147
|
+
default: ["all"],
|
|
148
|
+
},
|
|
149
|
+
strict: { type: "boolean", default: false },
|
|
150
|
+
},
|
|
151
|
+
required: ["content"],
|
|
152
|
+
},
|
|
112
153
|
},
|
|
113
154
|
{
|
|
114
|
-
|
|
115
|
-
|
|
155
|
+
name: "framework-compliance-check",
|
|
156
|
+
description:
|
|
157
|
+
"Check framework compliance and generate enforcement actions",
|
|
158
|
+
inputSchema: {
|
|
159
|
+
type: "object",
|
|
160
|
+
properties: {
|
|
161
|
+
content: { type: "string" },
|
|
162
|
+
operation: { type: "string" },
|
|
163
|
+
context: { type: "object" },
|
|
164
|
+
},
|
|
165
|
+
required: ["content", "operation"],
|
|
116
166
|
},
|
|
117
167
|
},
|
|
118
|
-
|
|
168
|
+
];
|
|
169
|
+
|
|
170
|
+
this.handlers = {
|
|
171
|
+
"execute-pre-processors": async (args) => this.handlePreProcessors(args as PreProcessorArgs),
|
|
172
|
+
"execute-post-processors": async (args) => this.handlePostProcessors(args as PostProcessorArgs),
|
|
173
|
+
"codex-validation": async (args) => this.handleCodexValidation(args as CodexValidationArgs),
|
|
174
|
+
"framework-compliance-check": async (args) => this.handleComplianceCheck(args as ComplianceCheckArgs),
|
|
175
|
+
};
|
|
119
176
|
|
|
120
177
|
this.setupToolHandlers();
|
|
121
178
|
this.loadCodexRules();
|
|
@@ -143,96 +200,6 @@ class XrayProcessorPipelineServer {
|
|
|
143
200
|
}
|
|
144
201
|
}
|
|
145
202
|
|
|
146
|
-
private setupToolHandlers() {
|
|
147
|
-
// List available tools
|
|
148
|
-
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
149
|
-
return {
|
|
150
|
-
tools: [
|
|
151
|
-
{
|
|
152
|
-
name: "execute-pre-processors",
|
|
153
|
-
description:
|
|
154
|
-
"Run pre-execution processors on content with codex validation",
|
|
155
|
-
inputSchema: {
|
|
156
|
-
type: "object",
|
|
157
|
-
properties: {
|
|
158
|
-
content: { type: "string" },
|
|
159
|
-
context: { type: "object" },
|
|
160
|
-
validateCodex: { type: "boolean", default: true },
|
|
161
|
-
strictMode: { type: "boolean", default: false },
|
|
162
|
-
},
|
|
163
|
-
required: ["content"],
|
|
164
|
-
},
|
|
165
|
-
},
|
|
166
|
-
{
|
|
167
|
-
name: "execute-post-processors",
|
|
168
|
-
description:
|
|
169
|
-
"Run post-execution processors on results with compliance monitoring",
|
|
170
|
-
inputSchema: {
|
|
171
|
-
type: "object",
|
|
172
|
-
properties: {
|
|
173
|
-
content: { type: "string" },
|
|
174
|
-
results: { type: "object" },
|
|
175
|
-
enforceCompliance: { type: "boolean", default: true },
|
|
176
|
-
auditTrail: { type: "boolean", default: true },
|
|
177
|
-
},
|
|
178
|
-
required: ["content"],
|
|
179
|
-
},
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
name: "codex-validation",
|
|
183
|
-
description:
|
|
184
|
-
"Validate content against Universal Development Codex terms",
|
|
185
|
-
inputSchema: {
|
|
186
|
-
type: "object",
|
|
187
|
-
properties: {
|
|
188
|
-
content: { type: "string" },
|
|
189
|
-
terms: {
|
|
190
|
-
type: "array",
|
|
191
|
-
items: { type: "string" },
|
|
192
|
-
default: ["all"],
|
|
193
|
-
},
|
|
194
|
-
strict: { type: "boolean", default: false },
|
|
195
|
-
},
|
|
196
|
-
required: ["content"],
|
|
197
|
-
},
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
name: "framework-compliance-check",
|
|
201
|
-
description:
|
|
202
|
-
"Check framework compliance and generate enforcement actions",
|
|
203
|
-
inputSchema: {
|
|
204
|
-
type: "object",
|
|
205
|
-
properties: {
|
|
206
|
-
content: { type: "string" },
|
|
207
|
-
operation: { type: "string" },
|
|
208
|
-
context: { type: "object" },
|
|
209
|
-
},
|
|
210
|
-
required: ["content", "operation"],
|
|
211
|
-
},
|
|
212
|
-
},
|
|
213
|
-
],
|
|
214
|
-
};
|
|
215
|
-
});
|
|
216
|
-
|
|
217
|
-
// Handle tool calls
|
|
218
|
-
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
219
|
-
const { name, arguments: args } = request.params;
|
|
220
|
-
|
|
221
|
-
switch (name) {
|
|
222
|
-
case "execute-pre-processors":
|
|
223
|
-
return await this.handlePreProcessors(args as unknown as PreProcessorArgs);
|
|
224
|
-
case "execute-post-processors":
|
|
225
|
-
return await this.handlePostProcessors(args as unknown as PostProcessorArgs);
|
|
226
|
-
case "codex-validation":
|
|
227
|
-
return await this.handleCodexValidation(args as unknown as CodexValidationArgs);
|
|
228
|
-
case "framework-compliance-check":
|
|
229
|
-
return await this.handleComplianceCheck(args as unknown as ComplianceCheckArgs);
|
|
230
|
-
default:
|
|
231
|
-
throw new Error(`Unknown tool: ${name}`);
|
|
232
|
-
}
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
|
|
236
203
|
private async handlePreProcessors(args: PreProcessorArgs) {
|
|
237
204
|
const content = args.content;
|
|
238
205
|
const context = args.context || {};
|
|
@@ -763,11 +730,6 @@ ${complianceResults.actions.map((a: string) => `• 🔧 ${a}`).join("\n") || "N
|
|
|
763
730
|
return results;
|
|
764
731
|
}
|
|
765
732
|
|
|
766
|
-
async run() {
|
|
767
|
-
const transport = new StdioServerTransport();
|
|
768
|
-
await this.server.connect(transport);
|
|
769
|
-
// Silent start - no console output
|
|
770
|
-
}
|
|
771
733
|
}
|
|
772
734
|
|
|
773
735
|
// Start the server if run directly
|