stringray-ai 1.0.15 → 1.0.17
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/package.json +3 -2
- package/scripts/test-stringray-plugin.mjs +106 -6
- package/src/.!41528!.DS_Store +0 -0
- package/src/__tests__/agents/architect.test.ts +108 -0
- package/src/__tests__/agents/bug-triage-specialist.test.ts +246 -0
- package/src/__tests__/agents/code-reviewer.test.ts +242 -0
- package/src/__tests__/agents/enforcer.test.ts +179 -0
- package/src/__tests__/agents/index.test.ts +135 -0
- package/src/__tests__/agents/orchestrator.test.ts +228 -0
- package/src/__tests__/agents/refactorer.test.ts +248 -0
- package/src/__tests__/agents/security-auditor.test.ts +234 -0
- package/src/__tests__/agents/test-architect.test.ts +256 -0
- package/src/__tests__/agents/types.test.ts +210 -0
- package/src/__tests__/framework-enforcement-integration.test.ts +252 -0
- package/src/__tests__/framework-logger-persistence.test.ts +156 -0
- package/src/__tests__/integration/codex-enforcement-e2e.test.ts +195 -0
- package/src/__tests__/integration/codex-enforcement.test.ts +237 -0
- package/src/__tests__/integration/commit-batching-enforcement-integration.test.ts +343 -0
- package/src/__tests__/integration/context-providers-integration.test.ts +302 -0
- package/src/__tests__/integration/delegation-system.test.ts +263 -0
- package/src/__tests__/integration/e2e-framework-integration.test.ts +1524 -0
- package/src/__tests__/integration/framework-init.test.ts +325 -0
- package/src/__tests__/integration/json-codex-integration.test.ts +332 -0
- package/src/__tests__/integration/oh-my-opencode-integration.test.ts +240 -0
- package/src/__tests__/integration/orchestration-e2e.test.ts +176 -0
- package/src/__tests__/integration/orchestrator/basic-orchestrator.test.ts +53 -0
- package/src/__tests__/integration/orchestrator/concurrent-execution.test.ts +64 -0
- package/src/__tests__/integration/orchestrator/dependency-handling.test.ts +78 -0
- package/src/__tests__/integration/orchestrator-integration.test.ts.disabled +1279 -0
- package/src/__tests__/integration/postprocessor-integration.test.ts +64 -0
- package/src/__tests__/integration/security/security-integration.test.ts +160 -0
- package/src/__tests__/integration/server.test.ts +187 -0
- package/src/__tests__/integration/session-cleanup-validation.test.ts +612 -0
- package/src/__tests__/integration/session-lifecycle.test.ts +450 -0
- package/src/__tests__/integration/session-management.test.ts +168 -0
- package/src/__tests__/integration/session-monitoring-integration.test.ts +644 -0
- package/src/__tests__/integration/session-state-sharing.test.ts +601 -0
- package/src/__tests__/performance/enterprise-performance-tests.ts +1030 -0
- package/src/__tests__/performance/performance-system.test.ts +408 -0
- package/src/__tests__/plugins/marketplace-service.test.ts +1542 -0
- package/src/__tests__/plugins/marketplace-service.test.ts.disabled +1516 -0
- package/src/__tests__/postprocessor/escalation/EscalationEngine.test.ts +205 -0
- package/src/__tests__/postprocessor/success/SuccessHandler.test.ts +258 -0
- package/src/__tests__/setup.ts +184 -0
- package/src/__tests__/test-integration.ts +2 -0
- package/src/__tests__/test-processor.ts +1 -0
- package/src/__tests__/unit/agent-delegator.test.ts +949 -0
- package/src/__tests__/unit/analytics.test.ts +192 -0
- package/src/__tests__/unit/ast-code-parser.test.ts +342 -0
- package/src/__tests__/unit/benchmark.test.ts +201 -0
- package/src/__tests__/unit/blocked-test.test.ts +8 -0
- package/src/__tests__/unit/boot-orchestrator.test.ts +182 -0
- package/src/__tests__/unit/codebase-context-analyzer.test.ts +375 -0
- package/src/__tests__/unit/codex-injector.test.ts +282 -0
- package/src/__tests__/unit/codex-parser.test.ts +296 -0
- package/src/__tests__/unit/context-loader.test.ts +723 -0
- package/src/__tests__/unit/dependency-graph-builder.test.ts +531 -0
- package/src/__tests__/unit/monitoring.test.ts +115 -0
- package/src/__tests__/unit/orchestrator.test.ts +212 -0
- package/src/__tests__/unit/processor-activation.test.ts +862 -0
- package/src/__tests__/unit/rule-enforcer.test.ts +363 -0
- package/src/__tests__/unit/security/security-auditor.test.ts +226 -0
- package/src/__tests__/unit/security/security-hardener.test.ts +404 -0
- package/src/__tests__/unit/security/security-headers.test.ts +255 -0
- package/src/__tests__/unit/session-coordination-validator.test.ts +184 -0
- package/src/__tests__/unit/session-health-monitoring.test.ts +161 -0
- package/src/__tests__/unit/session-migration-logic.test.ts +153 -0
- package/src/__tests__/unit/session-migration-validator.test.ts +130 -0
- package/src/__tests__/unit/session-security-validator.test.ts +87 -0
- package/src/__tests__/unit/state-manager-persistence.test.ts +301 -0
- package/src/__tests__/unit/state-manager.test.ts +205 -0
- package/src/__tests__/utils/mock-framework.ts +392 -0
- package/src/__tests__/utils/mock-server.ts +72 -0
- package/src/__tests__/utils/test-data.ts +130 -0
- package/src/__tests__/utils/test-helpers.ts +640 -0
- package/src/__tests__/utils/test-utils.ts +241 -0
- package/src/agents/architect.ts +86 -0
- package/src/agents/bug-triage-specialist.ts +68 -0
- package/src/agents/code-reviewer.ts +68 -0
- package/src/agents/enforcer.ts +111 -0
- package/src/agents/index.ts +40 -0
- package/src/agents/librarian.ts +73 -0
- package/src/agents/log-monitor.ts +104 -0
- package/src/agents/orchestrator.ts +87 -0
- package/src/agents/refactorer.ts +69 -0
- package/src/agents/security-auditor.ts +68 -0
- package/src/agents/sisyphus.ts +59 -0
- package/src/agents/test-architect.ts +83 -0
- package/src/agents/types.ts +34 -0
- package/src/analytics/predictive-analytics.ts +558 -0
- package/src/architect/architect-tools.ts +736 -0
- package/src/architectural-integrity.ts +117 -0
- package/src/benchmark/performance-benchmark.ts +552 -0
- package/src/boot-orchestrator.ts +876 -0
- package/src/circuit-breaker/circuit-breaker.ts +453 -0
- package/src/cli/auth.ts +92 -0
- package/src/cli/auth.ts.backup +89 -0
- package/src/cli/index.ts +230 -0
- package/src/cli/status.ts +164 -0
- package/src/codex-injector.ts +629 -0
- package/src/config-loader.ts +193 -0
- package/src/context-loader.ts +402 -0
- package/src/cross-language-bridge.ts +324 -0
- package/src/dashboards/alert-engine.ts +939 -0
- package/src/dashboards/dashboard-ui-engine.ts +1029 -0
- package/src/dashboards/index.ts +65 -0
- package/src/dashboards/live-metrics-collector.ts +902 -0
- package/src/dashboards/websocket-gateway.ts +788 -0
- package/src/delegation/agent-delegator.ts +1354 -0
- package/src/delegation/ast-code-parser.ts +978 -0
- package/src/delegation/codebase-context-analyzer.ts +1483 -0
- package/src/delegation/complexity-analyzer.ts +343 -0
- package/src/delegation/dependency-graph-builder.ts +620 -0
- package/src/delegation/index.ts +42 -0
- package/src/delegation/session-coordinator.ts +555 -0
- package/src/distributed/failover-manager.ts +622 -0
- package/src/distributed/load-balancer.ts +691 -0
- package/src/distributed/raft-consensus.ts +621 -0
- package/src/distributed/state-manager.ts +646 -0
- package/src/enforcement/enforcer-tools.ts +613 -0
- package/src/enforcement/rule-enforcer.ts +1823 -0
- package/src/enforcement/test-auto-healing.ts +472 -0
- package/src/enterprise-monitoring-config.ts +1010 -0
- package/src/enterprise-monitoring.ts +1986 -0
- package/src/framework-console.ts +28 -0
- package/src/framework-logger.ts +125 -0
- package/src/hooks/framework-hooks.ts +17 -0
- package/src/hooks/hook-types.ts +13 -0
- package/src/hooks/index.ts +10 -0
- package/src/hooks/validation-hooks.ts +66 -0
- package/src/index.ts +34 -0
- package/src/infrastructure/iac-validator.ts +554 -0
- package/src/infrastructure/schemas/cloud-schemas.ts +589 -0
- package/src/integrations/core/strray-integration.ts +684 -0
- package/src/logging-config.ts +63 -0
- package/src/mcp-client.ts +404 -0
- package/src/mcps/architect-tools.server.ts +688 -0
- package/src/mcps/architect-tools.server.ts.bak +681 -0
- package/src/mcps/auto-format.server.ts +484 -0
- package/src/mcps/auto-format.server.ts.bak +477 -0
- package/src/mcps/boot-orchestrator.server.ts +1024 -0
- package/src/mcps/boot-orchestrator.server.ts.bak +1017 -0
- package/src/mcps/enforcer-tools.server.ts +839 -0
- package/src/mcps/enforcer-tools.server.ts.bak +832 -0
- package/src/mcps/enhanced-orchestrator.server.ts +291 -0
- package/src/mcps/framework-compliance-audit.server.ts +610 -0
- package/src/mcps/framework-compliance-audit.server.ts.bak +603 -0
- package/src/mcps/knowledge-skills/api-design.server.ts +143 -0
- package/src/mcps/knowledge-skills/api-design.server.ts.bak +136 -0
- package/src/mcps/knowledge-skills/architecture-patterns.server.ts +135 -0
- package/src/mcps/knowledge-skills/architecture-patterns.server.ts.bak +128 -0
- package/src/mcps/knowledge-skills/code-review.server.ts +1027 -0
- package/src/mcps/knowledge-skills/code-review.server.ts.bak +1020 -0
- package/src/mcps/knowledge-skills/database-design.server.ts +1156 -0
- package/src/mcps/knowledge-skills/database-design.server.ts.bak +1149 -0
- package/src/mcps/knowledge-skills/devops-deployment.server.ts +1479 -0
- package/src/mcps/knowledge-skills/devops-deployment.server.ts.bak +1472 -0
- package/src/mcps/knowledge-skills/documentation-generation.server.ts +1587 -0
- package/src/mcps/knowledge-skills/documentation-generation.server.ts.bak +1580 -0
- package/src/mcps/knowledge-skills/git-workflow.server.ts +134 -0
- package/src/mcps/knowledge-skills/git-workflow.server.ts.bak +127 -0
- package/src/mcps/knowledge-skills/performance-optimization.server.ts +129 -0
- package/src/mcps/knowledge-skills/performance-optimization.server.ts.bak +122 -0
- package/src/mcps/knowledge-skills/project-analysis.server.ts +897 -0
- package/src/mcps/knowledge-skills/project-analysis.server.ts.bak +890 -0
- package/src/mcps/knowledge-skills/refactoring-strategies.server.ts +986 -0
- package/src/mcps/knowledge-skills/refactoring-strategies.server.ts.bak +979 -0
- package/src/mcps/knowledge-skills/security-audit.server.ts +1088 -0
- package/src/mcps/knowledge-skills/security-audit.server.ts.bak +1081 -0
- package/src/mcps/knowledge-skills/testing-best-practices.server.ts +1078 -0
- package/src/mcps/knowledge-skills/testing-best-practices.server.ts.bak +1071 -0
- package/src/mcps/knowledge-skills/testing-strategy.server.ts +898 -0
- package/src/mcps/knowledge-skills/testing-strategy.server.ts.bak +891 -0
- package/src/mcps/knowledge-skills/ui-ux-design.server.ts +1325 -0
- package/src/mcps/knowledge-skills/ui-ux-design.server.ts.bak +1318 -0
- package/src/mcps/lint.server.ts +397 -0
- package/src/mcps/lint.server.ts.bak +390 -0
- package/src/mcps/model-health-check.server.ts +270 -0
- package/src/mcps/model-health-check.server.ts.bak +263 -0
- package/src/mcps/orchestrator.server.ts +1101 -0
- package/src/mcps/performance-analysis.server.ts +647 -0
- package/src/mcps/performance-analysis.server.ts.bak +640 -0
- package/src/mcps/processor-pipeline.server.ts +647 -0
- package/src/mcps/processor-pipeline.server.ts.bak +640 -0
- package/src/mcps/security-scan.server.ts +483 -0
- package/src/mcps/security-scan.server.ts.bak +476 -0
- package/src/mcps/state-manager.server.ts +692 -0
- package/src/mcps/state-manager.server.ts.bak +685 -0
- package/src/monitoring/advanced-monitor.ts +735 -0
- package/src/monitoring/advanced-profiler.js +230 -0
- package/src/monitoring/advanced-profiler.ts +310 -0
- package/src/monitoring/enterprise-monitoring-system.js +838 -0
- package/src/monitoring/enterprise-monitoring-system.ts +1157 -0
- package/src/monitoring/memory-monitor.ts +380 -0
- package/src/monitoring/metrics-endpoint.ts +165 -0
- package/src/new-feature.test.ts +6 -0
- package/src/optimization/performance-optimizer.ts +728 -0
- package/src/orchestrator/enhanced-multi-agent-orchestrator.ts +511 -0
- package/src/orchestrator/intelligent-commit-batcher.ts +471 -0
- package/src/orchestrator.ts +640 -0
- package/src/performance/README.md +661 -0
- package/src/performance/advanced-regression-testing.ts +831 -0
- package/src/performance/automated-benchmarking-suite.ts +810 -0
- package/src/performance/index.ts +33 -0
- package/src/performance/performance-budget-enforcer.ts +603 -0
- package/src/performance/performance-ci-gates.ts +611 -0
- package/src/performance/performance-monitoring-dashboard.ts +612 -0
- package/src/performance/performance-regression-tester.ts +511 -0
- package/src/performance/performance-system-orchestrator.ts +352 -0
- package/src/plugins/marketplace/marketplace-service.ts +811 -0
- package/src/plugins/marketplace/marketplace-types.ts +587 -0
- package/src/plugins/plugin-system.ts +588 -0
- package/src/plugins/stringray-codex-injection.ts +291 -0
- package/src/postprocessor/PostProcessor.ts +847 -0
- package/src/postprocessor/analysis/FailureAnalysisEngine.ts +328 -0
- package/src/postprocessor/autofix/AutoFixEngine.ts +317 -0
- package/src/postprocessor/autofix/FixValidator.ts +200 -0
- package/src/postprocessor/config.ts +84 -0
- package/src/postprocessor/escalation/EscalationEngine.ts +339 -0
- package/src/postprocessor/monitoring/MonitoringEngine.ts +143 -0
- package/src/postprocessor/redeploy/RedeployCoordinator.ts +460 -0
- package/src/postprocessor/redeploy/RetryHandler.ts +155 -0
- package/src/postprocessor/success/SuccessHandler.ts +215 -0
- package/src/postprocessor/triggers/APITrigger.ts +22 -0
- package/src/postprocessor/triggers/GitHookTrigger.ts +307 -0
- package/src/postprocessor/triggers/WebhookTrigger.ts +23 -0
- package/src/postprocessor/types.ts +214 -0
- package/src/postprocessor/validation/ComprehensiveValidator.ts +357 -0
- package/src/postprocessor/validation/HookMetricsCollector.ts +208 -0
- package/src/postprocessor/validation/LightweightValidator.ts +287 -0
- package/src/processors/index.ts +12 -0
- package/src/processors/processor-manager.ts +702 -0
- package/src/processors/processor-types.ts +55 -0
- package/src/processors/refactoring-logging-processor.ts +334 -0
- package/src/processors/refactoring-logging-processor.ts.backup +237 -0
- package/src/reporting/framework-reporting-system.ts +1086 -0
- package/src/scaling/predictive-scaling-engine.ts +213 -0
- package/src/security/examples.ts +173 -0
- package/src/security/index.ts +19 -0
- package/src/security/prompt-security-validator.ts +199 -0
- package/src/security/secure-authentication-system.ts +723 -0
- package/src/security/security-auditor.ts +720 -0
- package/src/security/security-hardener.ts +258 -0
- package/src/security/security-hardening-system.js +660 -0
- package/src/security/security-hardening-system.ts +855 -0
- package/src/security/security-headers.ts +149 -0
- package/src/security/security-middleware.ts +261 -0
- package/src/security/security-scanner.ts +558 -0
- package/src/server.ts +128 -0
- package/src/session/index.ts +13 -0
- package/src/session/session-cleanup-manager.ts +442 -0
- package/src/session/session-monitor.ts +528 -0
- package/src/session/session-state-manager.ts +782 -0
- package/src/simulation/codex-rule-simulations.ts +1168 -0
- package/src/simulation/complete-end-to-end-simulation.ts +236 -0
- package/src/simulation/distributed-session-simulation.ts +317 -0
- package/src/simulation/session-persistence-simulation.ts +342 -0
- package/src/simulation/session-recovery-simulation.ts +431 -0
- package/src/state/context-providers.ts +4 -0
- package/src/state/index.ts +9 -0
- package/src/state/state-manager.ts +209 -0
- package/src/state/state-types.ts +6 -0
- package/src/streaming/real-time-streaming-service.ts +581 -0
- package/src/strray/.strray/state/test_agent_10f937a8-2991-4314-b893-5379e485944a.json +17 -0
- package/src/strray/.strray/state/test_agent_1817a105-2485-4973-92eb-30ad4b87ff23.json +17 -0
- package/src/strray/.strray/state/test_agent_3b9bf397-dda2-4a4a-9806-97d9ddfef952.json +17 -0
- package/src/strray/.strray/state/test_agent_5589e062-22c8-4fae-9a12-43ed9948ee0c.json +17 -0
- package/src/strray/.strray/state/test_agent_661ef184-22c6-408a-a671-76a067838661.json +17 -0
- package/src/strray/.strray/state/test_agent_6a6c5d90-5f32-45cc-bb18-0c92c619c2c4.json +17 -0
- package/src/strray/.strray/state/test_agent_77011d2c-d484-48f7-9950-fb22f9ff0d7c.json +17 -0
- package/src/strray/.strray/state/test_agent_840f4fd0-5710-4e5d-9153-bdb51fc3864b.json +17 -0
- package/src/strray/.strray/state/test_agent_abcef05c-ad81-4684-b68e-423b13235bee.json +17 -0
- package/src/strray/.strray/state/test_agent_b9cebeed-d1bb-4098-9589-05c3cce1d9e9.json +17 -0
- package/src/strray/.strray/state/test_agent_c7922696-1aae-448f-9f26-e1f1e06129d2.json +17 -0
- package/src/strray/.strray/state/test_agent_d53c3242-3400-4882-977f-ed6b6c4a15bd.json +17 -0
- package/src/strray/.strray/state/test_agent_d5e2d94e-efcb-46fc-8910-3125aab7cbdf.json +17 -0
- package/src/strray/.strray/state/test_agent_da4becfb-b7f0-4a56-a4d4-88f7e1621cca.json +17 -0
- package/src/strray/.strray/state/test_agent_ea66f826-1dc5-48c7-9c15-22967ee11689.json +17 -0
- package/src/strray/.strray/state/test_agent_eb14256f-3690-4441-95b5-a4fa4ebd27ee.json +17 -0
- package/src/strray/.strray/state/test_agent_ec78b8ac-4dab-4d0b-bd20-bf772564a36f.json +17 -0
- package/src/strray/.strray/state/test_codex_agent_test_session.json +17 -0
- package/src/strray/__init__.py +4 -0
- package/src/strray/__pycache__/.!41752!security.cpython-313.pyc +0 -0
- package/src/strray/__pycache__/.!41753!__init__.cpython-313.pyc +0 -0
- package/src/strray/__pycache__/__init__.cpython-313.pyc +0 -0
- package/src/strray/__pycache__/security.cpython-313.pyc +0 -0
- package/src/strray/ai/__init__.py +5 -0
- package/src/strray/ai/service.py +61 -0
- package/src/strray/config/__init__.py +5 -0
- package/src/strray/config/__pycache__/.!41747!manager.cpython-313.pyc +0 -0
- package/src/strray/config/__pycache__/.!41748!__init__.cpython-313.pyc +0 -0
- package/src/strray/config/__pycache__/__init__.cpython-313.pyc +0 -0
- package/src/strray/config/__pycache__/manager.cpython-313.pyc +0 -0
- package/src/strray/config/manager.py +236 -0
- package/src/strray/core/__init__.py +13 -0
- package/src/strray/core/__pycache__/.!41737!codex_loader.cpython-313.pyc +0 -0
- package/src/strray/core/__pycache__/.!41738!context_loader.cpython-313.pyc +0 -0
- package/src/strray/core/__pycache__/.!41739!agent.cpython-313.pyc +0 -0
- package/src/strray/core/__pycache__/.!41740!__init__.cpython-313.pyc +0 -0
- package/src/strray/core/__pycache__/__init__.cpython-313.pyc +0 -0
- package/src/strray/core/__pycache__/agent.cpython-313.pyc +0 -0
- package/src/strray/core/__pycache__/codex_loader.cpython-313.pyc +0 -0
- package/src/strray/core/__pycache__/context_loader.cpython-313.pyc +0 -0
- package/src/strray/core/agent.py +1674 -0
- package/src/strray/core/codex_loader.py +1327 -0
- package/src/strray/core/context_loader.py +165 -0
- package/src/strray/core/orchestration.py +483 -0
- package/src/strray/core/test_baseagent_codex.py +103 -0
- package/src/strray/model_router.py +111 -0
- package/src/strray/performance/__init__.py +5 -0
- package/src/strray/performance/__pycache__/.!41778!monitor.cpython-313.pyc +0 -0
- package/src/strray/performance/__pycache__/.!41779!__init__.cpython-313.pyc +0 -0
- package/src/strray/performance/__pycache__/__init__.cpython-313.pyc +0 -0
- package/src/strray/performance/__pycache__/monitor.cpython-313.pyc +0 -0
- package/src/strray/performance/monitor.py +76 -0
- package/src/strray/security.py +71 -0
- package/src/strray-activation.ts +231 -0
- package/src/strray-init.ts +37 -0
- package/src/test-utils/test-delegation-logging.ts +44 -0
- package/src/test-utils/test-logging.ts +55 -0
- package/src/testing/memory-regression-suite.ts +352 -0
- package/src/types/external.d.ts +5 -0
- package/src/utils/codex-parser.ts +505 -0
- package/src/utils/command-runner.ts +70 -0
- package/src/utils/import-resolver.ts +254 -0
- package/src/utils/memory-pool.ts +312 -0
- package/src/utils/path-resolver.ts +150 -0
- package/src/utils/test-template-generator.ts +227 -0
- package/src/validation/orchestration-flow-validator.ts +791 -0
- package/src/validation/report-content-validator.ts +319 -0
- package/src/validation/session-coordination-validator.ts +266 -0
- package/src/validation/session-migration-validator.ts +155 -0
- package/src/validation/session-security-validator.ts +459 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stringray-ai",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.17",
|
|
4
4
|
"description": "⚡ StringRay ⚡: Bulletproof AI orchestration with systematic error prevention. Zero dead ends. Ship clean, tested, optimized code — every time.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/plugin/index.js",
|
|
@@ -104,7 +104,8 @@
|
|
|
104
104
|
"dist/utils",
|
|
105
105
|
"scripts",
|
|
106
106
|
"README.md",
|
|
107
|
-
"LICENSE"
|
|
107
|
+
"LICENSE",
|
|
108
|
+
"src"
|
|
108
109
|
],
|
|
109
110
|
"exports": {
|
|
110
111
|
".": {
|
|
@@ -10,8 +10,11 @@
|
|
|
10
10
|
* @since 2026-01-13
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
|
+
// Check for basic-only flag to prevent recursive comprehensive testing
|
|
14
|
+
const isBasicOnly = process.argv.includes('--basic-only');
|
|
15
|
+
|
|
13
16
|
// Path configuration for cross-environment compatibility
|
|
14
|
-
// Check if we're running from a
|
|
17
|
+
// Check if we're running from a test environment (directory name contains 'stringray-' or 'test-')
|
|
15
18
|
const cwd = process.cwd();
|
|
16
19
|
const dirName = cwd.split('/').pop() || '';
|
|
17
20
|
const fs = await import('fs');
|
|
@@ -21,7 +24,7 @@ const path = await import('path');
|
|
|
21
24
|
const deployedPluginPath = path.join(cwd, 'node_modules', 'stringray-ai', 'dist', 'plugin', 'plugins');
|
|
22
25
|
const isDeployedEnvironment = fs.existsSync(path.join(cwd, 'node_modules', 'stringray-ai'));
|
|
23
26
|
|
|
24
|
-
// Also check directory name patterns
|
|
27
|
+
// Also check directory name patterns for backward compatibility
|
|
25
28
|
const isTestEnvironment = dirName.includes('stringray-') || dirName.includes('final-stringray') ||
|
|
26
29
|
dirName.includes('test-') || dirName.includes('deploy-verify') || dirName.includes('final-test') ||
|
|
27
30
|
dirName.includes('jelly') || isDeployedEnvironment;
|
|
@@ -62,9 +65,10 @@ console.log('=====================================\n');
|
|
|
62
65
|
console.log('\n🎉 StringRay Framework Plugin Test: PASSED');
|
|
63
66
|
console.log('✨ Framework is ready for oh-my-opencode integration');
|
|
64
67
|
|
|
65
|
-
// Run comprehensive deployment tests
|
|
66
|
-
|
|
67
|
-
|
|
68
|
+
// Run comprehensive deployment tests unless basic-only flag is set
|
|
69
|
+
if (!isBasicOnly) {
|
|
70
|
+
await runComprehensiveTests();
|
|
71
|
+
}
|
|
68
72
|
} else {
|
|
69
73
|
console.log('\n❌ StringRay Framework Plugin Test: FAILED');
|
|
70
74
|
process.exit(1);
|
|
@@ -78,4 +82,100 @@ console.log('=====================================\n');
|
|
|
78
82
|
console.error('❌ Plugin loading failed:', error);
|
|
79
83
|
process.exit(1);
|
|
80
84
|
}
|
|
81
|
-
})();
|
|
85
|
+
})();
|
|
86
|
+
|
|
87
|
+
// Comprehensive deployment validation function
|
|
88
|
+
async function runComprehensiveTests() {
|
|
89
|
+
console.log('\n🔬 Running comprehensive deployment validation...\n');
|
|
90
|
+
|
|
91
|
+
const tests = [
|
|
92
|
+
{
|
|
93
|
+
name: 'MCP Configuration Validation',
|
|
94
|
+
command: 'node scripts/test-path-resolver.mjs',
|
|
95
|
+
description: 'Validates MCP server configuration and path resolution'
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'Plugin System Validation',
|
|
99
|
+
command: 'node scripts/test-stringray-plugin.mjs --basic-only',
|
|
100
|
+
description: 'Tests basic plugin loading without comprehensive tests'
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
name: 'Codex Integration Test',
|
|
104
|
+
command: 'node scripts/validate-codex.js',
|
|
105
|
+
description: 'Validates codex parsing and injection functionality'
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
name: 'Process Communication Test',
|
|
109
|
+
command: 'node scripts/test-comprehensive-path-resolution.mjs',
|
|
110
|
+
description: 'Tests path resolution and process communication'
|
|
111
|
+
}
|
|
112
|
+
];
|
|
113
|
+
|
|
114
|
+
let passed = 0;
|
|
115
|
+
let failed = 0;
|
|
116
|
+
|
|
117
|
+
for (const test of tests) {
|
|
118
|
+
console.log(`🧪 Running ${test.name}...`);
|
|
119
|
+
console.log(` ${test.description}`);
|
|
120
|
+
|
|
121
|
+
try {
|
|
122
|
+
const { spawn } = await import('child_process');
|
|
123
|
+
const [cmd, ...args] = test.command.split(' ');
|
|
124
|
+
|
|
125
|
+
await new Promise((resolve, reject) => {
|
|
126
|
+
const child = spawn(cmd, args, {
|
|
127
|
+
stdio: ['pipe', 'pipe', 'pipe'],
|
|
128
|
+
cwd: process.cwd()
|
|
129
|
+
});
|
|
130
|
+
|
|
131
|
+
let stdout = '';
|
|
132
|
+
let stderr = '';
|
|
133
|
+
|
|
134
|
+
child.stdout.on('data', (data) => {
|
|
135
|
+
stdout += data.toString();
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
child.stderr.on('data', (data) => {
|
|
139
|
+
stderr += data.toString();
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
child.on('close', (code) => {
|
|
143
|
+
if (code === 0) {
|
|
144
|
+
console.log(` ✅ PASSED\n`);
|
|
145
|
+
passed++;
|
|
146
|
+
resolve();
|
|
147
|
+
} else {
|
|
148
|
+
console.log(` ❌ FAILED (exit code: ${code})`);
|
|
149
|
+
if (stderr) console.log(` Error: ${stderr.slice(0, 200)}...`);
|
|
150
|
+
console.log('');
|
|
151
|
+
failed++;
|
|
152
|
+
resolve(); // Continue with other tests
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
child.on('error', (error) => {
|
|
157
|
+
console.log(` ❌ FAILED (spawn error: ${error.message})`);
|
|
158
|
+
console.log('');
|
|
159
|
+
failed++;
|
|
160
|
+
resolve();
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
} catch (error) {
|
|
164
|
+
console.log(` ❌ FAILED (exception: ${error.message})`);
|
|
165
|
+
console.log('');
|
|
166
|
+
failed++;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
console.log('📊 Comprehensive Test Results:');
|
|
171
|
+
console.log(` ✅ Passed: ${passed}`);
|
|
172
|
+
console.log(` ❌ Failed: ${failed}`);
|
|
173
|
+
console.log(` 📈 Success Rate: ${Math.round((passed / (passed + failed)) * 100)}%`);
|
|
174
|
+
|
|
175
|
+
if (failed === 0) {
|
|
176
|
+
console.log('\n🎉 ALL COMPREHENSIVE TESTS PASSED!');
|
|
177
|
+
console.log('✨ StringRay Framework is fully operational and ready for production use.');
|
|
178
|
+
} else {
|
|
179
|
+
console.log(`\n⚠️ ${failed} test(s) failed. Please check the framework configuration.`);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { architect } from "../../agents/architect.js";
|
|
3
|
+
import type { AgentConfig } from "../../agents/types.js";
|
|
4
|
+
|
|
5
|
+
describe("Architect Agent Configuration", () => {
|
|
6
|
+
it("should be a valid AgentConfig object", () => {
|
|
7
|
+
const config: AgentConfig = architect;
|
|
8
|
+
expect(config).toBeDefined();
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
describe("Basic Configuration", () => {
|
|
12
|
+
it("should have correct name and model", () => {
|
|
13
|
+
expect(architect.name).toBe("architect");
|
|
14
|
+
expect(architect.model).toBe("opencode/grok-code");
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it("should be configured as subagent mode", () => {
|
|
18
|
+
expect(architect.mode).toBe("subagent");
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it("should have low temperature for consistent design decisions", () => {
|
|
22
|
+
expect(architect.temperature).toBe(0.1);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
describe("Core Responsibilities", () => {
|
|
27
|
+
it("should define 4 core responsibilities", () => {
|
|
28
|
+
const system = architect.system;
|
|
29
|
+
expect(system).toContain("State Management");
|
|
30
|
+
expect(system).toContain("Delegation System");
|
|
31
|
+
expect(system).toContain("System Design");
|
|
32
|
+
expect(system).toContain("Dependency Mapping");
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
it("should specify state management focus", () => {
|
|
36
|
+
const system = architect.system;
|
|
37
|
+
expect(system).toContain("Maintain global state");
|
|
38
|
+
expect(system).toContain("prevent state duplication");
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it("should include delegation intelligence", () => {
|
|
42
|
+
const system = architect.system;
|
|
43
|
+
expect(system).toContain("Analyze task complexity");
|
|
44
|
+
expect(system).toContain("route to appropriate specialized agents");
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
describe("Key Facilities", () => {
|
|
49
|
+
it("should specify architectural facilities", () => {
|
|
50
|
+
const system = architect.system;
|
|
51
|
+
expect(system).toContain("Global State Coordinator");
|
|
52
|
+
expect(system).toContain("Complexity Analysis Engine");
|
|
53
|
+
expect(system).toContain("Delegation System");
|
|
54
|
+
expect(system).toContain("state synchronization");
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it("should define processor pipeline", () => {
|
|
58
|
+
const system = architect.system;
|
|
59
|
+
expect(system).toContain("Processor Pipeline");
|
|
60
|
+
expect(system).toContain("stateValidation");
|
|
61
|
+
expect(system).toContain("dependencyMapping");
|
|
62
|
+
expect(system).toContain("architectureReview");
|
|
63
|
+
expect(system).toContain("delegationOptimization");
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
describe("Architectural Principles", () => {
|
|
68
|
+
it("should follow shared global state principle", () => {
|
|
69
|
+
const system = architect.system;
|
|
70
|
+
expect(system).toContain("shared global state where possible");
|
|
71
|
+
expect(system).toContain("single source of truth");
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it("should implement SOLID principles", () => {
|
|
75
|
+
const system = architect.system;
|
|
76
|
+
expect(system).toContain("SOLID principles");
|
|
77
|
+
expect(system).toContain("clean architecture");
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
it("should reference Universal Development Codex", () => {
|
|
81
|
+
const system = architect.system;
|
|
82
|
+
expect(system).toContain("Universal Development Codex v1.2.24");
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
describe("Tools Configuration", () => {
|
|
87
|
+
it("should have architecture-specific tools", () => {
|
|
88
|
+
expect(architect.tools?.include).toContain("read");
|
|
89
|
+
expect(architect.tools?.include).toContain("grep");
|
|
90
|
+
expect(architect.tools?.include).toContain("lsp_*");
|
|
91
|
+
expect(architect.tools?.include).toContain("run_terminal_cmd");
|
|
92
|
+
expect(architect.tools?.include).toContain("background_task");
|
|
93
|
+
expect(architect.tools?.include).toContain("lsp_goto_definition");
|
|
94
|
+
expect(architect.tools?.include).toContain("lsp_find_references");
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
describe("Integration Points", () => {
|
|
99
|
+
it("should define architectural integration points", () => {
|
|
100
|
+
const system = architect.system;
|
|
101
|
+
expect(system).toContain("Integration Points");
|
|
102
|
+
expect(system).toContain("State Manager");
|
|
103
|
+
expect(system).toContain("Delegation System");
|
|
104
|
+
expect(system).toContain("Boot Orchestrator");
|
|
105
|
+
expect(system).toContain("Monitoring System");
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
});
|
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { describe, it, expect } from "vitest";
|
|
2
|
+
import { bugTriageSpecialist } from "../../agents/bug-triage-specialist.js";
|
|
3
|
+
import type { AgentConfig } from "../../agents/types.js";
|
|
4
|
+
|
|
5
|
+
describe("Bug Triage Specialist Agent Configuration", () => {
|
|
6
|
+
it("should be a valid AgentConfig object", () => {
|
|
7
|
+
const config: AgentConfig = bugTriageSpecialist;
|
|
8
|
+
expect(config).toBeDefined();
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
describe("Basic Configuration", () => {
|
|
12
|
+
it("should have correct name and model", () => {
|
|
13
|
+
expect(bugTriageSpecialist.name).toBe("bug-triage-specialist");
|
|
14
|
+
expect(bugTriageSpecialist.model).toBe("opencode/grok-code");
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
it("should be configured as subagent mode", () => {
|
|
18
|
+
expect(bugTriageSpecialist.mode).toBe("subagent");
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
it("should have low temperature for consistent triage decisions", () => {
|
|
22
|
+
expect(bugTriageSpecialist.temperature).toBe(0.1);
|
|
23
|
+
});
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
describe("Description and System Prompt", () => {
|
|
27
|
+
it("should have appropriate bug triage description", () => {
|
|
28
|
+
expect(bugTriageSpecialist.description).toContain(
|
|
29
|
+
"StringRay Framework bug triage specialist",
|
|
30
|
+
);
|
|
31
|
+
expect(bugTriageSpecialist.description).toContain(
|
|
32
|
+
"systematic error investigation",
|
|
33
|
+
);
|
|
34
|
+
expect(bugTriageSpecialist.description).toContain("surgical fixes");
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
it("should have comprehensive bug triage specialist system prompt", () => {
|
|
38
|
+
const system = bugTriageSpecialist.system;
|
|
39
|
+
expect(system).toContain("StringRay Bug Triage Specialist");
|
|
40
|
+
expect(system).toContain("systematic error investigation");
|
|
41
|
+
expect(system).toContain("surgical code fixes");
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
describe("Core Responsibilities", () => {
|
|
46
|
+
it("should define 5 core bug triage responsibilities", () => {
|
|
47
|
+
const system = bugTriageSpecialist.system;
|
|
48
|
+
expect(system).toContain("Error Investigation");
|
|
49
|
+
expect(system).toContain("Surgical Fixes");
|
|
50
|
+
expect(system).toContain("Impact Assessment");
|
|
51
|
+
expect(system).toContain("Recovery Strategy");
|
|
52
|
+
expect(system).toContain("Performance Optimization");
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it("should specify systematic error investigation", () => {
|
|
56
|
+
const system = bugTriageSpecialist.system;
|
|
57
|
+
expect(system).toContain("systematic root cause analysis");
|
|
58
|
+
expect(system).toContain("comprehensive investigation depth");
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
it("should specify surgical fixes approach", () => {
|
|
62
|
+
const system = bugTriageSpecialist.system;
|
|
63
|
+
expect(system).toContain("precise, targeted fixes");
|
|
64
|
+
expect(system).toContain("root causes");
|
|
65
|
+
expect(system).toContain("without side effects");
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
it("should include impact assessment", () => {
|
|
69
|
+
const system = bugTriageSpecialist.system;
|
|
70
|
+
expect(system).toContain("error severity");
|
|
71
|
+
expect(system).toContain("system-wide impact");
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
it("should specify recovery strategy development", () => {
|
|
75
|
+
const system = bugTriageSpecialist.system;
|
|
76
|
+
expect(system).toContain("graceful error recovery mechanisms");
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it("should include performance optimization", () => {
|
|
80
|
+
const system = bugTriageSpecialist.system;
|
|
81
|
+
expect(system).toContain("performance bottlenecks");
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
describe("Key Facilities", () => {
|
|
86
|
+
it("should specify systematic investigation facilities", () => {
|
|
87
|
+
const system = bugTriageSpecialist.system;
|
|
88
|
+
expect(system).toContain("Systematic investigation");
|
|
89
|
+
expect(system).toContain("30-second root cause timeout");
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
it("should include error boundary layers", () => {
|
|
93
|
+
const system = bugTriageSpecialist.system;
|
|
94
|
+
expect(system).toContain("Error boundary layers");
|
|
95
|
+
expect(system).toContain("3 levels");
|
|
96
|
+
expect(system).toContain("circuit breaker patterns");
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
it("should specify performance profiling", () => {
|
|
100
|
+
const system = bugTriageSpecialist.system;
|
|
101
|
+
expect(system).toContain("Performance profiling");
|
|
102
|
+
expect(system).toContain("triage efficiency tracking");
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
it("should include bottleneck detection", () => {
|
|
106
|
+
const system = bugTriageSpecialist.system;
|
|
107
|
+
expect(system).toContain("Bottleneck detection");
|
|
108
|
+
expect(system).toContain("resource usage monitoring");
|
|
109
|
+
});
|
|
110
|
+
|
|
111
|
+
it("should define bug triage processor pipeline", () => {
|
|
112
|
+
const system = bugTriageSpecialist.system;
|
|
113
|
+
expect(system).toContain("Processor pipeline");
|
|
114
|
+
expect(system).toContain("error-analysis");
|
|
115
|
+
expect(system).toContain("root-cause-investigation");
|
|
116
|
+
expect(system).toContain("fix-validation");
|
|
117
|
+
expect(system).toContain("impact-assessment");
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
describe("Investigation Process", () => {
|
|
122
|
+
it("should define 5-phase investigation process", () => {
|
|
123
|
+
const system = bugTriageSpecialist.system;
|
|
124
|
+
expect(system).toContain("Investigation Process");
|
|
125
|
+
expect(system).toContain("Error Classification");
|
|
126
|
+
expect(system).toContain("Root Cause Analysis");
|
|
127
|
+
expect(system).toContain("Impact Assessment");
|
|
128
|
+
expect(system).toContain("Surgical Fix Development");
|
|
129
|
+
expect(system).toContain("Validation & Testing");
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
it("should specify error classification", () => {
|
|
133
|
+
const system = bugTriageSpecialist.system;
|
|
134
|
+
expect(system).toContain("severity");
|
|
135
|
+
expect(system).toContain("critical, high, medium, low");
|
|
136
|
+
});
|
|
137
|
+
|
|
138
|
+
it("should include root cause analysis", () => {
|
|
139
|
+
const system = bugTriageSpecialist.system;
|
|
140
|
+
expect(system).toContain("underlying causes");
|
|
141
|
+
expect(system).toContain("symptoms");
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
it("should specify impact assessment", () => {
|
|
145
|
+
const system = bugTriageSpecialist.system;
|
|
146
|
+
expect(system).toContain("system-wide effects");
|
|
147
|
+
expect(system).toContain("dependencies");
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
it("should specify surgical fix development", () => {
|
|
151
|
+
const system = bugTriageSpecialist.system;
|
|
152
|
+
expect(system).toContain("targeted fixes");
|
|
153
|
+
expect(system).toContain("minimal changes");
|
|
154
|
+
});
|
|
155
|
+
|
|
156
|
+
it("should include validation and testing", () => {
|
|
157
|
+
const system = bugTriageSpecialist.system;
|
|
158
|
+
expect(system).toContain("resolve issues");
|
|
159
|
+
expect(system).toContain("introducing new problems");
|
|
160
|
+
});
|
|
161
|
+
});
|
|
162
|
+
|
|
163
|
+
describe("Bug Triage Guidelines", () => {
|
|
164
|
+
it("should emphasize systematic investigation", () => {
|
|
165
|
+
const system = bugTriageSpecialist.system;
|
|
166
|
+
expect(system).toContain("systematic investigation");
|
|
167
|
+
expect(system).toContain("never guess");
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
it("should specify surgical fixes", () => {
|
|
171
|
+
const system = bugTriageSpecialist.system;
|
|
172
|
+
expect(system).toContain("surgical fixes");
|
|
173
|
+
expect(system).toContain("change only what's necessary");
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
it("should require thorough validation", () => {
|
|
177
|
+
const system = bugTriageSpecialist.system;
|
|
178
|
+
expect(system).toContain("Validate fixes thoroughly");
|
|
179
|
+
expect(system).toContain("deployment");
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
it("should maintain error boundary integrity", () => {
|
|
183
|
+
const system = bugTriageSpecialist.system;
|
|
184
|
+
expect(system).toContain("error boundary integrity");
|
|
185
|
+
});
|
|
186
|
+
|
|
187
|
+
it("should specify documentation requirements", () => {
|
|
188
|
+
const system = bugTriageSpecialist.system;
|
|
189
|
+
expect(system).toContain("detailed fix documentation");
|
|
190
|
+
});
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
describe("Integration Points", () => {
|
|
194
|
+
it("should define comprehensive bug triage integration points", () => {
|
|
195
|
+
const system = bugTriageSpecialist.system;
|
|
196
|
+
expect(system).toContain("Integration Points");
|
|
197
|
+
expect(system).toContain("Error monitoring");
|
|
198
|
+
expect(system).toContain("Performance tracking");
|
|
199
|
+
expect(system).toContain("Code analysis");
|
|
200
|
+
expect(system).toContain("Automated testing");
|
|
201
|
+
});
|
|
202
|
+
});
|
|
203
|
+
|
|
204
|
+
describe("Tools Configuration", () => {
|
|
205
|
+
it("should have comprehensive bug triage tools", () => {
|
|
206
|
+
expect(bugTriageSpecialist.tools?.include).toContain("read");
|
|
207
|
+
expect(bugTriageSpecialist.tools?.include).toContain("grep");
|
|
208
|
+
expect(bugTriageSpecialist.tools?.include).toContain("lsp_*");
|
|
209
|
+
expect(bugTriageSpecialist.tools?.include).toContain("run_terminal_cmd");
|
|
210
|
+
expect(bugTriageSpecialist.tools?.include).toContain("ast_grep_search");
|
|
211
|
+
expect(bugTriageSpecialist.tools?.include).toContain("ast_grep_replace");
|
|
212
|
+
expect(bugTriageSpecialist.tools?.include).toContain("lsp_diagnostics");
|
|
213
|
+
expect(bugTriageSpecialist.tools?.include).toContain("lsp_code_actions");
|
|
214
|
+
});
|
|
215
|
+
|
|
216
|
+
it("should have 8 bug triage-specific tools", () => {
|
|
217
|
+
expect(bugTriageSpecialist.tools?.include).toHaveLength(8);
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
describe("Permissions Configuration", () => {
|
|
222
|
+
it("should allow edit operations", () => {
|
|
223
|
+
expect(bugTriageSpecialist.permission?.edit).toBe("allow");
|
|
224
|
+
});
|
|
225
|
+
|
|
226
|
+
it("should have bug triage tool permissions", () => {
|
|
227
|
+
const bashPerms = bugTriageSpecialist.permission?.bash;
|
|
228
|
+
expect(bashPerms).toBeDefined();
|
|
229
|
+
expect(typeof bashPerms).toBe("object");
|
|
230
|
+
|
|
231
|
+
expect((bashPerms as any)?.git).toBe("allow");
|
|
232
|
+
expect((bashPerms as any)?.npm).toBe("allow");
|
|
233
|
+
expect((bashPerms as any)?.bun).toBe("allow");
|
|
234
|
+
expect((bashPerms as any)?.test).toBe("allow");
|
|
235
|
+
});
|
|
236
|
+
});
|
|
237
|
+
|
|
238
|
+
describe("Bug Triage Goal", () => {
|
|
239
|
+
it("should define clear bug elimination goal", () => {
|
|
240
|
+
const system = bugTriageSpecialist.system;
|
|
241
|
+
expect(system).toContain("eliminate bugs");
|
|
242
|
+
expect(system).toContain("systematic investigation");
|
|
243
|
+
expect(system).toContain("strengthen system reliability");
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
});
|