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.
- package/.opencode/codex.codex +1 -1
- package/.opencode/commands/dependency-audit.md +3 -3
- package/.opencode/enforcer-config.json +2 -2
- package/AGENTS.md +3 -2
- package/README.md +12 -11
- package/dist/AGENTS.md +3 -2
- package/dist/CHANGELOG.md +26 -0
- package/dist/README.md +12 -11
- package/dist/agents/code-reviewer.js +1 -1
- package/dist/analytics/routing-refiner.js +1 -1
- package/dist/cli/index.js +11 -1
- package/dist/cli/server.js +3 -3
- package/dist/core/activity-logger.d.ts +2 -2
- package/dist/core/activity-logger.js +4 -4
- package/dist/core/boot-orchestrator.d.ts +1 -1
- package/dist/core/boot-orchestrator.js +13 -28
- package/dist/core/bridge.mjs +3 -3
- package/dist/core/codex-formatter.js +2 -2
- package/dist/core/codex-injector.d.ts +0 -1
- package/dist/core/codex-injector.js +2 -3
- package/dist/core/config-loader.d.ts +1 -1
- package/dist/core/config-loader.js +1 -1
- package/dist/core/config-paths.d.ts +0 -2
- package/dist/core/config-paths.js +7 -8
- package/dist/core/context-loader.d.ts +1 -1
- package/dist/core/context-loader.js +1 -1
- package/dist/core/errors.d.ts +3 -0
- package/dist/core/errors.js +10 -0
- package/dist/core/features-config.js +1 -1
- package/dist/core/framework-logger.d.ts +3 -3
- package/dist/core/framework-logger.js +17 -9
- package/dist/core/index.d.ts +2 -2
- package/dist/core/index.js +4 -2
- package/dist/core/logging-config.d.ts +2 -1
- package/dist/core/logging-config.js +7 -7
- package/dist/enforcement/loaders/codex-loader.js +1 -1
- package/dist/execution/opencode-cli-invoker.js +5 -5
- package/dist/governance/governance-service.js +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/inference/inference-cycle.d.ts +1 -1
- package/dist/inference/inference-cycle.js +10 -10
- package/dist/integrations/base/Integration.js +1 -1
- package/dist/integrations/base/registry.js +19 -19
- package/dist/integrations/grok/grok-cli.js +17 -17
- package/dist/integrations/grok/hooks/pre-tool-use.js +1 -1
- package/dist/integrations/hermes-agent/bridge.mjs +1 -1
- package/dist/integrations/openclaw/api-server.d.ts +0 -1
- package/dist/integrations/openclaw/api-server.js +7 -10
- package/dist/integrations/openclaw/client.d.ts +0 -1
- package/dist/integrations/openclaw/client.js +22 -24
- package/dist/integrations/openclaw/hooks/xray-hooks.d.ts +0 -1
- package/dist/integrations/openclaw/hooks/xray-hooks.js +17 -18
- package/dist/integrations/plugins/plugin-registry.js +5 -5
- package/dist/mcps/architect-tools.server.d.ts +2 -4
- package/dist/mcps/architect-tools.server.js +112 -195
- package/dist/mcps/auto-format.server.d.ts +2 -4
- package/dist/mcps/auto-format.server.js +49 -95
- package/dist/mcps/boot-orchestrator.server.d.ts +2 -4
- package/dist/mcps/boot-orchestrator.server.js +73 -105
- package/dist/mcps/config/server-config-registry.js +3 -3
- package/dist/mcps/enforcer-tools.server.d.ts +2 -4
- package/dist/mcps/enforcer-tools.server.js +202 -285
- package/dist/mcps/estimation.server.d.ts +2 -4
- package/dist/mcps/estimation.server.js +63 -107
- package/dist/mcps/framework-compliance-audit.server.d.ts +2 -4
- package/dist/mcps/framework-compliance-audit.server.js +53 -82
- package/dist/mcps/framework-help.server.d.ts +2 -4
- package/dist/mcps/framework-help.server.js +63 -101
- package/dist/mcps/governance.server.js +2 -2
- package/dist/mcps/knowledge-skills/api-design.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/api-design.server.js +35 -67
- package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts +2 -10
- package/dist/mcps/knowledge-skills/architecture-patterns.server.js +35 -74
- package/dist/mcps/knowledge-skills/bug-triage-specialist.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +143 -162
- package/dist/mcps/knowledge-skills/code-analyzer.server.d.ts +3 -4
- package/dist/mcps/knowledge-skills/code-analyzer.server.js +20 -45
- package/dist/mcps/knowledge-skills/code-review.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/code-review.server.js +109 -143
- package/dist/mcps/knowledge-skills/content-creator.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/content-creator.server.js +205 -226
- package/dist/mcps/knowledge-skills/database-design.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/database-design.server.js +117 -151
- package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/devops-deployment.server.js +71 -160
- package/dist/mcps/knowledge-skills/git-workflow.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/git-workflow.server.js +36 -68
- package/dist/mcps/knowledge-skills/growth-strategist.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/growth-strategist.server.js +303 -324
- package/dist/mcps/knowledge-skills/log-monitor.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/log-monitor.server.js +141 -160
- package/dist/mcps/knowledge-skills/mobile-development.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/mobile-development.server.js +92 -209
- package/dist/mcps/knowledge-skills/multimodal-looker.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/multimodal-looker.server.js +123 -159
- package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts +2 -5
- package/dist/mcps/knowledge-skills/performance-optimization.server.js +155 -296
- package/dist/mcps/knowledge-skills/project-analysis.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/project-analysis.server.js +75 -226
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +63 -156
- package/dist/mcps/knowledge-skills/security-audit.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/security-audit.server.js +102 -136
- package/dist/mcps/knowledge-skills/seo-consultant.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/seo-consultant.server.js +80 -203
- package/dist/mcps/knowledge-skills/session-management.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/session-management.server.js +50 -203
- package/dist/mcps/knowledge-skills/skill-invocation.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/skill-invocation.server.js +168 -347
- package/dist/mcps/knowledge-skills/strategist.server.d.ts +2 -11
- package/dist/mcps/knowledge-skills/strategist.server.js +72 -122
- package/dist/mcps/knowledge-skills/tech-writer.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/tech-writer.server.js +87 -300
- package/dist/mcps/knowledge-skills/testing-best-practices.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/testing-best-practices.server.js +147 -182
- package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts +2 -4
- package/dist/mcps/knowledge-skills/testing-strategy.server.js +78 -153
- package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts +2 -5
- package/dist/mcps/knowledge-skills/ui-ux-design.server.js +90 -399
- package/dist/mcps/lint.server.d.ts +2 -4
- package/dist/mcps/lint.server.js +51 -92
- package/dist/mcps/mcp-client.js +2 -2
- package/dist/mcps/model-health-check.server.d.ts +2 -4
- package/dist/mcps/model-health-check.server.js +32 -60
- package/dist/mcps/performance-analysis.server.d.ts +2 -4
- package/dist/mcps/performance-analysis.server.js +57 -88
- package/dist/mcps/processor-pipeline.server.d.ts +2 -4
- package/dist/mcps/processor-pipeline.server.js +69 -100
- package/dist/mcps/registry.json +1 -1
- package/dist/mcps/researcher.server.d.ts +3 -5
- package/dist/mcps/researcher.server.js +81 -154
- package/dist/mcps/security-scan.server.d.ts +2 -4
- package/dist/mcps/security-scan.server.js +54 -96
- package/dist/mcps/shared/knowledge-skill-base.d.ts +14 -0
- package/dist/mcps/shared/knowledge-skill-base.js +45 -0
- package/dist/{security → mcps/shared}/security-scanner.js +1 -1
- package/dist/mcps/state-manager.server.d.ts +2 -4
- package/dist/mcps/state-manager.server.js +115 -160
- package/dist/orchestrator/orchestrator.d.ts +1 -1
- package/dist/orchestrator/orchestrator.js +1 -1
- package/dist/orchestrator/universal-registry-bridge.js +1 -1
- package/dist/plugin/xray-codex-injection.d.ts +1 -1
- package/dist/plugin/xray-codex-injection.js +1 -1
- package/dist/postprocessor/PostProcessor.d.ts +4 -44
- package/dist/postprocessor/PostProcessor.js +39 -553
- package/dist/postprocessor/analysis/CodeChangeAnalyzer.d.ts +11 -0
- package/dist/postprocessor/analysis/CodeChangeAnalyzer.js +50 -0
- package/dist/postprocessor/compliance/ArchitecturalComplianceChecker.d.ts +11 -0
- package/dist/postprocessor/compliance/ArchitecturalComplianceChecker.js +356 -0
- package/dist/postprocessor/config/ProcessorConfigLoader.d.ts +44 -0
- package/dist/postprocessor/config/ProcessorConfigLoader.js +21 -0
- package/dist/postprocessor/reporting/PostProcessorReporter.d.ts +19 -0
- package/dist/postprocessor/reporting/PostProcessorReporter.js +96 -0
- package/dist/postprocessor/triggers/GitHookTrigger.js +11 -11
- package/dist/processors/implementations/refactoring-logging-processor-wrapper.d.ts +32 -0
- package/dist/processors/implementations/refactoring-logging-processor-wrapper.js +95 -1
- package/dist/processors/processor-manager.js +346 -314
- package/dist/reporting/report-formatter.js +1 -1
- package/dist/security/security-hardener.d.ts +69 -2
- package/dist/security/security-hardener.js +129 -1
- package/dist/skills/registry.json +1 -1
- package/dist/state/index.d.ts +3 -5
- package/dist/state/index.js +1 -7
- package/dist/state/state-manager.d.ts +1 -1
- package/dist/state/state-manager.js +2 -3
- package/package.json +14 -10
- package/scripts/node/setup.cjs +32 -0
- package/scripts/node/universal-version-manager.js +11 -11
- package/src/mcps/architect-tools.server.ts +112 -215
- package/src/mcps/auto-format.server.ts +50 -110
- package/src/mcps/boot-orchestrator.server.ts +75 -121
- package/src/mcps/config/__tests__/server-config-registry.test.ts +21 -12
- package/src/mcps/config/server-config-registry.ts +3 -3
- package/src/mcps/enforcer-tools.server.ts +212 -310
- package/src/mcps/estimation.server.ts +62 -122
- package/src/mcps/framework-compliance-audit.server.ts +52 -97
- package/src/mcps/framework-help.server.ts +64 -114
- package/src/mcps/governance.server.ts +2 -2
- package/src/mcps/knowledge-skills/api-design.server.ts +32 -77
- package/src/mcps/knowledge-skills/architecture-patterns.server.ts +31 -87
- package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +165 -193
- package/src/mcps/knowledge-skills/code-analyzer.server.ts +20 -55
- package/src/mcps/knowledge-skills/code-review.server.ts +114 -161
- package/src/mcps/knowledge-skills/content-creator.server.ts +218 -255
- package/src/mcps/knowledge-skills/database-design.server.ts +118 -165
- package/src/mcps/knowledge-skills/devops-deployment.server.ts +67 -172
- package/src/mcps/knowledge-skills/git-workflow.server.ts +32 -77
- package/src/mcps/knowledge-skills/growth-strategist.server.ts +324 -361
- package/src/mcps/knowledge-skills/log-monitor.server.ts +160 -187
- package/src/mcps/knowledge-skills/mobile-development.server.ts +89 -223
- package/src/mcps/knowledge-skills/multimodal-looker.server.ts +128 -175
- package/src/mcps/knowledge-skills/performance-optimization.server.ts +156 -329
- package/src/mcps/knowledge-skills/project-analysis.server.ts +72 -248
- package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +59 -171
- package/src/mcps/knowledge-skills/security-audit.server.ts +104 -151
- package/src/mcps/knowledge-skills/seo-consultant.server.ts +80 -220
- package/src/mcps/knowledge-skills/session-management.server.ts +51 -232
- package/src/mcps/knowledge-skills/skill-invocation.server.ts +165 -372
- package/src/mcps/knowledge-skills/strategist.server.ts +72 -143
- package/src/mcps/knowledge-skills/tech-writer.server.ts +85 -350
- package/src/mcps/knowledge-skills/testing-best-practices.server.ts +146 -195
- package/src/mcps/knowledge-skills/testing-strategy.server.ts +75 -161
- package/src/mcps/knowledge-skills/ui-ux-design.server.ts +93 -487
- package/src/mcps/lint.server.ts +53 -107
- package/src/mcps/mcp-client.ts +2 -2
- package/src/mcps/model-health-check.server.ts +34 -71
- package/src/mcps/performance-analysis.server.ts +60 -104
- package/src/mcps/processor-pipeline.server.ts +72 -110
- package/src/mcps/registry.json +1 -1
- package/src/mcps/researcher.server.ts +88 -177
- package/src/mcps/security-scan.server.ts +55 -104
- package/src/mcps/shared/knowledge-skill-base.ts +62 -0
- package/src/mcps/shared/prompt-security-validator.ts +199 -0
- package/src/mcps/shared/security-scanner.ts +599 -0
- package/src/mcps/state-manager.server.ts +117 -175
- package/src/opencode/codex.codex +1 -1
- package/src/opencode/commands/dependency-audit.md +3 -3
- package/src/opencode/enforcer-config.json +2 -2
- package/src/skills/registry.json +1 -1
- package/xray/agents_template.md +109 -0
- package/xray/codex.json +598 -0
- package/xray/config.json +26 -0
- package/xray/features.json +132 -0
- package/xray/integrations.json +23 -0
- package/xray/routing-mappings.json +752 -0
- package/xray/workflow_state.json +28 -0
- package/dist/integrations/hermes-agent/__pycache__/__init__.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/conftest.cpython-313-pytest-9.0.2.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/schemas.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/test_plugin.cpython-313-pytest-9.0.2.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/test_plugin.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/__pycache__/tools.cpython-313.pyc +0 -0
- package/dist/integrations/hermes-agent/conftest.py +0 -14
- package/dist/integrations/hermes-agent/test_plugin.py +0 -1103
- package/dist/processors/implementations/refactoring-logging-processor.d.ts +0 -31
- package/dist/processors/implementations/refactoring-logging-processor.js +0 -96
- package/dist/processors/implementations/session-capture-processor.d.ts +0 -14
- package/dist/processors/implementations/session-capture-processor.js +0 -37
- package/dist/scripts/activate-kernel-pipeline.d.ts +0 -7
- package/dist/scripts/activate-kernel-pipeline.js +0 -101
- package/dist/security/index.d.ts +0 -13
- package/dist/security/index.js +0 -13
- package/dist/security/security-agent-coordinator.d.ts +0 -72
- package/dist/security/security-agent-coordinator.js +0 -204
- package/dist/security/security-auditor.d.ts +0 -56
- package/dist/security/security-auditor.js +0 -584
- package/dist/security/security-hardening-system.d.ts +0 -239
- package/dist/security/security-hardening-system.js +0 -727
- package/dist/security/security-orchestration-layer.d.ts +0 -119
- package/dist/security/security-orchestration-layer.js +0 -496
- /package/dist/{security → mcps/shared}/prompt-security-validator.d.ts +0 -0
- /package/dist/{security → mcps/shared}/prompt-security-validator.js +0 -0
- /package/dist/{security → mcps/shared}/security-scanner.d.ts +0 -0
|
@@ -368,17 +368,17 @@ fi
|
|
|
368
368
|
const result = await validator.validate();
|
|
369
369
|
|
|
370
370
|
if (result.warnings.length > 0) {
|
|
371
|
-
await frameworkLogger.log('
|
|
372
|
-
result.warnings.forEach(w => await frameworkLogger.log('
|
|
371
|
+
await frameworkLogger.log('git-hook-trigger', 'validation-warnings', 'info', { message: '⚠️ ' + result.warnings.length + ' warning(s) found:' });
|
|
372
|
+
result.warnings.forEach(w => await frameworkLogger.log('git-hook-trigger', 'warning-detail', 'info', { message: ' ' + w) });
|
|
373
373
|
}
|
|
374
374
|
|
|
375
375
|
if (!result.passed) {
|
|
376
|
-
await frameworkLogger.log('
|
|
377
|
-
result.errors.forEach(e => await frameworkLogger.log('
|
|
376
|
+
await frameworkLogger.log('git-hook-trigger', 'validation-errors', 'error', { message: '❌ ' + result.errors.length + ' error(s) found:' });
|
|
377
|
+
result.errors.forEach(e => await frameworkLogger.log('git-hook-trigger', 'error-detail', 'info', { message: ' ' + e) });
|
|
378
378
|
process.exit(1);
|
|
379
379
|
}
|
|
380
380
|
|
|
381
|
-
await frameworkLogger.log('
|
|
381
|
+
await frameworkLogger.log('git-hook-trigger', 'post-commit-validation-passed', 'success', { message: '✅ Post-commit: Validation passed in ' + result.duration + 'ms' });
|
|
382
382
|
} catch (error) {
|
|
383
383
|
await frameworkLogger.log('git-hook-trigger', 'post-commit-validation-failed', 'error', { error: error instanceof Error ? error.message : String(error) });
|
|
384
384
|
process.exit(1);
|
|
@@ -397,8 +397,8 @@ fi
|
|
|
397
397
|
(async () => {
|
|
398
398
|
try {
|
|
399
399
|
// Use dynamic import that works in both dev and consumer
|
|
400
|
-
const basePath = process.env.
|
|
401
|
-
const distPath = process.env.
|
|
400
|
+
const basePath = process.env.XRAY_BASE_PATH || '.';
|
|
401
|
+
const distPath = process.env.XRAY_DIST_PATH || 'dist';
|
|
402
402
|
// First archive logs (compress and rotate) before cleanup
|
|
403
403
|
const { archiveLogFiles } = await import(basePath + '/' + distPath + '/postprocessor/triggers/GitHookTrigger.js');
|
|
404
404
|
const archiveResult = await archiveLogFiles({
|
|
@@ -411,7 +411,7 @@ fi
|
|
|
411
411
|
excludePatterns: []
|
|
412
412
|
});
|
|
413
413
|
if (archiveResult.archived > 0) {
|
|
414
|
-
await frameworkLogger.log('
|
|
414
|
+
await frameworkLogger.log('git-hook-trigger', 'archived-log-files', 'info', { message: \`📦 Archived \${archiveResult.archived} log files\` });
|
|
415
415
|
}
|
|
416
416
|
|
|
417
417
|
// Then cleanup old files
|
|
@@ -457,7 +457,7 @@ fi
|
|
|
457
457
|
enabled: true
|
|
458
458
|
});
|
|
459
459
|
if (result.cleaned > 0) {
|
|
460
|
-
await frameworkLogger.log('
|
|
460
|
+
await frameworkLogger.log('git-hook-trigger', 'cleaned-old-log-files', 'info', { message: '🧹 Cleaned ' + result.cleaned + ' old log files' });
|
|
461
461
|
}
|
|
462
462
|
if (result.errors.length > 0) {
|
|
463
463
|
await frameworkLogger.log('git-hook-trigger', 'log-cleanup-errors', 'error', { errors: result.errors });
|
|
@@ -484,8 +484,8 @@ fi
|
|
|
484
484
|
node -e "
|
|
485
485
|
(async () => {
|
|
486
486
|
try {
|
|
487
|
-
const basePath = process.env.
|
|
488
|
-
const distPath = process.env.
|
|
487
|
+
const basePath = process.env.XRAY_BASE_PATH || '.';
|
|
488
|
+
const distPath = process.env.XRAY_DIST_PATH || 'dist';
|
|
489
489
|
const { HookMetricsCollector } = await import(basePath + '/' + distPath + '/postprocessor/validation/HookMetricsCollector.js');
|
|
490
490
|
const collector = new HookMetricsCollector();
|
|
491
491
|
collector.recordMetrics('post-push', \${DURATION_MS}, \${EXIT_CODE});
|
|
@@ -1,7 +1,39 @@
|
|
|
1
1
|
import { PreProcessor } from "../processor-interfaces.js";
|
|
2
2
|
import type { ProcessorContext } from "../processor-types.js";
|
|
3
|
+
interface RefactoringContext {
|
|
4
|
+
agentName: string;
|
|
5
|
+
task: {
|
|
6
|
+
id?: string;
|
|
7
|
+
description?: string;
|
|
8
|
+
operationType?: string;
|
|
9
|
+
};
|
|
10
|
+
startTime: number;
|
|
11
|
+
complexityScore?: number;
|
|
12
|
+
changes?: Array<{
|
|
13
|
+
description?: string;
|
|
14
|
+
type?: string;
|
|
15
|
+
}>;
|
|
16
|
+
files?: string[];
|
|
17
|
+
metrics?: Record<string, unknown>;
|
|
18
|
+
operationType?: string;
|
|
19
|
+
}
|
|
20
|
+
interface RefactoringLogResult {
|
|
21
|
+
logged: boolean;
|
|
22
|
+
success: boolean;
|
|
23
|
+
message: string;
|
|
24
|
+
error?: string;
|
|
25
|
+
}
|
|
26
|
+
export declare class RefactoringLoggingProcessor {
|
|
27
|
+
private logPath;
|
|
28
|
+
constructor();
|
|
29
|
+
private ensureLogDirectory;
|
|
30
|
+
execute(context: RefactoringContext): Promise<RefactoringLogResult>;
|
|
31
|
+
private createLogEntry;
|
|
32
|
+
private appendToLog;
|
|
33
|
+
}
|
|
3
34
|
export declare class RefactoringLoggingProcessorWrapper extends PreProcessor {
|
|
4
35
|
readonly name = "refactoringLogging";
|
|
5
36
|
readonly priority = 8;
|
|
6
37
|
protected run(context: ProcessorContext): Promise<Record<string, unknown>>;
|
|
7
38
|
}
|
|
39
|
+
export {};
|
|
@@ -1,11 +1,105 @@
|
|
|
1
1
|
import { PreProcessor } from "../processor-interfaces.js";
|
|
2
2
|
import { frameworkLogger } from "../../core/framework-logger.js";
|
|
3
|
+
import * as fs from "fs";
|
|
4
|
+
import * as path from "path";
|
|
5
|
+
export class RefactoringLoggingProcessor {
|
|
6
|
+
logPath;
|
|
7
|
+
constructor() {
|
|
8
|
+
this.logPath = path.join(process.cwd(), "logs", "agents", "refactoring-log.md");
|
|
9
|
+
this.ensureLogDirectory();
|
|
10
|
+
}
|
|
11
|
+
ensureLogDirectory() {
|
|
12
|
+
const logDir = path.dirname(this.logPath);
|
|
13
|
+
if (!fs.existsSync(logDir)) {
|
|
14
|
+
fs.mkdirSync(logDir, { recursive: true });
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
async execute(context) {
|
|
18
|
+
try {
|
|
19
|
+
if (context.agentName &&
|
|
20
|
+
context.task &&
|
|
21
|
+
typeof context.startTime === "number") {
|
|
22
|
+
const logEntry = this.createLogEntry(context);
|
|
23
|
+
await this.appendToLog(logEntry);
|
|
24
|
+
return {
|
|
25
|
+
logged: true,
|
|
26
|
+
success: true,
|
|
27
|
+
message: "Agent refactoring completion logged successfully",
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
logged: false,
|
|
32
|
+
success: true,
|
|
33
|
+
message: "Not an agent task completion context",
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
38
|
+
await frameworkLogger.log("refactoring-logging-processor", "-refactoring-logging-failed-error-instanceof-error-", "error", { message: `Refactoring logging failed: ${errorMessage}` });
|
|
39
|
+
return {
|
|
40
|
+
logged: false,
|
|
41
|
+
success: false,
|
|
42
|
+
message: `Refactoring logging failed: ${errorMessage}`,
|
|
43
|
+
error: errorMessage,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
createLogEntry(context) {
|
|
48
|
+
const timestamp = new Date().toISOString();
|
|
49
|
+
const duration = Date.now() - context.startTime;
|
|
50
|
+
let logEntry = `## Refactoring Operation - ${timestamp}\n\n`;
|
|
51
|
+
logEntry += `**Agent:** ${context.agentName}\n`;
|
|
52
|
+
logEntry += `**Task:** ${context.task.description || context.task.id || "Unknown"}\n`;
|
|
53
|
+
logEntry += `**Duration:** ${duration}ms\n`;
|
|
54
|
+
logEntry += `**Operation Type:** ${context.task.operationType || context.operationType || "refactor"}\n`;
|
|
55
|
+
if (context.complexityScore) {
|
|
56
|
+
logEntry += `**Complexity Score:** ${context.complexityScore}\n`;
|
|
57
|
+
}
|
|
58
|
+
if (context.changes && Array.isArray(context.changes)) {
|
|
59
|
+
logEntry += `\n**Changes Made:**\n`;
|
|
60
|
+
context.changes.forEach((change, index) => {
|
|
61
|
+
logEntry += `${index + 1}. ${change.description || change.type || "Unknown change"}\n`;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
if (context.files && Array.isArray(context.files)) {
|
|
65
|
+
logEntry += `\n**Files Modified:**\n`;
|
|
66
|
+
context.files.forEach((file) => {
|
|
67
|
+
logEntry += `- ${file}\n`;
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (context.metrics) {
|
|
71
|
+
logEntry += `\n**Metrics:**\n`;
|
|
72
|
+
Object.entries(context.metrics).forEach(([key, value]) => {
|
|
73
|
+
logEntry += `- ${key}: ${value}\n`;
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
logEntry += `\n---\n\n`;
|
|
77
|
+
return logEntry;
|
|
78
|
+
}
|
|
79
|
+
async appendToLog(entry) {
|
|
80
|
+
try {
|
|
81
|
+
if (!fs.existsSync(this.logPath)) {
|
|
82
|
+
let header = `# 0xRay Framework Refactoring Log\n\n`;
|
|
83
|
+
header += `This log tracks all refactoring operations performed by 0xRay agents.\n\n`;
|
|
84
|
+
header += `Generated on: ${new Date().toISOString()}\n\n`;
|
|
85
|
+
header += `---\n\n`;
|
|
86
|
+
fs.writeFileSync(this.logPath, header, "utf8");
|
|
87
|
+
}
|
|
88
|
+
fs.appendFileSync(this.logPath, entry, "utf8");
|
|
89
|
+
await frameworkLogger.log("refactoring-logging-processor", "-refactoring-operation-logged-successfully-", "info", { message: "Refactoring operation logged successfully" });
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
93
|
+
await frameworkLogger.log("refactoring-logging-processor", "-failed-to-append-to-refactoring-log-error-instanceof-", "error", { message: `Failed to append to refactoring log: ${errorMessage}` });
|
|
94
|
+
throw error;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
3
98
|
export class RefactoringLoggingProcessorWrapper extends PreProcessor {
|
|
4
99
|
name = "refactoringLogging";
|
|
5
100
|
priority = 8;
|
|
6
101
|
async run(context) {
|
|
7
102
|
try {
|
|
8
|
-
const { RefactoringLoggingProcessor } = await import("./refactoring-logging-processor.js");
|
|
9
103
|
const processor = new RefactoringLoggingProcessor();
|
|
10
104
|
if (context.agentName &&
|
|
11
105
|
context.task &&
|