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,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Example Integration - Demonstrates using the BaseIntegration class
|
|
3
|
+
*
|
|
4
|
+
* This is a simple example showing how to create a custom integration
|
|
5
|
+
* that extends the BaseIntegration class.
|
|
6
|
+
*
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
* @since 2026-03-15
|
|
9
|
+
*/
|
|
10
|
+
import { BaseIntegration, createSimpleIntegration, } from "./index.js";
|
|
11
|
+
/**
|
|
12
|
+
* Example custom integration
|
|
13
|
+
*
|
|
14
|
+
* Demonstrates how to extend BaseIntegration with custom logic.
|
|
15
|
+
*/
|
|
16
|
+
class ExampleIntegration extends BaseIntegration {
|
|
17
|
+
/** Custom property for this integration */
|
|
18
|
+
connectionString = "";
|
|
19
|
+
connected = false;
|
|
20
|
+
/**
|
|
21
|
+
* Create a new ExampleIntegration
|
|
22
|
+
*
|
|
23
|
+
* @param config - Optional configuration
|
|
24
|
+
*/
|
|
25
|
+
constructor(config) {
|
|
26
|
+
super("example-integration", "1.0.0", {
|
|
27
|
+
enabled: true,
|
|
28
|
+
debug: false,
|
|
29
|
+
logLevel: "info",
|
|
30
|
+
...config,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Set connection string
|
|
35
|
+
*/
|
|
36
|
+
setConnectionString(connStr) {
|
|
37
|
+
this.connectionString = connStr;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Check if connected
|
|
41
|
+
*/
|
|
42
|
+
isConnected() {
|
|
43
|
+
return this.connected;
|
|
44
|
+
}
|
|
45
|
+
// ==========================================================================
|
|
46
|
+
// Protected abstract method implementations
|
|
47
|
+
// ==========================================================================
|
|
48
|
+
/**
|
|
49
|
+
* Perform integration-specific initialization
|
|
50
|
+
*/
|
|
51
|
+
async performInitialization() {
|
|
52
|
+
await this.log("info", "Starting initialization...");
|
|
53
|
+
// Simulate async initialization (e.g., connecting to a service)
|
|
54
|
+
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
55
|
+
if (this.connectionString) {
|
|
56
|
+
// Would connect to external service here
|
|
57
|
+
this.connected = true;
|
|
58
|
+
await this.log("success", "Connected to service");
|
|
59
|
+
}
|
|
60
|
+
// Emit custom event
|
|
61
|
+
this.emit("custom-initialized", { connected: this.connected });
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Perform integration-specific shutdown
|
|
65
|
+
*/
|
|
66
|
+
async performShutdown() {
|
|
67
|
+
await this.log("info", "Starting shutdown...");
|
|
68
|
+
// Simulate async cleanup
|
|
69
|
+
await new Promise((resolve) => setTimeout(resolve, 50));
|
|
70
|
+
this.connected = false;
|
|
71
|
+
await this.log("success", "Shutdown complete");
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Perform integration-specific health check
|
|
75
|
+
*/
|
|
76
|
+
async performHealthCheck() {
|
|
77
|
+
if (!this.connected) {
|
|
78
|
+
return {
|
|
79
|
+
healthy: false,
|
|
80
|
+
message: "Not connected to service",
|
|
81
|
+
details: { connectionString: !!this.connectionString },
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
// In a real integration, you might ping the service here
|
|
85
|
+
return {
|
|
86
|
+
healthy: true,
|
|
87
|
+
message: "Service connection healthy",
|
|
88
|
+
details: { connected: true },
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
// ==========================================================================
|
|
93
|
+
// Usage Examples
|
|
94
|
+
// ==========================================================================
|
|
95
|
+
/**
|
|
96
|
+
* Example 1: Using a custom integration class
|
|
97
|
+
*/
|
|
98
|
+
async function exampleCustomIntegration() {
|
|
99
|
+
console.log("\n--- Example 1: Custom Integration ---");
|
|
100
|
+
// Create integration
|
|
101
|
+
const integration = new ExampleIntegration({
|
|
102
|
+
debug: true,
|
|
103
|
+
logLevel: "debug",
|
|
104
|
+
});
|
|
105
|
+
// Set connection string
|
|
106
|
+
integration.setConnectionString("http://localhost:3000");
|
|
107
|
+
// Setup event listener
|
|
108
|
+
integration.on("initialized", (event) => {
|
|
109
|
+
console.log("Integration initialized event:", event.type);
|
|
110
|
+
});
|
|
111
|
+
// Initialize
|
|
112
|
+
await integration.initialize();
|
|
113
|
+
// Check health
|
|
114
|
+
const health = await integration.healthCheck();
|
|
115
|
+
console.log("Health check:", health);
|
|
116
|
+
// Get stats
|
|
117
|
+
const stats = integration.getStats();
|
|
118
|
+
console.log("Stats:", stats);
|
|
119
|
+
// Shutdown
|
|
120
|
+
await integration.shutdown();
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Example 2: Using createSimpleIntegration factory
|
|
124
|
+
*/
|
|
125
|
+
async function exampleSimpleIntegration() {
|
|
126
|
+
console.log("\n--- Example 2: Simple Integration ---");
|
|
127
|
+
// Create a simple integration without subclassing
|
|
128
|
+
const simple = createSimpleIntegration("simple-integration", "1.0.0",
|
|
129
|
+
// Custom health check
|
|
130
|
+
async () => ({
|
|
131
|
+
healthy: true,
|
|
132
|
+
message: "Always healthy",
|
|
133
|
+
}),
|
|
134
|
+
// Custom shutdown
|
|
135
|
+
async () => {
|
|
136
|
+
console.log("Custom cleanup performed");
|
|
137
|
+
});
|
|
138
|
+
// Initialize
|
|
139
|
+
await simple.initialize();
|
|
140
|
+
// Check health
|
|
141
|
+
const health = await simple.healthCheck();
|
|
142
|
+
console.log("Health check:", health);
|
|
143
|
+
// Shutdown
|
|
144
|
+
await simple.shutdown();
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Example 3: Error handling
|
|
148
|
+
*/
|
|
149
|
+
async function exampleErrorHandling() {
|
|
150
|
+
console.log("\n--- Example 3: Error Handling ---");
|
|
151
|
+
// Create integration that will fail to initialize
|
|
152
|
+
class FailingIntegration extends BaseIntegration {
|
|
153
|
+
constructor() {
|
|
154
|
+
super("failing-integration", "1.0.0");
|
|
155
|
+
}
|
|
156
|
+
async performInitialization() {
|
|
157
|
+
throw new Error("Connection refused");
|
|
158
|
+
}
|
|
159
|
+
async performShutdown() {
|
|
160
|
+
// Cleanup even on failure
|
|
161
|
+
}
|
|
162
|
+
async performHealthCheck() {
|
|
163
|
+
return { healthy: false, message: "Not initialized" };
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
const failing = new FailingIntegration();
|
|
167
|
+
try {
|
|
168
|
+
await failing.initialize();
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
console.log("Caught expected error:", error instanceof Error ? error.message : error);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
// Run examples if this file is executed directly
|
|
175
|
+
// (In a real project, you would import and use the classes)
|
|
176
|
+
// Export for use in other modules
|
|
177
|
+
export { ExampleIntegration };
|
|
178
|
+
// Example usage (uncomment to run):
|
|
179
|
+
// exampleCustomIntegration().catch(console.error);
|
|
180
|
+
// exampleSimpleIntegration().catch(console.error);
|
|
181
|
+
// exampleErrorHandling().catch(console.error);
|
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base Integration Class
|
|
3
|
+
*
|
|
4
|
+
* Abstract base class providing common lifecycle management, event emission,
|
|
5
|
+
* configuration handling, and logging for all 0xRay integrations.
|
|
6
|
+
*
|
|
7
|
+
* @version 1.0.0
|
|
8
|
+
* @since 2026-03-15
|
|
9
|
+
*/
|
|
10
|
+
import { EventEmitter } from "events";
|
|
11
|
+
import { frameworkLogger, generateJobId, } from "../../core/framework-logger.js";
|
|
12
|
+
import { DEFAULT_INTEGRATION_CONFIG, createIntegrationStats, createUnhealthyResult, IntegrationNotInitializedError, IntegrationAlreadyInitializedError, IntegrationInitializationError, } from "./types.js";
|
|
13
|
+
/**
|
|
14
|
+
* Abstract base class for all 0xRay integrations
|
|
15
|
+
*
|
|
16
|
+
* Provides:
|
|
17
|
+
* - Lifecycle management (initialize/shutdown)
|
|
18
|
+
* - Configuration handling with defaults
|
|
19
|
+
* - Event emission for integration events
|
|
20
|
+
* - Common statistics tracking (uptime, errors)
|
|
21
|
+
* - Logging integration with framework logger
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* class MyIntegration extends BaseIntegration {
|
|
26
|
+
* constructor() {
|
|
27
|
+
* super('my-integration', '1.0.0');
|
|
28
|
+
* }
|
|
29
|
+
*
|
|
30
|
+
* protected async performInitialization(): Promise<void> {
|
|
31
|
+
* // Custom initialization logic
|
|
32
|
+
* }
|
|
33
|
+
*
|
|
34
|
+
* protected async performShutdown(): Promise<void> {
|
|
35
|
+
* // Custom cleanup logic
|
|
36
|
+
* }
|
|
37
|
+
*
|
|
38
|
+
* protected async performHealthCheck(): Promise<HealthResult> {
|
|
39
|
+
* return { healthy: true, message: 'OK' };
|
|
40
|
+
* }
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
export class BaseIntegration extends EventEmitter {
|
|
45
|
+
/** Unique name of the integration */
|
|
46
|
+
name;
|
|
47
|
+
/** Version of the integration */
|
|
48
|
+
version;
|
|
49
|
+
/** Current lifecycle status */
|
|
50
|
+
_status = "uninitialized";
|
|
51
|
+
/** Current configuration */
|
|
52
|
+
config;
|
|
53
|
+
/** Statistics tracking */
|
|
54
|
+
stats;
|
|
55
|
+
/** Start time for uptime calculation */
|
|
56
|
+
startTime = 0;
|
|
57
|
+
/** Job ID for current operation */
|
|
58
|
+
jobId;
|
|
59
|
+
/**
|
|
60
|
+
* Create a new base integration
|
|
61
|
+
*
|
|
62
|
+
* @param name - Unique name for this integration
|
|
63
|
+
* @param version - Version string
|
|
64
|
+
* @param initialConfig - Optional initial configuration
|
|
65
|
+
*/
|
|
66
|
+
constructor(name, version, initialConfig) {
|
|
67
|
+
super();
|
|
68
|
+
this.name = name;
|
|
69
|
+
this.version = version;
|
|
70
|
+
this.config = { ...DEFAULT_INTEGRATION_CONFIG, ...initialConfig };
|
|
71
|
+
this.stats = createIntegrationStats();
|
|
72
|
+
this.jobId = generateJobId(`integration-${name}`);
|
|
73
|
+
}
|
|
74
|
+
// ==========================================================================
|
|
75
|
+
// IIntegration Implementation
|
|
76
|
+
// ==========================================================================
|
|
77
|
+
/**
|
|
78
|
+
* Get current integration status (readonly accessor)
|
|
79
|
+
*/
|
|
80
|
+
get status() {
|
|
81
|
+
return this._status;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Initialize the integration
|
|
85
|
+
*
|
|
86
|
+
* Calls performInitialization() after setting up the base state.
|
|
87
|
+
* Handles errors and emits appropriate events.
|
|
88
|
+
*
|
|
89
|
+
* @param config - Optional partial configuration to merge
|
|
90
|
+
*/
|
|
91
|
+
async initialize(config) {
|
|
92
|
+
// Validate not already initialized
|
|
93
|
+
if (this._status === "initialized" || this._status === "initializing") {
|
|
94
|
+
throw new IntegrationAlreadyInitializedError(this.name);
|
|
95
|
+
}
|
|
96
|
+
// Merge configuration
|
|
97
|
+
if (config) {
|
|
98
|
+
this.config = { ...this.config, ...config };
|
|
99
|
+
}
|
|
100
|
+
// Generate new job ID for initialization
|
|
101
|
+
this.jobId = generateJobId(`integration-${this.name}`);
|
|
102
|
+
// Update status
|
|
103
|
+
this._status = "initializing";
|
|
104
|
+
this.emitEvent("initializing", { config: this.config });
|
|
105
|
+
await this.log("info", `Initializing ${this.name} v${this.version}`);
|
|
106
|
+
try {
|
|
107
|
+
// Call subclass initialization
|
|
108
|
+
await this.performInitialization();
|
|
109
|
+
// Update status and stats
|
|
110
|
+
this._status = "initialized";
|
|
111
|
+
this.startTime = Date.now();
|
|
112
|
+
this.stats = createIntegrationStats();
|
|
113
|
+
this.emitEvent("initialized", { version: this.version });
|
|
114
|
+
await this.log("success", `${this.name} initialized successfully`);
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
this._status = "error";
|
|
118
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
119
|
+
await this.log("error", `Failed to initialize ${this.name}: ${errorMessage}`);
|
|
120
|
+
this.emitEvent("error", {
|
|
121
|
+
error: errorMessage
|
|
122
|
+
}, error instanceof Error ? error : undefined);
|
|
123
|
+
throw new IntegrationInitializationError(this.name, error instanceof Error ? error : new Error(errorMessage));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Gracefully shutdown the integration
|
|
128
|
+
*
|
|
129
|
+
* Calls performShutdown() to clean up resources.
|
|
130
|
+
*
|
|
131
|
+
* @example
|
|
132
|
+
* ```typescript
|
|
133
|
+
* // Using await
|
|
134
|
+
* await integration.shutdown();
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
async shutdown() {
|
|
138
|
+
if (this._status === "shutdown" || this._status === "uninitialized") {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
await this.log("info", `Shutting down ${this.name}...`);
|
|
142
|
+
this._status = "shutting-down";
|
|
143
|
+
this.emitEvent("shutting-down", {});
|
|
144
|
+
try {
|
|
145
|
+
// Call subclass shutdown
|
|
146
|
+
await this.performShutdown();
|
|
147
|
+
// Update status
|
|
148
|
+
this._status = "shutdown";
|
|
149
|
+
this.startTime = 0;
|
|
150
|
+
this.emitEvent("shutdown", {});
|
|
151
|
+
await this.log("success", `${this.name} shutdown complete`);
|
|
152
|
+
}
|
|
153
|
+
catch (error) {
|
|
154
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
155
|
+
await this.log("error", `Error during shutdown of ${this.name}: ${errorMessage}`);
|
|
156
|
+
this.emitEvent("error", {
|
|
157
|
+
message: errorMessage,
|
|
158
|
+
phase: "shutdown"
|
|
159
|
+
}, error instanceof Error ? error : undefined);
|
|
160
|
+
// Still mark as shutdown even if there was an error
|
|
161
|
+
this._status = "shutdown";
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Perform a health check
|
|
166
|
+
*
|
|
167
|
+
* Default implementation checks status and calls performHealthCheck().
|
|
168
|
+
* Subclasses should override performHealthCheck() for custom checks.
|
|
169
|
+
*
|
|
170
|
+
* @returns Health result indicating integration health
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```typescript
|
|
174
|
+
* const health = await integration.healthCheck();
|
|
175
|
+
* if (!health.healthy) {
|
|
176
|
+
* console.error('Integration unhealthy:', health.message);
|
|
177
|
+
* }
|
|
178
|
+
* ```
|
|
179
|
+
*/
|
|
180
|
+
async healthCheck() {
|
|
181
|
+
// Check if initialized
|
|
182
|
+
if (this._status !== "initialized") {
|
|
183
|
+
return createUnhealthyResult(`${this.name} is not initialized (status: ${this._status})`, { status: this._status });
|
|
184
|
+
}
|
|
185
|
+
// Call subclass health check
|
|
186
|
+
try {
|
|
187
|
+
const result = await this.performHealthCheck();
|
|
188
|
+
this.emitEvent("health-check", { healthy: result.healthy });
|
|
189
|
+
return result;
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
193
|
+
return createUnhealthyResult(`Health check failed: ${errorMessage}`, {
|
|
194
|
+
error: errorMessage,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Get current integration statistics
|
|
200
|
+
*
|
|
201
|
+
* Calculates uptime since initialization and includes error count.
|
|
202
|
+
*
|
|
203
|
+
* @returns Current stats object
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* ```typescript
|
|
207
|
+
* const stats = integration.getStats();
|
|
208
|
+
* console.log(`Uptime: ${stats.uptime}ms, Errors: ${stats.errors}`);
|
|
209
|
+
* ```
|
|
210
|
+
*/
|
|
211
|
+
getStats() {
|
|
212
|
+
// Calculate uptime
|
|
213
|
+
const uptime = this.startTime > 0 ? Date.now() - this.startTime : 0;
|
|
214
|
+
return {
|
|
215
|
+
...this.stats,
|
|
216
|
+
uptime,
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
// ==========================================================================
|
|
220
|
+
// IEventedIntegration Implementation
|
|
221
|
+
// ==========================================================================
|
|
222
|
+
/**
|
|
223
|
+
* Get the event emitter for this integration
|
|
224
|
+
*
|
|
225
|
+
* Returns `this` since BaseIntegration extends EventEmitter.
|
|
226
|
+
*
|
|
227
|
+
* @returns The event emitter instance
|
|
228
|
+
*/
|
|
229
|
+
getEventEmitter() {
|
|
230
|
+
return this;
|
|
231
|
+
}
|
|
232
|
+
// ==========================================================================
|
|
233
|
+
// Protected Methods for Subclasses
|
|
234
|
+
// ==========================================================================
|
|
235
|
+
/**
|
|
236
|
+
* Ensure the integration is initialized
|
|
237
|
+
*
|
|
238
|
+
* @throws IntegrationNotInitializedError if not initialized
|
|
239
|
+
*/
|
|
240
|
+
ensureInitialized() {
|
|
241
|
+
if (this._status !== "initialized") {
|
|
242
|
+
throw new IntegrationNotInitializedError(this.name);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Record an error in statistics
|
|
247
|
+
*
|
|
248
|
+
* @param error - Optional error to record
|
|
249
|
+
*/
|
|
250
|
+
recordError(error) {
|
|
251
|
+
this.stats.errors++;
|
|
252
|
+
if (this.config.debug && error) {
|
|
253
|
+
this.log("error", error.message).catch((e) => frameworkLogger.log("integration", "log-error-fallback", "error", { error: e }));
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Update custom statistics
|
|
258
|
+
*
|
|
259
|
+
* @param customStats - Partial stats to merge
|
|
260
|
+
*/
|
|
261
|
+
updateCustomStats(customStats) {
|
|
262
|
+
this.stats.custom = { ...this.stats.custom, ...customStats };
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Get current configuration
|
|
266
|
+
*
|
|
267
|
+
* @returns Current configuration object (copy)
|
|
268
|
+
*/
|
|
269
|
+
getConfig() {
|
|
270
|
+
return { ...this.config };
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Update configuration
|
|
274
|
+
*
|
|
275
|
+
* @param config - Partial configuration to merge
|
|
276
|
+
*/
|
|
277
|
+
updateConfig(config) {
|
|
278
|
+
this.config = { ...this.config, ...config };
|
|
279
|
+
this.emitEvent("config-updated", { config: this.config });
|
|
280
|
+
}
|
|
281
|
+
// ==========================================================================
|
|
282
|
+
// Logging
|
|
283
|
+
// ==========================================================================
|
|
284
|
+
/**
|
|
285
|
+
* Log a message using the framework logger
|
|
286
|
+
*
|
|
287
|
+
* @param status - Log status level
|
|
288
|
+
* @param message - Message to log
|
|
289
|
+
* @param details - Optional details object
|
|
290
|
+
*/
|
|
291
|
+
async log(status, message, details) {
|
|
292
|
+
// Only log if enabled and level is appropriate
|
|
293
|
+
if (!this.config.enabled) {
|
|
294
|
+
return;
|
|
295
|
+
}
|
|
296
|
+
const statusToLevel = {
|
|
297
|
+
error: 0,
|
|
298
|
+
warning: 1,
|
|
299
|
+
warn: 1,
|
|
300
|
+
info: 2,
|
|
301
|
+
debug: 3,
|
|
302
|
+
success: 2, // map success to info level
|
|
303
|
+
};
|
|
304
|
+
const currentLevel = statusToLevel[this.config.logLevel] ?? 2;
|
|
305
|
+
const statusLevel = statusToLevel[status] ?? 2;
|
|
306
|
+
// Skip if below log level
|
|
307
|
+
if (statusLevel > currentLevel && status !== "success") {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
// Map 'success' to 'info' for framework logger
|
|
311
|
+
const loggerStatus = status === "success" ? "info" : status;
|
|
312
|
+
try {
|
|
313
|
+
await frameworkLogger.log(this.name, message, loggerStatus, {
|
|
314
|
+
...details,
|
|
315
|
+
version: this.version,
|
|
316
|
+
status: this._status,
|
|
317
|
+
jobId: this.jobId,
|
|
318
|
+
}, this.jobId);
|
|
319
|
+
}
|
|
320
|
+
catch {
|
|
321
|
+
// Silent fail - logging should never break application
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
// ==========================================================================
|
|
325
|
+
// Event Emission
|
|
326
|
+
// ==========================================================================
|
|
327
|
+
/**
|
|
328
|
+
* Emit a typed integration event
|
|
329
|
+
*
|
|
330
|
+
* @param type - Event type
|
|
331
|
+
* @param data - Event data
|
|
332
|
+
* @param error - Optional error
|
|
333
|
+
*/
|
|
334
|
+
emitEvent(type, data = {}, error) {
|
|
335
|
+
const event = {
|
|
336
|
+
type,
|
|
337
|
+
timestamp: Date.now(),
|
|
338
|
+
data,
|
|
339
|
+
...(error ? { error } : {}),
|
|
340
|
+
};
|
|
341
|
+
// Emit specific event
|
|
342
|
+
this.emit(type, event);
|
|
343
|
+
// Also emit generic 'any' event
|
|
344
|
+
this.emit("event", event);
|
|
345
|
+
}
|
|
346
|
+
// ==========================================================================
|
|
347
|
+
// Static Methods
|
|
348
|
+
// ==========================================================================
|
|
349
|
+
/**
|
|
350
|
+
* Check if an object is a BaseIntegration instance
|
|
351
|
+
*
|
|
352
|
+
* @param value - Value to check
|
|
353
|
+
* @returns True if value is a BaseIntegration
|
|
354
|
+
*/
|
|
355
|
+
static isBaseIntegration(value) {
|
|
356
|
+
return value instanceof BaseIntegration;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* Create a simple integration with minimal implementation
|
|
361
|
+
*
|
|
362
|
+
* Useful for testing or simple integrations that don't need much logic.
|
|
363
|
+
*
|
|
364
|
+
* @param name - Integration name
|
|
365
|
+
* @param version - Integration version
|
|
366
|
+
* @param healthCheck - Custom health check function
|
|
367
|
+
* @param shutdown - Custom shutdown function
|
|
368
|
+
* @returns New integration instance
|
|
369
|
+
*
|
|
370
|
+
* @example
|
|
371
|
+
* ```typescript
|
|
372
|
+
* const simple = createSimpleIntegration(
|
|
373
|
+
* 'simple',
|
|
374
|
+
* '1.0.0',
|
|
375
|
+
* async () => ({ healthy: true, message: 'OK' }),
|
|
376
|
+
* async () => {}
|
|
377
|
+
* );
|
|
378
|
+
*
|
|
379
|
+
* await simple.initialize();
|
|
380
|
+
* ```
|
|
381
|
+
*/
|
|
382
|
+
export function createSimpleIntegration(name, version, healthCheck, shutdown = async () => { }) {
|
|
383
|
+
class SimpleIntegration extends BaseIntegration {
|
|
384
|
+
async performInitialization() {
|
|
385
|
+
// No-op for simple integration
|
|
386
|
+
}
|
|
387
|
+
async performShutdown() {
|
|
388
|
+
await shutdown();
|
|
389
|
+
}
|
|
390
|
+
async performHealthCheck() {
|
|
391
|
+
return healthCheck();
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
return new SimpleIntegration(name, version);
|
|
395
|
+
}
|