agentevals-cli 0.9.7__tar.gz → 0.9.9__tar.gz
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.
- agentevals_cli-0.9.9/.github/dependabot.yml +101 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/.github/workflows/ci.yml +24 -6
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/.github/workflows/publish-evaluator-sdk.yml +2 -2
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/.github/workflows/release.yml +15 -15
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/Dockerfile +6 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/PKG-INFO +18 -7
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/docs/custom-evaluators.md +5 -1
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/README.md +2 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/dice_agent/README.md +2 -7
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/langchain_agent/README.md +3 -1
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/packages/evaluator-sdk-py/README.md +2 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/pyproject.toml +20 -6
- agentevals_cli-0.9.9/src/agentevals/_static/assets/index-ClNj3OAl.js +349 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/_static/index.html +1 -1
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/streaming/incremental_processor.py +9 -5
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/trace_attrs.py +3 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/utils/log_enrichment.py +20 -15
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_cli.py +27 -4
- agentevals_cli-0.9.9/tests/test_incremental_processor.py +26 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_log_enrichment.py +21 -4
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_mcp_server.py +2 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/package-lock.json +490 -679
- agentevals_cli-0.9.9/ui/package.json +38 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/uv.lock +537 -420
- agentevals_cli-0.9.7/src/agentevals/_static/assets/index-4Q_gYF8x.js +0 -341
- agentevals_cli-0.9.7/ui/package.json +0 -38
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/.claude/skills/eval/SKILL.md +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/.claude/skills/eval/evals/evals.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/.claude/skills/inspect/SKILL.md +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/.claude/skills/inspect/evals/evals.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/.dockerignore +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/.github/ISSUE_TEMPLATE/config.yml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/.github/ISSUE_TEMPLATE/feature_request.yml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/.gitignore +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/.mcp.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/CONTRIBUTING.md +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/DEVELOPMENT.md +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/LICENSE +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/Makefile +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/README.md +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/charts/agentevals/Chart.yaml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/charts/agentevals/templates/NOTES.txt +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/charts/agentevals/templates/_helpers.tpl +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/charts/agentevals/templates/deployment.yaml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/charts/agentevals/templates/postgresql-secret.yaml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/charts/agentevals/templates/postgresql.yaml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/charts/agentevals/templates/rbac.yaml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/charts/agentevals/templates/service.yaml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/charts/agentevals/templates/serviceaccount.yaml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/charts/agentevals/values.yaml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/docs/assets/logo-color-on-transparent.svg +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/docs/assets/logo-color.png +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/docs/assets/logo-dark-on-transparent.svg +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/docs/eval-set-format.md +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/docs/otel-compatibility.md +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/docs/run-history.md +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/docs/streaming.md +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/custom_evaluators/eval_config.yaml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/custom_evaluators/eval_config_openai_eval.yaml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/custom_evaluators/response_quality.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/custom_evaluators/tool_call_checker.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/custom_sink/README.md +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/custom_sink/agentevals_example_custom_sink/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/custom_sink/agentevals_example_custom_sink/sink.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/custom_sink/pyproject.toml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/dice_agent/agent.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/dice_agent/eval_set.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/dice_agent/main.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/dice_agent/test_streaming.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/kubernetes/README.md +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/langchain_agent/agent.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/langchain_agent/eval_set.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/langchain_agent/main.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/langchain_agent/requirements.txt +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/langchain_agent/test_streaming.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/sdk_example/async_example.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/sdk_example/context_manager_example.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/sdk_example/decorator_example.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/sdk_example/requirements.txt +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/strands_agent/agent.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/strands_agent/eval_set.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/strands_agent/main.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/strands_agent/requirements.txt +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/zero-code-examples/adk/requirements.txt +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/zero-code-examples/adk/run.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/zero-code-examples/langchain/requirements.txt +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/zero-code-examples/langchain/run.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/zero-code-examples/ollama/requirements.txt +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/zero-code-examples/ollama/run.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/zero-code-examples/openai-agents/requirements.txt +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/zero-code-examples/openai-agents/run.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/zero-code-examples/pydantic-ai/requirements.txt +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/zero-code-examples/pydantic-ai/run.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/zero-code-examples/strands/requirements.txt +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/examples/zero-code-examples/strands/run.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/flake.lock +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/flake.nix +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/packages/evaluator-sdk-py/pyproject.toml +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/packages/evaluator-sdk-py/src/agentevals_evaluator_sdk/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/packages/evaluator-sdk-py/src/agentevals_evaluator_sdk/decorator.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/packages/evaluator-sdk-py/src/agentevals_evaluator_sdk/types.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/samples/eval_set_helm.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/samples/evalset_helm_3_2026-02-23.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/samples/evalset_k8s_2026-02-20.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/samples/helm.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/samples/helm_2.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/samples/helm_3.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/samples/k8s.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/samples/tempo_export_with_batches.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/_protocol.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/_static/assets/index-BqibLiHO.css +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/_static/logo.svg +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/_static/vite.svg +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/api/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/api/app.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/api/debug_routes.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/api/dependencies.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/api/models.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/api/otlp_app.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/api/otlp_grpc.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/api/otlp_processing.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/api/otlp_routes.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/api/routes.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/api/runs_routes.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/api/streaming_routes.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/builtin_metrics.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/cli.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/config.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/converter.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/custom_evaluators.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/eval_config_loader.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/evaluator/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/evaluator/resolver.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/evaluator/sources.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/evaluator/templates.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/evaluator/venv.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/extraction.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/genai_converter.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/loader/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/loader/auto.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/loader/base.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/loader/jaeger.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/loader/otlp.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/mcp_server.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/openai_eval_backend.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/output.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/resolvers/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/resolvers/kubernetes.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/run/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/run/fetcher.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/run/result_builder.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/run/service.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/run/sinks.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/run/worker.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/runner.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/sdk.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/storage/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/storage/config.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/storage/models.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/storage/postgres/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/storage/postgres/migrations/000001_init.down.sql +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/storage/postgres/migrations/000001_init.up.sql +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/storage/postgres/migrator.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/storage/postgres/pool.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/storage/repos/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/storage/repos/memory.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/storage/repos/postgres.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/streaming/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/streaming/exports.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/streaming/processor.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/streaming/session.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/streaming/ws_server.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/trace_metrics.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/utils/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/utils/genai_messages.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/src/agentevals/utils/log_buffer.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/api/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/api/test_evaluate_persistence.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/api/test_runs_routes.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/integration/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/integration/conftest.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/integration/test_evaluation_pipeline.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/integration/test_live_agents.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/integration/test_otlp_grpc_receiver.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/integration/test_session_grouping.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/integration/test_timing_stress.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/resolvers/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/resolvers/test_kubernetes.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/resolvers/test_registry.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/run/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/run/test_fetcher.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/run/test_result_builder.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/run/test_service.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/run/test_sinks.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/storage/__init__.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/storage/test_config.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/storage/test_memory_repos.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/storage/test_migrator.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/storage/test_models.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_api.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_converter.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_credential_injection.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_eval_config_loader.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_extraction.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_genai_converter.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_jaeger_loader.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_loader_auto.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_openai_eval_backend.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_otlp_loader.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_otlp_receiver.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_output.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_protocol.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_runner.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_sdk.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/tests/test_trace_metrics.py +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/.gitignore +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/README.md +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/eslint.config.js +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/index.html +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/public/logo.svg +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/public/vite.svg +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/App.css +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/App.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/api/client.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/assets/react.svg +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/annotation-queue/AnnotationDetailPanel.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/annotation-queue/AnnotationQueueView.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/annotation-queue/AnnotationTable.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/bug-report/BugReportModal.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/builder/BuilderHeader.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/builder/BuilderView.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/builder/EvalCaseCard.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/builder/EvalCasesList.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/builder/InvocationEditor.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/builder/JsonPreview.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/builder/MetadataEditor.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/builder/TraceUploadZone.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/builder/index.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/dashboard/DashboardView.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/dashboard/MetricScoreCard.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/dashboard/PerformanceCard.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/dashboard/PerformanceCharts.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/dashboard/SummaryStats.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/dashboard/TraceCard.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/dashboard/TraceTable.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/inspector/ComparisonPanel.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/inspector/DataSection.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/inspector/InspectorHeader.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/inspector/InspectorLayout.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/inspector/InspectorView.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/inspector/InvocationCard.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/inspector/InvocationSummaryPanel.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/inspector/MetricResultsSection.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/inspector/MetricsComparisonSection.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/inspector/PerformanceSection.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/inspector/ToolCallList.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/inspector/TrajectoryComparisonDetails.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/runs/PassRateTrendChart.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/runs/PerMetricTrendChart.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/runs/RunDetailView.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/runs/RunsHistoryTable.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/runs/RunsView.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/runs/runHistory.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/sidebar/Sidebar.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/streaming/LiveConversationPanel.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/streaming/LiveMessage.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/streaming/LiveStreamingView.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/streaming/SessionCard.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/streaming/SessionMetadata.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/upload/EvalSetEditorDrawer.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/upload/FileDropZone.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/upload/MetricSelector.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/upload/RawJsonPreview.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/upload/TraceEditorDrawer.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/upload/UploadView.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/components/welcome/WelcomeView.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/config.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/context/TraceContext.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/context/TraceProvider.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/index.css +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/lib/console-capture.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/lib/eval-config.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/lib/evalset-builder.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/lib/network-capture.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/lib/trace-helpers.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/lib/trace-loader.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/lib/trace-metadata.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/lib/trace-patcher.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/lib/types.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/lib/utils.ts +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/src/main.tsx +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/tsconfig.app.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/tsconfig.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/tsconfig.node.json +0 -0
- {agentevals_cli-0.9.7 → agentevals_cli-0.9.9}/ui/vite.config.ts +0 -0
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
|
|
3
|
+
updates:
|
|
4
|
+
- package-ecosystem: "github-actions"
|
|
5
|
+
directory: "/"
|
|
6
|
+
schedule:
|
|
7
|
+
interval: "weekly"
|
|
8
|
+
day: "monday"
|
|
9
|
+
open-pull-requests-limit: 2
|
|
10
|
+
labels: ["dependencies", "CI"]
|
|
11
|
+
commit-message:
|
|
12
|
+
prefix: "chore(deps):"
|
|
13
|
+
cooldown:
|
|
14
|
+
default-days: 5
|
|
15
|
+
groups:
|
|
16
|
+
github-actions:
|
|
17
|
+
applies-to: version-updates
|
|
18
|
+
patterns: ["*"]
|
|
19
|
+
github-actions-security:
|
|
20
|
+
applies-to: security-updates
|
|
21
|
+
patterns: ["*"]
|
|
22
|
+
|
|
23
|
+
- package-ecosystem: "uv"
|
|
24
|
+
directory: "/"
|
|
25
|
+
schedule:
|
|
26
|
+
interval: "weekly"
|
|
27
|
+
day: "monday"
|
|
28
|
+
open-pull-requests-limit: 3
|
|
29
|
+
labels: ["dependencies", "CLI"]
|
|
30
|
+
commit-message:
|
|
31
|
+
prefix: "chore(deps):"
|
|
32
|
+
prefix-development: "chore(deps-dev):"
|
|
33
|
+
cooldown:
|
|
34
|
+
default-days: 5
|
|
35
|
+
semver-major-days: 14
|
|
36
|
+
groups:
|
|
37
|
+
python-google-ai:
|
|
38
|
+
applies-to: version-updates
|
|
39
|
+
patterns:
|
|
40
|
+
- "google-adk"
|
|
41
|
+
- "google-genai"
|
|
42
|
+
- "google-auth*"
|
|
43
|
+
python:
|
|
44
|
+
applies-to: version-updates
|
|
45
|
+
patterns: ["*"]
|
|
46
|
+
python-security:
|
|
47
|
+
applies-to: security-updates
|
|
48
|
+
patterns: ["*"]
|
|
49
|
+
|
|
50
|
+
- package-ecosystem: "npm"
|
|
51
|
+
directory: "/ui"
|
|
52
|
+
schedule:
|
|
53
|
+
interval: "weekly"
|
|
54
|
+
day: "monday"
|
|
55
|
+
open-pull-requests-limit: 2
|
|
56
|
+
labels: ["dependencies", "UI"]
|
|
57
|
+
commit-message:
|
|
58
|
+
prefix: "chore(deps):"
|
|
59
|
+
prefix-development: "chore(deps-dev):"
|
|
60
|
+
cooldown:
|
|
61
|
+
default-days: 5
|
|
62
|
+
semver-major-days: 14
|
|
63
|
+
ignore:
|
|
64
|
+
# Majors need a migration pass; bump these by hand.
|
|
65
|
+
- dependency-name: "react"
|
|
66
|
+
update-types: ["version-update:semver-major"]
|
|
67
|
+
- dependency-name: "react-dom"
|
|
68
|
+
update-types: ["version-update:semver-major"]
|
|
69
|
+
- dependency-name: "antd"
|
|
70
|
+
update-types: ["version-update:semver-major"]
|
|
71
|
+
- dependency-name: "vite"
|
|
72
|
+
update-types: ["version-update:semver-major"]
|
|
73
|
+
# Plugin majors track vite majors: @vitejs/plugin-react 6 peers on vite 8.
|
|
74
|
+
- dependency-name: "@vitejs/*"
|
|
75
|
+
update-types: ["version-update:semver-major"]
|
|
76
|
+
# typescript-eslint declares a typescript upper bound, so TS majors move with it.
|
|
77
|
+
- dependency-name: "typescript"
|
|
78
|
+
update-types: ["version-update:semver-major"]
|
|
79
|
+
groups:
|
|
80
|
+
npm:
|
|
81
|
+
applies-to: version-updates
|
|
82
|
+
patterns: ["*"]
|
|
83
|
+
npm-security:
|
|
84
|
+
applies-to: security-updates
|
|
85
|
+
patterns: ["*"]
|
|
86
|
+
|
|
87
|
+
- package-ecosystem: "docker"
|
|
88
|
+
directory: "/"
|
|
89
|
+
schedule:
|
|
90
|
+
interval: "weekly"
|
|
91
|
+
day: "monday"
|
|
92
|
+
open-pull-requests-limit: 1
|
|
93
|
+
labels: ["dependencies"]
|
|
94
|
+
commit-message:
|
|
95
|
+
prefix: "chore(deps):"
|
|
96
|
+
cooldown:
|
|
97
|
+
default-days: 5
|
|
98
|
+
groups:
|
|
99
|
+
docker-base-images:
|
|
100
|
+
applies-to: version-updates
|
|
101
|
+
patterns: ["*"]
|
|
@@ -13,7 +13,7 @@ jobs:
|
|
|
13
13
|
helm-chart:
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
15
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
16
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
17
17
|
|
|
18
18
|
- name: Lint + template
|
|
19
19
|
run: make helm-test
|
|
@@ -21,14 +21,17 @@ jobs:
|
|
|
21
21
|
lint:
|
|
22
22
|
runs-on: ubuntu-latest
|
|
23
23
|
steps:
|
|
24
|
-
- uses: actions/checkout@
|
|
24
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
25
25
|
with:
|
|
26
26
|
fetch-depth: 0
|
|
27
27
|
|
|
28
|
-
- uses: astral-sh/setup-uv@
|
|
28
|
+
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
29
29
|
with:
|
|
30
30
|
enable-cache: true
|
|
31
31
|
|
|
32
|
+
- name: Verify uv.lock matches pyproject.toml
|
|
33
|
+
run: uv lock --check
|
|
34
|
+
|
|
32
35
|
- name: Install dependencies
|
|
33
36
|
run: |
|
|
34
37
|
uv venv
|
|
@@ -41,17 +44,32 @@ jobs:
|
|
|
41
44
|
- name: Ruff format check
|
|
42
45
|
run: uv run ruff format --check .
|
|
43
46
|
|
|
47
|
+
ui:
|
|
48
|
+
runs-on: ubuntu-latest
|
|
49
|
+
steps:
|
|
50
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
51
|
+
|
|
52
|
+
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
|
53
|
+
with:
|
|
54
|
+
node-version: '22'
|
|
55
|
+
cache: npm
|
|
56
|
+
cache-dependency-path: ui/package-lock.json
|
|
57
|
+
|
|
58
|
+
# tsc -b && vite build, same as the release workflow bundles.
|
|
59
|
+
- name: Build UI
|
|
60
|
+
run: make build-ui
|
|
61
|
+
|
|
44
62
|
test:
|
|
45
63
|
runs-on: ubuntu-latest
|
|
46
64
|
strategy:
|
|
47
65
|
matrix:
|
|
48
66
|
python-version: ["3.11", "3.12", "3.13"]
|
|
49
67
|
steps:
|
|
50
|
-
- uses: actions/checkout@
|
|
68
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
51
69
|
with:
|
|
52
70
|
fetch-depth: 0
|
|
53
71
|
|
|
54
|
-
- uses: astral-sh/setup-uv@
|
|
72
|
+
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
55
73
|
with:
|
|
56
74
|
enable-cache: true
|
|
57
75
|
|
|
@@ -62,7 +80,7 @@ jobs:
|
|
|
62
80
|
run: |
|
|
63
81
|
uv venv --python ${{ matrix.python-version }}
|
|
64
82
|
uv pip install setuptools
|
|
65
|
-
uv sync --dev --python ${{ matrix.python-version }}
|
|
83
|
+
uv sync --dev --all-extras --frozen --python ${{ matrix.python-version }}
|
|
66
84
|
|
|
67
85
|
- name: Run tests
|
|
68
86
|
run: uv run pytest -m "not integration and not e2e" --tb=short -q
|
|
@@ -18,12 +18,12 @@ jobs:
|
|
|
18
18
|
runs-on: ubuntu-latest
|
|
19
19
|
steps:
|
|
20
20
|
- name: 'Checkout GitHub Action'
|
|
21
|
-
uses: actions/checkout@
|
|
21
|
+
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
22
22
|
with:
|
|
23
23
|
fetch-depth: 0
|
|
24
24
|
|
|
25
25
|
- name: Install uv
|
|
26
|
-
uses: astral-sh/setup-uv@
|
|
26
|
+
uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
27
27
|
|
|
28
28
|
# Repo root cwd: uv build puts artifacts in ./dist; uv publish looks for dist/* relative to cwd.
|
|
29
29
|
- name: 'Release Python Packages'
|
|
@@ -17,16 +17,16 @@ jobs:
|
|
|
17
17
|
build:
|
|
18
18
|
runs-on: ubuntu-latest
|
|
19
19
|
steps:
|
|
20
|
-
- uses: actions/checkout@
|
|
20
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
21
21
|
with:
|
|
22
22
|
ref: ${{ github.event.inputs.tag || github.ref_name }}
|
|
23
23
|
fetch-depth: 0
|
|
24
24
|
|
|
25
|
-
- uses: astral-sh/setup-uv@
|
|
25
|
+
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
26
26
|
with:
|
|
27
27
|
enable-cache: true
|
|
28
28
|
|
|
29
|
-
- uses: actions/setup-node@
|
|
29
|
+
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
|
30
30
|
with:
|
|
31
31
|
node-version: '22'
|
|
32
32
|
cache: npm
|
|
@@ -35,7 +35,7 @@ jobs:
|
|
|
35
35
|
- name: Build core and bundled wheels
|
|
36
36
|
run: make release
|
|
37
37
|
|
|
38
|
-
- uses: actions/upload-artifact@v7
|
|
38
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
39
39
|
with:
|
|
40
40
|
name: wheels
|
|
41
41
|
path: |
|
|
@@ -46,16 +46,16 @@ jobs:
|
|
|
46
46
|
needs: build
|
|
47
47
|
runs-on: ubuntu-latest
|
|
48
48
|
steps:
|
|
49
|
-
- uses: actions/checkout@
|
|
49
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
50
50
|
with:
|
|
51
51
|
ref: ${{ github.event.inputs.tag || github.ref_name }}
|
|
52
52
|
fetch-depth: 0
|
|
53
53
|
|
|
54
|
-
- uses: astral-sh/setup-uv@
|
|
54
|
+
- uses: astral-sh/setup-uv@20cfd1bf945f4377ade1205e4dbc17946fc9a30d # v10.0.1
|
|
55
55
|
with:
|
|
56
56
|
enable-cache: true
|
|
57
57
|
|
|
58
|
-
- uses: actions/setup-node@
|
|
58
|
+
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
|
|
59
59
|
with:
|
|
60
60
|
node-version: '22'
|
|
61
61
|
cache: npm
|
|
@@ -82,12 +82,12 @@ jobs:
|
|
|
82
82
|
contents: write
|
|
83
83
|
|
|
84
84
|
steps:
|
|
85
|
-
- uses: actions/download-artifact@v8
|
|
85
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
86
86
|
with:
|
|
87
87
|
name: wheels
|
|
88
88
|
path: dist/
|
|
89
89
|
|
|
90
|
-
- uses: softprops/action-gh-release@
|
|
90
|
+
- uses: softprops/action-gh-release@3d0d9888cb7fd7b750713d6e236d1fcb99157228 # v3.0.2
|
|
91
91
|
with:
|
|
92
92
|
tag_name: ${{ github.event.inputs.tag || github.ref_name }}
|
|
93
93
|
files: dist/**/*.whl
|
|
@@ -100,22 +100,22 @@ jobs:
|
|
|
100
100
|
contents: read
|
|
101
101
|
packages: write
|
|
102
102
|
steps:
|
|
103
|
-
- uses: actions/checkout@
|
|
103
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
104
104
|
with:
|
|
105
105
|
ref: ${{ github.event.inputs.tag || github.ref_name }}
|
|
106
106
|
|
|
107
107
|
- name: Login to GitHub Container Registry
|
|
108
|
-
uses: docker/login-action@v4
|
|
108
|
+
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
|
109
109
|
with:
|
|
110
110
|
registry: ghcr.io
|
|
111
111
|
username: ${{ github.actor }}
|
|
112
112
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
113
113
|
|
|
114
114
|
- name: Set up QEMU
|
|
115
|
-
uses: docker/setup-qemu-action@v4
|
|
115
|
+
uses: docker/setup-qemu-action@96fe6ef7f33517b61c61be40b68a1882f3264fb8 # v4.2.0
|
|
116
116
|
|
|
117
117
|
- name: Set up Docker Buildx
|
|
118
|
-
uses: docker/setup-buildx-action@v4
|
|
118
|
+
uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0
|
|
119
119
|
|
|
120
120
|
- name: Build and push
|
|
121
121
|
run: |
|
|
@@ -134,12 +134,12 @@ jobs:
|
|
|
134
134
|
contents: read
|
|
135
135
|
packages: write
|
|
136
136
|
steps:
|
|
137
|
-
- uses: actions/checkout@
|
|
137
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
138
138
|
with:
|
|
139
139
|
ref: ${{ github.event.inputs.tag || github.ref_name }}
|
|
140
140
|
|
|
141
141
|
- name: Login to GitHub Container Registry
|
|
142
|
-
uses: docker/login-action@v4
|
|
142
|
+
uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0
|
|
143
143
|
with:
|
|
144
144
|
registry: ghcr.io
|
|
145
145
|
username: ${{ github.actor }}
|
|
@@ -32,6 +32,12 @@ ARG VERSION
|
|
|
32
32
|
ENV SETUPTOOLS_SCM_PRETEND_VERSION=${VERSION}
|
|
33
33
|
|
|
34
34
|
RUN uv sync --frozen --no-dev --extra live --extra postgres --extra kubernetes \
|
|
35
|
+
# The runtime only uses the uv-managed venv; drop the base image's bundled
|
|
36
|
+
# pip so its vendored packages (msgpack, pkg_resources) don't ship unused.
|
|
37
|
+
&& rm -rf /usr/local/lib/python*/site-packages/pip \
|
|
38
|
+
/usr/local/lib/python*/site-packages/pip-*.dist-info \
|
|
39
|
+
/usr/local/bin/pip* \
|
|
40
|
+
&& ! /usr/local/bin/python -c "import pip" 2>/dev/null \
|
|
35
41
|
&& groupadd --gid 1000 app \
|
|
36
42
|
&& useradd --uid 1000 --gid app --home-dir /app --no-log-init app \
|
|
37
43
|
&& chown -R app:app /app
|
|
@@ -1,24 +1,35 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
2
|
Name: agentevals-cli
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.9
|
|
4
4
|
Summary: Standalone framework to evaluate agent correctness based on portable OpenTelemetry traces
|
|
5
5
|
License-File: LICENSE
|
|
6
6
|
Requires-Python: >=3.11
|
|
7
|
-
Requires-Dist:
|
|
7
|
+
Requires-Dist: aiohttp>=3.14.3
|
|
8
|
+
Requires-Dist: authlib>=1.7.2
|
|
9
|
+
Requires-Dist: click>=8.3.3
|
|
8
10
|
Requires-Dist: fastapi>=0.115.0
|
|
9
|
-
Requires-Dist: google-adk[eval]<
|
|
11
|
+
Requires-Dist: google-adk[eval]<3,>=2.5.0
|
|
10
12
|
Requires-Dist: httpx>=0.27.0
|
|
13
|
+
Requires-Dist: idna>=3.18
|
|
14
|
+
Requires-Dist: litellm>=1.85.7
|
|
15
|
+
Requires-Dist: nltk>=3.10.2
|
|
11
16
|
Requires-Dist: opentelemetry-proto>=1.36.0
|
|
12
|
-
Requires-Dist:
|
|
13
|
-
Requires-Dist:
|
|
17
|
+
Requires-Dist: pyasn1>=0.6.4
|
|
18
|
+
Requires-Dist: pygments>=2.20.0
|
|
19
|
+
Requires-Dist: python-dotenv>=1.2.2
|
|
20
|
+
Requires-Dist: python-multipart>=0.0.32
|
|
14
21
|
Requires-Dist: pyyaml>=6.0
|
|
22
|
+
Requires-Dist: requests>=2.34.2
|
|
15
23
|
Requires-Dist: tabulate>=0.9.0
|
|
24
|
+
Requires-Dist: urllib3>=2.7.0
|
|
16
25
|
Requires-Dist: uvicorn[standard]>=0.32.0
|
|
17
26
|
Provides-Extra: kubernetes
|
|
18
27
|
Requires-Dist: kubernetes>=36.0.0; extra == 'kubernetes'
|
|
19
28
|
Provides-Extra: live
|
|
20
29
|
Requires-Dist: httpx>=0.27.0; extra == 'live'
|
|
21
|
-
Requires-Dist: mcp
|
|
30
|
+
Requires-Dist: mcp<2,>=1.28.1; extra == 'live'
|
|
31
|
+
Requires-Dist: pydantic-settings>=2.15.0; extra == 'live'
|
|
32
|
+
Requires-Dist: pyjwt>=2.13.0; extra == 'live'
|
|
22
33
|
Provides-Extra: openai
|
|
23
34
|
Requires-Dist: openai>=2.0; extra == 'openai'
|
|
24
35
|
Provides-Extra: postgres
|
|
@@ -37,6 +37,7 @@ pip install agentevals-evaluator-sdk
|
|
|
37
37
|
# evaluators/response_quality.py
|
|
38
38
|
from agentevals_evaluator_sdk import evaluator, EvalInput, EvalResult
|
|
39
39
|
|
|
40
|
+
|
|
40
41
|
@evaluator
|
|
41
42
|
def response_quality(input: EvalInput) -> EvalResult:
|
|
42
43
|
scores = []
|
|
@@ -53,6 +54,7 @@ def response_quality(input: EvalInput) -> EvalResult:
|
|
|
53
54
|
per_invocation_scores=scores,
|
|
54
55
|
)
|
|
55
56
|
|
|
57
|
+
|
|
56
58
|
if __name__ == "__main__":
|
|
57
59
|
response_quality.run()
|
|
58
60
|
```
|
|
@@ -436,7 +438,7 @@ Then register it:
|
|
|
436
438
|
_RUNTIMES: list[Runtime] = [
|
|
437
439
|
PythonRuntime(),
|
|
438
440
|
NodeRuntime(),
|
|
439
|
-
GoRuntime(),
|
|
441
|
+
GoRuntime(), # new
|
|
440
442
|
]
|
|
441
443
|
```
|
|
442
444
|
|
|
@@ -484,6 +486,7 @@ To support a different evaluator registry (e.g., a custom API), implement `Evalu
|
|
|
484
486
|
```python
|
|
485
487
|
from agentevals.evaluator.sources import EvaluatorSource, EvaluatorInfo, register_source
|
|
486
488
|
|
|
489
|
+
|
|
487
490
|
class MyRegistrySource(EvaluatorSource):
|
|
488
491
|
@property
|
|
489
492
|
def source_name(self) -> str:
|
|
@@ -492,6 +495,7 @@ class MyRegistrySource(EvaluatorSource):
|
|
|
492
495
|
async def list_evaluators(self) -> list[EvaluatorInfo]: ...
|
|
493
496
|
async def fetch_evaluator(self, ref: str, dest: Path) -> Path: ...
|
|
494
497
|
|
|
498
|
+
|
|
495
499
|
register_source(MyRegistrySource())
|
|
496
500
|
```
|
|
497
501
|
|
|
@@ -69,10 +69,12 @@ For simple prompt-to-response agents, there's also a decorator shorthand:
|
|
|
69
69
|
```python
|
|
70
70
|
app = AgentEvals(eval_set_id="my-eval")
|
|
71
71
|
|
|
72
|
+
|
|
72
73
|
@app.agent
|
|
73
74
|
def my_agent(prompt):
|
|
74
75
|
return llm.invoke(prompt).content
|
|
75
76
|
|
|
77
|
+
|
|
76
78
|
app.run(["Hello!", "Tell me a joke"])
|
|
77
79
|
```
|
|
78
80
|
|
|
@@ -89,13 +89,8 @@ Add a new tool in `agent.py`:
|
|
|
89
89
|
def roll_multiple(count: int, sides: int = 6) -> dict:
|
|
90
90
|
"""Roll multiple dice at once."""
|
|
91
91
|
results = [random.randint(1, sides) for _ in range(count)]
|
|
92
|
-
return {
|
|
93
|
-
|
|
94
|
-
"sides": sides,
|
|
95
|
-
"results": results,
|
|
96
|
-
"total": sum(results),
|
|
97
|
-
"average": sum(results) / count
|
|
98
|
-
}
|
|
92
|
+
return {"count": count, "sides": sides, "results": results, "total": sum(results), "average": sum(results) / count}
|
|
93
|
+
|
|
99
94
|
|
|
100
95
|
dice_agent = Agent(
|
|
101
96
|
name="dice_agent",
|
|
@@ -145,7 +145,7 @@ os.environ["OTEL_INSTRUMENTATION_GENAI_CAPTURE_MESSAGE_CONTENT"] = "true"
|
|
|
145
145
|
|
|
146
146
|
```python
|
|
147
147
|
tracer_provider = TracerProvider() # For spans
|
|
148
|
-
logger_provider = LoggerProvider()
|
|
148
|
+
logger_provider = LoggerProvider() # For logs
|
|
149
149
|
```
|
|
150
150
|
|
|
151
151
|
**Both are required** - spans provide metadata, logs provide message content.
|
|
@@ -164,10 +164,12 @@ The log processor shares the WebSocket connection from the span processor.
|
|
|
164
164
|
```python
|
|
165
165
|
loop = asyncio.new_event_loop()
|
|
166
166
|
|
|
167
|
+
|
|
167
168
|
def run_loop_in_background():
|
|
168
169
|
asyncio.set_event_loop(loop)
|
|
169
170
|
loop.run_forever()
|
|
170
171
|
|
|
172
|
+
|
|
171
173
|
thread = threading.Thread(target=run_loop_in_background, daemon=True)
|
|
172
174
|
thread.start()
|
|
173
175
|
```
|
|
@@ -15,6 +15,7 @@ pip install agentevals-evaluator-sdk
|
|
|
15
15
|
```python
|
|
16
16
|
from agentevals_evaluator_sdk import evaluator, EvalInput, EvalResult
|
|
17
17
|
|
|
18
|
+
|
|
18
19
|
@evaluator
|
|
19
20
|
def my_evaluator(input: EvalInput) -> EvalResult:
|
|
20
21
|
scores = []
|
|
@@ -27,6 +28,7 @@ def my_evaluator(input: EvalInput) -> EvalResult:
|
|
|
27
28
|
per_invocation_scores=scores,
|
|
28
29
|
)
|
|
29
30
|
|
|
31
|
+
|
|
30
32
|
if __name__ == "__main__":
|
|
31
33
|
my_evaluator.run()
|
|
32
34
|
```
|
|
@@ -9,22 +9,36 @@ description = "Standalone framework to evaluate agent correctness based on porta
|
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.11"
|
|
11
11
|
dependencies = [
|
|
12
|
-
"google-adk[eval]>=2.
|
|
13
|
-
"click>=8.
|
|
12
|
+
"google-adk[eval]>=2.5.0,<3",
|
|
13
|
+
"click>=8.3.3",
|
|
14
14
|
"tabulate>=0.9.0",
|
|
15
15
|
"fastapi>=0.115.0",
|
|
16
16
|
"uvicorn[standard]>=0.32.0",
|
|
17
|
-
"python-multipart>=0.0.
|
|
18
|
-
"python-dotenv>=1.
|
|
17
|
+
"python-multipart>=0.0.32",
|
|
18
|
+
"python-dotenv>=1.2.2",
|
|
19
19
|
"opentelemetry-proto>=1.36.0",
|
|
20
20
|
"pyyaml>=6.0",
|
|
21
21
|
"httpx>=0.27.0",
|
|
22
|
+
# Security floors for CVE-affected transitive dependencies of the default install.
|
|
23
|
+
# None are imported directly, do not "clean up" as unused. pip does not read
|
|
24
|
+
# lockfiles, so installs from PyPI resolve from these floors alone.
|
|
25
|
+
"aiohttp>=3.14.3",
|
|
26
|
+
"authlib>=1.7.2",
|
|
27
|
+
"idna>=3.18",
|
|
28
|
+
"litellm>=1.85.7",
|
|
29
|
+
"nltk>=3.10.2",
|
|
30
|
+
"pyasn1>=0.6.4",
|
|
31
|
+
"pygments>=2.20.0",
|
|
32
|
+
"requests>=2.34.2",
|
|
33
|
+
"urllib3>=2.7.0",
|
|
22
34
|
]
|
|
23
35
|
|
|
24
36
|
[project.optional-dependencies]
|
|
25
37
|
live = [
|
|
26
|
-
"mcp>=1.
|
|
38
|
+
"mcp>=1.28.1,<2",
|
|
27
39
|
"httpx>=0.27.0",
|
|
40
|
+
"pyjwt>=2.13.0",
|
|
41
|
+
"pydantic-settings>=2.15.0",
|
|
28
42
|
]
|
|
29
43
|
streaming = [
|
|
30
44
|
"opentelemetry-sdk>=1.20.0",
|
|
@@ -70,7 +84,7 @@ asyncio_mode = "auto"
|
|
|
70
84
|
|
|
71
85
|
[dependency-groups]
|
|
72
86
|
dev = [
|
|
73
|
-
"pytest>=9.0.
|
|
87
|
+
"pytest>=9.0.3",
|
|
74
88
|
"pytest-asyncio>=0.24.0",
|
|
75
89
|
"httpx>=0.27.0",
|
|
76
90
|
"ruff>=0.11.0",
|