0xray 2.0.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/agents/api-design.yml +31 -0
- package/.opencode/agents/architect.yml +15 -0
- package/.opencode/agents/architecture-patterns.yml +14 -0
- package/.opencode/agents/auto-format.yml +14 -0
- package/.opencode/agents/backend-engineer.yml +12 -0
- package/.opencode/agents/boot-orchestrator.yml +14 -0
- package/.opencode/agents/bug-triage-specialist.yml +15 -0
- package/.opencode/agents/code-analyzer.yml +12 -0
- package/.opencode/agents/code-reviewer.yml +14 -0
- package/.opencode/agents/content-creator.yml +12 -0
- package/.opencode/agents/database-engineer.yml +12 -0
- package/.opencode/agents/devops-engineer.yml +12 -0
- package/.opencode/agents/framework-compliance-audit.yml +14 -0
- package/.opencode/agents/frontend-engineer.yml +12 -0
- package/.opencode/agents/frontend-ui-ux-engineer.yml +12 -0
- package/.opencode/agents/git-workflow.yml +15 -0
- package/.opencode/agents/growth-strategist.yml +12 -0
- package/.opencode/agents/hermes-agent.yml +12 -0
- package/.opencode/agents/inference-improve.yml +12 -0
- package/.opencode/agents/lint.yml +14 -0
- package/.opencode/agents/log-monitor.yml +12 -0
- package/.opencode/agents/mobile-developer.yml +12 -0
- package/.opencode/agents/model-health-check.yml +12 -0
- package/.opencode/agents/multimodal-looker.yml +12 -0
- package/.opencode/agents/performance-analysis.yml +12 -0
- package/.opencode/agents/performance-engineer.yml +12 -0
- package/.opencode/agents/performance-optimization.yml +12 -0
- package/.opencode/agents/processor-pipeline.yml +14 -0
- package/.opencode/agents/project-analysis.yml +12 -0
- package/.opencode/agents/refactorer.yml +12 -0
- package/.opencode/agents/researcher.yml +12 -0
- package/.opencode/agents/security-auditor.yml +12 -0
- package/.opencode/agents/security-scan.yml +12 -0
- package/.opencode/agents/seo-consultant.yml +12 -0
- package/.opencode/agents/session-management.yml +12 -0
- package/.opencode/agents/state-manager.yml +12 -0
- package/.opencode/agents/storyteller.yml +12 -0
- package/.opencode/agents/strategist.yml +12 -0
- package/.opencode/agents/tech-writer.yml +12 -0
- package/.opencode/agents/testing-best-practices.yml +12 -0
- package/.opencode/agents/testing-lead.yml +12 -0
- package/.opencode/agents/ui-ux-design.yml +12 -0
- package/.opencode/codex.codex +8 -0
- package/.opencode/commands/auto-format.md +99 -0
- package/.opencode/commands/auto-summary-capture.md +90 -0
- package/.opencode/commands/dependency-audit.md +184 -0
- package/.opencode/commands/enforcer-daily-scan.md +137 -0
- package/.opencode/commands/framework-compliance-audit.md +205 -0
- package/.opencode/commands/interactive-validator.md +75 -0
- package/.opencode/commands/job-summary-logger.md +68 -0
- package/.opencode/commands/lint.md +11 -0
- package/.opencode/commands/mode-switch.md +95 -0
- package/.opencode/commands/model-health-check.md +186 -0
- package/.opencode/commands/performance-analysis.md +144 -0
- package/.opencode/commands/pre-commit-introspection.md +185 -0
- package/.opencode/commands/pre-commit-introspection.sh +133 -0
- package/.opencode/commands/security-scan.md +157 -0
- package/.opencode/commands/sisyphus-validation.md +128 -0
- package/.opencode/commands/summary-logger.md +83 -0
- package/.opencode/enforcer-config.json +285 -0
- package/.opencode/hooks/hook-metrics.json +380 -0
- package/.opencode/hooks/post-commit +114 -0
- package/.opencode/hooks/post-push +34 -0
- package/.opencode/init.sh +151 -0
- package/.opencode/skills/api-design/SKILL.md +37 -0
- package/.opencode/skills/architect-tools/SKILL.md +37 -0
- package/.opencode/skills/architecture-patterns/SKILL.md +37 -0
- package/.opencode/skills/auto-format/SKILL.md +37 -0
- package/.opencode/skills/backend-engineer/SKILL.md +49 -0
- package/.opencode/skills/boot-orchestrator/SKILL.md +37 -0
- package/.opencode/skills/bug-triage/SKILL.md +43 -0
- package/.opencode/skills/code-analyzer/SKILL.md +45 -0
- package/.opencode/skills/code-review/SKILL.md +52 -0
- package/.opencode/skills/content-creator/SKILL.md +38 -0
- package/.opencode/skills/database-engineer/SKILL.md +46 -0
- package/.opencode/skills/devops-engineer/SKILL.md +49 -0
- package/.opencode/skills/enforcer/SKILL.md +37 -0
- package/.opencode/skills/framework-compliance-audit/SKILL.md +37 -0
- package/.opencode/skills/frontend-engineer/SKILL.md +49 -0
- package/.opencode/skills/frontend-ui-ux-engineer/SKILL.md +41 -0
- package/.opencode/skills/git-workflow/SKILL.md +37 -0
- package/.opencode/skills/growth-strategist/SKILL.md +48 -0
- package/.opencode/skills/hermes-agent/SKILL.md +212 -0
- package/.opencode/skills/inference-improve/SKILL.md +97 -0
- package/.opencode/skills/lint/SKILL.md +37 -0
- package/.opencode/skills/log-monitor/SKILL.md +44 -0
- package/.opencode/skills/mobile-developer/SKILL.md +42 -0
- package/.opencode/skills/model-health-check/SKILL.md +37 -0
- package/.opencode/skills/multimodal-looker/SKILL.md +45 -0
- package/.opencode/skills/orchestrator/SKILL.md +37 -0
- package/.opencode/skills/performance-analysis/SKILL.md +37 -0
- package/.opencode/skills/performance-engineer/SKILL.md +41 -0
- package/.opencode/skills/performance-optimization/SKILL.md +37 -0
- package/.opencode/skills/processor-pipeline/SKILL.md +37 -0
- package/.opencode/skills/project-analysis/SKILL.md +42 -0
- package/.opencode/skills/refactoring-strategies/SKILL.md +37 -0
- package/.opencode/skills/registry.json +66 -0
- package/.opencode/skills/researcher/SKILL.md +37 -0
- package/.opencode/skills/security-audit/SKILL.md +47 -0
- package/.opencode/skills/security-scan/SKILL.md +37 -0
- package/.opencode/skills/seo-consultant/SKILL.md +43 -0
- package/.opencode/skills/session-management/SKILL.md +36 -0
- package/.opencode/skills/state-manager/SKILL.md +37 -0
- package/.opencode/skills/storyteller/SKILL.md +130 -0
- package/.opencode/skills/strategist/SKILL.md +32 -0
- package/.opencode/skills/tech-writer/SKILL.md +37 -0
- package/.opencode/skills/testing-best-practices/SKILL.md +37 -0
- package/.opencode/skills/testing-strategy/SKILL.md +43 -0
- package/.opencode/skills/ui-ux-design/SKILL.md +603 -0
- package/.opencode/workflows/post-deployment-audit.yml +123 -0
- package/AGENTS.md +110 -0
- package/LICENSE +21 -0
- package/README.md +131 -0
- package/dist/AGENTS.md +110 -0
- package/dist/CHANGELOG.md +2182 -0
- package/dist/LICENSE +21 -0
- package/dist/README.md +131 -0
- package/dist/agents/architect.js +56 -0
- package/dist/agents/backend-engineer.js +81 -0
- package/dist/agents/bug-triage-specialist.js +74 -0
- package/dist/agents/code-analyzer.js +150 -0
- package/dist/agents/code-reviewer.js +69 -0
- package/dist/agents/content-creator.js +72 -0
- package/dist/agents/database-engineer.js +76 -0
- package/dist/agents/devops-engineer.js +84 -0
- package/dist/agents/frontend-engineer.js +78 -0
- package/dist/agents/frontend-ui-ux-engineer.js +64 -0
- package/dist/agents/growth-strategist.js +111 -0
- package/dist/agents/index.js +45 -0
- package/dist/agents/librarian-agents-updater.js +333 -0
- package/dist/agents/log-monitor.js +109 -0
- package/dist/agents/mobile-developer.js +102 -0
- package/dist/agents/multimodal-looker.js +93 -0
- package/dist/agents/performance-engineer.js +86 -0
- package/dist/agents/refactorer.js +80 -0
- package/dist/agents/registry.js +340 -0
- package/dist/agents/researcher.js +83 -0
- package/dist/agents/security-auditor.js +158 -0
- package/dist/agents/seo-consultant.js +53 -0
- package/dist/agents/strategist.js +47 -0
- package/dist/agents/tech-writer.js +84 -0
- package/dist/agents/testing-lead.js +95 -0
- package/dist/agents/types.js +1 -0
- package/dist/analytics/consent-manager.js +258 -0
- package/dist/analytics/emerging-pattern-detector.js +260 -0
- package/dist/analytics/pattern-learning-engine.js +278 -0
- package/dist/analytics/pattern-performance-tracker.js +336 -0
- package/dist/analytics/predictive-analytics.js +248 -0
- package/dist/analytics/prompt-pattern-analyzer.js +371 -0
- package/dist/analytics/routing-performance-analyzer.js +356 -0
- package/dist/analytics/routing-refiner.js +380 -0
- package/dist/analytics/simple-pattern-analyzer.js +297 -0
- package/dist/architect/architect-tools.js +437 -0
- package/dist/architect/architectural-integrity.js +78 -0
- package/dist/benchmark/performance-benchmark.js +372 -0
- package/dist/cli/commands/analytics-disable.js +72 -0
- package/dist/cli/commands/analytics-enable-action.js +82 -0
- package/dist/cli/commands/analytics-preview.js +106 -0
- package/dist/cli/commands/analytics-status.js +68 -0
- package/dist/cli/commands/antigravity-status.js +106 -0
- package/dist/cli/commands/archive-logs.js +161 -0
- package/dist/cli/commands/credible-init.js +82 -0
- package/dist/cli/commands/grok-install.js +16 -0
- package/dist/cli/commands/hermes-install.js +66 -0
- package/dist/cli/commands/mcp-install.js +253 -0
- package/dist/cli/commands/openclaw-install.js +44 -0
- package/dist/cli/commands/opencode-install.js +99 -0
- package/dist/cli/commands/plugin-commands.js +246 -0
- package/dist/cli/commands/publish-agent.js +184 -0
- package/dist/cli/commands/security-audit.js +219 -0
- package/dist/cli/commands/skill-install.js +481 -0
- package/dist/cli/commands/status.js +196 -0
- package/dist/cli/commands/storyteller.js +230 -0
- package/dist/cli/index.js +986 -0
- package/dist/cli/server.js +147 -0
- package/dist/config/default-agents.js +16 -0
- package/dist/core/activity-logger.js +260 -0
- package/dist/core/adaptive-kernel.js +192 -0
- package/dist/core/agent-spawn-gate.js +120 -0
- package/dist/core/boot-orchestrator.js +812 -0
- package/dist/core/bridge.mjs +945 -0
- package/dist/core/codex-formatter.js +220 -0
- package/dist/core/codex-injector.js +424 -0
- package/dist/core/config-loader.js +148 -0
- package/dist/core/config-paths.js +162 -0
- package/dist/core/context-loader.js +269 -0
- package/dist/core/context-validator.js +212 -0
- package/dist/core/features-config.js +457 -0
- package/dist/core/framework-logger.js +275 -0
- package/dist/core/index.js +6 -0
- package/dist/core/kernel-patterns.js +302 -0
- package/dist/core/logging-config.js +43 -0
- package/dist/core/model-router.js +175 -0
- package/dist/core/orchestrator.js +408 -0
- package/dist/core/system-prompt-generator.js +265 -0
- package/dist/core/trace-context.js +33 -0
- package/dist/core/xray-activation.js +134 -0
- package/dist/delegation/agent-delegator.js +769 -0
- package/dist/delegation/agent-expertise.js +156 -0
- package/dist/delegation/analytics/index.js +12 -0
- package/dist/delegation/analytics/learning-engine.js +277 -0
- package/dist/delegation/analytics/outcome-tracker.js +279 -0
- package/dist/delegation/analytics/routing-analytics.js +193 -0
- package/dist/delegation/ast-code-parser.js +878 -0
- package/dist/delegation/codebase-context-analyzer.js +1040 -0
- package/dist/delegation/complexity-analyzer.js +282 -0
- package/dist/delegation/complexity-core.js +219 -0
- package/dist/delegation/config/types.js +6 -0
- package/dist/delegation/dependency-graph-builder.js +409 -0
- package/dist/delegation/index.js +20 -0
- package/dist/delegation/metrics-aggregator.js +335 -0
- package/dist/delegation/session-coordinator.js +352 -0
- package/dist/delegation/strategy-selector.js +108 -0
- package/dist/delegation/voting-coordinator.js +375 -0
- package/dist/delegation/voting-types.js +10 -0
- package/dist/delegation/weighted-voting-aggregator.js +194 -0
- package/dist/enforcement/core/index.js +19 -0
- package/dist/enforcement/core/rule-executor.js +365 -0
- package/dist/enforcement/core/rule-hierarchy.js +259 -0
- package/dist/enforcement/core/rule-registry.js +240 -0
- package/dist/enforcement/core/violation-fixer.js +651 -0
- package/dist/enforcement/enforcer-tools.js +909 -0
- package/dist/enforcement/index.js +41 -0
- package/dist/enforcement/loaders/agent-triage-loader.js +222 -0
- package/dist/enforcement/loaders/agents-md-validation-loader.js +252 -0
- package/dist/enforcement/loaders/base-loader.js +86 -0
- package/dist/enforcement/loaders/codex-loader.js +396 -0
- package/dist/enforcement/loaders/index.js +40 -0
- package/dist/enforcement/loaders/loader-orchestrator.js +168 -0
- package/dist/enforcement/loaders/processor-loader.js +113 -0
- package/dist/enforcement/rule-enforcer.js +298 -0
- package/dist/enforcement/test-auto-healing.js +325 -0
- package/dist/enforcement/types.js +30 -0
- package/dist/enforcement/validators/architecture-validators.js +600 -0
- package/dist/enforcement/validators/base-validator.js +108 -0
- package/dist/enforcement/validators/code-quality-validators.js +336 -0
- package/dist/enforcement/validators/index.js +21 -0
- package/dist/enforcement/validators/security-validators.js +220 -0
- package/dist/enforcement/validators/testing-validators.js +253 -0
- package/dist/enforcement/validators/validator-registry.js +150 -0
- package/dist/execution/opencode-cli-invoker.js +173 -0
- package/dist/execution/proposal-applier.js +254 -0
- package/dist/governance/codex-policy.service.js +167 -0
- package/dist/governance/governance-core.js +152 -0
- package/dist/governance/governance-service.js +274 -0
- package/dist/governance/governance-types.js +6 -0
- package/dist/index.js +24 -0
- package/dist/inference/deploy-verifier.js +161 -0
- package/dist/inference/index.js +5 -0
- package/dist/inference/inference-accumulator.js +126 -0
- package/dist/inference/inference-cycle.js +1168 -0
- package/dist/inference/semantic-patterns.js +310 -0
- package/dist/inference/session-capture.js +308 -0
- package/dist/integrations/base/ExampleIntegration.js +181 -0
- package/dist/integrations/base/Integration.js +395 -0
- package/dist/integrations/base/README.md +446 -0
- package/dist/integrations/base/index.js +16 -0
- package/dist/integrations/base/registry.js +606 -0
- package/dist/integrations/base/types.js +118 -0
- package/dist/integrations/governance/governance-client.js +316 -0
- package/dist/integrations/governance/index.js +373 -0
- package/dist/integrations/governance/types.js +97 -0
- package/dist/integrations/grok/grok-cli.js +83 -0
- package/dist/integrations/grok/hooks/pre-tool-use.js +134 -0
- package/dist/integrations/grok/plugin/0xray/.mcp.json +15 -0
- package/dist/integrations/grok/plugin/0xray/hooks/hooks.json +30 -0
- package/dist/integrations/hermes-agent/__init__.py +718 -0
- package/dist/integrations/hermes-agent/after-install.md +71 -0
- package/dist/integrations/hermes-agent/bridge.mjs +861 -0
- package/dist/integrations/hermes-agent/conftest.py +14 -0
- package/dist/integrations/hermes-agent/plugin.yaml +12 -0
- package/dist/integrations/hermes-agent/schemas.py +100 -0
- package/dist/integrations/hermes-agent/test_plugin.py +1100 -0
- package/dist/integrations/hermes-agent/tools.py +253 -0
- package/dist/integrations/openclaw/README.md +134 -0
- package/dist/integrations/openclaw/api-server.js +389 -0
- package/dist/integrations/openclaw/client.js +492 -0
- package/dist/integrations/openclaw/config.js +374 -0
- package/dist/integrations/openclaw/hooks/strray-hooks.js +280 -0
- package/dist/integrations/openclaw/index.js +351 -0
- package/dist/integrations/openclaw/types.js +153 -0
- package/dist/integrations/plugins/index.js +10 -0
- package/dist/integrations/plugins/plugin-integration.js +606 -0
- package/dist/integrations/plugins/plugin-registry.js +580 -0
- package/dist/mcps/agent-resolver.js +106 -0
- package/dist/mcps/architect-tools.server.js +277 -0
- package/dist/mcps/auto-format.server.js +413 -0
- package/dist/mcps/boot-orchestrator.server.js +853 -0
- package/dist/mcps/config/config-loader.js +103 -0
- package/dist/mcps/config/config-validator.js +101 -0
- package/dist/mcps/config/index.js +30 -0
- package/dist/mcps/config/plugin-server-registry.js +223 -0
- package/dist/mcps/config/server-config-registry.js +348 -0
- package/dist/mcps/connection/connection-manager.js +79 -0
- package/dist/mcps/connection/connection-pool.js +164 -0
- package/dist/mcps/connection/mcp-connection.js +233 -0
- package/dist/mcps/connection/process-spawner.js +34 -0
- package/dist/mcps/enforcer-tools.server.js +778 -0
- package/dist/mcps/estimation.server.js +192 -0
- package/dist/mcps/framework-compliance-audit.server.js +500 -0
- package/dist/mcps/framework-help.server.js +400 -0
- package/dist/mcps/governance.server.js +464 -0
- package/dist/mcps/in-process-skill-registry.js +48 -0
- package/dist/mcps/knowledge-skills/api-design.server.js +123 -0
- package/dist/mcps/knowledge-skills/architecture-patterns.server.js +113 -0
- package/dist/mcps/knowledge-skills/bug-triage-specialist.server.js +474 -0
- package/dist/mcps/knowledge-skills/code-analyzer.server.js +605 -0
- package/dist/mcps/knowledge-skills/code-review.server.js +847 -0
- package/dist/mcps/knowledge-skills/content-creator.server.js +256 -0
- package/dist/mcps/knowledge-skills/database-design.server.js +822 -0
- package/dist/mcps/knowledge-skills/devops-deployment.server.js +1180 -0
- package/dist/mcps/knowledge-skills/git-workflow.server.js +115 -0
- package/dist/mcps/knowledge-skills/growth-strategist.server.js +361 -0
- package/dist/mcps/knowledge-skills/log-monitor.server.js +451 -0
- package/dist/mcps/knowledge-skills/mobile-development.server.js +525 -0
- package/dist/mcps/knowledge-skills/multimodal-looker.server.js +1063 -0
- package/dist/mcps/knowledge-skills/performance-optimization.server.js +1587 -0
- package/dist/mcps/knowledge-skills/project-analysis.server.js +811 -0
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +796 -0
- package/dist/mcps/knowledge-skills/security-audit.server.js +846 -0
- package/dist/mcps/knowledge-skills/seo-consultant.server.js +937 -0
- package/dist/mcps/knowledge-skills/session-management.server.js +470 -0
- package/dist/mcps/knowledge-skills/skill-invocation.server.js +729 -0
- package/dist/mcps/knowledge-skills/strategist.server.js +217 -0
- package/dist/mcps/knowledge-skills/tech-writer.server.js +1191 -0
- package/dist/mcps/knowledge-skills/testing-best-practices.server.js +866 -0
- package/dist/mcps/knowledge-skills/testing-strategy.server.js +827 -0
- package/dist/mcps/knowledge-skills/ui-ux-design.server.js +1538 -0
- package/dist/mcps/lint.server.js +381 -0
- package/dist/mcps/mcp-client.js +574 -0
- package/dist/mcps/model-health-check.server.js +228 -0
- package/dist/mcps/orchestrator/config/agent-capabilities.js +87 -0
- package/dist/mcps/orchestrator/execution/execution-planner.js +279 -0
- package/dist/mcps/orchestrator/handlers/complexity-handler.js +94 -0
- package/dist/mcps/orchestrator/handlers/status-handler.js +232 -0
- package/dist/mcps/orchestrator/handlers/task-handler.js +197 -0
- package/dist/mcps/orchestrator/server.js +305 -0
- package/dist/mcps/orchestrator/types.js +6 -0
- package/dist/mcps/orchestrator.server.js +19 -0
- package/dist/mcps/performance-analysis.server.js +519 -0
- package/dist/mcps/processor-pipeline.server.js +561 -0
- package/dist/mcps/protocol/protocol-constants.js +46 -0
- package/dist/mcps/registry.json +110 -0
- package/dist/mcps/researcher.server.js +504 -0
- package/dist/mcps/security-scan.server.js +531 -0
- package/dist/mcps/simulation/index.js +12 -0
- package/dist/mcps/simulation/server-simulations.js +219 -0
- package/dist/mcps/simulation/simulation-engine.js +96 -0
- package/dist/mcps/state-manager.server.js +637 -0
- package/dist/mcps/tools/index.js +14 -0
- package/dist/mcps/tools/tool-cache.js +112 -0
- package/dist/mcps/tools/tool-discovery.js +65 -0
- package/dist/mcps/tools/tool-executor.js +75 -0
- package/dist/mcps/tools/tool-registry.js +67 -0
- package/dist/mcps/types/index.js +15 -0
- package/dist/mcps/types/json-rpc.types.js +7 -0
- package/dist/mcps/types/mcp.types.js +7 -0
- package/dist/metrics/agent-metrics.js +574 -0
- package/dist/metrics/index.js +6 -0
- package/dist/monitoring/advanced-profiler.js +232 -0
- package/dist/monitoring/memory-monitor.js +315 -0
- package/dist/monitoring/nudge-watchdog.js +356 -0
- package/dist/monitoring/test-auto-generation-monitor.js +157 -0
- package/dist/orchestrator/agent-spawn-governor.js +559 -0
- package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +399 -0
- package/dist/orchestrator/intelligent-commit-batcher.js +353 -0
- package/dist/orchestrator/multi-agent-orchestration-coordinator.js +456 -0
- package/dist/orchestrator/orchestrator.js +657 -0
- package/dist/orchestrator/self-direction-activation.js +245 -0
- package/dist/orchestrator/universal-librarian-consultation.js +216 -0
- package/dist/orchestrator/universal-registry-bridge.js +247 -0
- package/dist/performance/performance-budget-enforcer.js +434 -0
- package/dist/performance/performance-regression-tester.js +342 -0
- package/dist/plugin/xray-codex-injection.js +857 -0
- package/dist/postprocessor/PostProcessor.js +1048 -0
- package/dist/postprocessor/analysis/FailureAnalysisEngine.js +245 -0
- package/dist/postprocessor/autofix/AutoFixEngine.js +254 -0
- package/dist/postprocessor/autofix/FixValidator.js +56 -0
- package/dist/postprocessor/config.js +65 -0
- package/dist/postprocessor/escalation/EscalationEngine.js +492 -0
- package/dist/postprocessor/monitoring/MonitoringEngine.js +125 -0
- package/dist/postprocessor/redeploy/RedeployCoordinator.js +342 -0
- package/dist/postprocessor/services/RegressionAnalysisService.js +131 -0
- package/dist/postprocessor/success/SuccessHandler.js +134 -0
- package/dist/postprocessor/triggers/APITrigger.js +115 -0
- package/dist/postprocessor/triggers/GitHookTrigger.js +551 -0
- package/dist/postprocessor/triggers/WebhookTrigger.js +211 -0
- package/dist/postprocessor/types.js +4 -0
- package/dist/processors/doc-write-guard.js +46 -0
- package/dist/processors/implementations/agents-md-validation-processor.js +286 -0
- package/dist/processors/implementations/async-pattern-processor.js +158 -0
- package/dist/processors/implementations/codex-compliance-processor.js +57 -0
- package/dist/processors/implementations/commit-batcher-processor.js +71 -0
- package/dist/processors/implementations/console-log-guard-processor.js +163 -0
- package/dist/processors/implementations/coverage-analysis-processor.js +138 -0
- package/dist/processors/implementations/error-boundary-processor.js +44 -0
- package/dist/processors/implementations/inference-improvement-processor.js +270 -0
- package/dist/processors/implementations/log-protection-processor.js +118 -0
- package/dist/processors/implementations/nudge-processor.js +130 -0
- package/dist/processors/implementations/performance-budget-processor.js +217 -0
- package/dist/processors/implementations/postprocessor-chain-validator.js +149 -0
- package/dist/processors/implementations/pre-validate-processor.js +18 -0
- package/dist/processors/implementations/publish-preflight-processor.js +249 -0
- package/dist/processors/implementations/refactoring-logging-processor-wrapper.js +33 -0
- package/dist/processors/implementations/refactoring-logging-processor.js +96 -0
- package/dist/processors/implementations/regression-testing-processor.js +59 -0
- package/dist/processors/implementations/session-capture-processor.js +37 -0
- package/dist/processors/implementations/session-summary-processor.js +130 -0
- package/dist/processors/implementations/spawn-governance-processor.js +219 -0
- package/dist/processors/implementations/state-validation-processor.js +15 -0
- package/dist/processors/implementations/storytelling-trigger-processor.js +589 -0
- package/dist/processors/implementations/test-auto-creation-processor.js +484 -0
- package/dist/processors/implementations/test-execution-processor.js +132 -0
- package/dist/processors/implementations/typescript-compilation-processor.js +87 -0
- package/dist/processors/implementations/version-compliance-processor.js +350 -0
- package/dist/processors/processor-interfaces.js +126 -0
- package/dist/processors/processor-manager.js +826 -0
- package/dist/processors/processor-types.js +12 -0
- package/dist/public/about.html +228 -0
- package/dist/public/enterprise.html +27 -0
- package/dist/public/features.html +102 -0
- package/dist/public/index.html +145 -0
- package/dist/reporting/framework-reporting-system.js +187 -0
- package/dist/reporting/log-parser.js +281 -0
- package/dist/reporting/metrics.js +202 -0
- package/dist/reporting/report-formatter.js +146 -0
- package/dist/reporting/types.js +1 -0
- package/dist/scripts/activate-kernel-pipeline.js +101 -0
- package/dist/scripts/integration.js +234 -0
- package/dist/scripts/pre-command +26 -0
- package/dist/scripts/pre-command.mjs +358 -0
- package/dist/security/comprehensive-security-audit.js +1005 -0
- package/dist/security/index.js +13 -0
- package/dist/security/prompt-security-validator.js +148 -0
- package/dist/security/security-agent-coordinator.js +204 -0
- package/dist/security/security-auditor.js +584 -0
- package/dist/security/security-hardener.js +170 -0
- package/dist/security/security-hardening-system.js +727 -0
- package/dist/security/security-headers.js +118 -0
- package/dist/security/security-orchestration-layer.js +496 -0
- package/dist/security/security-scanner.js +429 -0
- package/dist/services/inference-tuner.js +301 -0
- package/dist/session/index.js +3 -0
- package/dist/session/session-cleanup-manager.js +366 -0
- package/dist/session/session-monitor.js +503 -0
- package/dist/session/session-state-manager.js +522 -0
- package/dist/skills/api-design/SKILL.md +37 -0
- package/dist/skills/architect-tools/SKILL.md +37 -0
- package/dist/skills/architecture-patterns/SKILL.md +37 -0
- package/dist/skills/auto-format/SKILL.md +37 -0
- package/dist/skills/backend-engineer/SKILL.md +49 -0
- package/dist/skills/boot-orchestrator/SKILL.md +37 -0
- package/dist/skills/bug-triage/SKILL.md +43 -0
- package/dist/skills/code-analyzer/SKILL.md +45 -0
- package/dist/skills/code-review/SKILL.md +52 -0
- package/dist/skills/content-creator/SKILL.md +38 -0
- package/dist/skills/database-engineer/SKILL.md +46 -0
- package/dist/skills/devops-engineer/SKILL.md +49 -0
- package/dist/skills/enforcer/SKILL.md +37 -0
- package/dist/skills/framework-compliance-audit/SKILL.md +37 -0
- package/dist/skills/frontend-engineer/SKILL.md +49 -0
- package/dist/skills/frontend-ui-ux-engineer/SKILL.md +41 -0
- package/dist/skills/git-workflow/SKILL.md +37 -0
- package/dist/skills/growth-strategist/SKILL.md +48 -0
- package/dist/skills/hermes-agent/SKILL.md +212 -0
- package/dist/skills/inference-improve/SKILL.md +97 -0
- package/dist/skills/lint/SKILL.md +37 -0
- package/dist/skills/log-monitor/SKILL.md +44 -0
- package/dist/skills/mobile-developer/SKILL.md +42 -0
- package/dist/skills/model-health-check/SKILL.md +37 -0
- package/dist/skills/multimodal-looker/SKILL.md +45 -0
- package/dist/skills/orchestrator/SKILL.md +37 -0
- package/dist/skills/performance-analysis/SKILL.md +37 -0
- package/dist/skills/performance-engineer/SKILL.md +41 -0
- package/dist/skills/performance-optimization/SKILL.md +37 -0
- package/dist/skills/processor-pipeline/SKILL.md +37 -0
- package/dist/skills/project-analysis/SKILL.md +42 -0
- package/dist/skills/refactoring-strategies/SKILL.md +37 -0
- package/dist/skills/registry.json +66 -0
- package/dist/skills/researcher/SKILL.md +37 -0
- package/dist/skills/security-audit/SKILL.md +48 -0
- package/dist/skills/security-scan/SKILL.md +37 -0
- package/dist/skills/seo-consultant/SKILL.md +43 -0
- package/dist/skills/session-management/SKILL.md +36 -0
- package/dist/skills/state-manager/SKILL.md +37 -0
- package/dist/skills/storyteller/SKILL.md +130 -0
- package/dist/skills/strategist/SKILL.md +32 -0
- package/dist/skills/tech-writer/SKILL.md +37 -0
- package/dist/skills/testing-best-practices/SKILL.md +37 -0
- package/dist/skills/testing-strategy/SKILL.md +43 -0
- package/dist/skills/ui-ux-design/SKILL.md +603 -0
- package/dist/state/context-providers.js +1 -0
- package/dist/state/index.js +7 -0
- package/dist/state/state-manager.js +208 -0
- package/dist/state/state-types.js +1 -0
- package/dist/testing/memory-regression-suite.js +258 -0
- package/dist/utils/batch-operations.js +292 -0
- package/dist/utils/codex-parser.js +445 -0
- package/dist/utils/command-runner.js +96 -0
- package/dist/utils/import-resolver.js +189 -0
- package/dist/utils/language-detector.js +383 -0
- package/dist/utils/path-resolver.js +112 -0
- package/dist/utils/shutdown-handler.js +75 -0
- package/dist/utils/test-template-generator.js +178 -0
- package/dist/utils/token-manager.js +163 -0
- package/dist/validation/estimation-validator.js +241 -0
- package/dist/validation/report-content-validator.js +218 -0
- package/opencode.json +153 -0
- package/package.json +170 -0
- package/scripts/helpers/resolve-config-path.cjs +57 -0
- package/scripts/helpers/resolve-config-path.mjs +73 -0
- package/scripts/hooks/pre-command +26 -0
- package/scripts/hooks/pre-command.mjs +358 -0
- package/scripts/hooks/run-hook.js +570 -0
- package/scripts/mjs/test-consumer-readiness.mjs +273 -0
- package/scripts/mjs/test-mcp-functionality.mjs +507 -0
- package/scripts/mjs/validate-mcp-connectivity.cjs +75 -0
- package/scripts/mjs/validate-postinstall-config.mjs +308 -0
- package/scripts/node/auto-reflection-generator.mjs +496 -0
- package/scripts/node/basic-security-audit.cjs +338 -0
- package/scripts/node/ci-cd-auto-fix.cjs +263 -0
- package/scripts/node/ci-report-generator.mjs +227 -0
- package/scripts/node/enforce-agents-md.mjs +420 -0
- package/scripts/node/enforce-version-compliance.sh +22 -0
- package/scripts/node/enforce-version-compliance.ts +126 -0
- package/scripts/node/github-actions-monitor.cjs +23 -0
- package/scripts/node/govern-reflection.mjs +160 -0
- package/scripts/node/postinstall.cjs +78 -0
- package/scripts/node/pre-publish-guard.js +267 -0
- package/scripts/node/prepare-consumer.cjs +143 -0
- package/scripts/node/reflection-processor.cjs +213 -0
- package/scripts/node/reflection-validate.sh +194 -0
- package/scripts/node/release-tweet.mjs +39 -0
- package/scripts/node/release.js +159 -0
- package/scripts/node/release.mjs +213 -0
- package/scripts/node/setup-dev.cjs +83 -0
- package/scripts/node/setup.cjs +214 -0
- package/scripts/node/sync-versions.mjs +140 -0
- package/scripts/node/universal-version-manager.js +1025 -0
- package/scripts/node/validate-external-processes.js +265 -0
- package/scripts/node/validate-mcp-connectivity.js +258 -0
- package/scripts/node/version-manager.mjs +524 -0
- package/scripts/validate-stringray-comprehensive.js +636 -0
- package/src/integrations/grok/plugin/0xray/.mcp.json +15 -0
- package/src/integrations/grok/plugin/0xray/hooks/hooks.json +30 -0
- package/src/mcps/agent-resolver.ts +168 -0
- package/src/mcps/architect-tools.server.ts +343 -0
- package/src/mcps/auto-format.server.ts +529 -0
- package/src/mcps/boot-orchestrator.server.ts +1082 -0
- package/src/mcps/config/__tests__/config-loader.test.ts +338 -0
- package/src/mcps/config/__tests__/config-validator.test.ts +646 -0
- package/src/mcps/config/__tests__/server-config-registry.test.ts +257 -0
- package/src/mcps/config/config-loader.ts +127 -0
- package/src/mcps/config/config-validator.ts +127 -0
- package/src/mcps/config/index.ts +32 -0
- package/src/mcps/config/plugin-server-registry.ts +335 -0
- package/src/mcps/config/server-config-registry.ts +395 -0
- package/src/mcps/connection/connection-manager.ts +91 -0
- package/src/mcps/connection/connection-pool.ts +216 -0
- package/src/mcps/connection/mcp-connection.ts +327 -0
- package/src/mcps/connection/process-spawner.ts +47 -0
- package/src/mcps/enforcer-tools.server.ts +1106 -0
- package/src/mcps/estimation.server.ts +229 -0
- package/src/mcps/framework-compliance-audit.server.ts +635 -0
- package/src/mcps/framework-help.server.ts +467 -0
- package/src/mcps/governance.server.ts +551 -0
- package/src/mcps/in-process-skill-registry.ts +79 -0
- package/src/mcps/knowledge-skills/api-design.server.test.ts +41 -0
- package/src/mcps/knowledge-skills/api-design.server.ts +160 -0
- package/src/mcps/knowledge-skills/architecture-patterns.server.ts +152 -0
- package/src/mcps/knowledge-skills/bug-triage-specialist.server.ts +624 -0
- package/src/mcps/knowledge-skills/code-analyzer.server.test.ts +129 -0
- package/src/mcps/knowledge-skills/code-analyzer.server.ts +591 -0
- package/src/mcps/knowledge-skills/code-review.server.ts +1132 -0
- package/src/mcps/knowledge-skills/content-creator.server.ts +300 -0
- package/src/mcps/knowledge-skills/database-design.server.ts +1200 -0
- package/src/mcps/knowledge-skills/devops-deployment.server.ts +1622 -0
- package/src/mcps/knowledge-skills/git-workflow.server.ts +152 -0
- package/src/mcps/knowledge-skills/growth-strategist.server.ts +413 -0
- package/src/mcps/knowledge-skills/log-monitor.server.ts +619 -0
- package/src/mcps/knowledge-skills/mobile-development.server.ts +672 -0
- package/src/mcps/knowledge-skills/multimodal-looker.server.ts +1500 -0
- package/src/mcps/knowledge-skills/performance-optimization.server.ts +2065 -0
- package/src/mcps/knowledge-skills/project-analysis.server.ts +1111 -0
- package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +1092 -0
- package/src/mcps/knowledge-skills/security-audit.server.test.ts +112 -0
- package/src/mcps/knowledge-skills/security-audit.server.ts +1193 -0
- package/src/mcps/knowledge-skills/seo-consultant.server.ts +1160 -0
- package/src/mcps/knowledge-skills/session-management.server.ts +576 -0
- package/src/mcps/knowledge-skills/skill-invocation.server.ts +941 -0
- package/src/mcps/knowledge-skills/strategist.server.ts +267 -0
- package/src/mcps/knowledge-skills/tech-writer.server.ts +1638 -0
- package/src/mcps/knowledge-skills/testing-best-practices.server.test.ts +136 -0
- package/src/mcps/knowledge-skills/testing-best-practices.server.ts +1232 -0
- package/src/mcps/knowledge-skills/testing-strategy.server.test.ts +100 -0
- package/src/mcps/knowledge-skills/testing-strategy.server.ts +1172 -0
- package/src/mcps/knowledge-skills/ui-ux-design.server.ts +2076 -0
- package/src/mcps/lint.server.ts +483 -0
- package/src/mcps/mcp-client.ts +706 -0
- package/src/mcps/model-health-check.server.ts +292 -0
- package/src/mcps/orchestrator/config/agent-capabilities.ts +108 -0
- package/src/mcps/orchestrator/execution/execution-planner.ts +353 -0
- package/src/mcps/orchestrator/handlers/complexity-handler.ts +125 -0
- package/src/mcps/orchestrator/handlers/status-handler.ts +295 -0
- package/src/mcps/orchestrator/handlers/task-handler.ts +268 -0
- package/src/mcps/orchestrator/server.ts +388 -0
- package/src/mcps/orchestrator/types.ts +81 -0
- package/src/mcps/orchestrator.server.ts +34 -0
- package/src/mcps/performance-analysis.server.ts +715 -0
- package/src/mcps/processor-pipeline.server.ts +778 -0
- package/src/mcps/protocol/protocol-constants.ts +51 -0
- package/src/mcps/registry.json +110 -0
- package/src/mcps/researcher.server.ts +595 -0
- package/src/mcps/security-scan.server.ts +651 -0
- package/src/mcps/simulation/__tests__/simulation-engine.test.ts +275 -0
- package/src/mcps/simulation/index.ts +23 -0
- package/src/mcps/simulation/server-simulations.ts +241 -0
- package/src/mcps/simulation/simulation-engine.ts +126 -0
- package/src/mcps/state-manager.server.ts +777 -0
- package/src/mcps/tools/__tests__/tool-cache.test.ts +205 -0
- package/src/mcps/tools/__tests__/tool-discovery.test.ts +189 -0
- package/src/mcps/tools/__tests__/tool-executor.test.ts +215 -0
- package/src/mcps/tools/__tests__/tool-registry.test.ts +230 -0
- package/src/mcps/tools/index.ts +15 -0
- package/src/mcps/tools/tool-cache.ts +145 -0
- package/src/mcps/tools/tool-discovery.ts +83 -0
- package/src/mcps/tools/tool-executor.ts +106 -0
- package/src/mcps/tools/tool-registry.ts +78 -0
- package/src/mcps/types/__tests__/types.test.ts +341 -0
- package/src/mcps/types/index.ts +17 -0
- package/src/mcps/types/json-rpc.types.ts +38 -0
- package/src/mcps/types/mcp.types.ts +115 -0
- package/src/opencode/agents/api-design.yml +31 -0
- package/src/opencode/agents/architect.yml +15 -0
- package/src/opencode/agents/architecture-patterns.yml +14 -0
- package/src/opencode/agents/auto-format.yml +14 -0
- package/src/opencode/agents/backend-engineer.yml +12 -0
- package/src/opencode/agents/boot-orchestrator.yml +14 -0
- package/src/opencode/agents/bug-triage-specialist.yml +15 -0
- package/src/opencode/agents/code-analyzer.yml +12 -0
- package/src/opencode/agents/code-reviewer.yml +14 -0
- package/src/opencode/agents/content-creator.yml +12 -0
- package/src/opencode/agents/database-engineer.yml +12 -0
- package/src/opencode/agents/devops-engineer.yml +12 -0
- package/src/opencode/agents/framework-compliance-audit.yml +14 -0
- package/src/opencode/agents/frontend-engineer.yml +12 -0
- package/src/opencode/agents/frontend-ui-ux-engineer.yml +12 -0
- package/src/opencode/agents/git-workflow.yml +15 -0
- package/src/opencode/agents/growth-strategist.yml +12 -0
- package/src/opencode/agents/hermes-agent.yml +12 -0
- package/src/opencode/agents/inference-improve.yml +12 -0
- package/src/opencode/agents/lint.yml +14 -0
- package/src/opencode/agents/log-monitor.yml +12 -0
- package/src/opencode/agents/mobile-developer.yml +12 -0
- package/src/opencode/agents/model-health-check.yml +12 -0
- package/src/opencode/agents/multimodal-looker.yml +12 -0
- package/src/opencode/agents/performance-analysis.yml +12 -0
- package/src/opencode/agents/performance-engineer.yml +12 -0
- package/src/opencode/agents/performance-optimization.yml +12 -0
- package/src/opencode/agents/processor-pipeline.yml +14 -0
- package/src/opencode/agents/project-analysis.yml +12 -0
- package/src/opencode/agents/refactorer.yml +12 -0
- package/src/opencode/agents/researcher.yml +12 -0
- package/src/opencode/agents/security-auditor.yml +12 -0
- package/src/opencode/agents/security-scan.yml +12 -0
- package/src/opencode/agents/seo-consultant.yml +12 -0
- package/src/opencode/agents/session-management.yml +12 -0
- package/src/opencode/agents/state-manager.yml +12 -0
- package/src/opencode/agents/storyteller.yml +12 -0
- package/src/opencode/agents/strategist.yml +12 -0
- package/src/opencode/agents/tech-writer.yml +12 -0
- package/src/opencode/agents/testing-best-practices.yml +12 -0
- package/src/opencode/agents/testing-lead.yml +12 -0
- package/src/opencode/agents/ui-ux-design.yml +12 -0
- package/src/opencode/codex.codex +8 -0
- package/src/opencode/commands/auto-format.md +99 -0
- package/src/opencode/commands/auto-summary-capture.md +90 -0
- package/src/opencode/commands/dependency-audit.md +184 -0
- package/src/opencode/commands/enforcer-daily-scan.md +137 -0
- package/src/opencode/commands/framework-compliance-audit.md +205 -0
- package/src/opencode/commands/interactive-validator.md +75 -0
- package/src/opencode/commands/job-summary-logger.md +68 -0
- package/src/opencode/commands/lint.md +11 -0
- package/src/opencode/commands/mode-switch.md +95 -0
- package/src/opencode/commands/model-health-check.md +186 -0
- package/src/opencode/commands/performance-analysis.md +144 -0
- package/src/opencode/commands/pre-commit-introspection.md +185 -0
- package/src/opencode/commands/pre-commit-introspection.sh +133 -0
- package/src/opencode/commands/security-scan.md +157 -0
- package/src/opencode/commands/sisyphus-validation.md +128 -0
- package/src/opencode/commands/summary-logger.md +83 -0
- package/src/opencode/enforcer-config.json +285 -0
- package/src/opencode/openclaw/config.json +25 -0
- package/src/opencode/workflows/post-deployment-audit.yml +123 -0
- package/src/skills/api-design/SKILL.md +37 -0
- package/src/skills/architect-tools/SKILL.md +37 -0
- package/src/skills/architecture-patterns/SKILL.md +37 -0
- package/src/skills/auto-format/SKILL.md +37 -0
- package/src/skills/backend-engineer/SKILL.md +49 -0
- package/src/skills/boot-orchestrator/SKILL.md +37 -0
- package/src/skills/bug-triage/SKILL.md +43 -0
- package/src/skills/code-analyzer/SKILL.md +45 -0
- package/src/skills/code-review/SKILL.md +52 -0
- package/src/skills/content-creator/SKILL.md +38 -0
- package/src/skills/database-engineer/SKILL.md +46 -0
- package/src/skills/devops-engineer/SKILL.md +49 -0
- package/src/skills/enforcer/SKILL.md +37 -0
- package/src/skills/framework-compliance-audit/SKILL.md +37 -0
- package/src/skills/frontend-engineer/SKILL.md +49 -0
- package/src/skills/frontend-ui-ux-engineer/SKILL.md +41 -0
- package/src/skills/git-workflow/SKILL.md +37 -0
- package/src/skills/growth-strategist/SKILL.md +48 -0
- package/src/skills/hermes-agent/SKILL.md +212 -0
- package/src/skills/inference-improve/SKILL.md +97 -0
- package/src/skills/lint/SKILL.md +37 -0
- package/src/skills/log-monitor/SKILL.md +44 -0
- package/src/skills/mobile-developer/SKILL.md +42 -0
- package/src/skills/model-health-check/SKILL.md +37 -0
- package/src/skills/multimodal-looker/SKILL.md +45 -0
- package/src/skills/orchestrator/SKILL.md +37 -0
- package/src/skills/performance-analysis/SKILL.md +37 -0
- package/src/skills/performance-engineer/SKILL.md +41 -0
- package/src/skills/performance-optimization/SKILL.md +37 -0
- package/src/skills/processor-pipeline/SKILL.md +37 -0
- package/src/skills/project-analysis/SKILL.md +42 -0
- package/src/skills/refactoring-strategies/SKILL.md +37 -0
- package/src/skills/registry.json +66 -0
- package/src/skills/researcher/SKILL.md +37 -0
- package/src/skills/security-audit/SKILL.md +48 -0
- package/src/skills/security-scan/SKILL.md +37 -0
- package/src/skills/seo-consultant/SKILL.md +43 -0
- package/src/skills/session-management/SKILL.md +36 -0
- package/src/skills/state-manager/SKILL.md +37 -0
- package/src/skills/storyteller/SKILL.md +130 -0
- package/src/skills/strategist/SKILL.md +32 -0
- package/src/skills/tech-writer/SKILL.md +37 -0
- package/src/skills/testing-best-practices/SKILL.md +37 -0
- package/src/skills/testing-strategy/SKILL.md +43 -0
- package/src/skills/ui-ux-design/SKILL.md +603 -0
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Redeploy Coordinator for Post-Processor
|
|
3
|
+
*/
|
|
4
|
+
import { frameworkLogger } from "../../core/framework-logger.js";
|
|
5
|
+
import { execSync } from "child_process";
|
|
6
|
+
export class RedeployCoordinator {
|
|
7
|
+
config;
|
|
8
|
+
constructor(config = {}) {
|
|
9
|
+
this.config = {
|
|
10
|
+
maxRetries: 3,
|
|
11
|
+
retryDelay: 30000,
|
|
12
|
+
backoffStrategy: "exponential",
|
|
13
|
+
canaryEnabled: true,
|
|
14
|
+
canaryPhases: 3,
|
|
15
|
+
canaryTrafficIncrement: 25,
|
|
16
|
+
healthCheckTimeout: 60000,
|
|
17
|
+
rollbackOnFailure: true,
|
|
18
|
+
...config,
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Execute redeployment with fixes
|
|
23
|
+
*/
|
|
24
|
+
async executeRedeploy(context, fixResult) {
|
|
25
|
+
const jobId = `redeploy-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
|
|
26
|
+
const deploymentId = `deploy-${context.commitSha}-${Date.now()}`;
|
|
27
|
+
const startTime = Date.now();
|
|
28
|
+
await frameworkLogger.log("-redeploy-coordinator", "-starting-redeployment-deploymentid-for-commit-con", "info", {
|
|
29
|
+
message: `๐ Starting redeployment ${deploymentId} for commit ${context.commitSha}`,
|
|
30
|
+
});
|
|
31
|
+
try {
|
|
32
|
+
// Pre-deployment validation
|
|
33
|
+
await this.validatePreDeployment(context, fixResult);
|
|
34
|
+
// Execute deployment with retry logic
|
|
35
|
+
const deployResult = await this.deployWithRetry(context, deploymentId, jobId);
|
|
36
|
+
// Post-deployment validation
|
|
37
|
+
const validationResult = await this.validatePostDeployment(deployResult, jobId);
|
|
38
|
+
if (validationResult.success) {
|
|
39
|
+
await frameworkLogger.log("redeploy-coordinator", "deployment-completed", "success", { jobId, deploymentId });
|
|
40
|
+
const result = {
|
|
41
|
+
success: true,
|
|
42
|
+
deploymentId,
|
|
43
|
+
commitSha: context.commitSha,
|
|
44
|
+
environment: "production", // Could be configurable
|
|
45
|
+
duration: Date.now() - startTime,
|
|
46
|
+
};
|
|
47
|
+
if (deployResult.canaryResults) {
|
|
48
|
+
result.canaryResults = deployResult.canaryResults;
|
|
49
|
+
}
|
|
50
|
+
return result;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
// Deployment validation failed - rollback if enabled
|
|
54
|
+
if (this.config.rollbackOnFailure) {
|
|
55
|
+
await frameworkLogger.log("redeploy-coordinator", "deployment-validation-failed", "error", { jobId, action: "rollback-initiated" });
|
|
56
|
+
await this.rollbackDeployment(deploymentId, context);
|
|
57
|
+
const result = {
|
|
58
|
+
success: false,
|
|
59
|
+
deploymentId,
|
|
60
|
+
commitSha: context.commitSha,
|
|
61
|
+
environment: "production",
|
|
62
|
+
duration: Date.now() - startTime,
|
|
63
|
+
error: validationResult.error || "Deployment validation failed",
|
|
64
|
+
rollbackPerformed: true,
|
|
65
|
+
};
|
|
66
|
+
return result;
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
return {
|
|
70
|
+
success: false,
|
|
71
|
+
deploymentId,
|
|
72
|
+
commitSha: context.commitSha,
|
|
73
|
+
environment: "production",
|
|
74
|
+
duration: Date.now() - startTime,
|
|
75
|
+
error: validationResult.error,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
frameworkLogger.log("RedeployCoordinator", "redeploy", "error", { error, message: `โ Redeployment ${deploymentId} failed:` });
|
|
82
|
+
return {
|
|
83
|
+
success: false,
|
|
84
|
+
deploymentId,
|
|
85
|
+
commitSha: context.commitSha,
|
|
86
|
+
environment: "production",
|
|
87
|
+
duration: Date.now() - startTime,
|
|
88
|
+
error: error instanceof Error ? error.message : String(error),
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Validate pre-deployment requirements
|
|
94
|
+
*/
|
|
95
|
+
async validatePreDeployment(context, fixResult) {
|
|
96
|
+
await frameworkLogger.log("-redeploy-coordinator", "-validating-pre-deployment-requirements-", "info", { message: "๐ Validating pre-deployment requirements..." });
|
|
97
|
+
// Ensure all fixes were successfully applied
|
|
98
|
+
if (!fixResult.success) {
|
|
99
|
+
throw new Error("Cannot redeploy: fixes were not successfully applied");
|
|
100
|
+
}
|
|
101
|
+
// Validate that the commit exists and is properly formatted
|
|
102
|
+
try {
|
|
103
|
+
execSync(`git rev-parse --verify ${context.commitSha}`, {
|
|
104
|
+
stdio: "pipe",
|
|
105
|
+
timeout: 10000,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
throw new Error(`Invalid commit SHA: ${context.commitSha}`);
|
|
110
|
+
}
|
|
111
|
+
// Check if deployment environment is available
|
|
112
|
+
// This would integrate with actual deployment infrastructure
|
|
113
|
+
await frameworkLogger.log("-redeploy-coordinator", "-pre-deployment-validation-passed-", "success", { message: "โ
Pre-deployment validation passed" });
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Execute deployment with retry logic
|
|
117
|
+
*/
|
|
118
|
+
async deployWithRetry(context, deploymentId, jobId) {
|
|
119
|
+
let attempt = 0;
|
|
120
|
+
const maxRetries = this.config.maxRetries;
|
|
121
|
+
while (attempt < maxRetries) {
|
|
122
|
+
try {
|
|
123
|
+
await frameworkLogger.log("-redeploy-coordinator", "-deployment-attempt-attempt-1-maxretries-for-deplo", "info", {
|
|
124
|
+
message: `๐ Deployment attempt ${attempt + 1}/${maxRetries} for ${deploymentId}`,
|
|
125
|
+
});
|
|
126
|
+
if (this.config.canaryEnabled) {
|
|
127
|
+
// Execute canary deployment
|
|
128
|
+
const canaryResults = await this.executeCanaryDeployment(context, deploymentId, jobId);
|
|
129
|
+
return { canaryResults };
|
|
130
|
+
}
|
|
131
|
+
else {
|
|
132
|
+
// Execute direct deployment
|
|
133
|
+
await this.executeDirectDeployment(context, deploymentId);
|
|
134
|
+
return {};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
catch (error) {
|
|
138
|
+
await frameworkLogger.log("redeploy-coordinator", "deployment-attempt-failed", "error", {
|
|
139
|
+
jobId,
|
|
140
|
+
attempt: attempt + 1,
|
|
141
|
+
error: error instanceof Error ? error.message : String(error),
|
|
142
|
+
});
|
|
143
|
+
if (attempt === maxRetries - 1) {
|
|
144
|
+
throw error; // Final attempt failed
|
|
145
|
+
}
|
|
146
|
+
// Wait before retry
|
|
147
|
+
await this.waitBeforeRetry(attempt);
|
|
148
|
+
attempt++;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
throw new Error(`Deployment failed after ${maxRetries} attempts`);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Execute canary deployment with progressive traffic rollout
|
|
155
|
+
*/
|
|
156
|
+
async executeCanaryDeployment(context, deploymentId, jobId) {
|
|
157
|
+
const results = [];
|
|
158
|
+
const phases = this.config.canaryPhases;
|
|
159
|
+
await frameworkLogger.log("-redeploy-coordinator", "-executing-canary-deployment-with-phases-phases-", "info", { message: `๐ฏ Executing canary deployment with ${phases} phases` });
|
|
160
|
+
for (let phase = 1; phase <= phases; phase++) {
|
|
161
|
+
const trafficPercentage = Math.min(phase * this.config.canaryTrafficIncrement, 100);
|
|
162
|
+
await frameworkLogger.log("-redeploy-coordinator", "-canary-phase-phase-phases-trafficpercentage-traff", "info", {
|
|
163
|
+
message: `๐ Canary Phase ${phase}/${phases}: ${trafficPercentage}% traffic`,
|
|
164
|
+
});
|
|
165
|
+
const phaseStartTime = Date.now();
|
|
166
|
+
try {
|
|
167
|
+
// Deploy to canary subset
|
|
168
|
+
await this.deployToCanary(context, deploymentId, phase, trafficPercentage);
|
|
169
|
+
// Monitor canary health
|
|
170
|
+
const metrics = await this.monitorCanaryHealth(phase, this.config.healthCheckTimeout);
|
|
171
|
+
const phaseResult = {
|
|
172
|
+
phase,
|
|
173
|
+
trafficPercentage,
|
|
174
|
+
success: this.isCanaryHealthy(metrics),
|
|
175
|
+
metrics,
|
|
176
|
+
duration: Date.now() - phaseStartTime,
|
|
177
|
+
};
|
|
178
|
+
results.push(phaseResult);
|
|
179
|
+
if (!phaseResult.success) {
|
|
180
|
+
throw new Error(`Canary phase ${phase} failed health checks`);
|
|
181
|
+
}
|
|
182
|
+
await frameworkLogger.log("-redeploy-coordinator", "-canary-phase-phase-successful-phaseresult-duratio", "success", {
|
|
183
|
+
message: `โ
Canary Phase ${phase} successful (${phaseResult.duration}ms)`,
|
|
184
|
+
});
|
|
185
|
+
// Wait between phases for observation
|
|
186
|
+
if (phase < phases) {
|
|
187
|
+
await this.waitBetweenPhases();
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
await frameworkLogger.log("redeploy-coordinator", "canary-phase-failed", "error", {
|
|
192
|
+
jobId,
|
|
193
|
+
phase,
|
|
194
|
+
error: error instanceof Error ? error.message : String(error),
|
|
195
|
+
});
|
|
196
|
+
throw error;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// All phases successful - complete deployment
|
|
200
|
+
await this.promoteToProduction(context, deploymentId);
|
|
201
|
+
await frameworkLogger.log("redeploy-coordinator", "canary-promoted", "success", { jobId, phase: "complete" });
|
|
202
|
+
return results;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Execute direct deployment (no canary)
|
|
206
|
+
*/
|
|
207
|
+
async executeDirectDeployment(context, deploymentId) {
|
|
208
|
+
await frameworkLogger.log("-redeploy-coordinator", "-executing-direct-deployment-for-deploymentid-", "info", { message: `๐ Executing direct deployment for ${deploymentId}` });
|
|
209
|
+
// For this implementation, we'll simulate deployment by pushing to trigger CI/CD
|
|
210
|
+
// In a real system, this would integrate with deployment APIs
|
|
211
|
+
// Trigger a new CI/CD run to validate the fixes
|
|
212
|
+
try {
|
|
213
|
+
execSync("git push origin master", {
|
|
214
|
+
stdio: "pipe",
|
|
215
|
+
timeout: 30000,
|
|
216
|
+
});
|
|
217
|
+
await frameworkLogger.log("-redeploy-coordinator", "-deployment-triggered-via-git-push-", "success", { message: "โ
Deployment triggered via git push" });
|
|
218
|
+
}
|
|
219
|
+
catch (error) {
|
|
220
|
+
throw new Error(`Deployment trigger failed: ${error}`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Deploy to canary environment
|
|
225
|
+
*/
|
|
226
|
+
async deployToCanary(context, deploymentId, phase, trafficPercentage) {
|
|
227
|
+
// Placeholder for canary deployment logic
|
|
228
|
+
// In a real system, this would integrate with load balancers, service meshes, etc.
|
|
229
|
+
await frameworkLogger.log("-redeploy-coordinator", "-deploying-trafficpercentage-traffic-to-canary-for", "info", {
|
|
230
|
+
message: `๐ข Deploying ${trafficPercentage}% traffic to canary for phase ${phase}`,
|
|
231
|
+
});
|
|
232
|
+
// Simulate deployment time
|
|
233
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Monitor canary health during deployment
|
|
237
|
+
*/
|
|
238
|
+
async monitorCanaryHealth(phase, timeout) {
|
|
239
|
+
await frameworkLogger.log("-redeploy-coordinator", "-monitoring-canary-health-for-phase-phase-timeout-", "info", {
|
|
240
|
+
message: `๐ Monitoring canary health for phase ${phase} (${timeout}ms timeout)`,
|
|
241
|
+
});
|
|
242
|
+
// Placeholder for health monitoring
|
|
243
|
+
// In a real system, this would check metrics from monitoring systems
|
|
244
|
+
await new Promise((resolve) => setTimeout(resolve, 3000));
|
|
245
|
+
// Simulate health metrics
|
|
246
|
+
return {
|
|
247
|
+
responseTime: 150 + Math.random() * 50, // 150-200ms
|
|
248
|
+
errorRate: Math.random() * 0.01, // 0-1%
|
|
249
|
+
throughput: 1000 + Math.random() * 500, // 1000-1500 req/s
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Check if canary metrics indicate healthy deployment
|
|
254
|
+
*/
|
|
255
|
+
isCanaryHealthy(metrics) {
|
|
256
|
+
const { responseTime, errorRate, throughput } = metrics;
|
|
257
|
+
// Define health thresholds
|
|
258
|
+
const maxResponseTime = 300; // ms
|
|
259
|
+
const maxErrorRate = 0.05; // 5%
|
|
260
|
+
const minThroughput = 800; // req/s
|
|
261
|
+
return (responseTime <= maxResponseTime &&
|
|
262
|
+
errorRate <= maxErrorRate &&
|
|
263
|
+
throughput >= minThroughput);
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Wait between canary phases
|
|
267
|
+
*/
|
|
268
|
+
async waitBetweenPhases() {
|
|
269
|
+
const waitTime = 10000; // 10 seconds
|
|
270
|
+
await frameworkLogger.log("-redeploy-coordinator", "-waiting-waittime-ms-between-canary-phases-", "info", { message: `โณ Waiting ${waitTime}ms between canary phases...` });
|
|
271
|
+
await new Promise((resolve) => setTimeout(resolve, waitTime));
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Promote canary deployment to production
|
|
275
|
+
*/
|
|
276
|
+
async promoteToProduction(context, deploymentId) {
|
|
277
|
+
await frameworkLogger.log("-redeploy-coordinator", "-promoting-canary-deployment-to-production-", "info", { message: "๐ฏ Promoting canary deployment to production" });
|
|
278
|
+
// Placeholder for production promotion
|
|
279
|
+
// In a real system, this would route 100% traffic to the new version
|
|
280
|
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Validate post-deployment health
|
|
284
|
+
*/
|
|
285
|
+
async validatePostDeployment(deployResult, jobId) {
|
|
286
|
+
await frameworkLogger.log("-redeploy-coordinator", "-validating-post-deployment-health-", "info", { message: "๐ Validating post-deployment health..." });
|
|
287
|
+
try {
|
|
288
|
+
// Run post-deployment health checks
|
|
289
|
+
// This could include API endpoint checks, database connectivity, etc.
|
|
290
|
+
// For now, simulate a basic health check
|
|
291
|
+
await new Promise((resolve) => setTimeout(resolve, 2000));
|
|
292
|
+
await frameworkLogger.log("-redeploy-coordinator", "-post-deployment-validation-passed-", "success", { message: "โ
Post-deployment validation passed" });
|
|
293
|
+
return { success: true, error: "" };
|
|
294
|
+
}
|
|
295
|
+
catch (error) {
|
|
296
|
+
await frameworkLogger.log("redeploy-coordinator", "post-deployment-validation-failed", "error", { jobId });
|
|
297
|
+
return {
|
|
298
|
+
success: false,
|
|
299
|
+
error: error instanceof Error ? error.message : String(error),
|
|
300
|
+
};
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
/**
|
|
304
|
+
* Rollback deployment on failure
|
|
305
|
+
*/
|
|
306
|
+
async rollbackDeployment(deploymentId, context) {
|
|
307
|
+
await frameworkLogger.log("-redeploy-coordinator", "-rolling-back-deployment-deploymentid-", "info", { message: `๐ Rolling back deployment ${deploymentId}` });
|
|
308
|
+
try {
|
|
309
|
+
// Placeholder for rollback logic
|
|
310
|
+
// In a real system, this would revert to the previous version
|
|
311
|
+
// For this implementation, we could revert the git commit
|
|
312
|
+
execSync("git reset --hard HEAD~1", {
|
|
313
|
+
stdio: "pipe",
|
|
314
|
+
timeout: 10000,
|
|
315
|
+
});
|
|
316
|
+
await frameworkLogger.log("-redeploy-coordinator", "-deployment-rolled-back-successfully-", "success", { message: "โ
Deployment rolled back successfully" });
|
|
317
|
+
}
|
|
318
|
+
catch (error) {
|
|
319
|
+
frameworkLogger.log("RedeployCoordinator", "rollback", "error", { error, message: "โ Rollback failed:" });
|
|
320
|
+
throw new Error(`Rollback failed: ${error}`);
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
/**
|
|
324
|
+
* Calculate wait time before retry using backoff strategy
|
|
325
|
+
*/
|
|
326
|
+
async waitBeforeRetry(attempt) {
|
|
327
|
+
const baseDelay = this.config.retryDelay;
|
|
328
|
+
let delay;
|
|
329
|
+
if (this.config.backoffStrategy === "exponential") {
|
|
330
|
+
delay = baseDelay * Math.pow(2, attempt);
|
|
331
|
+
}
|
|
332
|
+
else {
|
|
333
|
+
delay = baseDelay * (attempt + 1);
|
|
334
|
+
}
|
|
335
|
+
// Cap maximum delay at 5 minutes
|
|
336
|
+
delay = Math.min(delay, 300000);
|
|
337
|
+
await frameworkLogger.log("-redeploy-coordinator", "-waiting-delay-ms-before-retry-attempt-attempt-1-", "info", {
|
|
338
|
+
message: `โณ Waiting ${delay}ms before retry (attempt ${attempt + 1})`,
|
|
339
|
+
});
|
|
340
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
341
|
+
}
|
|
342
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Regression Analysis Service
|
|
3
|
+
*
|
|
4
|
+
* Systematically analyzes PostProcessor operations to detect regressions,
|
|
5
|
+
* AI code removal attempts, and other critical issues.
|
|
6
|
+
* Triggers multi-agent conferences when analysis is required.
|
|
7
|
+
*
|
|
8
|
+
* @version 1.0.0
|
|
9
|
+
* @since 2026-03-08
|
|
10
|
+
*/
|
|
11
|
+
import { getKernel } from '../../core/kernel-patterns.js';
|
|
12
|
+
import { createAgentDelegator } from '../../delegation/agent-delegator.js';
|
|
13
|
+
import { frameworkLogger } from '../../core/framework-logger.js';
|
|
14
|
+
import { StringRayStateManager } from '../../state/state-manager.js';
|
|
15
|
+
import { strRayConfigLoader } from '../../core/config-loader.js';
|
|
16
|
+
/**
|
|
17
|
+
* Main service for systematic regression analysis
|
|
18
|
+
*/
|
|
19
|
+
export class RegressionAnalysisService {
|
|
20
|
+
kernel = getKernel();
|
|
21
|
+
/**
|
|
22
|
+
* Determine if regression analysis is required for this context
|
|
23
|
+
*/
|
|
24
|
+
async shouldAnalyze(context) {
|
|
25
|
+
// Check kernel patterns first
|
|
26
|
+
const kernelAnalysis = this.kernel.analyze(JSON.stringify(context));
|
|
27
|
+
// Check for fatal assumptions that require analysis
|
|
28
|
+
const fatalAssumptions = kernelAnalysis.fatalAssumptions;
|
|
29
|
+
if (fatalAssumptions && fatalAssumptions.length > 0 && fatalAssumptions[0]) {
|
|
30
|
+
return {
|
|
31
|
+
required: true,
|
|
32
|
+
reason: `Fatal assumption detected: ${fatalAssumptions[0].reason}`,
|
|
33
|
+
agents: ['bug-triage-specialist', 'code-analyzer', 'code-reviewer'],
|
|
34
|
+
depth: 'comprehensive',
|
|
35
|
+
confidence: 0.95
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
// Check for cascade patterns that require analysis
|
|
39
|
+
const cascadePatterns = kernelAnalysis.cascadePatterns;
|
|
40
|
+
if (cascadePatterns && cascadePatterns.length > 0 && cascadePatterns[0]) {
|
|
41
|
+
return {
|
|
42
|
+
required: true,
|
|
43
|
+
reason: `Cascade pattern detected: ${cascadePatterns[0].pattern}`,
|
|
44
|
+
agents: ['bug-triage-specialist', 'code-analyzer', 'code-reviewer'],
|
|
45
|
+
depth: 'comprehensive',
|
|
46
|
+
confidence: 0.9
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
// Check for code removal attempts
|
|
50
|
+
if (this.isCodeRemovalAttempt(context)) {
|
|
51
|
+
return {
|
|
52
|
+
required: true,
|
|
53
|
+
reason: 'Code removal attempt detected - systematic analysis required',
|
|
54
|
+
agents: ['bug-triage-specialist', 'code-analyzer', 'code-reviewer'],
|
|
55
|
+
depth: 'comprehensive',
|
|
56
|
+
confidence: 0.95
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
// Check for AI degradation patterns
|
|
60
|
+
const pattern = kernelAnalysis.pattern;
|
|
61
|
+
if (pattern && (pattern.id === 'A10' || pattern.id === 'A15')) {
|
|
62
|
+
return {
|
|
63
|
+
required: true,
|
|
64
|
+
reason: 'AI degradation pattern detected - quality check required',
|
|
65
|
+
agents: ['bug-triage-specialist', 'code-analyzer', 'code-reviewer'],
|
|
66
|
+
depth: 'comprehensive',
|
|
67
|
+
confidence: 0.9
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
// No analysis required
|
|
71
|
+
return {
|
|
72
|
+
required: false,
|
|
73
|
+
confidence: 0.8
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Invoke regression analysis with appropriate agents
|
|
78
|
+
*/
|
|
79
|
+
async invokeAnalysis(context, decision) {
|
|
80
|
+
await frameworkLogger.log('regression-analysis-service', 'invoking-analysis', 'info', {
|
|
81
|
+
reason: decision.reason,
|
|
82
|
+
agents: decision.agents,
|
|
83
|
+
depth: decision.depth,
|
|
84
|
+
confidence: decision.confidence
|
|
85
|
+
});
|
|
86
|
+
// Create delegation request for multi-agent conference
|
|
87
|
+
const delegationRequest = {
|
|
88
|
+
operation: 'regression-analysis',
|
|
89
|
+
description: `Systematic regression analysis: ${decision.reason}`,
|
|
90
|
+
context: {
|
|
91
|
+
...context,
|
|
92
|
+
analysisDepth: decision.depth
|
|
93
|
+
},
|
|
94
|
+
conferenceType: 'regression-investigation'
|
|
95
|
+
};
|
|
96
|
+
// Create agent delegator for this operation
|
|
97
|
+
const stateManager = new StringRayStateManager();
|
|
98
|
+
const agentDelegator = createAgentDelegator(stateManager, strRayConfigLoader);
|
|
99
|
+
// Analyze delegation strategy
|
|
100
|
+
const analysis = await agentDelegator.analyzeDelegation(delegationRequest);
|
|
101
|
+
// Execute delegation
|
|
102
|
+
const result = await agentDelegator.executeDelegation(analysis, delegationRequest);
|
|
103
|
+
if (!result.success) {
|
|
104
|
+
await frameworkLogger.log('regression-analysis-service', 'analysis-failed', 'error', {
|
|
105
|
+
error: result.errors?.join(', '),
|
|
106
|
+
agents: analysis.agents
|
|
107
|
+
});
|
|
108
|
+
// If analysis fails, block the operation
|
|
109
|
+
throw new Error(`Regression analysis failed: ${result.errors?.join(', ')}`);
|
|
110
|
+
}
|
|
111
|
+
await frameworkLogger.log('regression-analysis-service', 'analysis-completed', 'success', {
|
|
112
|
+
agents: analysis.agents,
|
|
113
|
+
executionTime: result.totalTime
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Validate that no regression was introduced after operation
|
|
118
|
+
*/
|
|
119
|
+
async validateNoRegression(context) {
|
|
120
|
+
// Run regression validation tests
|
|
121
|
+
await frameworkLogger.log('regression-analysis-service', 'post-operation-validation', 'info', { context: context.operation });
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Detect if operation is attempting to remove code
|
|
125
|
+
*/
|
|
126
|
+
isCodeRemovalAttempt(context) {
|
|
127
|
+
const operation = context.operation?.toLowerCase() || '';
|
|
128
|
+
const removalKeywords = ['delete', 'remove', 'eliminate', 'strip', 'prune'];
|
|
129
|
+
return removalKeywords.some(keyword => operation.includes(keyword));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Success Handler for Post-Processor
|
|
3
|
+
*
|
|
4
|
+
* Handles successful post-processor operations including metrics collection,
|
|
5
|
+
* notifications, cleanup, and reporting.
|
|
6
|
+
*/
|
|
7
|
+
import { frameworkLogger } from "../../core/framework-logger.js";
|
|
8
|
+
export class SuccessHandler {
|
|
9
|
+
config;
|
|
10
|
+
constructor(config = {}) {
|
|
11
|
+
this.config = {
|
|
12
|
+
successConfirmation: true,
|
|
13
|
+
cleanupEnabled: true,
|
|
14
|
+
notificationEnabled: true,
|
|
15
|
+
metricsCollection: true,
|
|
16
|
+
...config,
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Handle successful post-processor completion
|
|
21
|
+
*/
|
|
22
|
+
async handleSuccess(context, result, monitoringResults) {
|
|
23
|
+
const jobId = `success-handler-${Date.now()}-${Math.random().toString(36).substring(2, 11)}`;
|
|
24
|
+
await frameworkLogger.log("success-handler", "handling successful post-processor completion", "info", { jobId, commitSha: context.commitSha, sessionId: result.sessionId });
|
|
25
|
+
// Perform success confirmation if enabled
|
|
26
|
+
if (this.config.successConfirmation) {
|
|
27
|
+
await this.confirmSuccess(context, result);
|
|
28
|
+
}
|
|
29
|
+
// Send notifications if enabled
|
|
30
|
+
if (this.config.notificationEnabled) {
|
|
31
|
+
await this.sendNotifications(context, result);
|
|
32
|
+
}
|
|
33
|
+
// Perform cleanup if enabled
|
|
34
|
+
if (this.config.cleanupEnabled) {
|
|
35
|
+
await this.performCleanup(context);
|
|
36
|
+
}
|
|
37
|
+
// Collect and log metrics if enabled
|
|
38
|
+
const metrics = this.collectMetrics(context, result, monitoringResults);
|
|
39
|
+
if (this.config.metricsCollection) {
|
|
40
|
+
await this.logMetrics(metrics);
|
|
41
|
+
}
|
|
42
|
+
await frameworkLogger.log("success-handler", "success handling completed", "success", { jobId, metrics });
|
|
43
|
+
return metrics;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Confirm deployment success
|
|
47
|
+
*/
|
|
48
|
+
async confirmSuccess(context, result) {
|
|
49
|
+
frameworkLogger.log("SuccessHandler", "confirm-success", "info", { message: "๐ Confirming deployment success..." });
|
|
50
|
+
// Simulate confirmation checks
|
|
51
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
52
|
+
frameworkLogger.log("SuccessHandler", "confirm-success", "info", { message: "โ
Deployment success confirmed" });
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Send success notifications
|
|
56
|
+
*/
|
|
57
|
+
async sendNotifications(context, result) {
|
|
58
|
+
const notification = `Deployment successful: ${context.commitSha} by ${context.author} in ${context.repository}`;
|
|
59
|
+
frameworkLogger.log("SuccessHandler", "send-notifications", "info", { message: "๐ข Success Notification:", notification });
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Perform post-success cleanup
|
|
63
|
+
*/
|
|
64
|
+
async performCleanup(context) {
|
|
65
|
+
frameworkLogger.log("SuccessHandler", "perform-cleanup", "info", { message: "๐งน Performing post-success cleanup..." });
|
|
66
|
+
// Simulate cleanup operations
|
|
67
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
68
|
+
frameworkLogger.log("SuccessHandler", "perform-cleanup", "info", { message: "โ
Cleanup completed" });
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Collect success metrics
|
|
72
|
+
*/
|
|
73
|
+
collectMetrics(context, result, monitoringResults) {
|
|
74
|
+
const totalDuration = result.duration || 0;
|
|
75
|
+
const attempts = result.attempts;
|
|
76
|
+
const fixesApplied = result.fixesApplied?.length || 0;
|
|
77
|
+
const monitoringChecks = monitoringResults.length;
|
|
78
|
+
const redeployments = Math.max(0, attempts - 1);
|
|
79
|
+
return {
|
|
80
|
+
totalDuration,
|
|
81
|
+
attempts,
|
|
82
|
+
fixesApplied,
|
|
83
|
+
monitoringChecks,
|
|
84
|
+
redeployments,
|
|
85
|
+
timestamp: new Date(),
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Log success metrics
|
|
90
|
+
*/
|
|
91
|
+
async logMetrics(metrics) {
|
|
92
|
+
frameworkLogger.log("SuccessHandler", "log-metrics", "info", { message: "๐ Success Metrics:" });
|
|
93
|
+
frameworkLogger.log("SuccessHandler", "log-metrics", "info", { message: ` Total Duration: ${metrics.totalDuration}ms` });
|
|
94
|
+
frameworkLogger.log("SuccessHandler", "log-metrics", "info", { message: ` Attempts: ${metrics.attempts}` });
|
|
95
|
+
frameworkLogger.log("SuccessHandler", "log-metrics", "info", { message: ` Fixes Applied: ${metrics.fixesApplied}` });
|
|
96
|
+
frameworkLogger.log("SuccessHandler", "log-metrics", "info", { message: ` Monitoring Checks: ${metrics.monitoringChecks}` });
|
|
97
|
+
frameworkLogger.log("SuccessHandler", "log-metrics", "info", { message: ` Redeployments: ${metrics.redeployments}` });
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Generate comprehensive success report
|
|
101
|
+
*/
|
|
102
|
+
generateSuccessReport(context, result, metrics) {
|
|
103
|
+
return `
|
|
104
|
+
Post-Processor Success Report
|
|
105
|
+
=============================
|
|
106
|
+
|
|
107
|
+
Commit: ${context.commitSha}
|
|
108
|
+
Repository: ${context.repository}
|
|
109
|
+
Branch: ${context.branch}
|
|
110
|
+
Author: ${context.author}
|
|
111
|
+
Trigger: ${context.trigger}
|
|
112
|
+
|
|
113
|
+
Results:
|
|
114
|
+
- Success: ${result.success}
|
|
115
|
+
- Session ID: ${result.sessionId}
|
|
116
|
+
- Attempts: ${metrics.attempts}
|
|
117
|
+
- Fixes Applied: ${metrics.fixesApplied}
|
|
118
|
+
- Monitoring Checks: ${metrics.monitoringChecks}
|
|
119
|
+
- Redeployments: ${metrics.redeployments}
|
|
120
|
+
- Total Duration: ${metrics.totalDuration}ms
|
|
121
|
+
|
|
122
|
+
Files Processed: ${context.files.length}
|
|
123
|
+
${context.files.map((f) => ` - ${f}`).join("\n")}
|
|
124
|
+
|
|
125
|
+
Timestamp: ${metrics.timestamp.toISOString()}
|
|
126
|
+
`.trim();
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Get current configuration stats
|
|
130
|
+
*/
|
|
131
|
+
getStats() {
|
|
132
|
+
return { ...this.config };
|
|
133
|
+
}
|
|
134
|
+
}
|