@yasserkhanorg/impact-gate 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +168 -0
- package/README.md +520 -0
- package/dist/adapters/cypress.d.ts +10 -0
- package/dist/adapters/cypress.d.ts.map +1 -0
- package/dist/adapters/cypress.js +86 -0
- package/dist/adapters/framework_adapter.d.ts +41 -0
- package/dist/adapters/framework_adapter.d.ts.map +1 -0
- package/dist/adapters/framework_adapter.js +152 -0
- package/dist/adapters/playwright.d.ts +10 -0
- package/dist/adapters/playwright.d.ts.map +1 -0
- package/dist/adapters/playwright.js +86 -0
- package/dist/adapters/pytest.d.ts +10 -0
- package/dist/adapters/pytest.d.ts.map +1 -0
- package/dist/adapters/pytest.js +96 -0
- package/dist/adapters/supertest.d.ts +12 -0
- package/dist/adapters/supertest.d.ts.map +1 -0
- package/dist/adapters/supertest.js +85 -0
- package/dist/agent/api_catalog.d.ts +11 -0
- package/dist/agent/api_catalog.d.ts.map +1 -0
- package/dist/agent/api_catalog.js +210 -0
- package/dist/agent/config.d.ts +193 -0
- package/dist/agent/config.d.ts.map +1 -0
- package/dist/agent/config.js +875 -0
- package/dist/agent/feedback.d.ts +91 -0
- package/dist/agent/feedback.d.ts.map +1 -0
- package/dist/agent/feedback.js +323 -0
- package/dist/agent/git.d.ts +19 -0
- package/dist/agent/git.d.ts.map +1 -0
- package/dist/agent/git.js +257 -0
- package/dist/agent/handoff.d.ts +22 -0
- package/dist/agent/handoff.d.ts.map +1 -0
- package/dist/agent/handoff.js +180 -0
- package/dist/agent/llm_agents_flow.d.ts +15 -0
- package/dist/agent/llm_agents_flow.d.ts.map +1 -0
- package/dist/agent/llm_agents_flow.js +434 -0
- package/dist/agent/native_flow.d.ts +6 -0
- package/dist/agent/native_flow.d.ts.map +1 -0
- package/dist/agent/native_flow.js +179 -0
- package/dist/agent/pipeline.d.ts +7 -0
- package/dist/agent/pipeline.d.ts.map +1 -0
- package/dist/agent/pipeline.js +260 -0
- package/dist/agent/pipeline_types.d.ts +54 -0
- package/dist/agent/pipeline_types.d.ts.map +1 -0
- package/dist/agent/pipeline_types.js +4 -0
- package/dist/agent/pipeline_utils.d.ts +12 -0
- package/dist/agent/pipeline_utils.d.ts.map +1 -0
- package/dist/agent/pipeline_utils.js +156 -0
- package/dist/agent/plan.d.ts +170 -0
- package/dist/agent/plan.d.ts.map +1 -0
- package/dist/agent/plan.js +86 -0
- package/dist/agent/playwright_report.d.ts +8 -0
- package/dist/agent/playwright_report.d.ts.map +1 -0
- package/dist/agent/playwright_report.js +126 -0
- package/dist/agent/process_runner.d.ts +10 -0
- package/dist/agent/process_runner.d.ts.map +1 -0
- package/dist/agent/process_runner.js +92 -0
- package/dist/agent/spec_generator.d.ts +5 -0
- package/dist/agent/spec_generator.d.ts.map +1 -0
- package/dist/agent/spec_generator.js +253 -0
- package/dist/agent/test_path.d.ts +2 -0
- package/dist/agent/test_path.d.ts.map +1 -0
- package/dist/agent/test_path.js +23 -0
- package/dist/agent/traceability_capture.d.ts +18 -0
- package/dist/agent/traceability_capture.d.ts.map +1 -0
- package/dist/agent/traceability_capture.js +313 -0
- package/dist/agent/traceability_ingest.d.ts +21 -0
- package/dist/agent/traceability_ingest.d.ts.map +1 -0
- package/dist/agent/traceability_ingest.js +237 -0
- package/dist/agent/types.d.ts +42 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +4 -0
- package/dist/agent/utils.d.ts +13 -0
- package/dist/agent/utils.d.ts.map +1 -0
- package/dist/agent/utils.js +152 -0
- package/dist/agent/validation_runner.d.ts +5 -0
- package/dist/agent/validation_runner.d.ts.map +1 -0
- package/dist/agent/validation_runner.js +77 -0
- package/dist/agentic/fix_loop.d.ts +26 -0
- package/dist/agentic/fix_loop.d.ts.map +1 -0
- package/dist/agentic/fix_loop.js +96 -0
- package/dist/agentic/playwright_runner.d.ts +43 -0
- package/dist/agentic/playwright_runner.d.ts.map +1 -0
- package/dist/agentic/playwright_runner.js +165 -0
- package/dist/agentic/runner.d.ts +27 -0
- package/dist/agentic/runner.d.ts.map +1 -0
- package/dist/agentic/runner.js +210 -0
- package/dist/agentic/types.d.ts +62 -0
- package/dist/agentic/types.d.ts.map +1 -0
- package/dist/agentic/types.js +4 -0
- package/dist/agents/coverage-evaluator.d.ts +8 -0
- package/dist/agents/coverage-evaluator.d.ts.map +1 -0
- package/dist/agents/coverage-evaluator.js +41 -0
- package/dist/agents/cross-impact.d.ts +13 -0
- package/dist/agents/cross-impact.d.ts.map +1 -0
- package/dist/agents/cross-impact.js +140 -0
- package/dist/agents/executor.d.ts +8 -0
- package/dist/agents/executor.d.ts.map +1 -0
- package/dist/agents/executor.js +75 -0
- package/dist/agents/explorer.d.ts +12 -0
- package/dist/agents/explorer.d.ts.map +1 -0
- package/dist/agents/explorer.js +43 -0
- package/dist/agents/generator.d.ts +8 -0
- package/dist/agents/generator.d.ts.map +1 -0
- package/dist/agents/generator.js +77 -0
- package/dist/agents/healer.d.ts +8 -0
- package/dist/agents/healer.d.ts.map +1 -0
- package/dist/agents/healer.js +31 -0
- package/dist/agents/impact-analyst.d.ts +8 -0
- package/dist/agents/impact-analyst.d.ts.map +1 -0
- package/dist/agents/impact-analyst.js +38 -0
- package/dist/agents/regression-advisor.d.ts +8 -0
- package/dist/agents/regression-advisor.d.ts.map +1 -0
- package/dist/agents/regression-advisor.js +116 -0
- package/dist/agents/strategist.d.ts +9 -0
- package/dist/agents/strategist.d.ts.map +1 -0
- package/dist/agents/strategist.js +92 -0
- package/dist/agents/test-designer.d.ts +8 -0
- package/dist/agents/test-designer.d.ts.map +1 -0
- package/dist/agents/test-designer.js +111 -0
- package/dist/anthropic_provider.d.ts +65 -0
- package/dist/anthropic_provider.d.ts.map +1 -0
- package/dist/anthropic_provider.js +334 -0
- package/dist/api.d.ts +48 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +151 -0
- package/dist/base_provider.d.ts +109 -0
- package/dist/base_provider.d.ts.map +1 -0
- package/dist/base_provider.js +203 -0
- package/dist/budget_ledger.d.ts +28 -0
- package/dist/budget_ledger.d.ts.map +1 -0
- package/dist/budget_ledger.js +62 -0
- package/dist/cache/cached_provider.d.ts +49 -0
- package/dist/cache/cached_provider.d.ts.map +1 -0
- package/dist/cache/cached_provider.js +91 -0
- package/dist/cache/response_cache.d.ts +79 -0
- package/dist/cache/response_cache.d.ts.map +1 -0
- package/dist/cache/response_cache.js +177 -0
- package/dist/cli/commands/analyze.d.ts +3 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +77 -0
- package/dist/cli/commands/bootstrap.d.ts +3 -0
- package/dist/cli/commands/bootstrap.d.ts.map +1 -0
- package/dist/cli/commands/bootstrap.js +109 -0
- package/dist/cli/commands/cost_report.d.ts +3 -0
- package/dist/cli/commands/cost_report.d.ts.map +1 -0
- package/dist/cli/commands/cost_report.js +115 -0
- package/dist/cli/commands/crew.d.ts +3 -0
- package/dist/cli/commands/crew.d.ts.map +1 -0
- package/dist/cli/commands/crew.js +255 -0
- package/dist/cli/commands/feedback.d.ts +3 -0
- package/dist/cli/commands/feedback.d.ts.map +1 -0
- package/dist/cli/commands/feedback.js +39 -0
- package/dist/cli/commands/finalize.d.ts +3 -0
- package/dist/cli/commands/finalize.d.ts.map +1 -0
- package/dist/cli/commands/finalize.js +41 -0
- package/dist/cli/commands/gate.d.ts +3 -0
- package/dist/cli/commands/gate.d.ts.map +1 -0
- package/dist/cli/commands/gate.js +89 -0
- package/dist/cli/commands/generate.d.ts +4 -0
- package/dist/cli/commands/generate.d.ts.map +1 -0
- package/dist/cli/commands/generate.js +108 -0
- package/dist/cli/commands/heal.d.ts +3 -0
- package/dist/cli/commands/heal.d.ts.map +1 -0
- package/dist/cli/commands/heal.js +60 -0
- package/dist/cli/commands/impact.d.ts +4 -0
- package/dist/cli/commands/impact.d.ts.map +1 -0
- package/dist/cli/commands/impact.js +33 -0
- package/dist/cli/commands/init.d.ts +2 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +169 -0
- package/dist/cli/commands/llm_health.d.ts +2 -0
- package/dist/cli/commands/llm_health.d.ts.map +1 -0
- package/dist/cli/commands/llm_health.js +22 -0
- package/dist/cli/commands/plan.d.ts +4 -0
- package/dist/cli/commands/plan.d.ts.map +1 -0
- package/dist/cli/commands/plan.js +120 -0
- package/dist/cli/commands/plan_crew.d.ts +17 -0
- package/dist/cli/commands/plan_crew.d.ts.map +1 -0
- package/dist/cli/commands/plan_crew.js +316 -0
- package/dist/cli/commands/traceability.d.ts +4 -0
- package/dist/cli/commands/traceability.d.ts.map +1 -0
- package/dist/cli/commands/traceability.js +77 -0
- package/dist/cli/commands/train.d.ts +3 -0
- package/dist/cli/commands/train.d.ts.map +1 -0
- package/dist/cli/commands/train.js +391 -0
- package/dist/cli/defaults.d.ts +35 -0
- package/dist/cli/defaults.d.ts.map +1 -0
- package/dist/cli/defaults.js +172 -0
- package/dist/cli/errors.d.ts +27 -0
- package/dist/cli/errors.d.ts.map +1 -0
- package/dist/cli/errors.js +57 -0
- package/dist/cli/parse_args.d.ts +6 -0
- package/dist/cli/parse_args.d.ts.map +1 -0
- package/dist/cli/parse_args.js +257 -0
- package/dist/cli/types.d.ts +87 -0
- package/dist/cli/types.d.ts.map +1 -0
- package/dist/cli/types.js +4 -0
- package/dist/cli/usage.d.ts +2 -0
- package/dist/cli/usage.d.ts.map +1 -0
- package/dist/cli/usage.js +109 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +194 -0
- package/dist/crew/context.d.ts +55 -0
- package/dist/crew/context.d.ts.map +1 -0
- package/dist/crew/context.js +36 -0
- package/dist/crew/orchestrator.d.ts +50 -0
- package/dist/crew/orchestrator.d.ts.map +1 -0
- package/dist/crew/orchestrator.js +329 -0
- package/dist/crew/protocol.d.ts +46 -0
- package/dist/crew/protocol.d.ts.map +1 -0
- package/dist/crew/protocol.js +4 -0
- package/dist/crew/provider.d.ts +17 -0
- package/dist/crew/provider.d.ts.map +1 -0
- package/dist/crew/provider.js +36 -0
- package/dist/crew/sanitize.d.ts +3 -0
- package/dist/crew/sanitize.d.ts.map +1 -0
- package/dist/crew/sanitize.js +31 -0
- package/dist/crew/types.d.ts +52 -0
- package/dist/crew/types.d.ts.map +1 -0
- package/dist/crew/types.js +4 -0
- package/dist/crew/workflows.d.ts +52 -0
- package/dist/crew/workflows.d.ts.map +1 -0
- package/dist/crew/workflows.js +36 -0
- package/dist/custom_provider.d.ts +20 -0
- package/dist/custom_provider.d.ts.map +1 -0
- package/dist/custom_provider.js +277 -0
- package/dist/engine/ai_enrichment.d.ts +44 -0
- package/dist/engine/ai_enrichment.d.ts.map +1 -0
- package/dist/engine/ai_enrichment.js +267 -0
- package/dist/engine/diff_loader.d.ts +11 -0
- package/dist/engine/diff_loader.d.ts.map +1 -0
- package/dist/engine/diff_loader.js +63 -0
- package/dist/engine/impact_engine.d.ts +72 -0
- package/dist/engine/impact_engine.d.ts.map +1 -0
- package/dist/engine/impact_engine.js +298 -0
- package/dist/engine/plan_builder.d.ts +11 -0
- package/dist/engine/plan_builder.d.ts.map +1 -0
- package/dist/engine/plan_builder.js +599 -0
- package/dist/esm/adapters/cypress.js +49 -0
- package/dist/esm/adapters/framework_adapter.js +114 -0
- package/dist/esm/adapters/playwright.js +49 -0
- package/dist/esm/adapters/pytest.js +59 -0
- package/dist/esm/adapters/supertest.js +48 -0
- package/dist/esm/agent/api_catalog.js +199 -0
- package/dist/esm/agent/config.js +872 -0
- package/dist/esm/agent/feedback.js +317 -0
- package/dist/esm/agent/git.js +252 -0
- package/dist/esm/agent/handoff.js +177 -0
- package/dist/esm/agent/llm_agents_flow.js +421 -0
- package/dist/esm/agent/native_flow.js +175 -0
- package/dist/esm/agent/pipeline.js +256 -0
- package/dist/esm/agent/pipeline_types.js +3 -0
- package/dist/esm/agent/pipeline_utils.js +146 -0
- package/dist/esm/agent/plan.js +83 -0
- package/dist/esm/agent/playwright_report.js +123 -0
- package/dist/esm/agent/process_runner.js +83 -0
- package/dist/esm/agent/spec_generator.js +249 -0
- package/dist/esm/agent/test_path.js +20 -0
- package/dist/esm/agent/traceability_capture.js +310 -0
- package/dist/esm/agent/traceability_ingest.js +234 -0
- package/dist/esm/agent/types.js +3 -0
- package/dist/esm/agent/utils.js +138 -0
- package/dist/esm/agent/validation_runner.js +73 -0
- package/dist/esm/agentic/fix_loop.js +91 -0
- package/dist/esm/agentic/playwright_runner.js +161 -0
- package/dist/esm/agentic/runner.js +207 -0
- package/dist/esm/agentic/types.js +3 -0
- package/dist/esm/agents/coverage-evaluator.js +37 -0
- package/dist/esm/agents/cross-impact.js +136 -0
- package/dist/esm/agents/executor.js +71 -0
- package/dist/esm/agents/explorer.js +39 -0
- package/dist/esm/agents/generator.js +73 -0
- package/dist/esm/agents/healer.js +27 -0
- package/dist/esm/agents/impact-analyst.js +34 -0
- package/dist/esm/agents/regression-advisor.js +112 -0
- package/dist/esm/agents/strategist.js +88 -0
- package/dist/esm/agents/test-designer.js +107 -0
- package/dist/esm/anthropic_provider.js +326 -0
- package/dist/esm/api.js +143 -0
- package/dist/esm/base_provider.js +198 -0
- package/dist/esm/budget_ledger.js +58 -0
- package/dist/esm/cache/cached_provider.js +85 -0
- package/dist/esm/cache/response_cache.js +140 -0
- package/dist/esm/cli/commands/analyze.js +74 -0
- package/dist/esm/cli/commands/bootstrap.js +106 -0
- package/dist/esm/cli/commands/cost_report.js +112 -0
- package/dist/esm/cli/commands/crew.js +252 -0
- package/dist/esm/cli/commands/feedback.js +36 -0
- package/dist/esm/cli/commands/finalize.js +38 -0
- package/dist/esm/cli/commands/gate.js +86 -0
- package/dist/esm/cli/commands/generate.js +105 -0
- package/dist/esm/cli/commands/heal.js +57 -0
- package/dist/esm/cli/commands/impact.js +30 -0
- package/dist/esm/cli/commands/init.js +133 -0
- package/dist/esm/cli/commands/llm_health.js +19 -0
- package/dist/esm/cli/commands/plan.js +117 -0
- package/dist/esm/cli/commands/plan_crew.js +309 -0
- package/dist/esm/cli/commands/traceability.js +73 -0
- package/dist/esm/cli/commands/train.js +355 -0
- package/dist/esm/cli/defaults.js +165 -0
- package/dist/esm/cli/errors.js +52 -0
- package/dist/esm/cli/parse_args.js +251 -0
- package/dist/esm/cli/types.js +3 -0
- package/dist/esm/cli/usage.js +106 -0
- package/dist/esm/cli.js +192 -0
- package/dist/esm/crew/context.js +32 -0
- package/dist/esm/crew/orchestrator.js +325 -0
- package/dist/esm/crew/protocol.js +3 -0
- package/dist/esm/crew/provider.js +33 -0
- package/dist/esm/crew/sanitize.js +27 -0
- package/dist/esm/crew/types.js +3 -0
- package/dist/esm/crew/workflows.js +33 -0
- package/dist/esm/custom_provider.js +273 -0
- package/dist/esm/engine/ai_enrichment.js +264 -0
- package/dist/esm/engine/diff_loader.js +59 -0
- package/dist/esm/engine/impact_engine.js +291 -0
- package/dist/esm/engine/plan_builder.js +593 -0
- package/dist/esm/index.js +72 -0
- package/dist/esm/knowledge/api_surface.js +408 -0
- package/dist/esm/knowledge/cluster_utils.js +60 -0
- package/dist/esm/knowledge/context_loader.js +85 -0
- package/dist/esm/knowledge/failure_history.js +121 -0
- package/dist/esm/knowledge/kg_bridge.js +381 -0
- package/dist/esm/knowledge/kg_types.js +3 -0
- package/dist/esm/knowledge/route_families.js +393 -0
- package/dist/esm/knowledge/spec_index.js +122 -0
- package/dist/esm/logger.js +115 -0
- package/dist/esm/mcp-server.js +621 -0
- package/dist/esm/metrics/prometheus.js +149 -0
- package/dist/esm/model_router.js +59 -0
- package/dist/esm/ollama_provider.js +301 -0
- package/dist/esm/openai_provider.js +243 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/pipeline/orchestrator.js +228 -0
- package/dist/esm/pipeline/spec_verifier.js +75 -0
- package/dist/esm/pipeline/stage0_preprocess.js +102 -0
- package/dist/esm/pipeline/stage1_impact.js +140 -0
- package/dist/esm/pipeline/stage2_coverage.js +153 -0
- package/dist/esm/pipeline/stage3_generation.js +284 -0
- package/dist/esm/pipeline/stage4_heal.js +288 -0
- package/dist/esm/progress.js +112 -0
- package/dist/esm/prompts/coverage.js +57 -0
- package/dist/esm/prompts/cross-impact.js +53 -0
- package/dist/esm/prompts/generation.js +297 -0
- package/dist/esm/prompts/generation_profile.js +147 -0
- package/dist/esm/prompts/heal.js +91 -0
- package/dist/esm/prompts/impact.js +63 -0
- package/dist/esm/prompts/json_extract.js +36 -0
- package/dist/esm/prompts/strategist.js +61 -0
- package/dist/esm/prompts/test-designer.js +92 -0
- package/dist/esm/provider_factory.js +366 -0
- package/dist/esm/provider_interface.js +23 -0
- package/dist/esm/provider_utils.js +96 -0
- package/dist/esm/qa-agent/cli.js +205 -0
- package/dist/esm/qa-agent/orchestrator.js +120 -0
- package/dist/esm/qa-agent/phase1/runner.js +139 -0
- package/dist/esm/qa-agent/phase1/scope.js +126 -0
- package/dist/esm/qa-agent/phase2/agent_browser.js +95 -0
- package/dist/esm/qa-agent/phase2/agent_loop.js +351 -0
- package/dist/esm/qa-agent/phase2/exploration_state.js +97 -0
- package/dist/esm/qa-agent/phase2/tools.js +386 -0
- package/dist/esm/qa-agent/phase2/vision.js +75 -0
- package/dist/esm/qa-agent/phase3/feedback.js +34 -0
- package/dist/esm/qa-agent/phase3/reporter.js +145 -0
- package/dist/esm/qa-agent/phase3/spec_generator.js +62 -0
- package/dist/esm/qa-agent/phase3/verdict.js +66 -0
- package/dist/esm/qa-agent/safe_env.js +23 -0
- package/dist/esm/qa-agent/types.js +3 -0
- package/dist/esm/reporters/junit.js +86 -0
- package/dist/esm/reporters/reporter.js +3 -0
- package/dist/esm/reporters/sarif.js +132 -0
- package/dist/esm/resilience/circuit_breaker.js +78 -0
- package/dist/esm/resilience/retry.js +56 -0
- package/dist/esm/sanitize.js +66 -0
- package/dist/esm/training/enricher.js +345 -0
- package/dist/esm/training/kg_scanner.js +115 -0
- package/dist/esm/training/merger.js +204 -0
- package/dist/esm/training/scanner.js +923 -0
- package/dist/esm/training/types.js +6 -0
- package/dist/esm/training/validator.js +254 -0
- package/dist/esm/validation/guardrails.js +101 -0
- package/dist/esm/validation/output_schema.js +80 -0
- package/dist/esm/version.js +33 -0
- package/dist/index.d.ts +99 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +169 -0
- package/dist/knowledge/api_surface.d.ts +37 -0
- package/dist/knowledge/api_surface.d.ts.map +1 -0
- package/dist/knowledge/api_surface.js +418 -0
- package/dist/knowledge/cluster_utils.d.ts +28 -0
- package/dist/knowledge/cluster_utils.d.ts.map +1 -0
- package/dist/knowledge/cluster_utils.js +67 -0
- package/dist/knowledge/context_loader.d.ts +13 -0
- package/dist/knowledge/context_loader.d.ts.map +1 -0
- package/dist/knowledge/context_loader.js +90 -0
- package/dist/knowledge/failure_history.d.ts +39 -0
- package/dist/knowledge/failure_history.d.ts.map +1 -0
- package/dist/knowledge/failure_history.js +128 -0
- package/dist/knowledge/kg_bridge.d.ts +31 -0
- package/dist/knowledge/kg_bridge.d.ts.map +1 -0
- package/dist/knowledge/kg_bridge.js +388 -0
- package/dist/knowledge/kg_types.d.ts +75 -0
- package/dist/knowledge/kg_types.d.ts.map +1 -0
- package/dist/knowledge/kg_types.js +4 -0
- package/dist/knowledge/route_families.d.ts +98 -0
- package/dist/knowledge/route_families.d.ts.map +1 -0
- package/dist/knowledge/route_families.js +410 -0
- package/dist/knowledge/spec_index.d.ts +18 -0
- package/dist/knowledge/spec_index.d.ts.map +1 -0
- package/dist/knowledge/spec_index.js +128 -0
- package/dist/logger.d.ts +31 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +119 -0
- package/dist/mcp-server.d.ts +68 -0
- package/dist/mcp-server.d.ts.map +1 -0
- package/dist/mcp-server.js +629 -0
- package/dist/metrics/prometheus.d.ts +37 -0
- package/dist/metrics/prometheus.d.ts.map +1 -0
- package/dist/metrics/prometheus.js +153 -0
- package/dist/model_router.d.ts +28 -0
- package/dist/model_router.d.ts.map +1 -0
- package/dist/model_router.js +63 -0
- package/dist/ollama_provider.d.ts +65 -0
- package/dist/ollama_provider.d.ts.map +1 -0
- package/dist/ollama_provider.js +309 -0
- package/dist/openai_provider.d.ts +23 -0
- package/dist/openai_provider.d.ts.map +1 -0
- package/dist/openai_provider.js +251 -0
- package/dist/pipeline/orchestrator.d.ts +33 -0
- package/dist/pipeline/orchestrator.d.ts.map +1 -0
- package/dist/pipeline/orchestrator.js +231 -0
- package/dist/pipeline/spec_verifier.d.ts +20 -0
- package/dist/pipeline/spec_verifier.d.ts.map +1 -0
- package/dist/pipeline/spec_verifier.js +79 -0
- package/dist/pipeline/stage0_preprocess.d.ts +31 -0
- package/dist/pipeline/stage0_preprocess.d.ts.map +1 -0
- package/dist/pipeline/stage0_preprocess.js +105 -0
- package/dist/pipeline/stage1_impact.d.ts +19 -0
- package/dist/pipeline/stage1_impact.d.ts.map +1 -0
- package/dist/pipeline/stage1_impact.js +143 -0
- package/dist/pipeline/stage2_coverage.d.ts +19 -0
- package/dist/pipeline/stage2_coverage.d.ts.map +1 -0
- package/dist/pipeline/stage2_coverage.js +156 -0
- package/dist/pipeline/stage3_generation.d.ts +43 -0
- package/dist/pipeline/stage3_generation.d.ts.map +1 -0
- package/dist/pipeline/stage3_generation.js +287 -0
- package/dist/pipeline/stage4_heal.d.ts +62 -0
- package/dist/pipeline/stage4_heal.d.ts.map +1 -0
- package/dist/pipeline/stage4_heal.js +294 -0
- package/dist/progress.d.ts +22 -0
- package/dist/progress.d.ts.map +1 -0
- package/dist/progress.js +116 -0
- package/dist/prompts/coverage.d.ts +39 -0
- package/dist/prompts/coverage.d.ts.map +1 -0
- package/dist/prompts/coverage.js +61 -0
- package/dist/prompts/cross-impact.d.ts +23 -0
- package/dist/prompts/cross-impact.d.ts.map +1 -0
- package/dist/prompts/cross-impact.js +57 -0
- package/dist/prompts/generation.d.ts +25 -0
- package/dist/prompts/generation.d.ts.map +1 -0
- package/dist/prompts/generation.js +302 -0
- package/dist/prompts/generation_profile.d.ts +29 -0
- package/dist/prompts/generation_profile.d.ts.map +1 -0
- package/dist/prompts/generation_profile.js +151 -0
- package/dist/prompts/heal.d.ts +23 -0
- package/dist/prompts/heal.d.ts.map +1 -0
- package/dist/prompts/heal.js +95 -0
- package/dist/prompts/impact.d.ts +31 -0
- package/dist/prompts/impact.d.ts.map +1 -0
- package/dist/prompts/impact.js +67 -0
- package/dist/prompts/json_extract.d.ts +14 -0
- package/dist/prompts/json_extract.d.ts.map +1 -0
- package/dist/prompts/json_extract.js +39 -0
- package/dist/prompts/strategist.d.ts +25 -0
- package/dist/prompts/strategist.d.ts.map +1 -0
- package/dist/prompts/strategist.js +65 -0
- package/dist/prompts/test-designer.d.ts +35 -0
- package/dist/prompts/test-designer.d.ts.map +1 -0
- package/dist/prompts/test-designer.js +96 -0
- package/dist/provider_factory.d.ts +104 -0
- package/dist/provider_factory.d.ts.map +1 -0
- package/dist/provider_factory.js +371 -0
- package/dist/provider_interface.d.ts +365 -0
- package/dist/provider_interface.d.ts.map +1 -0
- package/dist/provider_interface.js +28 -0
- package/dist/provider_utils.d.ts +39 -0
- package/dist/provider_utils.d.ts.map +1 -0
- package/dist/provider_utils.js +103 -0
- package/dist/qa-agent/cli.d.ts +3 -0
- package/dist/qa-agent/cli.d.ts.map +1 -0
- package/dist/qa-agent/cli.js +207 -0
- package/dist/qa-agent/orchestrator.d.ts +3 -0
- package/dist/qa-agent/orchestrator.d.ts.map +1 -0
- package/dist/qa-agent/orchestrator.js +123 -0
- package/dist/qa-agent/phase1/runner.d.ts +3 -0
- package/dist/qa-agent/phase1/runner.d.ts.map +1 -0
- package/dist/qa-agent/phase1/runner.js +142 -0
- package/dist/qa-agent/phase1/scope.d.ts +6 -0
- package/dist/qa-agent/phase1/scope.d.ts.map +1 -0
- package/dist/qa-agent/phase1/scope.js +129 -0
- package/dist/qa-agent/phase2/agent_browser.d.ts +35 -0
- package/dist/qa-agent/phase2/agent_browser.d.ts.map +1 -0
- package/dist/qa-agent/phase2/agent_browser.js +99 -0
- package/dist/qa-agent/phase2/agent_loop.d.ts +3 -0
- package/dist/qa-agent/phase2/agent_loop.d.ts.map +1 -0
- package/dist/qa-agent/phase2/agent_loop.js +357 -0
- package/dist/qa-agent/phase2/exploration_state.d.ts +12 -0
- package/dist/qa-agent/phase2/exploration_state.d.ts.map +1 -0
- package/dist/qa-agent/phase2/exploration_state.js +109 -0
- package/dist/qa-agent/phase2/tools.d.ts +28 -0
- package/dist/qa-agent/phase2/tools.d.ts.map +1 -0
- package/dist/qa-agent/phase2/tools.js +390 -0
- package/dist/qa-agent/phase2/vision.d.ts +3 -0
- package/dist/qa-agent/phase2/vision.d.ts.map +1 -0
- package/dist/qa-agent/phase2/vision.js +78 -0
- package/dist/qa-agent/phase3/feedback.d.ts +3 -0
- package/dist/qa-agent/phase3/feedback.d.ts.map +1 -0
- package/dist/qa-agent/phase3/feedback.js +37 -0
- package/dist/qa-agent/phase3/reporter.d.ts +3 -0
- package/dist/qa-agent/phase3/reporter.d.ts.map +1 -0
- package/dist/qa-agent/phase3/reporter.js +148 -0
- package/dist/qa-agent/phase3/spec_generator.d.ts +3 -0
- package/dist/qa-agent/phase3/spec_generator.d.ts.map +1 -0
- package/dist/qa-agent/phase3/spec_generator.js +65 -0
- package/dist/qa-agent/phase3/verdict.d.ts +3 -0
- package/dist/qa-agent/phase3/verdict.d.ts.map +1 -0
- package/dist/qa-agent/phase3/verdict.js +69 -0
- package/dist/qa-agent/safe_env.d.ts +3 -0
- package/dist/qa-agent/safe_env.d.ts.map +1 -0
- package/dist/qa-agent/safe_env.js +26 -0
- package/dist/qa-agent/types.d.ts +130 -0
- package/dist/qa-agent/types.d.ts.map +1 -0
- package/dist/qa-agent/types.js +4 -0
- package/dist/reporters/junit.d.ts +6 -0
- package/dist/reporters/junit.d.ts.map +1 -0
- package/dist/reporters/junit.js +89 -0
- package/dist/reporters/reporter.d.ts +42 -0
- package/dist/reporters/reporter.d.ts.map +1 -0
- package/dist/reporters/reporter.js +4 -0
- package/dist/reporters/sarif.d.ts +7 -0
- package/dist/reporters/sarif.d.ts.map +1 -0
- package/dist/reporters/sarif.js +135 -0
- package/dist/resilience/circuit_breaker.d.ts +36 -0
- package/dist/resilience/circuit_breaker.d.ts.map +1 -0
- package/dist/resilience/circuit_breaker.js +82 -0
- package/dist/resilience/retry.d.ts +11 -0
- package/dist/resilience/retry.d.ts.map +1 -0
- package/dist/resilience/retry.js +59 -0
- package/dist/sanitize.d.ts +15 -0
- package/dist/sanitize.d.ts.map +1 -0
- package/dist/sanitize.js +71 -0
- package/dist/training/enricher.d.ts +17 -0
- package/dist/training/enricher.d.ts.map +1 -0
- package/dist/training/enricher.js +350 -0
- package/dist/training/kg_scanner.d.ts +13 -0
- package/dist/training/kg_scanner.d.ts.map +1 -0
- package/dist/training/kg_scanner.js +118 -0
- package/dist/training/merger.d.ts +15 -0
- package/dist/training/merger.d.ts.map +1 -0
- package/dist/training/merger.js +208 -0
- package/dist/training/scanner.d.ts +36 -0
- package/dist/training/scanner.d.ts.map +1 -0
- package/dist/training/scanner.js +932 -0
- package/dist/training/types.d.ts +117 -0
- package/dist/training/types.d.ts.map +1 -0
- package/dist/training/types.js +9 -0
- package/dist/training/validator.d.ts +21 -0
- package/dist/training/validator.d.ts.map +1 -0
- package/dist/training/validator.js +262 -0
- package/dist/validation/guardrails.d.ts +31 -0
- package/dist/validation/guardrails.d.ts.map +1 -0
- package/dist/validation/guardrails.js +112 -0
- package/dist/validation/output_schema.d.ts +67 -0
- package/dist/validation/output_schema.d.ts.map +1 -0
- package/dist/validation/output_schema.js +84 -0
- package/dist/version.d.ts +6 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +36 -0
- package/package.json +126 -0
- package/schemas/flow-decision.schema.json +83 -0
- package/schemas/gap.schema.json +18 -0
- package/schemas/impact.schema.json +455 -0
- package/schemas/plan.schema.json +491 -0
- package/schemas/route-families.schema.json +137 -0
- package/schemas/subsystem-risk-map.schema.json +62 -0
- package/schemas/traceability-input.schema.json +122 -0
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
3
|
+
// See LICENSE.txt for license information.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.hasGlobChars = hasGlobChars;
|
|
6
|
+
exports.globToRegExp = globToRegExp;
|
|
7
|
+
exports.matchGlob = matchGlob;
|
|
8
|
+
exports.safeReadTextFile = safeReadTextFile;
|
|
9
|
+
exports.normalizePath = normalizePath;
|
|
10
|
+
exports.toRelativePosix = toRelativePosix;
|
|
11
|
+
exports.isPathWithinRoot = isPathWithinRoot;
|
|
12
|
+
exports.fileExtension = fileExtension;
|
|
13
|
+
exports.baseNameWithoutExt = baseNameWithoutExt;
|
|
14
|
+
exports.tokenize = tokenize;
|
|
15
|
+
exports.uniqueTokens = uniqueTokens;
|
|
16
|
+
exports.titleCase = titleCase;
|
|
17
|
+
const fs_1 = require("fs");
|
|
18
|
+
const path_1 = require("path");
|
|
19
|
+
const MAX_READ_BYTES = 1024 * 1024; // 1MB
|
|
20
|
+
const STOP_WORDS = new Set([
|
|
21
|
+
'index',
|
|
22
|
+
'component',
|
|
23
|
+
'components',
|
|
24
|
+
'page',
|
|
25
|
+
'pages',
|
|
26
|
+
'screen',
|
|
27
|
+
'screens',
|
|
28
|
+
'view',
|
|
29
|
+
'views',
|
|
30
|
+
'route',
|
|
31
|
+
'routes',
|
|
32
|
+
'feature',
|
|
33
|
+
'features',
|
|
34
|
+
'module',
|
|
35
|
+
'modules',
|
|
36
|
+
'flow',
|
|
37
|
+
'flows',
|
|
38
|
+
'test',
|
|
39
|
+
'tests',
|
|
40
|
+
'spec',
|
|
41
|
+
'specs',
|
|
42
|
+
'hooks',
|
|
43
|
+
'hook',
|
|
44
|
+
'context',
|
|
45
|
+
'state',
|
|
46
|
+
'store',
|
|
47
|
+
]);
|
|
48
|
+
const GLOB_CHARS = /[*?[\]{}()!]/;
|
|
49
|
+
function hasGlobChars(value) {
|
|
50
|
+
return GLOB_CHARS.test(value);
|
|
51
|
+
}
|
|
52
|
+
function globToRegExp(pattern) {
|
|
53
|
+
const normalized = normalizePath(pattern);
|
|
54
|
+
let regex = '^';
|
|
55
|
+
let i = 0;
|
|
56
|
+
while (i < normalized.length) {
|
|
57
|
+
const char = normalized[i];
|
|
58
|
+
if (char === '*') {
|
|
59
|
+
const next = normalized[i + 1];
|
|
60
|
+
if (next === '*') {
|
|
61
|
+
regex += '.*';
|
|
62
|
+
i += 2;
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
regex += '[^/]*';
|
|
66
|
+
i += 1;
|
|
67
|
+
continue;
|
|
68
|
+
}
|
|
69
|
+
if (char === '?') {
|
|
70
|
+
regex += '[^/]';
|
|
71
|
+
i += 1;
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
if ('\\.[]{}()+-^$|'.includes(char)) {
|
|
75
|
+
regex += `\\${char}`;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
regex += char;
|
|
79
|
+
}
|
|
80
|
+
i += 1;
|
|
81
|
+
}
|
|
82
|
+
regex += '$';
|
|
83
|
+
return new RegExp(regex);
|
|
84
|
+
}
|
|
85
|
+
function matchGlob(pathValue, pattern) {
|
|
86
|
+
const normalizedPath = normalizePath(pathValue);
|
|
87
|
+
const normalizedPattern = normalizePath(pattern);
|
|
88
|
+
if (!hasGlobChars(normalizedPattern)) {
|
|
89
|
+
if (normalizedPattern.endsWith('/')) {
|
|
90
|
+
return normalizedPath.startsWith(normalizedPattern);
|
|
91
|
+
}
|
|
92
|
+
return normalizedPath === normalizedPattern || normalizedPath.startsWith(`${normalizedPattern}/`);
|
|
93
|
+
}
|
|
94
|
+
const regex = globToRegExp(normalizedPattern);
|
|
95
|
+
return regex.test(normalizedPath);
|
|
96
|
+
}
|
|
97
|
+
function safeReadTextFile(path) {
|
|
98
|
+
try {
|
|
99
|
+
const stats = (0, fs_1.statSync)(path);
|
|
100
|
+
if (stats.size > MAX_READ_BYTES) {
|
|
101
|
+
return null;
|
|
102
|
+
}
|
|
103
|
+
return (0, fs_1.readFileSync)(path, 'utf-8');
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
return null;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function normalizePath(pathValue) {
|
|
110
|
+
return pathValue.split('\\').join('/');
|
|
111
|
+
}
|
|
112
|
+
function toRelativePosix(root, filePath) {
|
|
113
|
+
const relative = path_1.posix.relative(normalizePath(root), normalizePath(filePath));
|
|
114
|
+
return relative.startsWith('../') ? normalizePath(filePath) : relative;
|
|
115
|
+
}
|
|
116
|
+
function isPathWithinRoot(root, target) {
|
|
117
|
+
const rootAbs = (0, path_1.resolve)(root);
|
|
118
|
+
const targetAbs = (0, path_1.resolve)(target);
|
|
119
|
+
const rel = (0, path_1.relative)(rootAbs, targetAbs);
|
|
120
|
+
return rel === '' || (!rel.startsWith('..') && !rel.includes(`..${path_1.posix.sep}`) && !rel.includes('..\\'));
|
|
121
|
+
}
|
|
122
|
+
function fileExtension(pathValue) {
|
|
123
|
+
return (0, path_1.extname)(pathValue).replace('.', '').toLowerCase();
|
|
124
|
+
}
|
|
125
|
+
function baseNameWithoutExt(pathValue) {
|
|
126
|
+
const base = (0, path_1.basename)(pathValue);
|
|
127
|
+
const ext = (0, path_1.extname)(base);
|
|
128
|
+
return ext ? base.slice(0, -ext.length) : base;
|
|
129
|
+
}
|
|
130
|
+
function splitCamelCase(value) {
|
|
131
|
+
return value.replace(/([a-z])([A-Z])/g, '$1 $2');
|
|
132
|
+
}
|
|
133
|
+
function tokenize(value) {
|
|
134
|
+
const normalized = splitCamelCase(value)
|
|
135
|
+
.replace(/[_\-.]/g, ' ')
|
|
136
|
+
.replace(/[^a-zA-Z0-9\s]/g, ' ')
|
|
137
|
+
.toLowerCase();
|
|
138
|
+
return normalized
|
|
139
|
+
.split(/\s+/)
|
|
140
|
+
.map((token) => token.trim())
|
|
141
|
+
.filter((token) => token.length > 2 && !STOP_WORDS.has(token));
|
|
142
|
+
}
|
|
143
|
+
function uniqueTokens(tokens) {
|
|
144
|
+
return Array.from(new Set(tokens.filter(Boolean)));
|
|
145
|
+
}
|
|
146
|
+
function titleCase(value) {
|
|
147
|
+
return value
|
|
148
|
+
.split(/[\s_-]+/)
|
|
149
|
+
.filter(Boolean)
|
|
150
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
151
|
+
.join(' ');
|
|
152
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PipelineConfig } from './config.js';
|
|
2
|
+
import type { ValidationResult } from './pipeline_types.js';
|
|
3
|
+
export declare function runPlaywrightRuntimeValidation(testsRoot: string, testFile: string, pipeline: PipelineConfig, playwrightBinary: string | null): ValidationResult;
|
|
4
|
+
export declare function runPlaywrightListValidation(testsRoot: string, testFile: string, pipeline: PipelineConfig, playwrightBinary: string | null): ValidationResult;
|
|
5
|
+
//# sourceMappingURL=validation_runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation_runner.d.ts","sourceRoot":"","sources":["../../src/agent/validation_runner.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,qBAAqB,CAAC;AAI1D,wBAAgB,8BAA8B,CAC1C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc,EACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAChC,gBAAgB,CA+BlB;AAED,wBAAgB,2BAA2B,CACvC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,cAAc,EACxB,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAChC,gBAAgB,CAqClB"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
3
|
+
// See LICENSE.txt for license information.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.runPlaywrightRuntimeValidation = runPlaywrightRuntimeValidation;
|
|
6
|
+
exports.runPlaywrightListValidation = runPlaywrightListValidation;
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
const utils_js_1 = require("./utils.js");
|
|
9
|
+
const process_runner_js_1 = require("./process_runner.js");
|
|
10
|
+
function runPlaywrightRuntimeValidation(testsRoot, testFile, pipeline, playwrightBinary) {
|
|
11
|
+
if (!playwrightBinary) {
|
|
12
|
+
return {
|
|
13
|
+
status: 'failed',
|
|
14
|
+
detail: 'Playwright binary not found; cannot execute runtime validation.',
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
const relativeSpecPath = (0, utils_js_1.normalizePath)((0, path_1.relative)(testsRoot, testFile));
|
|
18
|
+
if (relativeSpecPath.startsWith('../') || relativeSpecPath.startsWith('..\\')) {
|
|
19
|
+
return {
|
|
20
|
+
status: 'failed',
|
|
21
|
+
detail: 'Generated spec path resolved outside testsRoot during runtime validation.',
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const args = ['test', relativeSpecPath, '--workers', '1', '--retries', '0', '--max-failures', '1', '--reporter', 'line'];
|
|
25
|
+
if (pipeline.headless === false) {
|
|
26
|
+
args.push('--headed');
|
|
27
|
+
}
|
|
28
|
+
if (pipeline.project) {
|
|
29
|
+
args.push('--project', pipeline.project);
|
|
30
|
+
}
|
|
31
|
+
const commandResult = (0, process_runner_js_1.runCommand)(playwrightBinary, args, testsRoot, 10 * 60 * 1000);
|
|
32
|
+
if (commandResult.status === 0) {
|
|
33
|
+
return { status: 'passed' };
|
|
34
|
+
}
|
|
35
|
+
const summary = (0, process_runner_js_1.summarizeCommandOutput)(commandResult.stdout, commandResult.stderr);
|
|
36
|
+
return {
|
|
37
|
+
status: 'failed',
|
|
38
|
+
detail: summary || commandResult.error || `playwright test failed with status ${commandResult.status}`,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function runPlaywrightListValidation(testsRoot, testFile, pipeline, playwrightBinary) {
|
|
42
|
+
if (!playwrightBinary) {
|
|
43
|
+
return {
|
|
44
|
+
status: 'skipped',
|
|
45
|
+
detail: 'Playwright binary not found under testsRoot/node_modules/.bin; runtime compile validation skipped.',
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const relativeSpecPath = (0, utils_js_1.normalizePath)((0, path_1.relative)(testsRoot, testFile));
|
|
49
|
+
if (relativeSpecPath.startsWith('../') || relativeSpecPath.startsWith('..\\')) {
|
|
50
|
+
return {
|
|
51
|
+
status: 'failed',
|
|
52
|
+
detail: 'Generated spec path resolved outside testsRoot during validation.',
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const args = ['test', '--list', relativeSpecPath];
|
|
56
|
+
if (pipeline.headless === false) {
|
|
57
|
+
args.push('--headed');
|
|
58
|
+
}
|
|
59
|
+
if (pipeline.project) {
|
|
60
|
+
args.push('--project', pipeline.project);
|
|
61
|
+
}
|
|
62
|
+
const commandResult = (0, process_runner_js_1.runCommand)(playwrightBinary, args, testsRoot);
|
|
63
|
+
if (commandResult.error && /ENOENT/.test(commandResult.error)) {
|
|
64
|
+
return {
|
|
65
|
+
status: 'skipped',
|
|
66
|
+
detail: 'Playwright binary was not executable; runtime compile validation skipped.',
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
if (commandResult.status === 0) {
|
|
70
|
+
return { status: 'passed' };
|
|
71
|
+
}
|
|
72
|
+
const summary = (0, process_runner_js_1.summarizeCommandOutput)(commandResult.stdout, commandResult.stderr);
|
|
73
|
+
return {
|
|
74
|
+
status: 'failed',
|
|
75
|
+
detail: summary || commandResult.error || `playwright --list failed with status ${commandResult.status}`,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { LLMProvider } from '../provider_interface.js';
|
|
2
|
+
import type { TestFailure } from './types.js';
|
|
3
|
+
export interface FixPromptContext {
|
|
4
|
+
specCode: string;
|
|
5
|
+
failures: TestFailure[];
|
|
6
|
+
attempt: number;
|
|
7
|
+
maxAttempts: number;
|
|
8
|
+
apiSurfaceHint?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function buildFixPrompt(ctx: FixPromptContext): string;
|
|
11
|
+
/**
|
|
12
|
+
* Extract fixed spec code from an LLM response.
|
|
13
|
+
* Returns null if the response doesn't contain valid test code.
|
|
14
|
+
*/
|
|
15
|
+
export declare function applyFix(llmResponse: string): string | null;
|
|
16
|
+
/**
|
|
17
|
+
* Run one fix attempt: call LLM with failure context, return fixed code.
|
|
18
|
+
*/
|
|
19
|
+
export declare function generateFix(provider: LLMProvider, ctx: FixPromptContext): Promise<{
|
|
20
|
+
code: string | null;
|
|
21
|
+
tokensUsed: {
|
|
22
|
+
input: number;
|
|
23
|
+
output: number;
|
|
24
|
+
};
|
|
25
|
+
}>;
|
|
26
|
+
//# sourceMappingURL=fix_loop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fix_loop.d.ts","sourceRoot":"","sources":["../../src/agentic/fix_loop.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,YAAY,CAAC;AAG5C,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CA+C5D;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmB3D;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC7B,QAAQ,EAAE,WAAW,EACrB,GAAG,EAAE,gBAAgB,GACtB,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,UAAU,EAAE;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAAA;CAAC,CAAC,CAe7E"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
3
|
+
// See LICENSE.txt for license information.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.buildFixPrompt = buildFixPrompt;
|
|
6
|
+
exports.applyFix = applyFix;
|
|
7
|
+
exports.generateFix = generateFix;
|
|
8
|
+
const sanitize_js_1 = require("../crew/sanitize.js");
|
|
9
|
+
function buildFixPrompt(ctx) {
|
|
10
|
+
const isCompileError = ctx.failures.some((f) => f.testTitle === '(compile)');
|
|
11
|
+
const failuresBlock = ctx.failures.map((f) => {
|
|
12
|
+
const lines = [` Test: ${(0, sanitize_js_1.sanitizeForPrompt)(f.testTitle)}`, ` Error: ${(0, sanitize_js_1.sanitizeForPrompt)(f.error)}`];
|
|
13
|
+
if (f.stack)
|
|
14
|
+
lines.push(` Stack: ${(0, sanitize_js_1.sanitizeForPrompt)(f.stack)}`);
|
|
15
|
+
if (f.line)
|
|
16
|
+
lines.push(` Line: ${f.line}`);
|
|
17
|
+
if (f.expected)
|
|
18
|
+
lines.push(` Expected: ${(0, sanitize_js_1.sanitizeForPrompt)(f.expected)}`);
|
|
19
|
+
if (f.actual)
|
|
20
|
+
lines.push(` Actual: ${(0, sanitize_js_1.sanitizeForPrompt)(f.actual)}`);
|
|
21
|
+
return lines.join('\n');
|
|
22
|
+
}).join('\n\n');
|
|
23
|
+
const errorType = isCompileError ? 'COMPILE ERROR' : 'TEST FAILURE';
|
|
24
|
+
const apiBlock = ctx.apiSurfaceHint
|
|
25
|
+
? `\nAVAILABLE PAGE OBJECT API:\n${ctx.apiSurfaceHint}\n`
|
|
26
|
+
: '';
|
|
27
|
+
return [
|
|
28
|
+
`Fix this Playwright E2E test. This is attempt ${ctx.attempt} of ${ctx.maxAttempts}.`,
|
|
29
|
+
'',
|
|
30
|
+
`## ${errorType}`,
|
|
31
|
+
'',
|
|
32
|
+
failuresBlock,
|
|
33
|
+
'',
|
|
34
|
+
'## CURRENT SPEC CODE',
|
|
35
|
+
'',
|
|
36
|
+
'```typescript',
|
|
37
|
+
ctx.specCode,
|
|
38
|
+
'```',
|
|
39
|
+
apiBlock,
|
|
40
|
+
'## RULES',
|
|
41
|
+
'',
|
|
42
|
+
'1. Import ONLY from "@mattermost/playwright-lib" — no "@playwright/test" imports.',
|
|
43
|
+
'2. Every test must call `await pw.initSetup()` first.',
|
|
44
|
+
'3. Use `await pw.testBrowser.login(user)` to log in.',
|
|
45
|
+
'4. Use ONLY page object methods listed in the API above. Do NOT invent methods.',
|
|
46
|
+
'5. If a method is not available, use `page.getByRole()` or `page.getByTestId()`.',
|
|
47
|
+
'6. For flaky/timing issues: add `await expect(locator).toBeVisible()` waits before interactions.',
|
|
48
|
+
'7. Keep the same test scenarios — fix the implementation, not the intent.',
|
|
49
|
+
'8. Return the COMPLETE fixed spec file — not a diff or partial code.',
|
|
50
|
+
'',
|
|
51
|
+
isCompileError
|
|
52
|
+
? 'The file does not compile. Fix syntax errors, missing imports, or invalid method calls.'
|
|
53
|
+
: 'The test compiles but fails at runtime. Fix selectors, waits, or assertion logic.',
|
|
54
|
+
'',
|
|
55
|
+
'Return ONLY the complete TypeScript code. No explanations, no markdown fences (except wrapping the code).',
|
|
56
|
+
].join('\n');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Extract fixed spec code from an LLM response.
|
|
60
|
+
* Returns null if the response doesn't contain valid test code.
|
|
61
|
+
*/
|
|
62
|
+
function applyFix(llmResponse) {
|
|
63
|
+
let code = llmResponse.trim();
|
|
64
|
+
if (!code)
|
|
65
|
+
return null;
|
|
66
|
+
// Strip markdown fences
|
|
67
|
+
const fenced = code.match(/```(?:typescript|ts)?\s*([\s\S]*?)```/i);
|
|
68
|
+
if (fenced) {
|
|
69
|
+
code = fenced[1].trim();
|
|
70
|
+
}
|
|
71
|
+
// Must contain test( to be valid
|
|
72
|
+
if (!code.includes('test('))
|
|
73
|
+
return null;
|
|
74
|
+
// Ensure it has the right import
|
|
75
|
+
if (!code.includes('@mattermost/playwright-lib')) {
|
|
76
|
+
code = `import {expect, test} from '@mattermost/playwright-lib';\n\n${code}`;
|
|
77
|
+
}
|
|
78
|
+
return code;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Run one fix attempt: call LLM with failure context, return fixed code.
|
|
82
|
+
*/
|
|
83
|
+
async function generateFix(provider, ctx) {
|
|
84
|
+
const prompt = buildFixPrompt(ctx);
|
|
85
|
+
const response = await provider.generateText(prompt, {
|
|
86
|
+
maxTokens: 8000,
|
|
87
|
+
temperature: 0.1,
|
|
88
|
+
timeout: 60000,
|
|
89
|
+
systemPrompt: 'You are an expert Playwright test fixer for Mattermost. Return only TypeScript code.',
|
|
90
|
+
});
|
|
91
|
+
const code = applyFix(response.text);
|
|
92
|
+
return {
|
|
93
|
+
code,
|
|
94
|
+
tokensUsed: { input: response.usage?.inputTokens || 0, output: response.usage?.outputTokens || 0 },
|
|
95
|
+
};
|
|
96
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { PlaywrightRunResult } from './types.js';
|
|
2
|
+
interface PlaywrightReportSpec {
|
|
3
|
+
title: string;
|
|
4
|
+
ok: boolean;
|
|
5
|
+
tests: Array<{
|
|
6
|
+
status: string;
|
|
7
|
+
results: Array<{
|
|
8
|
+
status: string;
|
|
9
|
+
duration: number;
|
|
10
|
+
error?: {
|
|
11
|
+
message: string;
|
|
12
|
+
stack?: string;
|
|
13
|
+
};
|
|
14
|
+
}>;
|
|
15
|
+
}>;
|
|
16
|
+
}
|
|
17
|
+
interface PlaywrightReportSuite {
|
|
18
|
+
title: string;
|
|
19
|
+
specs: PlaywrightReportSpec[];
|
|
20
|
+
suites?: PlaywrightReportSuite[];
|
|
21
|
+
}
|
|
22
|
+
interface PlaywrightReport {
|
|
23
|
+
suites: PlaywrightReportSuite[];
|
|
24
|
+
stats: {
|
|
25
|
+
expected: number;
|
|
26
|
+
unexpected: number;
|
|
27
|
+
flaky: number;
|
|
28
|
+
skipped: number;
|
|
29
|
+
duration: number;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
export declare function parsePlaywrightJsonReport(report: PlaywrightReport, specPath: string): PlaywrightRunResult;
|
|
33
|
+
/**
|
|
34
|
+
* Run a single Playwright spec file and return structured results.
|
|
35
|
+
* Uses a temp JSON reporter to get machine-readable output.
|
|
36
|
+
*/
|
|
37
|
+
export declare function runPlaywrightSpec(specPath: string, testsRoot: string, options: {
|
|
38
|
+
project?: string;
|
|
39
|
+
baseUrl?: string;
|
|
40
|
+
timeoutMs?: number;
|
|
41
|
+
}): PlaywrightRunResult;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=playwright_runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"playwright_runner.d.ts","sourceRoot":"","sources":["../../src/agentic/playwright_runner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,mBAAmB,EAAc,MAAM,YAAY,CAAC;AAMjE,UAAU,oBAAoB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;QACT,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,KAAK,CAAC;YACX,MAAM,EAAE,MAAM,CAAC;YACf,QAAQ,EAAE,MAAM,CAAC;YACjB,KAAK,CAAC,EAAE;gBAAC,OAAO,EAAE,MAAM,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,CAAA;aAAC,CAAC;SAC7C,CAAC,CAAC;KACN,CAAC,CAAC;CACN;AAED,UAAU,qBAAqB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,oBAAoB,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACpC;AAED,UAAU,gBAAgB;IACtB,MAAM,EAAE,qBAAqB,EAAE,CAAC;IAChC,KAAK,EAAE;QACH,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;KACpB,CAAC;CACL;AAaD,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,GAAG,mBAAmB,CAkCzG;AAQD;;;GAGG;AACH,wBAAgB,iBAAiB,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAC,GAClE,mBAAmB,CAsGrB"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
3
|
+
// See LICENSE.txt for license information.
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.parsePlaywrightJsonReport = parsePlaywrightJsonReport;
|
|
6
|
+
exports.runPlaywrightSpec = runPlaywrightSpec;
|
|
7
|
+
const child_process_1 = require("child_process");
|
|
8
|
+
const fs_1 = require("fs");
|
|
9
|
+
const path_1 = require("path");
|
|
10
|
+
const MAX_STDOUT_CHARS = 8000;
|
|
11
|
+
const MAX_ERROR_CHARS = 2000;
|
|
12
|
+
const MAX_STACK_CHARS = 1000;
|
|
13
|
+
function extractSpecs(suites) {
|
|
14
|
+
const specs = [];
|
|
15
|
+
for (const suite of suites) {
|
|
16
|
+
specs.push(...suite.specs);
|
|
17
|
+
if (suite.suites) {
|
|
18
|
+
specs.push(...extractSpecs(suite.suites));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return specs;
|
|
22
|
+
}
|
|
23
|
+
function parsePlaywrightJsonReport(report, specPath) {
|
|
24
|
+
const failures = [];
|
|
25
|
+
const allSpecs = extractSpecs(report.suites);
|
|
26
|
+
let passed = 0;
|
|
27
|
+
let failed = 0;
|
|
28
|
+
for (const spec of allSpecs) {
|
|
29
|
+
if (spec.ok) {
|
|
30
|
+
passed++;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
failed++;
|
|
34
|
+
const lastResult = spec.tests[0]?.results?.at(-1);
|
|
35
|
+
failures.push({
|
|
36
|
+
testTitle: spec.title,
|
|
37
|
+
specPath,
|
|
38
|
+
error: (lastResult?.error?.message || 'Unknown error').slice(0, MAX_ERROR_CHARS),
|
|
39
|
+
stack: (lastResult?.error?.stack || '').slice(0, MAX_STACK_CHARS),
|
|
40
|
+
line: extractLineNumber(lastResult?.error?.stack),
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
specPath,
|
|
46
|
+
passed,
|
|
47
|
+
failed,
|
|
48
|
+
flaky: report.stats.flaky || 0,
|
|
49
|
+
skipped: report.stats.skipped || 0,
|
|
50
|
+
failures,
|
|
51
|
+
stdout: '',
|
|
52
|
+
durationMs: report.stats.duration || 0,
|
|
53
|
+
compiled: true,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
function extractLineNumber(stack) {
|
|
57
|
+
if (!stack)
|
|
58
|
+
return undefined;
|
|
59
|
+
const match = stack.match(/:(\d+):\d+\)?$/m);
|
|
60
|
+
return match ? parseInt(match[1], 10) : undefined;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Run a single Playwright spec file and return structured results.
|
|
64
|
+
* Uses a temp JSON reporter to get machine-readable output.
|
|
65
|
+
*/
|
|
66
|
+
function runPlaywrightSpec(specPath, testsRoot, options) {
|
|
67
|
+
// SECURITY: Validate spec path is within testsRoot and has valid extension
|
|
68
|
+
const resolvedSpec = (0, path_1.resolve)(specPath);
|
|
69
|
+
const resolvedRoot = (0, path_1.resolve)(testsRoot);
|
|
70
|
+
if (!resolvedSpec.startsWith(resolvedRoot + '/')) {
|
|
71
|
+
throw new Error(`Security: spec path ${specPath} is outside testsRoot`);
|
|
72
|
+
}
|
|
73
|
+
if (!resolvedSpec.endsWith('.spec.ts') && !resolvedSpec.endsWith('.test.ts')) {
|
|
74
|
+
throw new Error(`Security: spec path must end in .spec.ts or .test.ts`);
|
|
75
|
+
}
|
|
76
|
+
const reportDir = (0, path_1.join)(testsRoot, '.e2e-ai-agents', 'agentic-reports');
|
|
77
|
+
if (!(0, fs_1.existsSync)(reportDir)) {
|
|
78
|
+
(0, fs_1.mkdirSync)(reportDir, { recursive: true });
|
|
79
|
+
}
|
|
80
|
+
const reportPath = (0, path_1.join)(reportDir, `report-${Date.now()}-${Math.random().toString(36).slice(2, 8)}.json`);
|
|
81
|
+
const args = [
|
|
82
|
+
'playwright', 'test',
|
|
83
|
+
specPath,
|
|
84
|
+
'--reporter', 'json',
|
|
85
|
+
'--project', options.project || 'chrome',
|
|
86
|
+
];
|
|
87
|
+
if (options.baseUrl) {
|
|
88
|
+
args.push('--config', 'playwright.config.ts');
|
|
89
|
+
}
|
|
90
|
+
const startTime = Date.now();
|
|
91
|
+
const result = (0, child_process_1.spawnSync)('npx', args, {
|
|
92
|
+
cwd: testsRoot,
|
|
93
|
+
encoding: 'utf-8',
|
|
94
|
+
timeout: options.timeoutMs || 120000,
|
|
95
|
+
maxBuffer: 2 * 1024 * 1024,
|
|
96
|
+
env: {
|
|
97
|
+
...process.env,
|
|
98
|
+
PLAYWRIGHT_JSON_OUTPUT_NAME: reportPath,
|
|
99
|
+
},
|
|
100
|
+
});
|
|
101
|
+
const durationMs = Date.now() - startTime;
|
|
102
|
+
const stdout = (result.stdout || '').slice(0, MAX_STDOUT_CHARS);
|
|
103
|
+
const stderr = (result.stderr || '').slice(0, MAX_STDOUT_CHARS);
|
|
104
|
+
// Check for compile errors
|
|
105
|
+
if (stderr.includes('SyntaxError') || stderr.includes('Cannot find module') || stderr.includes('TypeError')) {
|
|
106
|
+
return {
|
|
107
|
+
specPath,
|
|
108
|
+
passed: 0,
|
|
109
|
+
failed: 1,
|
|
110
|
+
flaky: 0,
|
|
111
|
+
skipped: 0,
|
|
112
|
+
failures: [{
|
|
113
|
+
testTitle: '(compile)',
|
|
114
|
+
specPath,
|
|
115
|
+
error: stderr.slice(0, MAX_ERROR_CHARS),
|
|
116
|
+
stack: '',
|
|
117
|
+
}],
|
|
118
|
+
stdout: `${stdout}\n${stderr}`,
|
|
119
|
+
durationMs,
|
|
120
|
+
compiled: false,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
// Try to parse JSON report from stdout (Playwright JSON reporter writes to stdout)
|
|
124
|
+
try {
|
|
125
|
+
const jsonReport = JSON.parse(stdout);
|
|
126
|
+
const parsed = parsePlaywrightJsonReport(jsonReport, specPath);
|
|
127
|
+
parsed.durationMs = durationMs;
|
|
128
|
+
parsed.stdout = stdout;
|
|
129
|
+
return parsed;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
// Fallback: try the file-based report
|
|
133
|
+
}
|
|
134
|
+
// Try file-based report
|
|
135
|
+
if ((0, fs_1.existsSync)(reportPath)) {
|
|
136
|
+
try {
|
|
137
|
+
const jsonReport = JSON.parse((0, fs_1.readFileSync)(reportPath, 'utf-8'));
|
|
138
|
+
const parsed = parsePlaywrightJsonReport(jsonReport, specPath);
|
|
139
|
+
parsed.durationMs = durationMs;
|
|
140
|
+
parsed.stdout = stdout;
|
|
141
|
+
try {
|
|
142
|
+
(0, fs_1.rmSync)(reportPath);
|
|
143
|
+
}
|
|
144
|
+
catch { /* ignore */ }
|
|
145
|
+
return parsed;
|
|
146
|
+
}
|
|
147
|
+
catch {
|
|
148
|
+
// Fallback to exit code
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
// Last resort: use exit code
|
|
152
|
+
return {
|
|
153
|
+
specPath,
|
|
154
|
+
passed: result.status === 0 ? 1 : 0,
|
|
155
|
+
failed: result.status === 0 ? 0 : 1,
|
|
156
|
+
flaky: 0,
|
|
157
|
+
skipped: 0,
|
|
158
|
+
failures: result.status !== 0
|
|
159
|
+
? [{ testTitle: '(unknown)', specPath, error: stderr.slice(0, MAX_ERROR_CHARS), stack: '' }]
|
|
160
|
+
: [],
|
|
161
|
+
stdout,
|
|
162
|
+
durationMs,
|
|
163
|
+
compiled: !stderr.includes('Error'),
|
|
164
|
+
};
|
|
165
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { LLMProvider } from '../provider_interface.js';
|
|
2
|
+
import type { AgenticConfig, AgenticSummary } from './types.js';
|
|
3
|
+
import type { ApiSurfaceCatalog } from '../knowledge/api_surface.js';
|
|
4
|
+
import type { GenerationProfile } from '../prompts/generation_profile.js';
|
|
5
|
+
export interface ScenarioInput {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
scenarios: string[];
|
|
9
|
+
routeFamily: string;
|
|
10
|
+
priority: string;
|
|
11
|
+
/** Existing spec to add scenarios to */
|
|
12
|
+
targetSpec?: string;
|
|
13
|
+
/** Changed files for context */
|
|
14
|
+
changedFiles?: string[];
|
|
15
|
+
/** Evidence from impact analysis */
|
|
16
|
+
evidence?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface AgenticRunOptions {
|
|
19
|
+
scenarios: ScenarioInput[];
|
|
20
|
+
config: AgenticConfig;
|
|
21
|
+
provider: LLMProvider;
|
|
22
|
+
apiSurfaceHint?: string;
|
|
23
|
+
apiSurface?: ApiSurfaceCatalog;
|
|
24
|
+
generationProfile?: GenerationProfile;
|
|
25
|
+
}
|
|
26
|
+
export declare function runAgenticGeneration(options: AgenticRunOptions): Promise<AgenticSummary>;
|
|
27
|
+
//# sourceMappingURL=runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agentic/runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,EAAC,aAAa,EAAiB,cAAc,EAAsB,MAAM,YAAY,CAAC;AAKlG,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,kCAAkC,CAAC;AAGxE,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,oCAAoC;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAC9B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,QAAQ,EAAE,WAAW,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACzC;AAwMD,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,cAAc,CAAC,CAwB9F"}
|