stringray-ai 1.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/.mcp.json +68 -0
- package/LICENSE +21 -0
- package/README.md +618 -0
- package/dist/agents/architect.d.ts +3 -0
- package/dist/agents/architect.d.ts.map +1 -0
- package/dist/agents/architect.js +84 -0
- package/dist/agents/architect.js.map +1 -0
- package/dist/agents/bug-triage-specialist.d.ts +3 -0
- package/dist/agents/bug-triage-specialist.d.ts.map +1 -0
- package/dist/agents/bug-triage-specialist.js +66 -0
- package/dist/agents/bug-triage-specialist.js.map +1 -0
- package/dist/agents/code-reviewer.d.ts +3 -0
- package/dist/agents/code-reviewer.d.ts.map +1 -0
- package/dist/agents/code-reviewer.js +66 -0
- package/dist/agents/code-reviewer.js.map +1 -0
- package/dist/agents/enforcer.d.ts +3 -0
- package/dist/agents/enforcer.d.ts.map +1 -0
- package/dist/agents/enforcer.js +109 -0
- package/dist/agents/enforcer.js.map +1 -0
- package/dist/agents/index.d.ts +15 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +26 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/librarian.d.ts +3 -0
- package/dist/agents/librarian.d.ts.map +1 -0
- package/dist/agents/librarian.js +70 -0
- package/dist/agents/librarian.js.map +1 -0
- package/dist/agents/log-monitor.d.ts +3 -0
- package/dist/agents/log-monitor.d.ts.map +1 -0
- package/dist/agents/log-monitor.js +102 -0
- package/dist/agents/log-monitor.js.map +1 -0
- package/dist/agents/orchestrator.d.ts +3 -0
- package/dist/agents/orchestrator.d.ts.map +1 -0
- package/dist/agents/orchestrator.js +85 -0
- package/dist/agents/orchestrator.js.map +1 -0
- package/dist/agents/refactorer.d.ts +3 -0
- package/dist/agents/refactorer.d.ts.map +1 -0
- package/dist/agents/refactorer.js +67 -0
- package/dist/agents/refactorer.js.map +1 -0
- package/dist/agents/security-auditor.d.ts +3 -0
- package/dist/agents/security-auditor.d.ts.map +1 -0
- package/dist/agents/security-auditor.js +66 -0
- package/dist/agents/security-auditor.js.map +1 -0
- package/dist/agents/sisyphus.d.ts +3 -0
- package/dist/agents/sisyphus.d.ts.map +1 -0
- package/dist/agents/sisyphus.js +53 -0
- package/dist/agents/sisyphus.js.map +1 -0
- package/dist/agents/test-architect.d.ts +3 -0
- package/dist/agents/test-architect.d.ts.map +1 -0
- package/dist/agents/test-architect.js +81 -0
- package/dist/agents/test-architect.js.map +1 -0
- package/dist/agents/types.d.ts +29 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/mcps/architect-tools.server.d.ts +40 -0
- package/dist/mcps/architect-tools.server.d.ts.map +1 -0
- package/dist/mcps/architect-tools.server.js +563 -0
- package/dist/mcps/architect-tools.server.js.map +1 -0
- package/dist/mcps/auto-format.server.d.ts +20 -0
- package/dist/mcps/auto-format.server.d.ts.map +1 -0
- package/dist/mcps/auto-format.server.js +391 -0
- package/dist/mcps/auto-format.server.js.map +1 -0
- package/dist/mcps/boot-orchestrator.server.d.ts +50 -0
- package/dist/mcps/boot-orchestrator.server.d.ts.map +1 -0
- package/dist/mcps/boot-orchestrator.server.js +871 -0
- package/dist/mcps/boot-orchestrator.server.js.map +1 -0
- package/dist/mcps/enforcer-tools.server.d.ts +26 -0
- package/dist/mcps/enforcer-tools.server.d.ts.map +1 -0
- package/dist/mcps/enforcer-tools.server.js +627 -0
- package/dist/mcps/enforcer-tools.server.js.map +1 -0
- package/dist/mcps/enhanced-orchestrator.server.d.ts +14 -0
- package/dist/mcps/enhanced-orchestrator.server.d.ts.map +1 -0
- package/dist/mcps/enhanced-orchestrator.server.js +250 -0
- package/dist/mcps/enhanced-orchestrator.server.js.map +1 -0
- package/dist/mcps/framework-compliance-audit.server.d.ts +23 -0
- package/dist/mcps/framework-compliance-audit.server.d.ts.map +1 -0
- package/dist/mcps/framework-compliance-audit.server.js +511 -0
- package/dist/mcps/framework-compliance-audit.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/api-design.server.d.ts +16 -0
- package/dist/mcps/knowledge-skills/api-design.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/api-design.server.js +120 -0
- package/dist/mcps/knowledge-skills/api-design.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts +16 -0
- package/dist/mcps/knowledge-skills/architecture-patterns.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/architecture-patterns.server.js +110 -0
- package/dist/mcps/knowledge-skills/architecture-patterns.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/code-review.server.d.ts +32 -0
- package/dist/mcps/knowledge-skills/code-review.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/code-review.server.js +777 -0
- package/dist/mcps/knowledge-skills/code-review.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/database-design.server.d.ts +44 -0
- package/dist/mcps/knowledge-skills/database-design.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/database-design.server.js +818 -0
- package/dist/mcps/knowledge-skills/database-design.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts +44 -0
- package/dist/mcps/knowledge-skills/devops-deployment.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/devops-deployment.server.js +1178 -0
- package/dist/mcps/knowledge-skills/devops-deployment.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/documentation-generation.server.d.ts +48 -0
- package/dist/mcps/knowledge-skills/documentation-generation.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/documentation-generation.server.js +1188 -0
- package/dist/mcps/knowledge-skills/documentation-generation.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/git-workflow.server.d.ts +16 -0
- package/dist/mcps/knowledge-skills/git-workflow.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/git-workflow.server.js +112 -0
- package/dist/mcps/knowledge-skills/git-workflow.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts +16 -0
- package/dist/mcps/knowledge-skills/performance-optimization.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/performance-optimization.server.js +108 -0
- package/dist/mcps/knowledge-skills/performance-optimization.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/project-analysis.server.d.ts +34 -0
- package/dist/mcps/knowledge-skills/project-analysis.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/project-analysis.server.js +710 -0
- package/dist/mcps/knowledge-skills/project-analysis.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts +34 -0
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.js +794 -0
- package/dist/mcps/knowledge-skills/refactoring-strategies.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/security-audit.server.d.ts +34 -0
- package/dist/mcps/knowledge-skills/security-audit.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/security-audit.server.js +769 -0
- package/dist/mcps/knowledge-skills/security-audit.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/testing-best-practices.server.d.ts +37 -0
- package/dist/mcps/knowledge-skills/testing-best-practices.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/testing-best-practices.server.js +865 -0
- package/dist/mcps/knowledge-skills/testing-best-practices.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts +47 -0
- package/dist/mcps/knowledge-skills/testing-strategy.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/testing-strategy.server.js +672 -0
- package/dist/mcps/knowledge-skills/testing-strategy.server.js.map +1 -0
- package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts +42 -0
- package/dist/mcps/knowledge-skills/ui-ux-design.server.d.ts.map +1 -0
- package/dist/mcps/knowledge-skills/ui-ux-design.server.js +1016 -0
- package/dist/mcps/knowledge-skills/ui-ux-design.server.js.map +1 -0
- package/dist/mcps/lint.server.d.ts +18 -0
- package/dist/mcps/lint.server.d.ts.map +1 -0
- package/dist/mcps/lint.server.js +334 -0
- package/dist/mcps/lint.server.js.map +1 -0
- package/dist/mcps/model-health-check.server.d.ts +17 -0
- package/dist/mcps/model-health-check.server.d.ts.map +1 -0
- package/dist/mcps/model-health-check.server.js +226 -0
- package/dist/mcps/model-health-check.server.js.map +1 -0
- package/dist/mcps/orchestrator.server.d.ts +39 -0
- package/dist/mcps/orchestrator.server.d.ts.map +1 -0
- package/dist/mcps/orchestrator.server.js +908 -0
- package/dist/mcps/orchestrator.server.js.map +1 -0
- package/dist/mcps/performance-analysis.server.d.ts +28 -0
- package/dist/mcps/performance-analysis.server.d.ts.map +1 -0
- package/dist/mcps/performance-analysis.server.js +514 -0
- package/dist/mcps/performance-analysis.server.js.map +1 -0
- package/dist/mcps/processor-pipeline.server.d.ts +29 -0
- package/dist/mcps/processor-pipeline.server.d.ts.map +1 -0
- package/dist/mcps/processor-pipeline.server.js +520 -0
- package/dist/mcps/processor-pipeline.server.js.map +1 -0
- package/dist/mcps/security-scan.server.d.ts +20 -0
- package/dist/mcps/security-scan.server.d.ts.map +1 -0
- package/dist/mcps/security-scan.server.js +404 -0
- package/dist/mcps/security-scan.server.js.map +1 -0
- package/dist/mcps/state-manager.server.d.ts +29 -0
- package/dist/mcps/state-manager.server.d.ts.map +1 -0
- package/dist/mcps/state-manager.server.js +620 -0
- package/dist/mcps/state-manager.server.js.map +1 -0
- package/dist/orchestrator/enhanced-multi-agent-orchestrator.d.ts +109 -0
- package/dist/orchestrator/enhanced-multi-agent-orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/enhanced-multi-agent-orchestrator.js +337 -0
- package/dist/orchestrator/enhanced-multi-agent-orchestrator.js.map +1 -0
- package/dist/orchestrator/intelligent-commit-batcher.d.ts +112 -0
- package/dist/orchestrator/intelligent-commit-batcher.d.ts.map +1 -0
- package/dist/orchestrator/intelligent-commit-batcher.js +330 -0
- package/dist/orchestrator/intelligent-commit-batcher.js.map +1 -0
- package/dist/plugin/agents/architect.d.ts +3 -0
- package/dist/plugin/agents/architect.d.ts.map +1 -0
- package/dist/plugin/agents/architect.js +84 -0
- package/dist/plugin/agents/architect.js.map +1 -0
- package/dist/plugin/agents/bug-triage-specialist.d.ts +3 -0
- package/dist/plugin/agents/bug-triage-specialist.d.ts.map +1 -0
- package/dist/plugin/agents/bug-triage-specialist.js +66 -0
- package/dist/plugin/agents/bug-triage-specialist.js.map +1 -0
- package/dist/plugin/agents/code-reviewer.d.ts +3 -0
- package/dist/plugin/agents/code-reviewer.d.ts.map +1 -0
- package/dist/plugin/agents/code-reviewer.js +66 -0
- package/dist/plugin/agents/code-reviewer.js.map +1 -0
- package/dist/plugin/agents/enforcer.d.ts +3 -0
- package/dist/plugin/agents/enforcer.d.ts.map +1 -0
- package/dist/plugin/agents/enforcer.js +109 -0
- package/dist/plugin/agents/enforcer.js.map +1 -0
- package/dist/plugin/agents/index.d.ts +15 -0
- package/dist/plugin/agents/index.d.ts.map +1 -0
- package/dist/plugin/agents/index.js +26 -0
- package/dist/plugin/agents/index.js.map +1 -0
- package/dist/plugin/agents/librarian.d.ts +3 -0
- package/dist/plugin/agents/librarian.d.ts.map +1 -0
- package/dist/plugin/agents/librarian.js +70 -0
- package/dist/plugin/agents/librarian.js.map +1 -0
- package/dist/plugin/agents/log-monitor.d.ts +3 -0
- package/dist/plugin/agents/log-monitor.d.ts.map +1 -0
- package/dist/plugin/agents/log-monitor.js +102 -0
- package/dist/plugin/agents/log-monitor.js.map +1 -0
- package/dist/plugin/agents/orchestrator.d.ts +3 -0
- package/dist/plugin/agents/orchestrator.d.ts.map +1 -0
- package/dist/plugin/agents/orchestrator.js +85 -0
- package/dist/plugin/agents/orchestrator.js.map +1 -0
- package/dist/plugin/agents/refactorer.d.ts +3 -0
- package/dist/plugin/agents/refactorer.d.ts.map +1 -0
- package/dist/plugin/agents/refactorer.js +67 -0
- package/dist/plugin/agents/refactorer.js.map +1 -0
- package/dist/plugin/agents/security-auditor.d.ts +3 -0
- package/dist/plugin/agents/security-auditor.d.ts.map +1 -0
- package/dist/plugin/agents/security-auditor.js +66 -0
- package/dist/plugin/agents/security-auditor.js.map +1 -0
- package/dist/plugin/agents/sisyphus.d.ts +3 -0
- package/dist/plugin/agents/sisyphus.d.ts.map +1 -0
- package/dist/plugin/agents/sisyphus.js +53 -0
- package/dist/plugin/agents/sisyphus.js.map +1 -0
- package/dist/plugin/agents/test-architect.d.ts +3 -0
- package/dist/plugin/agents/test-architect.d.ts.map +1 -0
- package/dist/plugin/agents/test-architect.js +81 -0
- package/dist/plugin/agents/test-architect.js.map +1 -0
- package/dist/plugin/agents/types.d.ts +29 -0
- package/dist/plugin/agents/types.d.ts.map +1 -0
- package/dist/plugin/agents/types.js +2 -0
- package/dist/plugin/agents/types.js.map +1 -0
- package/dist/plugin/config-loader.d.ts +67 -0
- package/dist/plugin/config-loader.d.ts.map +1 -0
- package/dist/plugin/config-loader.js +125 -0
- package/dist/plugin/config-loader.js.map +1 -0
- package/dist/plugin/context-loader.d.ts +122 -0
- package/dist/plugin/context-loader.d.ts.map +1 -0
- package/dist/plugin/context-loader.js +273 -0
- package/dist/plugin/context-loader.js.map +1 -0
- package/dist/plugin/delegation/agent-delegator.d.ts +217 -0
- package/dist/plugin/delegation/agent-delegator.d.ts.map +1 -0
- package/dist/plugin/delegation/agent-delegator.js +928 -0
- package/dist/plugin/delegation/agent-delegator.js.map +1 -0
- package/dist/plugin/delegation/codebase-context-analyzer.d.ts +157 -0
- package/dist/plugin/delegation/codebase-context-analyzer.d.ts.map +1 -0
- package/dist/plugin/delegation/codebase-context-analyzer.js +1029 -0
- package/dist/plugin/delegation/codebase-context-analyzer.js.map +1 -0
- package/dist/plugin/delegation/complexity-analyzer.d.ts +61 -0
- package/dist/plugin/delegation/complexity-analyzer.d.ts.map +1 -0
- package/dist/plugin/delegation/complexity-analyzer.js +253 -0
- package/dist/plugin/delegation/complexity-analyzer.js.map +1 -0
- package/dist/plugin/enforcement/enforcer-tools.d.ts +62 -0
- package/dist/plugin/enforcement/enforcer-tools.d.ts.map +1 -0
- package/dist/plugin/enforcement/enforcer-tools.js +407 -0
- package/dist/plugin/enforcement/enforcer-tools.js.map +1 -0
- package/dist/plugin/enforcement/rule-enforcer.d.ts +171 -0
- package/dist/plugin/enforcement/rule-enforcer.d.ts.map +1 -0
- package/dist/plugin/enforcement/rule-enforcer.js +1342 -0
- package/dist/plugin/enforcement/rule-enforcer.js.map +1 -0
- package/dist/plugin/enforcement/test-auto-healing.d.ts +78 -0
- package/dist/plugin/enforcement/test-auto-healing.d.ts.map +1 -0
- package/dist/plugin/enforcement/test-auto-healing.js +318 -0
- package/dist/plugin/enforcement/test-auto-healing.js.map +1 -0
- package/dist/plugin/framework-logger.d.ts +20 -0
- package/dist/plugin/framework-logger.d.ts.map +1 -0
- package/dist/plugin/framework-logger.js +79 -0
- package/dist/plugin/framework-logger.js.map +1 -0
- package/dist/plugin/logging-config.d.ts +11 -0
- package/dist/plugin/logging-config.d.ts.map +1 -0
- package/dist/plugin/logging-config.js +44 -0
- package/dist/plugin/logging-config.js.map +1 -0
- package/dist/plugin/mcps/architect-tools.server.d.ts +40 -0
- package/dist/plugin/mcps/architect-tools.server.d.ts.map +1 -0
- package/dist/plugin/mcps/architect-tools.server.js +563 -0
- package/dist/plugin/mcps/architect-tools.server.js.map +1 -0
- package/dist/plugin/mcps/auto-format.server.d.ts +20 -0
- package/dist/plugin/mcps/auto-format.server.d.ts.map +1 -0
- package/dist/plugin/mcps/auto-format.server.js +391 -0
- package/dist/plugin/mcps/auto-format.server.js.map +1 -0
- package/dist/plugin/mcps/boot-orchestrator.server.d.ts +50 -0
- package/dist/plugin/mcps/boot-orchestrator.server.d.ts.map +1 -0
- package/dist/plugin/mcps/boot-orchestrator.server.js +871 -0
- package/dist/plugin/mcps/boot-orchestrator.server.js.map +1 -0
- package/dist/plugin/mcps/enforcer-tools.server.d.ts +26 -0
- package/dist/plugin/mcps/enforcer-tools.server.d.ts.map +1 -0
- package/dist/plugin/mcps/enforcer-tools.server.js +627 -0
- package/dist/plugin/mcps/enforcer-tools.server.js.map +1 -0
- package/dist/plugin/mcps/enhanced-orchestrator.server.d.ts +14 -0
- package/dist/plugin/mcps/enhanced-orchestrator.server.d.ts.map +1 -0
- package/dist/plugin/mcps/enhanced-orchestrator.server.js +250 -0
- package/dist/plugin/mcps/enhanced-orchestrator.server.js.map +1 -0
- package/dist/plugin/mcps/framework-compliance-audit.server.d.ts +23 -0
- package/dist/plugin/mcps/framework-compliance-audit.server.d.ts.map +1 -0
- package/dist/plugin/mcps/framework-compliance-audit.server.js +511 -0
- package/dist/plugin/mcps/framework-compliance-audit.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/api-design.server.d.ts +16 -0
- package/dist/plugin/mcps/knowledge-skills/api-design.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/api-design.server.js +120 -0
- package/dist/plugin/mcps/knowledge-skills/api-design.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/architecture-patterns.server.d.ts +16 -0
- package/dist/plugin/mcps/knowledge-skills/architecture-patterns.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/architecture-patterns.server.js +110 -0
- package/dist/plugin/mcps/knowledge-skills/architecture-patterns.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/code-review.server.d.ts +32 -0
- package/dist/plugin/mcps/knowledge-skills/code-review.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/code-review.server.js +777 -0
- package/dist/plugin/mcps/knowledge-skills/code-review.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/database-design.server.d.ts +44 -0
- package/dist/plugin/mcps/knowledge-skills/database-design.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/database-design.server.js +818 -0
- package/dist/plugin/mcps/knowledge-skills/database-design.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/devops-deployment.server.d.ts +44 -0
- package/dist/plugin/mcps/knowledge-skills/devops-deployment.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/devops-deployment.server.js +1178 -0
- package/dist/plugin/mcps/knowledge-skills/devops-deployment.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/documentation-generation.server.d.ts +48 -0
- package/dist/plugin/mcps/knowledge-skills/documentation-generation.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/documentation-generation.server.js +1188 -0
- package/dist/plugin/mcps/knowledge-skills/documentation-generation.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/git-workflow.server.d.ts +16 -0
- package/dist/plugin/mcps/knowledge-skills/git-workflow.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/git-workflow.server.js +112 -0
- package/dist/plugin/mcps/knowledge-skills/git-workflow.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/performance-optimization.server.d.ts +16 -0
- package/dist/plugin/mcps/knowledge-skills/performance-optimization.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/performance-optimization.server.js +108 -0
- package/dist/plugin/mcps/knowledge-skills/performance-optimization.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/project-analysis.server.d.ts +34 -0
- package/dist/plugin/mcps/knowledge-skills/project-analysis.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/project-analysis.server.js +710 -0
- package/dist/plugin/mcps/knowledge-skills/project-analysis.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/refactoring-strategies.server.d.ts +34 -0
- package/dist/plugin/mcps/knowledge-skills/refactoring-strategies.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/refactoring-strategies.server.js +794 -0
- package/dist/plugin/mcps/knowledge-skills/refactoring-strategies.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/security-audit.server.d.ts +34 -0
- package/dist/plugin/mcps/knowledge-skills/security-audit.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/security-audit.server.js +769 -0
- package/dist/plugin/mcps/knowledge-skills/security-audit.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/testing-best-practices.server.d.ts +37 -0
- package/dist/plugin/mcps/knowledge-skills/testing-best-practices.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/testing-best-practices.server.js +865 -0
- package/dist/plugin/mcps/knowledge-skills/testing-best-practices.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/testing-strategy.server.d.ts +47 -0
- package/dist/plugin/mcps/knowledge-skills/testing-strategy.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/testing-strategy.server.js +672 -0
- package/dist/plugin/mcps/knowledge-skills/testing-strategy.server.js.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/ui-ux-design.server.d.ts +42 -0
- package/dist/plugin/mcps/knowledge-skills/ui-ux-design.server.d.ts.map +1 -0
- package/dist/plugin/mcps/knowledge-skills/ui-ux-design.server.js +1016 -0
- package/dist/plugin/mcps/knowledge-skills/ui-ux-design.server.js.map +1 -0
- package/dist/plugin/mcps/lint.server.d.ts +18 -0
- package/dist/plugin/mcps/lint.server.d.ts.map +1 -0
- package/dist/plugin/mcps/lint.server.js +334 -0
- package/dist/plugin/mcps/lint.server.js.map +1 -0
- package/dist/plugin/mcps/model-health-check.server.d.ts +17 -0
- package/dist/plugin/mcps/model-health-check.server.d.ts.map +1 -0
- package/dist/plugin/mcps/model-health-check.server.js +226 -0
- package/dist/plugin/mcps/model-health-check.server.js.map +1 -0
- package/dist/plugin/mcps/orchestrator.server.d.ts +39 -0
- package/dist/plugin/mcps/orchestrator.server.d.ts.map +1 -0
- package/dist/plugin/mcps/orchestrator.server.js +908 -0
- package/dist/plugin/mcps/orchestrator.server.js.map +1 -0
- package/dist/plugin/mcps/performance-analysis.server.d.ts +28 -0
- package/dist/plugin/mcps/performance-analysis.server.d.ts.map +1 -0
- package/dist/plugin/mcps/performance-analysis.server.js +514 -0
- package/dist/plugin/mcps/performance-analysis.server.js.map +1 -0
- package/dist/plugin/mcps/processor-pipeline.server.d.ts +29 -0
- package/dist/plugin/mcps/processor-pipeline.server.d.ts.map +1 -0
- package/dist/plugin/mcps/processor-pipeline.server.js +520 -0
- package/dist/plugin/mcps/processor-pipeline.server.js.map +1 -0
- package/dist/plugin/mcps/security-scan.server.d.ts +20 -0
- package/dist/plugin/mcps/security-scan.server.d.ts.map +1 -0
- package/dist/plugin/mcps/security-scan.server.js +404 -0
- package/dist/plugin/mcps/security-scan.server.js.map +1 -0
- package/dist/plugin/mcps/state-manager.server.d.ts +29 -0
- package/dist/plugin/mcps/state-manager.server.d.ts.map +1 -0
- package/dist/plugin/mcps/state-manager.server.js +620 -0
- package/dist/plugin/mcps/state-manager.server.js.map +1 -0
- package/dist/plugin/monitoring/advanced-profiler.d.ts +48 -0
- package/dist/plugin/monitoring/advanced-profiler.d.ts.map +1 -0
- package/dist/plugin/monitoring/advanced-profiler.js +216 -0
- package/dist/plugin/monitoring/advanced-profiler.js.map +1 -0
- package/dist/plugin/monitoring/enterprise-monitoring-system.d.ts +331 -0
- package/dist/plugin/monitoring/enterprise-monitoring-system.d.ts.map +1 -0
- package/dist/plugin/monitoring/enterprise-monitoring-system.js +797 -0
- package/dist/plugin/monitoring/enterprise-monitoring-system.js.map +1 -0
- package/dist/plugin/orchestrator/enhanced-multi-agent-orchestrator.d.ts +111 -0
- package/dist/plugin/orchestrator/enhanced-multi-agent-orchestrator.d.ts.map +1 -0
- package/dist/plugin/orchestrator/enhanced-multi-agent-orchestrator.js +339 -0
- package/dist/plugin/orchestrator/enhanced-multi-agent-orchestrator.js.map +1 -0
- package/dist/plugin/orchestrator/intelligent-commit-batcher.d.ts +112 -0
- package/dist/plugin/orchestrator/intelligent-commit-batcher.d.ts.map +1 -0
- package/dist/plugin/orchestrator/intelligent-commit-batcher.js +330 -0
- package/dist/plugin/orchestrator/intelligent-commit-batcher.js.map +1 -0
- package/dist/plugin/orchestrator.d.ts +91 -0
- package/dist/plugin/orchestrator.d.ts.map +1 -0
- package/dist/plugin/orchestrator.js +444 -0
- package/dist/plugin/orchestrator.js.map +1 -0
- package/dist/plugin/plugins/marketplace/marketplace-service.d.ts +108 -0
- package/dist/plugin/plugins/marketplace/marketplace-service.d.ts.map +1 -0
- package/dist/plugin/plugins/marketplace/marketplace-service.js +620 -0
- package/dist/plugin/plugins/marketplace/marketplace-service.js.map +1 -0
- package/dist/plugin/plugins/marketplace/marketplace-types.d.ts +468 -0
- package/dist/plugin/plugins/marketplace/marketplace-types.d.ts.map +1 -0
- package/dist/plugin/plugins/marketplace/marketplace-types.js +11 -0
- package/dist/plugin/plugins/marketplace/marketplace-types.js.map +1 -0
- package/dist/plugin/plugins/plugin-system.d.ts +152 -0
- package/dist/plugin/plugins/plugin-system.d.ts.map +1 -0
- package/dist/plugin/plugins/plugin-system.js +405 -0
- package/dist/plugin/plugins/plugin-system.js.map +1 -0
- package/dist/plugin/plugins/stringray-codex-injection.d.ts +68 -0
- package/dist/plugin/plugins/stringray-codex-injection.d.ts.map +1 -0
- package/dist/plugin/plugins/stringray-codex-injection.js +225 -0
- package/dist/plugin/plugins/stringray-codex-injection.js.map +1 -0
- package/dist/plugin/plugins/strray-codex-injection.d.ts +68 -0
- package/dist/plugin/plugins/strray-codex-injection.d.ts.map +1 -0
- package/dist/plugin/plugins/strray-codex-injection.js +225 -0
- package/dist/plugin/plugins/strray-codex-injection.js.map +1 -0
- package/dist/plugin/processors/index.d.ts +12 -0
- package/dist/plugin/processors/index.d.ts.map +1 -0
- package/dist/plugin/processors/index.js +12 -0
- package/dist/plugin/processors/index.js.map +1 -0
- package/dist/plugin/processors/processor-manager.d.ts +113 -0
- package/dist/plugin/processors/processor-manager.d.ts.map +1 -0
- package/dist/plugin/processors/processor-manager.js +498 -0
- package/dist/plugin/processors/processor-manager.js.map +1 -0
- package/dist/plugin/processors/processor-types.d.ts +50 -0
- package/dist/plugin/processors/processor-types.d.ts.map +1 -0
- package/dist/plugin/processors/processor-types.js +10 -0
- package/dist/plugin/processors/processor-types.js.map +1 -0
- package/dist/plugin/processors/refactoring-logging-processor.d.ts +61 -0
- package/dist/plugin/processors/refactoring-logging-processor.d.ts.map +1 -0
- package/dist/plugin/processors/refactoring-logging-processor.js +257 -0
- package/dist/plugin/processors/refactoring-logging-processor.js.map +1 -0
- package/dist/plugin/reporting/framework-reporting-system.d.ts +157 -0
- package/dist/plugin/reporting/framework-reporting-system.d.ts.map +1 -0
- package/dist/plugin/reporting/framework-reporting-system.js +783 -0
- package/dist/plugin/reporting/framework-reporting-system.js.map +1 -0
- package/dist/plugin/security/security-hardening-system.d.ts +220 -0
- package/dist/plugin/security/security-hardening-system.d.ts.map +1 -0
- package/dist/plugin/security/security-hardening-system.js +605 -0
- package/dist/plugin/security/security-hardening-system.js.map +1 -0
- package/dist/plugin/state/context-providers.d.ts +5 -0
- package/dist/plugin/state/context-providers.d.ts.map +1 -0
- package/dist/plugin/state/context-providers.js +2 -0
- package/dist/plugin/state/context-providers.js.map +1 -0
- package/dist/plugin/state/index.d.ts +5 -0
- package/dist/plugin/state/index.d.ts.map +1 -0
- package/dist/plugin/state/index.js +8 -0
- package/dist/plugin/state/index.js.map +1 -0
- package/dist/plugin/state/state-manager.d.ts +29 -0
- package/dist/plugin/state/state-manager.d.ts.map +1 -0
- package/dist/plugin/state/state-manager.js +153 -0
- package/dist/plugin/state/state-manager.js.map +1 -0
- package/dist/plugin/state/state-types.d.ts +6 -0
- package/dist/plugin/state/state-types.d.ts.map +1 -0
- package/dist/plugin/state/state-types.js +2 -0
- package/dist/plugin/state/state-types.js.map +1 -0
- package/dist/plugin/utils/codex-parser.d.ts +62 -0
- package/dist/plugin/utils/codex-parser.d.ts.map +1 -0
- package/dist/plugin/utils/codex-parser.js +396 -0
- package/dist/plugin/utils/codex-parser.js.map +1 -0
- package/dist/plugin/utils/command-runner.d.ts +24 -0
- package/dist/plugin/utils/command-runner.d.ts.map +1 -0
- package/dist/plugin/utils/command-runner.js +44 -0
- package/dist/plugin/utils/command-runner.js.map +1 -0
- package/dist/plugin/utils/import-resolver.d.ts +55 -0
- package/dist/plugin/utils/import-resolver.d.ts.map +1 -0
- package/dist/plugin/utils/import-resolver.js +198 -0
- package/dist/plugin/utils/import-resolver.js.map +1 -0
- package/dist/plugin/utils/memory-pool.d.ts +90 -0
- package/dist/plugin/utils/memory-pool.d.ts.map +1 -0
- package/dist/plugin/utils/memory-pool.js +245 -0
- package/dist/plugin/utils/memory-pool.js.map +1 -0
- package/dist/plugin/utils/path-resolver.d.ts +49 -0
- package/dist/plugin/utils/path-resolver.d.ts.map +1 -0
- package/dist/plugin/utils/path-resolver.js +126 -0
- package/dist/plugin/utils/path-resolver.js.map +1 -0
- package/dist/plugin/utils/test-template-generator.d.ts +26 -0
- package/dist/plugin/utils/test-template-generator.d.ts.map +1 -0
- package/dist/plugin/utils/test-template-generator.js +178 -0
- package/dist/plugin/utils/test-template-generator.js.map +1 -0
- package/dist/processors/index.d.ts +12 -0
- package/dist/processors/index.d.ts.map +1 -0
- package/dist/processors/index.js +12 -0
- package/dist/processors/index.js.map +1 -0
- package/dist/processors/processor-manager.d.ts +113 -0
- package/dist/processors/processor-manager.d.ts.map +1 -0
- package/dist/processors/processor-manager.js +498 -0
- package/dist/processors/processor-manager.js.map +1 -0
- package/dist/processors/processor-types.d.ts +50 -0
- package/dist/processors/processor-types.d.ts.map +1 -0
- package/dist/processors/processor-types.js +10 -0
- package/dist/processors/processor-types.js.map +1 -0
- package/dist/processors/refactoring-logging-processor.d.ts +61 -0
- package/dist/processors/refactoring-logging-processor.d.ts.map +1 -0
- package/dist/processors/refactoring-logging-processor.js +257 -0
- package/dist/processors/refactoring-logging-processor.js.map +1 -0
- package/dist/state/context-providers.d.ts +5 -0
- package/dist/state/context-providers.d.ts.map +1 -0
- package/dist/state/context-providers.js +2 -0
- package/dist/state/context-providers.js.map +1 -0
- package/dist/state/index.d.ts +5 -0
- package/dist/state/index.d.ts.map +1 -0
- package/dist/state/index.js +8 -0
- package/dist/state/index.js.map +1 -0
- package/dist/state/state-manager.d.ts +29 -0
- package/dist/state/state-manager.d.ts.map +1 -0
- package/dist/state/state-manager.js +153 -0
- package/dist/state/state-manager.js.map +1 -0
- package/dist/state/state-types.d.ts +6 -0
- package/dist/state/state-types.d.ts.map +1 -0
- package/dist/state/state-types.js +2 -0
- package/dist/state/state-types.js.map +1 -0
- package/dist/utils/codex-parser.d.ts +62 -0
- package/dist/utils/codex-parser.d.ts.map +1 -0
- package/dist/utils/codex-parser.js +396 -0
- package/dist/utils/codex-parser.js.map +1 -0
- package/dist/utils/command-runner.d.ts +24 -0
- package/dist/utils/command-runner.d.ts.map +1 -0
- package/dist/utils/command-runner.js +44 -0
- package/dist/utils/command-runner.js.map +1 -0
- package/dist/utils/import-resolver.d.ts +55 -0
- package/dist/utils/import-resolver.d.ts.map +1 -0
- package/dist/utils/import-resolver.js +198 -0
- package/dist/utils/import-resolver.js.map +1 -0
- package/dist/utils/memory-pool.d.ts +90 -0
- package/dist/utils/memory-pool.d.ts.map +1 -0
- package/dist/utils/memory-pool.js +245 -0
- package/dist/utils/memory-pool.js.map +1 -0
- package/dist/utils/path-resolver.d.ts +49 -0
- package/dist/utils/path-resolver.d.ts.map +1 -0
- package/dist/utils/path-resolver.js +126 -0
- package/dist/utils/path-resolver.js.map +1 -0
- package/dist/utils/test-template-generator.d.ts +26 -0
- package/dist/utils/test-template-generator.d.ts.map +1 -0
- package/dist/utils/test-template-generator.js +178 -0
- package/dist/utils/test-template-generator.js.map +1 -0
- package/package.json +138 -0
- package/scripts/analysis/analyze-context-awareness.ts +219 -0
- package/scripts/analysis/analyze-framework-usage.ts +208 -0
- package/scripts/analysis/analyzer-agent-runner.js +328 -0
- package/scripts/analysis/context-awareness-report.ts +250 -0
- package/scripts/analyze-imports.mjs +147 -0
- package/scripts/basic-security-audit.cjs +261 -0
- package/scripts/boot-check.cjs +188 -0
- package/scripts/build/check-syntax.sh +1 -0
- package/scripts/build/check-tsc.sh +1 -0
- package/scripts/build/check-types.sh +1 -0
- package/scripts/build/compile-single.sh +1 -0
- package/scripts/build/copy-plugin.sh +1 -0
- package/scripts/build/manual-build.sh +1 -0
- package/scripts/build/run-build-after-copy.sh +1 -0
- package/scripts/build/run-build-attempt.sh +1 -0
- package/scripts/build/run-build-errors-grep.sh +1 -0
- package/scripts/build/run-build-errors.sh +1 -0
- package/scripts/build/run-build-limited.sh +1 -0
- package/scripts/build/run-build-list.sh +1 -0
- package/scripts/build/run-build.sh +1 -0
- package/scripts/build/run-limited.sh +1 -0
- package/scripts/build/run-tsc-direct.sh +1 -0
- package/scripts/build/run-type-check.sh +1 -0
- package/scripts/build/run-typecheck.sh +1 -0
- package/scripts/build/test-build.sh +1 -0
- package/scripts/check-logs.sh +62 -0
- package/scripts/debug/debug-context-enhancement.ts +116 -0
- package/scripts/debug/debug-rules.mjs +23 -0
- package/scripts/demo/demo-clickable-monitoring.mjs +116 -0
- package/scripts/demo/profiling-demo.js +108 -0
- package/scripts/demo/profiling-demo.ts +126 -0
- package/scripts/demo/reporting-demonstration.ts +184 -0
- package/scripts/demo/reporting-examples.ts +105 -0
- package/scripts/dependency-scan.cjs +111 -0
- package/scripts/deploy-stringray-plugin.sh +323 -0
- package/scripts/disable-logging.sh +20 -0
- package/scripts/extract-framework.sh +405 -0
- package/scripts/fix-mcp-capabilities.js +83 -0
- package/scripts/framework/advanced-profiling-integration.sh +384 -0
- package/scripts/framework/check-agent-orchestration-health.sh +113 -0
- package/scripts/framework/enterprise-analysis-test.sh +174 -0
- package/scripts/framework/implement-analyzer-agent.sh +393 -0
- package/scripts/framework/merge-mcp-configs.sh +201 -0
- package/scripts/framework/validate-multi-agent-orchestration.sh +195 -0
- package/scripts/framework/validate-profiling.sh +64 -0
- package/scripts/github-actions-monitor.cjs +289 -0
- package/scripts/init.ts +121 -0
- package/scripts/monitoring/initialize-monitoring-pipeline.sh +89 -0
- package/scripts/monitoring/memory-dashboard.sh +52 -0
- package/scripts/monitoring/monitoring-daemon.mjs +67 -0
- package/scripts/monitoring/monitoring-daemon.sh +190 -0
- package/scripts/monitoring/profiling-dashboard.sh +69 -0
- package/scripts/performance-report.js +56 -0
- package/scripts/postinstall.cjs +240 -0
- package/scripts/profile-performance.sh +263 -0
- package/scripts/register-mcp-servers-fixed.sh +74 -0
- package/scripts/register-mcp-servers.sh +96 -0
- package/scripts/reporting/generate-phase1-report.js +28 -0
- package/scripts/reporting/run-postprocessor.js +59 -0
- package/scripts/reporting/trigger-report.js +15 -0
- package/scripts/run-simulations.mjs +29 -0
- package/scripts/scenario-data-processor.py +122 -0
- package/scripts/scenarios/scenario-security-check.ts +60 -0
- package/scripts/scenarios/scenario-user-management.ts +123 -0
- package/scripts/setup.cjs +128 -0
- package/scripts/simulation/run-simulations.js +84 -0
- package/scripts/simulation/simulate-full-orchestrator.ts +239 -0
- package/scripts/strray-triage.sh +349 -0
- package/scripts/test/run-memory-regression.sh +45 -0
- package/scripts/test/run-test.sh +2 -0
- package/scripts/test/test-deployment.sh +552 -0
- package/scripts/test/test-enhanced-report.ts +24 -0
- package/scripts/test/test-graceful-shutdown.sh +35 -0
- package/scripts/test/test-integration.mjs +79 -0
- package/scripts/test/test-manual-orchestration.sh +168 -0
- package/scripts/test/test-max-agents.sh +70 -0
- package/scripts/test/test-memory-monitor.sh +40 -0
- package/scripts/test/test-memory-pools.sh +58 -0
- package/scripts/test/test-module.ts +1 -0
- package/scripts/test/test-multi-agent-trigger.sh +251 -0
- package/scripts/test/test-orchestrator.txt +1 -0
- package/scripts/test/test-postinstall.js +1 -0
- package/scripts/test/test-security-module.ts +27 -0
- package/scripts/test/test-session-management.js +135 -0
- package/scripts/test/test-simulation.mjs +14 -0
- package/scripts/test/test-user-service.ts +111 -0
- package/scripts/test-comprehensive-path-resolution.mjs +62 -0
- package/scripts/test-data-processor.py +51 -0
- package/scripts/test-enforcement-e2e.mjs +127 -0
- package/scripts/test-full-plugin-no-timeout.sh +30 -0
- package/scripts/test-path-resolver.mjs +32 -0
- package/scripts/test-rules.mjs +128 -0
- package/scripts/test-stringray-plugin.mjs +66 -0
- package/scripts/test-utils/smart-test-runner.mjs +609 -0
- package/scripts/test-utils/test-quarantine.mjs +246 -0
- package/scripts/validate-codex.js +60 -0
- package/scripts/validate-phase1.mjs +189 -0
- package/scripts/validation/run-validators.js +114 -0
- package/scripts/validation/validate-external-processes.js +240 -0
- package/scripts/validation/validate-mcp-connectivity.js +165 -0
- package/scripts/validation/validate-oh-my-opencode-integration.js +200 -0
- package/scripts/validation/validate-reports.ts +114 -0
- package/scripts/verify-phase1.js +144 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
// Default logging configuration
|
|
2
|
+
const defaultLoggingConfig = {
|
|
3
|
+
enabled: process.env.STRRAY_LOGGING_ENABLED !== "false", // Default true, can be disabled
|
|
4
|
+
level: process.env.STRRAY_LOG_LEVEL || "info",
|
|
5
|
+
destinations: ["console", "file"],
|
|
6
|
+
performanceMode: process.env.STRRAY_PERFORMANCE_MODE === "true",
|
|
7
|
+
};
|
|
8
|
+
// Available log levels in priority order (higher index = more verbose)
|
|
9
|
+
const LOG_LEVELS = ["debug", "info", "warn", "error"];
|
|
10
|
+
// Global logging configuration instance
|
|
11
|
+
let globalLoggingConfig = { ...defaultLoggingConfig };
|
|
12
|
+
export function getLoggingConfig() {
|
|
13
|
+
return { ...globalLoggingConfig };
|
|
14
|
+
}
|
|
15
|
+
export function setLoggingConfig(config) {
|
|
16
|
+
globalLoggingConfig = { ...globalLoggingConfig, ...config };
|
|
17
|
+
}
|
|
18
|
+
export function isLoggingEnabled() {
|
|
19
|
+
return globalLoggingConfig.enabled;
|
|
20
|
+
}
|
|
21
|
+
export function shouldLog(level) {
|
|
22
|
+
if (!globalLoggingConfig.enabled) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
const currentLevelIndex = LOG_LEVELS.indexOf(globalLoggingConfig.level);
|
|
26
|
+
const messageLevelIndex = LOG_LEVELS.indexOf(level);
|
|
27
|
+
// If either level is not found, default to showing the message
|
|
28
|
+
if (currentLevelIndex === -1 || messageLevelIndex === -1) {
|
|
29
|
+
return true;
|
|
30
|
+
}
|
|
31
|
+
// Show message if its level is >= current configured level
|
|
32
|
+
return messageLevelIndex >= currentLevelIndex;
|
|
33
|
+
}
|
|
34
|
+
// Environment variable configuration
|
|
35
|
+
if (process.env.STRRAY_LOGGING_ENABLED === "false") {
|
|
36
|
+
setLoggingConfig({ enabled: false });
|
|
37
|
+
}
|
|
38
|
+
if (process.env.STRRAY_LOG_LEVEL) {
|
|
39
|
+
setLoggingConfig({ level: process.env.STRRAY_LOG_LEVEL });
|
|
40
|
+
}
|
|
41
|
+
if (process.env.STRRAY_PERFORMANCE_MODE === "true") {
|
|
42
|
+
setLoggingConfig({ performanceMode: true });
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=logging-config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging-config.js","sourceRoot":"","sources":["../../src/logging-config.ts"],"names":[],"mappings":"AAQA,gCAAgC;AAChC,MAAM,oBAAoB,GAAkB;IAC1C,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,OAAO,EAAE,gCAAgC;IACzF,KAAK,EAAG,OAAO,CAAC,GAAG,CAAC,gBAAwB,IAAI,MAAM;IACtD,YAAY,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC;IACjC,eAAe,EAAE,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,MAAM;CAChE,CAAC;AAEF,uEAAuE;AACvE,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAEtD,wCAAwC;AACxC,IAAI,mBAAmB,GAAkB,EAAE,GAAG,oBAAoB,EAAE,CAAC;AAErE,MAAM,UAAU,gBAAgB;IAC9B,OAAO,EAAE,GAAG,mBAAmB,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAA8B;IAC7D,mBAAmB,GAAG,EAAE,GAAG,mBAAmB,EAAE,GAAG,MAAM,EAAE,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,mBAAmB,CAAC,OAAO,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,KAAa;IACrC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACxE,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAEpD,+DAA+D;IAC/D,IAAI,iBAAiB,KAAK,CAAC,CAAC,IAAI,iBAAiB,KAAK,CAAC,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2DAA2D;IAC3D,OAAO,iBAAiB,IAAI,iBAAiB,CAAC;AAChD,CAAC;AAED,qCAAqC;AACrC,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,OAAO,EAAE,CAAC;IACnD,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;IACjC,gBAAgB,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,gBAAuB,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,IAAI,OAAO,CAAC,GAAG,CAAC,uBAAuB,KAAK,MAAM,EAAE,CAAC;IACnD,gBAAgB,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StrRay Architect Tools MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Converts architect-tools.ts functions into MCP server tools
|
|
5
|
+
* Provides contextual analysis capabilities via MCP protocol
|
|
6
|
+
*/
|
|
7
|
+
declare class StrRayArchitectToolsServer {
|
|
8
|
+
private server;
|
|
9
|
+
constructor();
|
|
10
|
+
private setupToolHandlers;
|
|
11
|
+
private contextAnalysis;
|
|
12
|
+
private codebaseStructure;
|
|
13
|
+
private dependencyAnalysis;
|
|
14
|
+
private architectureAssessment;
|
|
15
|
+
private analyzeProjectStructure;
|
|
16
|
+
private identifyPatterns;
|
|
17
|
+
private assessComplexity;
|
|
18
|
+
private mapDependencies;
|
|
19
|
+
private buildDirectoryHierarchy;
|
|
20
|
+
private calculateStructureMetrics;
|
|
21
|
+
private analyzeDependencies;
|
|
22
|
+
private assessCoupling;
|
|
23
|
+
private detectCircularDependencies;
|
|
24
|
+
private generateDependencyGraphs;
|
|
25
|
+
private generateDependencyRecommendations;
|
|
26
|
+
private calculateArchitecturalScores;
|
|
27
|
+
private identifyArchitecturalIssues;
|
|
28
|
+
private recognizeArchitecturalPatterns;
|
|
29
|
+
private generateArchitecturalRecommendations;
|
|
30
|
+
private calculateOverallHealthScore;
|
|
31
|
+
private getProjectFiles;
|
|
32
|
+
private getProjectDirectories;
|
|
33
|
+
private groupByExtension;
|
|
34
|
+
private calculateMaxDepth;
|
|
35
|
+
private extractImports;
|
|
36
|
+
private shouldIgnorePath;
|
|
37
|
+
run(): Promise<void>;
|
|
38
|
+
}
|
|
39
|
+
export default StrRayArchitectToolsServer;
|
|
40
|
+
//# sourceMappingURL=architect-tools.server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"architect-tools.server.d.ts","sourceRoot":"","sources":["../../../src/mcps/architect-tools.server.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAWH,cAAM,0BAA0B;IAC9B,OAAO,CAAC,MAAM,CAAS;;IAmBvB,OAAO,CAAC,iBAAiB;YAgJX,eAAe;YAgCf,iBAAiB;YA0BjB,kBAAkB;YA8BlB,sBAAsB;YAsCtB,uBAAuB;YAgBvB,gBAAgB;YAiBhB,gBAAgB;YA6BhB,eAAe;YAwBf,uBAAuB;YA2CvB,yBAAyB;YAczB,mBAAmB;YA+BnB,cAAc;YAUd,0BAA0B;YAO1B,wBAAwB;YAKxB,iCAAiC;YAUjC,4BAA4B;YAa5B,2BAA2B;YAa3B,8BAA8B;YAgB9B,oCAAoC;YAUpC,2BAA2B;YAQ3B,eAAe;YAyBf,qBAAqB;IAwBnC,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,gBAAgB;IAoBlB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAK3B;AAOD,eAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,563 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StrRay Architect Tools MCP Server
|
|
3
|
+
*
|
|
4
|
+
* Converts architect-tools.ts functions into MCP server tools
|
|
5
|
+
* Provides contextual analysis capabilities via MCP protocol
|
|
6
|
+
*/
|
|
7
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
8
|
+
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
9
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
10
|
+
import * as fs from "fs";
|
|
11
|
+
import * as path from "path";
|
|
12
|
+
class StrRayArchitectToolsServer {
|
|
13
|
+
server;
|
|
14
|
+
constructor() {
|
|
15
|
+
this.server = new Server({
|
|
16
|
+
name: "strray-architect-tools",
|
|
17
|
+
version: "1.0.0",
|
|
18
|
+
}, {
|
|
19
|
+
capabilities: {
|
|
20
|
+
tools: {},
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
this.setupToolHandlers();
|
|
24
|
+
console.log("StrRay Architect Tools MCP Server initialized");
|
|
25
|
+
}
|
|
26
|
+
setupToolHandlers() {
|
|
27
|
+
this.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
28
|
+
return {
|
|
29
|
+
tools: [
|
|
30
|
+
{
|
|
31
|
+
name: "context-analysis",
|
|
32
|
+
description: "Perform comprehensive codebase intelligence gathering including structure analysis, dependency mapping, and architectural pattern recognition",
|
|
33
|
+
inputSchema: {
|
|
34
|
+
type: "object",
|
|
35
|
+
properties: {
|
|
36
|
+
projectRoot: {
|
|
37
|
+
type: "string",
|
|
38
|
+
description: "Root directory of the project to analyze",
|
|
39
|
+
},
|
|
40
|
+
depth: {
|
|
41
|
+
type: "string",
|
|
42
|
+
enum: ["overview", "detailed", "comprehensive"],
|
|
43
|
+
default: "detailed",
|
|
44
|
+
description: "Analysis depth level",
|
|
45
|
+
},
|
|
46
|
+
includeFiles: {
|
|
47
|
+
type: "array",
|
|
48
|
+
items: { type: "string" },
|
|
49
|
+
description: "Specific files to include in analysis",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
required: ["projectRoot"],
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: "codebase-structure",
|
|
57
|
+
description: "Analyze file organization, module distribution, and directory hierarchy with optional metrics",
|
|
58
|
+
inputSchema: {
|
|
59
|
+
type: "object",
|
|
60
|
+
properties: {
|
|
61
|
+
projectRoot: {
|
|
62
|
+
type: "string",
|
|
63
|
+
description: "Root directory of the project",
|
|
64
|
+
},
|
|
65
|
+
includeMetrics: {
|
|
66
|
+
type: "boolean",
|
|
67
|
+
default: true,
|
|
68
|
+
description: "Include detailed metrics",
|
|
69
|
+
},
|
|
70
|
+
maxDepth: {
|
|
71
|
+
type: "number",
|
|
72
|
+
default: 10,
|
|
73
|
+
description: "Maximum directory depth to analyze",
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
required: ["projectRoot"],
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: "dependency-analysis",
|
|
81
|
+
description: "Map component dependencies, identify coupling patterns, and assess architectural relationships",
|
|
82
|
+
inputSchema: {
|
|
83
|
+
type: "object",
|
|
84
|
+
properties: {
|
|
85
|
+
projectRoot: {
|
|
86
|
+
type: "string",
|
|
87
|
+
description: "Root directory of the project",
|
|
88
|
+
},
|
|
89
|
+
focusAreas: {
|
|
90
|
+
type: "array",
|
|
91
|
+
items: { type: "string" },
|
|
92
|
+
description: "Specific areas to focus dependency analysis on",
|
|
93
|
+
},
|
|
94
|
+
includeGraphs: {
|
|
95
|
+
type: "boolean",
|
|
96
|
+
default: true,
|
|
97
|
+
description: "Include dependency graphs in output",
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
required: ["projectRoot"],
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: "architecture-assessment",
|
|
105
|
+
description: "Evaluate overall architectural health with scores, issues, and improvement recommendations",
|
|
106
|
+
inputSchema: {
|
|
107
|
+
type: "object",
|
|
108
|
+
properties: {
|
|
109
|
+
projectRoot: {
|
|
110
|
+
type: "string",
|
|
111
|
+
description: "Root directory of the project",
|
|
112
|
+
},
|
|
113
|
+
assessmentType: {
|
|
114
|
+
type: "string",
|
|
115
|
+
enum: ["quick", "comprehensive"],
|
|
116
|
+
default: "comprehensive",
|
|
117
|
+
description: "Type of assessment to perform",
|
|
118
|
+
},
|
|
119
|
+
focusMetrics: {
|
|
120
|
+
type: "array",
|
|
121
|
+
items: {
|
|
122
|
+
type: "string",
|
|
123
|
+
enum: [
|
|
124
|
+
"complexity",
|
|
125
|
+
"coupling",
|
|
126
|
+
"cohesion",
|
|
127
|
+
"testability",
|
|
128
|
+
"scalability",
|
|
129
|
+
],
|
|
130
|
+
},
|
|
131
|
+
description: "Specific metrics to focus assessment on",
|
|
132
|
+
},
|
|
133
|
+
},
|
|
134
|
+
required: ["projectRoot"],
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
],
|
|
138
|
+
};
|
|
139
|
+
});
|
|
140
|
+
this.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
141
|
+
const { name, arguments: args } = request.params;
|
|
142
|
+
try {
|
|
143
|
+
switch (name) {
|
|
144
|
+
case "context-analysis":
|
|
145
|
+
return await this.contextAnalysis(args);
|
|
146
|
+
case "codebase-structure":
|
|
147
|
+
return await this.codebaseStructure(args);
|
|
148
|
+
case "dependency-analysis":
|
|
149
|
+
return await this.dependencyAnalysis(args);
|
|
150
|
+
case "architecture-assessment":
|
|
151
|
+
return await this.architectureAssessment(args);
|
|
152
|
+
default:
|
|
153
|
+
throw new Error(`Unknown tool: ${name}`);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
console.error(`Error in architect tool ${name}:`, error);
|
|
158
|
+
throw error;
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
// Tool implementations - wrappers around the original architect-tools functions
|
|
163
|
+
async contextAnalysis(args) {
|
|
164
|
+
const { projectRoot, depth = "detailed", includeFiles } = args;
|
|
165
|
+
console.log(`🏗️ Architect Tool: Performing context analysis on ${projectRoot}`);
|
|
166
|
+
// This would integrate with the actual architect-tools.ts functions
|
|
167
|
+
// For now, providing a simplified implementation
|
|
168
|
+
const result = {
|
|
169
|
+
projectRoot,
|
|
170
|
+
depth,
|
|
171
|
+
analysis: {
|
|
172
|
+
structure: await this.analyzeProjectStructure(projectRoot),
|
|
173
|
+
patterns: await this.identifyPatterns(projectRoot),
|
|
174
|
+
complexity: await this.assessComplexity(projectRoot),
|
|
175
|
+
dependencies: await this.mapDependencies(projectRoot),
|
|
176
|
+
},
|
|
177
|
+
filesAnalyzed: includeFiles || (await this.getProjectFiles(projectRoot)),
|
|
178
|
+
timestamp: new Date().toISOString(),
|
|
179
|
+
};
|
|
180
|
+
return {
|
|
181
|
+
content: [
|
|
182
|
+
{
|
|
183
|
+
type: "text",
|
|
184
|
+
text: JSON.stringify(result, null, 2),
|
|
185
|
+
},
|
|
186
|
+
],
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
async codebaseStructure(args) {
|
|
190
|
+
const { projectRoot, includeMetrics = true, maxDepth = 10 } = args;
|
|
191
|
+
console.log(`🏗️ Architect Tool: Analyzing codebase structure for ${projectRoot}`);
|
|
192
|
+
const structure = {
|
|
193
|
+
projectRoot,
|
|
194
|
+
hierarchy: await this.buildDirectoryHierarchy(projectRoot, maxDepth),
|
|
195
|
+
metrics: includeMetrics
|
|
196
|
+
? await this.calculateStructureMetrics(projectRoot)
|
|
197
|
+
: undefined,
|
|
198
|
+
analyzedAt: new Date().toISOString(),
|
|
199
|
+
};
|
|
200
|
+
return {
|
|
201
|
+
content: [
|
|
202
|
+
{
|
|
203
|
+
type: "text",
|
|
204
|
+
text: JSON.stringify(structure, null, 2),
|
|
205
|
+
},
|
|
206
|
+
],
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
async dependencyAnalysis(args) {
|
|
210
|
+
const { projectRoot, focusAreas, includeGraphs = true } = args;
|
|
211
|
+
console.log(`🏗️ Architect Tool: Performing dependency analysis on ${projectRoot}`);
|
|
212
|
+
const analysis = {
|
|
213
|
+
projectRoot,
|
|
214
|
+
dependencies: await this.analyzeDependencies(projectRoot, focusAreas),
|
|
215
|
+
coupling: await this.assessCoupling(projectRoot),
|
|
216
|
+
circularDeps: await this.detectCircularDependencies(projectRoot),
|
|
217
|
+
graphs: includeGraphs
|
|
218
|
+
? await this.generateDependencyGraphs(projectRoot)
|
|
219
|
+
: undefined,
|
|
220
|
+
recommendations: await this.generateDependencyRecommendations(projectRoot),
|
|
221
|
+
analyzedAt: new Date().toISOString(),
|
|
222
|
+
};
|
|
223
|
+
return {
|
|
224
|
+
content: [
|
|
225
|
+
{
|
|
226
|
+
type: "text",
|
|
227
|
+
text: JSON.stringify(analysis, null, 2),
|
|
228
|
+
},
|
|
229
|
+
],
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
async architectureAssessment(args) {
|
|
233
|
+
const { projectRoot, assessmentType = "comprehensive", focusMetrics, } = args;
|
|
234
|
+
console.log(`🏗️ Architect Tool: Performing architecture assessment on ${projectRoot}`);
|
|
235
|
+
const assessment = {
|
|
236
|
+
projectRoot,
|
|
237
|
+
assessmentType,
|
|
238
|
+
scores: await this.calculateArchitecturalScores(projectRoot, focusMetrics),
|
|
239
|
+
issues: await this.identifyArchitecturalIssues(projectRoot),
|
|
240
|
+
patterns: await this.recognizeArchitecturalPatterns(projectRoot),
|
|
241
|
+
recommendations: await this.generateArchitecturalRecommendations(projectRoot),
|
|
242
|
+
healthScore: await this.calculateOverallHealthScore(projectRoot),
|
|
243
|
+
analyzedAt: new Date().toISOString(),
|
|
244
|
+
};
|
|
245
|
+
return {
|
|
246
|
+
content: [
|
|
247
|
+
{
|
|
248
|
+
type: "text",
|
|
249
|
+
text: JSON.stringify(assessment, null, 2),
|
|
250
|
+
},
|
|
251
|
+
],
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
// Implementation helpers (simplified versions of the actual architect-tools logic)
|
|
255
|
+
async analyzeProjectStructure(projectRoot) {
|
|
256
|
+
const files = await this.getProjectFiles(projectRoot);
|
|
257
|
+
const directories = await this.getProjectDirectories(projectRoot);
|
|
258
|
+
return {
|
|
259
|
+
totalFiles: files.length,
|
|
260
|
+
totalDirectories: directories.length,
|
|
261
|
+
fileTypes: this.groupByExtension(files),
|
|
262
|
+
directoryDepth: this.calculateMaxDepth(directories),
|
|
263
|
+
largestFiles: files
|
|
264
|
+
.map((f) => ({ path: f, size: fs.statSync(f).size }))
|
|
265
|
+
.sort((a, b) => b.size - a.size)
|
|
266
|
+
.slice(0, 5),
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
async identifyPatterns(projectRoot) {
|
|
270
|
+
const files = await this.getProjectFiles(projectRoot);
|
|
271
|
+
const patterns = [];
|
|
272
|
+
// Simple pattern detection
|
|
273
|
+
const hasControllers = files.some((f) => f.includes("controller"));
|
|
274
|
+
const hasServices = files.some((f) => f.includes("service"));
|
|
275
|
+
const hasModels = files.some((f) => f.includes("model"));
|
|
276
|
+
if (hasControllers && hasModels)
|
|
277
|
+
patterns.push("MVC Pattern");
|
|
278
|
+
if (hasServices)
|
|
279
|
+
patterns.push("Service Layer");
|
|
280
|
+
if (files.some((f) => f.includes("repository")))
|
|
281
|
+
patterns.push("Repository Pattern");
|
|
282
|
+
return patterns;
|
|
283
|
+
}
|
|
284
|
+
async assessComplexity(projectRoot) {
|
|
285
|
+
const files = await this.getProjectFiles(projectRoot);
|
|
286
|
+
let totalComplexity = 0;
|
|
287
|
+
let totalLines = 0;
|
|
288
|
+
for (const file of files.slice(0, 20)) {
|
|
289
|
+
// Sample for performance
|
|
290
|
+
try {
|
|
291
|
+
const content = fs.readFileSync(file, "utf8");
|
|
292
|
+
const lines = content.split("\n").length;
|
|
293
|
+
const complexity = Math.floor(lines / 50) + 1; // Simple heuristic
|
|
294
|
+
totalComplexity += complexity;
|
|
295
|
+
totalLines += lines;
|
|
296
|
+
}
|
|
297
|
+
catch (error) {
|
|
298
|
+
// Skip unreadable files
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
return {
|
|
302
|
+
averageComplexity: totalComplexity / Math.max(1, Math.min(files.length, 20)),
|
|
303
|
+
totalLinesOfCode: totalLines,
|
|
304
|
+
estimatedFunctions: Math.floor(totalLines / 20), // Rough estimate
|
|
305
|
+
estimatedClasses: Math.floor(totalLines / 100),
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
async mapDependencies(projectRoot) {
|
|
309
|
+
const files = await this.getProjectFiles(projectRoot);
|
|
310
|
+
const dependencies = {};
|
|
311
|
+
for (const file of files.slice(0, 10)) {
|
|
312
|
+
// Sample for performance
|
|
313
|
+
try {
|
|
314
|
+
const content = fs.readFileSync(file, "utf8");
|
|
315
|
+
const imports = this.extractImports(content);
|
|
316
|
+
dependencies[file] = imports;
|
|
317
|
+
}
|
|
318
|
+
catch (error) {
|
|
319
|
+
dependencies[file] = [];
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
return {
|
|
323
|
+
dependencyMap: dependencies,
|
|
324
|
+
totalDependencies: Object.values(dependencies).flat().length,
|
|
325
|
+
averageDependenciesPerFile: Object.values(dependencies).flat().length /
|
|
326
|
+
Object.keys(dependencies).length,
|
|
327
|
+
};
|
|
328
|
+
}
|
|
329
|
+
async buildDirectoryHierarchy(projectRoot, maxDepth) {
|
|
330
|
+
const traverse = (dirPath, currentDepth) => {
|
|
331
|
+
if (currentDepth >= maxDepth)
|
|
332
|
+
return { truncated: true };
|
|
333
|
+
try {
|
|
334
|
+
const entries = fs.readdirSync(dirPath, { withFileTypes: true });
|
|
335
|
+
const result = {
|
|
336
|
+
name: path.basename(dirPath),
|
|
337
|
+
path: path.relative(projectRoot, dirPath),
|
|
338
|
+
type: "directory",
|
|
339
|
+
children: [],
|
|
340
|
+
};
|
|
341
|
+
for (const entry of entries) {
|
|
342
|
+
if (this.shouldIgnorePath(path.join(dirPath, entry.name)))
|
|
343
|
+
continue;
|
|
344
|
+
if (entry.isDirectory()) {
|
|
345
|
+
result.children.push(traverse(path.join(dirPath, entry.name), currentDepth + 1));
|
|
346
|
+
}
|
|
347
|
+
else {
|
|
348
|
+
result.children.push({
|
|
349
|
+
name: entry.name,
|
|
350
|
+
type: "file",
|
|
351
|
+
extension: path.extname(entry.name),
|
|
352
|
+
});
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
return result;
|
|
356
|
+
}
|
|
357
|
+
catch (error) {
|
|
358
|
+
return {
|
|
359
|
+
error: error instanceof Error ? error.message : String(error),
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
return traverse(projectRoot, 0);
|
|
364
|
+
}
|
|
365
|
+
async calculateStructureMetrics(projectRoot) {
|
|
366
|
+
const files = await this.getProjectFiles(projectRoot);
|
|
367
|
+
return {
|
|
368
|
+
totalFiles: files.length,
|
|
369
|
+
fileTypeDistribution: this.groupByExtension(files),
|
|
370
|
+
averageFileSize: files.reduce((sum, f) => sum + fs.statSync(f).size, 0) / files.length,
|
|
371
|
+
largestFile: files
|
|
372
|
+
.map((f) => ({ path: f, size: fs.statSync(f).size }))
|
|
373
|
+
.sort((a, b) => b.size - a.size)[0],
|
|
374
|
+
};
|
|
375
|
+
}
|
|
376
|
+
async analyzeDependencies(projectRoot, focusAreas) {
|
|
377
|
+
const files = await this.getProjectFiles(projectRoot);
|
|
378
|
+
// Simple dependency analysis
|
|
379
|
+
const dependencies = {};
|
|
380
|
+
let circularDeps = 0;
|
|
381
|
+
for (const file of files.slice(0, 10)) {
|
|
382
|
+
try {
|
|
383
|
+
const content = fs.readFileSync(file, "utf8");
|
|
384
|
+
dependencies[file] = this.extractImports(content);
|
|
385
|
+
}
|
|
386
|
+
catch (error) {
|
|
387
|
+
dependencies[file] = [];
|
|
388
|
+
}
|
|
389
|
+
}
|
|
390
|
+
return {
|
|
391
|
+
totalDependencies: Object.values(dependencies).flat().length,
|
|
392
|
+
uniqueDependencies: Array.from(new Set(Object.values(dependencies).flat())).length,
|
|
393
|
+
circularDependencies: circularDeps,
|
|
394
|
+
mostDependantFile: Object.entries(dependencies).sort(([, a], [, b]) => b.length - a.length)[0],
|
|
395
|
+
};
|
|
396
|
+
}
|
|
397
|
+
async assessCoupling(projectRoot) {
|
|
398
|
+
// Simplified coupling assessment
|
|
399
|
+
return {
|
|
400
|
+
afferentCoupling: 0, // Incoming dependencies
|
|
401
|
+
efferentCoupling: 0, // Outgoing dependencies
|
|
402
|
+
instability: 0.5,
|
|
403
|
+
abstractness: 0.3,
|
|
404
|
+
};
|
|
405
|
+
}
|
|
406
|
+
async detectCircularDependencies(projectRoot) {
|
|
407
|
+
// Simplified circular dependency detection
|
|
408
|
+
return []; // Would implement proper cycle detection
|
|
409
|
+
}
|
|
410
|
+
async generateDependencyGraphs(projectRoot) {
|
|
411
|
+
// Would generate graphviz or similar format
|
|
412
|
+
return { format: "graphviz", data: "digraph { A -> B; }" };
|
|
413
|
+
}
|
|
414
|
+
async generateDependencyRecommendations(projectRoot) {
|
|
415
|
+
return [
|
|
416
|
+
"Consider introducing interface boundaries to reduce coupling",
|
|
417
|
+
"Review circular dependencies and break them with dependency inversion",
|
|
418
|
+
"Evaluate orphan modules for potential dead code",
|
|
419
|
+
];
|
|
420
|
+
}
|
|
421
|
+
async calculateArchitecturalScores(projectRoot, focusMetrics) {
|
|
422
|
+
return {
|
|
423
|
+
modularity: 75,
|
|
424
|
+
coupling: 65,
|
|
425
|
+
cohesion: 80,
|
|
426
|
+
testability: 70,
|
|
427
|
+
scalability: 72,
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
async identifyArchitecturalIssues(projectRoot) {
|
|
431
|
+
return [
|
|
432
|
+
{
|
|
433
|
+
severity: "medium",
|
|
434
|
+
category: "coupling",
|
|
435
|
+
description: "Some modules have high coupling",
|
|
436
|
+
recommendation: "Consider introducing facades or adapters",
|
|
437
|
+
},
|
|
438
|
+
];
|
|
439
|
+
}
|
|
440
|
+
async recognizeArchitecturalPatterns(projectRoot) {
|
|
441
|
+
const files = await this.getProjectFiles(projectRoot);
|
|
442
|
+
const patterns = [];
|
|
443
|
+
if (files.some((f) => f.includes("controller")))
|
|
444
|
+
patterns.push("MVC Controllers");
|
|
445
|
+
if (files.some((f) => f.includes("service")))
|
|
446
|
+
patterns.push("Service Layer");
|
|
447
|
+
if (files.some((f) => f.includes("repository")))
|
|
448
|
+
patterns.push("Repository Pattern");
|
|
449
|
+
return patterns;
|
|
450
|
+
}
|
|
451
|
+
async generateArchitecturalRecommendations(projectRoot) {
|
|
452
|
+
return [
|
|
453
|
+
"Consider implementing a layered architecture",
|
|
454
|
+
"Introduce dependency injection to reduce coupling",
|
|
455
|
+
"Add comprehensive error handling and logging",
|
|
456
|
+
];
|
|
457
|
+
}
|
|
458
|
+
async calculateOverallHealthScore(projectRoot) {
|
|
459
|
+
// Simplified health score calculation
|
|
460
|
+
return 78;
|
|
461
|
+
}
|
|
462
|
+
// Utility methods
|
|
463
|
+
async getProjectFiles(projectRoot) {
|
|
464
|
+
const files = [];
|
|
465
|
+
const traverse = (dir) => {
|
|
466
|
+
try {
|
|
467
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
468
|
+
for (const entry of entries) {
|
|
469
|
+
const entryPath = path.join(dir, entry.name);
|
|
470
|
+
if (this.shouldIgnorePath(entryPath))
|
|
471
|
+
continue;
|
|
472
|
+
if (entry.isFile()) {
|
|
473
|
+
files.push(entryPath);
|
|
474
|
+
}
|
|
475
|
+
else if (entry.isDirectory()) {
|
|
476
|
+
traverse(entryPath);
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
catch (error) {
|
|
481
|
+
// Skip inaccessible directories
|
|
482
|
+
}
|
|
483
|
+
};
|
|
484
|
+
traverse(projectRoot);
|
|
485
|
+
return files;
|
|
486
|
+
}
|
|
487
|
+
async getProjectDirectories(projectRoot) {
|
|
488
|
+
const dirs = [];
|
|
489
|
+
const traverse = (dir) => {
|
|
490
|
+
dirs.push(dir);
|
|
491
|
+
try {
|
|
492
|
+
const entries = fs.readdirSync(dir, { withFileTypes: true });
|
|
493
|
+
for (const entry of entries) {
|
|
494
|
+
const entryPath = path.join(dir, entry.name);
|
|
495
|
+
if (this.shouldIgnorePath(entryPath))
|
|
496
|
+
continue;
|
|
497
|
+
if (entry.isDirectory()) {
|
|
498
|
+
traverse(entryPath);
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
catch (error) {
|
|
503
|
+
// Skip inaccessible directories
|
|
504
|
+
}
|
|
505
|
+
};
|
|
506
|
+
traverse(projectRoot);
|
|
507
|
+
return dirs;
|
|
508
|
+
}
|
|
509
|
+
groupByExtension(files) {
|
|
510
|
+
const groups = {};
|
|
511
|
+
for (const file of files) {
|
|
512
|
+
const ext = path.extname(file) || "no-extension";
|
|
513
|
+
groups[ext] = (groups[ext] || 0) + 1;
|
|
514
|
+
}
|
|
515
|
+
return groups;
|
|
516
|
+
}
|
|
517
|
+
calculateMaxDepth(directories) {
|
|
518
|
+
return Math.max(...directories.map((dir) => dir.split("/").length));
|
|
519
|
+
}
|
|
520
|
+
extractImports(content) {
|
|
521
|
+
const imports = [];
|
|
522
|
+
const importRegex = /import\s+.*?\s+from\s+['"]([^'"]+)['"]/g;
|
|
523
|
+
let match;
|
|
524
|
+
while ((match = importRegex.exec(content)) !== null) {
|
|
525
|
+
const importPath = match[1];
|
|
526
|
+
if (importPath &&
|
|
527
|
+
!importPath.startsWith(".") &&
|
|
528
|
+
!importPath.startsWith("/")) {
|
|
529
|
+
imports.push(importPath);
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
return imports;
|
|
533
|
+
}
|
|
534
|
+
shouldIgnorePath(filePath) {
|
|
535
|
+
const ignorePatterns = [
|
|
536
|
+
/node_modules/,
|
|
537
|
+
/\.git/,
|
|
538
|
+
/dist/,
|
|
539
|
+
/build/,
|
|
540
|
+
/\.next/,
|
|
541
|
+
/\.nuxt/,
|
|
542
|
+
/\.cache/,
|
|
543
|
+
/\.temp/,
|
|
544
|
+
/coverage/,
|
|
545
|
+
/\.nyc_output/,
|
|
546
|
+
/logs/,
|
|
547
|
+
/\.DS_Store/,
|
|
548
|
+
/Thumbs\.db/,
|
|
549
|
+
];
|
|
550
|
+
return ignorePatterns.some((pattern) => pattern.test(filePath));
|
|
551
|
+
}
|
|
552
|
+
async run() {
|
|
553
|
+
const transport = new StdioServerTransport();
|
|
554
|
+
await this.server.connect(transport);
|
|
555
|
+
console.log("StrRay Architect Tools MCP Server started");
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
if (import.meta.url === `file://${process.argv[1]}`) {
|
|
559
|
+
const server = new StrRayArchitectToolsServer();
|
|
560
|
+
server.run().catch(console.error);
|
|
561
|
+
}
|
|
562
|
+
export default StrRayArchitectToolsServer;
|
|
563
|
+
//# sourceMappingURL=architect-tools.server.js.map
|